¿Qué es un agente ReAct?

Autores

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

¿Qué es un agente ReAct?

Un agente ReAct es un agente de IA que utiliza el marco de "razonamiento y actuación" (ReAct) para combinar el razonamiento de la cadena de pensamiento (CoT) con el uso de herramientas externas. El marco ReAct mejora la capacidad de un modelo de lenguaje de gran tamaño (LLM) para manejar tareas complejas y la toma de decisiones en flujos de trabajo.

Presentado por primera vez por Yao y otros en el documento de 2023, “ReACT: Synergizing Reasoning and Acting in Language Models”, ReAct puede entenderse más generalmente como un paradigma de machine learning (ML) para integrar las capacidades de razonamiento y toma de decisiones de los LLM.

Más concretamente, ReAct es un marco conceptual para crear agentes de IA que puedan interactuar con su entorno de forma estructurada pero adaptable, utilizando un LLM como "cerebro" del agente para coordinar cualquier cosa, desde la simple generación aumentada por recuperación (RAG) hasta intrincados flujos de trabajo multiagente.

A diferencia de los sistemas tradicionales de inteligencia artificial (IA), los agentes ReAct no separan la toma de decisiones de la ejecución de tareas. Por lo tanto, el desarrollo del paradigma ReAct fue un paso importante en la evolución de la IA generativa (IA gen) más allá de los meros chatbots conversacionales y hacia la resolución de problemas complejos.

Los agentes ReAct y los enfoques derivados siguen impulsando aplicaciones de IA que pueden planificar, ejecutar y adaptarse de forma autónoma a circunstancias imprevistas.

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Cómo funcionan los agentes ReAct?

El marco ReAct se inspira en la forma en que los humanos pueden usar intuitivamente el lenguaje natural, a menudo a través de nuestro propio monólogo interno, en la planificación y ejecución paso a paso de tareas complejas.

En lugar de implementar flujos de trabajo basados en reglas o predefinidos, los agentes ReAct confían en las capacidades de razonamiento de su LLM para ajustar dinámicamente su enfoque en función de nueva información o los resultados de pasos anteriores.

Imagine hacer las maletas para un viaje corto. Puede empezar por identificar las consideraciones clave ("¿Cómo será el tiempo mientras esté allí?") y, a continuación, consultar activamente fuentes externas ("Comprobaré la previsión del tiempo local").

Al utilizar esa nueva información ("Va a hacer frío"), determina su próxima consideración ("¿Qué ropa de abrigo tengo?") y acción ("Revisaré mi armario"). Al tomar esa medida, es posible que se encuentre con un obstáculo inesperado ("Toda mi ropa de abrigo está guardada") y ajuste su próximo paso en consecuencia ("¿Qué ropa me puedo poner encima?").

En una forma similar, el marco ReAct utiliza el prompt engineering para estructurar la actividad de un agente de IA en un patrón formal de pensamientos, acciones y observaciones alternas:

  • Los pasos de razonamiento de CoT verbalizados (pensamientos) ayudan al modelo a descomponer la tarea más grande en subtareas más manejables.

  • Las acciones predefinidas permiten al modelo utilizar herramientas, realizar llamadas a la interfaz de programación de aplicaciones (API) y recopilar más información de fuentes externas (como motores de búsqueda) o bases de conocimiento (como un almacén de documentos interno).

  • Después de realizar una acción, el modelo vuelve a evaluar su progreso y utiliza esa observación para ofrecer una respuesta final o informar el siguiente pensamiento. Lo ideal sería que la observación también tuviera en cuenta la información previa, ya sea de una ventana anterior del contexto estándar del modelo o de un componente de memoria externo.

Dado que el rendimiento de un agente ReAct depende en gran medida de la capacidad de su LLM central para resolver "verbalmente" su camino a través de tareas complejas, los agentes ReAct se benefician enormemente de modelos altamente capaces con un razonamiento avanzado y capacidad para seguir instrucciones.

Para minimizar el coste y la latencia, un marco ReAct multiagente podría basarse principalmente en un modelo más grande y de mayor rendimiento que sirva como agente central cuyo proceso de razonamiento o acciones podrían implicar delegar subtareas a más agentes creados utilizando modelos más pequeños y eficientes.

Bucles de agentes ReAct

Este marco crea de forma inherente un bucle de feedback en el que el modelo resuelve el problema repitiendo iterativamente este proceso intercalado de pensamiento-acción-observación.

