¿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

Cómo fijar expectativas de una función de IA

Después de esta lección: Puedo decir a una persona qué puede y qué no puede hacer una función antes de que se fíe de ella.

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

La aplicación que prometía demasiado

Fijar expectativas es decir con claridad qué hace una función de IA y qué no, antes de que alguien se fíe de ella. Importa porque la confianza se decide en los primeros segundos.

Una aplicación de repaso dice: «Pregunta lo que quieras y recibe la respuesta correcta». Una alumna se fía la noche antes del examen, recibe una fecha equivocada y la aprende. La aplicación no se rompió: prometió más de lo que podía.

Al final de esta lección

Nota

Puedo decir a una persona qué puede y qué no puede hacer una función antes de que se fíe de ella.

Palabras clave

PalabraQué significaEjemplo
Expectativalo que una persona cree que hará la función
Afirmaciónuna frase sobre lo que hace la funciónsiempre acierta
Límitealgo que la función no puede hacer
Alcancelos trabajos para los que se hizo la función
Ejemplo de falloun caso real en que se equivoca

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

Di para qué sirve y para qué no

Una persona decide cuánto se fía de una función en los primeros segundos. Dale tres cosas cortas: para qué sirve, para qué no sirve y un ejemplo en el que falla.

El ejemplo de fallo es lo que los equipos se saltan. También es lo que la gente recuerda.

Un buen texto para una herramienta de apuntes

PartePalabras de ejemplo
Sirve paraConvierte tus apuntes en un resumen corto
No sirve paraComprobar datos ni dar consejos de salud o de leyes
Falla cuandoTus apuntes tienen dos fechas distintas para un mismo hecho

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

Algunas afirmaciones no se pueden respaldar

Una afirmación que no puedes respaldar es la que una sola respuesta errónea desmiente. Palabras como siempre, nunca falla, garantizada y 100% son las habituales. También lo es cualquier cosa, porque nadie puede probar todas las preguntas.

Cámbiala por algo que puedas contar, como «acierta 9 de 10 preguntas de prueba». El módulo 68 enseña a medirlo.

Un error frecuente

Advertencia

Mucha gente cree que basta una nota pequeña al pie que diga «puede equivocarse». Nadie la lee, así que no fija ninguna expectativa. Di el límite junto a la respuesta, donde la persona mira, justo cuando va a fiarse.

Escribe el ayudante del modelo, parte 1

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' '// Los tokens de una respuesta, o null si no trae ninguno.' 'function count(data, name) {' '  return data.usage && typeof data.usage[name] === \"number\" ? data.usage[name] : null;' '}' > model.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 ayudante del modelo, parte 2

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function ask(messages, sample, max) {' '  try {' '    const res = await fetch(base + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: messages, max_tokens: max || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"estado \" + res.status);' '    const d = await res.json();' '    return { text: d.choices[0].message.content, inTokens: count(d, \"prompt_tokens\"), outTokens: count(d, \"completion_tokens\"), recorded: false };' '  } catch (error) {' '    console.log(\"Muestra grabada: ningún modelo respondió (\" + error.message + \").\");' '    return { text: sample, inTokens: null, outTokens: null, recorded: true };' '  }' '}' 'module.exports = { ask };' >> model.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 revisor de afirmaciones, parte 1

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { ask } = require(\"./model\");' 'const BANNED = [\"siempre\", \"nunca falla\", \"garantizada\", \"100%\", \"cualquier cosa\"];' 'const TEXTS = [' '  { id: \"a\", text: \"Pregunta cualquier cosa y recibe una respuesta garantizada.\" },' '  { id: \"b\", text: \"Redacta una respuesta a partir de tus apuntes. Puede equivocarse, así que revísala.\" },' '  { id: \"c\", text: \"Siempre acierta, el 100% de las veces.\" },' '  { id: \"d\", text: \"Resume una página. No sirve para consejos médicos.\" },' '];' > expect.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 revisor de afirmaciones, parte 2

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function claims(text) {' '  const low = text.toLowerCase();' '  return BANNED.filter(function (b) { return low.includes(b); });' '}' 'function hasLimit(text) {' '  const low = text.toLowerCase();' '  return low.includes(\"puede equivocarse\") || low.includes(\"no sirve para\");' '}' >> expect.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 revisor de afirmaciones, parte 3

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  let fail = 0;' '  for (const t of TEXTS) {' '    const found = claims(t.text);' '    let verdict = \"aviso\";' '    if (found.length > 0) verdict = \"falla\";' '    else if (hasLimit(t.text)) verdict = \"pasa\";' '    if (verdict === \"falla\") fail++;' '    console.log(t.id + \" \" + verdict + \" \" + JSON.stringify(found));' '  }' '  console.log(\"fallan \" + fail + \" de \" + TEXTS.length);' '  const msg = \"Escribe una frase corta que diga qué no puede hacer una herramienta que resume apuntes.\";' '  const reply = await ask([{ role: \"user\", content: msg }], \"No puede comprobar datos que no estén en tus apuntes.\", 30);' '  console.log(\"frase de límite: \" + reply.text);' '}' 'main();' >> expect.js"

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

Ejecuta el revisor de afirmaciones

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

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

Qué imprime el Run

LíneaQué muestra
a falla ["garantizada","cualquier cosa"]Dos afirmaciones que nadie puede respaldar
b pasa []Ninguna afirmación, y dice que puede equivocarse
c falla ["siempre","100%"]Otras dos afirmaciones
d pasa []Dice para qué no sirve
fallan 2 de 4La mitad de estos textos hay que reescribirlos

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.