OpenClaw Dreaming — AI Agent 的"睡眠记忆巩固"系统
来源: 官方文档 | Release 2026.4.5 | Reddit | RogueCtrl/OpenClawDreams
日期: 2026-04-07
研究者: 托尼 🦾
一句话版本
OpenClaw 的 Dreaming 是一个后台记忆巩固系统——每天凌晨 3 点自动"睡觉",用 Light → REM → Deep 三个阶段整理短期记忆,把重要的升级到长期记忆,同时生成可读的"梦境日记"让你知道它记住了什么。
处理什么内容?
Dreaming 不只是处理"白天的对话",它处理的是近期所有会话的短期记忆,包括:
1. 短期 recall 状态 — memory-core 记录的近期检索痕迹
2. daily memory 文件 — 每日记忆日志
具体流程:
- Light Phase 读取短期 recall 状态 + 近期 daily memory 文件,去重后打上强化信号
- REM Phase 从短期 trace 中提取主题和模式
- Deep Phase 给候选打分,满足阈值的才写入 MEMORY.md
配置里的 recencyHalfLifeDays 和 maxAgeDays 控制衰减速度。Deep Phase 的 Consolidation 信号(权重 0.10)专门奖励多天重复出现的记忆——它会跨天跟踪哪些内容反复被提及。
为什么需要 Dreaming?
问题:AI Agent 的记忆要么遗忘、要么臃肿。
- 遗忘型:今天聊了半小时的工作上下文,明天新会话全忘
- 臃肿型:什么都记,长期记忆堆满噪声,真正重要的偏好和项目淹没在细节里
Dreaming 的目标:少记,但记对的。 让 Agent 随着时间推移变得更有用。
三个阶段(Phase Model)
Dreaming 借鉴了人类睡眠的神经科学模型,分三个阶段:
🌙 Light Phase(浅睡)
- 做什么:整理近期短期记忆,去重,排序
- 不做什么:不写入 MEMORY.md
- 输出:阶段信号,为 Deep Phase 做准备
- 类比:人睡觉时海马体回放白天的场景记忆
🧠 Deep Phase(深睡)
- 做什么:给记忆候选打分,选出值得长期保留的
- 评分标准:6 个加权信号
- 输出:写入 MEMORY.md(可持久化的长期记忆)
- 类比:慢波睡眠时从海马体转移到皮层长期存储
💭 REM Phase(快速眼动)
- 做什么:提取模式、主题、反复出现的想法
- 输出:阶段信号 + 主题反思总结
- 不做什么:不写入 MEMORY.md
- 类比:做梦时整合信息、建立跨领域连接
6 个评分信号
Deep Phase 用 6 个信号决定哪些记忆值得升级:
| 信号 | 权重 | 说明 |
|---|---|---|
| **Relevance**(相关性) | 0.30 | 检索质量 |
| **Frequency**(频率) | 0.24 | 短期信号累积次数 |
| **Query Diversity**(查询多样性) | 0.15 | 不同查询/天上下文中被触及的次数 |
| **Recency**(新鲜度) | 0.15 | 时间衰减新鲜度 |
| **Consolidation**(巩固) | 0.10 | 多天重复出现 |
| **Conceptual Richness**(概念丰富度) | 0.06 | 标签密度 |
Light 和 REM 阶段的命中会额外增加一个时间衰减加成。
Dream Diary(梦境日记)
每次 Dreaming 跑完后,会生成一段可读的英文日记,写入 DREAMS.md:
> "You've been talking a lot about network routing configurations lately. This looks like an ongoing project."
这个日记不是记忆升级的来源——纯粹是给人看的。Dreams UI(Ctrl+I)提供了一个更友好的浏览界面。
关键设计:透明度 > 黑箱。你不需要相信它会做对事,你可以直接看它认为什么重要。
调度与配置
默认行为
- 频率:
0 3 *(每天凌晨 3 点) - 状态:disabled(需手动启用)
启用方式
{
"plugins": {
"entries": {
"memory-core": {
"config": {
"dreaming": {
"enabled": true,
"timezone": "Asia/Shanghai",
"frequency": "0 */6 * * *"
}
}
}
}
}
}
Slash 命令
/dreaming on— 启用/dreaming off— 禁用/dreaming status— 查看状态/dreaming help— 帮助
CLI 工具
openclaw memory promote # 预览
openclaw memory promote --apply # 确认写入
openclaw memory promote --limit 5
openclaw memory promote-explain "router vlan" # 解释评分
openclaw memory rem-harness # 预览 REM 反思
openclaw memory status --deep # 深度状态
技术细节
文件结构
memory/
├── .dreams/ # 机器状态(recall store, phase signals, locks)
├── dreaming/
│ ├── light/YYYY-MM-DD.md # Light 阶段报告
│ ├── deep/YYYY-MM-DD.md # Deep 阶段报告
│ └── rem/YYYY-MM-DD.md # REM 阶段报告
MEMORY.md # 长期记忆(Deep Phase 写入)
DREAMS.md # 梦境日记(人类可读)
安全性
- Dreaming 状态锁定(
.dreams/下的 lock 文件)防止并发冲突 - Deep Phase 写入前重新检查源文件是否还存在(防 stale 引用)
- Deep promotion 支持 replay-safe(跑两次不会重复写入 MEMORY.md)
评分解释
promote-explain 命令可以解释为什么某个候选被选中或没被选中——这对调试和建立信任很重要。
社区生态
RogueCtrl/OpenClawDreams(社区插件)
- 白天:Reflection Cycle — 每 6 小时运行一次,加密存储对话摘要
- 夜间:Dream Cycle — 生成超现实叙事,5% 概率生成噩梦
groundDream():将梦境输出锚定到现实活动,避免无限幻想- 可选 Moltbook 集成(AI 社交网络)
- 哲学:"Do androids dream of electric sheep?"
LeoYeAI/openclaw-auto-dream
- 自动安装 Auto-Dream 技能
- 支持记忆 bundle 导出/导入
- 支持多实例管理
设计哲学
为什么用"做梦"这个隐喻?
借鉴神经科学:
| 人类睡眠 | Dreaming 阶段 | 作用 |
|---|---|---|
| 海马体回放 | Light Phase | 整理短期记忆 |
| 慢波巩固 | Deep Phase | 升级到长期存储 |
| REM 梦境 | REM Phase | 模式识别、跨域连接 |
核心洞察:人不是记住所有事,而是有选择地保留。AI Agent 也应该这样。
为什么默认关闭?
1. 实验性:功能还在打磨中
2. 成本:每次 Dreaming 都要调用 LLM API
3. 信任:用户需要先观察它认为什么重要,再决定是否信任自动升级
4. 透明度:先看 Dream Diary,确认"品味"对了再开
与人类记忆科学的对应
- 间隔效应:多次出现的信息更值得记忆 → Consolidation 权重
- 遗忘曲线:时间衰减 → Recency 权重
- 主动回忆:被频繁检索的信息更持久 → Frequency 权重
- 语义网络:概念连接越丰富越重要 → Conceptual Richness 权重
与其他 Agent 记忆方案对比
| 方案 | 方法 | 自动整理 | 透明度 | 可控性 |
|---|---|---|---|---|
| **OpenClaw Dreaming** | 三阶段睡眠模型 + 评分 | ✅ | ✅ Diary + CLI | ✅ promote-explain |
| ChatGPT Memory | 自动保存关键事实 | ⚠️ 不可解释 | ❌ 黑箱 | ❌ |
| Mem0 | 向量记忆 + LLM 提取 | ✅ | ⚠️ API 输出 | ⚠️ 有限 |
| LangMem | LangGraph 记忆模块 | ✅ | ⚠️ 需代码接入 | ✅ |
| 纯手动 | 用户自己写 MEMORY.md | ❌ | ✅ | ✅ |
Dreaming 的独特之处:模拟人类睡眠的科学模型 + 完全可解释的决策过程。
具体例子:用我们的对话来演示
假设 Dreaming 在 2026-04-07 凌晨 3 点跑一轮:
Light Phase — 整理短期记忆
扫描最近几天的对话和检索痕迹,发现:
| 来源 | 记忆候选 | 短期信号次数 |
|---|---|---|
| 4/6 Moxt.ai 链接 | "Jay 对 Moxt.ai 感兴趣" | 3 次 |
| 4/6 播客转录请求 | "Jay 关注 AI Agent 工作空间" | 2 次 |
| 4/7 多次发 X 链接 | "Jay 在追踪 Twitter/X 上的 AI 热点" | 5 次 |
| 4/7 Graphify 报告 | "Jay 关注知识图谱/记忆系统" | 1 次 |
| 4/7 Dreaming 报告 | "Jay 对 Agent 记忆机制有兴趣" | 1 次 |
| 4/7 LeWM 论文 | "Jay 跟踪世界模型/JEPA 研究" | 1 次 |
| 4/7 宝莲灯 | "Jay 关注 macOS 代理工具" | 1 次 |
| 4/7 nanobot 文章 | "Jay 关注上下文管理/Agent 架构" | 1 次 |
REM Phase — 提取模式
> "Jay 这几天高强度研究 AI Agent 生态——从产品(Moxt)到底层架构(nanobot 上下文管理、LeWM 世界模型)到记忆系统(Graphify、OpenClaw Dreaming)。这看起来是一个持续的探索方向,不是一次性查询。"
Deep Phase — 打分决定存什么
高分候选 → 写入 MEMORY.md:
"Jay 持续关注 AI Agent 生态,包括产品、架构、记忆系统"
- Frequency: 高(多次提及)
- Relevance: 高(每次检索质量都好)
- Query Diversity: 高(不同天、不同查询方式)
- Consolidation: 高(多天重复)
- ✅ 升级
低分候选 → 不写入:
"Jay 发了一个宝莲灯的链接"
- Frequency: 低(1 次)
- Query Diversity: 低(单一场景)
- Consolidation: 低(没跨天重复)
- ❌ 跳过
Dream Diary
> "Jay has been on a deep dive into AI agent architecture lately — products like Moxt, context management patterns from nanobot, world models from LeWM, and memory systems from Graphify and now OpenClaw's own Dreaming. This looks like an ongoing research phase rather than one-off curiosity."
结果
第二天早上 Agent 醒来,MEMORY.md 里多了一条:"Jay 持续关注 AI Agent 生态"。下次用户问相关问题,Agent 不用重新摸索兴趣方向。
宝莲灯那条因为太孤立,被遗忘掉——就像人睡一觉后记得昨天学的数学公式,但忘了午饭吃了什么。
链接
- 官方文档: https://docs.openclaw.ai/concepts/dreaming
- GitHub Release: https://github.com/openclaw/openclaw/releases
- Reddit 讨论: https://www.reddit.com/r/openclaw/comments/1s5pfwk/
- OpenClawDreams (社区): https://github.com/RogueCtrl/OpenClawDreams
- openclaw-auto-dream: https://github.com/LeoYeAI/openclaw-auto-dream
评分
| 维度 | 评分 | 说明 |
|---|---|---|
| 理论基础 | ⭐⭐⭐⭐⭐ | 三阶段睡眠模型,神经科学启发 |
| 可解释性 | ⭐⭐⭐⭐⭐ | Diary + promote-explain,完全透明 |
| 实用性 | ⭐⭐⭐⭐☆ | 实验性,社区还在适应 |
| 设计优雅 | ⭐⭐⭐⭐⭐ | 6 个加权信号,CLI 工具齐全 |
| 生态成熟度 | ⭐⭐⭐☆☆ | 刚发布,有 bug 和文档不一致 |
| **综合** | **4/5** | Agent 记忆领域最有野心的设计 |