Claude Code agents: o que são e quando usar subagentes no seu projeto

ilustração mostrando como funcionam os Claude Code agents e subagentes isolados
Resposta rápida

Claude Code agents (ou subagentes) são instâncias especializadas do Claude, cada uma com janela de contexto própria, system prompt customizado e permissões de ferramenta independentes. O contexto do subagente começa zerado: ele não herda a conversa, só recebe o texto do prompt, trabalha isolado e devolve ao pai apenas uma mensagem final. Servem pra isolar contexto ruidoso, ler dezenas de arquivos, tocar frentes paralelas, pedir revisão independente e separar fases. A própria Anthropic dá o gatilho: 10 ou mais arquivos a explorar, ou 3 ou mais peças independentes de trabalho

Fala aí, beleza? Você já deve ter vivido isso: a conversa com o Claude Code começa afiada, você joga mais uma tarefa, mais um log de erro, mais um arquivo gigante… e do nada ele parece que ficou meio burro

Não é impressão, é contexto poluído

A conversa principal virou um depósito de coisa que já não importa pra decisão atual, e cada resposta nova nasce em cima daquela bagunça

Subagente é justamente a saída pra isso: tirar o trabalho barulhento da conversa principal e mandar rodar num lugar separado, que devolve só o que interessa

Neste post eu explico o que são os Claude Code agents, como um subagente funciona por dentro, quando vale delegar de verdade e quando é melhor deixar na conversa mesmo 🙂

Como funciona um subagente por dentro

Antes do como criar, o porquê: se você não entende o ciclo de vida, você escreve o prompt errado e culpa o modelo

Subagentes são instâncias especializadas do Claude, cada uma com janela de contexto própria, system prompt customizado e permissões de ferramenta independentes, como descreve a documentação oficial de subagentes

O ciclo é esse aqui:

  1. O contexto do subagente começa VAZIO. Ele não herda o histórico da sua conversa principal, o único conteúdo que chega até ele é o texto do prompt que foi passado na chamada

E aqui mora o erro comum número um: você pede "corrige aquele bug do login" achando que ele viu a conversa toda

Domine o Claude Code do básico ao avançado
Pré-inscrição Formação Claude Code

Domine o Claude Code do básico ao avançado

Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!

Ele não viu nada, beleza? Caminho de arquivo, mensagem de erro completa e decisões que vocês já tinham tomado precisam estar ESCRITAS dentro do prompt, senão o coitado começa do zero e chuta

  1. Ele trabalha isolado. As chamadas de ferramenta intermediárias que o subagente faz não voltam pro pai

É como contratar alguém pra fazer um levantamento: você não acompanha cada aba que a pessoa abriu, você recebe o relatório

O erro comum aqui é esperar acompanhar o passo a passo. Se você precisa ver cada movimento pra decidir junto, essa tarefa não é de subagente

  1. O pai recebe só a mensagem final. O retorno da chamada é o resultado, e mais nada

Ou seja: a qualidade do que volta depende de você ter pedido explicitamente o FORMATO do que quer de volta (lista de arquivos, diagnóstico, patch aplicado). Prompt vago volta resumo vago

  1. Desde a v2.1.198, subagente roda em segundo plano por padrão. O Claude segue trabalhando enquanto o subagente executa e é notificado quando ele termina, segundo as notas da versão 2.1.198

Isso muda o jeito de trabalhar: o que você acompanha é o resultado chegando, não a digitação

Quando usar subagentes no seu projeto

A Anthropic aponta cinco situações que pedem subagente. Vou traduzir cada uma com o tipo de tarefa que cai nela

Isolar contexto de tarefa ruidosa:

Aquele trabalho que gera montanha de saída: rodar a suíte de testes inteira, ler log de build, varrer output de linter

Se isso entra na conversa principal, você queima janela com texto que não vai influenciar mais nada depois do diagnóstico

Manda pro subagente e recebe de volta só o veredito

Levantar contexto lendo muitos arquivos:

"Onde fica a lógica de autenticação nesse projeto?" é a pergunta clássica

