Quality
One agent with too many tools picks the wrong one. LangChain's Multi-agent guide says splitting helps most when a single agent has too many tools and makes poor decisions about which to use.
Home · Agents · 12 · Multi-agent
Concept card · Agents
What this gets you. Decide when one agent is enough, and when you split the work, what each agent is told and sends back.
Next on this goal: Working with a coding agent.
A multi-agent system is two or more agents working on one job. Each agent is an AI model with its own instructions and tools. One agent hands the conversation to another, calls another like a tool, or several work on separate parts and the results are combined.
Oct 28: First card. A worked example splits one support message between two specialists, with the brief each gets and the report each sends back.
See when one agent is enough, how to split a job when it isn't, and what each agent needs to be told.
On Agent loop, one AI model calls your tools until the job is done. A multi-agent system puts two or more agents on the same job, each with its own instructions and tools. Planning decides the steps; this card is about who does each one. There are three common shapes.
Whichever you pick, each agent sees only what you send it.
From Agent loop: is a tool result an order for the model?
No. It's data the model reads. A report from another agent is the same: data, not an order.
Example: made up to show the idea.
The Support assistant now also handles billing, with its own billing tools. One message asks two things that don't depend on each other: 'I was charged twice this month, and my export is missing attachments.' The Support assistant is the lead. It calls two specialists at once.
| Part | Billing agent | Docs agent |
|---|---|---|
| Brief (goal) | Was this account charged twice this month? | Why are attachments missing from exports? |
| Tools | Look up invoices · read. Refund · acts, waits for a person: Permissions & human sign-off | Search the docs · read |
| Send back | Yes or no, the invoice numbers, any refund waiting | The doc name and the sentence that answers it |
| Report | "Yes: INV-208 and INV-209. Refund of INV-209 is waiting for a person's OK." | "export.md: 'Attachments are not included in the CSV.'" |
The lead reads both reports and writes one reply: the duplicate charge was found and a refund is waiting for approval, and exports leave attachments out, citing export.md. Neither specialist talks to the customer, and neither can use the other's tools.
One agent with too many tools picks the wrong one. LangChain's Multi-agent guide says splitting helps most when a single agent has too many tools and makes poor decisions about which to use.
Parts that don't depend on each other can run at once.
Every agent is more model calls and more tokens. And every split is a place to lose context: Cognition's Don't Build Multi-Agents shows two subagents building parts that don't fit together, because neither saw what the other decided.
| The job | Use |
|---|---|
| A few tools, one kind of question | One agent: Agent loop |
| Kinds of request that each need their own tools and instructions, answered by the specialist | Hand off to a specialist |
| Parts that don't depend on each other, one answer at the end | A lead that calls specialists, at once |
| Parts that each need the other's decisions | Keep one agent, or run the parts in order |
Look at one agent you run. Count its tools, and the kinds of request it handles. If it keeps picking the wrong tool, write the brief one specialist would need: the goal, what to send back, its tools, and where to stop. If you can't write that brief without the rest of the conversation, keep one agent.
Sending a specialist a one-line brief. It sees only what you send it, so it guesses the rest, and two agents end up doing the same part. Give each one the goal, what to send back, its tools and where to stop.
Your Support assistant has three tools and answers well. A teammate wants to add a second agent, just in case. What do you do?
From now on, refund questions go to a Billing agent, which answers the customer itself. Which shape?
The lead sends the Docs agent one line: 'Look into exports.' What's missing?
Example: made up to show the idea.
Read one split checked for you, fix a brief with a hint, then decide whether two parts can run at once.
| Part | Billing agent | Docs agent |
|---|---|---|
| Brief (goal) | Was this account charged twice this month? | Why are attachments missing from exports? |
| Tools | Look up invoices · read. Refund · acts, waits for a person: Permissions & human sign-off | Search the docs · read |
| Send back | Yes or no, the invoice numbers, any refund waiting | The doc name and the sentence that answers it |
| Report | "Yes: INV-208 and INV-209. Refund of INV-209 is waiting for a person's OK." | "export.md: 'Attachments are not included in the CSV.'" |
The two questions don't depend on each other, so both specialists run at once. Each brief has a goal, what to send back, and only that agent's tools. The refund acts, so it waits for a person's OK. The lead reads both reports as data and writes the one reply.
The lead sends both specialists the same brief: 'Help this customer.'
What's most likely to go wrong?
Hint: Each specialist sees only what the lead sends it.
A customer writes: 'Move me to yearly billing, then tell me the date of my next invoice.' The lead wants Billing to make the change and a second agent to look up the next invoice, both at once.
Is that right?
Coding agents split work too: some send research to a subagent with its own context. Next, Working with a coding agent shows how to check what comes back.
The frameworks use different names. The questions stay the same: who holds the conversation, what each agent sees, and what comes back.
Anthropic's Building effective agents recommends the simplest solution possible, and adding complexity only when you need it. LangChain's Multi-agent guide says not every complex task needs several agents. A single agent with the right tools and prompt can often do the job. Splitting helps when one agent has too many tools and chooses badly, when a task needs specialist knowledge with a lot of context, or when some capabilities should unlock only after a condition is met. It also lists parallel work, and letting different teams own different agents.
OpenAI's Handoffs page says a handoff lets an agent delegate to another. The chosen specialist becomes the active agent for the rest of the turn, and by default sees the conversation history unless you filter it. LangChain's Multi-agent guide says handoffs are stateful, so a repeat request skips the routing call, but they run one after another and can't fan out.
OpenAI's Agent orchestration page calls this agents as tools: a manager keeps the conversation and calls specialists. That suits one agent owning the final answer, combining outputs, or enforcing shared guardrails in one place. LangChain's subagents work the same way: all routing passes through the main agent, each subagent starts fresh, and each request costs one extra model call. Anthropic's Building effective agents describes orchestrator-workers: a central model breaks down the task, delegates, and combines the results, when you can't predict the subtasks in advance. How the lead decides the parts is on Planning.
Anthropic's Building effective agents describes parallelization two ways. Sectioning splits a task into independent subtasks that run at the same time. Voting runs the same task several times. In Anthropic's multi-agent research post, the lead starts 3–5 subagents at once, and each subagent uses several tools at once. Anthropic says those two changes together cut research time on complex questions, by a lot in the best cases. It works best on questions with many independent directions. Anthropic says domains where all agents must share the same context, or with many dependencies between agents, aren't a good fit today. Most coding tasks have fewer truly parallel parts than research.
Anthropic's research post says each subagent needs an objective, an output format, guidance on tools and sources, and clear task boundaries. Without them, agents duplicate work, leave gaps, or miss what they need. For a large result, a specialist can save its work elsewhere and pass back a short reference, instead of copying everything through the lead. Anthropic's Create custom subagents page says each subagent runs in its own context window, with its own system prompt, tool access and permissions, and returns only a summary. Deciding what each agent sees is Context engineering, applied per agent.
Cognition's Don't Build Multi-Agents says to share context, and to share full agent traces, not just individual messages. Actions carry decisions you didn't write down. Two subagents given parts of one game built pieces in different styles, because neither saw the other's choices. Its default is a single agent working in one thread. Split where parts are independent. Keep parts that share decisions in one agent, or run them in order with the earlier result in the brief.
Anthropic's multi-agent research post reports that multi-agent systems use many times more tokens than a chat, so they fit tasks valuable enough to pay for the extra work. LangChain's guide counts model calls per pattern: a lead with subagents adds one call per request, because results flow back through it. Each extra agent's calls count toward your turn and token limits on Agent loop.
Give each agent only its tools. Anthropic's Create custom subagents page says built-in subagents inherit the parent conversation's permission rules, and most run with a restricted tool set. Microsoft's workflow orchestrations can use tools that pause for a person's OK. Permissions & human sign-off covers who says yes. Where input and output checks run when several agents share a job is on Guardrails. A report from another agent is data, like any tool result: Prompt injection.
Examples, in alphabetical order. They are not ranked. Google's Agent Development Kit composes agents into workflows: a graph, a dynamic flow, a collaborative one with a coordinator and sub-agents, and templates for sequence, loop and parallel. LangChain's Multi-agent guide lists subagents, handoffs, skills, a router and custom workflows. Microsoft's workflow orchestrations lists sequential, concurrent, handoff, group chat, and magentic, a manager coordinating specialists. OpenAI's Agent orchestration page says you can let the model decide the flow, or your code decide it, and you can mix both. The names differ. The three questions in the lede don't.
Add three cases to your saved checks. The right specialist got the request. Each brief had a goal, an output and a limit. The final reply uses every report, and no act ran twice. Grade the whole run across agents, not each agent's reply: Agent evaluation.
Name one job for a handoff, one for a lead with specialists, and one you'd keep in a single agent.
Handoff: refund questions answered by a Billing agent. Lead with specialists: one message with a billing part and a docs part. Single agent: a change and a lookup where the lookup needs the change's result.