A single agent works for narrow tasks. The moment a task spans multiple domains or requires investigation across distinct knowledge areas, you need multi-agent orchestration. The hub-and-spoke pattern is the dominant CCAF model: one coordinator decomposes work, dispatches to subagents, and aggregates results.
Why Hub-and-Spoke?
Subagents have isolated context. They do not see the coordinator's conversation history. This is a feature, not a bug — it keeps each subagent's context window focused on its specific subtask. The coordinator's job is to bridge those isolated contexts: decomposing the user request into focused subtasks, delegating to subagents, evaluating their results, and synthesizing a unified answer.
The Coordinator's Four Responsibilities
- Task decomposition. Take the user request and break it into subtasks that minimize duplication and cover the full scope. A common failure mode is overly narrow decomposition — for example, decomposing "creative industries" into only visual arts subtopics, missing music, writing, and film.
- Delegation. Pick the right subagent for each subtask. Spawning the wrong subagent or routing through the full pipeline when only one subagent is needed both waste tokens and clarity.
- Result aggregation. Receive subagent outputs, evaluate quality, and weave them into a coherent response.
- Gap evaluation. If subagent results are incomplete, re-delegate. The coordinator runs an iterative refinement loop, not a single-shot pipeline.
All Communication Through the Coordinator
Subagents do not talk to each other directly. Every inter-subagent dependency is mediated by the coordinator. This serves two purposes: observability (a single source of truth for what's happening) and error handling (the coordinator can catch a failed subagent's output and route around it).
Common Decomposition Mistakes
- Overly narrow scope. The classic exam example: decomposing "research the music industry" into only "rock music, pop music, hip-hop" — missing classical, jazz, electronic, and the broader business of music.
- Always routing through every subagent. If a user asks a question that only requires the legal-research subagent, don't dispatch to legal, financial, AND technical subagents. Dynamic dispatch saves tokens and focuses outputs.
- Sequential when parallel is possible. Independent subtasks should run in parallel — emit multiple Task tool calls in a single coordinator response.
Skills to Develop
- Write coordinator prompts that include research goals and quality criteria, not step-by-step instructions. The coordinator decides how to decompose, given goals.
- Identify decomposition gaps by checking whether the union of subtasks fully covers the user's request.
- Detect when a subagent's results need iterative refinement vs when they're complete enough.