A resposta útil tem umas 5 linhas, mas pra chegar nela alguém precisa abrir dezenas de arquivos

Delegar essa parte é o uso mais fácil de justificar

Tocar frentes paralelas sem dependência entre si:

Três peças que não se cruzam: migração de um módulo, atualização de testes de outro, ajuste de documentação

Como cada subagente tem contexto próprio, dá pra rodar as frentes sem uma poluir a outra

Se é isso que você quer explorar mais a fundo, eu já escrevi um post inteiro sobre programação paralela com múltiplos agentes

Obter revisão independente:

Esse é sutil e MUITO massa: quem escreveu o código está enviesado pelo próprio raciocínio

Um subagente que só recebe o diff e a instrução de revisar não sabe as suas justificativas, então ele não compra a sua desculpa

Separar fases sequenciais da tarefa:

Pesquisar, depois planejar, depois implementar, depois verificar

Cada fase entrega um artefato limpo pra próxima em vez de arrastar todo o rascunho junto

O gatilho prático:

A própria Anthropic dá um número pra você parar de filosofar: tarefa que exige explorar dez ou mais arquivos, ou que envolve três ou mais frentes independentes de trabalho

Bateu isso? Delega. Não bateu? Provavelmente resolve na conversa principal mesmo

Como criar um subagente customizado

Agora a parte prática. Subagente customizado é só um arquivo Markdown com frontmatter YAML, nada de mágica

  1. Escolha o escopo. .claude/agents/ é escopo de projeto (vale só naquele repositório) e ~/.claude/agents/ é escopo de usuário (vale em todos os seus projetos)

O erro comum aqui é jogar tudo no escopo de usuário. Agente que sabe as convenções específicas de UM projeto não deveria estar te seguindo em todos os outros

  1. Crie o arquivo com o frontmatter.name e description são obrigatórios, tools e model são opcionais
---
name: revisor-de-migration
description: Revisa arquivos de migration em busca de operação destrutiva, índice faltando e lock perigoso. Use sempre que uma migration nova for criada ou alterada.
tools: Read, Grep, Glob
model: sonnet
---

Você revisa migrations de banco de dados.

Para cada arquivo, verifique: operação que apaga ou renomeia coluna, ausência de índice em coluna usada em filtro, e alteração que pega lock em tabela grande.

Responda em lista, uma linha por achado, com o caminho do arquivo e a linha.
  1. Escreva o corpo pensando que ele É o system prompt. Todo o texto abaixo do frontmatter vira a instrução base daquele agente

É ali que você coloca convenção do projeto, formato de saída e o que ele NÃO deve fazer

  1. Capriche na description, sério. É por ela que o Claude decide sozinho quando acionar aquele subagente

O erro comum deste passo é description genérica do tipo "ajuda com código": com isso ou ele nunca delega, ou delega na hora errada

Descreva o QUANDO, não só o o quê. E, se quiser garantir, dá pra chamar o agente explicitamente pelo nome dentro do seu prompt

  1. Deixe tools e model de fora quando não tiver certeza. Se você omite tools, o subagente herda todas as ferramentas disponíveis para subagentes

Se você omite model, o padrão é inherit, ou seja: ele usa o mesmo modelo da conversa principal

Agora um aviso de estado atual pra você não ficar procurando menu que não existe mais: o assistente interativo do /agents foi removido na versão 2.1.198 do Claude Code

Hoje o caminho é pedir pro próprio Claude criar ou atualizar o subagente, ou editar os arquivos na mão mesmo

E tem ainda um jeito mais efêmero: dá pra definir subagentes por flag de CLI, passando JSON no lançamento do Claude Code

Esses valem só naquela sessão e não são gravados em disco, então servem pra experimento, não pra padrão do time

Os subagentes que já vêm embutidos (e como sobrescrever)

Antes de sair criando os seus, se liga que o Claude Code já traz alguns embutidos, entre eles Explore, Plan e general-purpose

Normalmente eles são acionados de forma automática, sem você pedir nada

