Agent 有个老毛病:用完即忘。这轮踩过的坑,下轮原封不动再踩一遍。华为诺亚方舟实验室 8 月 3 日开源的 MindMemOS,想解决的不只是「怎样让 Agent 记住」,而是三个更硬的问题:记忆怎样带得走、系统怎样知道该记什么、记忆与 Skill 怎样一起进化。
先看成绩单:LoCoMo 超长对话基准 Overall Accuracy 达 94.03(对比 EverOS 93.05、Zep 85.22、Mem0 64.20);PersonaMem 个性化基准 70.63%;最有意思的是 SpreadsheetBench-Verified 上的 Skill 自演进——真实表格操作任务成功率从 51.3% 提到 57.2%。
Step 1:先理解它换掉了什么——「实体-属性-时间」三维记忆
传统记忆方案把记忆存成一组文本片段或向量块。问题在哪?看这个例子:
传统向量库里存着两条:
片段 A:「用户以前喜欢 X」
片段 B:「用户现在改用 Y」
检索时两条都命中,模型懵了——到底用哪个?
更糟的是它们被当成两段互不相干的文本。
MindMemOS 用三维坐标重建了这件事:
| 维度 | 含义 | 举例 |
|---|---|---|
| 实体 Entity | 持续存在的对象 | 人、项目、文件、工具、组织 |
| 属性 Property | 对象的事实、偏好、状态、高阶特征 | 「常用编辑器」 |
| 时间 Time | 属性何时成立、何时变化 | 「6 月前是 X,7 月起是 Y」 |
Step 2:选建模模式——MindVanilla 还是 MindSchema
系统提供两条互补的记忆生成路径,按你的场景选:
| MindVanilla | MindSchema | |
|---|---|---|
| 是否需要预定义模板 | 不需要 | 需要先定义实体与属性 |
| 输入 | 对话、文本、工具执行轨迹 | 同左,但会做结构化处理 |
| 处理流程 | 直接进统一记忆库 | 话题切分 → 属性级生成 → 等价实体融合 → 图结构合并 |
| 适合 | 开放域信息快速沉淀 | 垂直领域、长期个性化 |
| 实测参考 | LoCoMo 表现最强 | PersonaMem 70.63% 更优 |
Step 3:理解 Dreaming——让记忆离线「做梦整理」
记忆多了会互相打架:过时的、冲突的、冗余的堆在一起,检索质量反而下降。MindMemOS 的解法叫 Dreaming——离线巩固记忆、消解冲突。
MemoryAgentBench 的 FactConsolidation 测试结果:
Dreaming 压缩了 19.4% - 23.5% 的活跃记忆
同时把问答准确率最高提升 10.3 个百分点
—— 记得更少,答得更准
配套还有 Feedback 机制:挖掘用户隐式的纠正性反馈,有选择地强化或降级已有记忆,让记忆和用户真实意图对齐。
这条洞察值得单独记住:记忆系统的瓶颈往往不是「记得不够多」,而是「没人打扫」。大多数自研方案只做「加」不做「减」,跑几个月后检索质量断崖下跌,根因就在这。
Step 4:MindEvolve——从执行轨迹自动演进 Skill
MindMemOS 把 Skill 视为记忆系统的一个关键应用。系统提供云端 Skill 注册、版本链、同步和回滚能力,并通过统一的 Memory Add 接口收集真实任务轨迹。演进流程如下:
真实任务轨迹
↓ 提取目标、关键转折、工具使用、最终结果
↓ 聚合反复成功的策略 与 反复出现的失败
↓ 生成针对当前 SKILL.md 的修改计划
↓ 应用编辑,生成新的 Skill 版本
↓ 同步回后续任务
两种模式:
MindEvolve-Unsup 轨迹无评分 → 从成功路径与失败模式无监督演进
MindEvolve-Sup 轨迹有评分 → 强化高分行为,抑制低分错误
在 400 个真实表格操作任务的 SpreadsheetBench-Verified 上做三次重复实验:
| 方法 | 成功率 | Agent Tokens | 演进 Tokens |
|---|---|---|---|
| No-skill(不给指南) | 51.3% ± 0.8% | 10.4M | — |
| Init-skill(官方初始指南) | 48.0% ± 1.4% | 16.9M | — |
| MindEvolve-Unsup | 55.3% ± 0.9% | 27.3M | 5.8M |
| MindEvolve-Sup | 57.2% ± 2.4% | 25.2M | 5.5M |
注意那个反直觉的结果:Init-skill(48.0%)反而低于完全不给 skill 的 No-skill(51.3%)。给 Agent 一份操作指南并不必然带来提升——过时、冗余或不适配任务分布的规则,反而会制造干扰。真正有效的是从失败轨迹里自动长出来的「避错规则」(比如公式不重算、max_row 虚高、边读边写会移动行这类具体的坑)。静态文档化的经验,不如从真实失败中长出来的规则。
Step 5:接入方式与真实部署成本
架构上 MindMemOS 把 Agent 接入层、记忆算法层、记忆结构层解耦,接入方式很全:
开源代码提供的接入方式:
· FastAPI HTTP 接口
· Python SDK
· CLI
· Skills
· OpenClaw 插件
覆盖完整记忆生命周期操作:
add / search / update / delete / feedback / dreaming
项目地址:github.com/mindscale-noah/MindMemOS
项目官网:mindmemos.cn
许可证:MIT License(云服务已开放注册试用)
但要清醒看待成熟度。社区调研显示:项目 2026-06-30 发布,生命周期还短;插件生态目前实际只有 OpenClaw 一个,「主流框架接入」更多是愿景;部署成本不低——make dev 要起 5 个 Docker 服务(Qdrant 向量库 + Neo4j 图库 + Kafka 队列 + ClickHouse 等),还需自备 chat 模型和 embedding 模型,且 embedding 维度必须与向量库配置严格匹配。基准数据均来自官方报告,尚未见广泛独立复现。
Step 6:不部署也能拿走的三条改进
如果你已有自己的 Agent 记忆方案,与其推倒重来,不如按优先级搬这三条设计思想——它们不依赖 MindMemOS 的任何代码:
① 记忆条目加时间戳
让「演化」成为可能。没有时间维度,
你永远分不清「用户以前的偏好」和「现在的偏好」。
② 定期离线整理冲突条目(类 Dreaming)
把冲突消解从手动改成定时自动。
哪怕只是每晚跑一个 LLM 批处理去重合并,收益都很明显。
③ 从失败轨迹里长「避错规则」,而不是手写指南
把 Agent 跑失败的轨迹收集起来,
定期让模型总结成「不要做 X,因为会导致 Y」,
追加进 SKILL.md 并做版本管理。
选型结论速查
| 你的情况 | 建议 |
|---|---|
| 研究方向,想复现论文 | 完整部署,5 个 Docker 服务能接受 |
| 已有记忆方案,想改进 | 只搬 Step 6 的三条思想,不部署 |
| 生产环境要上长期记忆 | 再观察,等 Lite 模式落地 |
| 用 OpenClaw 生态 | 可以试官方插件,成本最低 |
| 需要 Skill 版本管理 | 思路值得抄,实现可以自己做轻量版 |