Cada vez que se completa este bucle, es decir, cada vez que el agente ha emprendido una acción y ha realizado una observación basada en los resultados de esa acción, el agente debe decidir si repite o finaliza el bucle.

Cuándo y cómo terminar el bucle de razonamiento es una consideración importante en el diseño de un agente ReAct. Establecer un número máximo de iteraciones de bucle es una forma sencilla de limitar la latencia, los costes y el uso de token, y evitar la posibilidad de un bucle sin fin.

Por el contrario, el bucle puede configurarse para finalizar cuando se cumple alguna condición específica, como cuando el modelo haya identificado una posible respuesta final que supere un cierto umbral de confianza.

Para implementar este tipo de bucle de razonamiento y actuación, los agentes ReAct suelen utilizar alguna variante de la instrucción ReAct, ya sea en la instrucción del sistema proporcionada al LLM o en el contexto de la propia consulta del usuario.

Prompting de ReAct

El prompting de ReAct es una técnica de prompting específica diseñada para guiar a un LLM a seguir el paradigma ReAct de bucles de pensamiento, acción y observación. Aunque el uso explícito de métodos convencionales de prompting de ReAct no es estrictamente necesario para crear un agente ReAct, la mayoría de los agentes basados en ReAct lo implementan o al menos se inspiran directamente en él.

Descrita por primera vez en el documento original de ReAct, la función principal de las indicaciones de ReAct es instruir a un LLM para que siga el bucle ReAct y establezca qué herramientas se pueden utilizar, es decir, qué acciones se pueden tomar, al gestionar las consultas de los usuarios.

Ya sea a través de instrucciones explícitas o de la inclusión de ejemplos few-shot, las instrucciones ReAct deberían:

  • Instruir al modelo para que utilice el razonamiento en cadena de pensamiento: instruya al modelo a razonar sobre las tareas paso a paso, intercalando pensamientos con acciones.

  • Definir acciones: establezca las acciones específicas disponibles para el modelo. Una acción puede implicar la generación de un tipo específico de siguiente pensamiento o subprompt, pero generalmente implica el uso de herramientas externas o la creación de API.

  • Instruir al modelo para que haga observaciones: instruya al modelo que reevalúe su contexto después de cada paso de acción y utilice ese contexto actualizado para informar el siguiente paso de razonamiento.

  • Bucle: instruya al modelo que repita los pasos anteriores si es necesario. Podría proporcionar condiciones específicas para finalizar ese bucle, como un número máximo de bucles, o indicar al agente que finalice su proceso de razonamiento cada vez que sienta que ha llegado a la output correcta.

  • Resultado final: siempre que se hayan cumplido esas condiciones finales, proporcione al usuario la salida final en respuesta a su consulta inicial. Al igual que con muchos usos de los LLM, como modelos de razonamiento que emplean el razonamiento de la cadena de pensamiento antes de determinar un output final, los agentes ReAct a menudo se ven obligados a llevar a cabo su proceso de razonamiento dentro de un "bloc de notas".

Una demostración clásica de la instrucción de ReAct es la instrucción del sistema para el precompiladoZERO_SHOT_REACT-DESCRIPTION prediseñada en LangGraph de Langchain. Se llama "zero-shot" porque, con esta instrucción predefinida del sistema, el LLM que se utiliza con el módulo no necesita más ejemplos para comportarse como un agente 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: funciones autónomas y aplicaciones del mundo real

Descubra cómo la IA basada en objetivos y servicios se adapta a flujos de trabajo y entornos complejos.

Beneficios de los agentes ReAct

La introducción del marco ReAct fue un paso importante en el avance de los flujos de trabajo agénticos impulsados por LLM. Desde fundamentar los LLM en tiempo real, información externa del mundo real a través de (RAG) hasta contribuir a avances posteriores, como Reflexion, que condujo a modelos de razonamiento modernos, ReAct ha ayudado a catalizar el uso de LLM para tareas mucho más allá de la generación de texto.

