Rubric
Contents — domains, guide and mocks

Multi-agent systems and orchestration

CCAR-P 1.415 min read · checked 21 September 2026

Task statementDesign multi-agent systems and orchestration strategies

The orchestrator-subagent shape

Lead agentplans, delegates, synthesises
  • Subagent Aown prompt, own tools
  • Subagent Bruns in parallel
  • Subagent Cfresh context window
  • Verifierchecks against criteria
The lead agent plans and synthesises; each subagent works in its own fresh context and returns only a condensed result. Most multi-agent designs start here.

What a multi-agent system is, and what it costs

A multi-agent system is several agents — each a model using tools in a loop — working on one task. The usual shape, described in Anthropic’s account of its Research feature, is orchestrator-worker: a lead agent analyses the request, decides on a strategy and spawns subagents to explore different parts at the same time, then combines what they return. Each subagent has its own context window, instructions and tools.

The price is tokens. In that same account, agents used about four times the tokens of a chat interaction and multi-agent systems about fifteen times. Anthropic’s later guidance on when to use multi-agent systems puts the overhead at roughly three to ten times the tokens of a single agent doing the same task, coming from duplicated context, coordination messages and summaries at every handoff. The conclusion for an architect is blunt: the task has to be valuable enough to pay for it.

The payoff can be large where it fits. On Anthropic’s internal research evaluation, a lead agent on a larger model with subagents on a smaller one outperformed the larger model working alone by about 90%. Their analysis found that token usage explained most of the variance in performance on a browsing benchmark — which is the real reason multi-agent works: it lets a system spend more tokens in parallel, in separate context windows, than one agent could hold.

Reason to splitWhat it looks likeWhy it helps
Context protectionOne subtask drags in lots of material the rest of the task does not needA subagent reads it all and returns a short summary, so the lead agent’s context stays focused
ParallelizationSeveral independent lines of enquiryBreadth: more ground covered, and elapsed time set by the slowest branch, not the sum
SpecializationMany tools across unrelated domains, or conflicting behaviours (empathetic vs. exacting)Smaller tool sets and focused prompts make tool choice and behaviour more reliable

The same guidance names where multi-agent struggles: work where every agent needs the same shared context, work with heavy dependencies between agents, and much of coding, which has fewer truly parallel pieces than research. Its recommendation is to start with a single well-designed agent and add agents only when one of the three reasons above is a real, observed constraint.

Should this be multi-agent?

What is limiting the single agent?
  • Nothing measured yet
    Single agentmeasure first, then decide
  • Context fills with noise
    Isolating subagentreturns a condensed summary
  • Independent enquiries
    Parallel subagentsif value justifies tokens
  • Tightly coupled steps
    Keep it togetherone agent, maybe a verifier
Check the reasons in order. If none applies, one agent with good tools is cheaper, faster and easier to debug.

Five coordination patterns

Once more than one agent is justified, the next decision is how they coordinate. Anthropic describes five patterns. Learn each by the situation that calls for it and the way it fails, because scenario items describe the symptom rather than the name.

PatternHow it worksFits whenWatch for
Generator-verifierOne agent produces; another checks against explicit criteria and sends feedbackOutput quality is critical and the criteria can be written downThe verifier is only as good as its criteria; cap the loop
Orchestrator-subagentA lead plans, dispatches bounded subtasks, synthesises resultsThe work decomposes cleanly with little interdependenceThe lead becomes an information bottleneck
Agent teamsPersistent workers claim tasks from a shared queue and build up contextLong, independent, multi-step pieces, such as one service each in a migrationWorkers cannot see each other; conflicts over shared resources
Message busAgents publish and subscribe to events; a router delivers themEvent-driven pipelines with a growing set of agentsHard to trace; a misrouted event fails silently
Shared stateAgents read and write a common store with no central coordinatorCollaborative discovery where agents build on each other’s findingsDuplicate work and loops that never converge without explicit stop conditions

Split by context, not by job title

The most common design mistake is to mirror a human org chart: a planner agent, a writer agent, a tester agent and a reviewer agent passing work down a line. Anthropic calls this problem-centric decomposition and warns that it becomes a game of telephone — every handoff loses detail the next agent needed. The better rule is context-centric: draw agent boundaries where the context genuinely separates. An agent that builds a feature should also write its tests, because it already holds the context the tests depend on. How to find those seams in a problem is the subject of 1.5.

Two ways to divide the same work

By role (problem-centric)

  • Planner → writer → tester → reviewer
  • Each handoff drops detail the next needs
  • Every agent re-reads the same material
  • Errors surface late, far from their cause

By context (context-centric)

  • One agent per self-contained piece of work
  • Each piece carries its own checks
  • Little shared context crosses a boundary
  • A verifier checks results against criteria

