Skip to main content
IA en la educación19 min de lectura

Un tutor que recuerda: una memoria de la materia que sobrevive a la ventana de contexto

Un estudiante habla con una sola materia durante meses. Meter más de eso en el prompt no escala y no hace que el tutor sea honesto. Cómo construimos una memoria que ordena el pasado por relevancia, un mapa de conceptos del material y creencias sobre el estudiante que llevan su propia evidencia: doce diagramas, ejemplos reales y lo que nos enseñó reproducir historiales reales.

iTutor Team18 de septiembre de 2026

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.

Arch. una vez por archivo Conversación pregunta, resp. Compr. veredicto de respuesta Conceptos nodos, aristas, prep. Episodios solo anexado · con hash Creencias sustituido, nunca editado extraer/fusionar dos episodios pasa a creencia Un turno, ~2,000 tokens 1 enruta la pregunta → conceptos 2 resumen: el mapa, foco primero 3 creencias, esos conceptos 4 episodios parecidos Ranura de memoria antes de los pasajes Nocturno · comprime el día · degrada creencias obsoletas · calibra · verifica citas · actualiza el automodelo vuelve a los almacenes
Figura 1. Tres almacenes alimentados por tres tipos de evento, una lectura presupuestada por turno, un ciclo cada noche. La ruta de lectura es aritmética, búsquedas y un embedding de la pregunta; la única llamada a un modelo fuera del chat es la que lee un archivo nuevo.

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.

pregunta · 12 Jul "¿Vemos las células?" prev ∅ · hash 7e1c… resp. · 12 Jul cita Cap.2 p.4 · huella a91f prev 7e1c… · hash 03bd… compr. · 12 Jul correcto · previsto 0.45 prev 03bd… · hash c4a0… enseñó · 18 Sep "la central de la célula" prev c4a0… · hash 9f27… hash = sha256(hash anterior · cadena · fecha · tipo · resumen), la cadena sigue el orden de inserción aunque un episodio reproducido conserve su fecha de julio
Figura 2. La cadena de episodios de un estudiante en una materia. Una reproducción de historial antiguo conserva la fecha original de cada episodio en el registro, mientras que la cadena en sí sigue el orden en que se escribieron las filas; ambas cosas son recalculables.

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.

−0.1800.250.500.75 relevancia: 0.55, coseno cuando hay embedding, solape léxico en caso contrario relevancia0.55 solape de conceptos: +0.20 cuando el episodio toca un concepto al que se enrutó la pregunta solape concept.+0.20 recencia: 0.15 con decaimiento exponencial, constante de tiempo de 30 días recencia (τ = 30 d)0.15 saliencia: 0.12, la fija el tipo del episodio al escribirlo saliencia0.12 frecuencia: 0.08, con qué frecuencia reaparecen los conceptos del episodio en el conjunto de candidatos frecuencia0.08 autoeco: −0.18 para las propias respuestas del tutor, −0.08 cuando esa respuesta citó un archivo autoeco (resp. del tutor) −0.18 · −0.08 si citó un archivo la parte sólida siempre se aplica; la parte clara es la penalización extra si no se citó archivo
Figura 3. Los pesos de la puntuación. La relevancia domina; el resto modula. Las respuestas anteriores del propio tutor se atenúan para que razone a partir de lo que pasó, no de lo que dijo, menos cuando la respuesta estaba fundamentada en el archivo del estudiante, porque esa respuesta es un registro de lo que se enseñó.

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).

00.250.50 nota reciente e irrelevante: relevancia 0 · recencia 1.0 → puntuación 0.15 nota nueva, sin coincidencias 0.15 (recencia) coincidencia exacta de 200 días: relevancia 0.53 · recencia 0.001 → puntuación 0.29 coincidencia de 200 días 0.29 (relevancia) el filtro elimina la primera fila si existe la segunda punt. = 0.55·relevancia + 0.15·recencia + 0.08·frecuencia + 0.12·saliencia + 0.20·concepto − eco
Figura 4. Por qué la relevancia filtra en lugar de solo contribuir. El bloque en el que cae un episodio recuperado se encabeza como "lo que recuerdas"; un episodio sin relación ahí se lee como contexto relevante.

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.

