ReAct Prompting (ES)
ReAct (abreviatura de Reason + Act, que se traduce como «Razona y Actúa») es un paradigma de diseño de prompts (prompting) para modelos de lenguaje grandes (LLM), que les permite resolver tareas complejas alternando razonamientos verbales (pensamientos) y acciones que interactúan con un entorno externo[1]. El método fue propuesto en 2022 por investigadores de Google Research y la Universidad de Princeton y se ha convertido en un enfoque fundamental en el desarrollo de agentes inteligentes.
La innovación clave de ReAct consiste en combinar el razonamiento lógico, característico de técnicas como Chain-of-Thought (CoT), con la ejecución de acciones externas, como la búsqueda de información o la interacción con interfaces de programación de aplicaciones (API). Esto permite al modelo corregir dinámicamente su plan, verificar hechos y superar las limitaciones de su propio conocimiento, que a menudo puede estar desactualizado o incompleto[2].
Antecedentes y contexto histórico
Antes de la aparición de ReAct, existían dos enfoques principales, aunque separados, para utilizar LLM en la resolución de tareas complejas:
- Cadena de pensamiento (Chain-of-Thought, CoT): El modelo genera un razonamiento lógico paso a paso para resolver un problema, pero lo hace en un «vacío de información», basándose únicamente en su conocimiento interno. Esto a menudo conduce a errores fácticos y «alucinaciones»[1].
- Planificación de acciones (Act-Only): El modelo genera una secuencia de acciones para interactuar con un entorno externo (por ejemplo, en juegos de texto), pero sin una planificación explícita de alto nivel. Estos sistemas tienen dificultades para manejar errores y no pueden adaptar su estrategia cuando se enfrentan a circunstancias imprevistas.
ReAct fue creado para combinar sinérgicamente las fortalezas de ambos enfoques. Permite al modelo no solo razonar, sino también fundamentar sus razonamientos en hechos del mundo externo, así como adaptar sus acciones en función de la retroalimentación recibida.
Mecanismo de funcionamiento: el ciclo «Pensamiento – Acción – Observación»
ReAct opera dentro de un ciclo iterativo que incluye tres componentes clave. El modelo genera secuencialmente una trayectoria compuesta por los pasos de Thought, Action y Observation.
Ejemplo de la estructura de un prompt:
Pregunta: ¿Qué ciudad capital es el lugar de nacimiento del inventor conocido por la corriente alterna?
Thought 1: Necesito averiguar quién inventó la corriente alterna. Luego, encontrar su lugar de nacimiento y verificar si esa ciudad es una capital.
Action 1: Search[inventor de la corriente alterna]
Observation 1: La corriente alterna (CA) fue desarrollada e impulsada por Nikola Tesla.
Thought 2: Ahora necesito averiguar dónde nació Nikola Tesla.
Action 2: Search[lugar de nacimiento de Nikola Tesla]
Observation 2: Nikola Tesla nació en el pueblo de Smiljan, Imperio Austríaco (actual Croacia).
Thought 3: Smiljan no es una capital. Por lo tanto, la pregunta no tiene una respuesta directa en esta formulación. Sin embargo, Tesla vivió y trabajó durante mucho tiempo en los Estados Unidos. Quizás la pregunta se refiere a la capital del país donde hizo sus principales descubrimientos. Esa es una pregunta más compleja. Debo declarar el hecho basado en su lugar de nacimiento. La ciudad donde nació no es una capital.
Final Answer: El inventor asociado con la corriente alterna, Nikola Tesla, nació en Smiljan (Croacia), que no es una ciudad capital.
Pensamiento (Thought)
El modelo genera un razonamiento interno en el que analiza la tarea, la descompone en subtareas, formula o corrige un plan de acción y evalúa el estado actual. Este paso no afecta al entorno externo, sino que sirve para la planificación interna.
Acción (Action)
Basándose en su razonamiento, el modelo ejecuta una acción externa recurriendo a una de las herramientas disponibles. Ejemplos de acciones:
- Search [consulta] — para buscar información en una base de conocimientos (por ejemplo, Wikipedia).
- Click [elemento] — para navegar en una página web.
- API_call [parámetros] — para llamar a una API externa.
Observación (Observation)
El sistema o una herramienta externa ejecuta la acción y devuelve un resultado (la observación). Esto puede ser un fragmento de texto, una respuesta de una API o un mensaje de error. El modelo utiliza esta observación para formular el siguiente pensamiento, cerrando así el ciclo de retroalimentación[2].
Resultados experimentales y eficacia
Los autores de ReAct probaron el método en una amplia gama de tareas, demostrando su superioridad sobre los enfoques CoT y Act-Only.
| Benchmark | Tarea | ReAct (éxito/precisión) | Chain-of-Thought (éxito/precisión) | Act-Only (éxito/precisión) |
|---|---|---|---|---|
| FEVER | Verificación de hechos | 87.6% | 82.8% | 70.1% |
| HotpotQA | Preguntas con múltiples saltos (multi-hop) | 31.8% | 36.3% | 17.0% |
| ALFWorld | Juego de texto (planificación) | 71% | 10% | 13% |
| WebShop | Navegación web | 40% | - | 30.1% |
- En tareas que requieren verificación de hechos (FEVER), ReAct supera significativamente a CoT, ya que puede verificar la información.
- En tareas de planificación interactiva (ALFWorld, WebShop), ReAct demuestra una ventaja considerable, ya que puede adaptarse a un entorno cambiante.
- En tareas de razonamiento puro (HotpotQA), CoT puede mostrar resultados comparables o incluso mejores. Sin embargo, un enfoque híbrido ReAct+CoT demostró el mejor rendimiento, alcanzando un 35 % en HotpotQA[1].
Críticas y limitaciones
A pesar de su eficacia, ReAct tiene varias limitaciones y vulnerabilidades.
- Fragilidad (Brittleness): Investigaciones posteriores han demostrado que el éxito de ReAct podría no deberse tanto a una sinergia genuina entre el razonamiento y la acción, sino a la similitud sintáctica entre los ejemplos del prompt y la tarea actual. El modelo podría estar siguiendo el patrón `Thought-Action-Observation` sin comprender completamente la semántica del razonamiento[3].
- Costos computacionales: Cada ciclo de ReAct requiere al menos una llamada al LLM y una consulta a una herramienta externa, lo que lo hace lento y costoso en comparación con el prompting estándar.
- Dependencia de las herramientas: La eficacia del agente depende directamente de la calidad y fiabilidad de las herramientas disponibles. Una respuesta incorrecta o con ruido de una API puede desviar el razonamiento del modelo por un camino equivocado.
Importancia y desarrollo futuro
ReAct se ha convertido en un hito importante en el desarrollo de la IA, marcando la transición de los sistemas generativos a los sistemas agénticos. Ha sentado las bases conceptuales y prácticas para la mayoría de los frameworks modernos de creación de agentes, como:
- LangChain
- LlamaIndex
- AutoGen
Las ideas de ReAct sirvieron como punto de partida para arquitecturas de razonamiento más complejas, como Reflexion (que añade un ciclo de autorreflexión tras un fallo) y Tree of Thoughts (ToT) (que explora múltiples caminos de razonamiento en paralelo).
Enlaces
- Página oficial del proyecto ReAct
- Descripción de ReAct en la guía Learn Prompting
- Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (entrada de blog). Google Research Blog.
Bibliografía
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Shinn, N. et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366.
- Verma, V. et al. (2024). On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models. arXiv:2405.13966.
- Yao, S. et al. (2022). WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents. arXiv:2207.01206.
- Shridhar, M. et al. (2020). ALFWorld: Aligning Text and Embodied Environments for Interactive Learning. arXiv:2010.03768.
- Qin, L. et al. (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Collaboration. arXiv:2308.08155.
- Thorne, J. et al. (2018). FEVER: A Large-Scale Dataset for Fact Extraction and Verification. arXiv:1803.05355.
- Yang, Z. et al. (2018). HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering. arXiv:1809.09600.
Notas
- ↑ 1.0 1.1 1.2 1.3 Yao, S., Zhao, J., Yu, D., et al. (2022). «ReAct: Synergizing Reasoning and Acting in Language Models». arXiv preprint arXiv:2210.03629. [1]
- ↑ 2.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [2]
- ↑ Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [3]