Más allá del límite de tokens: por qué los compañeros de IA pierden contexto
La mayoría de los compañeros de IA empiezan con precisión y terminan vagos. No es que el modelo pierda interés: la conversación se sale de la ventana que puede ver.
La ilusión de la memoria
La primera hora con un compañero de IA típico resulta desconcertante. Retoma el hilo, recuerda el nombre de tu hermana y vuelve a la discusión que tuvisteis hace dos escenas. Da la sensación de que te conoce.
Después, más o menos por el mensaje número treinta, empieza a desviarse. Pregunta algo que ya habías respondido. Un personaje que salió de la habitación aparece de pronto hablando. La herida de ayer se ha curado sin que nadie la trate.
No se ha roto nada. Simplemente has llegado al límite de lo que el modelo podía ver.
Un modelo de lenguaje no tiene memoria entre llamadas. Cada turno es una solicitud nueva que lleva consigo toda la conversación, y esa solicitud tiene un límite de tamaño: la ventana de contexto. Cuando lo superas, se descarta el material más antiguo. Tus primeras escenas se caen por el extremo posterior y, desde el punto de vista del modelo, nunca ocurrieron.
Cómo se manifiesta el deterioro del contexto
En la mayoría de las aplicaciones de compañía, el fallo rara vez es dramático. Es una pérdida lenta de especificidad, por eso resulta tan fácil culpar a que el modelo está "vago".
- Los nombres se confunden. Dos personajes secundarios se fusionan en uno, o un nombre reaparece para alguien nuevo.
- Las promesas se evaporan. Un personaje que juró encontrarse contigo en el puerto no tiene ni idea de qué le estás hablando.
- Lo que está en juego vuelve a cero. La deuda, la herida, el secreto que alguien guarda: la trama vuelve discretamente a la neutralidad.
- Los hechos establecidos cambian. Un personaje que no sabe nadar se pone a nadar.
Cada detalle por separado invita a encogerse de hombros. Juntos marcan la diferencia entre una historia y una serie de escenas agradables pero desconectadas; también explican por qué el roleplay largo suele desinflarse en vez de llegar a un final.
Cuatro formas de conservar el pasado
Se utilizan cuatro enfoques, y cada uno falla en un punto distinto.
| Enfoque | Cómo conserva el pasado | Dónde falla |
|---|---|---|
| Ventana deslizante | Los últimos N mensajes, palabra por palabra | Todo lo anterior desaparece sin más. Recuerdo perfecto dentro de la ventana y amnesia total fuera de ella. |
| Ventana muy grande | Decenas o cientos de miles de tokens, palabra por palabra | El coste y la latencia aumentan en cada turno, y la atención se diluye en el centro de un contexto largo: el modelo puede ver un detalle y aun así no darle importancia. |
| Recuperación vectorial (RAG) | Mensajes anteriores convertidos en vectores y buscados por similitud | Devuelve texto que parece relevante. No sabe qué es cierto en ese momento, así que un hecho y su corrección posterior parecen igual de válidos. |
| Estado estructurado de la historia | Hechos, personajes, relaciones y acontecimientos que se anotan a medida que ocurren | Requiere un trabajo real de mantenimiento y solo es tan bueno como lo que se anota: lo que no queda registrado se pierde. |
Quería un mundo que dejara constancia de las cosas. Cuando ella recuerda vuestra tercera noche juntos, es porque de verdad estuvo allí.
Fundador de projectDigo
Por qué una ventana más grande no es la respuesta
La solución obvia es hacer la ventana enorme. También es la más cara y no hace lo que la gente espera.
Todo el contexto se vuelve a enviar y a leer en cada turno, así que una conversación con cien mil tokens de historial vuelve a pagarlos con cada mensaje y espera más para recibir cada respuesta. Peor aún, un modelo que lee un contexto muy largo no lo procesa de manera uniforme: lo que tu personaje dijo hace cuarenta escenas puede estar técnicamente presente y ser prácticamente invisible.
Una ventana grande compra tiempo. No cambia la forma del problema, porque el problema no es la capacidad, sino que nada decide qué importa.
Qué hacemos nosotros
projectDigo conserva un registro de la historia.
Lo importante —quién existe, qué ha ocurrido entre ellos, qué es cierto ahora mismo— se guarda como el estado propio de la historia, en lugar de dejarlo en una conversación que tarde o temprano saldrá de la vista. Las escenas posteriores se escriben a partir de ese estado. La escena cuatrocientos sabe lo que estableció la escena tres porque la escena tres quedó registrada, no porque simplemente se dijo.
Cómo se construye ese registro, cómo se mantiene al día y cómo vuelve a utilizarse es la parte a la que más tiempo hemos dedicado y la que preferimos reservarnos. Lo que ofrece es bastante sencillo: continuidad, por larga que sea la partida.
La contrapartida, sin adornos
No es gratis. Mantener un registro exige más trabajo por escena que reenviar una transcripción, y una historia solo puede recordar lo que merecía quedar anotado: todo lo que se omita se pierde, igual que lo perdería una ventana deslizante.
Lo que ofrece a cambio es una historia que acumula. Diez horas después, el mundo tiene un pasado que puedes señalar y los personajes se comportan como personas que estuvieron allí.
Lo que nos preguntan
¿Por qué no usar simplemente un modelo con una ventana de contexto de un millón de tokens?
Porque pagas por todo el contexto en cada turno, tanto en dinero como en latencia, y porque la atención se diluye en el centro de un contexto muy largo: un detalle puede estar presente y aun así ignorarse en la práctica. Una ventana grande pospone el deterioro del contexto, pero no lo elimina.
¿Es lo mismo que RAG?
Está relacionado, pero no es lo mismo. La recuperación encuentra pasajes parecidos a la consulta, algo útil para buscar información pero poco fiable para saber qué es cierto en ese momento: un hecho y su corrección posterior parecen coincidencias igual de buenas. Un registro de la historia conserva el estado —lo que es cierto ahora—, no texto de apariencia similar.
¿Hasta dónde puede recordar realmente un personaje?
En projectDigo, hasta el comienzo de la sesión. Lo que persiste es el estado de la historia, no la redacción de cada mensaje, así que el recuerdo no se deteriora a medida que la sesión se alarga.
¿El modelo se contradice alguna vez con su propia memoria?
Puede hacerlo; por eso projectDigo comprueba la coherencia antes de que una escena llegue hasta ti. Lo habitual es que se corrija algo sin que llegues a verlo. Nada detecta todos los fallos, pero el problema pasa de ser una deriva constante a un desliz ocasional.