0Pricing
AI Engineering Academy · Lección

El framework ReAct: pensar, actuar y observar

Comprenderá el ciclo de ReAct, en el que el modelo genera un Thought, elige una Action, recibe una Observation y repite el proceso hasta llegar a una Final Answer.

El framework ReAct: pensar, actuar y observar es una lección gratuita de AI Engineering Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Engineering Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Engineering Academy incluye 4 lecciones en total.

¿Qué es el framework ReAct?

ReAct (Reasoning + Acting, razonamiento y acción) es un framework de prompting que intercala el razonamiento interno del modelo con acciones externas. En lugar de producir una respuesta final de inmediato, el modelo genera un Thought, elige una Action, recibe una Observation al ejecutar esa acción y repite el ciclo hasta que puede proporcionar una Final Answer.

El ciclo de pensar, actuar y observar

Cada iteración del ciclo ReAct tiene tres fases:

  • Thought: el modelo razona sobre lo que sabe y sobre lo que necesita averiguar a continuación.
  • Action: el modelo llama a una herramienta, como una búsqueda web, una calculadora o una consulta a una base de datos.
  • Observation: se devuelve el resultado de la llamada a la herramienta y se añade al contexto del modelo.

El ciclo continúa hasta que el modelo emite Final Answer: con su conclusión.

Ejemplo de traza de ReAct

A continuación se muestra una traza concreta de un agente ReAct que responde a «¿Cuál es la población de Tokio?» mediante una herramienta de búsqueda. Observe cómo cada paso se basa en la observación anterior.

# ReAct trace (pseudocode showing the reasoning loop)

# Iteration 1
Thought_1 = 'I need to find the current population of Tokyo. I will search for it.'
Action_1 = 'search("Tokyo population 2024")'
Observation_1 = 'According to the 2023 census, Tokyo has approximately 13.96 million people in the city proper.'

# Iteration 2
Thought_2 = 'I have the population. I can now give a final answer.'
Final_Answer = 'The population of Tokyo is approximately 13.96 million people.'

Por qué ReAct supera al prompting directo

El prompting directo pide al modelo que responda basándose en su memoria, lo que provoca alucinaciones en preguntas fácticas. El prompting de cadena de pensamiento mejora el razonamiento, pero sigue sin poder acceder a información externa. ReAct combina ambos enfoques: trazas de razonamiento explícitas, como la cadena de pensamiento, y la capacidad de obtener información actualizada mediante llamadas a herramientas.

Estructura de un prompt de ReAct

El prompt del sistema de ReAct enseña al modelo el formato exacto que debe utilizar. Incluye las herramientas disponibles con sus descripciones y muestra ejemplos del patrón Thought/Action/Observation/Final Answer. El modelo aprende a seguir este formato con precisión a partir del prompt.

REACT_SYSTEM_PROMPT = '''You are an AI assistant with access to these tools:

- search(query: str): Search the web for up-to-date information.
- calculator(expression: str): Evaluate a mathematical expression.
- lookup(topic: str): Look up a topic in the knowledge base.

Always follow this exact format:
Thought: [your reasoning about what to do next]
Action: tool_name(arguments)
Observation: [result of the action, provided by the system]
... (repeat as needed)
Final Answer: [your final response to the user]

Begin!'''

Analizar Thought, Action y Observation

El código de su aplicación actúa como el runtime del ciclo ReAct. Después de cada respuesta del modelo, analice la salida para extraer el nombre y los argumentos de la acción, ejecute la función de Python correspondiente, dé formato al resultado como una observación, añádalo al historial de mensajes y vuelva a llamar al modelo.

import re

def parse_react_output(text: str):
    '''Extract action name and argument from a ReAct model output.'''
    action_match = re.search(r'Action:\s*(\w+)\((.*)\)', text)
    if action_match:
        tool_name = action_match.group(1)
        tool_input = action_match.group(2).strip('\"\' ')
        return tool_name, tool_input
    if 'Final Answer:' in text:
        answer = text.split('Final Answer:')[-1].strip()
        return 'final', answer
    return None, None

El ciclo de ejecución del agente

El ciclo de ejecución llama al LLM, analiza su salida, delega en la herramienta, añade la observación y repite el proceso. Un límite max_iterations evita los ciclos infinitos cuando el modelo no puede resolver una tarea.

from openai import OpenAI

client = OpenAI()

