Agent 记忆分层:放哪儿,记多久,谁说了算
设计记忆,不光要想记什么,还要想什么时候该忘。
给一个要长期陪人聊天的 AI 设计记忆,一开始我也想着「能多记就多记」。做了AI 主播之后才发现,更要紧的是:这条信息该放在哪儿、什么时候过期、谁有权把它变成长期记住的事。
四层,各管各的
| 层 | 干什么用 | 放什么 | 怎么忘 |
|---|---|---|---|
| 当前 | 整理这一轮的输入 | 筛过、打好包的一批弹幕 | 用完就扔 |
| 短期 | 接上刚才的话 | 最近 20 轮左右 | 超出窗口自然滑走 |
| 中期 | 记得这一场聊过什么 | 这一场的摘要 | 边聊边压缩 |
| 长期 | 下一场还记得 | 确认过的观众信息、连载话题、偏好 | 我来审、我来删 |
分几层不重要,重要的是每层管什么、能活多久。
别把「正在」记成「一直」
「现在在打游戏」不该自动变成「这个人一直在打游戏」。要是一局游戏的状态被写进了长期摘要,模型以后会反复提一件早就过去的事。
反过来,什么细节都往长期记忆里塞,一次性的信息会越堆越多。摘要也是会丢细节的,别把它当成原始记录。
不会自己忘的那层,要有人把关
当前那层用完就扔,短期那层有窗口大小,只有长期那层不会自己清理。所以想进长期记忆的内容,先进一个待审区,我改一改、合一合再放进去。
这样不能保证永远不出错,但至少模型的一次瞎猜不会马上变成它以后反复引用的「事实」。发现记错了,也随时能改能删。
人设单独放
性格、说话方式、立场、底线,这些是人设,不是记忆。聊天可以给它添经历、添事实,但不能悄悄把人设改了。
所以结构是:一份独立的人设,加上几层按时效管理的记忆。人设可以我主动改,也可以定期拉回原样,但不能是聊着聊着自己变的。
现在我看任何一层记忆,都问三个问题:它在回答什么?过期了怎么停用?进下一层由谁说了算?
© 2026 袁天NOTE / 08
