La memoria en un agente de IA es todo lo que le permite recordar más allá del turno actual: distingue entre la memoria de trabajo, que vive en la ventana de contexto y se borra al terminar, y la memoria a largo plazo, que guarda hechos y experiencias en un almacén externo para recuperarlos cuando hacen falta. Sin memoria, un agente vuelve a empezar de cero en cada sesión. En esta guía verás por qué la necesita, cómo se organiza en corto y largo plazo, los tres tipos que hereda de la psicología cognitiva, cómo se almacena con bases de datos vectoriales y qué librerías (Mem0, Letta, Zep) resuelven el problema. La misma explicación está disponible en inglés.

Puntos clave

  • La memoria de trabajo de un agente es su ventana de contexto: rápida pero efímera y limitada en tamaño. La memoria a largo plazo es un almacén externo que sobrevive entre sesiones.
  • Se suelen distinguir tres tipos de memoria a largo plazo, tomados de la psicología: episódica (qué pasó), semántica (hechos sobre el usuario y el mundo) y de procedimiento (cómo hacer algo).
  • El almacenamiento habitual es una base de datos vectorial: cada recuerdo se guarda como un embedding y se recupera por similitud con la consulta actual.
  • El artículo Generative Agents (2023) propuso la idea de flujo de memoria con recuperación por recencia, importancia y relevancia, la base de casi todo lo que vino después.
  • Librerías como Mem0 (unas 60 000 estrellas en GitHub) reducen más del 90 % los tokens frente a meter todo el historial en el contexto, según su artículo en la prueba LOCOMO.

¿Por qué un agente necesita memoria?

Un modelo de lenguaje no recuerda nada por sí mismo. Cada llamada a la API es independiente: el modelo solo ve lo que le pasas en esa petición y, cuando responde, olvida todo. La ilusión de que un chatbot «recuerda» la conversación se sostiene porque la aplicación le reenvía el historial completo en cada turno. Para un agente de IA, que puede dar decenas de pasos y trabajar durante horas, ese truco deja de funcionar pronto.

El problema es doble. Primero, la ventana de contexto tiene un tope: aunque los modelos de 2026 admiten cientos de miles de tokens, meter ahí todo el historial es caro, lento y degrada la calidad de las respuestas cuando el contexto se llena. Segundo, hay información que quieres conservar entre sesiones distintas: las preferencias del usuario, lo que el agente aprendió ayer, el resultado de una tarea de la semana pasada. Nada de eso cabe (ni debe caber) en una sola petición.

La memoria resuelve ambas cosas separando lo que el agente tiene delante ahora mismo de lo que puede recuperar cuando lo necesita. Es la diferencia entre lo que tienes en la mente mientras hablas y lo que has apuntado en un cuaderno para consultarlo después.

Memoria de trabajo frente a memoria a largo plazo

La distinción fundamental es entre memoria de trabajo (corto plazo) y memoria a largo plazo, y refleja bastante bien cómo funciona la memoria humana.

La memoria de trabajo es la ventana de contexto del modelo: el objetivo, los últimos mensajes, las herramientas disponibles y las observaciones recientes. Es inmediata y no cuesta nada consultarla, porque el modelo ya la está mirando, pero es efímera (desaparece al acabar la sesión) y limitada (todo lo que metas ahí compite por el mismo espacio de tokens). Gestionar bien ese espacio es un tema en sí mismo, la ingeniería de contexto.

La memoria a largo plazo es un almacén fuera del modelo (un archivo, una base de datos, un grafo) que persiste entre sesiones. El agente no la ve toda a la vez: la consulta con una herramienta de búsqueda y trae solo los fragmentos relevantes al contexto. Es la diferencia entre la RAM y el disco de un ordenador, una analogía que el proyecto MemGPT llevó al extremo al describir el modelo como «un proceso que corre sobre un sistema operativo con memoria limitada». El agente decide qué sube del disco a la RAM en cada momento.

En la práctica, un agente combina las dos. Un asistente de programación mantiene en memoria de trabajo el archivo que edita ahora, y en memoria a largo plazo las convenciones del proyecto que aprendió en sesiones anteriores. El arte está en traer al contexto lo justo, ni de más (malgastas tokens) ni de menos (el agente pierde el hilo).

¿Qué es la memoria episódica, semántica y de procedimiento?

Dentro de la memoria a largo plazo se suele copiar una taxonomía de la psicología cognitiva con tres tipos, útil porque cada uno se almacena y se usa de forma distinta.

La memoria episódica guarda experiencias concretas: qué preguntó el usuario el martes, qué herramienta falló, cómo se resolvió una incidencia parecida. Son eventos con fecha, y sirven para que el agente aprenda de lo que ya hizo en lugar de tropezar dos veces con la misma piedra.

La memoria semántica guarda hechos atemporales sobre el usuario y el mundo: «se llama Ana», «trabaja en Madrid», «prefiere respuestas breves». No importa cuándo lo aprendió el agente, sino que lo sepa. Es la que hace que un asistente parezca conocerte.

La memoria de procedimiento guarda cómo hacer algo: los pasos de una tarea, las reglas del sistema, las buenas prácticas que el agente debe seguir. A menudo no se guarda en una base de datos aparte, sino que vive en el prompt de sistema o en el propio código de las herramientas, porque es lo que define el comportamiento del agente en todo momento.

Un buen sistema de memoria decide, ante cada nuevo dato, en qué cajón guardarlo y de cuál recuperarlo. Muchas librerías modernas hacen esa clasificación de forma automática con un modelo auxiliar que extrae los hechos que merece la pena recordar.

Almacenar recuerdos con bases de datos vectoriales

El mecanismo más común para la memoria a largo plazo es la base de datos vectorial. Cada recuerdo (una frase, un hecho, el resumen de una conversación) se convierte en un embedding, un vector de números que captura su significado. Cuando el agente necesita recordar algo, convierte la consulta actual en otro embedding y busca los recuerdos más cercanos por similitud coseno. Así recupera lo relevante aunque las palabras no coincidan exactamente.

Este enfoque de recuperación semántica lo popularizó el artículo Generative Agents: Interactive Simulacra of Human Behavior (2023), donde 25 agentes convivían en un pueblo simulado. Cada agente mantenía un flujo de memoria con todas sus experiencias en lenguaje natural y, para decidir qué recordar, puntuaba cada recuerdo con tres factores: recencia (cuánto tiempo ha pasado), importancia (cuánto pesa el recuerdo) y relevancia (cuánto se parece a la situación actual). Esa combinación, más una fase de reflexión que resume recuerdos en conclusiones de alto nivel, sigue siendo el patrón de referencia.

No toda la memoria a largo plazo es vectorial. Algunos sistemas usan un grafo de conocimiento, donde los hechos son nodos y aristas con relaciones explícitas entre entidades. Es más preciso para razonar sobre cómo cambian los datos con el tiempo, a costa de ser más complejo de mantener.

Bibliotecas de memoria: Mem0, Letta y Zep

No necesitas construir todo esto a mano. Tres proyectos abiertos dominan el hueco en 2026, con enfoques distintos.

Mem0 es la opción más popular (unas 60 000 estrellas en GitHub, versión 2.0.12 en julio de 2026). Se coloca como una capa de memoria sobre cualquier LLM: le pasas los mensajes, extrae los hechos que merece la pena recordar y los guarda en un almacén vectorial; luego los recupera con una búsqueda. Según su artículo de investigación[1] sobre la prueba LOCOMO, mejora un 26 % la exactitud frente a la memoria de OpenAI y usa unos 1 764 tokens por conversación en lugar de los 26 031 de meter todo el historial, más de un 90 % de ahorro. Empezar es directo:

pip install mem0ai
from mem0 import Memory

m = Memory()  # usa un almacen vectorial local por defecto

m.add("Ana prefiere respuestas breves y trabaja en Madrid", user_id="ana")

recuerdos = m.search("como respondo a esta usuaria?", user_id="ana")
print(recuerdos)  # los recuerdos mas relevantes para esta usuaria

