An autonomous research agent given the instruction 'keep investigating until you're confident in the answer' has no built-in sense of when confidence is expensive to buy. Left alone, it can call a search tool, read the results, decide it needs more context, call the tool again, and repeat that loop for hours — each iteration a real, billed inference call — while producing no error, no crash, and no signal to a monitoring dashboard that anything is wrong, because from the system's point of view, a long-running agentic loop and a runaway one look identical until someone checks the bill.
Cost runaway is a distinct failure mode from the rate-limiting concerns in the previous lesson: rate limiting bounds how many requests an external caller can send in, while cost runaway is about an agent's own internal loop spending unboundedly on itself, with no external caller sending excess traffic at all. A single well-intentioned user request can trigger a cost runaway entirely through the agent's own recursive tool-calling behavior, which means a per-request rate limit does nothing to stop it — the limiter sees one request; the damage happens inside that one request's execution.
What breaks without an explicit cost guardrail is the assumption that an agent's cost scales with the value of the work it is doing. A genuinely useful investigation might legitimately need ten tool calls; a runaway loop caused by a subtle bug in the stopping condition can rack up a thousand tool calls chasing a question the agent will never actually resolve, because the loop's exit condition was never reached and nothing in the system forced an exit anyway. The bill for both looks the same in kind — inference charges — and only a budget circuit-breaker distinguishes 'expensive because valuable' from 'expensive because broken.'