最近在关注 AI Agent 的长期记忆问题,发现了一个叫 Mem0 的项目,前身是 EmbedChain,YC 孵化,MIT 许可,GitHub 上已经有 15K+ Star。它做的就是把记忆层从 LLM 里解耦出来,让 AI 能够记住用户的偏好、历史对话,甚至根据交互不断调整记忆。这比单纯靠 RAG 从静态文档里检索要更进一步——Mem0 强调实体关系、信息的时效性和记忆的动态衰减,说白了就是让 AI 显得更「懂你」。
我试着跑了一下它的 Python SDK,整体上上手很快,API 也很直白。这里把关键步骤和代码记下来,供有需要的朋友参考。
安装和初始化
用 pip 安装即可:
pip install mem0ai
然后初始化,需要设置 OpenAI 的 API key(也可以接其他 LLM,后面会提):
import os
from mem0 import Memory
os.environ["OPENAI_API_KEY"] = "sk-xxx"
m = Memory()
基本的记忆增删改查
Mem0 提供了对记忆的完整操作,示例如下:
# 添加一条记忆,user_id 用于隔离不同用户,metadata 可以自己打标签
result = m.add(
"I am working on improving my tennis skills. Suggest some online courses.",
user_id="alice",
metadata={"category": "hobbies"}
)
print(result)
# 输出示例:Created memory: Improving her tennis skills. Looking for online suggestions.
# 获取该用户的所有记忆
all_memories = m.get_all(user_id="alice")
print(all_memories)
# 语义搜索记忆
related = m.search(query="What are Alice's hobbies?", user_id="alice")
print(related)
# 更新指定记忆(需要记忆 ID)
m.update(memory_id="m1", data="Likes to play tennis on weekends")
# 查看某条记忆的变更历史
history = m.history(memory_id="m1")
print(history)
这里比较有意思的是 metadata,它可以算是用户自定义的一个 schema,让背后的 LLM 从非结构化输入里提取结构化的记忆点。比如上面那条,Mem0 会自己判断出 Alice 的爱好是网球,并把这条信息存下来。
如果在生产环境,我们需要持久化向量存储。Mem0 支持 Qdrant、Chroma 等,配置起来也很简单:
config = {
"vector_store": {
: ,
: {
: ,
: ,
}
},
}
m = Memory.from_config(config)


