ReAct, abreviação de “reasoning and acting” (raciocinar e agir), é um padrão de prompting em que um modelo alterna entre pensar no que fazer e fazê-lo com uma ferramenta. Foi apresentado por Yao e colegas em 2022 e é o ciclo básico dentro da maioria dos agentes de IA de hoje.
O ciclo
Um agente ReAct repete três passos até conseguir responder.
- Pensamento. O modelo raciocina sobre o que sabe e o que precisa em seguida.
- Ação. Ele escolhe uma ferramenta e os argumentos com que chamá-la.
- Observação. A aplicação executa a ferramenta e devolve o resultado ao modelo.
Depois o ciclo se repete, agora com a observação fazendo parte do contexto.
Question: Is order 8841 eligible for a refund?
Thought: I need the order date and the refund window.
Action: get_order(order_id="8841")
Observation: {"date": "2026-09-02", "status": "delivered", "custom": false}
Thought: Delivered and not custom. I need the policy window.
Action: get_policy(topic="refunds")
Observation: "Refunds within 30 days of delivery, excluding custom items."
Thought: 36 days have passed, so it is outside the window.
Answer: No. The 30-day refund window ended on 2 October 2026.
Raciocinar sem agir não alcança fatos fora do modelo. Agir sem raciocinar chama ferramentas às cegas. Intercalar os dois permite que cada observação molde a decisão seguinte.
ReAct com a chamada de ferramentas moderna
A técnica original usava um formato de texto que a aplicação analisava. As APIs atuais de modelos têm a chamada de ferramentas embutida: você descreve cada ferramenta com um nome, uma descrição e um JSON Schema dos parâmetros, e o modelo devolve uma solicitação estruturada para chamar uma. O ciclo é o mesmo; a API cuida da infraestrutura.
Isso desloca a engenharia de prompts para três lugares.
1. O prompt de sistema
Descreva o objetivo, os limites e quando parar.
You are an order support agent. Use the tools to answer questions
about a customer's orders.
- Look up facts with tools. Do not guess order details.
- Call a tool only when its result is needed for the answer.
- If a tool returns an error, try once more with corrected arguments,
then tell the customer what could not be checked.
- Never issue a refund above $200. Escalate instead.
- Stop and answer as soon as you have enough information.
2. As descrições das ferramentas
Um modelo escolhe ferramentas apenas pelas descrições. Trate cada descrição como um prompt.
- Fraca:
get_order: gets an order - Melhor:
get_order: Returns date, status, items, and total for one order. Use when the customer mentions an order number. Does not include payment details.
Diga o que a ferramenta retorna, quando usá-la e o que ela não faz. Nomeie os parâmetros com clareza e descreva seus formatos.
3. Os resultados das ferramentas
As observações voltam ao contexto, então a forma delas importa. Retorne dados compactos e rotulados, não uma página HTML bruta. Inclua uma mensagem de erro explícita sobre a qual o modelo possa agir: “No order with that ID” é útil; um stack trace não é.
Modos de falha
Laços. O agente repete a mesma chamada. Defina um número máximo de passos e diga ao modelo o que fazer ao atingir o limite.
Uso excessivo de ferramentas. Ele chama ferramentas para coisas que já sabe. Diga quando não chamar.
Argumentos errados. Ele inventa um ID ou um formato. Aperte o esquema dos parâmetros e retorne erros que expliquem o formato esperado.
Crescimento do contexto. Cada observação é relida em cada passo, então o custo cresce com o quadrado do número de passos. Corte ou resuma observações antigas. Veja a otimização de tokens.
Injeção por meio das observações. Uma página da web ou um documento retornado por uma ferramenta pode conter instruções. O modelo pode segui-las. Isso é injeção de prompt indireta e é o principal risco de segurança dos agentes. Marque os resultados das ferramentas como dados, restrinja o que as ferramentas podem fazer e exija aprovação para ações irreversíveis.
Respostas prematuras. Ele responde antes de verificar. Exija que as afirmações factuais venham do resultado de uma ferramenta.
Quando usar ReAct
| Situação | Use |
|---|---|
| Os passos são conhecidos de antemão | Uma cadeia de prompts: mais barata e previsível |
| O caminho depende do que for encontrado | ReAct |
| A tarefa precisa de dados ao vivo ou privados | ReAct com ferramentas de recuperação |
| A tarefa executa ações em outros sistemas | ReAct, com aprovação para ações arriscadas |
| Uma única consulta e depois uma resposta | Uma etapa de recuperação, não um laço |
Um agente é a opção mais flexível e a mais difícil de tornar confiável. Use um quando a flexibilidade for necessária.
Dando ferramentas aos agentes com MCP
O Model Context Protocol é uma forma padrão de oferecer ferramentas a um agente, de modo que um único servidor de ferramentas funcione com muitas aplicações de IA. O servidor MCP do PromptFlowEngine expõe a análise, a reestruturação e a sanitização de prompts como ferramentas somente leitura. Um agente pode usá-las em seu próprio ciclo, por exemplo para sanitizar o contexto antes de repassá-lo, ou para transformar uma tarefa vaga em especificação antes de começar.
Para o desenho mais amplo das instruções de agentes, continue com os prompts para agentes de IA.