MÓDULO 1.2 · Trilha 1 · Fundamentos

🧹 O verdadeiro motivo: contexto limpo

A maioria das pessoas acha que subagentes existem para acelerar. Errado. Eles existem para proteger — proteger o único recurso que você não pode comprar a mais no meio de uma sessão: a janela de contexto.

6
Tópicos
~25
Minutos
Básico
Nível
Teoria
Tipo

Toda sessão do Claude Code tem um limite de tokens — a janela de contexto. Tudo que você digita, tudo que o modelo responde, cada arquivo lido, cada busca feita: tudo ocupa um pedaço dessa janela. Quando ela enche, o modelo começa a esquecer o começo da conversa. Usar um subagente não é sobre fazer duas coisas ao mesmo tempo — é sobre evitar que a leitura bruta envenene o seu contexto antes da hora.

Sem subagente — você mesmo lê 90% janela de contexto 📄 relatorio-jan.pdf — 18 páginas lidas… 📄 relatorio-fev.pdf — 22 páginas lidas… 📄 relatorio-mar.pdf — 31 páginas lidas… ⚠️ contexto quase esgotado — modelo esquece início … mais 297 páginas na fila leitura bruta ocupa a janela toda com subagente Com subagente — você recebe resumo 13% janela de contexto 🔍 subagente (researcher) lendo 300 páginas na janela dele… ✅ Resumo limpo (3 fatos) • Receita cresceu 18% no T1 • Custo de CAC caiu 7% no trimestre só a conclusão entra na sua janela

↑ Sem subagente: a leitura bruta consome 90% da janela. Com subagente: apenas o resumo entra — contexto livre para o que importa.

Conteúdo detalhado

1

📏 A janela de contexto: tokens, status line e %

Cada sessão do Claude Code tem um orçamento de tokens. A status line — aquela barra no rodapé do terminal — mostra em tempo real quanto desse orçamento você já consumiu. Quando chega perto do limite, o modelo começa a "esquecer" as partes mais antigas da conversa. Não existe compra de tokens extras no meio do caminho.

📊 O que ocupa tokens

💬
Mensagens
Tudo que você digitou e tudo que o modelo respondeu, desde o início da sessão.
📁
Arquivos lidos
Cada Read ou Grep injeta o conteúdo bruto na janela — e fica lá.
🔧
Saída de ferramentas
Resultado de Bash, buscas na web, logs — tudo entra na janela como texto bruto.
O que é: a janela de contexto é o limite fixo de memória ativa de uma sessão — medido em tokens, mostrado na status line do terminal.
Por que aprender: entender que a janela tem limite físico é o pré-requisito para entender por que protegê-la é o motivo nº 1 dos subagentes.
Conceitos-chave: tokens · status line · limite fixo · sem recarga no meio da sessão.
status line do terminal rodapé do Claude Code
maestro · Opus  ────────────────────────────────────  ctx 18%  ↑cost $0.04
# leu 3 arquivos? ctx sobe para 34%
# leu 40 arquivos? ctx vai para 87% — quase no limite
# enviou subagente ler 40 arquivos? ctx fica em 18%
2

🚰 Poluição: tudo que você lê fica a sessão toda

Este é o ponto que a maioria ignora: no Claude Code, quando você pede para ler um arquivo, o conteúdo bruto entra na sua janela e fica lá. Ele não sai quando a leitura termina. Ele não some quando você muda de assunto. Só some quando a sessão encerra. Isso significa que ler 50 arquivos no meio de uma tarefa longa pode consumir a janela inteira antes de você chegar na parte que importa.

1

Você pede "leia estes 10 relatórios"

O modelo usa a ferramenta Read dez vezes.

Cada chamada injeta o texto bruto na janela. 10 relatórios de 5 páginas = ~50k tokens consumidos num piscar de olhos.

2

O conteúdo bruto fica na janela

Mesmo depois de o modelo "ter lido".

O Claude já processou a informação — mas o texto das páginas 1-50 continua ocupando slot na janela. É como manter 50 abas abertas que você não vai mais usar.

3

A janela enche antes da parte importante

O modelo começa a esquecer.

Com 90% da janela ocupada por leitura bruta, não sobra espaço para as instruções do final — e o modelo pode "esquecer" o objetivo original da sessão.

⚠️ A armadilha invisível

Você não percebe que está poluindo porque o modelo ainda responde bem por um tempo. O problema aparece só no final: quando você precisa de uma análise complexa e a janela já está quase cheia de leitura descartável. Nesse ponto, não tem como recuperar — a sessão está comprometida.

