Saltar al contenido
Explorar conocimiento

patrón · intermedio · 4 min de lectura

Planning vs React

Los agentes pueden planificar una secuencia de pasos antes de actuar o reaccionar paso a paso según lo que observan. Cada enfoque tiene ventajas según la predictibilidad y complejidad de la tarea.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • planning agents that produce a step-by-step plan before execution
  • reactive agents that decide the next action in a loop based on current observation
  • plan-and-execute hybrid: plan-then-react architecture
  • trade-offs: predictability, latency, flexibility, task complexity

No cubre

  • symbolic planning (STRIPS, PDDL)
  • reinforcement learning planning
  • multi-agent coordination patterns

Supone

  • The reader understands AI agents, tool use, and basic orchestration concepts.

Resumen

Planning vs React describe dos estrategias fundamentales para que un agente IA decida sus acciones. En el enfoque planning, el agente genera un plan completo antes de ejecutar cualquier paso. En el enfoque react, el agente decide el siguiente paso basado en el estado actual, sin un plan predefinido.

Existe un híbrido — plan-and-execute — donde el agente crea un plan inicial y luego lo ejecuta paso a paso, ajustando si encuentra obstáculos.

Alcance y supuestos

Este paquete cubre las tres estrategias (planning, react, plan-and-execute), sus diferencias, cuándo usar cada una, y los trade-offs en predictibilidad, latencia, flexibilidad y costo.

No cubre planificación simbólica (STRIPS, PDDL), reinforcement learning, ni coordinación multi-agente. Asume que entiendes conceptos básicos de agentes IA y tool use.

Modelo mental

Piensa en un viaje. Planning es como preparar un itinerario detallado antes de salir: sabes cada paso, pero si hay un desvío inesperado, el plan queda obsoleto. React es como preguntar direcciones en cada esquina: flexible, pero sin visión general puedes tomar una ruta ineficiente.

Plan-and-execute es el punto medio: tienes una ruta general planeada, pero en cada ciudad decides el siguiente paso según las condiciones reales.

Uso práctico

  • ✅ Planning para tareas bien definidas donde los pasos son conocidos: generar un informe con secciones fijas.
  • ✅ React para tareas exploratorias donde no sabes los pasos de antemano: investigar un incidente.
  • ✅ Plan-and-execute para tareas complejas con estructura general pero detalles impredecibles: desarrollar una feature con investigación previa.
  • ❌ Planning cuando el entorno cambia rápido: el plan se vuelve obsoleto antes de ejecutarse.
  • ❌ React cuando necesitas garantías de cobertura completa: podrías omitir pasos importantes.

Ejemplo trabajado: respuesta a incidente con plan-and-execute

Un agente de respuesta a incidentes primero planea y luego ejecuta ajustándose a hallazgos:

type Plan = { step: string; dependsOn?: string[] }[];
type Observation = string;

async function incidentResponse(alert: string) {
  // Paso 1: planificar basado en la alerta
  const plan: Plan = await llm.complete({
    prompt: `Crea un plan de respuesta para esta alerta. Pasos específicos y medibles:\n${alert}`,
    responseFormat: "json",
  });

  const observations: Observation[] = [];
  const completedSteps: string[] = [];

  // Paso 2: ejecutar cada paso, adaptándose
  for (const step of plan) {
    const depsMet = step.dependsOn?.every(d => completedSteps.includes(d)) ?? true;
    if (!depsMet) continue;

    const result = await executeStep(step);
    observations.push(result);

    // Re-planificar si el resultado lo requiere
    if (result.includes("escalar")) {
      const revisedPlan = await llm.complete({
        prompt: `Resultado inesperado: ${result}. Plan original: ${JSON.stringify(plan)}. Genera un plan revisado.`,
      });
      plan.push(...revisedPlan.steps);
    }

    completedSteps.push(step.step);
  }

  return { observations, summary: await generateSummary(observations) };
}

Este patrón equilibra la estructura de un plan con la flexibilidad de reaccionar a resultados inesperados.

Evidencia

Fuentes citadas