AI agents

When to Use Multiple Agents Instead of One

A second agent buys you a boundary and charges you a handoff. Here is how to tell which side of that trade you are on, before you draw the architecture diagram.

On this page
  1. The short answer
  2. What a second agent costs before it earns anything
  3. The four seams that justify a split
  4. The topologies and what each is good for
  5. The handoff is the whole problem
  6. Run the arithmetic before you draw the diagram
  7. Failure modes that only exist once you have two agents
  8. Cheaper moves to try before splitting
  9. How to split an agent that has outgrown itself
  10. The vocabulary, used precisely

The short answer

The short answer

Split one agent into several only when there is a structural seam in the work: different reference material, different permissions, different cadence, or a check that must be independent of the thing it checks. Every other reason is a prompt problem wearing an architecture costume. A split does not make the system smarter. It adds a serialisation boundary, multiplies your context cost, compounds per step error rates, and turns one trace into a tree.

  • 4seams that justify a split: context, authority, cadence, verification
  • 0.95^nhow a per step success rate compounds across n unverified handoffs
  • 1 recordwhat crosses a handoff, never a transcript
  • 1 run idthe thing that must survive every agent, tool call and retry

This guide assumes you have one agent working, or working badly, and someone has said the words "maybe we need a multi agent system". If you are still deciding whether the job wants an agent at all, read agent or workflow first. A good share of proposed multi agent systems are really a directed graph with a model bolted onto three of the nodes.

What a second agent costs before it earns anything

The bill arrives in five places. Price them before you decide, because the benefit is usually one crisp thing and the cost is diffuse.

  • Context re-reads. Whatever the second agent needs to know is sent again. A 6,000 token shared brief across four agents is 24,000 tokens per run, before any agent says anything of its own.
  • Serialisation loss. State that lived implicitly in one context window now has to be written down, and anything you forget is gone. The receiving agent invents a substitute rather than asking.
  • Compounded error. Two steps at 95 percent are 90 percent together. Five are 77 percent. Nothing announces this. It shows up as runs that are subtly wrong rather than loudly broken.
  • Latency addition. Sequential agents add their latencies, and a supervisor spends turns deciding who goes next. A three hop chain is often slower than one agent with a longer prompt.
  • Debugging surface. One trace becomes a tree. Pricing produced a wrong number because intake dropped a field, and the log that proves it is two spans away.
The compounding is what people underestimate

A chain of specialists each doing its job well is not a system that does the job well. Unless a stage verifies the one before it against something external, per step accuracy multiplies. If a five stage pipeline must be right 95 percent of the time end to end, each stage has to be right about 99 percent of the time, which is a far harder problem.

The four seams that justify a split

A split pays for itself when it lands on a seam that already exists in the work. Seams are structural: you can point at one without mentioning models, and it survives a change of provider.

Framework

The Four Seams

Run every candidate boundary past these four. If none fires, you have a prompt, a tool description or a retrieval problem, and splitting will hide it rather than fix it.

01
The context seam

The two halves need different reference material, and holding both degrades the work. The test is subtractive: if you deleted the other half's documents, tools and instructions, would this step get easier? If the honest answer is "about the same", you are splitting for tidiness.

02
The authority seam

The halves need different permissions. Reading arbitrary customer email and writing to the ledger should not happen in one process holding both credentials, because untrusted text plus a write capability in one context is the prompt injection attack surface in a single sentence. This is the strongest reason to split, because it is a security boundary rather than an accuracy preference.

03
The cadence seam

The halves have different triggers, latency budgets or failure policies. A reply that must land in four seconds and a reconciliation that runs at 2am should not share a lifecycle. Fused, each inherits the other's timeouts and retry policy, and neither is right.

04
The verification seam

The checker must not be the author. A critic sharing the author's context, tools and reasoning mostly agrees with it, because it inherits the assumption that produced the error. An independent verifier gets the artifact and the rule, not the story of how it was made. Track the disagreement rate: a critic that approves nearly everything is a cost centre, not a control.

