docs/advanced-ai/nodes-ia/react-agent.md
ReAct Agent no n8n: quando a IA para de "responder" e começa a agir
Existe um momento silencioso em que a automação deixa de ser uma sequência de nós pré-programados e passa a se parecer com um raciocínio. É ali que entram os agentes de IA — e, entre eles, o ReAct Agent, um dos padrões mais influentes da história recente dos modelos de linguagem. Neste artigo, exploramos o que é o padrão ReAct, como ele funciona por baixo do capô e como o node ReAct Agent do n8n transforma essa teoria acadêmica em fluxos de trabalho executáveis dentro de qualquer operação.
O que é o padrão ReAct, afinal?
ReAct é a abreviação de Reasoning + Acting — raciocínio e ação. A ideia central é quase banal na sua simplicidade: em vez de pedir que um modelo de linguagem apenas "pense" e produza uma resposta final, o ReAct o instrui a alternar entre pensar, agir e observar, repetidamente, até resolver o problema.
A analogia mais didática é a do detetive em uma cena de crime. Um bom investigador não fica parado olhando o ambiente enquanto formula uma teoria completa na cabeça. Ele observa, levanta uma hipótese, examina uma pista, descobre algo que muda sua suposição, examina outra pista, e assim por diante. O raciocínio e a coleta de evidências caminham juntos, um alimentando o outro.
É exatamente isso que o ReAct faz com um modelo de linguagem:
- Thought (Pensamento) — o modelo verbaliza o que está considerando, qual é o próximo passo lógico.
- Action (Ação) — o modelo decide usar uma ferramenta externa (buscar na web, consultar um banco, chamar uma API).
- Observation (Observação) — o resultado da ferramenta retorna ao modelo, que agora tem informação nova e concreta.
E o ciclo recomeça. "Fale consigo mesmo, depois faça, depois olhe." Esse loop é o motor que sustenta a maioria dos agentes modernos.
A origem acadêmica: do paper ao workflow
O padrão ReAct não nasceu em uma ferramenta de automação. Ele foi formalizado no artigo "ReAct: Synergizing Reasoning and Acting in Language Models", publicado no arXiv (2210.03629) em 2022 por pesquisadores como Shunyu Yao e Yuan Cao. A proposta na época era resolver um problema concreto: modelos de linguagem eram bons em raciocinar (chain-of-thought) e bons em agir, mas raramente faziam as duas coisas de forma entrelaçada.
O paper demonstrou que a intercalação entre pensamento e ação reduzia alucinações justamente porque ancorava o raciocínio em evidências reais. Em vez de inventar uma resposta plausível, o modelo era obrigado a buscar o dado e confrontá-lo.
Pouco tempo depois, esse padrão migrou dos laboratórios para frameworks de orquestração — e daí para ferramentas visuais como o n8n, onde virou um node configurável.
O node ReAct Agent no n8n
No repositório de documentação em português (n8n-brasil/n8n-Doc-PT-BR, branch main, arquivo docs/advanced-ai/nodes-ia/react-agent.md), o ReAct Agent aparece como um dos tipos de agente disponíveis na categoria de nós de IA avançada. Ele compartilha a mesma arquitetura conceitual dos demais agentes do n8n, mas com uma característica própria: a estrutura de prompt e execução é otimizada para o loop explícito de pensamento, ação e observação.
Na prática, um ReAct Agent em n8n é montado a partir de quatro pilares:
1. Chat Model (o cérebro)
É o modelo de linguagem que vai gerar os pensamentos e decidir as ações. Pode ser um modelo OpenAI, Anthropic, Google Gemini, ou um modelo local via Ollama. A escolha aqui define não só a qualidade do raciocínio, mas também o custo por execução.
2. Tools (as mãos)
As ferramentas são o que separa um chatbot de um agente. Cada tool conectada ao node — uma consulta HTTP, uma query em banco de dados, um cálculo matemático, uma busca vetorial em base de conhecimento, um envio de e-mail — amplia o que o agente pode efetivamente fazer.
3. Memory (a lembrança)
Um agente sem memória esquece o que descobriu no passo anterior. O nó de memória (janela de contexto, buffer, ou memória vetorial) garante que o histórico do loop permaneça disponível ao longo da execução e, em fluxos conversacionais, entre sessões distintas.
4. System Prompt (as instruções)
Aqui mora o segredo prático. Um ReAct Agent só funciona bem quando recebe instruções claras sobre qual é o objetivo, quais ferramentas estão disponíveis, quando parar e em que formato responder. Prompts vagos produzem agentes que dão voltas sem chegar a lugar nenhum.
Como isso aparece na prática
Imagine um fluxo de atendimento para um e-commerce brasileiro. O agente recebe a mensagem de um cliente: "meu pedido não chegou e quero saber onde está".
Com um ReAct Agent, a execução seria algo assim:
- Thought — "Preciso do número do pedido. Vou verificar se ele foi informado na conversa."
- Action — Aciona a ferramenta de memória/consulta de histórico do chat.
- Observation — O pedido nº 48213 foi mencionado duas mensagens atrás.
- Thought — "Agora vou consultar o status logístico desse pedido."
- Action — Chama a API do sistema de rastreamento.
- Observation — O pedido está retido no centro de distribuição de Cajamar (SP) desde ontem.
- Thought — "Tenho a informação necessária. Vou responder ao cliente com o status e o prazo estimado."
- Action — Envia a resposta final.
O ponto crucial: nenhuma dessas etapas foi hardcoded. O fluxo não diz "se o cliente reclamar de entrega, consulte a API X". O agente decide, com base nas ferramentas que recebeu, qual caminho percorrer. Isso é o que torna a automação adaptável a casos que o desenvolvedor não previu.
ReAct Agent x outros agentes do n8n
Vale a comparação, porque a escolha do tipo de agente errado é uma das causas mais comuns de fluxo instável.
| Tipo de agente | Característica principal | Quando usar |
|---|---|---|
| ReAct Agent | Loop explícito de pensamento → ação → observação | Tarefas que exigem raciocínio em múltiplos passos com ferramentas variadas |
| Tools Agent | Prioriza a chamada estruturada de ferramentas nativas | Quando o modelo suporta function calling robusto e o caminho é mais direto |
| OpenAI Functions Agent | Depende do mecanismo de funções da OpenAI | Fluxos fechados no ecossistema OpenAI, com alta confiabilidade de parsing |
| Conversational Agent | Foco no diálogo, com poucas ferramentas | Chatbots com contexto conversacional longo |
| Plan and Execute Agent | Planeja tudo antes de executar | Tarefas longas que se beneficiam de um plano explícito |
O ReAct se destaca quando o problema é exploratório: você não sabe de antemão quantos passos serão necessários, nem em que ordem.
Boas práticas para não quebrar o loop
Agentes ReAct são poderosos e, ao mesmo tempo, traiçoeiros. Alguns cuidados fazem diferença enorme:
- Limite o número de iterações. Sem um teto de passos, um agente confuso pode entrar em loop infinito, queimando tokens e tempo. Configure sempre um limite máximo de iterações.
- Escreva descrições de ferramentas com precisão cirúrgica. O modelo escolhe a ferramenta com base na descrição dela. Descrições genéricas geram escolhas erradas.
- Reduza o escopo de cada agente. Um agente que faz tudo tende a fazer tudo mal. Prefira agentes especializados, cada um com três ou quatro ferramentas bem definidas.
- Monitore custos. Cada volta do loop é uma nova chamada ao modelo. Em fluxos com muitas iterações e modelos grandes, o custo por execução cresce rápido.
- Valide saídas críticas. Se o agente vai executar uma ação irreversível (emitir reembolso, enviar e-mail em massa, alterar registro em produção), coloque uma camada de validação ou aprovação humana antes.
- Registre os pensamentos. Logar os Thoughts é o melhor instrumento de depuração que existe em um agente. Sem eles, você vê apenas o resultado final e não faz ideia de onde o raciocínio descarrilhou.
Limitações que ninguém deveria ignorar
O ReAct não é bala de prata. Ele herda todos os defeitos do modelo que o executa: alucinações, viés, sensibilidade a variações de prompt. Além disso, o formato de texto livre do pensamento é mais frágil do que chamadas de função estruturadas — um modelo que "escreve mal" o formato pode quebrar o parser do agente.
Há ainda a questão da latência: cada iteração é uma ida e volta ao modelo. Um agente que precisa de seis passos para responder terá, naturalmente, um tempo de resposta maior do que uma chamada única. Para aplicações sensíveis a tempo real, isso precisa entrar na conta.
E existe o risco de segurança: um agente com acesso a ferramentas poderosas é, na prática, um executor com permissões. Princípios de menor privilégio, sanitização de entradas e isolamento de credenciais não são opcionais.
Conclusão
O ReAct Agent representa uma mudança de paradigma na automação: saímos do território dos fluxos determinísticos, em que cada caminho é previsto pelo desenvolvedor, e entramos no território dos fluxos deliberativos, em que o sistema decide como chegar ao objetivo. O n8n, ao trazer esse padrão para uma interface visual baseada em nós, democratiza algo que até pouco tempo atrás exigia código, orquestração manual e conhecimento profundo de frameworks de agentes.
O detalhe que separa um ReAct Agent impressionante de um ReAct Agent problemático raramente está no modelo escolhido. Está na qualidade das ferramentas, na clareza do prompt de sistema e na disciplina de quem constrói o fluxo. O padrão entrega o loop; cabe a você entregar o propósito.