- Data Hackers Newsletter
- Posts
- Por que os melhores agentes de IA usam padrões simples? Lições da Anthropic
Por que os melhores agentes de IA usam padrões simples? Lições da Anthropic
Veja lições que podemos aprender com a gigante responsável pelo Claude sobre padrões de agentes de IA
A Anthropic, empresa por trás do Claude, trabalhou com dezenas de equipes construindo agents de IA em diversos setores. A descoberta mais surpreendente? As implementações mais bem-sucedidas não usavam frameworks complexos ou bibliotecas especializadas. Em vez disso, baseavam-se em padrões simples e compostos.
Neste artigo, compartilhamos o que aprendemos ao trabalhar com clientes e construir nossos próprios agents, oferecendo conselhos práticos para desenvolvedores que buscam criar sistemas de IA eficazes.
O que são agents de IA?
O termo "agent" pode ser definido de várias maneiras. Alguns o definem como sistemas totalmente autônomos que operam independentemente por períodos prolongados, usando ferramentas diversas para realizar tarefas complexas. Outros usam o termo para descrever implementações mais prescritivas que seguem workflows predefinidos.
Na Anthropic, categorizamos todas essas variações como sistemas agênticos, mas fazemos uma distinção arquitetônica importante entre workflows e agents:
Workflows são sistemas onde LLMs e ferramentas são orquestrados através de caminhos de código predefinidos
Agents, por outro lado, são sistemas onde LLMs direcionam dinamicamente seus próprios processos e uso de ferramentas, mantendo controle sobre como realizam as tarefas
Quando usar (e quando não usar) agents
Ao construir aplicações com LLMs, recomendamos encontrar a solução mais simples possível e aumentar a complexidade apenas quando necessário. Isso pode significar não construir sistemas agênticos.
Sistemas agênticos frequentemente trocam latência e custo por melhor desempenho nas tarefas. Considere quando essa troca faz sentido:
Workflows oferecem previsibilidade e consistência para tarefas bem definidas
Agents são a melhor opção quando flexibilidade e tomada de decisão orientada pelo modelo são necessárias em escala
Para muitas aplicações, otimizar chamadas únicas de LLM com retrieval e exemplos no contexto geralmente é suficiente
Frameworks: quando e como usar
Existem diversos frameworks que facilitam a implementação de sistemas agênticos:
Esses frameworks facilitam o início ao simplificar tarefas de baixo nível, como chamar LLMs, definir e analisar ferramentas, e encadear chamadas. No entanto, frequentemente criam camadas extras de abstração que podem obscurecer os prompts e respostas subjacentes, dificultando a depuração.
Nossa recomendação: comece usando APIs de LLM diretamente. Muitos padrões podem ser implementados em poucas linhas de código. Se usar um framework, certifique-se de entender o código subjacente. Suposições incorretas sobre o que está "por baixo do capô" são uma fonte comum de erros.
Building blocks, workflows e agents: os padrões fundamentais
Building block: o LLM aumentado
O bloco de construção básico dos sistemas agênticos é um LLM aprimorado com capacidades como retrieval, ferramentas e memória. Os modelos atuais podem usar ativamente essas capacidades — gerando suas próprias consultas de busca, selecionando ferramentas apropriadas e determinando quais informações reter.
Recomendamos focar em dois aspectos principais:
Adaptar essas capacidades ao seu caso de uso específico
Garantir que forneçam uma interface fácil e bem documentada para seu LLM
Workflow 1: Prompt chaining
O prompt chaining decompõe uma tarefa em uma sequência de etapas, onde cada chamada de LLM processa a saída da anterior. Você pode adicionar verificações programáticas em etapas intermediárias para garantir que o processo está no caminho certo.
Quando usar: ideal para situações onde a tarefa pode ser facilmente decomposta em subtarefas fixas. O objetivo principal é trocar latência por maior precisão, tornando cada chamada de LLM uma tarefa mais fácil.
Exemplos práticos:
Gerar copy de marketing e depois traduzi-lo para outro idioma
Escrever um esboço de documento, verificar se atende certos critérios, depois escrever o documento baseado no esboço
Workflow 2: Routing
O routing classifica uma entrada e a direciona para uma tarefa de acompanhamento especializada. Este workflow permite separação de preocupações e construção de prompts mais especializados.
Quando usar: funciona bem para tarefas complexas onde existem categorias distintas que são melhor tratadas separadamente, e onde a classificação pode ser tratada com precisão.
Exemplos práticos:
Direcionar diferentes tipos de consultas de atendimento ao cliente (questões gerais, solicitações de reembolso, suporte técnico) para processos, prompts e ferramentas diferentes
Rotear questões fáceis/comuns para modelos menores e econômicos como Claude Haiku 4.5 e questões difíceis/incomuns para modelos mais capazes como Claude Sonnet 4.5
Workflow 3: Parallelization
LLMs podem trabalhar simultaneamente em uma tarefa e ter suas saídas agregadas programaticamente. A paralelização se manifesta em duas variações principais:
Sectioning: dividir uma tarefa em subtarefas independentes executadas em paralelo
Voting: executar a mesma tarefa várias vezes para obter saídas diversas
Quando usar: eficaz quando as subtarefas divididas podem ser paralelizadas para velocidade, ou quando múltiplas perspectivas ou tentativas são necessárias para resultados de maior confiança.
Exemplos práticos:
Sectioning:
Implementar guardrails onde uma instância do modelo processa consultas do usuário enquanto outra as filtra para conteúdo ou solicitações inadequadas
Automatizar avaliações de desempenho do LLM, onde cada chamada avalia um aspecto diferente do desempenho do modelo
Voting:
Revisar código para vulnerabilidades, onde vários prompts diferentes revisam e sinalizam o código se encontrarem um problema
Avaliar se determinado conteúdo é inadequado, com múltiplos prompts avaliando aspectos diferentes
Workflow 4: Orchestrator-workers
No workflow orchestrator-workers, um LLM central divide dinamicamente as tarefas, delega-as a LLMs trabalhadores e sintetiza seus resultados.
Quando usar: adequado para tarefas complexas onde você não pode prever as subtarefas necessárias. A diferença chave da paralelização é sua flexibilidade — as subtarefas não são pré-definidas, mas determinadas pelo orquestrador baseado na entrada específica.
Exemplos práticos:
Produtos de codificação que fazem mudanças complexas em múltiplos arquivos cada vez
Tarefas de busca que envolvem reunir e analisar informações de múltiplas fontes
Workflow 5: Evaluator-optimizer
No workflow evaluator-optimizer, uma chamada de LLM gera uma resposta enquanto outra fornece avaliação e feedback em um loop.
Quando usar: particularmente eficaz quando temos critérios claros de avaliação e quando o refinamento iterativo fornece valor mensurável. Os dois sinais de bom ajuste são: primeiro, que as respostas do LLM podem ser demonstravelmente melhoradas quando um humano articula seu feedback; e segundo, que o LLM pode fornecer tal feedback.
Exemplos práticos:
Tradução literária onde há nuances que o LLM tradutor pode não capturar inicialmente, mas onde um LLM avaliador pode fornecer críticas úteis
Tarefas de busca complexas que requerem múltiplas rodadas de busca e análise, onde o avaliador decide se mais buscas são necessárias
Agents autônomos
Agents estão emergindo em produção à medida que os LLMs amadurecem em capacidades-chave — compreensão de entradas complexas, raciocínio e planejamento, uso confiável de ferramentas e recuperação de erros.
Agents começam seu trabalho com um comando do usuário humano ou discussão interativa. Uma vez que a tarefa está clara, os agents planejam e operam independentemente, potencialmente retornando ao humano para mais informações ou julgamento.
Durante a execução, é crucial que os agents obtenham "verdade fundamental" do ambiente em cada etapa (como resultados de chamadas de ferramentas ou execução de código) para avaliar seu progresso. Agents podem então pausar para feedback humano em checkpoints ou ao encontrar bloqueios.
Quando usar agents: podem ser usados para problemas abertos onde é difícil ou impossível prever o número necessário de etapas, e onde você não pode codificar um caminho fixo. O LLM operará potencialmente por muitas rodadas, e você deve ter algum nível de confiança em sua tomada de decisão.
A natureza autônoma dos agents significa custos mais altos e potencial para erros compostos. Recomendamos testes extensivos em ambientes sandbox, junto com os guardrails apropriados.
Exemplos de uso:
Um agent de codificação para resolver tarefas do SWE-bench, que envolvem edições em muitos arquivos baseadas em uma descrição de tarefa
A implementação de referência de "computer use" da Anthropic, onde Claude usa um computador para realizar tarefas
Combinando e customizando padrões
Esses building blocks não são prescritivos. São padrões comuns que desenvolvedores podem moldar e combinar para atender diferentes casos de uso. A chave para o sucesso é medir o desempenho e iterar nas implementações.
Lembre-se: adicione complexidade apenas quando ela demonstravelmente melhora os resultados.
Três princípios fundamentais
Ao implementar agents, seguimos três princípios centrais:
Simplicidade: mantenha o design do seu agent simples
Transparência: mostre explicitamente as etapas de planejamento do agent
Interface bem documentada: crie uma interface agent-computador (ACI) cuidadosamente através de documentação e testes completos de ferramentas
Agents na prática: dois casos de uso promissores
Customer support
O suporte ao cliente combina interfaces de chatbot familiares com capacidades aprimoradas através da integração de ferramentas. É adequado para agents mais abertos porque:
Interações de suporte seguem naturalmente um fluxo de conversa enquanto requerem acesso a informações e ações externas
Ferramentas podem ser integradas para extrair dados do cliente, histórico de pedidos e artigos da base de conhecimento
Ações como emitir reembolsos ou atualizar tickets podem ser tratadas programaticamente
O sucesso pode ser claramente medido através de resoluções definidas pelo usuário
Coding agents
O espaço de desenvolvimento de software mostrou potencial notável para recursos de LLM, com capacidades evoluindo de completação de código para resolução autônoma de problemas. Agents são particularmente eficazes porque:
Soluções de código são verificáveis através de testes automatizados
Agents podem iterar em soluções usando resultados de testes como feedback
O espaço do problema é bem definido e estruturado
A qualidade da saída pode ser medida objetivamente
Na própria implementação da Anthropic, agents podem resolver issues reais do GitHub no benchmark SWE-bench Verified baseado apenas na descrição do pull request.
Engenharia de prompt para suas ferramentas
Não importa qual sistema agêntico você esteja construindo, ferramentas provavelmente serão uma parte importante do seu agent. Definições e especificações de ferramentas devem receber tanta atenção de engenharia de prompt quanto seus prompts gerais.
Dicas para formatos de ferramentas
Dê ao modelo tokens suficientes para "pensar" antes de se escrever em um canto
Mantenha o formato próximo ao que o modelo viu naturalmente em texto na internet
Certifique-se de que não há "overhead" de formatação
Boas práticas para definição de ferramentas
Prática | Descrição |
|---|---|
Coloque-se no lugar do modelo | É óbvio como usar esta ferramenta? Uma boa definição inclui exemplos de uso, casos extremos e requisitos de formato de entrada |
Otimize nomes e descrições | Pense nisso como escrever uma ótima docstring para um desenvolvedor júnior em sua equipe |
Teste como o modelo usa suas ferramentas | Execute muitos exemplos para ver quais erros o modelo comete e itere |
Poka-yoke suas ferramentas | Mude os argumentos para que seja mais difícil cometer erros |
Ao construir o agent para SWE-bench, a Anthropic gastou mais tempo otimizando ferramentas do que o prompt geral. Por exemplo, descobriram que o modelo cometia erros com ferramentas usando caminhos de arquivo relativos. A solução? Mudar a ferramenta para sempre exigir caminhos absolutos — e o modelo usou este método perfeitamente.
Conclusão: simplicidade acima de sofisticação
O sucesso no espaço de LLM não se trata de construir o sistema mais sofisticado. Trata-se de construir o sistema certo para suas necessidades.
Comece com prompts simples, otimize-os com avaliação abrangente e adicione sistemas agênticos de múltiplas etapas apenas quando soluções mais simples ficarem aquém.
Frameworks podem ajudá-lo a começar rapidamente, mas não hesite em reduzir camadas de abstração e construir com componentes básicos à medida que move para produção. Seguindo esses princípios, você pode criar agents que são não apenas poderosos, mas também confiáveis, mantíveis e dignos de confiança.
FAQ sobre agents de IA
Qual a diferença entre workflows e agents?
Workflows são sistemas onde LLMs e ferramentas são orquestrados através de caminhos de código predefinidos. Agents são sistemas onde LLMs direcionam dinamicamente seus próprios processos e uso de ferramentas, mantendo controle sobre como realizam as tarefas.
Quando devo usar frameworks prontos?
Frameworks facilitam o início, mas podem obscurecer prompts e respostas subjacentes. Comece usando APIs de LLM diretamente e só adote frameworks quando entender completamente o código subjacente.
Qual o workflow mais simples para começar?
Prompt chaining é geralmente o mais simples: decompõe uma tarefa em sequência de etapas onde cada chamada de LLM processa a saída da anterior.
Como sei se preciso de um agent autônomo?
Use agents para problemas abertos onde é difícil prever o número de etapas necessárias e onde você não pode codificar um caminho fixo. Tenha em mente que agents têm custos mais altos e potencial para erros compostos.