Primary domains: D1 Agentic Architecture & Orchestration (27%) · D2 Tool Design & MCP Integration (18%) · D5 Context Management & Reliability (15%) — spans 60%
Identical domain profile to s1.md. This is the heart of the 27% domain that no CPN course teaches — if only one lab gets built properly, make it this one or S4.
Brief
A multi-agent research system on the Claude Agent SDK. A coordinator agent delegates to specialized subagents: one searches the web, one analyzes documents, one synthesizes findings, one generates reports. The system researches topics and produces comprehensive, cited reports.
Task statements in play
| ID | Statement |
|---|---|
| 1.1 | Design and implement agentic loops for autonomous task execution |
| 1.2 | Orchestrate multi-agent systems with coordinator-subagent patterns |
| 1.3 | Configure subagent invocation, context passing, and spawning |
| 1.6 | Design task decomposition strategies for complex workflows |
| 2.1 | Design effective tool interfaces with clear descriptions and boundaries |
| 5.1 | Manage conversation context to preserve critical information across long interactions |
| 5.3 | Implement error propagation strategies across multi-agent systems |
| 5.6 | Preserve information provenance and handle uncertainty in multi-source synthesis |
The decisions it tests
Subagents do not inherit context. The single most testable fact in this scenario: a subagent does not automatically receive the coordinator's conversation history or share memory between invocations. Context must be passed explicitly in the prompt — which means the synthesis subagent needs the complete findings from the search and analysis agents included in its prompt, not a reference to them.
Hub-and-spoke, deliberately. The coordinator manages all inter-subagent communication. Routing everything through it buys observability, consistent error handling, and controlled information flow. Subagents talking directly to each other loses all three.
allowedTools must include Task. A coordinator cannot spawn subagents at all unless the Task tool is permitted. Mechanical, and exactly the kind of thing an exam item hinges on.
Parallelism is one response, not several turns. Spawn parallel subagents by emitting multiple Task calls in a single coordinator response. Issuing them across separate turns serializes the work.
Partition scope to avoid duplicate work. Assign distinct subtopics or source types per subagent. The guide also names the opposite risk: decomposition so narrow that broad research topics end up incompletely covered.
Goals, not procedures. Coordinator prompts should specify research goals and quality criteria rather than step-by-step instructions, so subagents can adapt. Pair this with iterative refinement: the coordinator evaluates synthesis output for gaps, re-delegates targeted queries, and re-invokes synthesis until coverage is sufficient.
Provenance survives the handoff. Use structured data formats that keep content separate from metadata — source URLs, document names, page numbers — so citations remain attributable through synthesis. Losing attribution mid-pipeline is how a "cited report" stops being one.
Reference build
- A coordinator with an
AgentDefinitionper role, each with its own system prompt and restricted tools allowedToolsincludingTask; two subagents spawned in a single response to show real parallelism- Explicit context passing: the synthesis prompt carries the full findings, structured so URLs and page numbers stay attached
- Scope partitioned by subtopic, with a note on where narrow decomposition would lose coverage
- A refinement loop: synthesis reports gaps → coordinator re-delegates → synthesis re-runs
fork_sessionused once to compare two synthesis strategies from a shared baseline
Traps
- Assuming shared memory or inherited history between coordinator and subagents.
- Subagent-to-subagent communication "for efficiency" — loses observability and error handling.
- Parallel
Taskcalls spread across turns. - Step-by-step coordinator prompts that prevent subagent adaptation.
- Truncate over structure — summarizing findings down before synthesis and losing provenance, instead of passing structured content with metadata intact.