Gestión de memoria en Agentes IA: memoria a largo plazo y gobernanza del conocimiento

Actualización 2026-06-08: se revisaron el benchmark LOCOMO y los detalles de los frameworks (Mem0 / Letta / Zep / Cognee siguen vigentes), se sustituyó una referencia de precio de modelo desactualizada por una formulación general y se añadió lectura relacionada sobre el tema. Frameworks y benchmarks cambian rápido: toma las cifras como una foto del momento y verifícalas en fuentes oficiales.
«¿Qué pasó con el pedido que me ayudaste a consultar?»
El Agent de soporte se queda en blanco. En el contexto actual no hay «pedido» —la consulta fue ayer en otra sesión.
No es un bug. Es amnesia.
La primera vez duele: responde bien, buena UX, pero al cambiar ventana, cerrar el navegador o volver horas después, todo a cero. No recuerda preferencias ni decisiones ni por qué las tomó.
Peor: agrandar la ventana no arregla el problema —a menudo empeora. Podredumbre del contexto: ruido diluye atención, costo y latencia explotan (de ms a segundos).
¿Cómo «recordar» de verdad? No es solo guardar chat en BD: recordar lo importante, olvidar lo trivial, recuperar a tiempo y explicar decisiones.
Este artículo desglosa la lógica de memoria en Agents: tres tipos (muchos solo conocen dos), seis frameworks, grafos vs vectores y trampas reales.
Por qué el Agent necesita memoria independiente
Podredumbre del contexto: ventana más grande, peor resultado
Datos LOCOMO (benchmark de memoria en Agents):
Full-context gana en precisión superficial. ¿Esperas 10 s? Y 13x tokens —coste alto con los modelos actuales.
¿Por qué más contexto puede empeorar?
Biblioteca con 10 libros: encuentras rápido. Con 100.000: aunque veas todas las portadas, tardas mucho. La atención del modelo se reparte; ruido histórico, tareas viejas, problemas resueltos —todo mezclado.
Experimento propio: tras 100 turnos, recordar un detalle del turno 1 —full-context de 90% a 60%; con sistema de memoria, estable >85%.
De herramienta a compañero: memoria entre sesiones
Sin memoria, el Agent es herramienta avanzada. Con memoria, compañero: respuestas concisas, preguntas repetidas, stack React vs Vue —sin repetir cada vez.
Letta (ex MemGPT): asistente de código que recuerda estilo, bugs y librerías; «otra función similar» tiene sentido porque recuerda la anterior.
Tres tipos de memoria (el tercero se ignora)
Corto plazo: ventana actual; limitada, efímera —RAM.
Largo plazo: vector, grafo, BD; grande y persistente —disco.
Razonamiento (Reasoning Memory): cadena de decisión —por qué A y no B, restricciones, alternativas. Sin esto, decide pero no explica. Clave para explicabilidad, debug y aprendizaje continuo.
Neo4j: «un Agent que solo ejecuta y no explica es un empleado que no hace retrospectiva».
Pocos frameworks (Letta, Zep) implementan razonamiento; la mayoría solo guarda chat en vector.
Arquitectura cognitiva de memoria
Modelo de cuatro capas (Letta/MemGPT)
Layer 1: Message Buffer
↓ compresión al llenarse
Layer 2: Core Memory
↓ escritura activa
Layer 3: Recall Memory
↓ recuperación bajo demanda
Layer 4: Archival Memory
Message Buffer: contexto actual; al llenarse, resume mensajes viejos.
Core Memory: «memoria de trabajo» —preferencias, objetivo, decisiones recientes; siempre en ventana.
Recall Memory: historial vectorial; «qué preguntó antes».
Archival Memory: archivo largo plazo.
Analogía al codificar: Core = archivos abiertos; Recall = git y docs; Archival = otros proyectos.
Gestión estilo SO (MemGPT/Letta)
RAM limitada, disco ilimitado; swap cuando falta RAM.
- RAM = ventana (cara, rápida)
- Disco = almacenamiento externo
El Agent gestiona Core Memory Block: evicta o recupera según tarea.
{
"label": "user_preferences",
"description": "Preferencias del usuario",
"value": "Respuestas concisas, chino, stack React",
"limit": 2000
}
Al acercarse al límite: comprimir, dividir o archivar.
Sleep-time Compute
No bloquear respuesta procesando memoria. Encolar datos; procesar en «sueño». Menor latencia percibida; procesamiento más rico. Trade-off: retraso de segundos a minutos —aceptable en asistente; no en emoción en tiempo real.
Evicción y resumen recursivo: ~70%
Resumir diálogo viejo conservando núcleo. Letta: ~70% de información equilibra continuidad y compresión.
100 mensajes llenos → resumir 50 primeros en ~500 tokens (objetivos, restricciones, decisiones, preguntas abiertas) → archivar raw → ventana = resumen + 50 recientes + nuevos.
Gobernanza: ciclo de vida de la memoria
Captura, compresión, almacenamiento, recuperación, decaimiento, limpieza.
TTL por tipo
- Usuario: años o sin TTL (nombre, stack, preferencias)
- Tarea: horas a días (proyecto actual, bugs)
- Evento: minutos a horas (turno actual, resultado temporal)
Error común: todo en un vector sin TTL → lento y ruidoso.
Usuario largo plazo → vector (sin TTL, compresión periódica)
Tarea → relacional + vector (TTL por ciclo)
Evento → memoria/Redis (TTL corto)
Resumen estructurado ~200 palabras
{
"goals": ["Qué quiere el usuario"],
"constraints": ["Restricciones"],
"decisions": ["Decisiones del Agent"],
"open_questions": ["Pendientes"],
"evidence_index": ["Índice de fuentes"]
}
Mejor que párrafo libre para lectura y retrieval.
Inyección activa vs recuperación pasiva
- Activa: memoria relevante siempre en contexto (Core)
- Pasiva: consulta bajo demanda (Recall/Archival)
Letta: Core activo; Recall/Archival pasivo cuando el modelo «necesita recordar».
Decaimiento y limpieza
{
"memory_id": "mem_001",
"content": "Usuario prefiere React",
"importance": 0.85,
"last_accessed": "2026-04-12",
"access_count": 23,
"decay_rate": 0.01
}
Tarea nocturna: importance < 0.2 → borrar; duplicados → fusionar; TTL vencido → archivar.
Elección técnica: vector vs grafo
Vector (Pinecone, Weaviate, Milvus): similitud semántica. «Respuesta concisa» y «respuesta breve» se encuentran.
Ciego a relaciones: «e-commerce», «Next.js», «Supabase», «pagos» —búsqueda «stack» puede perder Supabase por baja similitud textual.
Graph RAG
(Usuario) --[hace]--> (Proyecto e-commerce)
(Proyecto) --[frontend]--> (Next.js)
(Proyecto) --[backend]--> (Supabase)
(Proyecto) --[módulo]--> (Pagos)
«Stack del proyecto» = recorrido del grafo. Tres grafos típicos: usuario, tarea, conocimiento. Multi-salto imposible solo con vector.
Reasoning Memory
{
"decision": "NextAuth sin OAuth",
"reasoning": "Solo login por email",
"constraints": ["Sin OAuth"],
"alternatives_considered": ["Clerk", "auth custom"],
"chosen_because": "NextAuth ligero"
}
Explicabilidad, debug, aprendizaje.
Híbrido
Vector (texto) + grafo (relaciones) + relacional (estructurado). Pregunta → vector → entidades → grafo → BD.
Comparación de seis frameworks
Pasemos de la teoría a la elección práctica.
Mem0: integración rápida, memoria multinivel
Mem0 es uno de los frameworks de memoria para Agent más populares. Su propuesta: «memoria como servicio» —no gestionas almacenamiento ni retrieval, solo llamas a la API.
Características clave:
- Servicio gestionado, sin montar infraestructura
- 21 integraciones (LangChain, LangGraph, LlamaIndex, CrewAI, etc.)
- Extracción, actualización y retrieval automáticos
- Multi-tenant y multi-sesión
Datos LOCOMO:
- Precisión: 66,9%
- Latencia: 0,71 s
- Tokens: ~2K
Casos de uso:
- Prototipos rápidos
- Agent de voz (sensible a latencia)
- Proyectos multi-framework
Limitaciones:
- Servicio gestionado, datos fuera de tu infra
- Funciones avanzadas (p. ej. memoria de razonamiento) limitadas
- Menos personalización que soluciones propias
from mem0 import Memory
m = Memory()
m.add("El usuario prefiere respuestas concisas", user_id="user_001")
results = m.search("preferencias del usuario", user_id="user_001")
# Devuelve: ["El usuario prefiere respuestas concisas"]
Ridículamente simple: baja barrera de entrada.
Letta: Agent de larga duración
Letta (antes MemGPT) diseña la memoria al estilo SO: el Agent gestiona lectura, escritura, eviction y recall.
Características clave:
- RAM (contexto) + disco (almacenamiento externo)
- Sleep-time Compute asíncrono
- Memoria de razonamiento completa
Casos: asistente de código, asistente personal, trazabilidad de decisiones.
Limitaciones: curva de aprendizaje, despliegue propio, modelos pequeños gestionan peor la autonomía.
┌─────────────────────────────────────┐
│ Agent (LLM) │
│ ┌───────────────────────────────┐ │
│ │ Core Memory (RAM) │ │
│ │ - Self Block: Yo soy... │ │
│ │ - User Block: El usuario... │ │
│ │ - Task Block: Tarea actual... │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
↓ Gestión activa
┌─────────────────────────────────────┐
│ Almacenamiento externo (disco) │
│ - Recall Memory (Vector DB) │
│ - Archival Memory (archivo) │
└─────────────────────────────────────┘
Para acompañamiento a largo plazo, Letta es hoy la opción más madura.
Zep: especialista en conversación
Resumen progresivo, retrieval híbrido semántico + temporal, extracción de hechos y multimodal.
Casos: chatbots de soporte, IA conversacional con historial largo.
Limitaciones: foco conversacional; versión open source limitada, enterprise cara.
Destaca la detección automática de hechos («el usuario se llama…», «vive en…») como datos estructurados.
Cognee: grafo de conocimiento
Construcción automática de grafos; Neo4j, NetworkX; pipeline de entidades y relaciones.
| Método | Latencia | Calidad | Costo |
|---|---|---|---|
| spaCy | ~5 ms | Media | Bajo |
| GLiNER2 | ~50 ms | Alta | Medio |
| LLM | ~500 ms | Máxima | Alto |
Casos: asistente de investigación, Q&A denso, razonamiento multi-salto.
Limitaciones: costo de construcción alto; infra de grafo; puede ser excesivo en escenarios simples.
Matriz de decisión
| Escenario | Framework | Motivo |
|---|---|---|
| MVP / prototipo | Mem0 | Sin infra, arranque rápido |
| Agent de voz | Mem0 | Baja latencia |
| Compañero largo plazo | Letta | SO + razonamiento |
| Soporte enterprise | Zep | Memoria conversacional + hechos |
| Conocimiento denso | Cognee | Grafo y relaciones |
| Infra propia | Letta + vector DB | Máxima flexibilidad |
Recomendación general: Mem0 para prototipo → Letta si necesitas memoria larga → Cognee/Neo4j si las relaciones son complejas.
Casos y buenas prácticas
Agent de voz
Latencia crítica: <200 ms tras hablar el usuario; retrieval de memoria <100 ms.
Mem0: precarga Core al inicio; Recall pasivo bajo demanda; actualización async al cerrar. ElevenLabs + Mem0: E2E <300 ms.
Soporte enterprise
Memoria a largo plazo y explicación de decisiones.
Mensaje usuario → reconocimiento de intención
↓
Core Memory (perfil) + Recall Memory (historial)
↓
RAG + registro de razonamiento (por qué esta respuesta)
Zep encaja: hechos automáticos + resumen progresivo.
Asistente personal
Perfil a largo plazo, contexto por proyecto, memoria de razonamiento de recomendaciones. Letta: Core = perfil, Recall = historial de proyecto, Archival = proyectos archivados.
Trampas habituales
- Todo en vector — híbrido: relacional para IDs/estado, vector para semántica, grafo para relaciones.
- Sin TTL — eventos horas, tareas días, perfil años.
- Ignorar memoria de razonamiento — registra qué, por qué y qué descartaste.
- LLM pequeño gestionando memoria — reglas fijas, plantillas, pesos de importancia.
Conclusión
- Memoria = segunda mente, no opcional.
- Tres tipos: corto, largo, razonamiento.
- Sin bala de plata: escenario define framework.
- Vector + grafo + relacional.
- Gobernanza: TTL, decaimiento, limpieza.
Acciones: revisar LOCOMO; prototipo con Mem0; profundizar en Reasoning Memory.
El futuro del Agent no es solo modelo más listo, sino memoria más persistente.
Lectura relacionada
- Arquitectura de Agentes IA en la práctica
- Gestión de estado en LangGraph: checkpoints y recuperación ante fallos
- Cómo elegir una base de datos vectorial para RAG
Referencias
- State of AI Agent Memory 2026 — Mem0, LOCOMO
- Agent Memory: How to Build Agents that Learn and Remember — Letta
- Meet Lenny’s Memory: Building Context Graphs for AI Agents — Neo4j
- The 6 Best AI Agent Memory Frameworks
- AI Agent落地拉胯?长期记忆的3类记忆+3段管道是关键
FAQ
¿Por qué un Agent necesita memoria independiente si ya hay ventana de contexto?
¿Diferencia entre memoria corta, larga y de razonamiento?
• Larga: vector/grafos/BD, persistente
• Razonamiento: por qué se eligió A y no B —clave para explicabilidad y depuración. Muchos frameworks solo implementan las dos primeras.
¿Mem0, Letta, Zep o Cognee?
• Letta: Agent de larga duración, razonamiento completo
• Zep: soporte empresarial, resúmenes progresivos
• Cognee: conocimiento denso, multi-salto en grafo. Empieza con Mem0 y migra según necesidad.
¿Cómo combinar vector DB y grafo de conocimiento?
¿Inflación de memoria y gobernanza?
¿Qué es Reasoning Memory?
8 min de lectura · Publicado el: 13 abr 2026 · Actualizado el: 21 ago 2026
Guía de ingeniería de AI Agents
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Diseño de sistemas de memoria para agentes: de la sesión a la memoria a largo plazo
Construye un sistema de memoria para agentes desde cero: cuatro tipos de memoria, pipeline en cinco fases, comparación Mem0/Zep/LangMem y estrategias de optimización de costos en producción
Parte 3 de 16
Siguiente
Invocación de herramientas en Agent: haz que la IA llame APIs y servicios externos
De Function Calling a MCP: mecanismos de invocación en Claude y OpenAI, ejemplos completos y buenas prácticas para construir agentes de IA con capacidad de llamar APIs
Parte 5 de 16



Comentarios
Inicia sesión con GitHub para dejar un comentario