O que é: poluição de contexto = acúmulo de conteúdo bruto na janela que não será relido mas continua ocupando espaço.
Por que aprender: é o mecanismo exato que os subagentes resolvem — entendê-lo torna óbvia a vantagem de delegar leituras pesadas.
Conceitos-chave: conteúdo bruto · permanência na janela · esgotamento silencioso · janela comprometida.
3

⚖️ Fazer você mesmo × enviar subagente

Às vezes você mesmo deve ler o arquivo — quando a leitura é rápida e você vai precisar raciocinar sobre ela logo em seguida. Mas quando a leitura é pesada, ampla ou descartável (você só quer a conclusão), enviar um subagente protege a sua janela. A distinção é simples: vai sobrar algo útil na minha janela depois que eu ler isso?

✓ Use subagente quando

  • Leitura pesada: muitos arquivos, logs longos, PDFs volumosos
  • Você só precisa da conclusão (não do texto bruto)
  • Busca na web com retorno de páginas inteiras
  • Tarefa repetível que não depende do contexto atual

✗ Faça você mesmo quando

  • É um único arquivo curto que você vai referenciar logo depois
  • A tarefa exige o histórico inteiro da conversa
  • A decisão depende do contexto que só o maestro tem
  • A leitura é a tarefa em si — não há "resumo a extrair"

💡 A pergunta de ouro

Antes de mandar o Claude ler qualquer coisa pesada, pergunte: "Eu vou precisar relê-la no contexto ou só da conclusão?" Se a resposta for só da conclusão, envie um subagente. Simples assim. Esse filtro sozinho evita 80% das sessões comprometidas.

O que é: a decisão de delegar vs. fazer direto — baseada no custo-benefício de consumir a janela principal.
Por que aprender: saber quando não usar subagente é tão importante quanto saber quando usar — delegação desnecessária adiciona latência sem ganho.
Conceitos-chave: custo de contexto · conclusão vs. bruto · delegação intencional · overhead de subagente.
4

📬 O resumo limpo que volta ao maestro

O subagente faz a leitura pesada na janela dele — que é separada, descartável, e some quando ele termina. O que volta para o maestro é apenas a saída estruturada que você pediu: 3 fatos, 1 parágrafo, uma lista de caminhos, um número. Nada do texto bruto que o subagente leu chega na sua janela.

📊 O que "volta" vs. o que "ficou lá"

Ficou na janela do subagente (descartado)
  • O texto bruto dos 300 PDFs
  • Resultados intermediários das buscas
  • Erros e tentativas de leitura
  • Tokens de raciocínio interno
Chegou na sua janela (o que importa)
  • A conclusão: "X aconteceu em 18% dos contratos"
  • Os caminhos relevantes: ["doc/contrato-12.pdf", …]
  • Flags explícitos: "cláusula de rescisão ausente em 4"

💡 Formatar a saída é parte do briefing

O subagente vai devolver exatamente o que você pedir. Se você escrever "devolva no máximo 3 bullets com o que encontrou", ele devolve 3 bullets. Se você escrever "devolva o JSON com os campos X, Y, Z", ele devolve JSON. A compactação do resumo é controlada por você no briefing — não é magia, é instrução.

O que é: o contrato de saída do subagente — apenas a conclusão estruturada chega na janela do maestro; o bruto é descartado.
Por que aprender: entender que a compactação é você quem controla no briefing permite calibrar exatamente quanto contexto você vai consumir.
Conceitos-chave: saída estruturada · janela descartável · briefing de saída · nenhum bruto no maestro.
5

🏆 Por que contexto limpo bate velocidade

Falar que subagentes são "mais rápidos" é tecnicamente verdade para leituras em paralelo — mas é o motivo errado para usá-los. Um subagente serial (um de cada vez) ainda assim protege a janela. A razão nº 1 é qualitativa: uma sessão com contexto limpo raciocina melhor, comete menos erros de "esquecimento" e pode continuar até o fim sem degradação.

Velocidade (motivo secundário)

  • Paralelismo reduz tempo total quando há múltiplos subagentes
  • Mas um único subagente serial não é mais rápido que o maestro fazendo ele mesmo
  • Latência de iniciar o subagente pode até aumentar o tempo total em tarefas pequenas

