Forward-deployed / Learning zone
Agentic workflowsa Generative AI module
Lesson 01

Orchestrating more than one agent

TL;DR

Most tasks are better off as one well-built agent. But sometimes one loop genuinely isn't enough — the work is too big for one context window, has independent threads that could run in parallel, or needs specialists with different tools and permissions. When that's true, the same small number of shapes recur: an orchestrator delegating to subagents, a pipeline of specialists handling one stage each, and peer handoffs where an agent recognizes "not my job" and transfers the conversation. Every shape buys the same two things — isolating messy context and running work in parallel — and pays for them in the same currency: coordination overhead. Adding an agent should require the same justification as adding a service: a named bottleneck that a single loop demonstrably can't clear, not a diagram that looks more impressive with more boxes on it.

🎯 For the product leader

Why it matters — Multi-agent architectures are where budgets multiply fastest. Token spend scales with how many agents are running, and coordination failures are emergent — every individual agent can behave correctly while the system as a whole misbehaves.

What it changes in your decisions — Every additional agent in a design needs to name the specific bottleneck — context, parallelism, or specialization — that a single, better-built agent couldn't clear.

Ask yourself — "Would one agent with better tools and cleaner context do this — and have we actually tried that first?"

Risk if ignored — A five-agent system that is slower, more expensive, and harder to debug than the single agent it replaced, built because the architecture diagram looked like progress.

The mental model: three shapes, one shared cost

Topologies

Three recurring shapes multi-agent work takes · each fits a different reason to split

Pick the shape that fits the reason you split the work, not the other way around.

Shape 1 Orchestrator + subagents
Orch Sub A Sub B

An orchestrator delegates to subagents that report back.

Fits: parallelizable threads · noisy subtasks whose detail shouldn't pollute the main agent's context.
Shape 2 Pipeline · fixed stages
Draft Review Finalize

Stages known in advance, each independently checkable.

Fits: when order is fixed and each stage produces a real artifact you can inspect.
Shape 3 Peer handoff
Triage Special- ist hand off (full context)

An agent recognizes "not my job" and hands the request off with full context.

Fits: triage-then-specialist flows · when the first agent's job is knowing who to route to.

Each shape fits a different reason for splitting the work. An orchestrator delegating to subagents suits a task with independent, parallelizable threads, or one messy subtask whose noisy detail shouldn't pollute the main agent's context. A pipeline suits work whose stages are known in advance and each one is independently checkable — it's the multi-agent version of a fixed workflow, and just as predictable. A peer handoff suits the case where an agent needs to recognize a request isn't its job and pass it, with its full context, to one that specializes in it. All three are developed in full — including the protocol landscape (MCP for tools, A2A for agent-to-agent handoffs, and which of the rest of the acronym soup is real versus speculative) — in Multi-agent systems & protocols.

The discipline that keeps any shape from collapsing

Two things separate a multi-agent system that works from one that quietly produces fragments that don't compose. Handoffs need to be structured artifacts, not vibes — a brief in, a defined deliverable out, with an explicit format and constraints — because most multi-agent failures turn out to be specification failures at exactly these seams. Someone has to own the whole — an orchestrator or a human accountable for the integrated result — or a system can produce work where every individual piece was done well and the combination is nonsense.

A decision rule that survives contact with a vendor pitch

Start with one agent, and fix most "we need more agents" symptoms with better tools, a tighter prompt, and cleaner context first — that alone resolves more of these situations than adding a second agent would. Add a subagent only once a bottleneck has an actual name: a messy subtask worth isolating, independent work worth parallelizing, or a genuine need for different tools or permissions (a deploy-capable agent that only the deploy step ever touches is a security decision as much as an architecture one). Stop adding agents the moment coordination cost starts showing up — in the token bill, in added latency, or in debugging sessions that now span several transcripts instead of one.

Failure modes

Practitioner checklist