Skip to content
datarekha

Why multi-agent systems fail

Multi-agent systems fail because coordination adds its own bugs: unclear roles, lossy hand-offs, correlated mistakes, and missing verification. The MAST taxonomy makes those failures diagnosable, while reliability arithmetic and production patterns show when to add agents and when to remove them.

Written and reviewed by Last reviewed

12 min read Advanced Agentic AI Lesson 36 of 78

What you'll learn

  • Why coordination, not just model weakness, makes multi-agent systems fragile
  • The three MAST categories and how to recognise each from a failed trace
  • How serial reliability, correlated errors, and lossy hand-offs compound
  • How typed contracts, verification gates, bounded execution, and end-to-end evals reduce failures
  • When a single agent or deterministic workflow is safer than a team of agents

Before you start

At 3:07 a.m., a support system receives this request:

Refund the customer’s second charge. It was a duplicate.

A manager agent asks a policy agent whether duplicate charges qualify. A ledger agent checks the payment history. A finance agent issues the refund. The final answer says, “Refund completed.”

At 9 a.m., finance discovers that the second charge was not a duplicate. It was the customer’s renewal on a different plan. The policy agent quoted the right rule, but the ledger agent compared the wrong account. The finance agent trusted the word “eligible” and had permission to move money.

Every individual message looked reasonable. The system still made a costly mistake.

That is the distinctive difficulty of a multi-agent system: several language-model agents coordinate through messages, tools, and shared state to complete one task. Coordination can add capability, but it also adds boundaries. At each boundary, context can be dropped, meaning can shift, authority can be misunderstood, and an unverified guess can become someone else’s “fact.”

A stronger model may make each local answer better. It does not automatically repair the organisation around those answers.

The MAST taxonomy: three places it breaks

The Multi-Agent System Failure Taxonomy, or MAST, is the name used by Mert Cemri and co-authors in their empirical paper, Why Do Multi-Agent LLM Systems Fail? A Taxonomy of Failure Modes in Multi-Agent Systems. The authors derived 14 failure modes from 1,600 execution traces across seven multi-agent LLM systems. MAST describes failures observed in that corpus; it is not a claim that every system fails in only these ways.

Its three diagnostic categories are:

  1. System Design Issues — the system was set up incorrectly.
  2. Inter-Agent Misalignment — agents failed to communicate or coordinate.
  3. Task Verification and Termination — the system failed to check its work or stop correctly.

One trace can contain all three. In the refund example, the finance agent had unsafe authority, the ledger result was badly handed off, and no gate checked the account before the side effect. Find the first point where the system’s state stopped representing the task correctly rather than simply asking whether the final model “reasoned badly.”

Where multi-agent systems break1 · System DesignIssues• unclear roles• weak task spec• lost original goalthe design was wrong2 · Inter-AgentMisalignment• missing information• meaning changed• conversation derailedthe hand-off broke3 · Task Verificationand Termination• no checking• accepted wrong result• stopped too earlyno one caught it
MAST’s three categories locate the first broken assumption: the design, the conversation, or the checking and stopping logic.

1. System Design Issues

This failure exists before the first model call. A role such as “payment specialist” is incomplete until its permissions, inputs, outputs, policy version, and tools are explicit. May it inspect transactions, decide eligibility, or call the refund API?

For example:

Duplicate charges are refundable within 30 days.

That is a policy statement, not a decision. A safer contract says:

Return eligible, ineligible, or needs_evidence.
Include the policy version, matching transaction IDs, and the reason.
Never authorise or execute a payment.

Models produce plausible answers to underspecified tasks; they do not reliably notice when two reasonable interpretations lead to different actions. Common design failures include overlapping roles, poor decomposition, missing tool constraints, and local prompts that omit the global objective.

2. Inter-Agent Misalignment

A message is an interface. If the interface is a paragraph of prose, the receiving agent must reconstruct structure from language.

Consider eligible. To the policy agent it might mean “the charge meets the written rule.” To finance it might mean “approved and ready to execute.” Both interpretations are natural; only one is safe. Long transcripts add another risk: summarisation can silently drop the transaction ID or original customer.