🧠 Contexto limpo (motivo nº 1)

  • O maestro raciocina sobre o problema, não sobre os dados brutos
  • Sessão longa não degrada — a janela nunca enche de lixo descartável
  • Respostas do maestro mantêm coerência do início ao fim da tarefa

📊 Dados que ajudam a internalizar

  • Um arquivo típico de código ocupa ~2–5k tokens. Ler 40 arquivos = 80–200k tokens a mais na janela.
  • Com um subagente reader, esses 200k ficam na janela dele — na sua janela entra só o resumo de ~500 tokens.
  • Economia potencial: 99,75% do custo de contexto nessa leitura específica.
O que é: a hierarquia de motivos — contexto limpo (qualidade) > velocidade (bônus) ao avaliar se vale a pena usar subagente.
Por que aprender: evita o erro de "não preciso de subagente, está rápido" — a degradação do contexto não é imediata, por isso enganosa.
Conceitos-chave: qualidade vs. velocidade · degradação lenta · motivo nº 1 · coerência de sessão longa.
6

📚 Caso concreto: 300 páginas → 3 fatos

O caso mais expressivo do curso: você tem 300 páginas de relatórios financeiros e precisa de 3 fatos para a sua apresentação de amanhã. Se o maestro ler os 300 documentos, a janela explode. Se um researcher (Haiku) ler tudo na janela dele e devolver apenas os 3 fatos, a sua janela não sai de 15%.

🔢 Os números do caso

~900k
tokens se o maestro lesse tudo
janela explode
~800
tokens que chegam na janela
os 3 fatos estruturados
99,9%
do custo de contexto evitado
janela quase intacta
O que é: a demonstração mais clara do mecanismo: entrada enorme → subagente faz o trabalho → saída mínima chega ao maestro.
Por que aprender: o número (99,9% de economia de contexto) é concreto e memorável — ancora o conceito abstrato em algo tangível.
Conceitos-chave: entrada enorme · saída mínima · researcher · Haiku read-only · economia de contexto em tokens.
📄

Exemplo real: o subagente researcher

O researcher é o subagente arquétipo de proteção de contexto: usa Haiku (barato e rápido), só lê (sem escrever, sem executar), e é explicitamente instruído a devolver apenas o resumo. É o modelo que você vai replicar para qualquer tarefa de "leitura pesada → conclusão compacta".

.claude/agents/researcher.md Haiku · read-only · web
--- # frontmatter: configuração do subagente
name: researcher
description: Pesquisador de contexto limpo. Use quando precisar
  ler muitos arquivos ou buscar na web e só quiser a
  conclusão — não o conteúdo bruto. Mantém a janela
  do maestro quase intacta.
tools: Read, Grep, Glob, WebSearch, WebFetch
model: haiku     # barato e rápido para leitura volumosa
---

# corpo: o comportamento do researcher
You are a research assistant focused on context efficiency.

Primary rule: Never return raw file content or raw web pages.
Always distill. Your output must be ≤ 10% of what you read.

When invoked:
1. Understand what facts the orchestrator needs.
2. Read or search as much as needed (your context, not theirs).
3. Identify only the facts that answer the question.
4. Return a structured summary: bullets, JSON, or a short paragraph.

Output contract:
- Max 5 bullets OR 1 short paragraph OR 1 JSON object.
- Include file paths or URLs as references, not content.
- If nothing found, say so in ≤ 2 sentences.

Do not: paste raw file content · return full web pages ·
exceed the output contract · ask clarifying questions.

⚙️ Por que cada escolha importa

  • Haiku — o mais barato: leitura pesada não precisa de raciocínio profundo.
  • Read+Grep+Web — só leitura: sem risco de escrever ou executar acidentalmente.
  • "≤10% do que leu" — a regra numérica que ancora o output contract.
  • Sem perguntas — o researcher não interrompe o maestro no meio da tarefa.

🧩 Quando acionar este agente

  • "Vasculhe os logs de erro das últimas 2 semanas"
  • "Leia os 8 PRDs e me diga quais mencionam 'autenticação'"
  • "Pesquise na web o estado da arte em RAG e me traga 5 bullets"
  • "Varra a codebase buscando todos os TODO e categorize"
⌨️

Prompts prontos (copie e cole)

Use estes prompts para delegar pesquisa pesada ao researcher e manter a sua janela limpa. Repare no padrão: pedir explicitamente só a conclusão e especificar o formato de saída.

