Multi-Agent Systems · 2025

Why Do Multi-Agent LLM Systems Fail?

Multi-Agent Systems Why Do Multi-Agent LLM Systems Fail? 2025 · 16 min
Topic
Multi-Agent Systems
Venue
arXiv 2025 · 2503.13657v2
Read
16 min
Source

In one line

Berkeley hand-read 200+ traces from 7 multi-agent LLM frameworks, found they fail 60–86% of the time, and built MAST — a 14-mode taxonomy showing most failures come from bad *system design and coordination*, not weak models.

The breakdown

TL;DR

Multi-agent LLM systems (MAS) are everywhere in marketing decks, but on real benchmarks they barely beat — and often lose to — a single well-prompted agent. The authors did the unglamorous work: six expert annotators read 200+ full execution traces (each ~15,000 lines) from seven popular open-source frameworks and catalogued why they break. The result is MAST (Multi-Agent System Failure Taxonomy): 14 distinct failure modes grouped into three categories — (1) specification issues (42%), (2) inter-agent misalignment (37%), and (3) task verification (21%). The punchline: most failures are organizational, not cognitive. Better base models won’t fix a system whose agents talk past each other, never check completion, or rubber-stamp broken output. They ship an LLM-as-judge that auto-labels traces against MAST (Cohen’s κ = 0.77 vs. humans), so you can run this diagnosis on your own system.

Problem & Motivation

Here’s the uncomfortable fact this paper opens with: adding more agents usually doesn’t help, and frequently hurts. ChatDev — a flagship “AI software company” with designer, coder, and QA agents — solves only 33% of straightforward programming tasks (Tic-Tac-Toe, Chess, Sudoku — problems with thousands of correct implementations online). MetaGPT fails 60% of the time. HyperAgent fails 75%. These aren’t adversarial benchmarks; they’re the tasks the systems’ own papers advertise.

The pain for anyone building or selling MAS: when a multi-agent system fails, you have no idea why. A single failed run is 15,000 lines of agent chatter. Was it a bad prompt? A coordination breakdown? A verifier that didn’t verify? Without a shared vocabulary, every team resorts to ad-hoc trace-reading and superstition (“add another reviewer agent and hope”). Prior work either (a) studied single agents, (b) gave high-level “build effective agents” advice (Anthropic’s blog), or (c) measured aggregate pass-rates without explaining the failures underneath. Nobody had a bottom-up, empirically grounded map of how these systems actually fall apart.

The motivating analogy the authors lean on is organizational: “even organizations of sophisticated individuals can fail catastrophically if the organizational structure is flawed.” Smart agents in a dumb org chart still fail. That reframes the whole problem from “we need smarter models” to “we need better system design.”

What’s New (Core Contribution)

  1. MAST — the first empirical failure taxonomy for MAS. Before: failures were described anecdotally or lumped as “hallucination.” Now: 14 precise, mutually-distinguishable failure modes in 3 categories, each with a definition and example, derived from real traces via Grounded Theory (a qualitative-research method that builds the theory from the data instead of testing a guess).
  2. A validated, scalable LLM-as-a-judge annotator. Before: diagnosing failures meant 20+ hours of expert human annotation per batch. Now: an o1-based pipeline auto-labels traces against MAST at 94% accuracy / κ = 0.77 vs. experts — turning a research method into a tool you can run on your own logs.
  3. Evidence that failures are design problems, not model problems. Before: the default excuse was “the LLM isn’t smart enough yet.” Now: intervention studies show simple design changes (better role prompts, an extra high-level verifier) yield +9.4% and +15.6% on ChatDev with the same base model — proving design is a lever. But crucially, the fixes don’t get anywhere near reliable, so the deeper message is: the structure is the bottleneck.
  4. A fully open dataset: 200+ annotated traces, the judge pipeline, and expert annotations — so the field can build on a common substrate.

The honest read on novelty: the individual failure modes aren’t all new (people have noticed “agents don’t stop” before). What’s new is the rigor — distinct boundaries, inter-annotator agreement of κ = 0.88, generalization to unseen systems (κ = 0.79), and a balanced distribution proving it’s not just an artifact of one framework.