Letta (antes MemGPT) va un paso más allá y hace que el propio agente gestione su memoria mediante herramientas. Organiza la memoria como un sistema operativo en tres niveles: la memoria central (bloques editables que viven en el contexto, como human y persona), la memoria de recuerdo (el historial de mensajes, buscable) y la memoria de archivo (almacenamiento a largo plazo que el agente consulta con una herramienta). El agente decide cuándo escribir o leer cada nivel.

Zep, a través de su motor abierto Graphiti (unas 20 000 estrellas), construye un grafo de conocimiento temporal. Cada hecho tiene una ventana de validez, así que cuando un dato cambia (el usuario se muda de ciudad) el sistema marca el antiguo como caducado en lugar de dejar dos versiones que se contradigan. En su artículo[2] reporta mejoras de hasta el 18,5 % en exactitud y hasta un 90 % menos de latencia frente a arrastrar todo el contexto. Es el enfoque más indicado cuando importa el historial de cómo evolucionan los datos.

Preguntas frecuentes

¿No basta con una ventana de contexto grande?

No del todo. Aunque los modelos de 2026 aceptan cientos de miles de tokens, meter todo el historial en cada llamada es caro, añade latencia y baja la calidad cuando el contexto se llena, un efecto que se conoce como degradación por contexto largo. Además, la ventana se borra al acabar la sesión, así que sigues necesitando un almacén externo para recordar de un día para otro. Una ventana grande ayuda, pero no sustituye a la memoria a largo plazo.

¿Qué diferencia hay entre memoria y RAG?

Se solapan, pero no son lo mismo. RAG recupera fragmentos de una base de conocimiento fija (manuales, documentación) para responder mejor. La memoria de un agente es información que él mismo genera y actualiza: lo que aprendió del usuario, lo que hizo en tareas anteriores. Técnicamente ambos usan búsqueda por embeddings sobre una base de datos vectorial, pero la memoria es personal, cambiante y la escribe el propio agente.

¿Dónde se guardan los recuerdos?

En un almacén externo al modelo. Lo más habitual es una base de datos vectorial (Qdrant, Chroma, pgvector) que guarda cada recuerdo como un embedding y lo recupera por similitud. Otros sistemas, como Zep, usan un grafo de conocimiento para razonar sobre cómo cambian los hechos con el tiempo. Librerías como Mem0 o Letta te abstraen de esa elección y gestionan el almacén por ti.

Conclusión

La memoria es lo que convierte a un modelo sin estado en un agente que aprende. La clave es separar la memoria de trabajo (la ventana de contexto, rápida pero efímera) de la memoria a largo plazo (un almacén externo que persiste y se consulta bajo demanda), y organizar esta última en recuerdos episódicos, semánticos y de procedimiento. Casi siempre el motor es una base de datos vectorial que recupera por similitud, con el patrón de recencia, importancia y relevancia que popularizaron los Generative Agents. Para no construirlo desde cero, empieza por Mem0 si quieres una capa sencilla, Letta si prefieres que el agente gestione su propia memoria, o Zep si necesitas seguir cómo cambian los datos en el tiempo. El siguiente paso es aprender a administrar el contexto que sí llega al modelo: sigue con la ingeniería de contexto para agentes.

Fuentes: [1] Generative Agents, Interactive Simulacra of Human Behavior (arXiv 2304.03442)[3], [2] Mem0, Building Production-Ready AI Agents with Scalable Long-Term Memory (arXiv 2504.19413)[1], [3] Repositorio de Mem0 en GitHub[4], [4] Arquitectura de memoria de Letta[5], [5] Zep, A Temporal Knowledge Graph Architecture for Agent Memory (arXiv 2501.13956)[2].

Fuentes

  1. artículo de investigación
  2. artículo
  3. Generative Agents, Interactive Simulacra of Human Behavior (arXiv 2304.03442)
  4. Repositorio de Mem0 en GitHub
  5. Arquitectura de memoria de Letta

Ruta: Fundamentos de los agentes de IA