Sesión 5 · Planeación

Evalúa los resultados de Planning

Compara modelos y variantes usando el orden de captura, las horas y una asignación de referencia válida.

30 min aprox.5 pasosPráctica + comprobación
Qué aprenderás
  • Evaluar viabilidad, orden y asignaciones de forma separada.
  • Contrastar resultados con el Excel y datos del escenario.
  • Medir llamadas y tokens sin convertir el ejemplo grabado en un benchmark.

Referencias de código

Índice de esta lección

Paso 1

Ejecuta una comparación controlada

El laboratorio final permite activar Superman y comparar enfoques. Por defecto usa el escenario sin Superman y solo Planning para evitar una petición adicional que no hayas elegido.

Ejecuta las variantes secuencialmente para mantener sus trazas separadas y respetar dependencias. Usa el mismo escenario y criterios al comparar modelos.

Incluye modelo y adaptador en el registro. No necesitas sustituirlos si tu configuración admite generación estructurada y ya funciona.

src/patterns/02-planning/planning.ts
Paso 1 · typescript
export async function planningMain({ includeSuperman = false, compare = false } = {}) {  const mission = buildMission(includeSuperman);  const direct = compare ? await withoutPlanning(mission) : undefined;  const planned = await withPlanning(mission);  console.table({    ...(direct ? { "Sin planificación": direct } : {}),    "Con planificación": planned,  });}

Qué deberías observar

Las opciones seleccionan explícitamente el escenario y el alcance de la comparación.

Paso 2

Comprueba una asignación viable

Con Superman existe la siguiente asignación: Iron Man captura Mirror Master y Killgrave, Antorcha Humana a Mister Freeze, Jean Grey a Juggernaut, Green Lantern a Doctor Light y Solomon Grundy y Superman a The Shade.

El orden cumple la precedencia y las prioridades. Green Lantern usa 4 horas, Superman 2, Iron Man 4, Antorcha Humana 2 y Jean Grey 2. Ninguno excede su jornada.

Es una asignación de referencia verificada con los datos; no afirmamos que sea la única. Superman también podría cubrir otra captura de luz si se conservan las restricciones.

Asignación válida de referencia
Paso 2 · text
Orden | Villano | Héroe | Horas1 | Mirror Master | Iron Man | 22 | Mister Freeze | Antorcha Humana | 23 | Killgrave | Iron Man | 24 | Doctor Light | Green Lantern | 25 | Juggernaut | Jean Grey | 26 | Solomon Grundy | Green Lantern | 27 | The Shade | Superman | 2

Qué deberías observar

Puedes evaluar un resultado contra una solución concreta y sus horas.

Paso 3

Registra horas y revisa lo que las fórmulas no cubren

En una copia del archivo retira D5=2 antes de registrar la propuesta. Para esta referencia marca D7, E5, F7, G6, H8, I6 y J9 con 2.

Las horas trabajadas resultan 2, 4, 4, 2 y 2; el tiempo libre es 4, 0, 1, 1 y 0. Además revisa una captura por villano, especialidades y el orden del operativo final.

El original queda intacto. Los nombres abreviados de la hoja (Mr Freeze, Dr Light, Solomon) corresponden a Mister Freeze, Doctor Light y Solomon Grundy del código.

Sheet1!D5:L9
Paso 3 · text
Referencia en Sheet1:D7=2, E5=2, F7=2, G6=2, H8=2, I6=2, J9=2K5:K9 → 2, 4, 4, 2, 2L5:L9 → 4, 0, 1, 1, 0

Qué deberías observar

Puedes trasladar las asignaciones del modelo a la hoja sin aceptar su veredicto a ciegas.

Paso 4

Analiza aciertos y errores del modelo

La transcripción describe una respuesta que acertó Mirror Master pero movió The Shade antes de otras prioridades. Planificar puede mejorar la estructura y aun así fallar una regla.

Las cantidades de pasos y tokens del video son de esas ejecuciones. Registra tus valores reales y conserva también los fallos; no generalices una comparación aislada a todos los modelos.

Elige el flujo más sencillo que cumpla el criterio de evaluación. Que el modelo sea más fuerte o haga más llamadas no reemplaza la verificación de cobertura, capacidades, jornadas y prioridad.

Registro comparativo
Paso 4 · text
Registro por ejecución:Modelo y variante → ______Enfoque → one-shot / PlanningViabilidad y errores de reglas → ______Llamadas, tokens reportados y tiempo → ______

Qué deberías observar

Puedes justificar una elección por calidad y recursos medidos.

Paso 5

Ejecuta el laboratorio en tu copia de práctica

Desde session3/agentic-patterns copia el laboratorio al directorio 02-planning y cambia la entrada de main.ts. Los tests de contexto no realizan inferencia ni necesitan una API key.

npm run dev sí utiliza tu proveedor. Para probar con Superman llama planningMain({ includeSuperman: true }); añade compare: true si deseas ambas variantes.

La respuesta final todavía es una propuesta de texto. Las rúbricas automáticas y otros patrones de revisión se estudiarán después. Aquí completamos construir, analizar por pasos e integrar.

Terminal de la práctica
Paso 5 · bash
mkdir -p src/patterns/02-planningcp ../../session5/laboratorio/*.ts src/patterns/02-planning/npm run buildcp ../../session5/laboratorio/planning.test.mjs ./planning.test.mjsnode --test planning.test.mjs # Tras cambiar src/main.ts, para llamar al proveedor:npm run dev

Qué deberías observar

Tienes un laboratorio compilable y pruebas locales antes de hacer una inferencia.

Ahora te toca

Prueba la idea por tu cuenta

Comprueba las horas y el orden de la asignación de referencia. Explica por qué otra solución puede ser válida si Superman captura Doctor Light en lugar de The Shade y cómo detectarías un plan que declara viable pero omite Solomon.

Necesito una pista

Comprueba cobertura, capacidad y presupuesto, conservando el orden por prioridad.

Comparar con una solución

La referencia usa 14 horas: 2, 4, 4, 2 y 2 por héroe. Superman puede usar sus 2 horas en otro villano de luz si Green Lantern cubre los otros dos. Omitir Solomon falla cobertura aunque el veredicto diga viable.

Antes de seguir

Comprueba lo que aprendiste

No es una nota. Es una pausa para comprobar que la idea quedó clara.

1. ¿La referencia es necesariamente la única solución válida?
2. ¿Cuántas horas tiene Superman en total?
3. ¿Qué pesa al elegir entre one-shot y Planning?

¿Terminaste la práctica?

Haz el ejercicio y comprueba tus respuestas antes de marcar la lección como completada.

Apuntes y código de esta lección