进阶 📋 6 个步骤 第 238 / 455 篇

华为诺亚开源 MindMemOS 实战:让记忆和 Skill 一起进化,表格任务成功率 51.3% → 57.2%

MindMemOS 用「实体-属性-时间」三维结构重建 Agent 记忆,配合 Dreaming 离线巩固与 MindEvolve 从真实轨迹自动演进 Skill。LoCoMo 94.03 分、SpreadsheetBench 提升 5.9 个百分点。本教程拆解四层设计与真实部署成本,并给出不部署也能落地的三条改进。

2026.08.06· 17 分钟阅读· 约 2073 字· 🧠 MindMemOS / 🔬 华为诺亚

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%

🧠 本教程适合:正在自研 Agent 记忆系统、或苦于 Agent 反复犯同样错误的开发者。文末有「不部署也能用」的方案,这可能比部署本身更实用。

Step 1:先理解它换掉了什么——「实体-属性-时间」三维记忆

1 从一堆文本块,到一张有时间轴的世界地图

传统记忆方案把记忆存成一组文本片段或向量块。问题在哪?看这个例子:

传统向量库里存着两条:
  片段 A:「用户以前喜欢 X」
  片段 B:「用户现在改用 Y」

检索时两条都命中,模型懵了——到底用哪个?
更糟的是它们被当成两段互不相干的文本。

MindMemOS 用三维坐标重建了这件事:

维度含义举例
实体 Entity持续存在的对象人、项目、文件、工具、组织
属性 Property对象的事实、偏好、状态、高阶特征「常用编辑器」
时间 Time属性何时成立、何时变化「6 月前是 X,7 月起是 Y」
🔑 关键差别:上面那两条不再是两段孤立文本,而是同一实体、同一属性在时间轴上的两个取值。实体之间能建立语义关联,属性演变可被完整追踪。这是「结构化建模」带来的可测量提升,不只是看起来整齐。

Step 2:选建模模式——MindVanilla 还是 MindSchema

2 开放域快进 vs 领域精建模

系统提供两条互补的记忆生成路径,按你的场景选:

MindVanillaMindSchema
是否需要预定义模板不需要需要先定义实体与属性
输入对话、文本、工具执行轨迹同左,但会做结构化处理
处理流程直接进统一记忆库话题切分 → 属性级生成 → 等价实体融合 → 图结构合并
适合开放域信息快速沉淀垂直领域、长期个性化
实测参考LoCoMo 表现最强PersonaMem 70.63% 更优
💡 选型经验:不确定用户会聊什么、信息形态杂 → MindVanilla;业务边界清楚(比如只做 CRM 或只做代码库)→ MindSchema,先花时间定义好实体清单,收益会在长期个性化上体现出来。

Step 3:理解 Dreaming——让记忆离线「做梦整理」

3 压缩两成记忆,准确率反而涨了 10 个点

记忆多了会互相打架:过时的、冲突的、冗余的堆在一起,检索质量反而下降。MindMemOS 的解法叫 Dreaming——离线巩固记忆、消解冲突。

MemoryAgentBench 的 FactConsolidation 测试结果:

  Dreaming 压缩了 19.4% - 23.5% 的活跃记忆
  同时把问答准确率最高提升 10.3 个百分点

  —— 记得更少,答得更准

配套还有 Feedback 机制:挖掘用户隐式的纠正性反馈,有选择地强化或降级已有记忆,让记忆和用户真实意图对齐。

这条洞察值得单独记住:记忆系统的瓶颈往往不是「记得不够多」,而是「没人打扫」。大多数自研方案只做「加」不做「减」,跑几个月后检索质量断崖下跌,根因就在这。

Step 4:MindEvolve——从执行轨迹自动演进 Skill

4 整个项目最有价值的部分

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-Unsup55.3% ± 0.9%27.3M5.8M
MindEvolve-Sup57.2% ± 2.4%25.2M5.5M

注意那个反直觉的结果:Init-skill(48.0%)反而低于完全不给 skill 的 No-skill(51.3%)。给 Agent 一份操作指南并不必然带来提升——过时、冗余或不适配任务分布的规则,反而会制造干扰。真正有效的是从失败轨迹里自动长出来的「避错规则」(比如公式不重算、max_row 虚高、边读边写会移动行这类具体的坑)。静态文档化的经验,不如从真实失败中长出来的规则。

Step 5:接入方式与真实部署成本

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:不部署也能拿走的三条改进

6 推荐方案:借鉴思想,不碰部署

如果你已有自己的 Agent 记忆方案,与其推倒重来,不如按优先级搬这三条设计思想——它们不依赖 MindMemOS 的任何代码:

① 记忆条目加时间戳
   让「演化」成为可能。没有时间维度,
   你永远分不清「用户以前的偏好」和「现在的偏好」。

② 定期离线整理冲突条目(类 Dreaming)
   把冲突消解从手动改成定时自动。
   哪怕只是每晚跑一个 LLM 批处理去重合并,收益都很明显。

③ 从失败轨迹里长「避错规则」,而不是手写指南
   把 Agent 跑失败的轨迹收集起来,
   定期让模型总结成「不要做 X,因为会导致 Y」,
   追加进 SKILL.md 并做版本管理。
📌 第三条是含金量最高的。SpreadsheetBench 的数据已经证明:人工手写的初始指南可能是负收益,而从真实失败中提炼的避错规则是正收益。这条结论适用于任何 Agent 系统,跟你用不用 MindMemOS 无关。

选型结论速查

你的情况建议
研究方向,想复现论文完整部署,5 个 Docker 服务能接受
已有记忆方案,想改进只搬 Step 6 的三条思想,不部署
生产环境要上长期记忆再观察,等 Lite 模式落地
用 OpenClaw 生态可以试官方插件,成本最低
需要 Skill 版本管理思路值得抄,实现可以自己做轻量版
🔭 官方 Roadmap 里还有三件事值得盯:Lite 模式(解耦数据库后端与异步任务,支持 in-memory 调用,大幅降低部署门槛)、Skills 系统(治理冗余 skill、按真实使用演化、自动合成新 skill)、文件系统记忆(把散落在本地文件与项目产物中的知识结构化)。第一项落地后,这个项目的实用性会有质的变化。
← 返回教程中心