How It Works (Technically)

There’s no model architecture here — the “method” is a research methodology plus a taxonomy plus an automated classifier. Let me walk each part the way you’d actually rebuild it.

Part 1: Building the taxonomy (Grounded Theory)

Grounded Theory is a bottom-up coding process. Instead of starting with hypothesized failure types, you read raw data and let categories emerge:

  1. Theoretical sampling — pick MAS that vary in architecture (assembly line, hierarchical, star topology) so the taxonomy isn’t biased toward one design. They used 5 systems for development (HyperAgent, AppWorld, AG2, ChatDev, MetaGPT) and held out 2 (OpenManus, Magentic-One) to test generalization later.
  2. Open coding — annotators read traces and tag any failure they see with a free-text label, writing “memos” about what they observed.
  3. Constant comparative analysis — each new label is compared against existing ones: is this the same failure or a new one? Labels get merged, split, renamed.
  4. Theoretical saturation — stop when new traces stop producing new failure types. That’s your signal the taxonomy is complete enough.

This took 20+ hours of annotation per person across 150+ traces. The output is the 14-mode taxonomy.

Part 2: Validating it (Inter-Annotator Agreement)

A taxonomy is only useful if different people apply it the same way. The metric here is Cohen’s Kappa (κ) — and since it shows up everywhere in this paper, let me demystify it.

Plain English: κ measures how much two annotators agree beyond what you’d expect from random guessing. If two people label the same 15 traces and agree 90% of the time, that sounds great — but if 80% of traces have the same failure, a coin flip would already agree most of the time. κ corrects for that baseline.

$$\kappa = \frac{p_o - p_e}{1 - p_e}$$

where $p_o$ = observed agreement (fraction of items both labeled identically) and $p_e$ = agreement expected by chance (computed from each annotator’s label frequencies). The numerator is “agreement above chance”; the denominator is “the maximum possible agreement above chance.” So κ = 1 is perfect, κ = 0 is no better than chance, and the field treats κ > 0.8 as “strong” and > 0.9 as “almost perfect.”

The validation arc tells a story: Round 1 started at κ = 0.24 (weak — the initial taxonomy was ambiguous). After iterative refinement, Round 2 hit 0.92 and Round 3 0.84, with a final development κ of 0.88. The low starting point is actually a credibility signal: it shows the categories were genuinely sharpened, not cherry-picked.

Part 3: The 14 failure modes

Organized by when in the agent conversation they originate:

#Failure ModeCategory% of failures
1.1Disobey task specificationSpecification (System Design)10.98%
1.2Disobey role specificationSpecification0.50%
1.3Step repetitionSpecification17.14%
1.4Loss of conversation historySpecification3.33%
1.5Unaware of termination conditionsSpecification9.82%
2.1Conversation resetMisalignment (Coordination)2.33%
2.2Fail to ask for clarificationMisalignment11.65%
2.3Task derailmentMisalignment7.15%
2.4Information withholdingMisalignment1.66%
2.5Ignored other agent’s inputMisalignment0.17%
2.6Reasoning-action mismatchMisalignment13.98%
3.1Premature terminationVerification (Quality Control)7.82%
3.2No or incomplete verificationVerification6.82%
3.3Incorrect verificationVerification6.66%

Category totals: Specification 41.8%, Inter-Agent Misalignment 36.9%, Task Verification 21.3%. The balance matters — no single category dominates, which means there’s no one magic fix.

A concrete failure to anchor this: in an AppWorld trace, the task was “log into the phone app.” The Phone Agent knew the username had to be a phone number, but never told the Supervisor (FM-2.4 Information Withholding). The Supervisor kept retrying with an email address and never asked for clarification (FM-2.2). Result: repeated failed logins, task abandoned. Two smart agents, one dumb conversation. Notice the same surface symptom (“login keeps failing”) could come from withholding, ignored input, or lost context — which is exactly why you need fine-grained modes to find the real root cause.

