AI Memory
mem0 — Long-term Memory for AI Agents (2026 Guide) logo

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 ModelRetrieval LatencyLLM SupportLicenseSelf-host
mem0estaVector (+ optional graph)~40-80msOpenAI, Claude, Gemini, Ollama, BedrockApache 2.0Yes
ZepHybrid (vector + summary + graph)~60-120msOpenAI, Claude, local via OllamaApache 2.0 (community) + managedYes
Letta (MemGPT)Paged OS (working + archival)~100-200msOpenAI, Claude, localApache 2.0Yes
GraphitiTemporal graph (Neo4j/FalkorDB)~80-150msOpenAI, Claude, GeminiApache 2.0Yes

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

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.

Comparar alternativas