Failure Modes: Why Agents Break
MASFT (Berkeley, 2025) catalogs 14 multi-agent failure modes in 3 categories. Microsoft's Taxonomy documents how existing AI failures amplify in agentic settings. Industry field data converges on five recurring modes: hallucinated actions, scope creep, cascading errors, context loss, and tool misuse.
Learning Objectives
- Describe MASFT, the taxonomy that sorts 14 multi-agent failure modes into three categories.
- Explain why agentic failure amplifies existing AI failure modes (bias, hallucination).
- Describe the five industry-recurring modes and their mitigations.
- Implement a stdlib detector that tags agent traces with failure-mode labels.
The Problem
Teams ship agents that work on 90% of traces. The other 10% isn't random noise. Those failures fall into a small number of recurring categories, and once you can name them you can monitor for them and fix them.
The Concept
MASFT (Berkeley, arXiv:2503.13657)
MASFT, the Multi-Agent System Failure Taxonomy, sorts 14 failure modes into 3 categories. Inter-annotator Cohen's Kappa is 0.88, so the categories are reliably distinguishable.
Its central claim: these failures are fundamental design flaws in multi-agent systems, not LLM limitations that a better base model will fix.
Microsoft Taxonomy of Failure Mode in Agentic AI Systems
- Existing AI failures (bias, hallucination, data leakage) amplify in agentic settings.
- Autonomy adds new ones: unintended action at scale, tool misuse, mission drift.
- The whitepaper works as a risk register for agentic products.
Characterizing Faults in Agentic AI (arXiv:2603.06847)
Failures arise from orchestration, internal state evolution, and environment interaction. They are not just "bad code" or "bad model output."
LLM Agent Hallucinations Survey (arXiv:2509.18970)
The survey names two primary manifestations:
- Instruction-following Deviation. The agent doesn't follow the system prompt.
- Long-range Contextual Misuse. The agent forgets or misapplies context from earlier turns.
Sub-intention errors break down into Omission (a missed step), Redundancy (a repeated step), and Disorder (steps out of order).
The five industry-recurring modes
Field analyses from Arize, Galileo, and NimbleBrain (2024-2026) converge on five:
- Hallucinated actions. The agent invokes a tool that doesn't exist or fabricates arguments.
- Scope creep. The agent expands the task beyond the user's ask, creating extra PRs or sending extra emails.
- Cascading errors. One wrong call triggers downstream effects. A phantom SKU hallucination triggers four API calls and a multi-system incident.
- Context loss. On long-horizon tasks, early-turn constraints get forgotten.
- Tool misuse. The agent calls the right tool with wrong arguments, or the wrong tool entirely.
Cascading is the killer. Agents can't distinguish "I failed" from "the task is impossible," so they often hallucinate a success message on a 400 error just to close the loop.
Mitigation: gates at every step
Put automated verification gates at every step of a reasoning chain, checking factual grounding against environment state. Concretely:
- Per-step safety classifier (Lesson 21).
- Tool-call argument validation (Lesson 06).
- Cross-check retrieved content against known facts (Lesson 05, CRITIC).
- Detect success hallucination by re-probing state: was the file actually created?
Where failure monitoring goes wrong
- Tagging only crashes. Most agent failures produce valid-looking output, so you need content-level checks.
- No baseline. Drift detection needs a last-known-good. Without one you can't say "this is getting worse."
- Over-alerting. If every failure pages someone, nobody reads the pages. Cluster and rate-limit.
Build It
code/main.py implements a stdlib failure-mode tagger:
- A synthetic trace dataset covering the five modes.
- Detector functions per mode, matching signature patterns on tool calls, outputs, and repeated actions.
- A tagger that labels each trace and reports the mode distribution.
Run it:
python3 code/main.py
The output is per-trace labels plus an aggregate distribution. It's a cheap reproduction of what Phoenix's trace clustering surfaces.
Use It
- Phoenix for production drift clustering (Lesson 24).
- Langfuse for session replay and annotation.
- Custom detectors for domain-specific signatures your observability platform can't catch.
Ship It
outputs/skill-failure-detector.md generates failure-mode detectors tailored to your domain and wired to a trace store.
I treat these failures as design problems in my own harness, not as something to wait out until the next base model. MASFT's central claim is that they are fundamental design flaws and not LLM limitations, and I'd take that at face value: if a better model won't remove them, the fix has to live in the code around the model. My bet is on verification gates at every step, and the state re-probe is the gate I'd start with, because an agent that hallucinates a success message on a 400 error will report done while the target state is unchanged. I'd also set a baseline before trusting any alert. Without a last-known-good, I can't say whether the agent is getting worse.
Exercises
- Add a detector for "success hallucination": agent returns success but the target state is unchanged.
- Tag 100 real traces from a product you've built. Which mode dominates? What's the cost of fixing it?
- Implement a "cascade radius" metric: given a failure at step N, how many downstream steps did it affect?
- Read MASFT's 14 failure modes. Pick three that apply to your product. Write detectors.
- Wire one detector into a CI job: fail the build if >=5% of traces tag a mode.
Key Terms
| Term | What people say | What it actually means |
|---|---|---|
| MASFT | "Multi-agent failure taxonomy" | Berkeley 14-mode categorization |
| Cascading error | "Ripple failure" | One early mistake propagates through N steps |
| Context loss | "Forgot the constraint" | Long-horizon turn drops early-turn facts |
| Tool misuse | "Wrong tool / wrong args" | Valid call, wrong invocation |
| Success hallucination | "Faked completion" | Agent claims success on a 400; state unchanged |
| Scope creep | "Overreach" | Agent does more than asked |
| Instruction-following deviation | "Disobedience" | Ignores system prompt or user constraint |
| Sub-intention errors | "Plan bugs" | Omission, redundancy, disorder in plan execution |
Further Reading
- Cemri et al., MASFT (arXiv:2503.13657): 14 failure modes, 3 categories
- Microsoft, Taxonomy of Failure Mode in Agentic AI Systems: risk register
- Arize Phoenix: drift clustering in practice
- Anthropic, Building Effective Agents: when simpler patterns avoid modes entirely
Code
- main.py (python, 204 lines)