Ventana Deslizante en Contexto: Cómo los LLMs manejan su memoria


ilustacion del articulo

¿Alguna vez sentiste que tu agente de IA "se olvida" de lo que hablaron hace diez minutos? No es que sea distraído, es que llegó al límite de su capacidad física.

En el mundo de los LLMs, el contexto es el recurso más valioso y, a la vez, el más escaso. Entender cómo funciona la ventana deslizante no solo es una curiosidad técnica; es la diferencia entre tener un asistente productivo o uno que alucina porque perdió el hilo de la conversación. En este artículo desglosamos cómo los modelos modernos gestionan su memoria y cómo podés optimizar tus interacciones para que nunca más se "caiga" la información importante.

01 — El problema de fondo: El límite físico del contexto

El contexto de un LLM es como una memoria RAM de corto plazo pero con una capacidad estrictamente definida. Por ejemplo, si un modelo tiene una ventana de 200,000 tokens, cualquier información que supere ese límite simplemente "se cae" o causa un error.

En lugar de fallar, los sistemas modernos implementan un mecanismo donde, a medida que entran nuevos tokens (mensajes nuevos, resultados de herramientas), los más antiguos van saliendo de la ventana activa.

02 — Cómo funciona: El ciclo del agente

En un agente moderno como Claude Code, cada interacción añade complejidad al contexto:

  1. Input del usuario: Entra al contexto original.
  2. Razonamiento interno: El modelo decide qué acción tomar (esto gasta tokens).
  3. Llamada a herramientas: El resultado de ejecutar un comando o leer un archivo vuelve al contexto.
  4. Respuesta final: Se acumula junto a todo lo anterior.

Con cada vuelta del ciclo, la ventana "desliza", desplazando los tokens más viejos hacia afuera del alcance del modelo.

03 — Variantes de la ventana deslizante

No existe una única estrategia para manejar este límite. Dependiendo de la implementación, se pueden usar diferentes enfoques:

Estrategia Descripción Trade-off
Truncado puro Descarta los mensajes más viejos sin más. Simple, pero pierde contexto crítico sin aviso.
Resumen comprimido Reemplaza mensajes viejos por un resumen generado por la IA. Preserva semántica, pero añade latencia y costo.
Anclaje de System Prompt El prompt inicial siempre se mantiene fijo. Es la estrategia estándar en Claude; garantiza coherencia.
RAG + Ventana corta Usa búsqueda vectorial para recuperar memorias antiguas. Muy escalable para tareas largas, pero complejo de implementar.

04 — Optimización práctica: Cómo sacarle el máximo provecho

Entender este mecanismo te permite trabajar mejor con agentes de IA. Aquí te presentamos algunos patrones recomendados:

Lo que deberías evitar (Antipatrones)

  • Pegar cientos de líneas de código directamente en el chat. Es mejor que el agente lea archivos específicos.
  • Repetir contexto que el modelo ya tiene en su historial reciente.
  • Mantener conversaciones infinitas sin reiniciar. El contexto se degrada y el modelo empieza a alucinar o contradecirse.
  • Ignorar el archivo CLAUDE.md. Este archivo es vital para mantener instrucciones persistentes que no dependan del historial volátil.

Patrones correctos (Mejores Prácticas)

  • Sesiones cortas y atómicas: Una sesión por cada tarea específica.
  • Reiniciar + Resumen: Cuando sientas que el modelo "se pierde", reinicia la sesión y proporciónale un resumen compacto de lo avanzado.
  • Dividir tareas grandas: Divide proyectos complejos en subtareas que puedan resolverse en hilos separados.
  • Uso eficiente del filesystem: Deja que el agente acceda a los archivos directamente en lugar de pasárselos por texto.

¿Querés ver esto en acción?

Probá la versión interactiva aquí para jugar con los sliders y ver cómo desliza la ventana en tiempo real.

Los modelos de lenguaje (LLMs) no tienen memoria infinita. Todo lo que procesan entra en una ventana de tokens de tamaño fijo. Cuando esta ventana se llena, el sistema debe decidir qué información mantener y cuál descartar. Aquí es donde entra en juego el concepto de Ventana Deslizante.


Este artículo fue una colaboración de Matias Montivero para DevOpsTechIA.