记忆与状态31k+ · since 2024 · Python / TypeScript

mem0

by mem0ai

Universal memory layer · three lines to add

YC 投资的即插即用记忆层,不要求你重构 agent 架构,任何框架三行接入。

主要内容

mem0 的哲学和 Letta 相反:Letta 让你按它的范式重写 agent,mem0 让你在现有 agent 上加一层。自动从对话中抽取事实 / 偏好 / 关系,存到向量 + 图混合存储,下次对话相关记忆自动召回。AWS Agent SDK 选它作独家记忆 provider,足以说明生态认可度。托管版和自部署版都有。核心哲学是:记忆不应该是一个架构决策,而是像 log / cache 一样的基础设施能力,随时加,随时换。

核心关注点

别让"加记忆"变成重写系统。已有 agent 上三行代码就能用。

接入成本极低框架无关托管 / 自部署双版本多 agent 共享自动事实抽取

安装与 hello world

$ pip install mem0ai
hello-world.py
from mem0 import Memory
 
m = Memory()
 
# 添加记忆(自动从对话抽取事实)
m.add(
    messages=[
        {"role": "user", "content": "我对花生过敏,最爱吃川菜"},
        {"role": "assistant", "content": "记下了"},
    ],
    user_id="alice",
)
 
# 后续对话时检索
memories = m.search(
    query="有什么晚餐推荐?",
    user_id="alice",
    limit=3,
)
# 返回: [{"memory": "对花生过敏", "score": 0.91}, ...]
 
# 把 memories 注入到已有 agent 的 system prompt
context = "\n".join(m["memory"] for m in memories["results"])
system = f"用户记忆:\n{context}\n请基于这些偏好回答。"

关键 API / 概念

Memory.add(messages, user_id)

自动从对话中抽取事实,用 LLM 做 extraction + deduplication。

Memory.search(query, user_id)

向量 + 图混合检索,返回带分数的 memory 列表。

user_id / agent_id / run_id 三级维度

记忆可以按用户、agent、会话隔离或共享。

托管版

app.mem0.ai 提供 hosted 版本,免维护存储层。

适用场景

01

给现有 agent 补记忆

客服 bot / 文档助手 / 编程副驾驶,想让它记住用户偏好,不想动核心逻辑。

02

多 agent 共享用户画像

同一个用户被 5 个不同 agent 服务,记忆通过 mem0 集中,画像一致。

03

B2B SaaS 里的记忆能力

你的产品是 agent 平台,想让终端用户"训练他们自己的 agent",mem0 是基础层。

什么时候别用

  • 记忆是产品核心差异化:考虑 Letta 的深度架构方案
  • 对事实召回精度要求极高:自己做检索更可控

vs 相邻选项

vs Letta

mem0 是记忆"即插件",Letta 是记忆"即架构"。前者快,后者深。

vs Zep

Zep 更强调对话摘要和 temporal graph,mem0 更通用、接入更快。