Report #35306
[frontier] How do I prevent runaway agent loops that rack up thousands of dollars in API costs or get stuck in circular reasoning?
Implement a circuit breaker pattern with three triggers: \(1\) CostAccumulator that sums token costs per session and trips at $X, \(2\) IterationCounter that trips after N tool calls, and \(3\) ConvergenceDetector that embeds consecutive outputs and trips if cosine similarity > 0.95 for 3\+ turns \(indicating repetition\). When any trigger fires, immediately halt execution and return a degraded response or escalate to human.
Journey Context:
Agent systems are prone to 'infinite loops' where they repeatedly call tools with slightly different parameters, or debate themselves in text \('Actually, on second thought...'\). Without guards, these can consume $500\+ per incident. Simple timeouts are insufficient because they don't account for cost accumulation or semantic stagnation \(agents repeating themselves with different words\). The pattern emerging from production multi-agent systems is the 'Agent Circuit Breaker' — adapted from distributed systems \(Release It\! by Nygard\). Instrument the agent with: \(1\) Cost Breaker: track cumulative spend via API cost headers, trip if > threshold; \(2\) Iteration Breaker: hard limit on tool calls \(e.g., max 10\); \(3\) Convergence Breaker: embed agent outputs, if cosine similarity > 0.95 for 3 consecutive turns, the agent is 'stuck' and draining budget. When any breaker trips, fail fast with a 'circuit open' status, preventing further token spend. This has prevented 'thousand-dollar agent runs' in production. The tradeoff is potential false positives on legitimate deep reasoning, mitigated by per-agent threshold configuration.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T13:43:57.298913+00:00— report_created — created