
这是许多 OpenClaw 用户都会遇到的时刻:你的智能体助理跑了几个月,技能配置越来越多,记忆文件越来越厚,但它的表现却开始变得奇怪——前后矛盾,答非所问。
问题不在于模型,也不在于Skill配置。问题在于没有人告诉这只“虾”,它需要睡觉。道理就像数据库需要定期Vacuum,代码库需要定期重构,知识库需要定期 Curation。
01记忆为什么会"腐化"
大多数人在配置智能体时,对记忆的理解是线性的:记得越多越好,上下文越长越聪明。这个直觉在短期内是对的,但在时间维度上会产生一个致命问题。
智能体的记忆文件是只增不减的。每一次对话都在往里面塞东西——你的偏好、你的任务、你说过的话、你纠正过的错误。三个月后,这个文件里既有你当时的临时想法,也有你已经改变的决定,还有大量相互矛盾的碎片;或者你不小心问过一次红烧肉的做法,从此以后数据治理的案例都变成了以红烧肉为例。
LLM 在处理这些内容时,无法判断哪条是"真相",只能全部并列参考。结果就是:噪声在指数级增长,而信号密度在持续下降。
02 睡眠是大脑的记忆管理
认知科学给了我们一个现成的答案。人类大脑每天都在做一件事,只是我们从来没有意识到它有多重要——睡觉。
睡眠不是休息,是主动整理。在睡眠过程中,大脑会经历以下几个阶段:

这个对应关系不只是比喻——它揭示了一个工程原则:有效的记忆系统必须包含主动遗忘的机制。没有遗忘,就没有真正的记忆。
03设计"睡眠 Skill"
基于上述原则,我们可以为 OpenClaw 设计一个每天凌晨自动运行的 Skill——让虾真正睡一觉。
记忆文件分层结构
memory/├── core.md # 身份、偏好、长期不变的事实├── knowledge.md # 积累的结论、规律、学到的东西├── context.md # 当前任务状态、近期进行中的事├── pending.md # 待确认的争议项└── daily/└── YYYY-MM-DD.md # 每天对话的自动摘要
完整设计流程

核心 Prompt 设计
实际使用时需根据你的记忆结构调整
# 记忆整理 Prompt 核心原则 任务:分析今日对话,对现有记忆做三类操作新增 — 今日出现的新结论,现有记忆中没有更新 — 今日内容与现有记忆一致,补充细节争议 — 今日内容与现有记忆矛盾,无法自动判断原则: 只保留结论,不保留过程 宁可少写,不要乱写 不确定的一律归入争议输出:严格 JSON,包含 additions / updates / conflicts 三个数组
04实施顺序:不要跳步
很多人看到方案就想直接跑起来,但有一个容易踩的坑:睡眠 Skill 的质量取决于 daily 输入的质量。如果每天的对话摘要本身就是乱的,整理再勤也没用。
1.先做一次人工初始化,把存量的记忆文件人工粗分一次,建立基础分层结构。脏底层上面建不出干净的系统。
2.先跑 daily 摘要 Skill,每次对话结束后,自动提炼关键信息写入 daily 文件。积累 1-2 周,确保输入质量。
3.再实现睡眠整理 Skill,有了干净的 daily 输入,整理质量才有保障。顺序不能颠倒。
4.观察争议频率,调整分类,争议太多说明记忆分类粒度有问题;争议太少说明整理过于保守。持续迭代。
05更深的启示
这个"睡眠"隐喻背后,藏着一个更普遍的工程原则:任何持续运行的系统,都需要设计周期性的自我整理机制。当然现在很多大模型也有日趋完整的记忆机制,但是我研究下来,这种底层代码更为通用,我们的个人助手完全可以自己做的更好。
恰如文章开头所言,数据库需要定期 vacuum,代码库需要定期重构,知识库需要定期 curation——智能体的记忆也不例外。我们只是太习惯于"往里加东西",而忽视了"把没用的清掉"同样是能力的一部分。
一只真正养得好的虾,不是记性最好的虾,而是知道该记什么、该忘什么的虾。
这,也许正是智能的本质。
夜雨聆风