O Explore é o mais interessante de entender: ele é somente leitura, voltado a busca e análise de código, e aceita um nível de profundidade definido pelo Claude na hora da chamada (quick, medium ou very thorough)

Faz sentido ele ser read-only, né? Descoberta de arquivo não precisa de permissão de escrita, e agente sem permissão que não precisa é agente que não te dá dor de cabeça

E aqui vai um truque bem legal: se você definir um subagente seu chamado Explore, no escopo de usuário ou de projeto, ele sobrescreve o embutido e mantém o próprio campo model

Na prática isso quer dizer que dá pra manter toda a exploração de codebase num modelo mais barato, tipo model: haiku, enquanto a conversa principal continua no modelo forte

Exploração é leitura e filtragem, não é raciocínio de arquitetura. Faz sentido pagar barato por isso

E quando o mesmo nome existe em níveis diferentes, a ordem de precedência é essa:

  1. managed
  2. flag de CLI
  3. projeto (.claude/agents/)
  4. usuário (~/.claude/agents/)
  5. plugin

Tome cuidado com isso: se um agente seu parece estar sendo ignorado, provavelmente tem outro com o mesmo nome ganhando no nível de cima

O que muda na prática quando o trabalho roda em background

Teoria é bonita, mas quero te mostrar como isso se parece numa execução real

No vídeo abaixo eu mostro esse encadeamento: primeiro eu gerei um documento de plano de implementação, com tarefas em ordem, dependências e critérios de aceitação

Depois pedi pro Claude Code executar aquele plano usando subagentes com TDD (teste primeiro, implementação depois), porque isso ajuda a sair com uma execução já testada, principalmente em projeto maior e com mais regra de negócio

Detalhe que salva: mesmo com o plano ali no contexto, eu referencio o arquivo do plano explicitamente com @, pra garantir que ele execute o documento certo

A execução fechou 14 tarefas do plano

E quando eu mostro a tela, uma das etapas já estava rodando havia quase 10 minutos

Esse é exatamente o ponto conceitual da coisa: enquanto aquilo rodava, o que eu acompanhava era o andamento, não cada chamada de ferramenta lá dentro

O app subiu em localhost:3000 e eu testei na mão: criar conta, login e lançar um gasto

Cadastrei uma despesa de R$ 1.000 em alimentação só pra validar que autenticação e cadastro estavam de pé

Mas não foi um mar de rosas, e eu não vou vender isso como se fosse

Ao abrir o app no navegador, o cadastro deu erro e eu tive que colar a mensagem de volta no Claude Code pra ele analisar e corrigir

Durante a execução também teve MUITO aceite manual, a ponto de eu comentar que valeria considerar pular as confirmações na fase de criação de arquivo e setup

O que eu tiro disso: a execução automatizada cobre pontos de arquitetura que eu provavelmente não teria pensado no começo, ao custo de mais tempo e mais tokens

E a decisão de rodar assim depende do tamanho do projeto. Não é bala de prata, é escolha

Ah, e a interface saiu genérica, aquele visual sem alma… isso eu resolvi depois com uma skill de front-end, não com subagente

Subagente, skill, agent view, agent teams e dynamic workflows

Esses nomes se misturam MUITO na cabeça de quem está começando, então bora separar

A confusão mais comum é skill com subagente:

Skill Subagente
O que entrega Conhecimento portátil e reutilizável Execução isolada
Quem usa Qualquer agente aplica Roda como instância separada
Contexto Aplicado no contexto de quem usa Janela própria, começa zerada
Ferramentas Não define permissão própria Permissões de ferramenta independentes

Resumindo: skill é expertise que se aplica, subagente é execução que se delega

Se você ainda embaralha esses conceitos com comandos, vale ler a comparação de skills, comandos e subagentes com calma

E tem outra coisa que confunde: subagente é só UMA das formas de paralelizar no Claude Code

Caminho O que é
Subagentes Execução isolada com contexto e permissões próprios
Agent view Mostra todas as sessões em andamento e quais precisam de resposta
Agent teams Outro caminho de paralelização disponível
Dynamic workflows Outro caminho de paralelização disponível