A robust hand-off separates the result, evidence, uncertainty, and permitted action:

{
  "task_id": "refund-4821",
  "decision": "needs_evidence",
  "policy_version": "refund-policy-2026-04",
  "matching_transaction_ids": ["txn-91"],
  "amount_cents": 1299,
  "missing": ["account-level payment history"],
  "next_action": "ledger_agent_must_check_account_scope",
  "can_execute": false
}

The receiving agent can now distinguish a conclusion from a partial result or request for evidence.

3. Task Verification and Termination

A system can perform ten competent steps and still fail because nobody checks the final premise. A language-model critic is not automatically a verifier: with the same incomplete evidence, it may produce a more confident version of the same mistake.

For a refund workflow, gates should check that:

  • the authenticated customer owns both transaction IDs;
  • the transactions match the product and amount;
  • the policy version is current;
  • the proposed amount equals the approved amount and has not already been executed.

These checks belong in code and database queries where possible. Termination also needs typed states such as executed, rejected, needs_human_review, or failed, plus limits on turns, retries, elapsed time, and spend. “Stop when complete” is not a termination condition.

Why errors cascade

Imagine each agent in a serial workflow succeeds with probability p, and every step must succeed. With n agents, the simple model for end-to-end reliability is p^n.

Here is the arithmetic for agents that are individually correct 95 percent of the time:

# End-to-end reliability of n agents in series, each correct with probability p.
per_agent = 0.95
for n in [1, 3, 5, 10, 20]:
    print(f"{n:>2} agents in series (each 95% reliable): end-to-end = {per_agent**n:.1%}")
 1 agents in series (each 95% reliable): end-to-end = 95.0%
 3 agents in series (each 95% reliable): end-to-end = 85.7%
 5 agents in series (each 95% reliable): end-to-end = 77.4%
10 agents in series (each 95% reliable): end-to-end = 59.9%
20 agents in series (each 95% reliable): end-to-end = 35.8%

Why multiplication? The first agent must be right and the second must be right and the third must be right. Under independence, the probability of all those events is their product.

This is a warning, not a production forecast. Agents are often not independent. If they all see the same stale policy document, they can share one mistake. That is a correlated error: components fail together because they depend on the same input, prompt, model tendency, or tool result. Three agents researching the same pages are not three independent experts; consensus can simply amplify a shared error. This is the conformity failure discussed in multi-agent debate.

Serial agents also add time and cost. Five sequential calls taking 1.2 seconds each need about 6 seconds before network delays, retries, and queueing. Parallelism can reduce wall-clock time, but not the calls or their failure surfaces.

What actually reduces the failures

The fixes are mostly software engineering applied to components that speak natural language.

Make the hand-off a contract

A contract explicitly defines the shape and meaning of data crossing a boundary. It should identify the task, state the result, cite evidence, represent uncertainty, and specify the next permitted action.

Use a small structured object rather than a transcript. Validate it before the next agent sees it, reject missing fields instead of guessing, and include a schema version. Do not treat a model’s confidence: 0.92 as proof unless it is calibrated; evidence references and a needs_evidence state are safer.

Separate decisions from side effects

An agent that recommends a refund should not automatically execute it:

research complete
    -> decision proposed
    -> policy and identity checks passed
    -> approval recorded
    -> payment executed
    -> execution verified

These are state transitions, not suggestions in a prompt. The payment tool should refuse calls unless approval and evidence exist in durable state. This is least privilege: a research agent with refund permissions is not more capable, only more dangerous.

Verify before acting, then bound execution

Put deterministic gates before irreversible actions and after important transformations. Verify the ledger output before granting execution authority, check the amount immediately before the API call, and query the payment system after execution. “The API returned 200” is not always “the refund settled.”

Verification may be deterministic, independent, or human. A verifier must be able to return a failure state; if it can only say “looks good,” it is decoration.

Set maximum turns and retries, a deadline, and an idempotency key: a stable request identifier that lets a tool recognise a repeated request. Persist intermediate state and record why the workflow stopped.