A fifth boundary is organisational: if two teams change two halves on different schedules, split them so deploys do not collide. Write that down as an org decision, so nobody later hunts for a technical rationale that was never there.

The topologies and what each is good for

Most systems described as multi agent are one of six shapes. Pick the shape from the work, not from a diagram you liked.

ShapeUse it whenMain failure modeDebug cost
Single agent, many toolsOne context covers the job and permissions are uniformTool selection degrades as the list grows past roughly a dozenLowest, one linear trace
Router then specialistInputs fall into distinct classes needing distinct toolsMisroutes stay invisible unless you log predicted class beside outcomeLow, plus a routing confusion matrix
Sequential pipelineEach stage has different reference material and a checkable outputError compounding, and no stage owns the end resultMedium, needs per stage evals
Supervisor with workersThe plan is data dependent and workers are interchangeableSupervisor becomes bottleneck and single point of confusionHigh, nested traces, weak attribution
Fan out then reduceItems are genuinely independent, such as 40 documentsPartial failure hidden by a reducer that reports only successesMedium, needs per item status
Author and criticQuality matters more than latency and a written rubric existsThe critic agrees with the author because it shares the contextMedium, needs a tracked disagreement rate
Debate and voting ensembles are deliberately absent. They multiply cost, and agreement between three copies of one model is not evidence of correctness.

Two of these are not really multi agent systems, and that is the point. A router with specialists is a classifier and some prompts, a pipeline is a workflow, and both are cheaper to run and easier to explain on call.

The handoff is the whole problem

Whatever crosses the boundary between two agents is the actual design. Get it wrong and you have built a game of telephone with a token meter attached. Hand over a record, never a transcript.

A transcript invites the receiver to re-derive intent from narrative, differently on every run. A record is typed, carries ids instead of retellings, and states what done means in a way a machine can check. If the receiver genuinely needs the sender's reasoning, the seam is in the wrong place, so move it rather than widening the pipe.

Handoff contract, lift and adaptjson
{
  "handoff_version": "1.2",
  "run_id": "run_8f31c2",
  "from": "intake",
  "to": "pricing",
  "objective": "Price the three line items in quote Q-4471 using the 2026 rate card.",
  "inputs": {
    "quote_id": "Q-4471",
    "customer_id": "cust_1099",
    "line_item_ids": ["li_1", "li_2", "li_3"],
    "rate_card_version": "2026-01"
  },
  "evidence": [
    {"kind": "document", "id": "doc_7a1f", "sha256": "9c1e...", "why": "signed MSA, clause 4"},
    {"kind": "record", "id": "crm/opportunity/55210", "fetched_at": "2026-08-26T09:14:02Z"}
  ],
  "constraints": [
    "Do not contact the customer.",
    "Do not apply a discount above 12 percent without escalating."
  ],
  "done_when": {
    "check": "every line_item_id has unit_price, currency and rate_card_line",
    "machine_checkable": true
  },
  "budget": {"max_steps": 8, "max_tokens": 40000, "deadline": "2026-08-26T09:20:00Z"},
  "on_failure": {"return_to": "intake", "allowed_retries": 1, "must_report": "partial_result"},
  "forbidden_tools": ["send_email", "update_crm_stage"]
}
  1. Objective is one imperative sentence. If it needs two, you are handing over two tasks and the second will be dropped silently.
  2. Evidence carries ids and content hashes, not pasted paragraphs, so an audit can prove months later which version the agent saw.
  3. done_when must be machine checkable. "Pricing looks reasonable" is not a completion criterion, it is a mood.
  4. Budget is enforced by the caller, not requested politely in the prompt. Steps, tokens and wall clock, all three.
  5. forbidden_tools belongs in the runtime, not only the text. The prompt is a suggestion; the tool registry is the boundary.

Run the arithmetic before you draw the diagram

Two numbers settle most of these debates: what the split does to your input token bill, since shared context is sent once per agent, and what it does to end to end reliability without verification. Use your own figures. Read the token price off your provider's current pricing page rather than trusting any article, including this one.

Split cost and compounding estimator

Input tokens only, one run per unit of work. Replace the price with the rate you actually pay today.

0Input tokens per run
0Input cost per day
0End to end success, no verifier (%)

The reliability output ends arguments. At four agents and 95 percent per step, roughly 81 percent of runs come out clean, and the other 19 percent will not spread evenly across your customers. Your options are fewer hops, a verifier at the expensive hop, or a human at the irreversible one, which is keeping a human in the loop where it matters.

Failure modes that only exist once you have two agents

Single agent failures are mostly about tools and context. Multi agent failures are about coordination, and they are harder to see because every individual span looks fine.

  • Duplicate side effects. Two workers both decide the email is theirs to send. Ownership lives in data, not prose: one logical action, one idempotency key from the run id plus a hash of the action, checked against a ledger before execution.
  • Circular delegation. The supervisor delegates down, the worker hands it back as a clarification, and the loop runs politely until the budget dies. Bound delegation depth and break on the second identical action signature.
  • Intent dilution. Each hop paraphrases the goal slightly, and by hop four the agent is confidently solving an adjacent problem. Pass an immutable objective string, unchanged from the origin.
  • The confident empty handoff. A worker returns done with an empty payload because nothing forced it to prove completion. Machine checkable done_when removes this class.
  • Straggler timeouts. Thirty nine documents finish, one hangs, and the reducer waits or quietly drops it. Per item deadlines, and a reduce step that lists failures by id.
  • Supervisor summary drift. The summary of worker output becomes the record, so raw results are unreachable during an incident. Keep worker output addressable and treat the summary as derived.
  • Shared memory write conflicts. Two agents write the same key in one run and last write wins silently. Scope memory per agent, or make writes append only with a writer id.
The tell that you split too early

If incident reviews keep concluding "the handoff dropped a field", the seam is not where you put it. Handoff bugs cluster at boundaries drawn through the middle of one coherent task. A boundary on a real seam fails loudly, at the contract, with a validation error you can read.

Cheaper moves to try before splitting

Before accepting the coordination tax, exhaust the changes that keep one trace and one context.

One agent, more toolsSupervisor with workers
SetupPrompt plus a tool registryPrompt per agent, routing, contracts
Debug pathOne trace, read top to bottomA tree, attribution is a research task
Context costSent onceShared brief sent once per agent
PermissionsUnion of everything, which is the riskPer agent, which is the real benefit
ReliabilityOne step, one failure rateMultiplies unless a stage verifies the last
Breaks down whenTool list grows, instructions conflictImmediately, without contracts and budgets
  • Fix the tool descriptions first. Most "the agent got confused" reports are two tools whose descriptions overlap, and rewriting them takes an afternoon. See designing tools an agent can actually use.
  • Make a subagent a tool call. A summariser with its own small context, called as a function returning a typed result, gives you context isolation without a coordination protocol. Highest value move here, and usually enough.
  • Route, then run one specialist. A cheap classifier in front of three focused prompts beats a supervisor reasoning about which prompt to use, and it is directly measurable.
  • Cut the tool list. Twenty tools where six would do is a selection problem solved by deletion, not by architecture.
  • Add one verifier, not four agents. If quality is the complaint, an independent check on the final artifact recovers more than restructuring the pipeline.

How to split an agent that has outgrown itself