def run_react_agent(user_query: str, tools: dict, max_iterations: int = 10) -> str:
    messages = [
        {'role': 'system', 'content': REACT_SYSTEM_PROMPT},
        {'role': 'user', 'content': user_query}
    ]

    for i in range(max_iterations):
        resp = client.chat.completions.create(model='gpt-4o', messages=messages)
        output = resp.choices[0].message.content
        messages.append({'role': 'assistant', 'content': output})

        tool_name, tool_input = parse_react_output(output)

        if tool_name == 'final':
            return tool_input

        if tool_name and tool_name in tools:
            observation = tools[tool_name](tool_input)
            messages.append({'role': 'user', 'content': f'Observation: {observation}'})
        else:
            messages.append({'role': 'user', 'content': 'Observation: Tool not found.'})

    return 'Max iterations reached without a final answer.'

Registrar herramientas sencillas

Las herramientas no son más que funciones de Python. Regístrelas en un diccionario que asocie el nombre de la herramienta con la función. Las funciones reciben un argumento de tipo cadena y devuelven un resultado de tipo cadena; esto mantiene la interfaz sencilla y coherente con lo que el modelo espera recibir como observaciones.

import math

def calculator_tool(expression: str) -> str:
    try:
        # Restrict to safe math expressions
        allowed_names = {k: v for k, v in math.__dict__.items() if not k.startswith('_')}
        result = eval(expression, {'__builtins__': {}}, allowed_names)
        return str(result)
    except Exception as e:
        return f'Error: {e}'

def search_tool(query: str) -> str:
    # Stub — replace with real web search API
    return f'Top result for "{query}": [placeholder result]'

# Register tools
tools = {
    'calculator': calculator_tool,
    'search': search_tool
}

Razonamiento de varios saltos con ReAct

ReAct destaca en las preguntas de varios saltos que requieren encadenar varios datos. Por ejemplo: «¿Quién es el director ejecutivo de la empresa que crea GPT-4 y en qué año se fundó esa empresa?». El agente primero busca al director ejecutivo y después usa ese resultado para consultar el año de fundación de la empresa: dos llamadas independientes a herramientas encadenadas mediante el razonamiento.

ReAct frente a la cadena de pensamiento pura

Chain-of-Thought (CoT) mejora el razonamiento al hacer que el modelo piense paso a paso, pero no puede acceder a información externa. ReAct añade acciones a CoT, lo que permite al modelo obtener datos reales, ejecutar cálculos y verificar hechos. La contrapartida es que ReAct es más lento (realiza varias llamadas a la API), pero mucho más preciso en tareas que requieren conocimientos actuales o especializados.

Depurar ReAct con trazas

Cuando un agente ReAct produce una respuesta incorrecta, inspeccione la traza completa de Thought/Action/Observation. Entre los patrones de fallo habituales se incluyen que el modelo invente una observación en lugar de llamar a la herramienta, errores de análisis que impidan ejecutar la herramienta y razonamientos incorrectos en el paso Thought que conduzcan a elegir una acción equivocada.

  • Registre cada mensaje añadido al contexto
  • Compruebe que la salida de la herramienta se haya añadido realmente antes de la siguiente llamada al modelo
  • Verifique que la expresión regular de la acción coincida con el formato de salida del modelo

Comprobación rápida

Compruebe cuánto entiende sobre el framework ReAct.

Resumen de la lección

En esta lección ha aprendido que ReAct intercala Thought, Action y Observation en un ciclo, que el código de su aplicación actúa como el runtime que ejecuta herramientas y añade observaciones y que los límites max_iterations evitan los ciclos infinitos de los agentes. A continuación, aprenderemos a definir herramientas personalizadas para que su agente haga exactamente lo que necesita su aplicación.

Preguntas frecuentes

¿La lección «El framework ReAct: pensar, actuar y observar» es gratis?

Sí — el texto completo de «El framework ReAct: pensar, actuar y observar» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Engineering Academy, actualiza a CoddyKit PRO. El curso de AI Engineering Academy incluye 4 lecciones en total.

¿Qué aprenderé en «El framework ReAct: pensar, actuar y observar»?

Comprenderá el ciclo de ReAct, en el que el modelo genera un Thought, elige una Action, recibe una Observation y repite el proceso hasta llegar a una Final Answer. Practicas AI Engineering Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Engineering Academy?

No se requiere experiencia previa. AI Engineering Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «El framework ReAct: pensar, actuar y observar»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Engineering Academy?

Sí. Cada lección de AI Engineering Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El framework ReAct: pensar, actuar y observar
  2. Definición de herramientas para su agente
  3. Creación de un agente ReAct con LangChain
  4. Gestión de fallos y bucles de los agentes
← Volver a AI Engineering Academy