If a timeout may have reached the provider, the outcome is unknown. Reconcile with a status lookup using the idempotency key before retrying; do not return success or issue a second refund. Use outcome_unknown, needs_reconciliation, or needs_human_review as appropriate. Retry only errors known to be retryable.

When fewer agents win

Choose the topology with the fewest unsafe boundaries:

  • Use one agent with tools for one goal and a few tools in shared context.
  • Use ordinary code or a workflow for a fixed sequence with deterministic rules.
  • Use parallel specialists for genuinely independent research with a clear merge rule.
  • Use narrow agents behind typed contracts when different tools, expertise, or permissions provide isolation.

Use multiple agents only when the separation buys independent evidence, parallel work, isolated context, different tools, or a meaningful permission boundary. Dense shared-context work often gets worse as each summary creates another chance to lose the plot.

A production debugging order

When a run fails:

  1. Reproduce the exact run. Save model versions, prompts, tool responses, policy versions, and relevant random settings.
  2. Find the first invalid state. Look for the first missing evidence, changed identifier, schema violation, or false claim of completed work.
  3. Classify it with MAST. Was the design wrong, did the hand-off misalign agents, or did verification or termination fail?
  4. Add the narrowest guard. Fix the contract, permission, deterministic check, or terminal-state rule that would have stopped it.
  5. Add the case to an end-to-end evaluation set. Confirm the original case passes without regressing nearby cases.

Log each invocation, contract, tool call, state transition, retry, verification result, and termination reason. A final transcript cannot answer which component first introduced the wrong transaction ID. End-to-end tracing is the job of agent observability, while workflow-level success belongs in agent evaluation.

Quick check

Quick check

0/3
Q1A policy agent returns “duplicate charges are refundable within 30 days,” and a finance agent immediately issues a refund. Which failure should you investigate first?
Q2Why does a serial workflow with five agents that are each 95 percent reliable have about 77.4 percent reliability in the simple model?
Q3Transfer: three agents inspect the same stale policy document and unanimously approve a high-value refund. Does the agreement provide strong independent evidence? What should the system do?

Next

The conformity problem is examined in multi-agent debate. For choosing a topology, read multi-agent orchestration. For measuring whether the complete system works, see evaluating agents.

Sign in to track your progress

Completed lessons, your XP, level, and streak save to your account — it's free and takes a few seconds.

Practice this in an interview

All questions
When should you use a multi-agent system versus a single agent, and what is the supervisor versus swarm pattern?

Use multiple agents when a task decomposes into distinct specialties or parallel subtasks that exceed one agent's context or reliability; avoid it when a single agent suffices, since multi-agent systems add coordination overhead, latency, cost, and error propagation. A supervisor architecture has an orchestrator routing work to specialized sub-agents, while a swarm lets peer agents hand off control to one another without a central coordinator.

What are the major security risks of deploying autonomous agents?

Autonomous agents are risky because untrusted prompts, retrieved documents, tool outputs, and memories can influence a model that has real authority to read data and take actions. The main risks are prompt injection and hijacking, excessive permissions and confused-deputy actions, data exfiltration, poisoned memory or tools, and runaway cost or destructive loops; defenses must enforce authorization, isolation, approvals, validation, budgets, and auditability outside the model.

How do you evaluate an agentic system, and what is the difference between trajectory and outcome evaluation?

Evaluate an agentic system at both the outcome and trajectory levels: outcome checks whether it completed the task correctly and safely, while trajectory checks the intermediate observations, tool calls, decisions, and policy constraints. Use deterministic assertions for state and side effects, rubric or model-based grading for open-ended output, and trace metrics to catch unsafe, wasteful, or brittle paths.

What is the confused deputy problem in agent systems, and how does it relate to agent-to-agent authentication?

No. Agent-to-agent authentication identifies the calling agent, but it does not establish that the original user authorized the requested action. Preventing a confused deputy requires verified identity propagation, explicit delegation, and authorization at every hop.

Related lessons

Explore further