One multi-agent pattern works reliably almost everywhere: the verification subagent. Checking a result against clear success criteria needs very little backstory, so the context-transfer problem mostly disappears. If a team insists on a second agent, a verifier is usually the one to add first.

Designing the handoff

A subagent knows only what it is told. In the Agent SDK, a subagent starts with a fresh context: its own system prompt, the tool definitions it is allowed, and the prompt string the parent writes when it delegates. It does not see the parent’s conversation or earlier tool results, so file paths, decisions and constraints must be in the brief. Only its final message comes back.

Anthropic learned this the hard way. Early versions of its research lead agent gave short instructions such as “research the semiconductor shortage”, and subagents duplicated each other’s work or misread the task. The fix was to teach the lead to write a proper brief: an objective, an output format, guidance on tools and sources, and clear boundaries. They also taught it to scale effort to the question — a simple fact-finding query needs one agent and a handful of tool calls; a complex one may justify ten or more subagents with divided responsibilities.

A delegation brief, weak and strong

Weaktext

Research competitor pricing.

Strongtext

Objective: find list prices for the
3 rival products named below, EU only.
Scope: public price pages and filings
from the last 12 months. Skip blogs.
Not your job: US prices, discounts
(another agent covers those).
Tools: web_search, fetch only.
Return: a table of product, price,
currency, date, source URL, and one
line on anything you could not find.
Keep it under 300 words.
The strong brief gives the subagent everything it cannot see: the goal, the boundaries, the sources to trust and the exact shape of what to return.

What comes back matters as much as what goes out. Anthropic’s context-engineering guidance describes subagents that may use tens of thousands of tokens exploring but return a condensed summary of roughly one to two thousand. For large artefacts — a long report, a dataset, generated code — the research-system account describes subagents writing their output to storage and passing back a lightweight reference, so the full result does not have to squeeze through the lead agent’s context.

Agent SDK: a bounded orchestrator with two specialistspython
from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition

options = ClaudeAgentOptions(
    allowed_tools=["Read", "Grep", "Agent"],   # Agent lets the lead delegate
    agents={
        "contract-reader": AgentDefinition(
            description="Extracts obligations from one contract. Use per contract.",
            prompt="List obligations as JSON with clause refs.",
            tools=["Read", "Grep"],            # read-only: cannot change anything
            model="haiku",                     # cheaper model for bounded work
        ),
        "checker": AgentDefinition(
            description="Verifies extracted obligations against the source clauses.",
            prompt="Flag any obligation not supported by its cited clause.",
            tools=["Read"],
        ),
    },
    env={"CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH": "1",   # no nested spawning
         "CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS": "5"},  # at most 5 at once
    max_budget_usd=10.0,                                # hard spend cap
)

Bounding and operating the system

An orchestrator decides for itself how many agents to spawn, so an architect has to set the limits. The Agent SDK exposes three: nesting depth, how many subagents run at once, and a spend cap for the whole query that counts every subagent’s requests. Subagents can be given restricted tool lists and a cheaper model. Anthropic’s hosted Managed Agents offers the same idea as a coordinator with a roster of agents, each in its own isolated thread but sharing one sandbox and filesystem; it is in beta, allows one level of delegation, and caps roster size and concurrent threads.

Limits every orchestrator needs

from steering to enforcing ↓

  1. Delegation guidanceprompt: when to spawn, how many
  2. Tool restrictionseach subagent gets only its tools
  3. Depth and concurrencyhow deep, how many at once
  4. Spend capwhole-query budget incl. subagents
  5. Human checkpointsbefore irreversible actions
Each layer is a separate control. Prompt instructions steer delegation; only the enforced limits guarantee it.

Operating the system brings problems a single call never has. Anthropic’s research agents ran synchronously — the lead waited for each batch of subagents — which is simple to coordinate but means one slow subagent holds up everything. Agents are stateful across many tool calls, so a failure midway should resume from a checkpoint rather than restart. Tracing every agent’s decisions is what makes failures diagnosable, and deployments have to avoid breaking agents that are mid-task. Evaluation starts small: Anthropic began with about twenty real queries, used an LLM judge with a rubric on the final result, and kept humans testing for the failures the rubric missed. (Metrics and observability are covered in Domain 4.)

Traps the wrong answers are built from

Tempting but wrongDo this instead
Adding agents because the work has several human rolesSplit only where context separates cleanly; keep coupled work in one agent.
Delegating with a one-line instructionBrief each subagent with objective, scope, sources, boundaries and return format.
Passing full subagent transcripts back to the leadReturn a condensed summary, or write large outputs to storage and pass a reference.
Letting the orchestrator spawn freelySet depth, concurrency and spend limits, and restrict each subagent’s tools.
Starting with a message bus or shared-state meshStart with orchestrator-subagent and evolve only for a specific, observed need.

