mem0 — memoria de largo plazo para Agent de AI (guía 2026)
mem0 es una capa de memoria open source que extrae, almacena y recupera hechos específicos del usuario entre conversaciones. Conéctala junto a tus llamadas a OpenAI o Claude y tu chatbot deja de olvidar con quién está hablando.
Why mem0
mem0 resuelve un dolor concreto — meter todo el historial de chat en cada llamada al LLM quema Token y se rompe a partir de 50K mensajes. En su lugar, mem0 ejecuta un pequeño pipeline de extracción después de cada turno, extrae hechos duraderos ("el usuario prefiere TypeScript sobre Python"), los almacena con embeddings y recupera solo las top-k memorias relevantes en el siguiente prompt.
La arquitectura es minimalista a propósito. Una memoria es simplemente un hecho embebido más metadatos (user_id, agent_id, run_id, timestamp). Sin abstracciones de sesión, sin esquemas de grafo elaborados. Esa contención es la razón por la que mem0 llega a producción más rápido que la mayoría de las alternativas — puedes envolver un cliente OpenAI existente en ~10 líneas.
Lo que cedes: sin razonamiento temporal ("¿qué prefería el usuario el trimestre pasado?") y sin relaciones multi-salto ("amigo de un amigo"). Si eso importa, mira Graphiti o un setup híbrido. Para el 80 % de los casos de personalización y chatbot, mem0 es la opción por defecto en 2026.
Quick Start — 10 Lines with OpenAI
Ejecuta una vez — memory.add() envía los hechos al vector store en segundo plano. En el segundo turno, memory.search() los recupera automáticamente. Sin configuración externa, mem0 usa un Qdrant en memoria y embeddings de OpenAI. Para producción, cambia a un backend persistente (Qdrant, Chroma, PGVector) mediante un único diccionario de configuración.
# pip install mem0ai openai
import os
from openai import OpenAI
from mem0 import Memory
os.environ["OPENAI_API_KEY"] = "sk-..."
memory = Memory()
oai = OpenAI()
user_id = "william"
def chat(message: str) -> str:
# Pull relevant memories for this user
hits = memory.search(query=message, user_id=user_id, limit=5)
context = "\n".join(m["memory"] for m in hits["results"])
resp = oai.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"You know about the user:\n{context}"},
{"role": "user", "content": message},
],
)
answer = resp.choices[0].message.content
# Persist the new turn
memory.add([
{"role": "user", "content": message},
{"role": "assistant", "content": answer},
], user_id=user_id)
return answer
print(chat("I prefer TypeScript for frontend work"))
print(chat("What language should I use for my next React project?"))Características clave
Extracción automática de hechos
Una pasada del LLM tras cada turno identifica hechos duraderos que vale la pena recordar ("el usuario usa Mac", "prefiere respuestas concisas") e ignora el ruido conversacional. Sin etiquetado manual.
Búsqueda híbrida (vectorial + palabras clave)
Recupera memorias por similitud semántica más un boost de palabras clave exactas — captura tanto coincidencias "aproximadas" como menciones exactas a entidades como nombres de proyectos.
Ámbito por user / agent / run
Cada memoria lleva user_id, agent_id y run_id. El mismo vector store puede servir apps multi-tenant sin fugas — el alcance es una sola cláusula where.
Stores y LLMs intercambiables
Backends vectoriales: Qdrant, Chroma, Pinecone, PGVector, Weaviate. LLMs: OpenAI, Anthropic, Gemini, Ollama, AWS Bedrock. Se cambian por configuración, no por código.
Graph memory (opcional)
mem0 v0.1+ añade una capa de grafo Neo4j opcional que extrae relaciones entre entidades junto con los hechos — un punto intermedio antes de comprometerse con un sistema graph-first completo.
Cloud gestionado
mem0 Platform (de pago) se encarga del almacenamiento, el escalado y ofrece una UI web para inspeccionar lo que recuerda tu Agent. Mismo SDK, solo añade api_key.
mem0 vs other memory layers
Cifras extraídas de los benchmarks README y los hilos de issues de cada proyecto (T1 2026). Latencia de recuperación medida sobre un corpus de 10K memorias con embeddings de OpenAI.
| Storage Model | Retrieval Latency | LLM Support | License | Self-host | |
|---|---|---|---|---|---|
| mem0esta | Vector (+ optional graph) | ~40-80ms | OpenAI, Claude, Gemini, Ollama, Bedrock | Apache 2.0 | Yes |
| Zep | Hybrid (vector + summary + graph) | ~60-120ms | OpenAI, Claude, local via Ollama | Apache 2.0 (community) + managed | Yes |
| Letta (MemGPT) | Paged OS (working + archival) | ~100-200ms | OpenAI, Claude, local | Apache 2.0 | Yes |
| Graphiti | Temporal graph (Neo4j/FalkorDB) | ~80-150ms | OpenAI, Claude, Gemini | Apache 2.0 | Yes |
Casos de uso
01. Personalización de chatbot
Asistentes para consumidores (coach, tutor, compañero) que necesitan recordar preferencias, objetivos y contexto previo sin volver a preguntar. mem0 escala del MVP a millones de usuarios en un único cluster de Qdrant.
02. Copilotos de soporte al cliente
Agent de soporte que recuerdan el historial de cuenta de cada cliente, los tickets pasados y los detalles conocidos de su entorno — liberando al humano de releer transcripciones.
03. Agent de dev-tool con contexto largo
Asistentes de código que acumulan conocimiento de tu proyecto — "qué test runner", "qué config de lint", "estilo de import preferido" — a lo largo de muchas sesiones sin contaminar el prompt inmediato.
Precios y licencia
Open source: Apache 2.0 — gratis en self-host con tus propias claves de vector DB y LLM. GitHub.
mem0 Platform (gestionado): tier gratis para dev, luego facturación por uso. Los planes de pago añaden SSO, audit logs, embedders personalizados y SLAs de latencia garantizada. Consulta mem0.ai/pricing para los precios actuales.
Realidad del coste: el coste oculto es la llamada LLM de extracción después de cada turno. En gpt-4o-mini son ~0,0002 $ por turno de usuario — despreciable a 10K DAU, relevante a 10M. Cambia a un extractor más pequeño/local para escenarios de alto volumen.
Activos relacionados en TokRepo
Mem0 — Memory Layer for AI Applications
Add persistent, personalized memory to AI agents and assistants. Mem0 stores user preferences, past interactions, and learned context across sessions.
Mem0 — Memory Layer for AI Agents
Add persistent, personalized memory to any AI agent. Learns user preferences, adapts context, reduces tokens. 51K+ stars, used by 100K+ devs.
Mem0 — Long-Term Memory Layer for AI Agents
Add persistent memory to AI agents and assistants. Remembers user preferences, context, and past interactions across sessions.
Preguntas frecuentes
¿En qué se diferencia mem0 de una base vectorial?+
Una vector DB (Qdrant, Pinecone) almacena y busca embeddings — tú escribes toda la lógica de extracción, deduplicación y ámbito. mem0 es la capa de arriba: decide QUÉ recordar, cómo acotarlo y cómo recuperarlo. Internamente mem0 usa una vector DB, así que conservas las características de rendimiento esperadas.
¿mem0 funciona con Claude o solo con OpenAI?+
Sí — mem0 soporta Anthropic Claude (Opus, Sonnet, Haiku), Google Gemini, AWS Bedrock y modelos locales vía Ollama. Eliges un LLM para la extracción (puede ser pequeño/barato) y otro para tu app (puede ser el mejor disponible). Configura ambos con el constructor Memory(config={...}).
¿Puedo self-host mem0?+
Sí — bajo licencia Apache 2.0. Stack típico de self-host: SDK de mem0 + Qdrant (o Chroma/PGVector) + tu propia clave de LLM. ~15 minutos con Docker Compose siguiendo el quickstart oficial. La plataforma mem0 gestionada es opcional, solo necesaria si quieres la UI web y las funciones multi-org.
¿Cómo decide mem0 qué recordar?+
Tras cada turno de conversación, mem0 ejecuta una llamada LLM ligera con un prompt de extracción que aísla los hechos duraderos del usuario y filtra el ruido conversacional. Los hechos extraídos se deduplican contra las memorias existentes (similitud juzgada por un LLM) para no acabar con 20 copias de "el usuario prefiere TypeScript".
¿Puedo usar mem0 con LangChain o LlamaIndex?+
Sí. mem0 incluye adaptadores oficiales para LangChain (como clase Memory), LlamaIndex (como Node postprocessor) y CrewAI (como memoria compartida de Agent). Para el Claude Agent SDK o el Vercel AI SDK, usa directamente el SDK de Python/JS — es solo una llamada a función.
mem0 vs ChatGPT memory — ¿están relacionados?+
No — ChatGPT memory es una funcionalidad cerrada dentro del producto de consumo de OpenAI. mem0 es una librería open source que ejecutas en tu propia app, con tus propios modelos y almacenamiento. Usa ChatGPT memory si estás en chatgpt.com; usa mem0 si construyes tu propio producto.