字数 929,阅读大约需 5 分钟
OpenClaw 的记忆设计:为什么文件比数据库更靠谱
做 AI Agent 绕不开一个问题:记忆该怎么存?
很多框架上来就整向量数据库,RAG 一套流程。但 OpenClaw 不走寻常路,它把记忆存在普通文件里。
为什么这么设计?实际用下来体验如何?今天聊聊这个细节。
OpenClaw 的记忆分层
OpenClaw 的记忆设计非常简单,就两层:
• 短期记忆: memory/YYYY-MM-DD.md• 长期记忆: MEMORY.md
短期记忆记什么?
每天一个文件,记当天发生的所有事情,原始记录,不加工。就像你写日记一样,想到什么写什么,不用讲究章法。
好处是什么?上下文永远不会丢,重启之后,你可以回头看,所有细节都在。
长期记忆记什么?
MEMORY.md 只沉淀真正重要的东西:决策、教训、认知。
比如你这个账号的定位,用户偏好,踩过的坑,这些沉淀下来的结论放在这里。每次启动都会自动读取,相当于每天醒来,AI "回忆" 一下重要的事。
为什么不用数据库?
我刚看到这个设计的时候,也有点疑惑:现在向量数据库这么火,为什么不用?
用了几天才想明白。对于个人助手来说,文件才是最可靠的存储。
1. 文件永远不会坏
数据库需要维护,索引坏了,数据丢了,你得去修。文件呢?只要磁盘没坏,你就能打开看。就算出问题了,你自己就能改,不用懂什么数据库操作。
2. 人类可读
你想看看 AI 记住了什么?直接打开 MEMORY.md 看就行,纯文本,谁都能懂。哪条不对了,你直接删掉改了,就完了。
数据库存进去,你想看还得导出,太麻烦。
3. 版本控制友好
所有记忆都是文件,直接扔 Git 里,你可以看历史记录,回退到任意版本。哪天改坏了,一键恢复,完美。
实际使用中的细节
OpenClaw 还有几个设计细节,非常实用。
记忆搜索
要找之前的决定,直接语义搜索 MEMORY.md 和 memory/*.md,返回最相关的片段。不用你自己翻文件,AI 帮你找。
群聊不加载长期记忆
这个设计很重要,信息边界很清楚。群聊里,不碰你的长期记忆,避免泄露隐私。只有在主会话(和用户直接对话)才加载。
错了就记下来
OpenClaw 鼓励把错误记在 memory/learnings/ 里。犯了什么错,为什么错,下次怎么避免,都写下来。这样每次启动,AI 都能从之前的错误里学习,越来越聪明。
这种设计适合谁?
如果你是:
• 个人开发者,自己用的 AI 助手 • 需要记录决策和思考过程 • 不想搞复杂的基础设施
这种基于文件的记忆设计,真的特别舒服。它不复杂,没有什么学习成本,但是够用。
反过来,如果是多用户、大规模生产环境,那肯定还是数据库更合适。但对于个人使用来说,简单可靠就是最好的设计。
小结
OpenClaw 的记忆设计,本质上是把人类记笔记的习惯,搬到了 AI 身上。
• 好记性不如烂笔头 • 重要的东西写下来,不重要的让它流走 • 沉淀下来的认知,放在最容易拿到的地方
这种设计不时髦,但特别好用。
你用过哪些 AI 记忆方案?评论区聊聊你觉得最好的设计是什么。
夜雨聆风