Introducción a la memoria en Agentes

Intermedio
LangChain
LangChain
Actualizado: 02/12/2025

Introducción a la memoria en Agentes

La memoria en los agentes de inteligencia artificial es la capacidad de almacenar, retener y recuperar información de interacciones pasadas para informar decisiones futuras. En el ecosistema de LangChain y LangGraph, la memoria no es un único concepto monolítico, sino que se divide fundamentalmente en dos sistemas con propósitos y ciclos de vida distintos: Short-term Memory (Memoria a corto plazo) y Long-term Memory (Memoria a largo plazo).

Entender esta distinción es crucial porque, aunque técnicamente ambas pueden guardarse en la misma base de datos (como PostgreSQL), resuelven problemas arquitectónicos diferentes. La confusión es común: si guardo el estado de la conversación en una base de datos, ¿no es eso memoria a largo plazo? La respuesta radica en el alcance (scope) y la intención de los datos, no solo en el medio de almacenamiento.

Short-term Memory: Persistencia del hilo

La Short-term memory (memoria a corto plazo), también conocida en LangGraph como Checkpointer o persistencia del estado, se centra en recordar el contexto de una conversación específica mientras esta está activa.

Su objetivo principal es permitir que el agente recuerde "qué acaba de pasar" dentro de un mismo hilo de ejecución (thread). Imagina una conversación telefónica: necesitas recordar lo que la otra persona dijo hace 10 segundos para responder coherentemente. Si cuelgas y vuelves a llamar mañana para un tema nuevo, esa "memoria inmediata" se reinicia o pierde relevancia para el nuevo contexto.

Características clave

  • Alcance (Scope): Está limitada a un thread_id específico.
  • Mecanismo: Funciona mediante Checkpointers (como PostgresSaver o MemorySaver). Guarda el "estado" completo del grafo (mensajes, variables, stack) en cada paso.
  • Funcionalidad: Habilita características como Time Travel (viajar al pasado en la conversación), Human-in-the-loop (pausar para aprobación humana y reanudar) y recuperación ante fallos.

¿Por qué se guarda en base de datos si es "Short-term"?

Se persiste en disco (Postgres) para que la conversación no se pierda si el servidor se reinicia o si la interacción dura días (imagina un chat de soporte asíncrono). Sin embargo, conceptualmente sigue siendo "corto plazo" porque si inicias un nuevo thread_id (una nueva conversación), el agente empieza "en blanco", sin saber nada de lo ocurrido en el hilo anterior.

Ejemplo conceptual de uso:

# El usuario dice "Me llamo Juan" en el hilo 1
config_hilo_1 = {"configurable": {"thread_id": "1"}}
agente.invoke({"messages": ["Hola, me llamo Juan"]}, config=config_hilo_1)

# El usuario pregunta "¿Cómo me llamo?" en el MISMO hilo
# El agente responde "Juan" porque el estado persiste en este hilo.
agente.invoke({"messages": ["¿Cómo me llamo?"]}, config=config_hilo_1)

# Si cambiamos a un hilo nuevo, el agente NO sabe el nombre
config_hilo_2 = {"configurable": {"thread_id": "2"}}
agente.invoke({"messages": ["¿Cómo me llamo?"]}, config=config_hilo_2)
# Respuesta: "No lo sé" (La memoria short-term no cruza hilos)

Long-term Memory: Conocimiento semántico

La Long-term memory (memoria a largo plazo) está diseñada para retener información a través de múltiples conversaciones e hilos distintos. Es el equivalente a que tu amigo recuerde tu cumpleaños o tus gustos musicales semanas o meses después de la última vez que hablasteis, independientemente del tema de la conversación actual.

En arquitecturas modernas de agentes, esto se gestiona a menudo mediante Stores (como PostgresStore o bases de datos vectoriales). No guarda el "estado técnico" de la conversación paso a paso, sino hechos, resúmenes o documentos extraídos que son relevantes para el usuario o la entidad a largo plazo.

Características clave

  • Alcance (Scope): Transversal a múltiples thread_id. Generalmente asociado a un user_id o un contexto global.
  • Mecanismo: Utiliza una base de datos (Checkpointer guarda estado serializado; Store guarda datos semánticos o JSON consultable).
  • Funcionalidad: Permite la personalización profunda, aprendizaje continuo y la adaptación del agente al usuario a lo largo del tiempo.

La diferencia crítica:

Mientras que la memoria a corto plazo permite al agente seguir el hilo ahora, la memoria a largo plazo le permite aprender sobre ti para siempre.

Ejemplo conceptual de uso:

# El agente detecta un dato importante y lo guarda en el STORE (Long-term)
# Store asociado al usuario "user_123", independiente del hilo
store.put(namespace=("memoria", "user_123"), key="nombre", value="Juan")

# ... Pasan días, inicia una NUEVA conversación (hilo 99) ...

# El agente consulta el STORE al iniciar el hilo
nombre_usuario = store.get(namespace=("memoria", "user_123"), key="nombre")

config_hilo_99 = {"configurable": {"thread_id": "99"}}
agente.invoke({"messages": ["Hola de nuevo"]}, config=config_hilo_99)
# El agente puede responder: "Hola de nuevo, Juan" (Recuperado de Long-term)

Cuadro comparativo: ¿Cuándo usar cuál?

Guía para saber qué tipo de memoria implementar:

| Característica | Short-term Memory (Checkpointer) | Long-term Memory (Store) | | :--- | :--- | :--- | | Objetivo | Coherencia conversacional inmediata. | Personalización y aprendizaje histórico. | | Persistencia | Serialización del estado (variables, stack). | Datos semánticos, hechos, documentos. | | Ámbito | Aislado por thread_id. | Compartido por user_id (entre hilos). | | Si borras la DB | Se pierde la conversación actual. | Se pierde el "conocimiento" sobre el usuario. | | Ejemplo | "¿Qué te acabo de preguntar?" | "Recomiéndame un libro basado en mis gustos." |

Utiliza Short-term memory (Checkpointers) por defecto en casi todos los bots para que puedan mantener una conversación.

Añade Long-term memory solo si necesitas que tu agente "recuerde" cosas sobre el usuario (preferencias, datos personales, historial de hechos) cada vez que este inicie una nueva sesión desde cero.

Fuentes y referencias

Documentación oficial y recursos externos para profundizar en LangChain

Documentación oficial de LangChain
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, LangChain es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de LangChain

Explora más contenido relacionado con LangChain y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Comprender la diferencia entre short-term y long-term memory, entender el alcance y propósito de cada tipo de memoria, identificar cuándo usar checkpointers vs stores, y reconocer cómo ambos sistemas resuelven problemas arquitectónicos distintos.

Cursos que incluyen esta lección

Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje