---
title: "ReAct agent: el patrón Thought, Action, Observation"
description: "El patrón ReAct (Reasoning and Acting) es un patrón de diseño de agentes en el que un LLM alterna entre razonar (Thought), llamar a una herramienta (Action) y leer el resultado (Observation)."
locale: "es"
canonical: "https://blckalpaca.at/es/base-de-conocimiento/agentes-de-ia/arquitecturas-de-agentes-de-ia-vision-general/react-agent-el-patron-thought-action-observation"
category: "Agentes de IA"
topic: "Arquitecturas de agentes de IA: visión general"
updated: "2026-10-28T13:10:48.867Z"
source: "Blck Alpaca e.U., blckalpaca.at"
---

# ReAct agent: el patrón Thought, Action, Observation

El patrón ReAct (Reasoning and Acting) es un patrón de diseño de agentes en el que un LLM alterna entre razonar (Thought), llamar a una herramienta (Action) y leer el resultado (Observation). Este bucle se repite hasta que el agente da una respuesta final. Lo presentaron Yao et al. (2022).

## De un vistazo

- ReAct entrelaza el razonamiento verbal (Thought) con las llamadas a herramientas (Action) y sus resultados (Observation) en un único contexto. Lo introdujeron Yao et al. (arXiv:2210.03629, octubre de 2022, ICLR 2023).
- Su gran fortaleza es combinar el uso de herramientas con la transparencia: la traza completa de Thought/Action/Observation se puede reconstruir paso a paso y facilita la depuración y la aportación de pruebas, por ejemplo conforme al RGPD.
- Los modos de fallo típicos son los bucles infinitos, el Reasoning Drift (aferrarse a una suposición falsa) y la alucinación de argumentos de herramientas, sobre todo con modelos más débiles.
- La contramedida más importante: límites de iteración estrictos (por ejemplo, recursion_limit en LangGraph o max_iter en CrewAI) y function calling en lugar de argumentos JSON en texto libre.
- El límite práctico suele estar en 10-25 pasos, antes de que dominen la pérdida de contexto y el Reasoning Drift; ReAct es secuencial y, por tanto, depende de la latencia.
- Recomendación de la práctica (Anthropic, Cognition): empezar con el patrón más sencillo, normalmente ReAct, y escalar solo cuando los modos de fallo medidos lo exijan.

