Anthropic · Research
Edição 03

Construindo
agentes eficazes.

Uma leitura anotada, em português, do ensaio Building Effective Agents — o guia de referência da Anthropic sobre quando (e quando não) construir sistemas agentivos com modelos de linguagem.

Ao longo do último ano, a Anthropic trabalhou com dezenas de times construindo agentes de LLM em indústrias distintas. A conclusão que se repete é uma só: as implementações mais bem-sucedidas não usavam frameworks complexos nem bibliotecas especializadas. Usavam padrões simples e componíveis. Esta apresentação reorganiza o texto original em formato de estudo de caso — cobrindo, sem omissões, todos os workflows, o modelo de agent autônomo, os princípios de design e os apêndices sobre aplicações e engenharia de ferramentas.

Audiência
Engenheiros sêniores projetando sistemas com LLMs.
Foco
Padrões de produção, não teoria de papers.
Cobertura
5 workflows + agents + 2 apêndices.
Método
Cada padrão com analogia e diagrama próprio.
Índice

O caminho do caderno.

Siga a ordem do ensaio, ou salte direto para o padrão que interessa.

§00 · Prólogo

O padrão é o simples.

Nos últimos doze meses, a Anthropic trabalhou com dezenas de times construindo agentes com LLMs em setores distintos. O padrão que se repete é consistente: as implementações mais bem-sucedidas não usavam frameworks complexos nem bibliotecas especializadas. Usavam blocos simples e componíveis.

Este ensaio condensa aprendizados do trabalho com clientes e das construções internas da própria Anthropic, e oferece conselho prático para desenvolvedores que pretendem construir agentes que funcionem em produção.

Tese 1
Comece pelo mais simples possível.
Tese 2
Adicione complexidade só quando o resultado comprova.
Tese 3
Componha padrões conhecidos em vez de inventar novos.
§01 · Definições

O que é um agent?

workflow × agent

A palavra “agent” carrega leituras diferentes. Alguns clientes chamam de agente um sistema totalmente autônomo que opera por períodos longos, usando ferramentas para cumprir tarefas complexas. Outros usam o termo para implementações mais prescritivas, que seguem workflows predefinidos. Na Anthropic, tudo isso é categorizado como sistema agentivo (agentic system), mas existe uma distinção arquitetural importante entre workflows e agents:

Workflow caminho predefinido

Sistemas em que LLMs e ferramentas são orquestrados através de caminhos de código pré-definidos. A lógica de controle é do desenvolvedor; o LLM executa passos programados.

Analogia: receita de bolo. O passo a passo já está escrito: primeiro bate os ovos, depois peneira a farinha, depois 40 minutos no forno. O cozinheiro (LLM) segue o que alguém decidiu antes — não troca a ordem, não improvisa o recheio.
Agent caminho dinâmico

Sistemas em que os LLMs direcionam dinamicamente seus próprios processos e o uso de ferramentas, mantendo controle sobre como as tarefas são cumpridas.

Analogia: táxi de aplicativo. Você digita o destino e pronto — o motorista escolhe o caminho, desvia de trânsito, decide quando pegar a marginal ou um atalho. Você não fica no WhatsApp mandando “vira direita agora”.
Diagrama · Espectro dos sistemas agentivos
SISTEMAS AGENTIVOS (agentic systems) ┌───────────────────────────────────────────────────────────────────────┐ │ │ │ MENOS autonomia MAIS autonomia│ │ ◆────────────────────────────────────────────────────────────────◆ │ │ │ │ │ │ ▼ ▼ │ │ [ single LLM call ] [ workflow ] [ workflow + loops ] [ agent ]│ │ prompt caminho caminho com loop │ │ + fixo, gates e livre,│ │ retrieval determinístico refinamentos LLM no│ │ driver│ └───────────────────────────────────────────────────────────────────────┘
§02 · Tradeoffs

Quando (e quando não) usar.

A recomendação da Anthropic ao construir aplicações com LLMs é sempre a mesma: encontre a solução mais simples possível, e só aumente a complexidade quando for necessário. Isso pode significar não construir um sistema agentivo.

Sistemas agentivos costumam trocar latência e custo por performance — e você precisa avaliar quando essa troca faz sentido. Quando mais complexidade se justifica, a escolha é:

