Skip to content
CW101
Comparison

Subagents vs Agent Teams

Subagents contain the cost of a subtask inside one session; agent teams coordinate several full sessions that can message each other.

Last verified August 21, 2026

The short answer

Use a subagent when you want an answer without the context cost of finding it. Use an agent team when you have several genuinely parallel workstreams that each need their own persistent session — and ideally their own working directory.

Can you use both? Yes. Sessions within a team can each spawn their own subagents.

Side by side

Option A

Subagents

Child agents spawned by a session, working in their own context window and returning a result. Can be given a specific model, tool set and permissions.

Pick it when

A subtask would flood the main context — a broad search, a survey of many files, a bounded investigation whose output is a conclusion.

Option B

Agent Teams

Multiple full Claude Code sessions orchestrated together, able to send messages to each other, watched from agent view.

Pick it when

Work splits into strands that each need persistent context, and you want to interject with one without disturbing the others.

The structural difference

Subagents                        Agent teams

    lead session                 session A ←→ session B
    ├── subagent (search)              ↕          ↕
    ├── subagent (review)        session C ←→ session D
    └── subagent (tests)
    ▲ results return here        peers, persistent, messaging

Subagents are a tree. Agent teams are a graph.

Why you would delegate at all

The honest reason is context, not speed.

“Find every place this pattern appears across the repository” is a question whose answer is one paragraph and whose process is thousands of tokens of file contents. Doing it inline means the main session carries those file dumps for the rest of its life.

A subagent pays that cost in a context window that gets thrown away, and returns the paragraph.

Against that: every subagent starts cold. It has none of the context the parent built up, so anything requiring the conversation so far has to be re-explained. Spawning one for a task you could do inline is a straight loss.

Why you would run a team

Different problem. Not “this subtask is expensive” but “these are four separate efforts that will run for hours.”

Cross-session messaging is what makes it a team rather than four unrelated sessions: one can tell another that the interface it depends on has changed.

Worktrees are documented alongside for the obvious reason — two sessions editing one working directory will conflict.

Custom subagents are a safety tool

A subagent can be constrained: a specific model, a restricted tool set, its own permissions. A read-only exploration agent genuinely cannot write, regardless of what it is asked. That is a stronger guarantee than instructing a general-purpose agent to be careful.

At scale

If you find yourself hand-building orchestration, Anthropic documents dynamic workflows as the pattern for coordinating subagents at scale, and has written about how the Claude Code team uses it internally.

Common misconceptions

  • "Subagents make things faster." Sometimes, but that is not the point. Each one starts cold and re-derives context the parent already had. The gain is context hygiene, not wall-clock speed.
  • "Agent teams are just lots of subagents." Subagents report upward and end. Team sessions persist and message each other — a different topology.
  • "Parallel agents mean parallel usage allowance." They consume in parallel too.
  • "Agent view is agent teams." Agent view is the interface for watching parallel sessions. It works with unrelated sessions that are not a team.

Sources

  1. 01Create custom subagents — Claude Code docsOfficialcode.claude.com
  2. 02Orchestrate teams of Claude Code sessionsOfficialcode.claude.com
  3. 03Message your other Claude Code sessionsOfficialcode.claude.com

Start typing to search every entity in the reference.