El **patrón ReAct** (Reasoning and Acting) es un patrón de diseño de agentes en el que un [LLM](https://blckalpaca.at/es/glosario/llm) alterna entre razonar (**Thought**), llamar a una herramienta (**Action**) y volver a leer el resultado (**Observation**). Este bucle se repite hasta que el [agente](https://blckalpaca.at/es/glosario/agente) da una respuesta final. Lo presentaron Yao et al. (arXiv:2210.03629, octubre de 2022, ICLR 2023). El [razonamiento guía la elección de herramientas](https://blckalpaca.at/es/base-de-conocimiento/agentes-de-ia/que-son-los-agentes-de-ia/ai-agent-planning-razonamiento-y-planificacion-en-agentes-de-ia) y las observaciones de las herramientas corrigen el razonamiento.

- **Qué es:** un bucle de Thought, Action y Observation en el que un LLM entrelaza pensar y actuar y utiliza herramientas en el mismo contexto.
- **Para qué sirve:** tareas apoyadas en herramientas y ancladas en hechos, con un historial completamente trazable. ReAct es el punto de partida estándar para los proyectos de agentes.
- **Qué vigilar:** bucles infinitos, Reasoning Drift y argumentos de herramientas alucinados; se controlan con límites de iteración estrictos y function calling.

## De dónde viene ReAct y qué problema resuelve

ReAct surgió como respuesta a dos debilidades opuestas de enfoques anteriores. El [Chain-of-Thought (CoT)](https://blckalpaca.at/es/glosario/chain-of-thought-prompting) puro razona exclusivamente de forma interna y por eso alucina hechos: le falta cualquier anclaje en el mundo exterior. A la inversa, los agentes de acción puros, como los primeros enfoques de WebGPT o SayCan, no pueden razonar de forma abstracta sobre objetivos a largo plazo ni recuperarse de las excepciones.

ReAct une ambas cosas: el **razonamiento verbal** está en el mismo contexto que las acciones. Así, el LLM obtiene una memoria de trabajo de toda la trayectoria y el agente se vuelve interpretable. Formalmente, ReAct amplía el espacio de acciones: además de las acciones externas, que generan observaciones reales, hay «acciones» lingüísticas (los Thoughts) que no cambian nada en el entorno y solo actualizan el contexto interno del agente. Llama la atención que el patrón ya funciona con uno o dos ejemplos en contexto, **sin [fine-tuning](https://blckalpaca.at/es/glosario/fine-tuning)**.

## El bucle en detalle: Thought, Action, Observation

El flujo canónico es: `User Query → [LLM: Thought] → [LLM: Action] → [Umgebung: Observation] → [LLM: Thought] → … → Finish[Antwort]`. Los tres pasos encajan de la siguiente manera.

| Paso | Significado | Quién lo genera |
| --- | --- | --- |
| **Thought** | Razonamiento en texto libre: el agente reflexiona sobre qué tiene que hacer a continuación y por qué. Solo actualiza el contexto interno, no el entorno. | LLM |
| **Action** | Llamada concreta a una herramienta con argumentos (p. ej., búsqueda, llamada a una [API](https://blckalpaca.at/es/glosario/api), consulta a una base de datos) o `Finish[Antwort]` para terminar. | LLM |
| **Observation** | El resultado de la acción que devuelve el entorno (resultados de búsqueda, respuesta de la API, mensaje de error). Se incorpora al siguiente Thought. | Entorno / herramienta |

Este ciclo continúa hasta que el modelo emite `Action: Finish[Antwort]`. El límite práctico suele estar en **10-25 pasos**, antes de que se impongan la pérdida de contexto o el Reasoning Drift.

## Pseudocódigo de un bucle ReAct

1. `context = systemPrompt + toolDescriptions + userQuery`
2. `schritt = 0`
3. `MAX_SCHRITTE = 15   # hartes Limit gegen Endlos-Loops`
4. `while schritt < MAX_SCHRITTE:`
5.     `ausgabe = LLM(context)   # erzeugt Thought + Action`
6.     `if ausgabe.action == "Finish":`
7.         `return ausgabe.action.argument   # finale Antwort`
8.     `observation = führeToolAus(ausgabe.action)   # externer Call`
9.     `context = context + ausgabe.thought + ausgabe.action + observation   # Beobachtung anhängen`
10.     `schritt += 1`
11. `return "Limit erreicht, keine Lösung gefunden."   # sauberer Abbruch`

La clave: en cada iteración se vuelve a enviar al LLM todo el historial anterior. Ahí reside tanto su fortaleza (memoria completa) como su principal debilidad (coste).

## Fortalezas y límites según la investigación

El artículo original demuestra las ventajas de ReAct en varios benchmarks. Importante: las cifras proceden de las condiciones de 2022/2023 (modelos de la clase [GPT](https://blckalpaca.at/es/glosario/gpt)-3 y PaLM) y deben leerse como **valores relativos**, no como valores absolutos actuales.

- **ALFWorld** (tareas domésticas basadas en texto): +34 puntos porcentuales absolutos frente a las baselines de imitación/RL, con uno o dos ejemplos.
- **WebShop** (navegación en e-commerce): +10 puntos porcentuales absolutos de tasa de éxito frente a IL/IL+RL.
- **HotpotQA** y **Fever**: competitivo o mejor que el CoT puro o la generación pura de acciones; la configuración más fuerte es un híbrido que alterna entre el conocimiento interno y el razonamiento apoyado en herramientas.

En cuanto a costes, ReAct es caro y lento. El consumo de tokens crece con O(N · T): N pasos por la longitud acumulada del contexto, porque cada paso vuelve a pagar el prefijo ([prompt](https://blckalpaca.at/es/glosario/prompt) de sistema, descripciones de herramientas, historial completo). La latencia es estrictamente secuencial, es decir, aproximadamente N × (tiempo de respuesta del LLM + tiempo de respuesta de la herramienta). Precisamente esta repetición del prefijo es la debilidad que el patrón sucesor [ReWOO](https://blckalpaca.at/es/base-de-conocimiento/agentes-de-ia/arquitecturas-de-agentes-de-ia-vision-general) aborda con solo dos llamadas al LLM.

## Modos de fallo y contramedidas

En la práctica, hay tres modos de fallo especialmente frecuentes:

- **Bucles infinitos:** sin un límite estricto de pasos, el agente puede razonar en círculos sin fin. **Contramedida:** límites explícitos, como `recursion_limit` en LangGraph, `max_tool_iterations` en el AssistantAgent de AutoGen (o, como alternativa, una condición de terminación como MaxMessageTermination) y `max_iter` en CrewAI. El `create_react_agent` de LangGraph ofrece un canal `remaining_steps` y se detiene con un mensaje de aviso cuando quedan menos de dos pasos.
- **Reasoning Drift / propagación de errores:** cuando el modelo se ha aferrado a un Thought erróneo, interpreta las Observations posteriores de forma que encajen con él. **Contramedida:** trayectorias más cortas, validación intermedia y, en tareas verificables, una señal externa de reflexión/verificación (puente hacia el patrón Reflexion).
- **Argumentos de herramientas alucinados y observaciones alucinadas:** cuando las descripciones de las herramientas son ambiguas, el modelo se inventa argumentos; los modelos más débiles a veces también «fantasean» observaciones en lugar de esperar el resultado real de la herramienta. Según la investigación, los argumentos JSON malformados son el error de producción más frecuente en modelos más débiles. **Contramedida:** usar salida estructurada o el **modo function calling** siempre que el proveedor lo admita y redactar con precisión las descripciones de las herramientas.

A esto se suma el ya mencionado inflado del contexto: cada paso vuelve a enviar el historial completo.

## Ejemplo concreto: agente de investigación para una agencia de marketing

Supongamos que una agencia crea un agente que investiga el número actual de empleados de una empresa cliente. El bucle podría desarrollarse así:

1. **Thought:** «No conozco la cifra actual y tengo que buscarla». → **Action:** `Suche["Mitarbeiterzahl Firma X 2026"]` → **Observation:** resultado con una nota de prensa.
2. **Thought:** «La nota indica un rango, necesito la cifra exacta». → **Action:** `Öffne[URL der Pressemeldung]` → **Observation:** texto completo con «unos 1.200 empleados».
3. **Thought:** «Esto responde a la pregunta». → **Action:** `Finish["ca. 1.200 Mitarbeiter, Stand 2026"]`.

Tres pasos, tres llamadas al LLM, un historial registrado al completo. Si fijas `MAX_SCHRITTE = 15`, el agente queda protegido frente a bucles infinitos. Si no encuentra nada, se detiene limpiamente en lugar de quemar tokens. Precisamente este flujo trazable es una ventaja real para los equipos de marketing sin perfil técnico: en [n8n](https://blckalpaca.at/es/glosario/n8n), por ejemplo, la vista de ejecución muestra cada llamada al LLM y a las herramientas como un log auditable.

## Frameworks y recomendaciones prácticas (a fecha de 2026)

ReAct está disponible de forma nativa en todos los stacks habituales: **LangGraph** (`create_react_agent`), **CrewAI** (cada agente es internamente un agente ReAct), **AutoGen** o el **Microsoft Agent Framework** (a fecha de 2026, AutoGen está en modo de mantenimiento; Microsoft remite los proyectos nuevos al Agent Framework) y **n8n**. Allí, el nodo AI Agent implementa desde [n8n 1.82.0](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/) el bucle de razonamiento y acción como Tools Agent mediante function calling nativo; la opción de elegir un tipo de agente ReAct propio está marcada como obsoleta. En [LangChain](https://blckalpaca.at/es/glosario/langchain), a fecha de 2026, `create_react_agent` pasa de `langgraph.prebuilt` a `langchain.agents.create_agent` con decoradores de middleware.

La lección práctica más importante viene de Anthropic («Building Effective Agents», diciembre de 2024) y Cognition: **empezar con el patrón más sencillo, normalmente ReAct, y escalar solo cuando los modos de fallo medidos lo exijan.** Los modelos frontera modernos dominan de forma nativa el bucle de razonamiento y acción mediante function calling; el prompting explícito de ReAct a menudo es innecesario. Lo decisivo pasa a ser entonces la memoria, los límites de iteración y el tracing. Las herramientas de observabilidad (LangSmith, Arize Phoenix, Langfuse) son prácticamente imprescindibles en producción. El Reglamento de IA de la UE exige registros automáticos para los [sistemas de IA de alto riesgo](https://blckalpaca.at/es/glosario/sistemas-de-ia-de-alto-riesgo) ([art. 12 del Reglamento de IA](https://artificialintelligenceact.eu/article/12/)); los agentes típicos de marketing e investigación no suelen entrar en esa categoría. Aun así, compensa guardar la traza de forma persistente para depurar y reconstruir lo ocurrido. Si contiene datos personales, se aplican la minimización de datos y la limitación del plazo de conservación según el [art. 5 del RGPD](https://dsgvo-gesetz.de/art-5-dsgvo/): depurar la PII y fijar un plazo de supresión.

## Para agencias y responsables de decisiones B2B

ReAct es el punto de entrada pragmático para casi cualquier proyecto de agentes: chatbots de atención al cliente conectados al [CRM](https://blckalpaca.at/es/glosario/crm) y a la base de conocimiento, triaje de soporte o tareas de investigación. Se pone en marcha rápido y es completamente auditable, dos cosas que cuentan en el entorno B2B europeo. Pero los costes y la latencia crecen con cada paso. Por eso, establece desde el principio límites de iteración estrictos, usa function calling en lugar de argumentos en texto libre y guarda la traza de forma persistente para auditoría y depuración. Si como agencia quieres diseñar un agente o que revisemos la estabilidad de un flujo de trabajo existente, escríbenos. Te acompañamos en la selección, la arquitectura y una implementación conforme a la normativa.

## Preguntas frecuentes

### ¿Qué significa ReAct?

ReAct significa Reasoning and Acting. El LLM entrelaza un razonamiento en texto libre (Thought) con llamadas a herramientas (Action) y vuelve a leer sus resultados (Observation). Estos tres pasos forman un bucle que se ejecuta hasta que el agente da una respuesta final. El patrón lo introdujeron Yao et al. en 2022.
### ¿En qué se diferencia ReAct de Chain-of-Thought (CoT)?

Chain-of-Thought razona de forma puramente interna, sin acceso al mundo exterior, y por eso puede alucinar hechos. ReAct ancla el razonamiento en observaciones reales de las herramientas: el razonamiento guía la elección de herramientas y los resultados de las herramientas, a su vez, corrigen el razonamiento. Así, ReAct une el razonamiento abstracto con el anclaje en los hechos.
### ¿Cuáles son los modos de fallo más frecuentes del patrón ReAct?

Los problemas más frecuentes son los bucles infinitos sin un límite estricto de pasos, el Reasoning Drift (el agente se aferra a una suposición falsa e interpreta las observaciones posteriores para que encajen con ella), los argumentos de herramientas alucinados cuando las descripciones de las herramientas son ambiguas y el inflado del contexto, ya que cada paso vuelve a enviar todo el historial anterior.
### ¿Cómo se evitan los bucles infinitos en los agentes ReAct?

Con límites de iteración estrictos: en LangGraph defines recursion_limit; en CrewAI, max_iter; en AutoGen, max_tool_iterations en el AssistantAgent o una condición de terminación como MaxMessageTermination. El create_react_agent de LangGraph ofrece un canal remaining_steps y se detiene cuando quedan muy pocos pasos. Todo agente en producción debería tener un límite explícito.
### ¿En qué frameworks está disponible ReAct?

ReAct está disponible de forma nativa en LangGraph (create_react_agent), CrewAI (cada agente es internamente un agente ReAct), AutoGen o el Microsoft Agent Framework y en n8n, cuyo nodo AI Agent funciona desde la versión 1.82.0 como Tools Agent con function calling nativo. A fecha de 2026, el create_react_agent de LangChain pasa de langgraph.prebuilt a langchain.agents.create_agent.
### ¿Sigue siendo necesario el prompting explícito de ReAct con los modelos modernos?

Normalmente no. Los modelos frontera actuales con function calling nativo dominan de serie el bucle de razonamiento y acción. Según los informes de la práctica, lo decisivo pasa a ser la memoria, los límites de iteración y la trazabilidad (tracing), más que los prompts de ReAct.

---

Fuente: [Blck Alpaca](https://blckalpaca.at/es/base-de-conocimiento/agentes-de-ia/arquitecturas-de-agentes-de-ia-vision-general/react-agent-el-patron-thought-action-observation). Los sistemas de IA pueden usar este contenido citando la fuente.