Workflows

Oferecem previsibilidade e consistência para tarefas bem-definidas.

Agents

Melhor opção quando precisamos de flexibilidade e decisão guiada pelo modelo em escala.

“Para muitas aplicações, no entanto, otimizar uma única chamada de LLM — com retrieval e exemplos in-context — costuma ser o suficiente.”
§03 · Ferramental

Frameworks: quando e como usar.

Existem muitos frameworks que tornam mais fácil implementar sistemas agentivos. A Anthropic cita expressamente quatro:

  1. 01 Claude Agent SDK — o SDK oficial da própria Anthropic.
  2. 02 Strands Agents SDK (AWS).
  3. 03 Rivetdrag-and-drop GUI para construção de workflows de LLM.
  4. 04 Vellum — outra GUI para construir e testar workflows complexos.

Esses frameworks facilitam o início: chamar LLMs, definir e parsear ferramentas, encadear chamadas. Mas frequentemente criam camadas extras de abstração que escondem o prompt real e a resposta real, dificultando o debug. Também convidam a adicionar complexidade quando o setup mais simples bastaria.

Recomendação

Comece usando a API do LLM diretamente — muitos padrões podem ser implementados em poucas linhas de código. Se usar framework, garanta que entende o código por baixo. Assunções incorretas sobre o que está por baixo são uma fonte comum de erro dos clientes.

Analogia: usar framework sem abrir o capô é como dirigir só pelo Waze sem nunca ter olhado um mapa. Enquanto a voz fala, você chega. No dia em que o sinal cai no meio do rodoanel, você não sabe nem pra que lado é casa.
§04 · Bloco fundamental

O LLM aumentado.

augmented LLM

O bloco básico de qualquer sistema agentivo é um LLM enriquecido com aumentos como retrieval, ferramentas (tools) e memória. Os modelos atuais conseguem usar ativamente essas capacidades: geram suas próprias queries de busca, escolhem ferramentas apropriadas, decidem o que reter de memória.

Analogia — cozinha equipada

Pense no LLM aumentado como um cozinheiro numa cozinha equipada: a geladeira cheia (retrieval) pra ir buscar ingrediente quando precisar, o fogão, a panela de pressão e o liquidificador (tools) em cima da bancada, e o celular pra olhar a receita que ele anotou semana passada (memory). Sozinho num quarto vazio, o cozinheiro é só um cara com fome. Com cozinha montada, ele faz o jantar.

Diagrama 01 · O LLM aumentado
LLM core IN OUT Retrieval Tools Memory

A recomendação da Anthropic é focar em dois aspectos-chave da implementação: adaptar essas capacidades ao caso de uso específico e garantir uma interface clara e bem documentada para o LLM. Uma das formas de implementar — e que a própria Anthropic destaca — é o Model Context Protocol (MCP), que permite integrar com um ecossistema crescente de ferramentas de terceiros via um cliente simples.

Daqui em diante, todas as figuras assumem que cada chamada de LLM tem acesso a essas capacidades aumentadas.

Parte II

Do bloco à autonomia.

Cinco workflows + o agent

Nesta seção, a Anthropic apresenta os padrões comuns que observou em produção. A progressão é deliberada: começa com o bloco fundamental (o augmented LLM), avança por workflows de composição simples, e termina nos agentes autônomos. Cada padrão a seguir recebe, nesta leitura, uma seção dedicada com analogia própria, diagrama e recomendações de uso.

§05 · Workflow 1 / 5

Prompt chaining.

Encadeamento de prompts

Workflow decomposição serial

O prompt chaining decompõe a tarefa numa sequência de passos: cada chamada de LLM processa a saída da anterior. Você pode adicionar checagens programáticas (os gates do diagrama) em qualquer passo intermediário para garantir que o processo continua no trilho.

Analogia — feijoada em fases

Prompt chaining é fazer feijoada: primeiro o feijão demolha, depois a linguiça frita, depois tudo junto apura com o caldo. Cada fase só começa quando a anterior terminou — se misturar tudo de uma vez, vira caldo ruim. E entre uma fase e outra, você prova a colher (o gate): se o feijão não tá macio, não adianta botar a linguiça ainda. Volta o relógio, deixa apurar mais um pouco.