Architecture & data flow

flowchart TB
  subgraph Collect[1. Trace Collection]
    A[7 MAS frameworks] --> B[Run on benchmarks]
    B --> C[200+ execution traces<br/>~15k lines each]
  end
  subgraph Build[2. Taxonomy via Grounded Theory]
    C --> D[Open coding:<br/>free-text failure tags]
    D --> E[Constant comparison:<br/>merge / split / rename]
    E --> F{Theoretical<br/>saturation?}
    F -->|no| D
    F -->|yes| G[MAST: 14 modes / 3 categories]
  end
  subgraph Validate[3. Inter-Annotator Agreement]
    G --> H[3 annotators label same traces]
    H --> I{Cohen kappa > 0.8?}
    I -->|no, refine| E
    I -->|yes| J[Finalized MAST kappa=0.88]
  end
  subgraph Scale[4. LLM-as-Judge]
    J --> K[o1 + few-shot examples<br/>system prompt = MAST defs]
    K --> L[Auto-label rest of corpus<br/>kappa=0.77 vs humans]
  end
  L --> M[Failure breakdown per system<br/>guides targeted fixes]

Interactive MAST breakdown: the 14 failure modes grouped by category and execution stage. Hover a bar to see the mode and its share of all observed failures. Note how no single category dominates — the bottleneck is spread across design, coordination, and verification.

The algorithm, simplified

The reusable artifact is the LLM-as-judge. Here’s the core loop you’d actually write — it’s a structured classification prompt over a long trace, validated against human labels:

# MAST LLM-as-judge: classify which of 14 failure modes appear in a MAS trace.
# llm(prompt) -> str ; trace is the full agent conversation log.

MAST_MODES = {  # abbreviated; real version has full definitions + examples
    "1.1": "Disobey task specification",
    "1.3": "Step repetition: redundantly repeats completed steps",
    "1.5": "Unaware of termination conditions: doesn't recognize task is done",
    "2.2": "Fail to ask for clarification: proceeds on a wrong assumption",
    "2.6": "Reasoning-action mismatch: stated plan != executed action",
    "3.2": "No/incomplete verification: output never properly checked",
    # ... all 14 ...
}

def judge_trace(trace: str, few_shot_examples: list[str]) -> dict:
    system = (
        "You are an expert annotator. A multi-agent trace FAILED.\n"
        "For EACH failure mode, decide if it is present and cite evidence.\n"
        + "\n".join(f"{k}: {v}" for k, v in MAST_MODES.items())
    )
    # Few-shot examples were the key to reliability:
    # o1 alone -> kappa 0.58 ; o1 + few-shot -> kappa 0.77 (94% accuracy)
    prompt = system + "\n\nEXAMPLES:\n" + "\n".join(few_shot_examples)
    prompt += f"\n\nTRACE:\n{trace}\n\nReturn JSON mapping each mode_id to present + evidence."

    raw = llm(prompt)              # one o1 call over the whole trace
    labels = parse_json(raw)
    # Aggregate across many traces -> a per-system failure histogram (Fig 4),
    # which tells you WHICH mode to attack first.
    return labels

The non-obvious lesson baked into this snippet: few-shot examples roughly doubled agreement (κ 0.58 → 0.77). Definitions alone weren’t enough; the judge needed to see concrete instances of each mode. That’s a transferable trick for any LLM-as-judge you build.

Built on Prior Work

Prior ideaWhat it gaveWhat this paper changes
Grounded Theory (Glaser & Strauss, 1967)A method to build categories bottom-up from qualitative dataApplies it rigorously to LLM agent traces — a first for MAS failure analysis
LLM-as-a-judge (Zheng et al., 2023)Using a strong LLM to evaluate model outputsSpecializes it to failure-mode classification over 15k-line traces, validated against humans
“Building Effective Agents” (Anthropic, 2024)High-level design advice: keep it simple, modularReplaces blog-level intuition with an empirical, fine-grained failure map
Complexity-hurts findings (Kapoor et al., 2024)Showed agentic complexity can lower real-world utilityExtends from single-agent to the multi-agent setting with named mechanisms
High-Reliability Organization theory (Perrow 1984; Roberts 1989)Framework: good structure prevents failures of smart individualsImports the organizational lens to argue MAS failures are structural, not cognitive

