O que é um agente ReAct?

Autores

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

O que é um agente ReAct?

Um agente do ReAct é um agente de IA que utiliza o framework de "raciocínio e ação" (ReAct) para combinar o raciocínio em cadeia de pensamento (CoT) com o uso de ferramentas externas. O framework ReAct aprimora a capacidade de um grande modelo de linguagem (LLM) de lidar com tarefas complexas e tomada de decisão em fluxos de trabalho agênticos.

Lançado pela primeira vez por Yao e outros no artigo de 2023, “ReACT: Synergizing Reasoning and Acting in Language Models,” o ReAct pode ser entendido de maneira geral como um paradigma de aprendizado de máquina (ML) para integrar os recursos de raciocínio e execução de ações de LLMs.

Mais especificamente, o ReAct é um framework conceitual para a criação de agentes de IA que podem interagir com seu ambiente de forma estruturada, mas adaptável, utilizando um LLM como o "cérebro" do agente para coordenar qualquer coisa, desde uma simples geração aumentada de recuperação (RAG) até fluxos de trabalho multiagentes complexos.

Ao contrário dos sistemas tradicionais de inteligência artificial (IA), os agentes do ReAct não separam a tomada de decisão da execução das tarefas. Portanto, o desenvolvimento do paradigma ReAct foi um passo importante na evolução da IA generativa (IA gen) para além dos meros chatbots conversacionais e em direção à resolução de problemas complexos.

Agentes do ReAct e abordagens derivadas continuam a impulsionar aplicações de IA que conseguem planejar, executar e se adaptar de forma autônoma a circunstâncias imprevistas.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Como funcionam os agentes ReAct?

O framework ReAct é inspirado na maneira como os seres humanos conseguem, de forma intuitiva, usar a linguagem natural — muitas vezes por meio de nosso próprio monólogo interior — no planejamento passo a passo e na execução de tarefas complexas.

Em vez de implementar fluxos de trabalho baseados em regras ou previamente definidos, agentes do ReAct dependem dos recursos de raciocínio de seus LLMs para ajustar dinamicamente sua abordagem com base em novas informações ou nos resultados das etapas anteriores.

Imagine fazer as malas para uma breve viagem. Você pode começar identificando as considerações principais (" Como estará o tempo enquanto eu estiver lá?") e, em seguida, consultar ativamente fontes externas ("Vou verificar a previsão meteorológica local").

Usando essa nova informação (“Vai fazer frio”), você determina sua próxima consideração (“Quais roupas de frio eu tenho?”) e ação (“Vou verificar meu armário”). Ao realizar essa ação, você pode encontrar um obstáculo inesperado (“Todas as minhas roupas de calor estão no depósito”) e ajustar devidamente sua próxima etapa (“Quais roupas posso colocar juntas?”).

De maneira semelhante, o framework ReAct utiliza engenharia de prompts para estruturar a atividade de um agente de IA em um padrão formal de alternância entre pensamentos, ações e observações:

  • As etapas de raciocínio CoT verbalizadas (pensamentos) ajudam o modelo a decompor a tarefa maior em subtarefas mais gerenciáveis.

  • Ações predefinidas permitem que o modelo use ferramentas, faça chamadas da interface de programação de aplicativos (APIs) e colete mais informações de fontes externas (como mecanismos de busca) ou bases de conhecimento (como um armazenamento interno de documentos).

  • Depois de executar uma ação, o modelo reavalia o progresso e usa essa observação para fornecer uma resposta final ou informar o próximo pensamento. A observação pode, idealmente, também considerar informações anteriores, seja da janela de contexto padrão do modelo ou de um componente de memória externa.

Como o desempenho de um agente de ReAct depende fortemente da capacidade de seu LLM central “pensar verbalmente” enquanto resolve tarefas complexas, agentes de ReAct se beneficiam enormemente de modelos altamente capazes com habilidades avançadas de raciocínio e de seguimento de instruções.

Para minimizar custos e latência, um framework ReAct multiagentes pode contar principalmente com um modelo maior e mais eficiente atuando como agente central, cujo raciocínio ou ações podem envolver a delegação de subtarefas a mais agentes criados usando modelos menores e mais eficientes.

Loops de agentes ReAct

Esse framework cria, de forma inerente, um ciclo de feedback no qual o modelo resolve problemas repetindo iterativamente esse processo intercalado de pensamento-ação-observação.

Cada vez que esse ciclo se completa (isto é, cada vez que o agente realiza uma ação e faz uma observação com base nos resultados), o agente deve decidir se repete ou encerra o ciclo.

Diagrama de um caminho ReAct

