Un estudiante habla con una sola materia durante meses: miles de mensajes, decenas de archivos, cientos de comprobaciones pequeñas. Meter más de eso en el prompt no escala y no hace que el tutor sea honesto. Así es como le dimos a cada materia una memoria que ordena el pasado por relevancia, un mapa de conceptos del material y creencias sobre el estudiante que llevan su propia evidencia, y esto es lo que nos enseñaron los historiales reales cuando los reprodujimos. No se nombra a ningún proveedor a propósito; el método no depende de ellos. Cada cifra aquí se midió, no se estimó.
Lo que "recordar" tiene que significar
La respuesta ingenua a "el tutor olvida" es una ventana más grande: mantener más de la conversación en el prompt, resumir el resto. Falla de tres formas distintas, y cada una es un problema de producto antes de ser un problema técnico.
- Tiempo. Un estudiante que pregunta en septiembre sobre algo tratado en julio necesita la sesión de julio, no los últimos cuarenta mensajes. Un resumen de "lo que ha pasado hasta ahora" se vuelve más vago cuanto más crece; el detalle relevante es exactamente lo que un resumen elimina.
- Archivos. Una materia contiene decenas de documentos. La recuperación obtiene los ocho pasajes más cercanos a la pregunta, lo cual funciona para datos concretos y no sirve para "cómo se relaciona este capítulo con aquel", la estructura del material nunca está en un solo pasaje.
- Honestidad. Un tutor que informa "entiendes la ósmosis" debe poder decir por qué: qué comprobación, qué día, qué respondió el estudiante. Un número sin evidencia es una suposición con decimales.
Así que fijamos tres promesas antes de escribir una línea de código: cada turno se convierte en un episodio duradero y la recuperación ordena todo el historial por relevancia, no por fecha; los conceptos se extraen una vez por archivo y se fusionan en un solo mapa por materia; y el dominio se alimenta solo con evidencia, una comprobación respondida, un cuestionario realizado, una ronda jugada, y cada creencia conserva su evidencia y su historial. Y una cuarta promesa, más discreta: cuando el tutor no tiene memoria de algo, lo dice, claramente.
La forma del sistema
Tres almacenes, una lectura presupuestada por turno, un ciclo cada noche. Los archivos alimentan el mapa; la conversación alimenta el registro de episodios; las comprobaciones alimentan las creencias. Cada turno de chat lee una porción pequeña y ordenada de los tres y la coloca en el prompt dentro de un presupuesto fijo de tokens. Nada en la ruta de lectura llama a un modelo generativo. El único modelo que sí llama es el embedding, una vez por turno, compartido por el enrutamiento y la recuperación; el único paso generativo fuera del chat es el que lee un archivo nuevo hacia el mapa.
Episodios: un registro de solo anexado y encadenado por hash
Cada evento se convierte en un episodio: una pregunta, una respuesta, una comprobación con su veredicto, el resultado de un cuestionario, la llegada de un archivo, algo que el estudiante le enseñó explícitamente al tutor. Un episodio lleva un resumen de una línea, el texto completo, los conceptos que tocó, una puntuación de saliencia fijada al escribirlo, y su evidencia: para una respuesta, el archivo y la página que citó, con la huella del archivo en ese momento. Los episodios nunca se editan. Cada uno guarda el hash del anterior en la misma cadena, de modo que el registro es recalculable y cualquier manipulación, o cualquier reescritura silenciosa por una migración bien intencionada, se nota como una rotura. Eso es evidencia de manipulación, no algo a prueba de manipulaciones: una reescritura se detecta, pero nunca se impide, y solo mientras se conserve la cadena o una copia de verificación de ella.
La saliencia la fija lo que un episodio es, no un estado de ánimo: una comprobación fallida (0.7) importa más que una aprobada (0.6), y algo que el estudiante le enseñó al tutor (0.85) importa más que nada, porque es la única memoria que una persona ha pedido explícitamente que se conserve. Una pregunta es un modesto 0.35, la propia pregunta de un estudiante es una recuperación correcta y un recordatorio inútil, algo que resulta importar después para la ruta de "esto me recuerda a qué".
Recuperación: la relevancia debe vencer a la recencia
La recuperación es asociativa, no cronológica. Los candidatos se reúnen de varios grupos, cada uno alcanzando la totalidad del historial, y solo entonces se puntúan: los quinientos más recientes, todo episodio que contenga una palabra distintiva de la pregunta, todo episodio que toque los conceptos a los que se enrutó la pregunta, y los vecinos semánticos de un índice vectorial. Ampliar primero y recortar después es la decisión de diseño más importante de todo el módulo, la primera versión recortaba primero ("los 500 más recientes") y no podía recuperar una memoria de marzo perfectamente relevante con ninguna puntuación, porque se descartaba antes de puntuarla.
Los pesos por sí solos no bastan. Cuando la pregunta trata sobre algo y algo coincide, los episodios que no coinciden con nada se descartan en lugar de ordenarse, una nota reciente e irrelevante puntúa 0.15 × 1.0 solo por recencia, mientras que una coincidencia exacta de 200 días puntúa 0.55 × 0.156, y ninguna ponderación que permita que una no coincidencia supere a una coincidencia es correcta con ningún ajuste. La recencia desempata, no ordena. Dos preguntas que un lector debería hacerse sobre esas cifras: de dónde salieron y si las ajustamos nosotros. Se fijaron a mano, heredadas de una memoria anterior nuestra construida para un producto distinto, y no se han afinado con ninguno de los datos de este artículo. Nada de lo anterior se barrió ni se ajustó; el único cambio que hicimos en la puntuación vino de un fallo que podíamos nombrar, no de una búsqueda, y fue en el filtro, no en una ponderación. El filtro tiene dos excepciones: que no haya ninguna consulta (entonces la recencia es lo único que hay), y que nada haya coincidido (entonces el pasado reciente es la oferta honesta más razonable).
Dos cosas que añadieron los historiales reales
Las repeticiones se colapsan. En una materia real, 161 preguntas de un estudiante eran 56 frases distintas, "qué es una célula" preguntado nueve veces en tres meses. Nueve copias son una sola memoria, recordada nueve veces, así que la recuperación colapsa episodios idénticos y reporta a cuántos representa el superviviente. El tiempo es un filtro, no una pista. "¿Qué vimos en julio?" se interpreta como una ventana y la recuperación se ejecuta primero dentro de ella; si la ventana está vacía, el bloque lo dice explícitamente (ver § honestidad). Los nombres de los meses funcionan en los idiomas en los que escriben nuestros estudiantes, igual que "la semana pasada" y "ayer".
El mapa de conceptos
Los pasajes responden "qué dice el archivo aquí"; un mapa responde "de qué está hecha esta materia, y qué se basa en qué". Cada archivo se lee una vez mediante un paso por un modelo que devuelve una lista acotada de conceptos, nombre, resumen de una frase, una definición breve, los conceptos en los que se basa de su propia lista, las páginas donde el archivo lo explica. Los títulos de sección ("Introducción", "Errores comunes") los rechaza un validador; un nombre que en realidad es un encabezado de capítulo es mobiliario del archivo, no una idea de la materia.
Los conceptos se fusionan entre archivos por una clave canónica (un nombre normalizado, sensible a la escritura) y por similitud de embedding por encima de 0.86. La procedencia se acumula: un capítulo que vuelve a explicar la ósmosis se añade a un solo nodo en lugar de crear un segundo, y cada archivo que contribuyó queda listado con sus páginas. Un prerrequisito que el archivo asume pero nunca explica se convierte en un nodo solo cuando dos conceptos lo asumen, entonces la carencia es real y merece mostrarse; un caso aislado se registra en el concepto como "asume" y no se dibuja en ningún sitio. El primer documento de políticas que leímos convirtió 11 conceptos en 34 nodos antes de que existiera esa regla.
Del mapa salen tres números derivados. La centralidad es un PageRank ponderado sobre las aristas (un prerrequisito en el que todo se basa es un núcleo). La preparación de cada concepto sigue cuatro bandas, 0.35 solo nombrado, 0.60 explicado por un archivo, 0.85 confirmado por una comprobación aprobada, 1.0 enseñado por una persona, y la preparación de la materia es la media ponderada por centralidad, de modo que un núcleo que los archivos no explican cuesta más que una hoja. El orden de enseñanza es una jerarquía topológica: prerrequisitos primero, núcleos primero dentro de cada nivel; sustituyó a una llamada a un modelo que antes esbozaba "qué enseñar" a partir de catorce pasajes.
SUBJECT MAP (16 concepts; the files explain 79% of it, this is about the material, NOT the student's mastery):
- Mitochondria: Mitochondria release energy from glucose. [taught: in our class we call the mitochondria the powerhouse of the cell] (builds on: Cytoplasm)
- Cytoplasm: Cytoplasm is the gel-like substance inside the cell membrane. (builds on: Cell Membrane)
- Chloroplasts: Chloroplasts are involved in photosynthesis. (builds on: Cell Wall)
- Endosymbiosis: Endosymbiosis explains the origin of mitochondria and chloroplasts. (builds on: Mitochondria, Chloroplasts)
…
La redacción de ese encabezado fue una lección en sí misma. La primera versión decía "79% entendido", y un modelo que la leía le decía alegremente a un estudiante "dado tu nivel actual de comprensión del 79%…". Un número de preparación que pueda leerse como el dominio del estudiante se leerá así; la línea ahora dice de qué trata.
Enseñarle a la materia
Una persona puede añadir al mapa hablándole. "Recuerda que en nuestra clase llamamos a la mitocondria la central de la célula" adjunta una nota enseñada al concepto que nombra (enrutando por nombre; solo coincidencia exacta), fija la preparación de ese concepto en 1.0, escribe un episodio enseñado, y pone la nota en el resumen. Cuando la frase no nombra ningún concepto existente, se acuña un nodo nuevo en la capa de enseñado con un nombre corto, nunca la frase entera. Las preguntas nunca enseñan; solo lo hace un "recuerda que", "trata X como", explícito, o su equivalente en el idioma del estudiante.
Creencias que conservan su historial
Una creencia es lo que el tutor piensa actualmente sobre este estudiante en este concepto, "tiene dificultad con la ósmosis", "entiende el citoplasma", con una confianza y los episodios que la respaldan. La regla que importa: las filas nunca se actualizan hacia una afirmación distinta. Cuando el tutor cambia de opinión, la fila antigua queda exactamente como estaba, se inserta una fila nueva, y la antigua apunta a la nueva. La recuperación solo lee filas que nada sustituye; un informe puede recorrer la cadena cuando alguien pregunta qué cambió y por qué. La retención y la vigencia son propiedades distintas, y una memoria que conserva ambas es una sobre la que se puede construir un informe.
Las creencias son baratas donde importa: unos veinte tokens cada una, y cada una representa a decenas de episodios. Esa proporción, no una ventana más grande, es lo que realmente significa "recordar más de lo que cabe en el contexto". Los episodios no se descartan, son aquello contra lo que se comprueba una creencia, pero llegan en segundo lugar y quien llama gasta en ellos el presupuesto que le queda.
¿Sobre qué tema trata una creencia?
Esta fue la parte que los datos reales rompieron primero. En el modo de enseñanza, el "tema" de una comprobación había sido las propias palabras del estudiante, así que las comprobaciones reproducidas generaban creencias como entiende pregúntame las preguntas (ask me the questions) y tiene dificultad con bueno ahora explícame todos los pasos. Ahora el tema de una comprobación se enruta a un concepto por nombre, y cuando la cadena del tema es una frase, por el propio texto de evaluación del tutor (que suele nombrar el concepto), solo con coincidencia exacta de nombre. Un tema que no coincide con nada y suena a enunciado, palabras interrogativas, verbos de preguntar, pronombres, muletillas, en los idiomas que usan nuestros estudiantes, se conserva como evidencia pero nunca se convierte en creencia. Un cambio de regla así necesita una forma de re-derivar: retirar las creencias actuales (nunca borrarlas), reproducir las comprobaciones registradas bajo las reglas de hoy, sin tocar ningún episodio.
Un turno, dentro de un presupuesto
Cada turno de chat le pide al cerebro un bloque, construido fuera de la ruta de la petición con un límite de tiempo estricto; en 155 turnos el bloque tardó 295 ms en la mediana, 403 ms en el percentil 90 y 445 ms en el percentil 95, con una construcción de más de un segundo y ninguna por encima del límite de 2.5 s, a partir del cual el paquete se descarta en lugar de esperarse, para que una memoria lenta nunca se ponga por delante del primer token. Un solo embedding de la pregunta sirve tanto para el enrutamiento como para la recuperación. El bloque entra en la ranura de memoria que ya existía en el prompt, antes de los pasajes del material, y nada más del prompt cambia.
===== YOUR MEMORY OF THIS STUDENT AND SUBJECT ===== THE STUDENT IS ASKING ABOUT THEIR OWN RECORD. Answer from the beliefs and the earlier work listed here … WHAT YOU CURRENTLY BELIEVE ABOUT THIS STUDENT (from their checks; confidence 0–1): - understands cytoplasm (0.72) - understands eukaryotic cells (0.72) EARLIER WORK WITH THIS STUDENT (oldest first): - 12 Jul · you were asked: Can we go over Eukaryotic Cells today? I keep mixing it up. - 12 Jul · you answered: Of course. Eukaryotic Cells: Eukaryotic cells contain a nucleus and organelles. We worked through two examples and you got the second one right. - 18 Sep · the student taught you: Taught: in our class we call the mitochondria the powerhouse of the cell - 18 Sep · check: Check on cytoplasm: right (and 3 more times like it) SUBJECT MAP (16 concepts; the files explain 79% of it, …) … HOW TO USE THIS: it is your own memory of past work with this student, not their material. When you rely on it, say when it happened ("in July we…"). Never claim a memory that is not listed here. … ===== END OF MEMORY =====
El orden dentro del bloque resultó importar tanto como el contenido. Para una pregunta corriente, el mapa va primero. Para una pregunta de historial: "qué me equivoqué hasta ahora", "qué hemos estudiado", "ماذا أخطأت", las creencias y el trabajo anterior van primero y el mapa al final, con una primera línea explícita que dice que el estudiante está preguntando por su propio historial. Aprendimos esto de un fallo: el prompt también llevaba una sección heredada "assessment results" que empieza con "NO QUIZ ATTEMPTS recorded", y el modelo le respondió a un estudiante que había respondido veintiocho comprobaciones en la conversación con "aún no has intentado ningún cuestionario". Un modelo lee la primera afirmación autorizada sobre un historial y se detiene ahí. El bloque de memoria ahora precede a esa sección, una nota puente une a las dos, y una sección de evaluación que solo dice "nada registrado" se descarta cuando existe el bloque de memoria.
Estudiante: ¿Qué me equivoqué en las comprobaciones hasta ahora, y qué debería repasar?
Tutor: Lo que te equivocaste en las comprobaciones: 1. Comprobación sobre qué es una célula: parcialmente correcto, lo describiste como "¿es como una cosita pequeña?", lo cual es incompleto. Respuestas incorrectas: respondiste "sí" y "agu" en ocasiones distintas, que se marcaron como erróneas. 2. Comprobación sobre enzimas: afirmaste correctamente que las enzimas son "proteínas que descomponen la comida para facilitar la digestión". Repasos sugeridos: dada tu dificultad con qué es una célula: estructura celular (procariota frente a eucariota)… componentes de una célula… por ejemplo, las mitocondrias liberan energía de la glucosa, algo que aprendiste en clase.
Decir "no tengo ningún registro"
El fallo más instructivo de todo el proyecto fue un escenario que escribimos para que pasara: sembrar una conversación de julio, preguntar "qué vimos en julio sobre X", comprobar la respuesta. La respuesta empezaba "En julio vimos X…" y era fluida, estaba fundamentada en el archivo, y era completamente fabricada, la memoria de julio no había llegado al prompt, y el modelo narró julio a partir del planteamiento de la pregunta. Dos causas. El modo de pregunta de historial solo había conservado comprobaciones y cuestionarios, y había descartado la conversación que era el historial; y las propias narraciones anteriores del tutor ("en julio vimos…", guardadas como episodios de respuesta) se estaban recuperando como si fueran memorias de julio, el cerebro recordando que recordaba.
antes "En junio vimos el tema de la Membrana Celular, que se describe así: la membrana celular es una doble capa de fosfolípidos…"
después "No tengo ningún registro de qué vimos específicamente en junio sobre la membrana celular. Sin embargo, puedo darte información sobre la membrana celular a partir del material que tenemos…"
Ambos casos son ahora escenarios en un ejecutor repetible: el de julio pasa solo si las memorias de julio están en el prompt (comprobado sobre los ids de memoria guardados del mensaje, no sobre la redacción de la respuesta), y el del mes vacío pasa solo si la respuesta dice que no tiene registro y no describe ninguna sesión.
La memoria como cita
Nuestro chat ya tenía un panel de procedencia: cada afirmación de una respuesta se rastrea hasta una línea en los archivos del estudiante, y una respuesta con muy pocas afirmaciones rastreadas se marca como mayormente sin fundamento. Ese rastreador solo conocía archivos. Un "en julio vimos X, y acertaste el segundo ejemplo" correcto se leería entonces como no está en tus apuntes: la función llamando falsa a una afirmación verdadera. Así que las memorias que se le recordaron al tutor se guardan en la respuesta, y el rastreador trata cada episodio recuperado como una fuente más, etiquetada con cuándo ocurrió.
Ese mismo resultado de fundamentación le da a cada episodio de respuesta un estado: respondida, parcial, o no puede, guardado después del hecho. Así es como el informe averigua qué preguntas no pudieron responder los archivos, sin una segunda llamada a un modelo y sin una línea oculta de "marco" en el flujo, algo que probamos y rechazamos: en el modo de respuesta simple nada filtra el flujo, así que una línea oculta habría llegado al estudiante.
Una memoria que se verifica a sí misma
Una memoria que no puede verificarse a sí misma se vuelve más confiada y menos acertada con el tiempo. Como la evidencia de una respuesta registra la huella del archivo en aquel momento, la verificación es una búsqueda, no una llamada a un modelo: se mantiene: el archivo citado sigue ahí, sin cambios; cambió: fue sustituido o eliminado, y la nota dice cuál; inverificable: la memoria no cita ningún archivo (una conversación, una comprobación). Esa tercera respuesta es un resultado de primera clase, no un error; informar de una memoria conversacional como "se mantiene" sería el verdadero defecto. Un episodio recuperado llega al prompt ya etiquetado: "[nota: el archivo que citaba esto ha sido sustituido o eliminado desde entonces]".
El ciclo nocturno
Una vez cada noche, para cada pareja estudiante-materia activa en el último día, se ejecuta un ciclo determinista sin llamadas a ningún modelo: comprimir el día en un episodio de consolidación (recuentos por tipo, el balance de comprobaciones, los temas, los cinco titulares más destacados; un día tranquilo no escribe nada, y la nota nunca vuelve a resumir su propio tipo); degradar cualquier creencia sin tocar durante 45 días en un 15 % y marcarla para que la próxima comprobación la confirme; calibrar el dominio que el tutor predijo antes de cada comprobación frente al veredicto; verificar un lote acotado de citas, primero las nunca comprobadas; reconstruir el pequeño conjunto de trabajo; recomponer el automodelo.
La calibración es la comprobación de honestidad sobre la confianza del tutor: antes de cada comprobación sabemos qué dominio predijo; después, sabemos el veredicto. Agrupado en intervalos, eso da una curva de fiabilidad y un error de calibración esperado, y el automodelo informa "calibrado" solo a partir de cinco comprobaciones con una predicción. Hasta entonces, sus límites lo dicen, trata la confianza como una clasificación, no como una probabilidad.
Lo que nos enseñaron los historiales reales
Los escenarios demuestran mecanismos; no demuestran que la cosa funcione con la forma en que la gente realmente habla. Así que construimos una reproducción: tomar los historiales reales de estudiante-materia más ricos, solo lectura, reconstruir cada uno en una copia aislada de la plataforma, construirle el cerebro, y hacer tres preguntas con forma real a través del propio endpoint del chat como ese usuario. Seis parejas, entre 65 y 142 mensajes cada una, entre 13 y 32 veredictos en modo de enseñanza cada una, una en español. No son una muestra aleatoria y no deben leerse como tal. Elegimos historiales de al menos cuarenta mensajes, como máximo dos por estudiante, excluidas las cuentas de prueba e internas, dando preferencia a los que tenían más respuestas calificadas, porque un historial sin contenido no pone a prueba nada. Eso sesga cada cifra de este artículo hacia los usuarios intensivos. La materia de un usuario ocasional le daría a la memoria menos que recordar y menos en qué equivocarse.
También produjo las tres correcciones descritas antes: creencias sobre frases del estudiante, el historial respondido desde el mapa en lugar del historial, la línea heredada de "sin intentos de cuestionario" encabezando las respuestas, y una confirmación que nos alegró ver: una consolidación marcó once memorias cuyo archivo citado ya no existía. El verificador haciendo su trabajo.
| Materia (real, reproducida) | Mensajes | Comprobaciones | Conceptos | Creencias tras la re-derivación | Preparación del mapa |
|---|---|---|---|---|---|
| Módulo de álgebra | 142 | 32 | 16 | 0, cada tema de comprobación era una frase y ninguna evaluación nombró un concepto; las comprobaciones permanecen en el historial y el informe lo dice | 0.60 |
| Unidad de literatura | 97 | 14 | 10 | 3, todas ligadas a un concepto | 0.68 |
| Informática y resolución de problemas | 91 | 29 | 7 | 4, todas ligadas a un concepto | 0.60 → 0.81 |
| Biología (español) | 88 | 31 | 15 | 6 (5 ligadas a un concepto), la mayoría "tiene dificultad con…" tras una racha de respuestas erróneas | 0.62 |
| Triple ciencias | 75 | 13 | 16 | 2, ambas ligadas a un concepto | 0.64 |
| Cuaderno de religión | 65 | 18 | 12 | 6 (5 ligadas a un concepto) | 0.72 |
La fila de álgebra es la honesta. Treinta y dos comprobaciones y ninguna creencia, porque ninguna pudo vincularse a un concepto: el estudiante respondía aritmética, las respuestas del tutor nunca nombraron los conceptos del capítulo, y un enunciado no es un tema. El informe de ese estudiante dice "hay 32 comprobaciones registradas, pero ninguna pudo vincularse todavía a un concepto del mapa" en lugar de "aún sin comprobaciones". Nada inventado, ni siquiera el dominio.
Un benchmark, no una demo
Todo lo anterior es una medición o una muestra: cuánto tardan las cosas, qué produjo la repetición, respuestas que nos gustaron. Nada de eso demuestra que la memoria merezca su lugar, porque no se comparó nada contra el mismo tutor sin ella. Así que hicimos la comparación. Un conjunto de preguntas preregistrado, cuatro diseños del mismo tutor que difieren solo en lo que llega al prompt, y evaluadores que son comparaciones de cadenas de texto e id en lugar de opiniones, de modo que la misma respuesta siempre puntúa igual.
Aquí, cada materia es la materia de un estudiante, y sus preguntas se generan a partir de los propios datos registrados de esa materia, que es lo que las hace evaluables: una pregunta sobre lo que el estudiante respondió mal se contrasta con las comprobaciones que realmente constan, una pregunta sobre un prerrequisito con una arista real del mapa, una pregunta sobre un mes con los meses en que esa materia estuvo realmente activa. Cuando una materia admite más de una, recibe más de una, así que hay tres conceptos y tres meses vacíos en lugar de uno de cada. Seis categorías, 420 preguntas evaluadas por diseño, sobre 45 historiales reales de estudiantes reproducidos en una copia aislada de la plataforma y planteadas a través del endpoint de chat habitual como ese estudiante.
Los cuatro diseños
Los cuatro ejecutan la misma recuperación sobre los mismos archivos. Solo recuperación es el tutor sin memoria alguna. Ventana es la respuesta a la que la mayoría recurre primero: los últimos veinte turnos de conversación, añadidos sin clasificar. Episodios es la recuperación clasificada del registro de episodios por sí solo, sin mapa de conceptos, sin creencias y sin ningún tratamiento especial para las preguntas sobre el historial. Memoria es todo lo que describe este artículo.
Lo que dice la tabla
En conjunto, el tutor pasa de 168 de 420 a 383, es decir, 40 por ciento frente a 91. El promedio es el número menos interesante aquí; lo relevante es la forma de la diferencia.
Una ventana mayor no es la respuesta. Añadir los últimos veinte turnos al prompt eleva el 40 por ciento al 65, y eso es todo lo que aporta. Responde 5 de 32 preguntas sobre lo que el estudiante respondió mal, porque veinte turnos de chat no es donde vive esa información, y sigue equivocándose sobre un mes vacío más a menudo que no. Esta es la respuesta de «simplemente incluye más conversación», medida en vez de solo afirmada.
La recuperación hace casi todo. El registro de episodios por sí solo alcanza el 83 por ciento. Si vas a construir una sola cosa, que sea esa: un registro de solo adición, puntuado por relevancia, es la mayor parte del valor de este artículo.
El mapa y las creencias valen las otras 33 preguntas, y las ganan en dos lugares concretos, no en todos. Al preguntar qué repasar antes de un tema, los diseños sin mapa de conceptos responden correctamente cerca del 55 por ciento de las veces, y la memoria completa el 96, porque los prerrequisitos son aristas y un registro de episodios no tiene ninguna. Al preguntar qué respondió mal el estudiante, las creencias y la rama de historial suben de 24 de 32 a 30. Al pedir que explique un concepto, el mapa no aporta nada: 100 en ambos casos.
solo recuperación, un mes sin actividad 1 correcta de 132. Al preguntar qué se cubrió en un mes en el que el estudiante nunca estuvo activo, describe el contenido y le asigna ese mes, casi todas las veces.
memoria, la misma pregunta 128 de 132. Dice que no tiene historial de ese período y ofrece lo que sí tiene.
Lo que costó conseguirlo
Lo que este benchmark no muestra
El último de esos números es el que conviene tener presente al leer el resto. Le hicimos a la memoria completa las mismas 420 preguntas por segunda vez, y 44 de ellas obtuvieron una puntuación distinta. Así que el ruido de una corrida a otra es de aproximadamente una décima parte, la brecha de 33 preguntas entre los dos diseños principales queda claramente fuera de ese margen, y la brecha de 2 preguntas entre ellos en el mes vacío no: en esa categoría están empatados y no afirmaremos lo contrario.
Una categoría resultó ser inútil y la dejamos en el gráfico en lugar de eliminarla discretamente. Un mes en que el estudiante estuvo activo obtiene 44 de 44 en todos los diseños, incluido el que no tiene memoria alguna. No puede distinguir la recuperación fundamentada de una descripción plausible que da la casualidad de llevar el mes correcto, que es exactamente el fallo que detecta su categoría hermana. Una prueba que todos superan no mide nada.
Los evaluadores son comparaciones de cadenas de texto escritas por las mismas personas que construyeron la función. Premian una respuesta que reutiliza las palabras registradas y no pueden reconocer una respuesta correcta formulada de otra manera, y una vez nos costó caro: las preguntas de prerrequisitos se generaron con la dirección de la arista invertida, así que durante mucho tiempo esta categoría parecía la más débil de la memoria, cuando en realidad el tutor daba la respuesta que indicaba el propio mapa y se la marcaban como incorrecta. Es la categoría más fuerte del mapa. Lo descubrimos leyendo los fallos en vez de los totales, que es la única forma en que estos errores salen a la luz.
Y la población no es aleatoria. Se trata de 45 historiales reales elegidos por tener algo dentro: al menos quince mensajes, archivos adjuntos y, para las categorías que necesitan respuestas calificadas, al menos cinco de esas. Un estudiante que apenas ha empezado ejercitaría mucho menos esto y vería mucha menos diferencia.
Lo que esto no es
Cuatro cosas con las que se le confunde, y qué es en realidad.
- No es una ventana de contexto más grande. El costo por turno está acotado y no crece con el historial. El benchmark le pone un número a la diferencia: la ventana ingenua respondió el 65 por ciento de las 420 preguntas donde la memoria respondió el 91.
- No es un resumen. Nada se reescribe. Los episodios son inmutables, una corrección es una fila nueva que apunta a la anterior, y la creencia de marzo sigue siendo legible después de que agosto la haya reemplazado.
- No es una búsqueda vectorial sobre el registro del chat. El índice vectorial es uno de cuatro conjuntos, y la clasificación se filtra por relevancia antes de que la recencia, la prominencia o la frecuencia tengan voz.
- No es un perfil del estudiante escrito por un modelo. Ningún recorrido por el historial produce una descripción del alumno. Cada creencia es una banda calculada a partir de respuestas calificadas, con los ids de evidencia adjuntos y una cadena de sustitución detrás.
Lo que es: una lectura acotada sobre un registro inmutable, un grafo del material extraído una vez por archivo, y creencias que llevan consigo su propia evidencia.
Principios que mantuvimos
- Nada inventado. El dominio proviene solo de comprobaciones, cuestionarios y rondas; un concepto existe solo porque un archivo lo explicó o una persona lo enseñó; un periodo vacío lo dice.
- Evidencia o no ocurrió. Cada creencia, cada fila de un informe, cada carencia lleva los ids de aquello en lo que se apoya, y el panel de citas muestra memorias junto a páginas.
- La retención no es vigencia. Conserva la creencia de marzo para siempre; nunca te fundamentes en ella una vez que agosto la sustituyó. Una corrección es una fila nueva con un enlace, nunca una edición.
- La relevancia vence a la recencia. Amplía antes de recortar; filtra, no te limites a ponderar.
- La propia narración del tutor no es memoria. Una respuesta que relata el historial se marca al escribirla y nunca se recupera como una memoria de la materia.
- El orden es contenido. Un modelo lee la primera afirmación autorizada sobre un historial y se detiene; pon el historial antes de cualquier cosa que pudiera confundirse con él.
- Un enunciado es evidencia, nunca un tema. "Pregúntame las preguntas" puede estar bien o mal; nadie lo entiende.
- Una memoria debe poder verificarse a sí misma. Registra la huella en su momento; verifica mediante una búsqueda; trata "inverificable" como una respuesta.
Todo el conjunto son unos pocos miles de líneas, la mayoría corrientes: un libro de registro, un grafo, una función de puntuación, un renderizador con presupuesto, y una tarea nocturna. La parte difícil no fue el código, sino decidir, cada vez que el modelo decía algo fluido y equivocado, que la corrección pertenecía a la memoria, no al tono de voz del prompt.