antonio leandro

claude, na prática

Building agents with the Claude Agent SDK

post · 04 · agentes · Anthropic · · ~11 min de leitura do original

a tese

um agente não precisa de uma api melhor, precisa de um computador: bash, sistema de arquivos e o loop reunir contexto → agir → verificar. o harness do claude code vale para qualquer domínio, não só para código

o que fica

  1. O Claude Code SDK virou Claude Agent SDK porque o mesmo harness já rodava pesquisa, criação de vídeo e anotações dentro da Anthropic — o nome amarrava a ferramenta a código sem necessidade.
  2. A recomendação é começar por busca agêntica com grep e tail e só adicionar busca semântica se precisar de velocidade: vetores são mais rápidos, mas menos precisos, mais difíceis de manter e menos transparentes.
  3. Subagente resolve dois problemas ao mesmo tempo: paraleliza tarefas e isola contexto, devolvendo ao orquestrador só o trecho relevante em vez da janela inteira.
  4. A estrutura de pastas e arquivos que você dá ao agente é uma forma de engenharia de contexto, não um detalhe de implantação.
  5. Gerar TypeScript e rodar o linter é melhor que gerar JavaScript porque tipo e lint são camadas extras de feedback automático que o agente consegue ler e corrigir sozinho.
  6. LLM como juiz é o método de verificação mais fraco da lista: pouco robusto e pesado em latência, justificável só quando qualquer ganho de qualidade compensa o custo.

o problema

O modelo de agente que circulava até aqui era simples de descrever e frustrante de operar: um loop que recebe um prompt, uma lista de ferramentas declaradas e devolve chamadas até parar. Funciona para tarefas com fronteira estreita. Quebra quando o agente precisa lidar com um arquivo de log de duzentos megabytes, guardar alguma coisa entre uma volta e outra do loop, ou descobrir sozinho que errou. Cada equipe reconstruía do zero a mesma tríade — busca, memória, verificação — em cima de uma API que não oferecia nenhuma das três.

A Anthropic tropeçou na resposta por acidente. Construiu o Claude Code para produtividade interna de engenharia e passou a usá-lo para pesquisa profunda, criação de vídeo e anotações. Segundo o post, o harness passou a alimentar quase todos os principais agent loops da casa. O que estava quebrado, então, era o nome e o enquadramento: o pacote que fazia o Claude escrever código não tinha nada de específico de código, e ninguém de fora percebia isso. Daí o renome para Claude Agent SDK, em setembro de 2025.

a ideia

Dar um computador ao agente. O princípio de projeto do Claude Code é que o Claude precisa das mesmas ferramentas que um programador usa todo dia: encontrar arquivos, editar, rodar, depurar, repetir. O terminal já é a interface universal para isso — e, uma vez que você entrega bash e sistema de arquivos, o agente lê CSV, busca na web, monta visualização e interpreta métrica sem que você tenha escrito uma ferramenta para cada caso.

Em cima disso vem o loop: reunir contexto, agir, verificar o trabalho, repetir. É a estrutura que o post usa para organizar tudo o que o SDK oferece, e o exercício que ele propõe é montar um agente de e-mail encaixando cada recurso numa das três etapas.

como funciona

Reunir contexto tem quatro instrumentos. O sistema de arquivos é o principal: a pasta é o contexto potencial, e o Claude decide com grep ou tail quanto de um arquivo grande puxa para a janela. Busca semântica — chunking, embedding, consulta vetorial — é a alternativa mais rápida, e a orientação é deixá-la para depois, quando a latência da busca agêntica incomodar. Subagentes rodam com janela própria e devolvem só o excerto útil; no agente de e-mail, viram vários buscadores paralelos contra o histórico. Compaction resume as mensagens anteriores automaticamente quando o limite se aproxima, herdado do comando /compact do Claude Code.

Agir tem quatro também. Ferramentas custom são as ações primárias, e ocupam lugar de destaque na janela — o post insiste que desenhá-las mal é desperdício de contexto, e aponta para o texto sobre escrever ferramentas eficazes. Bash cobre o resto: baixar um PDF anexo, converter para texto, varrer. Geração de código aparece como categoria à parte porque código é preciso, componível e reutilizável; a criação de arquivos no Claude.ai é inteiramente isso, scripts Python que montam planilha, apresentação e documento. E MCP entrega integração pronta com Slack, GitHub, Drive ou Asana sem que você escreva OAuth.

Verificar tem três, em ordem decrescente de confiabilidade. Regras explícitas são o melhor formato: lint, validação de endereço, aviso quando o destinatário nunca recebeu e-mail antes. Feedback visual serve para tarefas de interface — screenshot do HTML renderizado devolvido ao modelo, automatizável com um MCP do Playwright, checando layout, estilo, hierarquia e se algo ficou espremido. LLM como juiz fecha a lista, avaliando o que não cabe em regra: no exemplo, um subagente julga se o tom do rascunho combina com as mensagens anteriores do usuário.

o que isso custou

O texto é honesto sobre a fragilidade da ponta que mais importa. Diz que LLM como juiz não é robusto e tem trade-off pesado de latência. Diz que um único screenshot carrega pouca informação de viewport. Diz que busca semântica é menos precisa e menos transparente que a agêntica. São três admissões de que a etapa de verificação, que ele mesmo chama de fundamental para confiabilidade, só é sólida quando o domínio permite escrever regra — e a maioria dos domínios interessantes não permite.

Falta o resto. Não há número, benchmark nem comparação: é um post de práticas, não de resultado, e nenhuma das recomendações vem com evidência anexada. Compaction resolve estouro de janela sumarizando, o que significa que o agente esquece por construção, sem que o texto discuta o que se perde. Dar bash ao agente é dar a máquina, e o post não trata de sandbox, permissão ou custo em token de um loop que roda por horas. E o método de melhoria proposto é manual: olhar as falhas uma a uma e perguntar se o agente tinha as ferramentas certas. Evals programáticas só entram na última linha da lista, como remédio para quando a performance oscila conforme você adiciona funcionalidade.

onde isso aparece hoje

O SDK é público e documentado — a página de referência está no verbete do Claude Agent SDK, e cada peça descrita aqui virou documentação própria, de subagentes a MCP. O post se apresenta como sequência de Building effective agents, do ano anterior: lá estavam os padrões, aqui está o harness que os implementa.

As lacunas que ele deixa foram preenchidas por textos posteriores da mesma casa. A recomendação de desenhar ferramentas pensando em eficiência de contexto ganhou tratamento próprio em Writing effective tools for AI agents. A tensão entre compaction e memória virou engenharia de contexto. A ideia de que o agente deve escrever código em vez de chamar ferramenta uma por uma foi levada ao limite em execução de código com MCP. E as evals mencionadas de passagem no fim ocuparam um documento inteiro em Demystifying evals for AI agents.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·