Multi-Agent Systems: When Several Agents Beat One

Building agents 9 min read

Four people at a table each working on a separate part of one plan
Division of labour helps when the parts are genuinely separable. Otherwise it is meetings.

Multi-agent diagrams are the most seductive artefact in this field. Boxes with job titles, arrows between them, a coordinator at the top — it looks like an organisation chart, and organisation charts feel like progress.

Then it reaches production and the questions start: which agent produced this wrong number, why did the coordinator accept it, and why does one request now cost eleven model calls. This guide is about the conditions under which the answer is still worth it, and how to build one that stays debuggable.

The three conditions#

Multiple agents pay off when all three hold. The subtasks are genuinely independent — neither needs the other’s output to start. Each needs a different tool set or a different model tier, so specialisation buys something real. And the work is slow enough that doing it in parallel changes the user experience. If only two hold, a single loop with more tools is almost always better, cheaper and easier to fix.

Two agents that must talk to each other repeatedly are one agent with an expensive message bus.

Topologies, and what each costs#

Multi-Agent Systems: When Several Agents Beat One — Topologies, and what each costs
TopologyHow it worksCost profileMain failure
SupervisorOne agent delegates to specialistsN+1 loopsSupervisor misroutes
PipelineFixed handoffs, each stage specialisedPredictableA stage degrades silently
Parallel fan-outSame task, several perspectives, mergedHighestMerge step becomes the bottleneck
Debate or criticOne proposes, one challenges2× per exchangeAgreement without insight
BlackboardShared state, agents read and writeUnpredictableRace conditions and loops

Design rules that keep it debuggable#

  1. Give every agent a written contract: what it receives, what it returns, and what it must never do.
  2. Pass structured objects between agents, never free-form prose that the next agent has to re-interpret.
  3. Give the whole request one run identifier and attach it to every call from every agent.
  4. Cap the total across the system, not per agent, or costs compound quietly.
  5. Forbid cycles unless there is an explicit iteration counter and an exit condition.
  6. Make every agent able to return `I could not do this` and make the coordinator handle it.

The evaluation problem nobody plans for#

With one agent you evaluate outcomes. With several you must also evaluate the handoffs, because a system can produce a wrong answer with every individual agent behaving correctly — the router chose badly, or the merge dropped the important half. Build an evaluation set at both levels: end-to-end outcomes, and per-agent input-output pairs captured from real runs. Without the second, a regression tells you the system got worse and nothing about where.

A worked example that is worth it#

Competitive research is a task that genuinely fits: given ten companies, gather public information on each. The subtasks are independent, each is slow, and the merge is a straightforward aggregation into a table. Ten parallel research agents finish in the time one takes, and a single synthesiser produces the summary. Compare that with a support agent handling one customer question: the steps depend on each other in sequence, so splitting it across agents adds handoffs and latency for nothing at all.

Frequently asked questions

Does a supervisor agent improve accuracy?

Only if routing is accurate. A supervisor at 90% in front of specialists at 95% gives you about 85% end to end, and the loss is invisible unless you measure routing separately. Keep the number of specialists small enough to describe each in one sentence.

Is agent debate worth the cost?

Sometimes, for genuinely contestable judgements where you can give the critic evidence to check against. For factual lookups it mostly produces agreement, at double the cost. Measure it against a single-pass baseline before adopting it broadly.

How do I debug a multi-agent failure?

With a shared run identifier on every call, stored inputs and outputs per agent, and a rendering that shows the handoffs in order. If you cannot reconstruct who said what to whom, you cannot fix it, and you will end up rewriting prompts at random.

multi agent systemssupervisor agentagent collaborationparallel agentsagent handoff

All guides

Last updated 2026-08-04 by aiagentdevelopment.info · About us

Written by builders

Every guide is written by engineers who run agents in production, not spun from other sites.

Reviewed on a schedule

This field moves fast. Each guide carries the date of its last review, and we publish the date even when nothing changed.

No paid placements

No model provider, framework or agent platform can buy a mention, a ranking or a link here.

Twelve languages

Every guide is translated, not machine-popped — each language has its own URL and its own review date.

Limits named

We say plainly when a task does not need an agent and a plain script would be cheaper and more reliable.