Prompt 1 — pesquisa de documentos leitura volumosa → resumo
Use o researcher pra varrer os PDFs em docs/contratos/
e me trazer só os 3 contratos que mencionam "rescisão
unilateral". Devolva: nome do arquivo + trecho exato (1 linha).
Não cole o conteúdo completo aqui.
Prompt 2 — pesquisa na web busca pesada → bullets
Abra o researcher e peça para ele pesquisar na web
"Claude Code subagent best practices 2025" e me trazer
5 bullets com as principais recomendações. Sem colar
páginas inteiras — só a síntese.
Prompt 3 — varredura de codebase grep pesado → lista estruturada
Use o researcher pra varrer toda a codebase buscando
chamadas a `fetch()` sem tratamento de erro. Devolva
em JSON: { "arquivo": "...", "linha": N, "trecho": "..." }
para cada ocorrência. Não cole o código dos arquivos.
🖥️

Tela simulada: researcher lendo 300 páginas

Veja como a status line do maestro quase não se move enquanto o researcher consome a leitura pesada. O maestro fica livre para raciocinar.

claude code · analisar-relatorios · researcher ativo ⏱ 01:14
# maestro recebeu a tarefa e delegou ao researcher
você > Analise os 300 relatórios em docs/financeiro/ e me traga 3 fatos para a apresentação.
maestro > Delegando ao researcher (Haiku) — aguarde o resumo…
● researcher (Haiku) Haiku
204k tok (dele)
lendo docs/financeiro/relatorio-q1-*.pdf … (197 / 300)
→ Read: relatorio-q1-2023.pdf (4.2k tok) ✓
→ Read: relatorio-q1-2024.pdf (5.1k tok) ✓
→ Grep: "receita" nos 300 arquivos… ✓
maestro · Opus
seu contexto
14% | researcher: 204k (janela dele)

↑ Recriação ilustrativa do terminal (não é screenshot real). Researcher consome 204k tokens na janela dele; o seu contexto fica em 14%.

🎯

Exercício: estime os tokens poupados

Pegue uma tarefa real do seu dia — algo que você já pediu ao Claude e que envolveu leitura de vários arquivos. Calcule (de forma estimada) quantos tokens a mais teriam entrado na sua janela se você tivesse feito sem subagente.

Como fazer (3 passos)

  1. Escreva a tarefa: ex. "ler os logs de deploy da semana (8 arquivos, ~600 linhas cada)".
  2. Estime o tamanho bruto: nº de arquivos × linhas médias × ~4 (tokens por linha) = tokens se o maestro lesse.
  3. Estime a saída do subagente: quantos bullets ou linhas você realmente precisaria como resposta? Multiplique por 4. Essa é a saída que entraria na sua janela com o researcher.

✅ Critério de verificação

Você acertou se:

  • Calculou o token-count bruto (entrada) e o token-count do resumo (saída) separadamente.
  • A diferença entre os dois é maior que 10× (lembrete: a regra do researcher é "≤10% do que leu").
  • Consegue dizer em qual % da janela o maestro ficaria — e isso te preocupa ou não preocupa.

Bonus: se a tarefa não tivesse leitura pesada o suficiente para justificar um subagente, a resposta correta é "não valeria a pena delegar" — e isso também conta como acerto.

Exemplo resolvido

Tarefa: "ler os logs de deploy da semana" — 8 arquivos × 600 linhas × 4 tok ≈ 19.200 tokens brutos se o maestro lesse. Resumo útil: 5 linhas de erro + 2 linhas de conclusão ≈ 28 tokens com o researcher. Economia: 99,85%. O maestro ficaria em ~20% da janela com a leitura bruta — já preocupante para uma sessão longa. Vale delegar.

Resumo do módulo

A janela tem limite fixo — tokens, status line e %. Não dá para comprar mais no meio da sessão.
Poluição é silenciosa — tudo que você lê fica na janela; o problema aparece só no final, quando já é tarde.
A pergunta de ouro — "vou precisar do bruto ou só da conclusão?" Se só da conclusão, delegue.
O resumo limpo — o subagente descarta o bruto; só a conclusão estruturada entra na sua janela.
Contexto limpo > velocidade — o motivo nº 1 é qualitativo: sessão longa raciocina melhor com janela livre.
Caso 300 páginas → 3 fatos — o researcher Haiku consome 99,9% do custo de contexto na janela dele, não na sua.

Próximo módulo:

1.3 — Agente × Subagente × Skill. As três primitivas, suas diferenças e quando escolher cada uma.