Sesión 5 · Planeación
Prueba el enfoque one-shot
Envía la misión completa en una llamada y revisa la respuesta frente a la hoja de evaluación.
Qué aprenderás
- Construir withoutPlanning con la misión y las trazas.
- Conectar planningMain a la entrada de la práctica.
- Comparar casos con y sin Superman sin atribuir una ejecución a todos los modelos.
Referencias de código
Índice de esta lección
Paso 1
Genera una respuesta directa
withoutPlanning recibe toda la misión y llama a generateText una vez. El modelo puede proponer una solución o detectar que no es viable.
onStepEnd conecta con tracer.onStepFinish, el nombre conservado por el helper. Las trazas muestran eventos, texto y consumo reportado; no exponen por sí mismas todo el pensamiento interno.
import { generateText } from "ai";import { createTracer, model } from "../../helpers/index.js"; export async function withoutPlanning(mission: string) { const tracer = createTracer("sin-planificación"); const { text } = await generateText({ model, prompt: mission, onStepEnd: tracer.onStepFinish, }); console.log("Sin planificación:", text); return tracer.summary();}Qué deberías observar
Obtienes una respuesta y el resumen de esa ejecución.
Paso 2
Selecciona la entrada del patrón
En esta clase conecta solo la variante directa. Cambia la llamada de prueba de main.ts por planningMain; conserva el patrón anterior para poder retomarlo.
buildMission(false) omite Superman; true lo incluye en el texto que recibe el modelo. Cambiar solo un comentario sin regenerar el escenario no es una comparación fiable.
import { buildMission } from "./scenario.js"; export async function planningMain() { const result = await withoutPlanning(buildMission(false)); console.table({ "Sin planificación": result });} // En src/main.ts:// import { planningMain } from "./patterns/02-planning/planning.js";// await planningMain();Qué deberías observar
La prueba usa explícitamente la variante del escenario seleccionada.
Paso 3
Ejecuta y conserva el resultado
npm run build comprueba tipos. npm run dev hace la petición al proveedor que configuraste y puede consumir cuota.
Anota el modelo, la variante, la respuesta y los tokens reportados. Los resultados narrados en el video son ejemplos, no mediciones realizadas por esta web.
No cambies de modelo para buscar únicamente una ejecución que falle. Evalúa los aciertos y los errores con el mismo criterio. Una llamada puede resolver correctamente el problema.
npm run buildnpm run devQué deberías observar
Puedes repetir la prueba y registrar su evidencia.
Paso 4
Separa veredicto y cumplimiento de reglas
Sin Superman la conclusión esperada es inviable por luz; con Superman existe al menos una asignación válida. Un modelo puede acertar el veredicto y fallar el orden o la compatibilidad.
Revisa el cronograma final, no una lista que solo clasifique habilidades. Verifica los siete villanos, Mirror Master primero, prioridades, héroes presentes y carga por héroe.
Las respuestas de una misma configuración pueden variar. Una nueva respuesta no demuestra que el modelo haya aprendido de una llamada anterior; aquí cada llamada recibe el contexto que enviamos.
Veredicto → ¿corresponde a la variante?Cobertura → los siete villanos, una captura cada unoOrden → Mirror Master y luego 1, 2, 4, 5, 6, 7Asignación → capacidad compatible y horas suficientesQué deberías observar
Detectas una respuesta plausible que todavía incumple una regla.
Ahora te toca
Prueba la idea por tu cuenta
Evalúa una respuesta one-shot con y sin Superman. Si el veredicto es correcto pero Solomon aparece después de The Shade, explica qué regla se incumple.
Necesito una pista
Compara el orden operativo final con el orden de la hoja.
Comparar con una solución
El veredicto y las asignaciones se evalúan por separado. Solomon tiene prioridad 6 y The Shade 7; colocar Solomon después incumple la secuencia requerida, aunque el texto diga viable.
Antes de seguir
Comprueba lo que aprendiste
No es una nota. Es una pausa para comprobar que la idea quedó clara.
¿Terminaste la práctica?
Haz el ejercicio y comprueba tus respuestas antes de marcar la lección como completada.