The intellectual move worth stealing: they treat a multi-agent system as a human organization and import decades of reliability-engineering theory. That’s why “add a smarter model” is the wrong frame — you wouldn’t fix a dysfunctional company by hiring smarter individuals into a broken process.

Results & Evidence

Headline numbers:

  • Failure rates across systems: MetaGPT 60%, ChatDev 67%, HyperAgent 75%, AppWorld 87%, AG2 41%, Magentic-One 38%.
  • Taxonomy reliability: development κ = 0.88; LLM-judge κ = 0.77 (94% accuracy with few-shot).
  • Generalization to 2 unseen systems on 2 unseen benchmarks: κ = 0.79 — strong evidence MAST isn’t overfit to the development set.
  • Category distribution is balanced (42/37/21), and inter-category correlation is low (0.17–0.32) — the categories really are distinct, not relabelings of each other.
  • Interventions: better role prompts → +9.4% on ChatDev; adding a high-level verifier → +15.6% on ChatDev. Real gains, same base model.

What the evidence establishes: that MAS fail often, that failures cluster into a stable, reproducible structure, that the structure generalizes to new systems, and that design changes move the needle independent of model quality.

What it does NOT establish (read this part if you sell MAS):

  • The numbers across systems are not comparable — each ran on a different benchmark. You cannot conclude “AppWorld is worse than AG2”; they did different tasks.
  • No single-agent baseline table. The motivating claim (“MAS barely beat single agents”) leans on cited prior work, not a head-to-head experiment in this paper. The paper diagnoses MAS failures; it doesn’t prove MAS < single-agent on matched tasks.
  • The fixes plateau. +15.6% sounds good until you realize ChatDev goes from ~33% to ~49% — still failing half the time. The paper is honest that tactical fixes aren’t enough, but that also means it doesn’t demonstrate a reliable MAS, only that the easy levers are insufficient.
  • The judge conflates similar modes. Modes with overlapping symptoms correlate up to 0.63, so the automated breakdown is directionally useful but noisy at the individual-mode level.
  • Correctness only. Efficiency, cost, latency, and security were deliberately pruned — yet the paper notes a 10x cost blowup in one trace. The taxonomy says nothing about the dimensions that often kill production deployments.

How You’d Use It

For an AI services company, MAST is most valuable as a diagnostic and a sales artifact, not as a model to deploy.

  1. Turn it into a “MAS reliability audit” offering. Run the LLM-judge over a client’s agent logs and hand them a failure histogram: “62% of your failures are no/incomplete verification and reasoning-action mismatch.” That’s a concrete, defensible deliverable that ad-hoc trace-reading can’t match.
  2. Use it as a design checklist before you build. Of the 14 modes, several are trivially preventable at design time: explicit termination conditions (1.5), a high-level verifier separate from code-compile checks (3.2/3.3), a structured message schema between agents (kills 2.4/2.5). Bake these in and you’ve eliminated a chunk of the failure surface for free.
  3. Set client expectations honestly. The data — “flagship frameworks fail 60–87% on their own advertised tasks” — is ammunition against the “just wire up CrewAI and it works” fantasy. It justifies charging for engineering rigor rather than glue code.
  4. Measure interventions with MAST, not aggregate accuracy. When you ship a fix, a +5% pass-rate bump tells you nothing about why. A before/after MAST breakdown shows whether you actually killed the targeted mode or just traded one failure for another.

Where it slots in: this is an observability and evaluation layer that sits beside whatever orchestration framework (LangGraph, AutoGen/AG2, CrewAI) you already use.

Build Your Own (Minimal Recipe)

You don’t need to reproduce the Grounded Theory study — that’s already done. The 80%-value build is your own MAST judge over your own traces.

