"Memory is limited — if you want to remember something, WRITE IT TO A FILE. ‘Mental notes’ don’t survive session restarts. Files do."
—— OpenClaw AGENTS.md 默认模板
AI Agent的“记忆”能力至关重要。当前大语言模型擅长单轮对话,但会话结束后上下文即消失。如何让Agent稳定记住用户偏好、关键决策及事件?OpenClaw通过Markdown文件构建多层记忆体系,覆盖记录、演进与召回全流程。然而,其依赖LLM弱约束决策的机制导致记忆效果不稳定。本文将从源码解析其记忆链路,分析关键不确定性环节,并介绍RDSClaw记忆插件的改进方案。该插件在LoCoMo10评测中提升效果达13.90%。
一、OpenClaw记忆系统全景
OpenClaw的核心设计原则是:所有持久状态均以磁盘Markdown文件形式存在。Agent身份、规则、记忆及工具配置均明文存储于工作区目录,会话启动时按优先级注入系统提示词。核心文件体系如下:
文件 |
用途 |
加载时机 |
|
工作区规则与安全边界 |
每次会话(最高优先级) |
|
Agent个性与沟通风格 |
每次会话 |
|
用户档案(背景/偏好等) |
每次会话 |
|
长期记忆 |
仅DM主会话 |
|
日记忆 |
当天+昨日自动加载 |
AGENTS.md等文件定义身份与规则,随会话加载并可动态更新;MEMORY.md与日记忆文件则通过专门管线管理动态记忆数据。
二、记忆写入:两条关键路径
2.1 Agent主动写入(LLM决策)
对话过程中,Agent可随时调用write工具将信息写入日记忆文件。触发场景包括:用户显式要求(如“记住我偏好TypeScript”),或Agent自主判断信息价值。此类写入完全依赖LLM临场决策,缺乏结构化提取规则与固定模板。
2.2 Memory Flush自动写入(LLM决策)
作为上下文压缩前的“安全网”,Memory Flush在达到token阈值(默认4000)或文件大小阈值(默认2MB)时触发。系统要求LLM将关键信息写入日记忆文件,此时write工具强制启用追加模式。但短对话因未触发压缩机制,可能无法激活此安全网。
路径关系
- 主动写入是日常主要方式,但依赖Agent自主判断
- Memory Flush是长对话前的补充保障
- 两者输出至同一日记忆文件,供后续处理
三、默认晋升机制:Agent主动整理
日记忆晋升至长期记忆的默认机制如下:
- 对话中直接写入:Agent可在主会话自由更新MEMORY.md,跳过日记忆环节
- 心跳维护:按AGENTS.md建议,定期(如每数日)通过heartbeat回顾日记忆并整理到MEMORY.md
该机制灵活但存在不确定性:晋升执行与否、整理质量均取决于LLM自主决策。
四、Dreaming梦境系统:三阶段异步演进
Dreaming为opt-in功能(默认禁用),通过Cron定时任务(默认凌晨3点)运行。
4.1 浅睡眠(Light Sleep)——摄取与去重
从日记忆文件、会话转录及短期存储中搜集候选片段,按Jaccard相似度(阈值0.9)去重后写入日记忆文件。全程不调用LLM,仅做机械去重,无法识别语义相似片段。
4.2 快速眼动睡眠(REM Sleep)——反射与候选真理
分析候选信号:统计概念标签频率计算主题强度;通过多维度公式计算置信度分数(含召回次数、概念丰富度等),保留≥0.45的候选真理。此阶段仍不依赖LLM语义判断。
4.3 深度睡眠(Deep Sleep)——六维评分与晋升
基于六维信号加权计算晋升分数:
信号 |
权重 |
关键含义 |
频率 |
0.24 |
总召回次数 |
相关性 |
0.30 |
平均质量分 |
时效性 |
0.15 |
指数衰减(半衰期14天) |
晋升需同时满足:综合分≥0.80、信号计数≥3、独立查询/天数≥3。达标后片段将重水合并追加到MEMORY.md。
五、记忆召回与反馈环
memory_search工具执行记忆检索:
- 搜索后端:支持SQLite+FTS(无embedding时降级为词法匹配)或QMD
- 信号记录:每次检索结果触发异步信号记账,影响六维评分
- 反馈机制:形成“越被检索→越易晋升”的正向循环(启用Dreaming时)
召回质量高度依赖embedding配置与查询精准度,无embedding时可能遗漏语义相关记忆。
六、原生系统的关键不确定性
记忆写入不可控
写入内容完全依赖LLM临场判断,无结构化规则。同一用户信息可能部分被记(如“记住名字但漏掉饮食偏好”)。
短对话保护缺失
Memory Flush仅触发于长对话临界点,短对话无触发机制,导致信息丢失。
晋升保障不足
- 默认路径:依赖Agent自主整理,长期可能遗漏重要信息
- Dreaming路径:需多次跨日信号积累才能通过门控(信号计数≥3),时效性信息可能失效
- 统计评分机制:六维信号无法体现语义重要性(如“对花生过敏”仅提一次难达标)
七、RDSClaw记忆插件:稳定性增强方案
RDSClaw的openclaw-memory-alibaba-local插件提供互补增强,聚焦两类提取:
- 个人画像:用户偏好/详情/计划,LLM CRUD整合,事实Evergreen免衰减
- 世界记忆:事件/实体信息,按策略淘汰
个人记忆管线
采用实时两阶段管线:
- 提取器:结构化Prompt强制约束+LLM提取
- 整合器:向量检索匹配现有记忆→LLM决策CRUD动作(INSERT/UPDATE/SKIP/DELETE)
核心优势
维度 |
OpenClaw原生 |
插件改进 |
提取时机 |
被动触发(依赖Agent判断/阈值) |
主动触发(每轮对话结束即时处理) |
去重机制 |
Jaccard字面相似度 |
向量近似+LLM语义整合 |
演进周期 |
数天 |
分钟级(当轮完成) |
插件针对原生系统五大弱点提供解决方案:结构化约束替代主观写入、钩子机制覆盖短对话、实时整合消除Cron延迟、LLM深度参与去重与矛盾处理。
八、自进化记忆管线:Agent经验沉淀
插件新增从Assistant消息提取能力,聚焦三类AI经验:
类别 |
示例 |
最佳实践 |
"上线前必须重启服务使代码生效" |
错误经验 |
"删除前必须确认,避免直接执行" |
通过LLM结构化提取或正则匹配获取经验,向量去重后存储。召回阶段与个人记忆合并注入上下文,推动Agent越用越智能。
九、LoCoMo10评测结果
LoCoMo是主流AI记忆能力基准测试,涵盖事实查询、时间推理、逻辑推理及描述性问答四类任务。实测数据如下:
类别 |
OpenClaw原生 |
RDSClaw插件 |
提升幅度 |
事实查询 |
34.04% |
62.54% |
+28.50% |
推理性问题 |
43.75% |
65.35% |
+21.60% |
总体准确率 |
58.18% |
72.08% |
+13.90% |
事实查询与推理性任务显著提升,验证了结构化提取与实时整合适用于关键用户事实保存及多跳推理场景。
十、推荐实践
openclaw-memory-alibaba-local插件已集成于RDSClaw,具备以下特性:
- 零配置启动:LLM提取与向量索引开箱即用
- 本地+远程双模式:支持离线GGUF或云端API
- 多通道覆盖:统一管理钉钉、飞书等平台对话记忆
- 安全保障:记忆数据标记为“不可信历史”,敏感信息硬编码排除

