I built a burn-rate circuit breaker for LLM agent fleets: each agent judged against its own baseline, auto-demoted to propose-only on drift (zero-dep OSS + interactive demo)
per-action guardrails catch the bad call in front of you. nothing in my stack caught an agent whose judgment was slowly degrading: every individual output passed checks while the failure rate quietly climbed. classic silent drift.
the fix i shipped borrows from telecom NOC practice and google's SRE burn-rate alerting: track each agent's failure rate as a trailing baseline, compare the current window against that agent's own history, and when the ratio burns past 2x, latch the agent into propose-only mode. it keeps producing, but outputs become proposals for a human instead of actions.
three guards that turned out to be the actual hard part (naive baselines get poisoned):
- learning freeze: while burn rate is elevated, the baseline stops absorbing events, so an active incident cannot teach the baseline that failure is normal
- asymmetric learning: baseline learns improvement fast, degradation slowly
- absolute ceiling: a level backstop that catches the slow 1%-per-hour boil the ratio math can never see
plus a two-scope kill switch (per-agent + fleet) checked in the execution path, and a fleet() view for dashboards.
it is a few hundred lines of zero-dependency typescript, MIT: https://github.com/mkadri85/guardplane
interactive demo where you inject drift into a 6-agent fleet and watch the breaker work (imports the package unmodified from npm, runs fully in your browser): https://mkadri85.github.io/projects/agent-noc/
longer write-up on what else transfers from NOC operations to agent fleets (autonomy levels, error budgets, change freezes), with references: https://mkadri85.github.io/blog/agent-noc/
curious how others detect fleet-level degradation. per-run evals? baseline-relative signals? something smarter?
Posted Jul 13, 2026, 10:47 AM UTC