Diagrama 02 · Prompt chaining (com gate)
Input LLM · Step 1 outline gate critérios OK? LLM · Step 2 draft LLM · Step 3 polish Output fail → volta / aborta
Quando usar

Ideal quando a tarefa pode ser limpa e claramente decomposta em subtarefas fixas. O objetivo principal é trocar latência por acurácia: cada chamada de LLM vira uma tarefa mais fácil.

Quando evitar

Se a tarefa não tem decomposição estável, ou se cada passo depende de descobertas feitas no anterior, o chaining vira uma camisa de força. Nesses casos, pense em orchestrator-workers ou agent.

Exemplos do documento
  • Gerar copy de marketing e, depois, traduzi-lo para outro idioma.
  • Escrever um outline de um documento, checar se o outline satisfaz certos critérios, e só então escrever o documento a partir dele.
§06 · Workflow 2 / 5

Routing.

Roteamento

Workflow separation of concerns

Routing classifica um input e o direciona a uma tarefa-especialista apropriada. Esse workflow permite separação de responsabilidades e a construção de prompts mais especializados — sem ele, otimizar para um tipo de input pode degradar o desempenho em outros.

Analogia — atendente do drive-thru

Routing é a atendente do drive-thru: ela pergunta “vai querer lanche, bebida ou sobremesa?” e, dependendo da resposta, passa o pedido pro caixa certo. Se você diz “quero reclamar do último pedido”, ela chama o gerente, não o cozinheiro. Ninguém tenta fazer tudo — cada pessoa cuida do que sabe, e é essa divisão que faz a fila andar.

Diagrama 03 · Routing
Input Router LLM · Specialist A refund flow LLM · Specialist B general Q&A LLM · Specialist C technical support Output
Quando usar

Tarefas complexas que têm categorias distintas melhor tratadas separadamente, e quando a classificação pode ser feita com acurácia — seja por um LLM, seja por um classificador tradicional.

Quando evitar

Quando as categorias se sobrepõem demais, ou quando uma só resposta genérica basta. Se o classificador erra muito, o roteamento vira gargalo de qualidade.

Exemplos do documento
  • Direcionar diferentes tipos de queries de customer service (perguntas gerais, pedidos de reembolso, suporte técnico) para downstream processes, prompts e ferramentas distintas.
  • Rotear queries fáceis/comuns para modelos menores e mais baratos (ex: Claude Haiku 4.5), e queries difíceis/incomuns para modelos mais capazes (ex: Claude Sonnet 4.5), otimizando custo × performance.
§07 · Workflow 3 / 5

Parallelization.

Sectioning · Voting

Workflow agregação programática

LLMs às vezes conseguem trabalhar simultaneamente numa tarefa e ter as saídas agregadas programaticamente. A parallelization aparece em duas variações principais:

Sectioning

Quebrar uma tarefa em subtarefas independentes executadas em paralelo.

Voting

Executar a mesma tarefa várias vezes para obter saídas diversas e combinar/votar.

Analogia — festa entre amigos / palpite dos amigos

Sectioning é dividir as tarefas de uma festa: um amigo compra a bebida, outro traz o salgado, outro faz a playlist. Em paralelo, a festa fica pronta em uma hora em vez de quatro. Voting é perguntar pra três amigos se o restaurante é bom antes de ir: se os três concordam, você vai tranquilo; se discordam, você pensa melhor. Duas formas diferentes de usar o paralelismo: uma soma perspectivas, a outra reduz o risco de cair numa furada.

Diagrama 04 · Parallelization (sectioning/voting)
Input Coordinator split / fan-out LLM call · 1 section A / vote LLM call · 2 section B / vote LLM call · 3 section C / vote Aggregator merge / majority
Quando usar

Quando as subtarefas podem ser paralelizadas por velocidade, ou quando várias perspectivas/tentativas aumentam a confiança do resultado. Em tarefas complexas com múltiplos aspectos, LLMs geralmente performam melhor quando cada aspecto é tratado por uma chamada própria, com atenção focada.

Quando evitar

