打破记忆重置黑洞:记忆系统架构
AI 如何不患“健忘症”?
传统网页版 ChatGPT 或常规聊天机器人的一个致命问题是:上下文窗口随着 Token 的超载或刷新网页就会飞速清空瓦解。 你不可能每天早起第一件事都是重新训练机器猫认识大雄。如果打算让 OpenClaw 做长期服役的个人助理,它需要一个不依赖大厂临时 Context 缓存窗口的系统化持久“大脑”。
这就如同我们需要将内存(RAM)中的数据定时写回硬盘(SSD),OpenClaw 构建了其独特的 分层长/短记忆文件系统。
记忆分层储蓄机制的核心原理
在工作区(~/.openclaw/workspace/)的布局结构中,记忆并非是一个复杂的 SQL 数据库,而是极致贯彻了「对大语言模型天然亲和」的 Markdown 系列文本池。
1. 长期核心记忆核:MEMORY.md
这不是日记的堆叠集装箱。它是 AI 经过高度归纳缩写后的、认为永远不能忘记的事实库。
这相当于 Agent 自己的备忘录,内容结构通常极简并不断被“覆盖更新”:
- 既定事实归纳:“老大喜欢喝冰美式,乳糖不耐受不能配牛奶”。
- 过往重大变故记录:“项目 X 的服务器密码由于 2 月被黑,已经全部换成采用 ssh 无密钥交互”。
每当有新的关键要素达成结论时,Agent 就有权调用其底层工具操作这份文件。更为重要的是,在每一个新鲜对话进程初次开启时,这个文件的核心要义将被打包并入初始化的底层 System Prompt 发给大厂模型。这就保证基础认知的无缝接力。
2. 短期碎片流水账:memory/YYYY-MM-DD.md
日常中的大多数沟通并没资格入住重头记忆里。为了应付那些日常连贯的“琐事”。Agent 会每日翻篇一个按照日期标注的 .md 文件记录工作日常。
例如在 2026-04-07.md 下:
- 【10:00】被指派了分析
util.js文件中的正则。 - 【14:30】任务停滞遇到 Bug
Missing module X。 - 【15:00】Bug 解决。
它不跟所有的 System Prompt 进行高额 Token 的直接拼接(那样太贵了),而是作为一个可被搜索读取的文献库存在。
Agent 如何自我驱动检索?
这绝非仅仅写日记这么简单,它是智能体自身的一套内置的 memory_search 工作流机制。
场景演示:解决隔夜记忆遗失困局
现象:前天你跟它折腾完一个部署疑难问题(未存入重点备忘,留存在了三天的日记中)。今天你突然对它说:“上一次那个报错的环境配法,你在重来一次”。此时它这空荡荡的主干脑海是没有这一概念的。
过程拆解:
- 接令产生疑惑:模型分析出“前一次某次报错环境”不在全局常量定义当中,它识别到了一个自己“记忆盲区”的概念碰撞。
- 主动探询触发:结合自身的指导准则(SKILL.md 允许),它决定触发
memory_search工具。它构造出入参"搜索关键词": "报错环境配套 / 前两次日期"。 - 查阅匹配提回:底层框架跑去扫描对应的
.md,提纯了符合的信息块。 - 融汇贯通回答:带着重新提取进上下文的内容,最终成功答应对着你继续无缝执行部署操作。
给开发者的最佳实践忠告
既然这套存储如此庞大,管理是需要消耗 AI 算力精力的。你应该:
- 约束记录频次(通过 SOUL.md ):告警 AI 严禁事无巨细把哪怕查询一个英文单词的过程写进记忆库去,防止日志雪崩。
- 主动大清扫策略:可以引入后面要讲的 Cron 机制。建立任务设定为
主智能体每周五午夜跑个任务,把七拼八凑混杂的 5 个单日流水账短文档,融合成只有 10 行精华的内容抽插存入 MEMORY.md 或者汇总周志中。以此保证 Agent 头脑系统的清澈健康运转。