You should now be able to

  • Decide whether a task justifies multiple agents using context protection, parallelization and specialization.
  • Estimate and explain the token overhead of a multi-agent design against its benefit.
  • Choose among generator-verifier, orchestrator-subagent, agent teams, message bus and shared state for a scenario.
  • Draw agent boundaries by context rather than by role, and add a verifier where it helps.
  • Write a delegation brief and a return contract that survive the handoff.
  • Bound an orchestrator with tool restrictions, depth, concurrency and spend limits.

Practice questions

Original questions written for this lesson, in the exam’s style. Answer first, then open the reasoning — every option is explained, including why the wrong ones are tempting.

  1. Question 1

    A pharmaceutical company’s regulatory team wants a system that, for a new drug candidate, surveys approval precedents across several agencies and many therapeutic areas. A single agent’s runs are thorough on the first agency and shallow on the rest, as its context fills.

    Which design best addresses the problem?

    1. AA larger context window and an instruction to give every agency equal attention.
    2. BA lead agent that briefs one subagent per agency, each returning a condensed, sourced summary.
    3. CA chain of planner, searcher, summariser and reviewer agents passing work down a line.
    4. DA shared-state mesh where agents write findings to a common store with no coordinator.
    Show answer and reasoning
    1. AIncorrect. More room does not stop attention thinning as context grows, and a prompt instruction does not add capacity.
    2. BCorrect. The lines of enquiry are independent and each floods context, so parallel subagents with separate context windows and short returns fit.
    3. CIncorrect. Splitting by role adds handoffs that lose detail; it does not give each agency its own context.
    4. DIncorrect. Nothing in the scenario needs agents to build on each other’s discoveries; this adds convergence risk without benefit.
  2. Question 2

    An orchestrator agent for a bank’s internal audit team occasionally spawns dozens of subagents on broad requests, and one run cost far more than budgeted. The prompt already says “use no more than five subagents”.

    What is the most appropriate change?

    1. AStrengthen the prompt wording to insist on five subagents and warn about cost.
    2. BRemove the orchestrator and have one agent handle every audit request sequentially.
    3. CMove every subagent to the most capable model so fewer are needed per task.
    4. DSet enforced limits on concurrency, nesting depth and total spend for the query.
    Show answer and reasoning
    1. AIncorrect. Prompt guidance steers but does not enforce; the scenario shows it has already been exceeded.
    2. BIncorrect. This may be right for some requests, but it discards parallelism the broad ones need rather than bounding it.
    3. CIncorrect. A more capable model raises the per-token price and does not limit how many agents are spawned.
    4. DCorrect. Enforced depth, concurrency and budget limits bound the run regardless of how the model decides to delegate.
  3. Question 3

    Which situations are good reasons to introduce a second agent? (Select 2.)

    1. AA lookup returns thousands of tokens that the rest of the task does not need.
    2. BThe business process has four stages owned by four different departments.
    3. COutputs must be checked against a written set of criteria before release.
    4. DEach step needs to see every earlier decision in full to do its job.
    5. EThe stakeholder wants the system to sound more advanced in the demo.
    Show answer and reasoning
    1. ACorrect. Context protection: a subagent can absorb the bulky material and return only a short summary.
    2. BIncorrect. Organisational roles are not context boundaries; mirroring them creates lossy handoffs.
    3. CCorrect. A verification agent needs little backstory, so it is one of the most reliable multi-agent patterns.
    4. DIncorrect. Heavy shared context is exactly where multi-agent systems struggle; keep such work in one agent.
    5. EIncorrect. Presentation is not an architectural constraint, and the extra agents would multiply cost.
  4. Question 4

    A logistics firm’s orchestrator delegates carrier-rate research to subagents. Results come back inconsistent: two subagents research the same carriers, and another returns rates in a different currency and format.

    What should the architect change first?

    1. AAdd a message bus so subagents can see each other’s work as they go.
    2. BReplace the subagents with a single agent that researches every carrier in turn.
    3. CHave the lead write each subagent a brief with scope, exclusions and a fixed return format.
    4. DAsk each subagent to return its full transcript so the lead can reconcile the differences.
    Show answer and reasoning
    1. AIncorrect. It adds tracing complexity; the root cause is an underspecified brief, not missing inter-agent messaging.
    2. BIncorrect. That removes the inconsistency by removing the parallelism, when a better brief would keep both.
    3. CCorrect. Duplicated work and mismatched outputs are the classic signs of vague delegation; explicit scope and output contracts fix them.
    4. DIncorrect. Full transcripts flood the lead’s context and do not prevent the duplication in the first place.

Sources

Drafted with AI assistance and checked against the sources above; expert review is in progress. Spotted an error? Tell us and it gets fixed, dated and listed on how this is written.