C
Contextología
Agentes IA

Cómo implementar memoria en un agente de IA

8 de mayo de 2025· 4 min read

Un agente sin memoria es un agente que empieza de cero en cada conversación. No sabe quién eres, qué has pedido antes ni qué errores ha cometido.

La memoria lo cambia todo. Pero implementarla mal es peor que no tenerla.

Los 4 tipos de memoria en agentes

1. Memoria en el contexto (In-context)

La más simple: metes el historial de conversación directamente en el prompt.

[System prompt]
[Historial de mensajes anteriores]
[Mensaje actual del usuario]

Ventajas: Cero infraestructura extra. El modelo tiene acceso directo a todo.

Limitaciones: Tiene un límite físico (la context window). A medida que la conversación crece, o recortas el historial o te quedas sin espacio.

Útil para: conversaciones cortas a medianas donde la continuidad dentro de la sesión es suficiente.

2. Memoria externa (Base de datos)

Guardas información en una base de datos y la recuperas cuando es relevante.

Usuario: "¿Cuándo es mi próxima reunión?"
Agente: [Busca en BD] → "Tienes reunión el martes a las 10."

La BD puede ser SQL para datos estructurados o vectorial para recuperación semántica.

Ventajas: Escala ilimitado. Persiste entre sesiones.

Limitaciones: Requiere decidir qué guardar, cómo indexarlo y cuándo recuperarlo. Más infraestructura.

Útil para: agentes con usuarios recurrentes, historiales largos, datos de negocio.

3. Memoria semántica (Vectorial)

Conviertes fragmentos de información en vectores y los recuperas por similitud semántica.

Guardas: "El usuario prefiere respuestas cortas y sin tecnicismos"
Cuando el usuario escribe: "explícame qué es RAG"
Recuperas: la preferencia de estilo → la aplicas en la respuesta

Ventajas: No necesitas saber exactamente qué buscar. El sistema encuentra lo relevante.

Limitaciones: La calidad depende de qué tan bien estructures los fragmentos al guardarlos.

Útil para: preferencias de usuario, conocimiento de dominio, documentación larga.

4. Memoria episódica (Resúmenes)

En lugar de guardar el historial completo, guardas resúmenes periódicos.

Después de 20 mensajes: "El usuario está construyendo un agente de soporte.
Ha descartado LangChain. Prefiere Python puro. Tiene experiencia en ML."

Este resumen reemplaza al historial completo y ocupa mucho menos espacio.

Ventajas: Mantienes el contexto esencial sin saturar la ventana.

Limitaciones: Pierdes los detalles específicos. El modelo de resumen puede omitir algo importante.

Útil para: conversaciones largas donde lo que importa es el estado actual, no el historial exacto.

Cuándo usar cada tipo

| Situación | Tipo recomendado | |---|---| | Chatbot de soporte (sesión única) | In-context | | Asistente personal (vuelve cada día) | Externa + episódica | | Agente de búsqueda en documentación | Semántica | | Conversación muy larga (>50 turnos) | Episódica | | Datos estructurados del usuario | Externa (SQL) |

En la práctica, los agentes robustos combinan varios tipos.

Implementación práctica: el patrón más común

El patrón más usado en agentes de producción combina tres capas:

1. Short-term: últimos N mensajes en contexto
2. Long-term: resumen de sesiones anteriores recuperado al inicio
3. Semantic: fragmentos de preferencias/datos relevantes para el turno actual

Al inicio de cada conversación:

  1. Recuperas el resumen de sesiones anteriores → va al system prompt
  2. Recuperas fragmentos semánticos relevantes al tema → van al contexto
  3. Durante la conversación: historial reciente en contexto
  4. Al final: generas nuevo resumen, guardas fragmentos importantes

Qué guardar y qué no

Sí guardar:

  • Preferencias explícitas del usuario
  • Decisiones tomadas y su razonamiento
  • Información del perfil (rol, empresa, nivel técnico)
  • Errores pasados y sus soluciones

No guardar:

  • Cada mensaje del historial (satura)
  • Información transitoria ("¿qué hora es?")
  • Datos sensibles sin cifrar
  • Todo por defecto (sé selectivo)

El problema del "qué guardar"

El mayor error en implementación de memoria es guardar demasiado sin criterio.

Una buena heurística: solo guarda lo que cambiaría cómo el agente responde en el futuro. Si la información no influye en respuestas futuras, no tiene valor almacenarla.

Para decidir qué extraer de una conversación, puedes usar un LLM con un prompt específico:

Analiza esta conversación y extrae solo la información que sería útil
recordar en conversaciones futuras con este usuario:
- Preferencias explícitas
- Contexto profesional relevante
- Decisiones importantes tomadas
- Información del proyecto

Conversación: [...]

Gestión del olvido

La memoria infinita también es un problema. Datos viejos pueden contaminar respuestas:

  • Proyectos abandonados que siguen influyendo
  • Preferencias que han cambiado
  • Información desactualizada

Implementa TTL (time-to-live) en tus entradas de memoria, o permite al usuario resetear explícitamente su perfil.

Herramientas

  • mem0 — librería open source para memoria persistente en agentes
  • LangChain Memory — varios tipos de memoria integrados
  • Zep — memoria de largo plazo para agentes, API lista para producción
  • Supabase + pgvector — si ya usas Supabase, añades memoria vectorial fácilmente

Pon en práctica lo que has aprendido

Canvas de diseño de agente

Diseña la arquitectura de memoria de tu agente en el canvas.

Abrir herramienta gratuita →

Recibe lo mejor de Contextología

Diseño de contexto, agentes y workflows de IA directamente en tu correo.