阿里的这个插件,让OpenClaw记忆提升了13个百分点
大家好,我是苍一,一个干了13年的后端开发,正在探索AI编程,从产品到开发的全生命周期最佳实践,如果您感兴趣,欢迎关注👇,看我如何自我革命。
AI Agent的记忆能力是一个被低估的工程难题。大语言模型在单轮对话中表现很好,但会话一结束,上下文全部清空。怎么让Agent跨会话地记住用户偏好、关键事实和历史决策?OpenClaw用Markdown文件构建了一套多层记忆体系,覆盖写入、演进、召回的完整链路。这套设计思路有独到之处,但全链路依赖LLM做决策,实际记忆稳定性并不理想。
本文从源码角度拆解OpenClaw记忆系统的每个环节,分析不确定性来源,并介绍RDSClaw记忆插件如何在这些薄弱点上做工程补强。
记忆系统的文件体系
OpenClaw的核心原则:所有持久状态都是磁盘上的Markdown文件。Agent身份、规则、记忆、工具配置,全部以明文.md文件存放在工作区目录下,每次会话启动时按优先级注入系统提示词。
关键文件分两类。第一类是每次会话必加载的:AGENTS.md定义工作区规则和安全边界,SOUL.md定义Agent个性,IDENTITY.md记录身份元数据,USER.md记录用户档案。第二类是动态记忆:MEMORY.md存储经过验证的长期记忆,memory/YYYY-MM-DD.md存储当天观察和临时笔记。MEMORY.md只在私聊主会话中加载,防止在群聊中泄露个人上下文。
记忆写入的两条路径
信息从对话进入记忆文件,主要通过两条路径。
第一条是Agent主动写入。对话中Agent可以随时调用write工具,把信息写入当日记忆文件。用户明确要求时Agent会执行,但更多时候靠Agent自主判断。没有结构化提取规则,没有强制输出模板,具体写什么、怎么写,全看LLM当次推理的理解。
第二条是Memory Flush自动写入。这是上下文压缩前的安全网。当token计数接近阈值,或会话转录文件过大,系统向LLM发送提取指令,要求保存值得持久化的信息。Flush期间write工具被限制为追加模式,只能写入当天日记忆文件。
两条路径的分工:主动写入是日常主力,但完全依赖Agent自觉;Flush是压缩前的最后机会,防止长对话中信息被裁剪丢失。
日记忆到长期记忆的晋升
默认配置下,日记忆晋升到MEMORY.md全靠Agent自己。AGENTS.md模板指导Agent在心跳期间定期回顾日记忆,挑选重要内容写入长期记忆。但这只是建议,没有机制保证晋升一定发生。
Dreaming梦境系统
Dreaming是OpenClaw的可选功能,默认关闭。启用后创建Cron任务,默认每天凌晨3点运行,将日记忆分三个阶段处理。
Light Sleep从多个信号源搜集候选记忆,用Jaccard相似度去重。问题是Jaccard只能识别字面重叠,”用户喜欢苹果”和”用户爱吃苹果”语义相同但可能被判不相似。
REM Sleep对候选做模式分析和置信度评分,保留高分候选。
Deep Sleep用六维加权评分(频率、相关性、多样性、时效性、巩固度、概念丰富度)决定哪些记忆能进入MEMORY.md。晋升门控要求综合分不低于0.80,合并信号计数不低于3,独立查询数或召回天数不少于3。
六维评分完全基于统计信号。一条对用户极其重要但只提过一次的信息,在统计评分中可能远低于反复出现但无关紧要的信息。这是纯统计方法的固有局限。
原生系统的不确定性在哪里
从写入到召回,整条链路上叠加了多个不确定性环节。
写入环节,是否写入、写什么、怎么写,完全由LLM单次推理决定。晋升环节不确定性更大,默认路径靠Agent自觉,可能长期不执行。Dreaming路径即使启用,晋升门控要求多次跨日信号积累,时效性强的信息等到信号攒够可能已经过时了。
召回环节受配置制约。有没有向量模型、Agent是否意识到需要检索、查询词是否精准,都影响最终效果。
这些不是设计缺陷,而是通用框架在兼容性和精度之间的权衡。但不确定性覆盖了完整链路,叠加效应会拉低体验。
RDSClaw记忆插件的工程补强
RDSClaw的openclaw-memory-alibaba-local插件针对上述不确定性做了针对性设计。核心思路:把记忆写入从”Agent自主判断”变成”每轮对话结束自动触发”,把晋升从”统计评分”变成”LLM语义整合”。
插件从对话中提取两类记忆:个人画像(用户偏好、个人详情、计划意图)和世界记忆(事件、实体、第三方信息)。
管线分两个阶段。第一阶段是提取,用LLM做结构化提取,配合强制规则约束输出格式。第二阶段是整合,对每条新事实,先向量检索已有记忆,再用LLM判定动作:INSERT、UPDATE、SKIP、DELETE。存储用的是LanceDB,同时支持向量ANN、BM25全文检索和标量索引。
与原生系统的关键差异:提取时机是每轮对话结束自动触发,整合决策有LLM参与语义判断,整个管线在当轮对话结束即完成,不需要等Cron调度。
自进化记忆管线
除了记住用户,RDSClaw还有一条自进化管线,从Assistant消息中提取AI自身的行为经验。三类提取目标:最佳实践(可复用的行为规则)、错误经验(应避免的模式)、行为诉求(用户对AI行为的期望)。
这让Agent不仅记住用户是谁,还能越用越好。
LoCoMo10评测对比
用LoCoMo10长对话记忆基准对比两套系统,覆盖事实查询、时间推理、逻辑推理和描述性问答四个类别。
事实查询,原生系统34.04%,RDSClaw插件62.54%,提升28.50个百分点。时间相关问题,原生57.01%,RDSClaw 67.07%。推理性问题,原生43.75%,RDSClaw 65.35%。描述性问答,原生68.37%,RDSClaw 78.18%。
总体准确率从58.18%提升到72.08%,在不更换底层LLM的前提下,仅通过记忆管线的工程优化实现了13.90个百分点的提升。
https://github.com/snap-research/locomo
如果嫌文章太长、怕后面走丢,可以关注下面的ima知识号,让这篇文章成为你的知识顾问,随时随地等候你的提问。
知识号中内容会以笔记形式分享,可以根据大家反馈和实测情况,实时更新,保证最新方案的稳定、可用。
【ima知识库】苍一AI编程

夜雨聆风