Quando e como encerrar o ciclo de raciocínio é uma consideração importante no design de um agente de ReAct. Estabelecer um número máximo de iterações de ciclo é uma maneira simples de limitar a latência, os custos e o uso de tokens, e evitar a possibilidade de um ciclo infinito.

Por outro lado, ciclo loop pode ser configurado para terminar quando uma condição específica for atendida, como quando o modelo tiver identificado uma resposta final potencial que ultrapasse um determinado limiar de confiança.

Para implementar esse tipo de ciclo de raciocínio e ação, agentes de ReAct normalmente usam alguma variação dos prompts de ReAct, seja no prompt do sistema fornecido ao LLM ou no contexto da própria consulta do usuário.

ReAct prompting

O prompt de ReAct é uma técnica de engenharia de prompts específica projetada para orientar um LLM a seguir o paradigma do ReAct de ciclos de pensamento,ação e observação. Embora o uso explícito dos métodos tradicionais de prompts de ReAct não seja estritamente necessário para construir um agente de ReAct, a maioria dos agentes baseados nesse framework implementa ou ao menos se inspira diretamente nele.

Descrito inicialmente no artigo original sobre o ReAct, a principal função dos prompts de ReAct é instruir o LLM a seguir o ciclo de ReAct e estabelecer quais ferramentas podem ser usadas (ou seja, quais ações podem ser adotadas) ao lidar com consultas de usuários.

Seja por meio de instruções explícitas ou da inclusão de exemplos few-shot, os prompts de ReAct devem:

  • Orientar o modelo a usar o raciocínio de cadeia de pensamentos: incentive-o a raciocinar seu caminho pelas tarefas pensando passo a passo, intercalando pensamentos com ações.

  • Definir ações: estabeleça as ações específicas disponíveis para o modelo. Uma ação pode implicar a geração de um tipo específico de próximo pensamento ou subprompt, mas geralmente envolve o uso de ferramentas externas ou a criação de APIs.

  • Instruir o modelo a fazer observações: instrua o modelo a reavaliar seu contexto após cada etapa de ação e usar esse contexto atualizado para informar o próximo passo do raciocínio.

  • Ciclo: instrua o modelo a repetir as etapas anteriores, se necessário. Você pode fornecer condições específicas para encerrar esse ciclo, como um número máximo de repetições, ou instruir o agente a encerrar seu processo de raciocínio sempre que sentir que chegou à saída final correta.

  • Resposta final da saída: sempre que essas condições finais forem atendidas, forneça ao usuário a saída final em resposta à consulta inicial dele. Como acontece com muitos usos de LLMs, como modelos de raciocínio que empregam um raciocínio em cadeia de pensamento antes de determinar uma saída final, os agentes de ReAct são frequentemente solicitados a conduzir seu processo de raciocínio dentro de um “scratchpad”.

Uma demonstração clássica dos prompts de ReAct é o prompt de sistema para o criado previamenteZERO_SHOT_REACT-DESCRIPTION criado previamente no LangGraph do LangChain. É chamado de "zero-shot" porque, com esse prompt de sistema predefinido, o LLM usado com o módulo não precisa de exemplos adicionais para se comportar como um agente de ReAct.

Answer the following questions as best you can. You have access to the following tools: 

Wikipedia: A wrapper around Wikipedia. Useful for when you need to answer general questions about people, places, companies, facts, historical events, or other subjects. Input should be a search query.
duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query.
Calculator: Useful for when you need to answer questions about math.

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [Wikipedia, duckduckgo_search, Calculator]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

Begin!

Question: {input}
Thought:{agent_scratchpad}
Agentes de IA

Cinco tipos de agentes de IA: funções autônomas e aplicações no mundo real

Saiba como a IA orientada por objetivos e baseada em utilidade se adapta a fluxos de trabalho e ambientes complexos.

Benefícios dos agentes ReAct

O lançamento do framework ReAct foi uma etapa importante no avanço dos fluxos de trabalho agênticos orientados por LLMs. Desde a fundamentação de LLMs em tempo real, por meio de informações externas do mundo real (RAG), até a contribuição para avanços subsequentes (como o Reflexion, que levou a modelos de raciocínio modernos), o ReAct ajudou a catalisar o uso de LLMs para tarefas muito além da geração de texto.