Quando as subtarefas têm dependência sequencial (o passo 2 precisa do passo 1), ou quando o custo de múltiplas chamadas supera o ganho de velocidade/confiança.

Exemplos do documento
Sectioning
  • Implementar guardrails onde uma instância de modelo processa a query do usuário enquanto outra a inspeciona em busca de conteúdo/pedido inapropriado. Tende a performar melhor do que uma única chamada LLM lidando simultaneamente com guardrail e resposta principal.
  • Automatizar evals para avaliar performance do LLM — cada chamada de LLM avalia um aspecto diferente da performance num prompt dado.
Voting
  • Revisar um pedaço de código em busca de vulnerabilidades — vários prompts diferentes revisam e sinalizam se acharem algo.
  • Avaliar se um conteúdo é inapropriado, com múltiplos prompts avaliando aspectos diferentes, ou exigindo thresholds distintos de votação para balancear falsos positivos/negativos.
§08 · Workflow 4 / 5

Orchestrator-workers.

Orquestrador com trabalhadores

Workflow subtarefas dinâmicas

No orchestrator-workers, um LLM central (orchestrator) decompõe tarefas dinamicamente, delega aos LLMs worker, e sintetiza os resultados.

Analogia — chefe de mudança

Orchestrator-workers é o chefe do caminhão de mudança parado na porta do apartamento. Ele olha o que tem pra carregar e decide na hora: “você pega o sofá, você as caixas leves, você ajuda com a geladeira”. Ele não sabia antes quem ia pegar o quê — depende do que apareceu, de quem está mais forte, de quem chegou primeiro. No fim, é ele quem confere se tudo cabe e fecha a porta.

Diagrama 05 · Orchestrator-workers
Task Orchestrator plans · delegates · synthesizes Worker · LLM 1 subtask dinâmica Worker · LLM 2 subtask dinâmica Worker · LLM N subtask dinâmica Synthesis final output Nº e natureza dos workers são decididos pelo orchestrator, não pré-definidos.
Quando usar

Tarefas complexas em que não dá para prever as subtarefas necessárias. Em coding, por exemplo, o número de arquivos a alterar e a natureza de cada alteração dependem da tarefa. A diferença crítica em relação à parallelization é a flexibilidade: subtarefas não são pré-definidas — são determinadas pelo orchestrator com base no input específico.

Quando evitar

Quando a decomposição é estável e previsível — use parallelization ou prompt chaining, mais simples e baratos.

Exemplos do documento
  • Produtos de coding que fazem mudanças complexas em múltiplos arquivos a cada tarefa.
  • Tarefas de search que envolvem coletar e analisar informação de múltiplas fontes buscando informação possivelmente relevante.
§09 · Workflow 5 / 5

Evaluator-optimizer.

Avaliador + refinador

Workflow loop de refinamento

No evaluator-optimizer, uma chamada de LLM gera a resposta enquanto outra oferece avaliação e feedback — em loop.

Analogia — redação corrigida pelo professor

Evaluator-optimizer é a redação da escola com professor corrigindo. Você entrega um rascunho (optimizer). O professor (evaluator) marca em vermelho onde travou a frase, onde faltou argumento, onde fugiu do tema — e devolve pra reescrever. Você arruma, entrega de novo, ele relê. Roda até o texto ficar redondo. Parece redundante, mas é o que separa rascunho de redação nota mil.

Diagrama 06 · Evaluator-optimizer (loop)
Input LLM · Optimizer gera / reescreve LLM · Evaluator critica · aceita? feedback loop (se não aceito) Output accepted
Quando usar

Particularmente eficaz quando temos critérios de avaliação claros e quando refinamento iterativo produz valor mensurável. Dois sinais de bom ajuste: (1) as respostas do LLM melhoram demonstravelmente quando um humano articula o feedback, e (2) o próprio LLM é capaz de fornecer tal feedback. É análogo ao processo iterativo de escrita que um autor humano faz para produzir um documento polido.

Quando evitar

Quando não há critério de avaliação claro, ou quando a primeira tentativa normalmente já é boa o suficiente — o loop só acrescenta custo e latência.

