A subagent is a specialist agent that a parent (or orchestrator) agent delegates work to. It has its own instructions, tools, and often its own memory boundary — scoped to one job, not the whole product.
Subagents exist because a single agent that can do everything tends to do nothing well. Narrow roles reduce tool sprawl, keep prompts focused, and make failures easier to isolate.
When to use a subagent
Use a subagent when a task needs:
- Different tools than the parent should hold (e.g. write access to production data)
- Different expertise packed as skills or prompts
- Isolation so a long research or coding job doesn't pollute the main conversation
- Parallelism — independent specialists working at the same time
Don't spawn subagents for every tiny step. Delegation has overhead: handoff context, result synthesis, and orchestration complexity.
Subagent vs. multi-agent system
A subagent is usually a child role inside one product workflow — the parent remains the face of the interaction. A multi-agent system may be peer agents coordinating through an orchestrator, with no single "main" conversational agent. In practice the patterns overlap; the design question is who owns the user relationship and who owns each capability.
Related reading
See Multi-Agent System for peer coordination, and Agent Orchestration for routing and handoffs.