Verificando acesso...

MÓDULO 4.7

📤 Dispatch e subagents

Dispatch é como o agente principal delega trabalho sem queimar o próprio contexto. Subagent roda isolado, devolve resumo, libera paralelização. Sem isso, Claude Code grande vira contexto entupido rápido.

6
Tópicos
25
Minutos
Avançado
Nível
Code
Tipo
1

🛠️ Agent tool (era Task tool)

Na v2.1.63, a Anthropic renomeou o Task tool para Agent tool. É a primitiva oficial de dispatch — toda delegação passa por ela. Aliases Task(...) ainda funcionam, mas a doc usa "Agent" agora.

📜 Linha do tempo

Antes da v2.1.63:  Task(description="...", subagent_type="...")
Da v2.1.63 em diante:  Agent(description="...", subagent_type="...")
Aliases:               Task(...) continua resolvendo internamente

O comportamento é idêntico — só o nome mudou. Material antigo com Task não quebra.

📥 O que entra

  • description — frase curta do trabalho
  • prompt — instrução completa ao subagente
  • subagent_type — qual perfil usar

📤 O que volta

  • • Resumo curto do que o subagente fez
  • • Não o contexto inteiro dele
  • • Orchestrator decide o próximo passo
2

📝 AGENT.md com frontmatter

Subagentes customizados moram em arquivos .md dentro de .claude/agents/ (projeto) ou ~/.claude/agents/ (usuário). Frontmatter YAML define o perfil.

⚙️ Estrutura canônica

---
name: revisor-pr
description: "Revisa PRs grandes e devolve checklist priorizado"
model: sonnet                  # opcional — padrão = modelo do orchestrator
tools: Read, Grep, Glob, Bash  # allowlist
disallowedTools: Write, Edit   # denylist (aplicada antes)
---
Você é um revisor sênior. Foco em:
- Segurança (injeção, secrets, perms)
- Performance (N+1, alocações)
- Clareza (nomes, comentários, dead code)

Devolva um resumo Markdown com 3 seções:
CRÍTICOS / IMPORTANTES / NICE-TO-HAVE.

O name é o identificador único. Subpastas dentro de agents/ são escaneadas recursivamente mas não afetam o nome. Nomes duplicados: Claude Code mantém um e descarta o outro sem aviso.

✓ Boas descrições

  • "Revisa PRs grandes e devolve checklist priorizado"
  • "Pesquisa código legado em ./services/"
  • "Escreve testes E2E com Playwright"

✗ Descrições ruins

  • "Faz coisas" (vago — nunca dispara)
  • "Agente útil" (sem critério)
  • "Tudo de backend" (sobrepõe outros)
3

🧠 Subagent vs main agent — escopo de contexto

O ponto fundamental: subagente roda em contexto isolado. O orchestrator não vê o que ele leu — só recebe o resumo final. Isso é feature, não bug.

1

Main agent: contexto da sessão

Conhece CLAUDE.md, histórico do chat, decisões tomadas. É o "cérebro" da conversa.

2

Subagent: contexto próprio em branco

Recebe só o prompt da chamada. Lê o que precisa do disco. Devolve resumo.

3

Explore e Plan pulam o pai

Built-in Explore e Plan pulam CLAUDE.md e git status — ficam rápidos e baratos.

4

O orchestrator preserva tokens

Em vez de ler 500 arquivos, manda subagente ler. Volta resumo de 200 tokens em vez de 200k.

📐 Modelo mental

Pense em subagentes como estagiários: você delega uma pesquisa, eles voltam com memorando. Você decide. Eles não viram seu cérebro — viram suas mãos.

4

⚡ Paralelização

Como cada subagente é isolado, você pode rodar vários ao mesmo tempo. Instrução em linguagem natural — Claude faz o spawn.

🚀 Dispatching natural

"Pesquisa os módulos de auth, database e API em paralelo,
 cada um em um subagente separado, e sintetize no fim."

# Claude spawna 3 subagentes simultâneos:
#  - Subagent A → leu auth/, devolveu resumo
#  - Subagent B → leu db/, devolveu resumo
#  - Subagent C → leu api/, devolveu resumo
# Orchestrator sintetiza os 3 resumos em uma resposta final.

Background tasks: background: true roda sem bloquear. CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 desabilita.

✓ Bons casos paralelos

  • Pesquisa em N pastas independentes
  • Code review por dimensão (sec / perf / clareza)
  • Geração de N variantes do mesmo conteúdo
  • Auditoria multi-serviço (cada serviço uma instância)

✗ Quando NÃO paralelizar

  • Tarefas que dependem do output anterior
  • Escrita no mesmo arquivo (corrida de race)
  • Coisa pequena (overhead supera ganho)
  • Bugs onde estado partilhado importa
5

💾 Memória persistente em 3 escopos

Subagentes têm memória que sobrevive entre sessões. Três escopos com regra clara de uso.

👤 user

~/.claude/agent-memory/<name>/

  • • Persiste entre projetos
  • • Preferências pessoais
  • • Não vai pro git

📁 project (padrão)

.claude/agent-memory/<name>/

  • • Compartilhado pela equipe
  • Vai pro git
  • • Recomendado por padrão

🔒 local

.claude/agent-memory-local/<name>/

  • • Específico do clone
  • • Fora do git (.gitignore)
  • • Notas pessoais no projeto

💡 Dica prática

Default project: o ganho de "a equipe inteira tem o mesmo subagente afiado" é maior que o custo de subir notas no repo. Reserve local pra coisa que muda por dev (caminhos absolutos, IDs de ambiente).

6

⚖️ Quando dispatchar vs fazer direto

Nem toda tarefa merece subagente. Overhead de spawn + lida com resumo às vezes é maior que só fazer.

✓ DISPATCHAR quando

  • Pesquisa que vai ler >20 arquivos
  • Múltiplas dimensões independentes
  • Especialização (revisor sec, escritor de testes)
  • Quer preservar contexto do orchestrator
  • Trabalho longo que pode ir pra background

✗ FAZER DIRETO quando

  • Tarefa pequena (<3 ferramentas)
  • Decisões precisam do contexto da conversa
  • Iterativo com humano-no-loop
  • Output precisa do raw, não resumo
  • Debug interativo de um único bug

🧪 Heurística rápida

  1. Vai usar >30% do contexto se eu fizer direto? → dispatch.
  2. São N coisas independentes do mesmo tipo? → dispatch em paralelo.
  3. Preciso do raw output pra próxima decisão? → faça direto.
  4. É iteração curta com humano vendo? → faça direto.
  5. É auditoria/varredura que dá pra deixar rodando? → dispatch background.

💡 Dica prática

Em demo de Claude Code, dispatch é o "uau" técnico. Mostre 3 subagentes em paralelo auditando 3 serviços — a sala vê paralelização real, contextos isolados e síntese. Vende Code sozinho.

📋 Resumo do Módulo

Agent tool (era Task, v2.1.63) — primitiva oficial de dispatch
AGENT.md com frontmatter YAML — name, description, model, tools, disallowedTools
Subagent = contexto isolado — devolve resumo, não raw
Paralelização via linguagem natural — "rode em paralelo, sintetize"
Memória em 3 escopos: user, project, local — project como padrão
Dispatchar quando >20 arquivos, paralelo, longo — direto quando curto e iterativo

Próximo Módulo:

4.8 — 🧩 Skills, connectors, plugins (estrutura, diferenças, onde achar)