Multi-Agent Orchestration: When One Smart Agent Beats Five Specialized Ones

Multi-agent systems get proposed by default in a lot of agent tutorials — a “planner” agent, a “researcher” agent, a “critic” agent, coordinated by an orchestrator. It’s an appealing design because it mirrors how a human team would split the work. It’s also, in most cases people reach for it, the wrong first move.

Why splitting into agents feels right and often isn’t

Each additional agent in a pipeline adds three concrete costs that are easy to underweight:

When one agent with more tools beats a pipeline

If the task is “gather information, then reason about it, then produce an answer” — which describes a large fraction of what gets built as multi-agent — a single agent with access to all the relevant tools and a large-enough context window usually does better, because it never loses information at a handoff:

# one agent, several tools — no orchestration layer, no handoff loss
tools = [search_web, query_database, read_file, run_calculation]

agent = Agent(model="claude-sonnet-5", tools=tools, system_prompt=(
    "Research and answer the question. Use whichever tools are relevant, "
    "in whatever order makes sense. You don't need to plan phases up front."
))

The model itself is capable of deciding “search first, then check the database, then calculate” without you hand-coding that sequence into separate agent roles. The tool-calling loop from tool-calling vs. function-calling vs. MCP already handles the “do several things in sequence” case — that’s not, by itself, a reason to introduce multiple agents.

When multiple agents genuinely earn their cost

The decision rule

Before adding a second agent, ask: does this subtask need to not see the other agent’s full context, or am I just organizing my own code into role names? If the honest answer is the latter — you’re calling them “the researcher” and “the writer” because it reads cleanly in a diagram — you’re paying the handoff-loss and compounding-error costs above for an organizational preference, not a functional requirement. Keep it one agent with more tools until something concrete forces the split.

← Back to all articles