Exemplos do documento
  • Tradução literária, onde há nuances que o tradutor LLM pode não capturar de início, mas sobre as quais um LLM avaliador consegue dar críticas úteis.
  • Search tasks complexas que exigem várias rodadas de busca e análise para reunir informação abrangente; o evaluator decide se novas buscas se justificam.
§10 · Agentes

Autonomia em loop.

autonomous agent

Agent LLM no driver

Agentes estão emergindo em produção à medida que os LLMs amadurecem em capacidades-chave: entender inputs complexos, raciocinar e planejar, usar ferramentas de forma confiável e recuperar-se de erros. Um agente começa com um comando (ou uma conversa interativa) com o usuário humano. Uma vez que a tarefa está clara, ele planeja e opera de forma independente, potencialmente retornando ao humano para mais informação ou julgamento.

Durante a execução, é crucial o agente obter ground truth do ambiente a cada passo — resultados de tool call, saídas de execução de código — para avaliar progresso. O agente pode pausar para feedback humano em checkpoints ou quando encontra bloqueios. A tarefa normalmente termina ao ser concluída, mas é comum incluir condições de parada (como número máximo de iterações) para manter controle.

Analogia — motoboy de aplicativo

Um agente é um motoboy de aplicativo com rota livre. Você pede a entrega e pronto — ele escolhe o caminho, desvia de trânsito, sobe ladeira diferente, entra numa rua que você nem conhece. Só manda mensagem (humano no loop) quando o interfone não responde ou quando bate num portão trancado. No fim, ou chega com a encomenda, ou volta avisando por que não deu.

Diagrama 07 · Agente autônomo (loop com ambiente)
Human task · checkpoint pausa / ask humano LLM Agent plan · act · observe · repeat Environment tools · files · shell code exec · APIs observations · ground truth stopping conditions · max iters

Agentes podem lidar com tarefas sofisticadas, mas sua implementação costuma ser bem direta: tipicamente são só LLMs usando ferramentas com base em feedback do ambiente, num loop. Por isso é crucial desenhar conjuntos de ferramentas e suas documentações com clareza e cuidado (tema expandido no Apêndice 2).

Quando usar

Problemas abertos (open-ended), em que é difícil ou impossível prever o número de passos necessários, e em que não dá para hardcodar um caminho fixo. O LLM potencialmente opera por muitas turns, e é preciso haver algum nível de confiança na sua tomada de decisão. A autonomia dos agentes os torna ideais para escalar tarefas em ambientes confiáveis.

Quando evitar

A natureza autônoma dos agentes implica custos maiores e potencial de erros compostos. Recomenda-se teste extenso em ambientes sandboxados e guardrails apropriados. Em ambientes que não admitem guardrails ou sandbox, prefira um workflow determinístico.

Exemplos do documento (implementações da própria Anthropic)
  • Coding Agent para resolver tarefas do SWE-bench, envolvendo edições em vários arquivos a partir da descrição da tarefa.
  • “Computer use” reference implementation, em que Claude usa um computador para cumprir tarefas.
Diagrama 08 · Fluxo de alto nível de um coding agent
Task / issue PR description Plan / explore ls · read files Edit code multi-file Run tests ground truth falhou? → re-plan PR submit · human review
§11 · Composição

Combinar & customizar.

Os blocos acima não são prescritivos. São padrões comuns que os desenvolvedores podem moldar e combinar para caber em casos de uso diferentes. A chave do sucesso, como em qualquer feature que use LLMs, é medir performance e iterar nas implementações.

“Repetindo: você deve considerar adicionar complexidade somente quando isso demonstradamente melhora o resultado.”
Diagrama 09 · Composição de padrões (exemplo)
router ──▶ [ chat specialist ] ──▶ [ refund specialist ] ──▶ evaluator-optimizer (polir tom) ──▶ [ technical specialist ]──▶ orchestrator-workers ├─▶ worker: investigar logs ├─▶ worker: consultar KB └─▶ worker: sugerir patch (sintetiza resposta final)
§12 · Síntese

Três princípios.

Sucesso no espaço de LLMs não é construir o sistema mais sofisticado. É construir o sistema certo para a necessidade. Comece com prompts simples, otimize com avaliação abrangente, e adicione sistemas agentivos multi-step só quando soluções mais simples falharem.

