如何构建超越 Openclaw 的记忆系统
我最近在写一个产品,叫做 Sage,它是基于 Openclaw 和 Workany 开源框架设计的一个 Agent 系统。做这件事的初衷很简单,我想要套壳做一个简洁、自用的工具。

前期,我花了大量的时间用于复刻 Openclaw 的底层能力,如 Channel、Cornjob。支持了各类模型厂商 API 和金融数据接口,有了一个金融 Agent 的雏形。

本来产品开发到这个阶段应该暂告一段落,但我发现了 Sage 的潜力不止于此。
AI 介入编程领域之后,普通人通过 Coding 设计产品的门槛大大降低。即便是完全不懂代码的小白,仅凭几段话也可以敲出一个页面或者应用 Demo。
如果用户使用的是 Top 级别的大语言模型,如 Claude 或者 GPT,在不涉及系统工程和复杂代码的前提下,他的水平大致接近于一名资深的开发工程师。
这个假设是成立的,我在一年前甚至无法写出一行代码,现在只靠模型就可以手搓出一个复杂的应用。这给予了我极大的信心,代码不再是想法落地的阻碍。
大模型弭平了开发水平上的差距,决定一款产品是否优秀,核心还是会回归到产品经理的核心素养,即审美、哲思、边界和洞察力。
对应到产品上,就是用户体验、产品价值观、需求增量克制,少即是多。
举个例子,在 Sage 中,一开始我做了非常「重」的同步功能,应用主页会展示同步状态、时间。我还加了一个实时同步逻辑,一个绿色或红色的标点会一直闪烁,对用户的干扰性特别强。
功能优化之后,同步状态只会展示在头像左上角,以三种颜色,绿、红、灰表达已同步、同步失败、同步异常三种状态,并显示最近一次同步时间。

如图所示,这就是一个简单的用户体验优化。一个绿色圆点,足以让用户建立 it work 的认知。
借助大模型,产品经理可以逐步承担不同岗位的职能。除了 UX,还可以完成前后端开发,设计测试用例验收。
产品设计也是一样,产品经理可以完全基于自己的哲学理念设计、开发功能。比方说 Openclaw 是一个开源框架,你可以改掉框架中所有不喜欢的功能。
以我的实践为例,我特别想改的功能是「记忆系统」,因为通用场景的 Memory 框架和金融场景并不兼容。
主流的 Agent 记忆框架下,模型需要自己读、理解并判断用户的哪些问题是重要的,缺少去重、演化的逻辑。
Openclaw 会把重点记入 Memory.md,作为上下文塞给模型;Hermes-Agent 依赖模型调用 memory.remember() 工具,模型自主决定是否需要调取用户记忆。

模型有概率会记错事实、不了解事实的重要性、混杂用户的新旧习惯,最严重的情况可能是基于过时的记忆给到用户完全错误的建议。
在金融场景下,这些错误是无法被接受的。
什么样的记忆能力称得上「好」?
为了回答这个问题,我开始思考人与人之间的沟通场景,得到了两个比较明确的结论。
首先,人与人之间的识别是被动进行的。 你在路上遇到一个陌生人,你只是瞥了一眼,即便没有任何交流,画像会在你记忆中自动建立。
举个例子,我在路上遇到一个阿伯,虽然只是瞥了一秒,我会发现他的头发快掉光,身子佝偻。
建立画像完全是下意识的动作,而非主动识别。
其次,沟通同时存在「短期记忆」和「长期记忆」。
短期记忆,指的是你对你面前这个人的认知框架,即 user.md。长期记忆指的是两个人之前的共同记忆和行为,通常需要思索才能得出回答,很适合做工具调用。
基于这两个结论,我对 Sage 的记忆功能进行了重构。
在对话形式的交互中,用户发送的每一句话都是画像迭代的过程。
识别、分析用户对话这个过程应该是自发、静默的,Agent 不应该查询记忆,也不需要思考记忆如何被使用。
在 Sage 中,我不会让用户等待 Agent 调用 memory 工具去查用户的习惯,而是每次对话开始前就带着用户画像。
Agent 对用户的认知来自单次会话上下文和画像注入,形成短期记忆。长期记忆则通过储存全量对话 message,通过 mcp_tools 调用来实现。

通过这个记忆架构,Agent 几乎拥有了关于用户的所有「know how」。
05
Sage 的记忆功框架以功能形式在应用展示,我把它叫做「画像」。
画像功能包含了两个部分,第一个是「你的明确声明」,记录了用户主动提到的硬性规则和关注对象。

第二个是「Sage 对你的观察」,基于用户过往历史对话进行蒸馏,形成结构化的画像。
我通过结构化的 Json 文件储存了用户的规则底线、风险偏好、能力水平、表达偏好、近期观点。

这样设计的初衷来自我对用户交互的一个看法——一个人的言论并不能反映出他真实的想法,动机往往不在文字表面。
蒸馏能够有效地找出用户真实意图,这个功能大致实现了用户提问模式识别。
这套记忆系统在对话中的表现也非常理想,达到了我的预期。
在对英伟达的分析中,Agent 命中了我历史对话中提到的「不碰高估值」的画像:

在对五粮液的分析中,Agent 提到了我关注的股票,贵州茅台:

蒸馏后的记忆除了身份层,还全量保留了用户所有的会话信息,并通过 memory_search 工具实现了精准召回。

虽然 Sage 还没有实现真正意义上的「数字分身」,但是它具备了非常强的潜力,在未来能够真正实现「实时世界连接、主动在场」。
夜雨聆风