05-04-03 — Agentic patterns da Anthropic: Building Effective Agents
TL;DR
Em dezembro/2024, a Anthropic publicou "Building Effective Agents" — o guia prático mais citado sobre agentes em produção. Define 5 workflow patterns (prompt chaining, routing, parallelization, orchestrator-workers, evaluator-optimizer) e diz claramente quando não usar agentes. Leitura obrigatória antes de qualquer projeto agentic.
Contexto: por que esse documento importa
A Anthropic tem acesso a milhares de deployments de agentes em produção via API. O blog post de dez/2024 destila o que funciona e o que não funciona — não é teoria, é observação empírica de padrões que geram valor real.
Os 5 Workflow Patterns
1. Prompt Chaining
A saída de um LLM vira o input do próximo. Linear e previsível.
Quando usar: Tarefas que se beneficiam de separação em steps lineares onde cada step tem um LLM especializado. Ex: extração → análise → formatação de relatório.
2. Routing
Um LLM classifica o input e direciona para o handler especializado.
Quando usar: Quando diferentes categorias de input precisam de tratamento distinto. Economiza tokens ao não usar modelo pesado para tarefas simples.
3. Parallelization
Múltiplos LLMs processam o mesmo input em paralelo — seja por seções diferentes, seja por múltiplas perspectivas (voting).
Quando usar: Tarefas grandes que podem ser divididas (seções de um relatório), ou quando você quer "voting" de múltiplos modelos para reduzir bias.
4. Orchestrator-Workers
Um LLM orquestrador planeja e delega sub-tarefas para workers. O padrão mais poderoso — e mais caro.
Quando usar: Quando você não sabe com antecedência quais sub-tarefas serão necessárias — o orquestrador decide dinamicamente. Coding assistants, análises abertas.
5. Evaluator-Optimizer
Um LLM gera, outro avalia, o loop continua até o resultado ser satisfatório. É o padrão de reflection formalizado.
Quando usar: Geração de código com validação automática, criação de conteúdo com critérios claros de qualidade, queries SQL com verificação de sintaxe.
Quando NÃO usar agentes (segundo a Anthropic)
- O fluxo pode ser definido com antecedência (use workflow/pipeline)
- A tarefa requer determinismo total (auditoria, compliance)
- O custo de erro é alto e não há human-in-the-loop
- A latência é crítica (agentes são lentos)
- O volume é alto e previsível (custo de agentes não escala bem)
Human-in-the-loop: a recomendação crítica
A Anthropic enfatiza: para agentes com ações irreversíveis (deletar dados, enviar emails, fazer transações), sempre inclua um ponto de confirmação humana antes da ação:
def execute_with_approval(action: str, impact: str, execute_fn):
"""Pausa e solicita aprovação humana para ações de alto impacto"""
if impact in ["HIGH", "IRREVERSIBLE"]:
print(f"\n⚠️ APROVAÇÃO NECESSÁRIA")
print(f"Ação: {action}")
print(f"Impacto: {impact}")
approval = input("Aprovar? (s/n): ")
if approval.lower() != "s":
return {"status": "cancelled", "reason": "human_rejected"}
return execute_fn()
Checklist antes de deployar um agente
- ✅ Tentei resolver com workflow/pipeline primeiro?
- ✅ Defini max_iterations, token budget e time limit?
- ✅ Tenho human-in-the-loop para ações irreversíveis?
- ✅ Estimei o custo por run e custo total?
- ✅ Tenho logging de cada step para auditoria?
- ✅ Defini critério claro de "tarefa concluída"?
- ✅ Testei graceful degradation quando o limite é atingido?
Como isso se conecta
Fontes
- Anthropic — "Building Effective Agents" (dezembro 2024) — o documento de referência deste tópico.
- Anthropic — Agents documentation — documentação técnica de implementação.
- Anthropic — Claude 3.7 Sonnet (extended thinking) — modelo otimizado para tarefas agentic.
- Microsoft — Azure AI Content Safety — guardrails de segurança para agentes em produção.