O Worflow do Agente
Um único ciclo ReAct lida com a maioria das tarefas pontuais, mas problemas mais difíceis às vezes precisam de uma estrutura que organize o trabalho antes que chegue o próximo resultado de ferramenta. Um agente de workflow é um sistema no qual o harness de execução controla um workflow: um grafo de chamadas de modelo, etapas de código determinístico, chamadas de ferramenta e ciclos especializados. Essa forma ajuda quando subtarefas que são executadas em paralelo podem compartilhar resultados, quando um plano pode ser escrito antes que as ferramentas sejam executadas, ou quando o roteamento deve seguir uma regra em vez da última observação.
O harness de execução pode definir um workflow em torno de uma chamada de modelo, uma etapa determinística, um ciclo especializado ou um grupo de ramificações paralelas. Em cada limite, ele decide o que cruza cada fronteira de contexto, o que pode ramificar e quais resultados alimentam a próxima etapa do pipeline. Esta seção usa fan-out e roteamento fixo para mostrar que esse controle não substitui o ciclo ReAct da página anterior.
Dois padrões principais que diferem em quando o modelo decide
ReAct (raciocínio e ação)
Em cada etapa, o modelo lê a última observação antes de escolher uma ação
e executar uma ferramenta, então avalia o que veio de volta e escolhe novamente. O agente
reage ao que a chamada de ferramenta anterior retornou, então o caminho
pelas ferramentas toma forma à medida que é executado. Isso torna o ReAct forte quando o
caminho depende de resultados intermediários e fraco quando muitas etapas poderiam ter
sido executadas ao mesmo tempo.
Artigo: Yao et al., 2022.
ReWOO (Raciocínio sem Observação)
O modelo escreve o plano completo antecipadamente em uma única chamada de LLM antes que qualquer ferramenta seja executada.
Um executor determinístico então executa cada ferramenta que o plano nomeou, frequentemente em paralelo, e uma segunda chamada de LLM lê o que foi retornado para sintetizar os resultados.
Porque o plano nunca vê o resultado da ferramenta, o modelo "raciocina sem observação."
Isso torna o ReWOO forte quando as etapas são independentes e fraco quando as etapas posteriores
precisam reagir às etapas anteriores.
Artigo: Xu et al., 2023.
Quando um único ciclo supera a divisão em agentes
Um agente de workflow compensa apenas quando a tarefa se divide em frentes independentes. Sem elas, a sobrecarga de coordenar vários agentes não oferece ganho, e um único ciclo permanece mais rápido e fácil de depurar.
Esse imposto é fixo, independentemente da tarefa, então a pergunta se torna se o trabalho retorna o suficiente para cobrir isso. Um trabalho linear que um único prompt já lida nunca recuperará as chamadas extras e a lógica de roteamento que elas exigem. A divisão começa a compensar apenas quando a tarefa em si carrega o tipo de estrutura que um único ciclo não tem escolha a não ser achatá-la em uma única linha do tempo. Qualquer uma das condições abaixo torna o equilíbrio vantajoso.
- A especialização importa. Diferentes fluxos de trabalho precisam de prompts de sistema, ferramentas ou modelos diferentes. Um agente forçado a desempenhar ambos os papéis degrada ambos.
- O paralelismo é possível. Dois trabalhadores são executados concorrentemente, enquanto um único agente só poderia executá-los em sequência. Três pesquisas independentes terminam no tempo da mais lenta.
- A inflação de contexto é real. Um único agente fazendo tudo acumula um contexto de 10000 tokens. Especialistas permanecem focados em sua fatia.
- O isolamento de falhas ajuda. A falha de um trabalhador não encerra a tarefa inteira. O orquestrador tenta novamente, ignora o ramo ou escolhe outra rota.
Aplicado · PipelineExecutar o pipeline completo de planejar, executar e sintetizar?
Executando um pipeline ReWOO contra o glossário da NVIDIA
A célula abaixo executa um pipeline ReWOO contra o glossário da NVIDIA, usando
helpers.webSearch (a pesquisa de glossário classificada que você encontrou no Módulo 1c) para cada recuperação que o plano chama. O explorador de glossário mostra o índice completo que essa pesquisa procura e permite que você execute qualquer consulta que o planejador possa emitir:
Promise.all é o auxiliar do JavaScript para iniciar várias promessas e esperar
até que todas elas sejam concluídas. Aqui, é apenas o mecanismo de concorrência: não chama
o modelo e não decide quais pesquisas executar.
- Planejador. Uma chamada de LLM vinculada a um esquema emite uma lista JSON de 3-5 consultas de pesquisa.
- Executor. JavaScript simples. Cada consulta é executada concorrentemente por
Promise.all, sem chamadas de LLM nessa etapa. - Sintetizador. Uma segunda chamada de LLM lê cada resultado e escreve o resumo, citando cada pesquisa por índice.
Duas chamadas de LLM no total, mais N pesquisas de glossário paralelas. Edite o objetivo de pesquisa e observe a lista de consultas do planejador mudar.
Encaminhar um ticket a um especialista com um enum fixo
O encaminhamento é outra forma de composição entre agentes: um agente de triagem classifica a entrada e a passa para um especialista. Como o classificador deve emitir uma das categorias de um enum fixo, a saída precisa de um contrato rigoroso. Um enum fixo é uma lista fechada de rótulos permitidos; se o modelo retornar qualquer outra coisa, o roteador deve rejeitar a rota ou tentar novamente com instruções mais estritas, em vez de adivinhar. Cada especialista posterior recebe um prompt de sistema restrito e não precisa ver o raciocínio do agente de triagem.
Distribuir uma entrada compartilhada para vários especialistas de uma vez
O pipeline ReWOO foi paralelo por construção: cada consulta planejada foi executada concorrentemente no glossário. Outro padrão comum distribui uma entrada compartilhada entre vários especialistas, cada um com seu próprio prompt de sistema, e executa todos ao mesmo tempo. No rastreamento, o tempo total acompanha o especialista mais lento, enquanto os demais se sobrepõem dentro da mesma janela. O gráfico de Gantt mostra a duração de cada especialista. Todos compartilham um resultado de pesquisa na web, mantendo o custo limitado.
Profundo · FábricaReunir especialistas repetidos em uma única declaração?
Declarar especialistas a partir de uma fábrica em vez de escrevê-los à mão
Cada um dos quatro exercícios acima construiu um pequeno agente à mão com as mesmas peças de inicialização que o código de produção não deve repetir para cada novo especialista. Essas peças são um rótulo de papel, um prompt de sistema, uma lista de ferramentas e uma invocação. O padrão de fábrica parametriza essas quatro partes móveis; assim, você declara especialistas em vez de reescrevê-los:
- Papel. Um rótulo curto, usado para logs e encaminhamento.
- Prompt de sistema. O contrato de comportamento: o que ele faz, o que ele recusa e como ele formula suas respostas.
- Ferramentas. As funções descritas pelo JSON-Schema que ele pode chamar, se houver.
- Contrato de invocação. Uma forma consistente (
specialist.run(input)) que retorna a resposta final.
CrewAI,
LangChain e
LangGraph
expõem essa mesma fábrica com nomes que variam por framework, seja
Agent, create_agent ou uma classe de dados de papel e objetivo. A célula abaixo constrói, com os mesmos quatro parâmetros, um tutor de aritmética e um tradutor. Ambos processam a mesma entrada, e suas respostas aparecem lado a lado.
Antes de continuar
- O planejador ReWOO acima emite uma lista JSON de consultas. Qual é o modo de falha se uma consulta posterior precisar de um fato do resultado de uma consulta anterior? Qual dos dois padrões do topo desta página você muda?
- O roteador de triagem tem um enum fixo de categorias. O que o roteador deve fazer se o modelo emitir uma categoria que não está no enum? O esquema JSON é suficiente por si só, ou você também precisa de validação no lado da aplicação?
- O exercício de fábrica parametriza quatro coisas (papel, prompt de sistema, ferramentas, invocar). O que você adicionaria como um quinto parâmetro para evitar que um especialista se desvie para o domínio de outro especialista quando a entrada é ambígua?
Referências
- Xu et al., ReWOO: Decoupling Reasoning from Observations (2023). A decomposição planejador/trabalhador/resolvedor que o Agente de Workflow deste módulo implementa.
- Wang et al., Plan-and-Solve Prompting (2023). O ancestral mais simples: uma única chamada de LLM escreve um plano, o mesmo LLM executa passo a passo. ReWOO divide o planejador do executor.
- Madaan et al., Self-Refine: Iterative Refinement with Self-Feedback (2023). O padrão por trás da pesquisa multi-pass iterativa: um agente critica sua própria saída e reexecuta até que um limiar de qualidade seja atingido.
- LangGraph. O framework de produção que formaliza o padrão de workflow/máquina de estado que este módulo esboça à mão.
Lista abrangente em Ir Além · Referências.
Tente · o roteador de triagem, ao vivo
Faça uma pergunta de suporte. O artefato a classifica com uma única chamada de modelo, encaminha o ticket ao prompt de sistema do especialista correspondente e transmite a resposta no tom desse especialista. Ele executa o mesmo padrão classificar-e-encaminhar mostrado acima. Aqui, as categorias pertencem ao suporte ao cliente, não a uma central de serviços de TI: faturamento, técnico, conta e outros. Ao mudar de domínio, apenas a lista de categorias muda; o mecanismo de roteamento permanece idêntico.