¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Leer resultados de evaluación y elegir un arreglo

Después de esta lección: Puedo leer resultados de evaluación y decidir qué cambiar primero.

Lección de 60 min4 comandosLaboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

Elegir un arreglo con las evaluaciones

Leer los resultados de una evaluación es agrupar los fallos por tipo y cambiar lo más barato que arregle más. Importa porque todo cambio ayuda a algunos casos y puede dañar a otros.

La primera versión de la biblioteca aprobó 5 casos de 10. El equipo tiene cuatro ideas. Solo una merece salir primero, y las notas dicen cuál.

Al final de esta lección

Nota

Puedo leer resultados de evaluación y decidir qué cambiar primero.

Palabras clave

PalabraQué significaEjemplo
Tipo de fallola razón por la que falló un casoinvented
Candidatoun cambio que estás pensando hacer
Regresiónun caso que aprobaba antes y ahora falla
Coste por 1000lo que cuesta producir 1000 respuestas
Arreglo más baratoel cambio que menos cuesta para lo que gana

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Agrupa los fallos por tipo

Una nota de 5 sobre 10 dice cuánto está mal, no por qué. Agrupa los cinco fallos por tipo y el trabajo se aclara.

Cada tipo tiene su causa y su arreglo barato. Un arreglo para un tipo entero es mejor que cinco arreglos para cinco casos.

Ejemplo: los cinco fallos

TipoCasosCausa probable
Inventadac3, c7El prompt no prohíbe adivinar
Vagac5Se respondió con palabras generales
Rechazoc8El prompt lo hace demasiado prudente
Largac9Nada limita la longitud

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Prueba primero el arreglo más barato

Ordena los candidatos por coste. Una línea en el prompt no cuesta nada. Un prompt más largo cuesta un poco en cada respuesta. Un modelo mayor cuesta el triple en cada respuesta.

Lanza primero el más barato y puntúalo. Apila el siguiente solo si la nota lo pide.

Ejemplo: cuatro candidatos

SerieCambioAprobadosCoste por 1000
v1La primera versión540
v2Usar solo cifras de la hoja742
v3v1, luego responder en una frase442
v4v2, luego responder si la hoja tiene el dato944
v5v1 con un modelo mayor7130

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Ayuda a un caso, daña a dos

La serie v3 arregla la respuesta larga, c9. También rompe c2 y c10, que aprobaban: la regla de una frase les cortó la cifra. El total bajó de 5 a 4.

Un total puede ocultarlo. Compara las dos series caso por caso y anota qué se arregló y qué se rompió.

Un error frecuente

Advertencia

Mucha gente cree que un cambio que arregla algo es un buen cambio. Mira lo que rompió. Lanza un cambio solo si no rompe nada de lo que aprobaba, o si aceptas cada rotura a propósito.

Escribe el lector de resultados, parte 1

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' '// Cinco series grabadas sobre los casos c1 a c10. v2: usar solo cifras de la hoja.' '// v3: v1 más responder en una frase. v4: v2 más responder cuando la hoja tiene el dato.' '// v5: el primer prompt con un modelo mayor. El coste es por 1000 respuestas.' 'const RUNS = {' '  v1: { cost: 40, kinds: \"ok ok invented ok vague ok invented refusal long ok\" },' '  v2: { cost: 42, kinds: \"ok ok ok ok vague ok ok refusal long ok\" },' '  v3: { cost: 42, kinds: \"ok vague invented ok vague ok invented refusal ok vague\" },' '  v4: { cost: 44, kinds: \"ok ok ok ok ok ok ok ok long ok\" },' '  v5: { cost: 130, kinds: \"ok ok ok ok vague ok ok refusal long ok\" },' '};' 'for (const name in RUNS) RUNS[name].kinds = RUNS[name].kinds.split(\" \");' 'fs.writeFileSync(\"runs.json\", JSON.stringify(RUNS, null, 1));' > analyse.js"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Escribe el lector de resultados, parte 2

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function isOk(kind) { return kind === \"ok\"; }' 'function failures(kinds) {' '  const out = {};' '  kinds.forEach(function (k) { if (isOk(k) === false) out[k] = (out[k] || 0) + 1; });' '  return out;' '}' 'const base = RUNS.v1.kinds;' 'let best = null;' >> analyse.js"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Escribe el lector de resultados, parte 3

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'for (const name in RUNS) {' '  const kinds = RUNS[name].kinds;' '  const fixed = [];' '  const broke = [];' '  kinds.forEach(function (k, i) {' '    if (isOk(base[i]) === false && isOk(k)) fixed.push(\"c\" + (i + 1));' '    if (isOk(base[i]) && isOk(k) === false) broke.push(\"c\" + (i + 1));' '  });' '  const passed = kinds.filter(isOk).length;' '  console.log(name, passed + \" aprobados\", \"coste \" + RUNS[name].cost, \"arreglados [\" + fixed + \"]\", \"rotos [\" + broke + \"]\", JSON.stringify(failures(kinds)));' '  if (name === \"v1\" || broke.length > 0) continue;' '  const cost = RUNS[name].cost;' '  if (best === null || passed > best.passed || (passed === best.passed && cost < best.cost)) best = { name, passed, cost };' '}' 'console.log(\"Elección: \" + best.name + \" (\" + best.passed + \" aprobados, coste \" + best.cost + \")\");' >> analyse.js"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lee las cinco series

Comando
docker exec -w /home/node/project agent node analyse.js

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lo que imprime el Run

LíneaQué dice
v27 aprobados, arregló c3 y c7, no rompió nada
v34 aprobados, arregló c9, rompió c2 y c10
v49 aprobados, arregló cuatro casos, no rompió nada
v57 aprobados, coste 130
Última líneaElección: v4 (9 aprobados, coste 44)

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Sobre este laboratorio y su código: Laboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.