No dejes que una sesión dure para siempre: por qué la memoria a largo plazo de Hermes necesita límites de sesión

¿Alguna vez has mantenido un mismo chat abierto del lunes al viernes, viendo cómo el contexto se volvía más pesado y caro con cada respuesta — y aun así Hermes nunca parecía volverse más listo, ni siquiera recordar la preferencia que le contaste la semana pasada? Un desarrollador compartió esta semana su propia versión de esa historia (I think I used the Hermes Agent wrong), y su conclusión merece un vistazo atento: el problema puede ser que casi nunca cerraba una sesión.
Ejecutando Hermes en una Raspberry Pi con Telegram, estuvo 18 días con solo 5 sesiones — cada noche la Pi se apagaba y cada mañana Hermes reanudaba en silencio la sesión anterior. El resultado: a lo largo de 1,990 mensajes, Hermes usó de forma proactiva session_search (la herramienta de recuperación entre sesiones) solo 9 veces, y los archivos de memoria apenas cambiaron. La razón no es que el agente se volviera más tonto. Todo lo importante seguía en la ventana de contexto, así que no había nada que recordar. La memoria a largo plazo de Hermes, sin embargo, está diseñada explícitamente partiendo del supuesto de que las sesiones terminan.
Cómo funciona de verdad la memoria de Hermes
Hermes mantiene dos tipos de memoria persistente, y entender cada uno explica por qué los límites importan.
Las notas entre sesiones: MEMORY.md y USER.md. Cada perfil guarda estos archivos de texto (además del opcional SOUL.md): USER.md almacena datos sobre ti; MEMORY.md, notas y preferencias que Hermes ha acumulado. Al inicio de una sesión nueva, ambos archivos se inyectan en el contexto para que Hermes «recuerde» quién eres y lo que ha aprendido. Pero tienen un límite de tamaño — los valores por defecto del código fuente son memory_char_limit: 2200 y user_char_limit: 1375, aproximadamente 800 y 500 tokens. Cerca del límite, Hermes debe usar su herramienta de memoria para fusionar, recortar y priorizar — quedándose con lo más importante.
El almacén completo de transcripciones: state.db. Cada mensaje vive en una base de datos SQLite local. session_search es la herramienta que permite a Hermes mirar fuera de la sesión actual — «¿cómo arreglé ese fallo de CI la última vez?». Esa es la otra mitad del diseño: cuando el contexto no puede contenerlo todo, la recuperación trae de vuelta los detalles antiguos.
¿Y cuándo se escribe? Además del uso explícito de la herramienta de memoria a mitad de conversación, Hermes ejecuta una background review: tras un turno, revisa la conversación de forma asíncrona y destila lo que merece la pena persistir — lecciones, correcciones, preferencias. Ese bucle solo funciona bien cuando las sesiones tienen finales naturales: asienta un lote al terminar, inyéctalo al empezar la siguiente, y repite.
Qué ocurre cuando nunca cierras una sesión
Si proyectas ese diseño sobre una única sesión de 18 días, el modo de fallo es evidente:
- Los archivos de memoria se convierten en decoración. MEMORY.md/USER.md se inyectan al inicio de la sesión — en una mega-sesión su contenido ya está en el contexto, así que Hermes nunca necesita los archivos para «recordar» nada, y la background review no ve nada que merezca la pena actualizar. Quedan obsoletos en silencio.
- session_search apenas se dispara. La herramienta existe para lo que «no está en el contexto, pero sí en el historial». En una sesión interminable, la semana pasada sigue en la ventana, así que la recuperación no tiene trabajo. Nueve usos por cada 1,990 mensajes no es estupidez — es una herramienta sin nada que hacer.
- El coste y la latencia suben. Cada turno reenvía al modelo un historial cada vez más largo; la factura de tokens crece con la duración de la sesión. Cerca del límite de la ventana, entra la compresión y pliega el contenido antiguo en resúmenes — resúmenes con pérdida, donde los detalles se evaporan en silencio.
- Pierdes la estratificación de la memoria. La mega-sesión mezcla el contexto a corto plazo y la memoria a largo plazo en una sola olla. Recordarlo todo significa no recordar nada con precisión: las preferencias duraderas que pertenecen a una nota y los detalles puntuales que pertenecen a la búsqueda, todo cocido en el mismo guiso.
Cuándo empezar de cero y cuándo reanudar
La buena noticia: la regla es simple. ¿La tarea sigue en curso?
Reanuda la sesión cuando:
- La misma tarea está sin terminar — solo en pausa (te fuiste a mitad de un documento largo);
- Necesitas en el siguiente paso un contexto transitorio (una ruta de archivo, el código exacto que estás depurando) que no merece la pena volver a explicar;
- Alternas entre tareas en una misma terminal y quieres mantener intacto el historial de cada hilo.
Empieza una sesión nueva cuando:
- La última tarea está entregada o claramente terminada — incluso un «por ahora está hecho» cuenta;
- El tema ha cambiado y las dos tareas no comparten ningún contexto que debas arrastrar;
- El contexto ya es grande (vigila el uso de tokens en la barra de estado o en las vistas tipo
hermes status) y la tarea nueva no usará el contenido antiguo; - Quieres que Hermes recuerde de verdad esta conversación — al cerrarla, la background review puede destilar las conclusiones.
La forma correcta de cambiar: antes de empezar algo nuevo, pide a Hermes que guarde en memoria las conclusiones que merezcan conservarse, o archiva la conversación con el comando /save que vimos antes. Cuando reanudes, el truco de reanudación por terminal con hermes chat -c mantiene cada terminal en su propio hilo. Y si los datos de sesión se comportan mal alguna vez, nuestra guía de campo para incidentes de sesión recorre el diagnóstico y la recuperación.
Convierte los límites de sesión en un hábito
La historia del desarrollador merece compartirse porque no se topó con un bug — se topó con un desajuste de uso, empleando un sistema de memoria pensado para muchas sesiones como si fuera un único hilo infinito. No necesitas cerrar sesiones con un temporizador; solo abre una nueva de forma natural cuando una tarea llegue a su fin. Eso permite que la inyección de archivos, el asentamiento de la background review y la recuperación de session_search hagan cada uno su trabajo. Las sesiones con límites dan a la memoria un ciclo — y un Hermes que de verdad te recuerda es para lo que lo instalaste.