关于 mem0
mem0 是面向 AI 应用的托管记忆层集成技能,提供 Python 和 TypeScript 客户端 SDK 的使用指引。它涵盖记忆的添加、检索、更新和删除,也说明了自托管开源版本的差异。
主要功能
- 01通过 API 管理用户记忆
- 02支持 Python 与 TypeScript 客户端
- 03添加、搜索、读取、更新和删除记忆
- 04提供异步 Python 客户端
- 05包含托管平台与开源版本说明
适用场景
- 01在对话生成前检索用户相关记忆
- 02将对话信息保存为用户记忆
- 03按用户筛选、更新或删除记忆
- 04接入托管平台或自托管版本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mem0ai/ mem0 --skill mem0安装后在 Claude Code 中输入/mem0确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEREADME.mdclient/differences.mdnode.mdpython.mdreferences/api-reference.mdarchitecture.mdfeatures.mdintegration-patterns.mdquickstart.mdsdk-guide.mduse-cases.mdscripts/mem0_doc_search.py详细介绍
Mem0 平台集成
技能图谱: 此技能属于 Mem0 技能图谱的一部分:
- mem0(此技能)——平台客户端 SDK + OSS(Python + TypeScript)
- mem0-cli(GitHub)——命令行界面
- mem0-vercel-ai-sdk(GitHub)——Vercel AI SDK 提供方
Mem0 是面向 AI 应用的托管式记忆层。它通过 API 存储、检索和管理用户记忆,无需部署基础设施。若要自托管,请参阅下方客户端参考中的 OSS 部分。
步骤 1:安装并进行身份验证
Python:
pip install mem0ai
export MEM0_API_KEY="m0-your-api-key"
TypeScript/JavaScript:
npm install mem0ai
export MEM0_API_KEY="m0-your-api-key"
在此获取 API 密钥:https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=skill-mem0
没有
MEM0_API_KEY? 运行mem0 init --agent --agent-caller <your-name> --json(先执行pip install mem0-cli或npm install -g @mem0/cli),将<your-name>替换为你的 Agent 标识(例如claude-code、cursor)。如果忘记传入--agent-caller,请在初始化后运行mem0 identify <your-name>。之后,人类用户可以通过mem0 init --email <your-email>认领。
步骤 2:初始化客户端
Python:
from mem0 import MemoryClient
client = MemoryClient(api_key="m0-xxx")
TypeScript:
import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: 'm0-xxx' });
对于异步 Python,请使用 AsyncMemoryClient。
步骤 3:核心操作
每种 Mem0 集成都遵循相同的模式:检索 → 生成 → 存储。
添加记忆
messages = [
{"role": "user", "content": "I'm a vegetarian and allergic to nuts."},
{"role": "assistant", "content": "Got it! I'll remember that."}
]
client.add(messages, user_id="alice")
搜索记忆
results = client.search("dietary preferences", filters={"user_id": "alice"})
for mem in results.get("results", []):
print(mem["memory"])
获取所有记忆
all_memories = client.get_all(filters={"user_id": "alice"})
更新记忆
client.update("memory-uuid", text="Updated: vegetarian, nut allergy, prefers organic")
删除记忆
client.delete("memory-uuid")
client.delete_all(user_id="alice") # delete all for a user
常见集成模式
from mem0 import MemoryClient
from openai import OpenAI
mem0 = MemoryClient()
openai = OpenAI()
def chat(user_input: str, user_id: str) -> str:
# 1. Retrieve relevant memories
memories = mem0.search(user_input, filters={"user_id": user_id})
context = "\n".join([m["memory"] for m in memories.get("results", [])])
# 2. Generate response with memory context
response = openai.chat.completions.create(
model="gpt-5-mini",
messages=[
{"role": "system", "content": f"User context:\n{context}"},
{"role": "user", "content": user_input},
]
)
reply = response.choices[0].message.content
# 3. Store interaction for future context
mem0.add(
[{"role": "user", "content": user_input}, {"role": "assistant", "content": reply}],
user_id=user_id
)
return reply
常见边界情况
- 搜索结果为空:
add()是异步的,会返回{"event_id": "...", "status": "PENDING"}(TS 客户端返回eventId)。事件状态变为SUCCEEDED后,记忆即可搜索(轮询GET /v1/event/{event_id}/,或等待几秒)。infer=False为同步操作。另外,请确认user_id完全匹配(区分大小写),并使用filters={"user_id": "..."}语法。 - 使用 user_id + agent_id 的 AND 筛选条件时结果为空: 实体是分别存储的。请改用
OR,或分别查询。 - 记忆重复: 同一数据不要混用
infer=True(默认值)和infer=False。请始终使用同一种模式。 - 导入错误: 使用托管平台时,请使用
from mem0 import MemoryClient(异步操作则使用AsyncMemoryClient)。from mem0 import Memory是自托管 OSS 类,不使用MEM0_API_KEY。 - v3 默认值(平台):
top_k=10,rerank=False。threshold是在分数组合前应用的服务端截断值,并非返回的score的下限(默认值和0.0返回的结果相同或几乎相同)。除非你主动传入这些参数,否则客户端不会发送它们。OSS 的Memory.search()默认top_k=20。请根据使用场景进行调整。
v2 兼容性
“v2”系列指 Python SDK 1.x 和 TypeScript SDK 2.x。如果你仍在使用该系列,请注意它与当前 SDK(Python 2.x、TypeScript 3.x)的以下差异:
- 实体 ID:
user_id/agent_id/run_id可以作为顶层 kwargs 传给search()和get_all()。现在这些参数必须放在filters中(放在顶层会报错) - 默认值(平台):
threshold=0.3,rerank=False。OSS:top_k=100、无 threshold、rerank=True - 图记忆:
enable_graph=True和relations已移除。实体关联已内置(OSS 请参阅 client/python.md)
实时文档搜索
如需查找参考资料之外的最新文档,请使用文档搜索工具:
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --query "topic"
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --page "/platform/features/graph-memory"
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --index
无需 API 密钥——可直接搜索 docs.mem0.ai。
客户端 SDK 参考
按语言分类的深入参考(平台 + OSS):
| 语言 | 文件 |
|---|---|
| Python(MemoryClient + AsyncMemoryClient + Memory OSS) | client/python.md |
| TypeScript/Node.js(MemoryClient + Memory OSS) | client/node.md |
| Python 与 TypeScript 的差异 | client/differences.md |
平台参考
如需深入了解,可按需查阅:
| 主题 | 文件 |
|---|---|
| 快速入门(Python、TS、cURL) | references/quickstart.md |
| SDK 指南(两种语言的所有方法) | references/sdk-guide.md |
| API 参考(端点、过滤器、对象架构) | references/api-reference.md |
| 架构(流水线、生命周期、范围限定、性能) | references/architecture.md |
| 平台功能(检索、图、类别、MCP 等) | references/features.md |
| 框架集成(LangChain、CrewAI、OpenAI Agents 等) | references/integration-patterns.md |
| 用例与示例(包含代码的真实场景模式) | references/use-cases.md |
相关 Mem0 技能
| 技能 | 适用场景 | 链接 |
|---|---|---|
| mem0-cli | 终端命令、脚本编写、CI/CD、Agent 工具循环 | 本地 / GitHub |
| mem0-vercel-ai-sdk | 提供自动记忆功能的 Vercel AI SDK 提供程序 | 本地 / GitHub |