ReAct Agents - Introdução

Além do Cérebro: Por que o ReAct é a Chave para Agentes de IA Mais Inteligentes e Orientados à Ação
Como cientistas de dados e praticantes de IA, todos nós ficamos hipnotizados pela incrível fluência dos Grandes Modelos de Linguagem (LLMs). Eles podem escrever poesia, depurar código e explicar física quântica. Mas, por muito tempo, eles foram exatamente isso: cérebros em uma cuba. Eles podiam falar sobre o mundo, mas não podiam interagir com ele.
Se você perguntasse a um LLM antigo: "Qual é o tempo em São Francisco e quem ganhou o jogo do Warriors ontem à noite?", ele alucinaria uma resposta ou, se bem-comportado, diria que não tinha acesso a informações em tempo real.
Essa limitação era uma barreira crítica. Para construir assistentes verdadeiramente úteis, não precisamos apenas de um modelo que sabe coisas; precisamos de um que possa fazer coisas.
Eis que surge o ReAct. Essa estrutura simples, mas poderosa, está mudando fundamentalmente o jogo, transformando LLMs de geradores de texto passivos em agentes autônomos que podem raciocinar, planejar e agir.
🤔 O que é o ReAct?
O ReAct, introduzido por pesquisadores no artigo de 2022 "ReAct: Synergizing Reasoning and Acting in Language Models", é uma estrutura que significa "Reasoning and Acting" (Raciocinar e Agir).
A ideia central é combinar as impressionantes capacidades de raciocínio dos LLMs (muitas vezes vistas no prompting de Cadeia de Pensamento, ou Chain-of-Thought (CoT)) com a capacidade de realizar ações — ou seja, usar ferramentas externas.
Em vez de apenas "pensar" até chegar a uma resposta final de uma só vez, um agente ReAct opera em um loop contínuo. Esse loop se parece com isto:
- Pensamento (Thought): O LLM raciocina sobre a tarefa. Ele decompõe o problema, forma um plano e identifica o que precisa saber ou fazer a seguir.
- Ação (Action): Com base em seu pensamento, o agente seleciona e usa uma ferramenta. Pode ser uma pesquisa na web, uma calculadora, uma consulta a um banco de dados ou uma chamada de API.
- Observação (Observation): O agente recebe o resultado (a "observação") da ferramenta. Esta é uma nova informação do "mundo exterior".
- Repetir: O agente pega essa nova observação, a insere de volta em sua etapa de "Pensamento" e refina seu plano.
Este ciclo de Pensamento-Ação-Observação se repete até que o agente tenha coletado informações suficientes e raciocinado até chegar a uma resposta final e completa.
[Imagem de um diagrama do loop Pensamento-Ação-Observação do ReAct]
🧐 Por que Isso Muda o Jogo?
Para entender por que o ReAct é tão importante, vamos ver o que ele corrige.
O Problema do "Apenas Raciocinar" (Chain-of-Thought)
O prompting de Chain-of-Thought (CoT) foi um grande salto. Ao pedir a um modelo para "pensar passo a passo", obtivemos respostas mais precisas e lógicas.
- Prompt:
Qual é a capital da França? - Resposta:
Paris. - Prompt:
Um corredor corre 3 milhas para leste e 4 milhas para norte. A que distância ele está de seu ponto de partida? Por favor, pense passo a passo. - Resposta CoT:
Pensamento: O usuário está perguntando pela hipotenusa de um triângulo retângulo. Os dois catetos são 3 milhas e 4 milhas. Preciso usar o teorema de Pitágoras: a² + b² = c². Então, 3² + 4² = c². Isso é 9 + 16 = 25. A raiz quadrada de 25 é 5. Resposta Final: O corredor está a 5 milhas de seu ponto de partida.
Isso é ótimo para lógica autocontida, mas tem uma falha enorme: não pode acessar novas informações. Se seu conhecimento interno estiver desatualizado ou incompleto, ele irá alucinar com confiança. O CoT é tudo "raciocínio", sem "ação".
O Problema do "Apenas Agir"
Outras abordagens focavam apenas em "agir" — usar ferramentas. Você poderia treinar um modelo para reconhecer que "tempo em SP" mapeia para uma chamada de API get_weather(city="São Paulo").
Isso é útil, mas rígido. Ele tem dificuldade com problemas complexos e de várias etapas que exigem planejamento. Se o usuário pedir: "Reserve-me um voo para o destino de clima quente mais barato na Europa na próxima semana", um modelo "apenas de ação" falha. Ele não sabe como raciocinar sobre "clima quente", "mais barato" ou "próxima semana" de forma estruturada.
ReAct: O Melhor dos Dois Mundos
O ReAct sinergiza essas duas abordagens. O Raciocínio (Pensamento) fornece o planejamento e a flexibilidade, enquanto a Ação (Ação) fornece a ancoragem no mundo real.
Vamos revisitar nossa pergunta anterior: "Qual é o tempo em São Francisco e quem ganhou o jogo do Warriors ontem à noite?"
Um agente ReAct lidaria com isso assim:
Pensamento: O usuário tem duas perguntas distintas. Primeiro, o tempo em São Francisco. Segundo, o resultado do último jogo do Warriors. Preciso encontrar essas informações. Vou começar com o tempo.
Ação:
search(query="tempo em São Francisco")Observação: "São Francisco está atualmente com 14°C e céu limpo."
Pensamento: Ótimo, eu tenho o tempo. Agora preciso do resultado do jogo do Warriors. Devo pesquisar por isso.
Ação:
search(query="resultado jogo Golden State Warriors ontem à noite")Observação: "O Golden State Warriors derrotou o Los Angeles Lakers por 121-114 ontem à noite."
Pensamento: Eu tenho todas as informações necessárias para responder à solicitação do usuário.
Resposta Final: O tempo em São Francisco é atualmente de 14°C e céu limpo. O Golden State Warriors venceu seu jogo ontem à noite, derrotando o Los Angeles Lakers por 121-114.
Esta não é apenas uma resposta melhor; é uma resposta mais confiável e auditável. Você pode ver a linha exata de raciocínio do agente e verificar as informações que ele recuperou.
🛠️ Onde os Agentes ReAct Estão Sendo Usados?
A estrutura ReAct é a base para muitos dos sistemas de agentes de IA mais avançados sendo construídos hoje, incluindo aqueles em frameworks populares como o LangChain. Suas aplicações são vastas:
- Respostas a Perguntas Complexas: Responder a perguntas de "múltiplos saltos" (multi-hop) que exigem encontrar e combinar várias peças de informação (por exemplo, "Quem é o diretor do filme que ganhou o Oscar de Melhor Filme no ano em que nasceu a atriz principal de Barbie?").
- Assistentes Autônomos: Lidar com comandos complexos como "Planeje um itinerário de 3 dias para uma viagem a Tóquio, focado em tecnologia e comida, e encontre-me um hotel perto da estação de Shinjuku por menos de $200 por noite."
- Análise de Dados: Um agente que pode receber um arquivo CSV e uma pergunta. Ele pode "pensar" sobre a pergunta, "agir" escrevendo e executando código Python/SQL para analisar os dados, "observar" os resultados (como um gráfico ou tabela) e então "pensar" novamente para formar uma conclusão final.
- Bots de Atendimento ao Cliente: Um bot que pode "pensar" sobre o problema de um usuário (por exemplo, "Meu pedido #12345 não chegou"), "agir" consultando o banco de dados de pedidos da empresa via API, "observar" o status do pedido e então "pensar" para fornecer uma atualização útil e precisa.
🚀 O Futuro é Agêntico
O ReAct é mais do que apenas uma técnica de prompt; é um modelo mental para construir uma nova classe de IA. É a ponte entre o "modelo de mundo" do LLM e o mundo real.
Ao dar aos modelos a capacidade de parar, pensar e coletar mais informações, estamos passando de simples chatbots para verdadeiros agentes autônomos. Esses agentes podem resolver problemas complexos, aprender com seu ambiente e, o mais importante, resolver coisas. Como desenvolvedores e cientistas de dados, essa estrutura não é apenas algo para saber a respeito — é algo para começar a construir.
O cérebro está fora da cuba. Agora, vamos ver o que ele pode fazer.
Este vídeo explica a estrutura ReAct em mais detalhes (em inglês), mostrando como ela permite que grandes modelos de linguagem pensem e interajam com ferramentas externas.