Components and build order:

  1. Trace logging. Capture full agent conversations as structured JSON (who said what, which tool, what result). If you’re on LangGraph/AG2, you mostly get this from the framework’s event stream. This is step zero and the only genuinely tedious part.
  2. The judge prompt. Paste the 14 MAST definitions (Appendix A of the paper) into a system prompt. This is copy-paste.
  3. Few-shot examples — the hard part. You need 1–2 hand-labeled examples per mode drawn from your own domain. This is the part that doubled accuracy in the paper, and it’s where your effort goes. Budget a day of reading your own failed traces and tagging them.
  4. The classification call. One reasoning-model call per trace (o1/o3-class, or a strong open model) returning JSON of {mode: present, evidence}. For long traces, chunk and aggregate.
  5. The dashboard. Aggregate labels into a per-system histogram. A bar chart of mode frequencies is the entire payoff — it tells you what to fix first.

Libraries/models: any orchestration framework for traces; a reasoning LLM (o-series or DeepSeek-R1-class) for the judge; pydantic for JSON validation; a notebook for the histogram. Realistic effort: a strong engineer stands up a working v1 in 2–3 days, with most time on logging plumbing and few-shot curation.

The one trap: don’t trust per-trace labels blindly — validate the judge against ~15 of your own hand-labeled traces (compute κ) before you report numbers to a client.

How to Improve It

  1. Add the missing single-agent baseline. Run each MAS and a single well-prompted agent on the same tasks. This is the experiment everyone wants and the paper doesn’t run. It would settle whether multi-agent is worth it at all, per task type.
  2. Extend MAST beyond correctness. The authors admit they pruned efficiency, cost, latency, robustness, and security. A v2 taxonomy covering “10x token blowup from one-song-at-a-time retrieval” (a real trace) would be immediately useful for production, where cost kills more deployments than wrong answers.
  3. De-conflate correlated modes. Modes with similar symptoms correlate up to 0.63 and fool the judge. A two-stage judge — first detect the surface symptom, then a targeted follow-up to disambiguate root cause (withholding vs. ignored vs. lost-context) — would sharpen the most valuable signal.
  4. Close the loop: auto-suggest fixes. Right now MAST diagnoses; a developer still designs the fix. Map each mode to a library of structural interventions (Table 3 hints at this) and auto-propose them — e.g., “FM-1.5 detected → inject explicit termination check.” That turns a taxonomy into a repair tool.
  5. Test the organizational hypothesis directly. The paper argues failures are organizational. Prove it: hold the agents fixed and vary only the topology (assembly-line vs. star vs. hierarchical) on identical tasks, and show failure modes shift with structure. That would convert a compelling analogy into a causal claim.

Glossary

  • MAS (Multi-Agent System) — multiple LLM agents coordinating via orchestration to solve a task collectively.
  • MAST — the paper’s taxonomy: 14 failure modes in 3 categories (specification, misalignment, verification).
  • Grounded Theory — a qualitative research method that builds categories bottom-up from raw data instead of testing pre-set hypotheses.
  • Open coding — tagging segments of data with free-text labels as a first analysis pass.
  • Theoretical saturation — the stopping point where new data stops producing new categories.
  • Cohen’s Kappa (κ) — agreement between annotators corrected for chance; >0.8 strong, >0.9 almost perfect.
  • Inter-Annotator Agreement (IAA) — study measuring whether different people apply the taxonomy consistently.
  • LLM-as-a-judge — using a strong LLM to evaluate or classify outputs (here, to label failures in traces).
  • Reasoning-action mismatch (FM-2.6) — an agent’s stated plan differs from the action it actually takes.
  • Premature termination (FM-3.1) — the system stops before the task is actually complete.
  • Step repetition (FM-1.3) — agents redundantly redo already-completed steps, often from rigid turn configs.
  • Topology — the coordination structure (assembly line, star/supervisor, hierarchical) connecting agents.
  • Tactical vs. structural fixes — the paper’s split between cheap patches (better prompts, an extra reviewer) and deeper redesigns (standardized protocols, confidence thresholds).