O agent view abre pelo comando claude agents no terminal, e é bem útil quando você tem coisa rodando em mais de um lugar e não sabe qual delas está te esperando

Vale delegar sempre? O critério honesto

Não, e quem diz que sim está vendendo alguma coisa

Subagente não é ganho automático, ele tem um preço claro: a janela começa zerada e o único conteúdo que chega é o prompt

Isso significa que TODO o contexto necessário tem que ser reescrito por você ou pelo Claude na hora da chamada

E, do outro lado, volta só a mensagem final

Então delegar tende a ser pior quando:

  • a tarefa é pequena e você resolveria em duas mensagens
  • a tarefa depende fortemente do histórico da conversa (aquele monte de decisão que vocês tomaram juntos)
  • você precisa acompanhar cada passo pra corrigir o rumo no meio

E tende a compensar quando:

  • bate o gatilho de escala (dez ou mais arquivos, três ou mais frentes independentes)
  • o trabalho gera saída ruidosa que não precisa morar na conversa principal
  • você quer uma revisão independente, feita por quem não conhece a sua justificativa

É um trade-off de contexto, não um upgrade grátis

Conclusão

Os Claude Code agents resolvem um problema bem específico: conversa principal virando depósito de contexto que não ajuda mais

O subagente roda com janela própria, system prompt customizado e permissões de ferramenta independentes, recebe só o que você escreveu no prompt, trabalha sozinho e devolve o resultado final

E, desde a v2.1.198, isso acontece em segundo plano por padrão, então o modo de trabalhar muda: você acompanha resultado, não digitação

Seu próximo passo é bem concreto: cria UM arquivo em .claude/agents/ pra uma tarefa repetitiva do seu projeto, aquela que você pede toda semana

Capricha no name (minúsculas e hifens) e principalmente na description, deixando claro QUANDO aquele agente deve entrar

Aí segue trabalhando normal e observa se o Claude delega sozinho na hora certa

Se ele não delegar, quase sempre a description é o problema, não o agente 😀

até o próximo post!

Perguntas frequentes

Qual a diferença entre subagente e skill no Claude Code?

São coisas diferentes, e o post traz a tabela comparando as duas: skill entrega conhecimento portátil e reutilizável, que qualquer agente aplica. Subagente entrega execução isolada, com janela de contexto própria e permissões de ferramenta independentes. Um é expertise que se aplica, o outro é trabalho que se delega.

O que acontece se eu não definir o campo tools no subagente?

Se o campo tools ficar de fora do frontmatter, o subagente herda todas as ferramentas disponíveis para subagentes. Só name e description são obrigatórios nesse arquivo. Vale restringir tools quando você quer um agente só de leitura, por exemplo.

Qual modelo o subagente usa se eu não especificar no frontmatter?

Quando o campo model fica de fora, o padrão é inherit, ou seja, o subagente roda no mesmo modelo da conversa principal. Se quiser fixar um modelo específico, como sonnet, é só declarar o campo model no frontmatter do arquivo.

Como abrir a visão com todas as sessões de agentes em andamento?

É o agent view, que mostra todas as sessões em andamento e sinaliza quais estão esperando resposta sua. Ele abre pelo comando claude agents no terminal, como mostro no fim do post. Ajuda bastante quando você tem coisa rodando em mais de um lugar ao mesmo tempo.

O comando /agents ainda abre um painel para criar subagentes?

Não mais. A partir da versão 2.1.198 do Claude Code, o /agents parou de abrir o assistente interativo e passou a imprimir um aviso apontando para as pastas .claude/agents (projeto) e ~/.claude/agents (usuário). Na prática, hoje você pede pro próprio Claude criar ou atualizar o arquivo, ou edita direto.

Um Explore customizado substitui o Explore embutido do Claude Code?

Substitui, sim. Se você criar um subagente de usuário ou de projeto chamado Explore, ele sobrescreve o embutido e mantém o campo model que você definiu. É assim que dá pra manter a exploração read only rodando num modelo mais barato, como mostro no post.




Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares