10.1 记忆系统与知识管理

生成模型:gpt-5.4 (openai/gpt-5.4) Token 消耗:输入 ~8k tokens,输出 ~3k tokens(估算)


到了第 10 章,OpenClaw 的基础能力你已经差不多都摸熟了。接下来真正决定“这东西能不能天天用”的,往往不是模型多强,而是它记不记得住事。

很多人第一次用 Agent 都会有一种挫败感:今天聊得挺顺,明天重新开一个会话,它又像失忆了一样。你明明昨天才说过“我主要写 TypeScript”“服务器在新加坡”“发给我的日报别太官话”,结果第二天它又从头问一遍。这个落差,其实不是 OpenClaw 特有的问题,而是大模型的基本限制:模型本身不会像人一样自动形成长期记忆,除非系统把信息另外存起来。

OpenClaw 在这件事上的思路很朴素:把记忆落到文件里。不是搞一堆你看不见摸不着的黑箱状态,而是把长期信息写进 MEMORY.md,把日常记录写进 memory/ 目录。这样做有一个很大的好处:你自己也能看,也能改,也能删。AI 不是“偷偷记住你”,而是“把它认为重要的东西记录下来,并在之后尽量找回来”。

10.1.1 OpenClaw 到底记住了什么

先别把“记忆”想得太玄。对 OpenClaw 来说,常见的记忆大概就四类:

  • 你的长期偏好,比如常用语言、写作风格、常去的目录、常用命令。

  • 稳定事实,比如服务器地址、项目代号、团队成员分工、常用 API 提供商。

  • 正在持续推进的事情,比如这周在修哪个 bug,下个月准备上线什么。

  • 不适合每次都重复说的协作规则,比如“改代码前先读相关文件”“回答尽量短一点”。

这里有个边界最好一开始就想清楚:不是所有聊天内容都值得记。你随口说一句“今天天气真热”,系统没必要长期保存;但你说“我所有 Docker 项目都放在 ~/srv 下面”,这种信息以后反复会用到,就很适合进长期记忆。

所以,OpenClaw 的记忆更像一个“可检索的工作笔记本”,不是人格模拟器。它不是要假装自己跟你从小一起长大,而是尽量别让你在重复劳动上浪费时间。

10.1.2 MEMORY.md:长期记忆的总账本

MEMORY.md 可以理解成 Agent 的长期备忘录。只要你愿意,完全可以把它当成一份给 AI 写的“用户说明书”。

比如下面这些内容,就很适合放进去:

有些用户会问:这东西要我手写吗?答案是,你可以手写,也可以让 Agent 帮你写,但最好定期自己看一眼。因为只要是“记忆”,就会有过期的时候。你三个月前常用某个模型,不代表今天还在用;你去年常驻某个仓库,今年可能已经换了。

我的建议是,MEMORY.md 不要追求“全”,而要追求“稳”。写那些三周后、三个月后仍然大概率成立的事实。越稳定,价值越高。

10.1.3 memory/ 目录:每天发生的事,放这里

如果说 MEMORY.md 是总账本,那 memory/YYYY-MM-DD.md 更像工作日记。它适合记当天发生的事,比如:

  • 今天排查过什么问题。

  • 某个任务做到哪一步了。

  • 某个临时决策为什么这么定。

  • 某个坑已经踩过一次,下次别再踩。

这种按天记录的方式很实用。原因很简单:很多信息不是永久有效,但在接下来几天特别有用。比如你今天刚把一个 Telegram 机器人重新配好了,明天再排故时,这条记录就很值钱;但半年后它可能就只是历史资料。

一个比较自然的使用习惯是:

  1. 长期稳定规则写进 MEMORY.md

  2. 临时进展、排查过程、会议结论写进当天日志。

  3. 周末或者阶段切换时,挑重要内容回收进 MEMORY.md

这样做,记忆系统就不会越用越乱。很多人把所有东西都往 MEMORY.md 塞,最后那份文件又长又杂,检索效果也会跟着变差。

10.1.4 AI 为什么“像是记得你”

从用户视角看,体验大概是这样的:你提了一个问题,OpenClaw 在回答前,会先看看当前上下文里够不够信息;不够的话,再去相关记忆文件里找。找到以后,它把这些片段重新带回这轮对话,于是你就会感觉它“记得”。

注意,这里不是魔法,也不是模型脑子里真存了一份“关于你的完整画像”。更准确地说,它做的是三步:

  1. 你以前说过的重要信息,被写进了磁盘文件。

  2. 现在你又提到相关话题,系统尝试把旧信息找出来。

  3. 找到的片段被重新送进当前这次推理里。

所以它记忆的质量,其实取决于两件事:

  • 之前有没有记对。

  • 现在能不能找准。

前者靠你和系统一起维护,后者就要靠搜索机制了。

10.1.5 什么叫向量搜索,为什么它比关键词更像“会意”

如果只靠关键词搜索,会有个很常见的问题:你写的是“公网地址”,下次问的是“服务器 IP”,字面上没完全对上,普通检索就可能漏掉。

向量搜索可以把它理解成一种“按意思找相近内容”的办法。系统会先把一段文字转成一串数字,这串数字不重要,你完全不用背;重要的是,意思接近的句子,转出来的位置也会更接近。这样你搜“部署机器在哪”,它就不一定非得等你把原话一字不差地打出来。

如果你学过数据库,可以把它粗略理解成“不是按字面匹配,而是按语义距离排序”。如果你没学过,也没关系,就记一句人话版:

关键词搜索像在翻书目录,向量搜索更像你脑子里那个“我记得大概提过这事”的感觉。

当然,向量搜索也不是神。它会有误召回,也会漏召回。所以最稳的做法永远是:记忆内容要写清楚,搜索只是帮你更容易找回来。

10.1.6 嵌入提供商怎么配

向量搜索要先做一件事:把文本转成向量。这个步骤通常叫 embedding,中文常翻成“嵌入”。OpenClaw 支持多种提供商,你不用太纠结术语,把它当成“谁来负责把文字编码成可搜索的语义表示”就行。

一个典型配置长这样:

如果你已经在用 OpenAI,这往往是最省事的起点。除此之外,常见思路还有:

  • 想少折腾,先用你已经有账号的云服务。

  • 想统一账单,就选和主模型同一家或同一套平台。

  • 想尽量本地化,就考虑本地嵌入模型。

  • 想控制成本,就优先看嵌入模型的价格,而不是聊天模型的价格。

这里有个新手常犯的错:把“主模型供应商”和“嵌入供应商”混成一回事。其实它们可以一样,也可以不一样。你完全可以聊天走 Anthropic,记忆检索走 OpenAI 或本地嵌入服务。别把它想复杂,本质上只是两条不同的能力链。

10.1.7 怎么把记忆系统用顺手

如果你想让 OpenClaw 真的越用越懂你,下面这几条特别重要。

第一,告诉它什么值得记

不要指望系统百分百猜中你的意图。你真想让它记住,就明确说:“把这件事记下来。”这比模糊地提一嘴可靠得多。

第二,记事实,不记情绪噪音

“我最近有点烦”这种话当然可以聊,但不太适合进长期记忆。相反,“我正在准备春招,需要把算法题讲得更基础”就很有价值,因为它能直接影响后续协作方式。

第三,定期整理

建议每隔一两周看一次 MEMORY.md。删掉过时信息,合并重复条目,把散落在每日日志里的重要内容往上提。你会发现,记忆系统和笔记系统一样,不整理就会发霉。

第四,别把密码往里塞

这个看起来像废话,但真的值得单独说。API Key、数据库密码、私钥、恢复码,这些都不该放进记忆文件。记忆的目标是提高协作效率,不是变成事故源。

第五,给内容起个能被搜到的说法

比如你可以写“生产服务器 / VPS / 部署机”这样的别名,或者在一条记录里把常见叫法一起放进去。这样无论你下次怎么问,都更容易召回。

10.1.8 你可以把它当成“给未来的自己留上下文”

有意思的是,OpenClaw 的记忆系统不只是给 AI 用,很多时候也在帮你自己。你回头翻 MEMORY.md 和每日日志,会很直观地看到:自己平常怎么工作、哪些事情老重复、哪些坑一直在踩。这其实已经有点像工程化的个人知识管理了。

所以更实用的理解方式是:OpenClaw 并不是单方面“记住你”,而是你和它一起维护了一套共享上下文。你写进去的,不只是让 AI 变聪明,也是让未来的协作成本变低。

本节小结

这一节最核心的点其实就三个。第一,OpenClaw 的长期记忆不是藏在黑箱里,而是落在 MEMORY.mdmemory/ 目录里,用户自己可读可改。第二,向量搜索的价值不在于“高级”,而在于它能按意思找内容,让记忆召回更自然。第三,记忆系统要想长期好用,关键不是堆更多信息,而是把稳定事实、短期日志和定期整理这三件事做好。

当你把记忆维护顺手以后,OpenClaw 才会真正从“每次都要重新解释背景”的工具,变成一个能持续接住上下文的长期助手。

Last updated