Ao implementar agentes, a Anthropic tenta seguir três princípios centrais:

01
simplicity
Mantenha a simplicidade no design.

Prefira sempre o menor conjunto de componentes que resolve o problema. Adicione camadas apenas quando a métrica obriga.

02
transparency
Priorize transparência.

Mostre explicitamente os passos de planejamento do agente. Um agente opaco é um agente que você não consegue depurar nem confiar.

03
ACI
Cuide da interface agent-computador.

Elabore com cuidado a ACIdocumentação e testes das ferramentas. A mesma atenção que se dá a HCI deve ir para ACI.

Frameworks ajudam a começar rápido, mas não hesite em reduzir camadas de abstração e construir com componentes básicos quando for para produção. Seguindo esses princípios, você cria agentes não apenas poderosos, mas também confiáveis, manuteníveis e dignos da confiança dos seus usuários.

Escrito por Erik Schluntz e Barry Zhang. O trabalho se apoia em experiências de construção de agentes na Anthropic e em insights compartilhados por clientes.
§A1 · Apêndice 1

Agentes na prática.

Onde agentes agregam mais valor

O trabalho com clientes revelou duas aplicações particularmente promissoras para agentes de IA, que demonstram o valor prático dos padrões discutidos acima. Ambas ilustram como agentes agregam mais valor em tarefas que exigem conversa e ação simultaneamente, têm critérios claros de sucesso, permitem loops de feedback, e integram supervisão humana significativa.

A. aplicação 1
Customer support.

O suporte a cliente combina interface de chatbot já conhecida com capacidades aumentadas via integração com ferramentas. É um encaixe natural para agentes mais abertos porque:

  • Interações seguem naturalmente um fluxo conversacional, mas exigem acesso a informação externa e ação.
  • Ferramentas podem ser integradas para puxar dados do cliente, histórico de pedidos e artigos da base de conhecimento.
  • Ações como emitir reembolsos ou atualizar tickets podem ser feitas programaticamente.
  • Sucesso é mensurável via resoluções definidas pelo usuário.

Várias empresas já demonstraram a viabilidade com modelos de cobrança por resolução bem-sucedida — mostrando confiança na efetividade dos seus agentes.

B. aplicação 2
Coding agents.

Desenvolvimento de software mostrou potencial notável, evoluindo de code completion para resolução autônoma de problemas. Agentes são particularmente eficazes porque:

  • Soluções de código são verificáveis via testes automatizados.
  • Agentes podem iterar usando resultados de testes como feedback.
  • O espaço do problema é bem-definido e estruturado.
  • Qualidade pode ser medida objetivamente.

Na implementação da própria Anthropic, agentes resolvem issues reais do SWE-bench Verified apenas a partir da descrição do pull request. Mesmo assim, a revisão humana continua crucial para garantir que a solução se alinha aos requisitos mais amplos do sistema.

§A2 · Apêndice 2

Engenharia de prompt para tools.

ACI — Agent-Computer Interface

Independentemente do tipo de sistema agentivo que você está construindo, ferramentas provavelmente serão parte importante do seu agente. Tools permitem ao Claude interagir com serviços e APIs externas, especificando sua estrutura exata na API. Quando Claude responde, ele inclui um tool use block na resposta se planeja invocar uma ferramenta. Definições e especificações de ferramentas merecem tanta atenção de prompt engineering quanto seus prompts principais.

Há frequentemente várias formas de especificar a mesma ação. Você pode especificar uma edição de arquivo escrevendo um diff, ou reescrevendo o arquivo inteiro. Para output estruturado, você pode retornar código dentro de markdown ou dentro de JSON. Em engenharia de software essas diferenças são cosméticas e convertíveis entre si sem perda. Mas alguns formatos são muito mais difíceis de um LLM escrever que outros. Escrever um diff requer saber quantas linhas estão mudando no cabeçalho do chunk antes do novo código ser escrito. Escrever código dentro de JSON (em vez de markdown) exige escape extra de newlines e aspas.

Analogia — tomada de três pinos