Cél. eucariotas Membrana Citoplasmamás central Pared Núcleo Cloroplastos Mitocondriasdificultad · rev. Ribosomas Endosimbiosis basado en conexo entendido aprendiendo dificultad sin evidencia para revisar grande = más central
Figura 5. Un fragmento de un mapa real (biología celular, un archivo, 16 conceptos). Las flechas van de un prerrequisito a lo que se basa en él; el diseño coloca los prerrequisitos a la izquierda. El nivel del estudiante se pinta en los nodos que alcanzaron las comprobaciones.

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.

Ejemplo · un mapa de materia renderizado para el prompt (≤ 700 tokens, primero el concepto foco)
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.

dificultad con citoplasma confianza 0.90 · tras compr. fallida evidencia: compr. c4a0 (mal) superseded_by → fila 2 (revisada) está aprendiendo citoplasma confianza 0.50 · dominio 0.45 evidencia: c4a0 (mal), d1e2 (bien) superseded_by → fila 3 (revisada) entiende citoplasma confianza 0.72 · dominio 0.72 evidencia: c4a0, d1e2, e7f8 (bien) actual, la única fila leída la evidencia se traslada en una revisión: el fallo queda registrado aunque después se considere que el estudiante entiende
Figura 6. Tres filas enlazadas para un concepto. El enunciado es una banda de dominio (por debajo de 0.3 dificultad, 0.3–0.6 aprendiendo, 0.6 y por encima entiende), así que una racha de respuestas correctas cruza una banda y eso es un cambio de opinión, registrado, nunca sobrescrito. Un pequeño ajuste de confianza dentro de una banda reafirma la misma fila.

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.

presupuesto: 2,000 tokens · un turno normal en una materia real usó 720–1,030 resumen (el mapa, primero el foco): ~380 tokens mapa 380 creencias sobre los conceptos en juego: ~100 tokens (≈ 20 cada una) 100 episodios recuperados, del más antiguo al más reciente: ~380 tokens episodios 380 cómo usarlo, y la línea de "sin registro" cuando un periodo está vacío: ~60 tokens margen ≈ 1,080 tokens 01,0002,000 mapa, primero el concepto foco y sus vecinos creenc. episod. instrucciones
Figura 7. A dónde van los tokens. El mapa se renderiza primero lo relevante dentro de 700 tokens; las creencias son la representación más barata y vienen después; los episodios llenan lo que queda, del más antiguo al más reciente, porque una línea de tiempo se lee mejor que una clasificación.
Ejemplo · el bloque para "¿Qué vimos en julio sobre las células eucariotas?" (abreviado)
===== 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.

Ejemplo · tras la corrección, la misma pregunta sobre un historial real

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.

JunJulAgoSephoy "en julio" → ventana · 1ª recuperada 12 Jul pregunta 12 Jul resp. (cita Cap.2) junio: nada 18 Sep "En julio vimos…" marcado como registro · nunca es memoria una ventana vacía muestra una sola línea, "YOU HAVE NO MEMORY FROM JUNE 2026 WITH THIS STUDENT", y nada que pueda leerse como junio
Figura 8. El tiempo como filtro. Una pregunta sobre un periodo recupera primero dentro de ese periodo; las propias narraciones del historial que hace el tutor se marcan al escribirlas y se excluyen; un periodo vacío produce una línea explícita y suprime todo lo demás que pudiera confundirse con él, incluido el mapa, que de lo contrario un modelo resumiría "como visto en junio".
Ejemplo · el escenario, antes y después

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ó.

Respuesta, por partes "En la comprobación dijiste 'hacia el lado dulce'" "La ósmosis mueve el agua hacia la sal" "Mitocondrias: dos membranas" "¿Quieres explorar esto más a fondo?" (no cuenta, se omite) Tu trabajo previo · 12 Jul "comp. ósmosis: mal, 'lado dulce'" Biología Celular · p.4 "…hacia la mayor concentración de soluto…" fundamentado 3 de 3 · la insignia cuenta una línea apoyada en memoria como respaldada
Figura 9. Dos tipos de fuente en un panel. Una línea respaldada por una memoria recuperada se etiqueta por fecha en lugar de página, y el aviso de "mayormente sin fundamento" ya no se activa ante un recuerdo veraz.

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]".