A utilidade dos agentes de ReAct decorre em grande parte de algumas qualidades inerentes ao framework ReAct:

  • Versatilidade: os agentes de ReAct podem ser configurados para trabalhar com uma ampla variedade de ferramentas e APIs externas. Embora o ajuste fino dos prompts relevantes do ReAct (usando ferramentas relevantes) possa melhorar o desempenho, nenhuma configuração prévia do modelo é necessária para executar chamadas de ferramentas.

  • Adaptabilidade: essa versatilidade, juntamente com a natureza dinâmica e situacional de como determinam a ferramenta ou API apropriada para chamar, significa que os agentes do ReAct podem usar seu processo de raciocínio para se adaptar a novos desafios. Especialmente quando operam dentro de uma janela de contexto longa ou ampliada com memória externa, eles podem aprender com erros e sucessos passados para enfrentar obstáculos e situações imprevistas. Isso torna os agentes de ReAct flexíveis e resilientes.

  • Explicabilidade: o processo de raciocínio verbalizado de um agente de ReAct é simples de seguir, o que facilita a depuração e ajuda a torná-los relativamente fáceis de construir e otimizar.

  • Precisão: como afirma o artigo original do ReAct, o raciocínio da cadeia de pensamento (CoT) por si só tem muitos benefícios para os LLMs, mas também corre um risco maior de alucinação. A combinação do CoT do ReAct com uma conexão externa a fontes de informação reduz significativamente as alucinações, tornando os agentes de ReAct mais precisos e confiáveis.

Agentes ReAct vs. chamada de função

Outro paradigma importante para IA agêntica é o da chamada de funções, originalmente lançado pela OpenAI em junho de 2023 para complementar os recursos agênticos de seus modelo GPTs GPT.

O paradigma da chamada de funções envolve o ajuste fino dos modelos para reconhecer quando uma situação específica deve resultar em uma chamada de ferramenta e gerar um objeto JSON estruturado contendo os argumentos necessários para chamar essas funções.

Muitas famílias de LLM proprietárias e de código aberto, incluindo o IBM® Granite, a série Llama da Meta, o Claude da Anthropic e o Google Gemini, agora são compatíveis com chamada de funções.

Se o ReAct ou a chamada de funções são "melhores", isso geralmente dependerá da natureza de seu caso de uso específico. Em cenários que envolvem tarefas relativamente simples (ou pelo menos previsíveis), a chamada de funções pode ser executada mais rapidamente, economizar tokens e ser mais simples de implementar do que um agente de ReAct.

Nessas circunstâncias, o número de tokens que seriam gastos no ciclo iterativo de raciocínio CoT de um agente de ReAct pode ser considerado ineficiente.

A compensação inerente é a relativa falta de capacidade de personalizar como e quando o modelo escolhe qual ferramenta utilizar. Da mesma forma, quando um agente precisa lidar com tarefas que exigem raciocínio complexo ou cenários dinâmicos e imprevisíveis, a rigidez da chamada de funções pode limitar sua adaptabilidade. Nessas situações, pode ser benéfico visualizar o raciocínio passo a passo que levou à chamada de uma ferramenta específica.

Introdução aos agentes ReAct

Os agentes de ReAct podem ser projetados e implementados de várias maneiras, sejam eles codificados a partir do zero em Python ou desenvolvidos com a ajuda de frameworks de código aberto, como o BeeAI. A popularidade e o poder de permanência do paradigma ReAct renderam uma extensa literatura e tutoriais para agentes de ReAct no GitHub e em outras comunidades de desenvolvedores.

Como alternativa ao desenvolvimento de agentes de ReAct personalizados, muitos frameworks de IA agêntica, incluindo o BeeAI, LlamaIndex e LangGraph do LangChain, oferecem módulos de agentes de ReAct pré-configurados para casos de uso específicos.

Soluções relacionadas
Desenvolvimento de agentes de IA da IBM 

Permita que desenvolvedores criem, implementem e monitorem agentes de IA com o IBM watsonx.ai studio.

Explore o watsonx.ai
Agentes de IA e assistentes da IBM

Atinja uma produtividade revolucionária com um dos conjuntos de recursos mais abrangentes do setor para ajudar as empresas a criar, personalizar e gerenciar agentes e assistentes de IA. 

Explore agentes de IA
IBM Granite

Tenha mais de 90% de economia de custos com os modelos menores e abertos do Granite, projetados para a eficiência do desenvolvedor. Esses modelos prontos para uso corporativo oferecem desempenho excepcional em relação aos benchmarks de segurança e em uma ampla variedade de tarefas corporativas, da cibersegurança a RAG.

Explore Granite
Dê o próximo passo

Automatize seus fluxos de trabalho complexos e crie uma produtividade revolucionária com um dos conjuntos de recursos mais abrangentes do setor para ajudar empresas a construir, personalizar e fazer o gerenciamento de agentes e assistentes de IA. 

Explore o desenvolvimento de agentes no watsonx.ai Conheça o watsonx Orchestrate