Phase 14 - Lesson 12
Padrões de Fluxo de Trabalho da Anthropic: Simples em Vez de Complexo
Schluntz e Zhang (Anthropic, Dez 2024) diferenciam fluxos de trabalho (caminhos predefinidos) de agentes (uso dinâmico de ferramentas). Cinco padrões de fluxo de trabalho cobrem a maioria dos casos. Comece com chamadas diretas de API. Adicione agentes apenas quando as etapas não puderem ser previstas.
Tipo: Aprender + Construir Linguagens: Python (stdlib) Pré-requisitos: Phase 14 · 01 (Agent Loop) Tempo: ~60 minutos
Objetivos de Aprendizado
- Nomear os cinco padrões de fluxo de trabalho da Anthropic: encadeamento de prompts, roteamento, paralelização, orquestrador-trabalhadores e avaliador-otimizador.
- Explicar a distinção entre agente e fluxo de trabalho e o custo de engenharia de cada um.
- Identificar quando escolher um fluxo de trabalho em vez de um agente (e vice-versa).
- Implementar todos os cinco padrões em stdlib contra um LLM roteirizado.
O Problema
As equipes recorrem a frameworks multiagentes para problemas que precisam apenas de uma única chamada de função. O custo é real: os frameworks adicionam camadas que obscurecem os prompts, ocultam o fluxo de controle e geram complexidade prematura. O post de Schluntz e Zhang de dez de 2024 é a rejeição da indústria mais citada: comece simples, adicione complexidade apenas quando ela justificar seu custo.
O Conceito
Fluxos de trabalho vs agentes
- Fluxo de trabalho. LLMs e ferramentas orquestrados por meio de caminhos de código predefinidos. Os engenheiros são donos do grafo.
- Agente. LLMs direcionam dinamicamente suas próprias ferramentas e tomam seus próprios passos. O modelo é dono do grafo.
Ambos têm seu espaço. Os fluxos de trabalho são mais baratos, mais rápidos e mais fáceis de depurar. Os agentes resolvem problemas abertos, mas tornam os modos de falha mais difíceis de analisar.
O LLM aumentado
Fundação para todos os cinco padrões: um LLM com três capacidades integradas — busca (recuperação), ferramentas (ações) e memória (persistência). Qualquer chamada de API pode usá-las.
Os cinco padrões
Encadeamento de prompts. A saída da chamada 1 é a entrada para a chamada 2. Use quando uma tarefa tem uma decomposição linear clara. Portais programáticos opcionais entre as etapas.
Roteamento. Um LLM classificador escolhe qual LLM ou ferramenta downstream deve ser invocada. Use quando entradas categoricamente diferentes precisam de tratamentos diferentes (suporte de nível 1 vs. reembolso vs. bug vs. vendas).
Paralelização. Executa N chamadas de LLM simultaneamente e agrega os resultados. Dois formatos: divisão em seções (diferentes blocos de trabalho) e votação (mesmo prompt, N execuções, maioria/síntese).
Orquestrador-trabalhadores. Um LLM orquestrador decide dinamicamente quais trabalhadores (também LLMs) executar e sintetiza suas saídas. Semelhante a loops de agentes, mas o orquestrador não entra em loop indefinidamente.
Avaliador-otimizador. Um LLM propõe uma resposta, outro LLM a avalia. Itere até que o avaliador aprove. Isso é o Self-Refine (Lesson 05) generalizado.
Onde os fluxos de trabalho superam os agentes
- Tarefas previsíveis. Se você pode enumerar as etapas, você deve fazer isso.
- Tarefas com custo limitado. Os fluxos de trabalho têm contagens de etapas limitadas; os agentes podem entrar em espiral.
- Tarefas com requisitos de conformidade. Os auditores querem ler o grafo, não inferi-lo a partir de trajetórias.
Onde os agentes superam os fluxos de trabalho
- Pesquisa aberta. Quando o próximo passo depende do que o passo anterior retornou.
- Tarefas de duração variável. Minutos a horas de trabalho em que a contagem de etapas é desconhecida.
- Novos domínios. Quando você ainda não conhece o fluxo de trabalho correto — primeiro explore, codifique depois.
O companheiro de engenharia de contexto
"Effective context engineering for AI agents" (Anthropic 2025) formalizes a disciplina adjacente: a janela de 200k é um orçamento, não um contêiner. O que incluir, quando compactar, quando deixar o contexto crescer. Coberto em detalhes na lição da Phase 14 sobre compressão de contexto (lição anterior 06 da Phase 14 neste currículo antes da renomeação).
Construa
code/main.py implementa todos os cinco padrões de fluxo de trabalho contra um ScriptedLLM:
prompt_chain(input, steps)— sequencial.route(input, classifier, handlers)— classificação + despacho.parallel_vote(prompt, n, aggregator)— N execuções, agregação.orchestrator_workers(task, workers)— o orquestrador escolhe os trabalhadores.evaluator_optimizer(task, proposer, evaluator, max_iter)— loop até aprovação.
Execute:
python3 code/main.py
Cada padrão imprime seu rastro. O total de linhas de código por padrão é de ~10-15; o custo de um framework é medido em milhares.
Use
- Chamadas diretas de API para a maioria das tarefas.
- Framework apenas quando o padrão genuinamente necessitar de estado durável (LangGraph), concorrência de modelo de ator (AutoGen v0.4) ou modelagem de papéis (CrewAI).
- Use o Claude Agent SDK quando quiser o formato do arnês do Claude Code sem precisar reconstruí-lo.
Entregue
outputs/skill-workflow-picker.md escolhe o padrão correto para uma determinada descrição de tarefa, incluindo a justificativa da decisão e o caminho de refatoração para um agente caso os fluxos de trabalho fiquem aquém.
Exercícios
- Implemente o roteamento com um limiar de confiança. Abaixo do limiar -> encaminhe para um humano. Onde o limiar se situa para um caso de uso de suporte de nível 1?
- Adicione um timeout a
parallel_vote. O que acontece quando uma chamada trava? Como você faz a agregação com votos ausentes? - Transforme o
evaluator_optimizerem um bandit: mantenha os 2 melhores resultados ao longo das iterações para que um bom resultado tardio não seja sobrescrito por um resultado ruim posterior. - Combine o encadeamento de prompts com o roteamento: um roteador escolhe uma de três cadeias. Meça o custo de tokens em comparação com uma alternativa de prompt único e grande.
- Escolha um de seus recursos em produção. Desenhe o grafo do fluxo de trabalho. Conte as etapas. Um agente realmente seria melhor aqui?
Termos-Chave
| Termo | O que dizem | O que realmente significa |
|---|---|---|
| Fluxo de trabalho | "Fluxo predefinido" | Grafo de chamadas de LLM e ferramentas de propriedade do engenheiro |
| Agente | "IA autônoma" | Grafo de propriedade do modelo; direção dinâmica de ferramentas |
| LLM Aumentado | "LLM com ferramentas" | LLM + busca + ferramentas + memória; a unidade atômica |
| Encadeamento de prompts | "Chamadas sequenciais" | A saída da chamada N é a entrada para a chamada N+1 |
| Roteamento | "Despacho por classificador" | Escolhe qual cadeia/modelo lida com a entrada |
| Paralelização | "Distribuição (Fan out)" | N chamadas simultâneas; agregação por divisão em seções ou votação |
| Orquestrador-trabalhadores | "Agente despachante" | O LLM orquestrador escolhe LLMs especialistas dinamicamente |
| Avaliador-otimizador | "Proponente + juiz" | Itera até que o avaliador aprove; Self-Refine generalizado |
Leitura Adicional
- Anthropic, Building Effective Agents (Dec 2024) — os cinco padrões de fluxo de trabalho
- Anthropic, Effective context engineering for AI agents — a disciplina complementar
- LangGraph overview — quando grafos com estado justificam seu custo
- OpenAI Agents SDK — o padrão orquestrador-trabalhadores, transformado em produto