Agent 工程 · 2026-08-29
开源项目推荐|Mem0:给 Agent 加长期记忆前,先定义它该记住什么
Mem0 为 Agent 提供可配置的长期记忆层;上线前更重要的是定义写入、召回、更新、过期、用户纠正与删除边界。
开源项目推荐|Mem0:给 Agent 加长期记忆前,先定义它该记住什么
一个 Agent 能在当前对话中引用上文,不代表它拥有可靠的长期记忆。会话结束后,用户偏好、已经确认的事实和任务进度是否还能被正确找回,决定了助手是每次从零开始,还是能持续提供个性化体验。Mem0 是面向 AI 应用的开源记忆层,可作为应用内库或自托管服务运行,并允许配置模型、Embedding、向量存储和重排组件。真正的工程难点却不是“存进去”,而是定义哪些信息值得记、属于谁、何时删除。
会话历史不等于长期记忆
完整历史适合重放某次会话,却会随着轮次增长而消耗上下文,并夹杂寒暄、错误假设和已经过期的信息。长期记忆更像经过筛选的事实层:用户偏好深色界面、团队使用某种代码规范、某个项目已经选定技术栈。它应从对话中提取少量可复用事实,在新任务到来时按相关性检索,而不是把所有消息重新塞给模型。
DASP 这类持久会话协议解决会话状态、历史和在途输出恢复;Mem0 关注跨会话可检索的长期信息。两者可以配合,但不能相互替代。会话记录是审计与恢复依据,记忆是经过策略处理的派生数据,来源、保留期和删除方式都应单独管理。
先建立“允许记忆”的规则
适合自动记忆的内容通常稳定、低风险且能改善后续体验,例如语言偏好、常用输出格式、明确确认的项目事实。临时情绪、未经确认的推断、一次性验证码、密钥、医疗隐私和高敏感身份信息,不应因为模型判断“有用”就被长期保存。
写入前可以经过四步:判断是否值得跨会话复用;区分用户明确表达与模型推断;附上来源会话、时间和置信度;应用租户、用户、项目和保留期。对模型推断的内容应降低权重或等待用户确认,避免一句含糊表达变成长期事实。
检索比保存更容易出错
记忆系统通常通过语义、关键词或其他信号找回相关事实。相似并不等于适用:同一个用户在工作和个人场景的偏好可能不同,旧项目规则也不能污染新项目。检索必须先做租户、用户和项目等硬过滤,再做相关性排序;返回数量要小,并把来源与时间交给上层判断。
评测不能只问“是否找到了某条记忆”。还要覆盖不该召回的反例、互相冲突的新旧事实、用户改口、多人共享设备和删除后的残留。可以让另一套独立模型帮助判定召回内容是否支持当前回答,但最终应以人工标注、业务规则和用户纠正为准。
更新、过期和遗忘是核心能力
长期记忆会变化。用户从 Python 转向 Go,团队规范升级,地址和角色权限也会更新。系统要区分新增事实、替代旧值和并存的时间记录,不能简单把所有版本混在一起。每条记忆应有创建时间、最后确认时间、来源和状态;超过有效期后降低权重或删除。
用户还需要查看、更正和删除与自己相关的记忆。删除会话时是否同时删除派生记忆,应由清晰的数据策略决定并对用户说明。备份、向量索引和缓存也要进入删除范围,否则界面上“忘记了”,检索层仍可能返回旧内容。
模型与记忆层要解耦
Mem0 的开源方案允许配置 LLM、Embedding、向量库和重排器。应用应记录每条记忆由哪个提取策略产生,并为模型或 Prompt 升级建立回归集。更换模型不应让历史记忆失去所有权边界,也不应在没有评测的情况下批量重写旧事实。
AnyAIS 提供统一模型目录、调用入口与 DASP 会话能力,适合把“生成模型”“持久会话”和“长期记忆”拆成三个可独立演进的层。模型负责理解与回答,DASP 托管当前会话事实,Mem0 类记忆层只保存经过策略批准的跨会话信息。
长期记忆的价值不是让 Agent “什么都记得”,而是在正确身份与场景下,找回少量仍然有效、用户愿意被记住的信息。边界越清楚,个性化才越可信。
参考资料
- [Mem0 开源版概览](https://docs.mem0.ai/open-source/overview)
- [Mem0 GitHub 仓库](https://github.com/mem0ai/mem0)
- [DASP API Reference](https://www.anyais.com/dasp/reference)
如果你正在构建带长期记忆的 Agent,可以先在 AnyAIS 建立可恢复会话,再选择合适模型评估记忆提取与召回质量。
让会话与长期记忆各司其职
先建立可恢复会话,再评估哪些信息值得跨会话保存和召回。
阅读 DASP 参考