Sesiones y Memoria
Sesiones
Como Funcionan las Sesiones
Cada conversacion con un agente ocurre en una sesion. Las sesiones se identifican por claves que codifican el contexto -- que agente, que canal, que chat.
Las sesiones mantienen una transcripcion completa (JSONL de solo adicion) de todos los mensajes, llamadas a herramientas y resultados. Esta transcripcion es lo que da a los agentes contexto sobre la conversacion en curso.
Claves de Sesion
Las sesiones se enrutan automaticamente basandose en el contexto:
| Patron | Significado |
|---|---|
agent:main:main |
Conversacion directa principal |
agent:<id>:<channel>:group:<id> |
Chat de grupo en un canal especifico |
agent:<id>:<channel>:channel:<id> |
Conversacion de canal/sala |
cron:<jobId> |
Ejecucion de trabajo programado |
hook:<uuid> |
Ejecucion activada por webhook |
Ciclo de Vida de la Sesion
- Reinicio diario -- Las sesiones se reinician automaticamente a una hora configurable (por defecto 4 AM local). Esto crea un contexto de conversacion fresco cada dia mientras preserva el historial.
- Expiracion por inactividad -- Las sesiones que no han estado activas por un periodo configurable pueden auto-reiniciarse.
- Reinicio manual -- Comience de nuevo en cualquier momento con un comando
/newo/reset.
Seguimiento de Tokens
Las sesiones rastrean el uso acumulativo de tokens (entrada, salida, lectura de cache, escritura de cache) para monitoreo de costos y gestion de la ventana de contexto.
Compactacion
Que Es la Compactacion?
Cuando una conversacion se acerca al limite de la ventana de contexto del modelo, Neotask la compacta -- resumiendo mensajes mas antiguos en una descripcion condensada y comenzando una nueva sesion con ese resumen mas los mensajes recientes.
Como Funciona
- Deteccion -- Monitorear uso de contexto (disparador por defecto: 80% de la ventana de contexto)
- Resumen -- Los mensajes mas antiguos se resumen en una entrada de compactacion
- Nueva sesion -- Una sesion fresca comienza con el resumen inyectado en la parte superior
- Preservacion -- Las transcripciones antiguas se preservan para historial pero ya no se cargan en el contexto
Configuracion
- Habilitado/deshabilitado -- Activar o desactivar auto-compactacion
- Umbral -- Porcentaje de la ventana de contexto que activa la compactacion (por defecto 80%)
- Minimo de mensajes -- No compactar si hay menos de N mensajes
Compactacion Manual
Puede activar la compactacion manualmente en cualquier momento con el comando /compact. Esto es util cuando quiere reiniciar el contexto sin perder informacion importante.
Memoria
Memoria del Agente
Cada agente tiene un sistema de memoria para persistir informacion importante entre sesiones:
- MEMORY.md -- Un archivo markdown en el espacio de trabajo del agente donde se almacenan hechos importantes, preferencias y contexto
- Directorio de memoria -- Archivos adicionales en
memory/para conocimiento estructurado
Busqueda Vectorial
Neotask soporta busqueda de similitud vectorial sobre la memoria del agente:
- Indexacion -- Los archivos de memoria se indexan usando embeddings
- Busqueda -- Los agentes consultan la memoria con lenguaje natural ("Que dijo el usuario sobre sus preferencias de API?")
- Recuperacion -- Las memorias relevantes se retornan clasificadas por similitud
Plugin de Memoria (LanceDB)
El plugin de memoria LanceDB proporciona almacenamiento vectorial avanzado:
- Base de datos vectorial persistente
- Tamano de fragmento y superposicion configurables
- Busqueda de similitud eficiente
- Re-indexacion automatica cuando los archivos de memoria cambian
Recuperacion Automatica
Al inicio de sesion, las memorias relevantes pueden recuperarse e inyectarse automaticamente en el contexto del agente. Esto da a los agentes continuidad entre sesiones sin cargar historiales de conversacion completos.
Persistencia de Sesiones
Todos los datos de sesion se almacenan localmente:
- Metadatos de sesion --
sessions.jsonrastrea sesiones activas, ultima actividad, conteos de tokens y configuracion - Transcripciones -- Transcripciones de sesiones individuales almacenadas como archivos
.jsonl - Recuperacion -- Las sesiones sobreviven a reinicios del Gateway sin perdida de datos
Limpieza
- Las sesiones no accedidas por un periodo configurable (por defecto 30 dias) son elegibles para limpieza
- La gestion manual de sesiones esta disponible a traves de la interfaz o API
- Las transcripciones compactadas se archivan pero pueden revisarse