Agent的夜曲:为什么AI需要一场好梦

#人工智能

睡觉的时候,大脑并没有关机。它在回放白天的经历,把重要的东西存进长期记忆,把没用的忘掉。这个过程叫记忆巩固(Memory Consolidation),主要发生在 REM 睡眠阶段。

我有一个 AI 助手,叫千千。她每天和我聊天、帮我查资料、写代码、管持仓日报。时间久了,一个问题浮现出来:

她会记住多少关于我的事?

AI Agent 的记忆困境

主流 AI Agent 的记忆方案大同小异:一段长期记忆文件(类似 system prompt)注入每次对话。我的助手用的是 MEMORY.md——一个纯文本文件,记录环境信息、项目状态、我的偏好和习惯。

问题来了。

第一,记忆会爆。 初始容量只有 2200 个字符,很快就塞到 96%。全是「v1 待 push」「某个 MCP 报错了」这种过了几天就过时的信息,新知识根本挤不进去。

第二,纯手动维护不现实。 记忆的增删改全靠对话中手动操作。但对话一多,谁会记得「上周说的那个偏好应该记下来」?

第三,没有淘汰机制。 过时信息永远占着位置,直到手动发现、手动删除。这就像一个从不扔东西的人,房间迟早堆满。

本质上,这是一个信息生命周期管理问题。不只是 AI——人的大脑也面临同样的挑战,只不过人脑用「做梦」来解决这个问题。

那就让她也「做梦」

如果 AI 的记忆困境和人脑类似,那解决方案也可以借鉴。

当时找到了两个参考:

两个方案各有侧重。Claude Code 偏工程实用,OpenClaw 偏拟人隐喻。我两个都要——工程上的严谨,加上一层让人觉得有意思的包装。

四个阶段,模拟一次完整的睡眠

最终设计了一个四阶段流水线,每三天凌晨 3:00 自动执行一次:

浅睡:翻看这几天的聊天记录

session_search 拉取最近 3 天的所有会话,逐一过一遍,提取关键信息。同时读取当前的 MEMORY.mdUSER.md,知道现在记着什么。

这一步纯采集,不做判断。就像你刚躺下,脑子里飘过今天发生的事。

REM 反思:找出重要的事

分析采集到的内容,识别四类信号:

深睡评分:该记住还是该忘掉?

这是最关键的一步。对每一条现有记忆和每一个候选操作,打一个 0-1 的信心分。

只有得分 ≥ 0.7 的操作才会被执行。

为什么要设这个阈值?因为 AI 在反思阶段会「想太多」。一条「也许可以记一下」的信息,得分通常在 0.5-0.6 之间。没有阈值的话,记忆很快又会被低价值信息塞满。

这和人脑的选择性记忆很像——不是所有经历都会被记住,大脑有自己的过滤机制。

执行:三件事

具体操作只有三种:

修剪(Pruning)——删除过时信息。比如「Cockpit v1 待 push」已经被 push 了,这条就没用了。或者某个临时报错已经修好了,留着也是浪费空间。

刷新(Refreshing)——更新旧记忆。比如项目从「v0.13」升级到了「v0.17」,偏好从「逐步确认」变成了「流式直出」。信息还在,但需要更新。

巩固(Consolidating)——沉淀新知识。从近期对话里提取值得长期记住的东西,写入记忆。比如「Jw 喜欢用思维模型思考」「持仓卖出规则是 -8% 硬止损」。

每次最多执行 10 个操作。修剪和刷新优先——先腾出空间,再存新东西。

安全边界

让 AI 自动修改自己的记忆,不能没有护栏。设计了几条硬规则:

  1. 敏感信息过滤:API Key、Token、密码、持仓量、成本价、盈亏金额——绝对不写入记忆。
  2. 信心分阈值:低于 0.7 直接跳过,宁可少记,不可错记。
  3. 容量管理:记忆超过 90% 使用率时,强制触发修剪,不管有没有新东西要存。
  4. 操作限制:每次最多 10 个操作,防止单次做梦搞出太大变动。
  5. 只动记忆文件:不碰源代码、配置文件、定时任务。做梦只管记忆,不越界。

运行了两个月,效果如何?

从 5 月 12 日首次 dry-run 开始,到现在已经跑了二十多次。贴几条真实的梦境日志:

第一次正式做梦(5/12)

回顾 29 个会话。修剪 0 | 刷新 1 | 巩固 0 | 跳过 3。刷新了 Cockpit 项目状态:「v1 待 push」→「v1 已部署上线」。

容量告警日(5/19)

MEMORY.md 撑到了 114%,USER.md 到了 107%。一次性修剪 7 条、刷新 3 条、巩固 3 条,把 MEMORY 降到了 54.9%。删掉了「STT 配置」「YouTube cookies」「3thing 产品地址待补充」这类低频过时信息。

安静的一周(6/1)

回顾 0 个用户会话——周末,我没怎么和她聊天。评估了 3 个候选操作,全部低于 0.7 阈值,全部跳过。什么都没做。这也是一种正确的决策。

回头看这些日志,有几个有意思的发现:

AI 的「梦」和人的梦,有什么不同?

表面上看,这套机制模仿了人的睡眠周期——采集、反思、决策、执行,像极了 REM 睡眠中大脑做的事。

但本质上,差别很大。

人做梦是模糊的、联想的、非线性的。你会梦见白天见过的人、想过的事,但它们会被打乱、重组、赋予新的情感。很多时候你醒来只记得一种感觉,说不清具体梦到了什么。

AI 的「梦」是精确的、结构化的、可审计的。每一次操作都有评分、有理由、有日志。你知道她为什么删掉了那条记忆,为什么跳过了这个候选。

人在梦里会创造——那些天马行空的联想,是创造力的来源。

AI 在「梦」里只整理——她不会在睡觉时突然产生新的想法,只是把已有的信息归档得更好。

这可能是当前最大的局限。人的记忆巩固不只是整理,还有重组和创造。AI 要做到这一点,可能需要一种完全不同的机制——不是在「睡觉」时整理,而是在「走神」时联想。

不过那是一个更大的话题了。

写在最后

做这件事的初衷很简单:AI 助手用了几个月之后,我发现她开始「忘事」——不是真的忘了,而是记忆空间满了,旧的不去新的进不来。

手动维护不可持续,那就自动化。自动化的关键不是「什么都记」,而是「记该记的,忘该忘的」。

阈值 0.7,三操作模型,每三天一次。简单,但有效。

就像生活中的很多事情一样——最好的系统不是最复杂的,而是刚好够用的。