根因就一个:记忆丢失。安全指令只存在对话上下文里,压缩一来就没了。如果它存在一个独立于对话的持久化记忆层里,这件事根本不会发生。
ePro-Memory 就是干这个的——一个 OpenClaw 插件,开源,本地运行,数据不离开你的电脑。它要解决的核心问题是:给 Agent 一个不会被上下文压缩吞掉的长期记忆。
记忆不是一锅粥,分类才有意义
很多人一听"AI 记忆",第一反应是搞个大数据库,什么都往里塞。ePro 不是这么干的。
它把记忆分成六个类别:
关于用户的四类:
- 个人信息
- 偏好习惯
- 相关事物
- 发生过的事
关于 OpenClaw 自身工作经验的两类:
- 具体案例
- 通用方法论
拿 Summer Yue 的事故举例。如果她的 OpenClaw 装了 ePro,第一次批量删邮件的教训会被归类为案例:"未经确认直接执行批量删除,导致 200+ 封邮件丢失 → 不可逆操作前必须获取用户确认"。
后续 AI 在文件管理、数据清理上踩了类似的坑,ePro 会把这些案例蒸馏成一条通用方法论:"执行不可逆操作前,先从记忆中加载用户的安全偏好。"
从单次教训到通用规则,这就是 ePro 让 OpenClaw 越用越靠谱的核心机制。"确认后再执行"这条偏好会存入持久化记忆,上下文压缩压的是对话历史,不是 ePro 的记忆库。下次 Agent 启动任务时,ePro 自动注入这条偏好。指令不丢,邮件不删。
分类去重和三层内容结构
分类的好处在去重时体现得最明显。ePro 的去重只在同类别内进行。
你告诉 OpenClaw "回复邮件用中文"——这是偏好记忆。你告诉它"上次用英文回复了客户邮件导致对方误解"——这是事件记忆。两条都和邮件语言有关,但性质完全不同,不该合并。分类内去重让这种误判大幅减少。
同时 ePro 还有一个设计:L0/L1/L2 三层内容结构。
- L0:一句话摘要,像书名
- L1:结构化概要,像目录
- L2:完整记录,像全文
OpenClaw 工作时默认只看 L0,觉得相关才翻 L1,真正需要细节才读 L2。省 token,省钱。说实话这个我用了才知道好在哪——你统计过因为 Agent "失忆"而重复解释同样的事情,一周浪费了多少时间和 token 费用吗?
社区里的其他方案对比
OpenClaw 社区里已经有好几个记忆方案,各有侧重:
- ClawVault:用 Markdown 文件存记忆,人类可以直接打开编辑,分了 17 个固定类别。但没有 L0/L1/L2 分层。
- openclaw-memory:用 SQLite + Qdrant + PostgreSQL,主打跨 Agent 共享记忆。但没有分类体系,也没有去重。
- Memory Guardian:同样用 Markdown 文件,解决一个更具体的问题——防止 Agent 忘记去查记忆。但本身没有搜索能力。
ePro 和它们的根本差异在于结构化经验积累:六类分类给记忆划了语义边界,L0/L1/L2 让检索有层次,分类内去重让记忆库不会越用越臃肿。这三个能力组合在一起,目前社区里没有第二个方案做到。
核心算法来自字节跳动的 OpenViking
ePro 的核心算法来自字节跳动的 OpenViking——目前最实用的 Agent 记忆分类体系。前面讲的六类分类、三层结构、两阶段去重,都是 OpenViking 的设计,不是拍脑袋想的,是字节团队在大量 Agent 对话中打磨出来的。
但 OpenViking 是字节内部工具,Python 写的,依赖 VikingDB(字节自己的向量数据库,不对外开放),普通开发者装不了、用不了。
ePro 把核心引擎拆出来,做了三件事:
让它能跑。 Python 换成 TypeScript,VikingDB 换成 LanceDB。LanceDB 是嵌入式数据库,零配置,数据存在本地。
让它能扛。 OpenViking 跑在字节内部受控环境里,不用担心恶意输入。ePro 在入口处拦截恶意注入,写锁串行化防止多进程同时写入损坏数据,所有数字参数都有合法范围检查。
让它能打。 LLM 返回的格式经常不规范,ePro 做了三级容错解析器:先试标准 JSON,不行就从 Markdown 代码块里提取,再不行就用平衡括号算法硬抠。记忆内容注入 AI 对话时,ePro 会清洗可能干扰 AI 指令理解的特殊标记,防止记忆反过来操纵 AI 行为。每条记忆被 AI 召回时会计数,用得越多排序越靠前,为智能排序打基础。
代码量对比:OpenViking 约 900 行,ePro 1397 行,多出 55%。多出来的几乎全是安全、测试和健壮性。113 个测试覆盖从注入防护到数据库读写。
值得一试
ePro Memory 是 OpenClaw 插件,Apache 2.0 协议,AI 推理可以接 OpenAI,也可以接任何兼容服务,包括本地模型。对于每天都在用 Agent 干活的人来说,我当时就踩过这个雷——Agent 反复忘记你的偏好,你反复解释,token 费用和时间都在无声地流走。一个持久化记忆层不是锦上添花,是刚需。去 GitHub 搜 ePro Memory,装上试试,成本为零。