¿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 grande (LLM) para manejar tareas complejas y la toma de decisiones en flujos de trabajo agénticos.

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 específicamente, ReAct es una infraestructura para crear agentes de IA que puedan interactuar con su entorno de una manera estructurada pero adaptable, mediante el uso de un LLM como el "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 simples 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 tendencias de IA presentadas por expertos

Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 breve. Puede empezar por identificar las consideraciones clave (“¿Cómo estará el clima mientras esté allí?”) y, a continuación, consultar activamente fuentes externas (“Verificaré el pronóstico 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 siguiente paso en consecuencia ("¿Qué ropa puedo ponerme en capas?").

De manera similar, el marco ReAct utiliza ingeniería rápida 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 que el modelo utilice herramientas, realice llamadas a la interfaz de programación de aplicaciones (API) y recopile 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. Idealmente, la observación también podría considerar información previa, ya sea anterior en la ventana de contexto estándar del modelo o de un componente de memoria externo.

Debido a que el rendimiento de un agente ReAct depende en gran medida de la capacidad de su LLM central para pensar "verbalmente" en tareas complejas, los agentes ReAct obtienen un gran beneficio de modelos altamente capaces con razonamiento avanzado y capacidad para seguir instrucciones.

Para minimizar el costo y la latencia, un marco ReAct multiagente podría basarse principalmente en un modelo más grande y de mayor rendimiento para servir 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 agente ReAct

Este marco crea inherentemente un ciclo de retroalimentación en el que el modelo resuelve problemas repitiendo de manera iterativa este proceso intercalado de pensamiento-acción-observación.

Cada vez que se completa este ciclo, es decir, cada vez que el agente realiza una acción y observa los resultados de esa acción, el agente debe decidir si repetir o finalizar el ciclo.

Diagrama de una ruta de reacción

Cuándo y cómo terminar el ciclo 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 costos y el uso de tokens, así como evitar la posibilidad de un bucle sin fin.

Por el contrario, el bucle se puede configurar para que finalice cuando se cumpla alguna condición específica, como cuando el modelo haya identificado una posible respuesta final que supere un determinado umbral de confianza.

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

Instrucciones de ReAct

Las técnicas de ingeniería de instrucciones ReAct son una técnica de ingeniería de instrucciones específica diseñada para guiar a un LLM a seguir el paradigma ReAct de bucles de pensamiento, acción y observación. Si bien el uso explícito de métodos convencionales de instrucciones ReAct no es estrictamente necesario para crear un agente ReAct, la mayoría de los agentes basados en ReAct implementan o al menos se inspiran de manera directa en él.

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

Ya sea a través de instrucciones explícitas o la inclusión de unos cuantos ejemplos, las instrucciones para ReAct deben:

  • Guiar al modelo para que use el razonamiento de la cadena de pensamiento: dé instrucciones al modelo para que razone su camino a través de las tareas pensando 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 subindicación, pero generalmente implica el uso de herramientas externas o la creación de API.

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

  • Hacer bucles: indique 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 al resultado final correcto.

  • Respuesta final de resultados: siempre que se hayan cumplido esas condiciones finales, proporcionar al usuario el resultado 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 resultado final, a los agentes de ReAct a menudo se les pide que lleven a cabo su proceso de razonamiento dentro de un "cuaderno de apuntes".

Una demostración clásica de las instrucciones para ReAct es la instrucción del sistema para elZERO_SHOT_REACT-DESCRIPCIÓN Módulo de agente ReAct 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 reales

Descubra cómo la IA orientada a objetivos y basada en utilidades se adapta a los 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 impulsados por LLM. Desde poner a tierra 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 deriva en gran medida de algunas de las cualidades inherentes de la infraestructura ReAct:

  • Versatilidad: los agentes ReAct se pueden configurar para trabajar con una amplia variedad de herramientas y API externas. Aunque ajustar las instrucciones ReAct relevantes (utilizando herramientas relevantes) puede mejorar el rendimiento, no se requiere una 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 a la cual llamar, significa que los agentes de ReAct pueden usar 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 errores y éxitos pasados 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 sean relativamente fáciles de usar para construir y optimizar.

  • Precisión: como afirma el documento original de ReAct, el razonamiento de la cadena de pensamiento (CoT) por sí solo tiene muchos beneficios para los LLM, pero también conlleva un mayor riesgo de alucinaciones. 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 confiables.

Agentes ReAct frente a llamadas a funciones

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

El paradigma de llamada a funciones implica refinar los modelos para reconocer cuándo una situación particular debe dar como resultado 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 patentadas 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 las llamadas a funciones son "mejores" generalmente dependerán de la naturaleza de su caso de uso específico. En escenarios que involucran 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 ciclo 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 usar. Del mismo modo, cuando un agente maneja tareas que requieren un razonamiento complejo, o escenarios que son dinámicos o impredecibles, la rigidez de la llamada a funciones puede limitar la adaptabilidad del agente. En tales situaciones, a menudo es beneficioso poder ver paso a paso el razonamiento que condujo a una llamada a una herramienta específica.

Introducción a los agentes de 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 infraestructura/marco de código abierto como BeeAI. La popularidad y el poder de permanencia del paradigma ReAct han producido numerosas publicaciones 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 agente ReAct preconfigurados para casos de uso específicos.

Soluciones relacionadas
Desarrollo de agentes de IA de IBM 

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

Explore watsonx.ai
Agentes de IA y asistentes de IBM

Cree una productividad revolucionaria con uno de los conjuntos de capacidades más completos de la industria para ayudar a las empresas a crear, personalizar y gestionar asistentes y agentes de IA. 

Explore los agentes de IA
IBM Granite

Logre un ahorro de más del 90 % en costos de energía con los modelos más pequeños y abiertos de Granite, diseñados para mejorar la eficiencia de los desarrolladores. Estos modelos preparados para empresas ofrecen un rendimiento excepcional contra puntos de referencia de seguridad y en una amplia gama de tareas empresariales, desde la ciberseguridad hasta el RAG.

Explorar Granite
Dé el siguiente paso

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

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