firme cita Cap.2 p.4 · huella a91f archivo hoy · huella a91f "la cita sigue ahí, sin cambios" cambió cita Cap.2 p.4 · huella a91f archivo hoy · huella 5c02 (nueva subida) 'Cap. 2' cambió → baja la preparación inverificable compr., pregunta, nota enseñada nada aquí cita un archivo una respuesta honesta, no un fallo solo se escriben las tres columnas de verificación; la evidencia y la cadena de hashes nunca se tocan
Figura 10. Verificación contra la huella del archivo. Cuando se elimina un archivo, todas las memorias de la materia que lo citan se vuelven a comprobar a la vez, los conceptos que explicaba pierden esa procedencia, la preparación baja y el resumen se vuelve a renderizar, y el informe lo dice.

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.

comprimedía → una nota degrada45 d · ×0.85 · marca calibraprevisto vs veredicto verif.40 citas · antiguas primero automodelolímites claros cada pareja activa en las últimas 26 horas · sin llamadas a modelo en el ciclo · cada pareja es su unidad de trabajo
Figura 11. El ciclo de consolidación. Se ejecuta desde un temporizador programado, una pareja a la vez; un fallo se registra y el barrido continúa.

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.

00.51.0 00.51.0 dominio previsto antes de comprobar proporción de aciertos calibración perfecta (diagonal) intervalo 0.0–0.2: previsto 0.10 · real 0.50 · n = 2 n=2 intervalo 0.2–0.4: previsto 0.30 · real 0.60 · n = 5 n=5 intervalo 0.4–0.8: previsto 0.60 · real 0.80 · n = 5 n=5 intervalo 0.8–1.0: previsto 0.90 · real 1.00 · n = 2 n=2 puntos por encima de la línea: el tutor subestima al estudiante
Figura 12. Una curva de fiabilidad a partir de catorce comprobaciones en una materia (intervalos ilustrativos). La diferencia entre los valores previsto y real de un intervalo, ponderada por su tamaño, es el error de calibración esperado que informa el automodelo; por encima de 25 puntos se convierte en un límite declarado.

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.

9–42 spara leer los archivos de una materia en su mapa
15–23 spara reproducir 33–49 turnos de historial
700–1,030tokens de memoria por turno
2.0–3.8 shasta el primer token, con memoria incluida
5 de 6"qué me equivoqué" respondido a partir de las comprobaciones reales
6 de 6preguntas de concepto enrutadas al concepto correcto

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)MensajesComprobacionesConceptosCreencias tras la re-derivaciónPreparación del mapa
Módulo de álgebra14232160, 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 dice0.60
Unidad de literatura9714103, todas ligadas a un concepto0.68
Informática y resolución de problemas912974, todas ligadas a un concepto0.60 → 0.81
Biología (español)8831156 (5 ligadas a un concepto), la mayoría "tiene dificultad con…" tras una racha de respuestas erróneas0.62
Triple ciencias7513162, ambas ligadas a un concepto0.64
Cuaderno de religión6518126 (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.

qué respondí mal, 32 preguntas: recuperación simple 3, ventana 5, episodios 24, memoria completa 30 qué respondí mal n = 32 30 qué hemos estudiado, 42 preguntas: recuperación simple 28, ventana 31, episodios 31, memoria completa 37 qué hemos estudiado n = 42 37 explicar concepto, 124 preguntas: recuperación simple 66, ventana 95, episodios 100, memoria completa 100 explicar concepto n = 124 100 qué repasar primero, 46 preguntas: recuperación simple 26, ventana 25, episodios 25, memoria completa 44 qué repasar primero n = 46 44 un mes con actividad, 44 preguntas: cada diseño 44 de 44 un mes con actividad n = 44, los cuatro 44 un mes inactivo, 132 preguntas: recuperación simple 1, ventana 73, episodios 126, memoria completa 128 un mes inactivo n = 132 1 128 025% 50%75% 100% solo recuperación ventana de 20 solo episodios memoria
Figura 13. Cuatro diseños, las mismas preguntas, los mismos 45 historiales de materia, 420 preguntas evaluadas cada uno. Totales: 168, 273, 350 y 383. La memoria vale su lugar, y también cada una de sus partes, pero no de manera uniforme ni en todas partes.

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.

Los dos extremos, mismas preguntas

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

+0.36 stiempo mediano hasta el primer token, 1.62 s a 1.98 s
750tokens medianos de memoria añadidos al prompt
+51 ptsen conjunto, 40% a 91
10%de las respuestas cambia de puntuación al repetir la pregunta

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.