Subagents offload context-expensive read-only work. The caller receives a digest, not the full trace. Subagents cannot modify state — they research, analyze, and summarize.
When to Delegate
See contract § Subagent Delegation Protocol for authoritative triggers.
Summary:
| Trigger | Threshold |
|---|---|
| Uncertain scope | Assess with cheap ops first → convert to defined |
| Content to read | >250KB of files to READ (not search scope) |
| Processing depth | >2 intermediate tool calls whose outputs aren't needed in final delivery |
Clarification on 250KB:
- •Applies to
Readoperations (full content enters context) - •Does NOT apply to
Grep(only matches enter context) - •Typical sequence: search (cheap) → identify matches → measure size of files to read → apply threshold
Keep Inline When
- •Task requires user interaction mid-execution
- •Result interpretation needs full conversation history
- •Content to read ≤250KB and processing depth ≤2 steps
Delegation Protocol
1. Assess Scope (if uncertain)
# Check total size of files to READ (not search)
stat --printf="%s\n" src/api/*.py | awk '{sum+=$1} END {print sum}'
2. Generate Brief
MODE: SUBAGENT
GOAL: {{objective}}
CONTEXT: {{what caller already knows — no pre-analysis required}}
SCOPE: {{files, directories, or boundaries}}
Brief principles:
- •Write from existing knowledge only — if investigation is needed to specify the goal, that IS the delegated work
- •Vague goals are valid when they reflect genuine uncertainty
- •Subagent has the contract — don't repeat rules in the brief
3. Dispatch
Use Task tool. Subagent inherits contract but operates in Subagent Mode (read-only, no gates, compressed output).
For the Subagent
When receiving a MODE: SUBAGENT brief:
- •Review ~/.claude/AGENT_TOOLS.md — MCP servers often provide efficient alternatives to manual tool chains
- •Work within scope, abort if insufficient
- •Return structured output (see below)
4. Review Output
RESULT: [success | partial | blocked | failed] SUMMARY: [what was found/analyzed] CONCERNS: [issues for caller review] BLOCKERS: [if not success — what prevented completion] DETAILED RESPONSE: [findings]
Review: Verify result addresses goal intent. Address concerns before proceeding.
5. Integrate
- •Success: Use digest, continue main task
- •Partial: Complete inline or re-delegate with narrower scope
- •Blocked/Failed: Surface to user or try alternative approach
Common Delegation Patterns
| Pattern | Goal Template |
|---|---|
| Find definition | "Find where {{symbol}} is defined and its signature" |
| Analyze dependencies | "List what {{module}} imports and what imports it" |
| Explore area | "Understand how {{area}} works" (vague is OK) |
| Search and summarize | "Find all {{pattern}} and summarize their purposes" |
| Architecture survey | "Identify the main components and their relationships in {{area}}" |
Anti-Patterns
Don't delegate:
- •State-modifying operations (subagents are read-only)
- •Decisions requiring user input
- •The debugging hypothesis loop (requires iterative testing with full context)
Exception — debugging research IS delegatable:
- •"Find all call sites of function X"
- •"Find working analogues for this pattern"
- •"Check if error handling exists for case Y"
These support Bug Qualification / Pattern Analysis phases without owning the hypothesis loop.
Parallel Delegation
Independent research tasks can run simultaneously:
- •Identify independent subtasks
- •Generate briefs for each
- •Dispatch in parallel (multiple Task tool calls)
- •Await all results
- •Integrate digests
Dependency awareness: If task B depends on task A's output, dispatch sequentially.