The horror story is always the same: a developer wires up an autonomous agent on Friday afternoon, the prompt grows under load, the agent enters a self-correcting loop, and Monday morning the OpenAI bill has four extra zeros on it. No alert fired. No human approved it. The card on file just kept paying.
This is not an LLM problem. It is a governance problem.
Budgets Are a First-Class Object, Not an Afterthought
In AACFlow every workflow and every agent has a hard budget cap attached to it. The cap is denominated in kopecks โ integer minor units โ stored as BigInt. There is no floating-point currency anywhere in the executor, and no "we'll add limits later" toggle. The cap is part of the workflow's deploy contract.
The cap lives next to two purpose-built tables:
walletLedgerโ append-only ledger of every credit movement, in kopecks, with the source, workflow, execution, and metadata attached.creditReservationโ pre-execution holds. Before a block runs, the executor estimates its cost and reserves the budget. If the wallet does not cover the hold, the execution does not even start.



