
如何看待 Agent 记忆?
我更倾向按需记忆,而不是默认自动记忆。难点从来不是“要不要记”,而是记什么、什么时候记,以及怎么避免记忆变成噪音。
这段时间我一直在研究 Agent,也顺手把自己对记忆这件事的看法记下来。
我的判断不复杂:只有在它确实能省掉重复劳动的时候,记忆才值得引入。它不是所有 agent 默认都该有的配置。
memory 是个老生常谈的话题,但最近又被 openclaw 推到了一个新高度。很多人会下意识觉得,一个智能体就应该有记忆。可在我看来,这恰好是第一个误区。
如果一个没有记忆的 agent 也已经能满足你的日常需求,那它当然是成立的。记忆不是默认刚需。
记忆真正改变了什么
第一件事:把分散的对话连起来
我们和 agent 的每次对话,通常都是由一问一答组成的。
每次新对话开始,都会产生一个新的“扣子”。而 MEMORY.md 做的事情,就像是用一根线把这些扣子串起来。这样一来,当你在新的对话里重新提起某个线头时,另一个对话里曾经产生的关键信息也能被带出来。

第二件事:少做重复初始化
为什么要做这件事?
因为如果没有记忆,你和模型的每次对话几乎都要从 0 开始。你们之间总会有一个重复初始化的过程,而这个过程对人来说,往往就是把已经说过很多次的 prompt 再输入一遍。
这件事谈不上高级,只是很烦。记忆能做的,就是把这部分重复劳动拿掉。

所以,只有当你真的需要跨会话串联信息时,你才真正需要记忆。否则,一个 chatbot 很多时候就已经够用了。
自动记忆的问题,主要出在哪
最近我在用 openclaw。它的底层架构基于 Claude Code,所以你在 Claude Code 的项目目录里,也能看到 MEMORY.md 这个文件。
openclaw 的卖点很明确,就是尽量把记忆自动化。但实际用下来,我觉得体验还不够稳,主要是两个问题:
- 不稳定
- 写得太多,也太杂
不稳定
这里说的不稳定,是相对而言的。
如果你在 prompt 里明确写出“记住:”或者 remember: 之类的指令,那么现在 SOTA 榜上的 agent 基本都能照做。
但如果你没有明确要求,它到底会不会记、记成什么样,就没那么确定了。
太多、太杂
openclaw 会先把每天的内容写进 memory,再整理进 MEMORY.md。
这件事的问题在于,如果你没有事先定义清楚“什么该记,什么不该记”,那么过一段时间之后,MEMORY.md 很容易变得又乱又长。结果就是:
- 额外的上下文占用
- 更高的上下文污染风险
- 真正重要的信息反而被噪音盖住

我真正关心的两个问题
说到底,我们真正该反复追问的是下面这两个问题:
- 我是否真的需要自动记忆?
- 我真正要记住的,到底是什么?
对我自己来说,自动记忆不是刚需。
如果未来有人能把这两个问题处理干净,我会很愿意用。谁不想有一个自己的 Jarvis。
我对“什么值得记忆”和“什么时候该记”本来就有比较清楚的判断,所以我并不排斥手动触发的精准记忆。
对我来说,对 agent 的控制感,始终要大于自动化本身。
所以我现在的做法是:
- 做了一个
session-reflectskill,对需要沉淀的 session 做深度复盘 - 输出“发现的问题”“学到的教训”“如何改进”
- 将这些真正有价值的内容写入
MEMORY.md
需要的时候手动触发一次,成本其实不高。换回来的是更干净的内容,更少的噪音,也更强的控制感。

记忆怎么处理,最后还是要回到具体场景。
如果你做的是陪伴型 agent,自动记忆几乎就是产品的一部分。可即便如此,前面那两个问题也躲不过去。真正能拉开差距的,通常不是“有记忆”这件事本身,而是你怎么筛、怎么写、怎么维护这份记忆。


