Guide · 使用教程
Mem0 长期记忆 API 教程:写入、检索、纠错与删除实操
用 Python 和 Mem0 托管 API 给现有 Agent 增加跨会话记忆,按用户范围写入与检索,并演练更正、删除、隔离、成本监控和上线验收。
这篇教程会完成什么
用 Mem0 托管 Platform 给一个已有的 AI 助手加上跨会话记忆。我们只做五步:取得 API Key、按用户写入一条脱敏偏好、新会话检索、纠正旧记忆、演练删除。示例使用 Python,不需要先搭建向量数据库。最后会给出多租户、成本和上线验收检查。代码结构依据 Mem0 官方 Quickstart 与官方文档索引;这里没有代你运行真实账号,复制到生产前请用自己的测试环境复核 SDK 版本。
Mem0 只负责记忆层。最终回答和工具执行仍由你现有的模型、Agent 或后端控制。即使记忆里写着“用户曾同意”,也不能代替当前操作所需的业务授权。
开始前准备
准备 Python 3.10+、Mem0 Platform 账号和测试 API Key。先挑一个不涉及真实个人信息的案例,例如测试用户 demo-001 喜欢把项目摘要整理成三条要点。不要用病历、身份证、密钥、真实客户聊天作为第一条样本。若你的数据不能交给托管服务,先读开源部署文档并评估模型、数据库和运维要求,而不是把敏感数据上传后再讨论地域或删除。
安装依赖并把 Key 放在环境变量中:
python -m pip install mem0ai
export MEM0_API_KEY="你的测试密钥"
实际项目请使用密钥管理服务或受控环境变量,不要把 Key 写入仓库、提示词或日志。确认测试环境和正式环境使用不同 Key、不同用户 ID 命名空间。
第一步:写入有用而稳定的事实
下面的代码采用官方托管 SDK 的 MemoryClient。只传与后续任务有关的对话内容;在业务后端根据登录会话决定 user_id,不要让模型自己编造或从用户输入中直接取值。
import os
from mem0 import MemoryClient
client = MemoryClient(api_key=os.environ["MEM0_API_KEY"])
user_id = "demo-001"
messages = [
{"role": "user", "content": "以后给我的项目摘要请整理成三条要点。"},
{"role": "assistant", "content": "好的,后续项目摘要会优先用三条要点呈现。"},
]
result = client.add(messages, user_id=user_id)
print(result)
add 可能从一轮对话中提取多条记忆,也可能根据已有记忆决定更新或不存储。不要假设输入一条消息就一定得到一个固定的 memory ID。上线时记录写入来源、时间、用户授权状态和返回的结果,但日志里不要保存敏感原文。若同一请求重试,业务侧要设计去重或幂等策略。
第二步:在新会话检索
重新启动应用进程,仍用相同测试 user_id 搜索:
常见问题
- Mem0 Platform Quickstart 需要自己搭建向量数据库吗?
- 不需要。托管 Platform 管理服务端组件;开源自托管路线才需要按自己的架构配置模型、存储和运维。
- 为什么写入一条对话后会出现多条记忆?
- Mem0 会从消息中提取独立事实,输入消息数与记忆条数并非一一对应;应检查返回结果和后续检索。
- 搜索时必须传 user_id 过滤吗?
- 多用户应用必须确保每次搜索都被可信后端限定到当前用户及必要作用域,并用交叉用户样本验证隔离。
- 用户改口时直接再写一条可以吗?
- 可测试提炼与更新行为,但应确认旧记忆不再误导回答。需要精确修正时,先核对记忆 ID,再由授权流程调用更新或删除。
- 删除 Mem0 记忆后就完成所有数据删除了吗?
- 不一定。还要检查应用缓存、日志、导出、备份、最近对话与其他下游系统,并按保留政策复核。
- 免费档适合生产吗?
- 它适合小规模验证。生产前按每月 add 和 retrieval 次数、模型费用、失败重试及人工纠错计算完整成本。