One agent is not enough? Spawn more.
When subagents help
Batch jobs (process 10 drafts), multi-angle review (three subagents review the same doc from different lenses), research (look up five sources, then synthesize) — serial work here just wastes time.
A clean tool surface
`spawn_agent` (dispatch), `send_input` / `send_message` (talk), `wait_agent` (await), `close_agent` (collect), `list_agents`, `resume_agent`. Semantics are crisp so the main agent does not get confused.
Observable and pausable
Each subagent has its own visible transcript and can be paused or killed. Hooks apply equally — every subagent action is auditable.
Bounded by design
Depth ≤ 2 and ≤ 4 concurrent per session keep recursion from running away. It is not a limit on capability — it is what lets you trust the system.