Lesson 0003 · Domain 1 (27%) · Claude Certified Architect — Foundations

Subagents are stateless — the coordinator is the memory

The single fact behind most coordinator-subagent exam questions. ~9 minutes.
Why you're here. You just missed a Domain 1 mock: a re-spawned CodeReviewer kept re-flagging styles it had already approved, and you blamed a parallel-call race condition. The real cause is simpler and it's the backbone of this 27%-weight domain: every Task call starts a fresh, isolated subagent with no memory. Lock this in and a big slice of Domain 1 falls into place.

1 · The one fact

Each time the coordinator spawns a subagent via the Task tool, that subagent runs in its own isolated context window and starts from a clean slate. It does not:

When the subagent finishes, it returns a short result — then its context is gone. The next Task call is a brand-new worker who never saw the last one.

2 · What actually happened in your mock

COORDINATOR (the only thing with continuous memory: history + agreed style) │ │ Task #1 ─▶ CodeReviewer [fresh context A] ─▶ "style X is fine; fix bug Y" │ ✗ context A is discarded on return │ (coordinator fixes Y) │ │ Task #2 ─▶ CodeReviewer [fresh context B] ─▶ re-flags style X !! ▲ never saw context A — no memory of approving X

Fix: the coordinator must put the prior review's decisions and the agreed stylistic constraints into the prompt of Task #2. The coordinator is the memory; subagents must be re-briefed every call.

│ Task #2 ─▶ CodeReviewer [fresh context B + "already approved: style X; constraints: …"] ▲ now it verifies only the fix to Y ✓

3 · Why it wasn't a race condition

This is the trap you fell into, so it's worth making crisp:

PatternWhat it's forMemory shared?
Parallel — multiple Task calls in one coordinator responseIndependent subtasks run at once for speed (e.g., search + analyze)No
Sequential — one Task, then another in a later turnA step that depends on a prior result (e.g., fix → re-verify)No

Your verify-after-fix flow is sequential — there's no concurrency to race. And the symptom is the giveaway: a race would produce garbled / inconsistent output, but "re-flags the same styles it already approved" is the textbook signature of memory loss. The clincher: even with perfect ordering, the bug remains — so the cause is missing context, not sequence.

The mental model

Every Task call hires a new contractor with amnesia. They remember nothing from last time. The coordinator holds the project memory and must hand over the full brief — prior decisions, agreed constraints, relevant findings — on every call. Equivalently: subagents are stateless function calls — pass all needed arguments each time; there is no shared global.

4 · The rest of Domain 1 this unlocks

FactExam-relevant detail
Spawning mechanismSubagents are spawned by the Task tool; a coordinator's allowedTools must include "Task" or it can't delegate at all.
Pass context structuredWhen handing findings to the next subagent, separate content from metadata (source URLs, dates) so attribution survives — don't dump raw text.
Coordinator routes everythingAll inter-subagent communication flows through the coordinator (observability, consistent error handling). Subagents don't talk to each other.
Narrow-decomposition riskIf the final output misses whole subtopics while every subagent "succeeded," suspect the coordinator's decomposition — the subagents nailed what they were assigned; the assignment was too narrow.

5 · When to reach for multi-agent (and when not)

Anthropic's research system (Opus-4 lead + Sonnet-4 subagents) beat single-agent Opus by 90.2% on their research eval — but multi-agent burns ~15× the tokens of a chat (a single agent is ~4×). So it's a deliberate tradeoff, never a default.

✅ Use multi-agent when…❌ Avoid when…
Breadth-first: many independent directions at onceSteps depend on each other
Information exceeds one context windowAll agents must share the same context
Heavy parallelization / many complex toolsMost coding work (tightly coupled)

The "avoid" column is just this lesson restated: subagents are isolated and share no memory, so dependencies and shared context break. And scale effort to complexity — a simple fact = 1 agent; broad research = 10+ subagents. (Source: Anthropic, multi-agent research system.)

Practice — diagnose like the exam

Scenario → cause/fix. Recall before the feedback shows.

Primary source

📖 Read once: Anthropic's How we built our multi-agent research system — the orchestrator–worker section shows subagents working in isolated context windows and why the lead agent must pass detailed task descriptions. Pair with the Claude Code subagents docs ("clean slate" / separate context window).