Introdução aos Dynamic Workflows do Claude Code
Texto publicado pela equipe do Claude Code da Anthropic (Thariq Shihipar, Sid Bidasaria), explicando o novo recurso de Dynamic Workflows introduzido no Claude Code. Dynamic Workflows é uma abordagem em que o Claude escreve na hora sua própria estrutura de execução (harness) na forma de um arquivo JavaScript para orquestrar vários subagentes de acordo com a tarefa. O harness padrão existente do Claude Code é otimizado para tarefas de programação, mas tinha limitações em trabalhos longos, com paralelismo em larga escala e verificação adversarial; a ideia central para resolver isso foi permitir que o próprio Claude criasse harnesses personalizados.
Contexto da adoção e modo de funcionamento
- Limites de um único contexto : há três modos de falha que surgem ao fazer planejamento e execução ao mesmo tempo em uma única janela de contexto. São eles: preguiça agêntica (
agentic laziness), em que a tarefa é feita pela metade e declarada como concluída; viés de autovalorização (self-preferential bias), em que o agente avalia de forma favorável o próprio resultado; e desvio de objetivo (goal drift), em que o objetivo original fica difuso no processo de compressão de contexto. - Estrutura de funcionamento : executa arquivos JavaScript para criar e coordenar subagentes, podendo usar funções padrão como JSON, Math e Array. O próprio workflow também decide diretamente o tipo de modelo de cada subagente (Sonnet, Opus etc.) e se haverá isolamento por
worktree. Em caso de interrupção, é possível continuar a execução retomando a sessão. - Como chamar : basta pedir ao Claude para criar um workflow ou usar a palavra-gatilho
ultracode.
Resumo dos principais padrões (Patterns)
- Classificar e rotear (
Classify and Route) : um agente classificador identifica o tipo de tarefa e então encaminha para o agente ou fluxo de processamento apropriado. Também pode ser usado na etapa final para classificação dos resultados. - Fan-out e síntese (
Fan-out and Synthesize) : divide uma tarefa grande em unidades menores, executa um agente separado para cada uma e, na etapa de síntese (synthesize), reúne todos os resultados em um só. É adequado para muitas subtarefas que exigem contexto limpo. - Verificação adversarial (
Adversarial Verification) : atribui a cada agente de tarefa um agente verificador separado, que contesta e valida os resultados com base em uma rubrica (rubric, tabela de critérios de avaliação). - Gerar e filtrar (
Generate and Filter) : gera muitas ideias, depois filtra com rubrica e verificação, remove duplicatas e deixa apenas os candidatos de maior qualidade. - Torneio (
Tournament) : N agentes executam a mesma tarefa com abordagens diferentes, e um agente juiz escolhe o vencedor por comparação pareada (pairwise comparison). O texto explica que comparações pareadas são mais confiáveis do que avaliações por nota absoluta. - Repetir até convergir (
Loop Until Convergence) : quando o volume de trabalho não é conhecido de antemão, repete a criação de agentes até que não haja mais novas descobertas ou erros.
Resumo dos casos de uso (Use Cases)
- Refatorações e migrações em larga escala : divide por
callsites, testes que falharam e módulos; em cadaworktree, subagentes fazem correções, outro agente revisa de forma adversarial e depois tudo é mesclado. Há um caso real de reescrita de Zig para Rust, e, se forem dadas instruções para evitar comandos intensivos em recursos, é possível maximizar o paralelismo. - Deep research (skill
/deep-research) : fazfan-outde buscas na web para coletar fontes, verifica alegações com verificação adversarial e sintetiza tudo em um relatório com citações. Também pode ser aplicado à redação de relatórios de status no Slack, exploração profunda de codebases etc. - Checagem de fatos (
Fact-Checking) : primeiro roda um agente que identifica todas as alegações factuais no relatório; depois, para cada alegação, subagentes verificadores conferem as fontes, enquanto um agente de validação separado avalia até a qualidade dessas fontes. - Ordenação e ranking qualitativos : resolve tarefas difíceis de processar de uma vez só — como ordenar mais de 1000 linhas de tickets de suporte por gravidade — usando um pipeline em estilo torneio com comparações pareadas ou divisão em buckets com processamento paralelo e posterior mesclagem.
- Validação de regras e automação de
CLAUDE.md: usa agentes verificadores por regra para detectar omissões, enquanto um agente com persona cética revisa a validade das próprias regras. No sentido inverso, também é possível agrupar correções recorrentes em sessões recentes e code reviews para derivar automaticamente novas regras. - Depuração de falhas intermitentes e análise pós-incidente : agentes independentes criam hipóteses a partir de evidências separadas por logs, arquivos e dados, e um painel de validadores e contestadores avalia cada hipótese. Isso se aplica não só a código, mas também à análise de queda de receita, falhas em pipelines de dados etc.
- Triagem e tratamento de backlog : classifica filas de suporte e bug reports, remove duplicações com itens existentes e então faz correção automática ou escalonamento para humanos. Recomenda-se o padrão de quarentena (
quarantine), separando agentes que leem conteúdo externo não confiável dos agentes que executam ações com privilégios. Combinado com/loop, isso permite operação contínua. - Exploração criativa e avaliação (
Eval) : em tarefas em que preferência pessoal importa, como design ou naming, gera várias opções e depois um agente revisor pontua e seleciona usando uma rubrica. Também pode ser usado em avaliações leves para medir e melhorar a qualidade da própria skill. - Roteamento de modelo (
Model Routing) : um agente classificador investiga previamente a complexidade da tarefa e escolhe entre Sonnet e Opus para fazer o roteamento adequado.
Vantagens e diferenciais
- Diferencial : workflows estáticos (
static) criados com o Claude Agent SDK ouclaude -pprecisam ser escritos de forma genérica para dar conta de tratamento generalizado, enquanto Dynamic Workflows se diferenciam por permitir que o Claude escreva umharnesspersonalizado no momento, conforme a necessidade. - Vantagens : como vários agentes com contextos separados se concentram cada um em seu próprio objetivo, problemas como preguiça, autovalorização e desvio de objetivo podem ser reduzidos estruturalmente. Em termos operacionais, já há recursos como retomada de sessões interrompidas, definição de orçamento de tokens (
use 10k tokens), combinação com/goale/loop, além de salvar com a teclase compartilhar via diretório~/.claude/workflowsou por meio de skills. - Desvantagens e cuidados : o consumo de tokens pode aumentar bastante, então não é adequado para toda tarefa. Os autores deixam claro que um painel de cinco revisores não é necessário para trabalhos comuns de programação e recomendam se perguntar antes: “isso realmente precisa de mais computação?”. As boas práticas ainda estão em formação.
Os Dynamic Workflows podem ser lidos como uma mudança que expande o Claude Code de um assistente único de programação para um metaorquestrador que coordena vários agentes. É uma abordagem voltada para um ponto intermediário entre pipelines estáticos e agentes autônomos, e tende a mostrar maior efeito em trabalhos estruturados e longos, como migração de código, deep research, triagem e análise pós-incidente. Ainda assim, como o custo em tokens é alto e as boas práticas ainda não estão consolidadas, vale avaliar com cuidado a adequação de cada padrão e começar pequeno com “quick workflows”.
Ainda não há comentários.