# Agent Teams -- Examples, Best Practices & Troubleshooting > **Source:** https://code.claude.com/docs/en/agent-teams > **Version captured:** Claude Code v2.1.80 (March 2026) ## Use Case Examples ### Parallel Code Review ``` Create an agent team to review PR #142. Spawn three reviewers: - One focused on security implications - One checking performance impact - One validating test coverage Have them each review and report findings. ``` Each reviewer applies different filter to same PR. Lead synthesizes across all three. ### Competing Hypotheses Investigation ``` Users report the app exits after one message instead of staying connected. Spawn 5 agent teammates to investigate different hypotheses. Have them talk to each other to try to disprove each other's theories, like a scientific debate. Update the findings doc with whatever consensus emerges. ``` Adversarial debate structure fights anchoring bias -- surviving theory is most likely correct. ### Parallel Feature Implementation (with Worktree Isolation) ``` Create a team to implement the new dashboard feature. Developer A owns src/api/* and src/models/*. Developer B owns src/components/* and src/pages/*. Tester writes tests after both devs finish. Require plan approval for developers. Use worktree isolation for each developer. ``` Each developer works in isolated worktree -- own branch, own working directory. No file conflicts even if ownership boundaries overlap accidentally. Tester blocked until both complete. ## Best Practices ### Give Enough Context Teammates don't inherit lead's conversation. Include details in spawn prompt: ``` Spawn a security reviewer with prompt: "Review src/auth/ for vulnerabilities. Focus on token handling, session management, input validation. App uses JWT in httpOnly cookies. Report with severity ratings." ``` ### Size Tasks Right - **Too small**: coordination overhead exceeds benefit - **Too large**: teammates work too long without check-ins - **Right**: self-contained units with clear deliverable (function, test file, review) ### Start with Research/Review If new to agent teams, start with read-only tasks (reviewing PRs, researching libraries, investigating bugs). Shows parallel value without coordination challenges of parallel implementation. ### Use Worktree Isolation for Code Changes For any template where teammates edit code (cook, fix), always use `isolation: "worktree"`: ``` Agent( subagent_type: "fullstack-developer", model: "opus", isolation: "worktree", run_in_background: true, prompt: "..." ) ``` **Benefits:** - Each dev gets own git worktree + branch - No file conflicts -- devs can edit same files independently - `.git` dir shared (common config), everything else isolated - Lead merges branches after all devs complete **When NOT to use:** Research and review templates (read-only, no file edits). ### Spawn with run_in_background Always use `run_in_background: true` when spawning multiple teammates: ``` # Spawn all 3 researchers concurrently (non-blocking) Agent(subagent_type: "researcher", run_in_background: true, ...) Agent(subagent_type: "researcher", run_in_background: true, ...) Agent(subagent_type: "researcher", run_in_background: true, ...) ``` Lead continues orchestration immediately. TaskCompleted events notify when each finishes. ### Wait for Teammates If lead starts implementing instead of delegating: ``` Wait for your teammates to complete their tasks before proceeding ``` ### Avoid File Conflicts Two teammates editing same file = overwrites. Mitigate with: 1. **Worktree isolation** (recommended) -- each dev in own worktree 2. **File ownership boundaries** -- define glob patterns per task 3. **Lead handles shared files** -- restructure tasks if overlap unavoidable ### Monitor & Steer Check progress regularly. Redirect bad approaches. Synthesize findings as they arrive. Letting a team run unattended too long increases wasted effort risk. ### File Ownership Enforcement - Define explicit file boundaries in each task description - Include glob patterns: `File ownership: src/api/*, src/models/*` - If two tasks need same file: use worktree isolation OR escalate to lead - Tester owns test files only; reads implementation files but never edits them ### Leverage Event-Driven Hooks With `TaskCompleted` and `TeammateIdle` hooks enabled: - Lead is automatically notified when tasks complete -- no manual polling needed - Progress is tracked via hook-injected context: "3/5 tasks done, 2 pending" - Idle teammates trigger suggestions: "worker-2 idle, 1 unblocked task available" - All tasks done triggers: "Consider shutting down teammates and synthesizing" **Cook workflow example:** ``` 1. Lead spawns 3 devs (run_in_background: true, isolation: "worktree") 2. TaskCompleted(dev-1, task #1) -> "1/4 done" 3. TaskCompleted(dev-2, task #2) -> "2/4 done" 4. TaskCompleted(dev-3, task #3) -> "3/4 done" 5. TaskCompleted(dev-1, task #4) -> "4/4 done. All tasks completed." 6. Lead merges worktree branches, then spawns tester ``` ### Use Agent Memory for Long-Running Projects For projects with recurring team sessions: - Code reviewer learns project conventions, stops flagging known patterns - Debugger remembers past failures, faster root-cause identification - Tester tracks flaky tests, avoids re-investigating known issues - Researcher accumulates domain knowledge across projects (user scope) Memory persists after team cleanup -- it's in `.opencode/agent-memory/`, not `~/.opencode/teams/`. ### Restrict Sub-Agent Spawning Use `Task(agent_type)` in agent definitions to prevent: - Recursive agent chains (agent spawns agent spawns agent) - Cost escalation (teammate spawning expensive sub-agents) - Scope creep (tester spawning developer to "fix" issues) Recommended: Most agents get `Task(Explore)` only. Planner gets `Task(Explore), Task(researcher)`. ## Token Budget Guidance | Template | Estimated Tokens | Notes | |----------|-----------------|-------| | Research (3 teammates) | ~150K-300K | Read-only, all Opus | | Cook (4 teammates) | ~400K-800K | Highest -- code generation | | Review (3 teammates) | ~100K-200K | Read-only, all Opus | | Debug (3 teammates) | ~200K-400K | Mixed read/execute | Agent Teams use significantly more tokens than subagents (all teammates run Opus 4.6). Use only when parallel exploration + discussion adds clear value. For routine tasks, single session with subagents is more cost-effective. ## Troubleshooting ### Teammates Not Appearing - In-process: press `Shift+Down` to cycle through active teammates - Task may not be complex enough -- Claude decides based on task - Split panes: verify tmux installed and in PATH - iTerm2: verify `it2` CLI installed and Python API enabled ### Too Many Permission Prompts Pre-approve common operations in permission settings before spawning. ### Teammates Stopping on Errors Check output via `Shift+Up/Down` or clicking pane. Give additional instructions or spawn replacement. ### Lead Shuts Down Early Tell lead to keep going or wait for teammates. ### Orphaned tmux Sessions ``` tmux ls tmux kill-session -t ``` ### TeamCreate Fails - Verify `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` is set in settings.json env - Agent Teams requires CLI terminal -- NOT supported in VSCode extension - Only one team per session -- call TeamDelete before creating another ## Limitations - **Model lock**: All teammates must run Opus 4.6 (no mixed-model teams) - **No session resumption**: `/resume` and `/rewind` don't restore in-process teammates - **Task status can lag**: teammates may not mark tasks completed; check manually - **Shutdown can be slow**: finishes current request first - **One team per session**: clean up before starting new one - **No nested teams**: only lead manages team - **Lead is fixed**: can't promote teammate or transfer leadership - **Permissions at spawn**: all inherit lead's mode; changeable after but not at spawn time - **Split panes**: require tmux or iTerm2 only - **VSCode unsupported**: Agent Teams requires CLI terminal