Orchestration Patterns
The exam tests one orchestration pattern: hub-and-spoke. Learn why all communication routes through the coordinator and why coverage gaps always trace back to its decomposition.
The CCAR-F exam focuses on exactly one multi-agent orchestration pattern: hub-and-spoke. A central coordinator (the hub) manages every interaction with specialized subagents (the spokes). The coordinator decomposes the task, selects which subagents to invoke, passes each one explicit context, aggregates their results, and applies uniform error handling. Subagents only ever talk to the coordinator - never to each other.
The cardinal rule: all communication flows through the coordinator
Subagents never communicate directly with one another - not for efficiency, not for convenience, not for any reason. Centralizing every message through the coordinator buys three things that a mesh of chatty agents cannot provide:
- Observability - one place to log and monitor every interaction.
- Consistent error handling - the coordinator applies uniform recovery policies.
- Controlled information flow - the coordinator decides exactly what context each subagent receives.
An answer that proposes two subagents talking to each other to "save a round trip" is a distractor. It breaks observability, consistent error handling, and controlled information flow. All communication must route through the coordinator, regardless of the efficiency argument.
Letting the research subagent hand its output straight to the synthesis subagent to "save a round trip." This mesh destroys observability, uniform error handling, and controlled information flow.
Every message routes through the coordinator. It receives each subagent's result, decides what the next subagent needs, and passes only that - one place to log, recover, and control what each spoke sees.
Subagent isolation
This is the single most misunderstood idea in multi-agent systems. Subagents do not automatically inherit anything from the coordinator. There is no shared memory, no global state, and no cross-invocation history.
- No automatic context inheritance - subagents do not receive the coordinator's system prompt, its conversation history, or other subagents' results.
- No cross-invocation memory - calling the same subagent twice gives the second call zero knowledge of the first.
- Explicit context passing is mandatory - every fact a subagent needs must be written into its prompt by the coordinator.
What the coordinator owns
| Responsibility | What it means |
|---|---|
| Dynamic subagent selection | Invoke only the subagents a query actually needs - do not always run the full pipeline. |
| Research scope partitioning | Give each subagent a distinct, non-overlapping assignment to avoid duplication. |
| Iterative refinement | Evaluate output for gaps and re-delegate until coverage is sufficient - not single-shot. |
| Centralized routing | Pass all information between subagents through the coordinator. |
The narrow-decomposition failure mode
This is the pattern the exam tests most. Suppose a system researching "the impact of AI on creative industries" produces a report thorough on visual arts but silent on music, writing, and film. The instinct is to blame the search or synthesis subagents - but they performed perfectly on what they were assigned. The failure originates in the coordinator's decomposition. The coordinator only assigned visual arts, so nothing else was ever researched.
When a multi-agent system produces a report that misses entire categories, do not blame the subagents - check the coordinator's decomposition. Incomplete scope (breadth) almost always traces back to how the coordinator split the work. The fix is better decomposition logic, not more subagents.
If the coordinator carves a topic too narrowly, adding subagents just spawns more workers with equally narrow assignments. Improve the coordinator's decomposition breadth instead.
# Coordinator decomposes BREADTH-FIRST, then partitions scope.
subtopics = decompose(topic) # e.g. ["solar", "wind", "geothermal",
# "tidal", "biomass", "fusion"]
# Each subagent gets a DISTINCT, non-overlapping assignment plus
# explicit context - it inherits nothing automatically.
findings = []
for sub in subtopics:
result = coordinator.invoke_subagent(
agent="web_search",
prompt=f"Research {sub} within: {topic}. Context: {shared_context}",
)
findings.append(result)
# Iterative refinement: re-delegate for any gaps before synthesizing.
while has_coverage_gaps(findings, subtopics):
findings += coordinator.refill_gaps(findings, subtopics)How the exam will try to trick you
The distractors below look right under time pressure — learn the tell.
- The trap
A report covers only solar and wind, so the search or synthesis subagents must have failed.
Correct answerThe coordinator's decomposition was too narrow - it never assigned the missing subtopics.
Why: Subagents only research what they are given; if geothermal and tidal were never assigned, no subagent could cover them.
- The trap
Subagents automatically inherit the coordinator's conversation history and system prompt.
Correct answerSubagents have fully isolated context - every needed fact must be passed explicitly.
Why: There is no shared memory; a subagent sees only what the coordinator writes into its prompt.
- The trap
Let two subagents talk directly to each other to save a coordinator round trip.
Correct answerRoute all communication through the coordinator, whatever the efficiency argument.
Why: Direct messaging breaks observability, uniform error handling, and controlled information flow.
- The trap
Fix a too-narrow report by adding more subagents.
Correct answerImprove the coordinator's decomposition breadth.
Why: More workers just receive equally narrow assignments - the scope problem lives in the coordinator, not the count.
Key takeaways
- Hub-and-spoke is the only orchestration pattern the CCAR-F exam tests.
- All communication flows through the coordinator; subagents never talk to each other.
- Subagent isolation means no inherited system prompt, history, or shared memory - context must be passed explicitly.
- The coordinator owns decomposition, subagent selection, scope partitioning, and iterative refinement.
- Coverage gaps (missing categories) trace to the coordinator's decomposition, not subagent quality.
- Adding more subagents does not fix narrow decomposition - fix the coordinator's logic.
Frequently asked questions
What is hub-and-spoke orchestration in Claude multi-agent systems?+
It is an architecture where a central coordinator agent (the hub) manages all communication with specialized subagents (the spokes). The coordinator decomposes tasks, selects and invokes subagents, passes explicit context, and aggregates results; subagents only communicate with the coordinator.
Why do subagents not share context in a hub-and-spoke system?+
Each subagent runs in an isolated context window and receives only what the coordinator writes into its prompt. This isolation keeps information flow controlled and observable, but it means the coordinator must explicitly pass every fact a subagent needs.
Why does a multi-agent report miss whole topics even when every subagent worked well?+
Because the coverage gap comes from the coordinator's decomposition. If the coordinator only assigned a narrow set of subtopics, the other areas were never researched - the subagents can only cover what they are assigned.