La utilidad de los agentes ReAct se basa en gran medida en algunas de las cualidades inherentes del marco ReAct:

  • Versatilidad: los agentes ReAct se pueden configurar para trabajar con una amplia variedad de herramientas y API externas. Aunque el fine-tuning de las instrucciones relevantes ReAct (utilizando herramientas relevantes) puede mejorar el rendimiento, no se requiere configuración previa del modelo para ejecutar llamadas a herramientas.

  • Adaptabilidad: esta versatilidad, junto con la naturaleza dinámica y situacional de cómo determinan la herramienta o API adecuada para llamar, significa que los agentes de ReAct pueden utilizar su proceso de razonamiento para adaptarse a nuevos desafíos. Especialmente cuando operan dentro de una ventana de contexto prolongada o aumentada con memoria externa, pueden aprender de los errores y éxitos del pasado para abordar obstáculos y situaciones imprevistos. Esto hace que los agentes ReAct sean flexibles y resilientes

  • Explicabilidad: el proceso de razonamiento verbalizado de un agente ReAct es fácil de seguir, lo que facilita la depuración y ayuda a que sea relativamente fácil de construir y optimizar.

  • Precisión: como afirma el artículo original de ReAct, el razonamiento en cadena de pensamiento (CoT) por sí solo tiene muchos beneficios para los LLM, pero también conlleva un mayor riesgo de alucinación. La combinación de CoT de ReAct con una conexión externa a las fuentes de información reduce significativamente las alucinaciones, lo que hace que los agentes de ReAct sean más precisos y fiables.

Agentes ReAct vs. llamadas a funciones

Otro paradigma destacado para la IA agéntica es la llamada de funciones,introducida originalmente por OpenAI en junio de 2023 para complementar las capacidades agentivas de sus modelos GPT.

El paradigma de llamada a funciones implica el fine-tuning de los modelos para reconocer cuándo una situación particular debe dar lugar a una llamada a una herramienta y generar un objeto JSON estructurado que contenga los argumentos necesarios para llamar a esas funciones.

Muchas familias de LLM propietarias y de código abierto, incluidas IBM Granite, la serie Llama de Meta, Claude de Anthropic y Google Gemini, ahora admiten llamadas a funciones.

Si ReAct o la llamada a funciones es "mejor", generalmente dependerá de la naturaleza de su caso de uso específico. En escenarios que implican tareas relativamente sencillas (o al menos predecibles), las llamadas a funciones pueden ejecutarse más rápido, ahorrar tokens y ser más sencillas de implementar que un agente ReAct.

En tales circunstancias, el número de tokens que se gastarían en el bucle iterativo de razonamiento CoT de un agente ReAct podría considerarse ineficiente.

La desventaja inherente es una relativa falta de capacidad para personalizar cómo y cuándo el modelo elige qué herramienta utilizar. Del mismo modo, cuando un agente maneja tareas que requieren un razonamiento complejo, o escenarios dinámicos o impredecibles, la rigidez de la llamada a funciones puede limitar la adaptabilidad del agente. En tales situaciones, a menudo resulta beneficioso poder ver el razonamiento paso a paso que condujo a la llamada a una herramienta específica.

Primeros pasos con los agentes ReAct

Los agentes ReAct se pueden diseñar e implementar de múltiples maneras, ya sea codificados desde cero en Python o desarrollados con la ayuda de marcos de código abierto como BeeAI. La popularidad y el poder de permanencia del paradigma ReAct han dado lugar a una amplia literatura y tutoriales para agentes ReAct en GitHub y otras comunidades de desarrolladores.

Como alternativa al desarrollo de agentes ReAct personalizados, muchos marcos de IA agéntica, incluidos BeeAI, LlamaIndex y LangGraph de LangChain, ofrecen módulos de agentes ReAct preconfigurados para casos de uso específicos.

Soluciones relacionadas
Desarrollo de agentes de IA de IBM 

Permita a los desarrolladores crear, implementar y monitorizar agentes de IA con el estudio IBM watsonx.ai.

Explore watsonx.ai
Agentes y asistentes de IA de IBM

Cree una productividad sin precedentes con uno de los conjuntos de capacidades más completos del sector para ayudar a las empresas a crear, personalizar y gestionar agentes y asistentes de IA. 

Explore los agentes de IA
IBM Granite

Ahorre más de un 90 % en costes con los modelos más pequeños y abiertos de Granite, diseñados para la eficiencia de los desarrolladores. Estos modelos listos para uso empresarial ofrecen un rendimiento excepcional frente a los puntos de referencia de seguridad y en una amplia gama de tareas empresariales, desde la ciberseguridad hasta RAG.

Explore Granite
Dé el siguiente paso

Automatice sus flujos de trabajo complejos y cree una productividad revolucionaria con uno de los conjuntos de capacidades más completos del sector para ayudar a las empresas a crear, personalizar y gestionar agentes de IA y asistentes. 

Explore el desarrollo de agentes de watsonx.ai Descubra watsonx Orchestrate