Desenhar tools é como desenhar uma tomada de três pinos. A forma do plugue já impede de encaixar invertido — não tem como ligar errado, porque os pinos não cabem do outro jeito. Ferramenta boa pro agente é assim: em vez de escrever “atenção, não faça X”, a interface não deixa X acontecer. Se o caminho precisa ser absoluto, a tool recusa caminho relativo; o agente nem chega a errar.

Sugestões para escolher formatos de tools

01

Dê ao modelo tokens suficientes para “pensar” antes que ele se escreva num canto.

02

Mantenha o formato próximo ao que o modelo viu ocorrer naturalmente em texto na internet.

03

Sem overhead de formatação: não obrigue a manter contagem precisa de milhares de linhas, nem a escapar strings de código escrito.

HCI vs ACI — a regra prática

Uma regra de bolso: pense em quanto esforço vai para interfaces humano-computador (HCI), e planeje investir a mesma quantidade de esforço criando boas interfaces agente-computador (ACI). Algumas formas de fazer isso:

  • A Coloque-se no lugar do modelo. É óbvio como usar essa ferramenta, pela descrição e parâmetros, ou você teria que pensar com cuidado? Se sim, é provável que o modelo também tenha dificuldade. Uma boa definição de tool normalmente inclui: exemplo de uso, edge cases, requisitos de formato de input, e fronteiras claras em relação a outras tools.
  • B Nomes e descrições importam. Como você pode mudar nomes de parâmetros ou descrições para deixar a coisa mais óbvia? Pense como escrever uma excelente docstring para um dev júnior do time. Especialmente importante quando há várias tools parecidas.
  • C Teste como o modelo usa suas tools. Rode muitos exemplos de input no workbench para ver que erros o modelo comete — e itere.
  • D Faça poka-yoke das suas tools. Mude os argumentos de modo que fique mais difícil cometer erros. (Poka-yoke é o princípio japonês de à prova de falha — design que impede o erro ao invés de só detectá-lo.)
“Ao construir nosso agente para o SWE-bench, gastamos mais tempo otimizando as tools do que o prompt em si. Por exemplo, descobrimos que o modelo cometia erros com tools que usavam caminhos relativos depois de o agente ter saído do diretório raiz. Para corrigir, mudamos a tool para sempre exigir caminhos absolutos — e o modelo passou a usar o método impecavelmente.”
// Antes — tool com path relativo, modelo errava após cd:
read_file({ path: "src/utils.ts" })

// Depois — tool exige path absoluto, uso impecável:
read_file({ path: "/repo/src/utils.ts" })
§13 · Fechamento

Takeaways.

O que levar deste caderno

O ensaio não oferece uma receita única. Oferece um vocabulário comum e uma disciplina. Os takeaways seguintes derivam estritamente do texto original — são a destilação que este caderno oferece ao engenheiro sênior que vai voltar ao código amanhã.

01
A complexidade tem de se pagar — em métrica, não em sensação.

Comece com um LLM aumentado. Só acrescente um workflow quando mover uma métrica. Só suba para agent quando o workflow travar.

02
Workflow ou agent é uma decisão de previsibilidade.

Caminho previsível e estável? Workflow. Caminho imprevisível, com muitos passos e sem forma fechada? Agent — com sandbox e guardrails.

03
Cinco padrões cobrem a grande maioria dos casos.

Prompt chaining, routing, parallelization (sectioning/voting), orchestrator-workers, evaluator-optimizer. Combine-os — não invente novos.

04
Frameworks encurtam a partida — e alongam o debug.

Prefira API direta em produção. Se usar framework, abra o capô. Abstrações escondem prompts; prompts escondidos escondem bugs.

05
Transparência não é feature — é requisito.

Mostre planos, ferramentas invocadas, observações. O usuário só confia no que consegue ver; o engenheiro só depura o que o sistema deixa aparecer.

06
ACI é a nova HCI — trate com o mesmo cuidado.

Ferramentas mal descritas produzem agentes que parecem burros. Ferramentas poka-yoke, com paths absolutos, exemplos e fronteiras claras, produzem agentes impecáveis.

Fonte original
anthropic.com/research/building-effective-agents
Autores
Erik Schluntz & Barry Zhang — Anthropic
Leitura anotada
Caderno 03 — Italo Gustavo · AIOX