When the seam is real, treat the split as a measured refactor, not a rewrite. The first two steps are the ones people skip.

  1. Freeze a golden set from real runsBefore touching anything

    Thirty to a hundred real inputs with the outcome you wanted, taken from production traffic rather than written by whoever is doing the refactor. Without it you cannot tell a better architecture from a differently broken one.

  2. Instrument the agent you haveOne week of data

    Log per step: tool, arguments, latency, result status, step index, and whether the run hit the budget cap. The seam usually shows up as a cluster of failures around one class of work.

  3. Name the seam out loudTen minutes, in writing

    Write the sentence: we are splitting because the halves need different X, where X is context, permissions, cadence or independence. If the sentence needs the word cleaner, stop and fix the prompt.

  4. Write the contract before the promptsHalf a day

    The JSON schema first, with done_when, budget and forbidden tools. Prompts written before the contract encode assumptions the contract then has to bend around.

  5. Run both versions in shadowOne to two weeks

    Same inputs into both, monolith serving production. Compare golden set success, cost per run, p95 latency and override rate. Expect the split to lose on cost and win on the seam you named. If it loses on both, you have your answer.

  6. Ship behind a flag, keep the old path warmOne month

    Runnable, not commented out. The teams who can fall back in a minute at 4pm on a Friday are the ones who kept the old path deployable.

  7. Add per agent evals and a disagreement alarmOngoing

    Each agent gets a small eval set against its own contract. Alert when a critic's disagreement rate collapses toward zero, which means it stopped checking.

Before you approve a multi agent design
0 of 10 done

The vocabulary, used precisely

Terms worth pinning down
Multi agent system
A system in which two or more model driven components hold separate contexts and exchange typed messages, with at least one of them deciding what happens next. If the sequence is fixed in code, it is a workflow with several model calls, not a multi agent system.
Handoff contract
The typed record passed from one agent to another, carrying an objective, typed inputs, evidence references, constraints, a machine checkable completion condition and a budget. It is the interface of the system and should be versioned like one.
Supervisor
An agent whose tools are other agents. It decides who runs next and when the work is done, which makes it both the coordination point and the most common bottleneck.
Delegation depth
How many nested handoffs deep a run may go before the runtime refuses. Bounding it is what stops two polite agents passing a task back and forth until the token budget dies.
Side effect ledger
An append only record of actions with external consequences, keyed by an idempotency key and checked before execution. It is what stops a retried or duplicated plan from sending the same email twice.
Disagreement rate
The share of artifacts a verifying agent rejects or amends. Tracked over time it tells you whether a critic is doing work; a rate drifting toward zero usually means the critic has been given the author's context.

If a supervisor is the right answer for your case, the build, the tracing and the evals are multi-agent systems and agent observability.

Cite this

ChatGPTalker, "When to Use Multiple Agents Instead of One" (2026). Split an agent only on a structural seam: different context, different permissions, different cadence, or a verification that must be independent of the thing it verifies.

Questions readers ask next

How many agents is too many?
Count your unverified sequential hops and raise your observed per step success rate to that power. If the result sits below the reliability your users need, you have too many hops for the verification you have. The fix is fewer agents or a check between them, not a better prompt.
Is a multi agent system more accurate than a single agent?
Not by construction. Accuracy improves when a split lets each part hold less irrelevant context, or when an independent verifier catches errors the author cannot see. It gets worse when you add hops without verification, because error rates multiply and every handoff loses information that used to be implicit.
What should never cross a handoff between agents?
Raw transcripts, the sender's reasoning trace, and credentials. Transcripts let the receiver re-derive intent differently on every run. Reasoning traces contaminate a verifier so it inherits the author's mistake. Shared credentials destroy the authority seam. Pass ids, typed fields, content hashes, constraints and a completion condition.
How do I stop two agents doing the same thing twice?
Give every side effecting action one owning agent, then enforce it at runtime with an idempotency key derived from the run id and a hash of the action plus its arguments. Write the key to an append only ledger before execution and have the tool refuse keys it has already seen. This also covers retries and duplicated webhooks.
When is a supervisor genuinely the right shape?
When the plan depends on the data, the workers are interchangeable, and the number of steps is unknown before the run starts. Triage across a varied inbox qualifies. If you can draw the sequence on a whiteboard before seeing the input, you want a pipeline or a router, both cheaper to run and easier to explain during an incident.
Cite this

ChatGPTalker. "When to Use Multiple Agents Instead of One Agent." chatgptalker.com, 2026-08-26. https://chatgptalker.com/guides/when-to-use-multiple-agents/

Rather have it built than read about it?

Send the process you want automated. You get a scoped plan back, with the build shape, the stack and a realistic timeline.

Start a project