← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

【OpenClaw 实操】OpenClaw Dreaming:AI 智能体的梦境记忆系统

AI/Agent 阅读原文(微信)↗

灵魂拷问

你有没有想过一个问题:为什么 ChatGPT 关掉对话之后,下次再开就什么也不记得了?

答案很简单——AI 的\"记忆\"本质是对话历史压缩包。关掉会话,压缩包就丢了。每次新会话,AI 都是从零开始、只靠你传的文本文件(MEMORY.md、daily notes)来理解你。

但如果这个\"文本文件\"是 AI 自己写的呢?而且它不是只写一次——它每天凌晨自动\"回想\"当天的重要信息、打分、筛选、择优写入——就像人睡觉时大脑整理白天记忆一样。

这就是 OpenClaw 的 Dreaming(梦境) 系统。

━━━ ━━━ ━━━

什么版本引入的

Dreaming 是 2026.2.x 版本memory-core 插件引入的。最初只有简单的记忆回放,经过 2026.4.x、2026.6.x、2026.7.x 三个大版本的迭代,发展到今天包含:

  • 三层梦境流水线(轻睡、REM、深睡)
  • 短期记忆自动晋升(short-term promotion)
  • Shadow Trial(A/B 测试不同晋升策略)
  • Grounded Backfill(历史回溯重演)

当前版本为 2026.7.1-2

━━━ ━━━ ━━━

Dreaming 为什么重要

先简单说下 OpenClaw 的记忆架构:

层级 文件 用途 自动加载到会话?
长期记忆 MEMORY.md 持久事实、偏好、决策 ✅ 每次会话开头
每日日志 memory/YYYY-MM-DD.md 当天发生的细节 ✅ 当天+昨天的
梦境日记 DREAMS.md 梦境流水线产物,供人类审阅 否(可选)

问题是:谁来把每日日志里的重要内容提炼到 MEMORY.md?

传统做法是靠人类写指令:\"记住我偏好 TypeScript\"——但对话长了、内容多了之后,靠手动命令根本不现实。

Dreaming 就是解决这个问题的。 它在凌晨 3 点自动运行,做三件事:

━━━ ━━━ ━━━

三层梦境流水线

一个完整的 dreaming 周期分三个 phase,模拟人类睡眠结构:

Phase 1:轻睡(Light Sleep)

每天会话结束后,session 中的关键信息被标记为\"候选记忆\",进入短期存储等待处理。这一步非常快,几乎不消耗 token——只是做关键信息标记

Phase 2:REM(快速眼动)

REM 阶段做近因排序和关联打分。当天标记的候选条目被组织起来,按以下维度打分:

  • 召回频率:这个话题在多少次对话中出现过
  • 查询多样性:从多少个不同的角度被提起
  • 时效性:新近程度

只有分数超过阈值的条目才能进入深睡。

Phase 3:深睡(Deep Sleep)

深睡阶段做真正的晋升决策。AI 读取当天/近期的短程记忆候选,调用模型生成叙事性日记写入 DREAMS.md,同时把高分的条目晋升到 MEMORY.md

晋升标准严格控制——不会把所有内容都写进去。它经过 score、recall-frequency、query-diversity 三重关卡,只有真正重要的内容才会最终落地到长期记忆

完整周期产物写入 ~/.openclaw/workspace/memory/dreaming/,分为三个子目录:

memory/dreaming/ ├── light/ # 轻睡候选 ├── rem/ # REM 排序结果 └── deep/ # 深睡最终产物 → 晋升到 MEMORY.md

━━━ ━━━ ━━━

配置方式

默认是关闭的,需要手动开启:

{
"plugins": {
"entries": {
"memory-core": {
"config": {
"dreaming": {

"enabled": true, "frequency": "0 3 * ", "timezone": "Asia/Shanghai"

}
}
}
}
}
}

以上配置让 dreaming 每天凌晨 3 点(北京时间)跑一次完整流水线。模型走 agent 默认链(本例中是 deepseek-chat/deepseek-v4-flash),也可以单独指定:

"dreaming": {

"enabled": true, "model": "minimax/MiniMax-M3"

}

━━━ ━━━ ━━━

与 Codex、Claude Code 的不同点

对比维度 OpenClaw Dreaming Codex Claude Code
推出时间 2026.2(OpenClaw 原生) 2026.5(OpenAI) 2026.4(Anthropic)
运行方式 定时 cron 后台自动化 API 调用侧手动管理 手动触发 + 部分自动
记忆位置 本地 Markdown 文件 OpenAI 云端 对话上下文(静态)
晋升标准 三重关卡自动筛选 无自动筛选机制 无自动筛选机制
日记产出 DREAMS.md 叙事性日记 ❌ 无 ❌ 无
多模型支持 ✅ 可指定不同模型 ❌ 仅 GPT ❌ 仅 Claude
A/B 测试 ✅ Shadow Trial ❌ 无 ❌ 无
历史回溯 ✅ Grounded Backfill ❌ 无 ❌ 无
人类可审阅 ✅ 产物是 MD 文件,可读可改 ❌ 不可见 ❌ 不可见
开源 ✅ MIT ❌ 闭源 ❌ 闭源
收费 ✅ 仅花 token 费 💰 按量付费 💰 按量付费

区别详解

Codex 和 Claude Code 把记忆锁在对话上下文中——你问它\"之前我们讨论的那个方案\",它只能去翻同一会话的历史(几十万 token),做不到跨会话检索。Dreaming 则是把提炼后的记忆持久化到磁盘,下次新会话直接加载。

Codex 没有自动晋升机制。它的记忆完全依赖用户在对话中手动问\"你记得刚才那个配置吗\",然后 AI 会回看当前会话历史——但关掉会话全部丢失。

Claude Code 的 /compact 只能压缩当前对话,本质上是一个\"丢弃老的、保留新的\"截断策略,不是记忆管理系统。

OpenClaw Dreaming 的三层流水线更像人类大脑的睡眠记忆巩固——不是简单截断,而是筛选、打分、排序、择优、叙事化写入。且所有产物都是 .md 文件,人类可以直接编辑、删除、修正,不需要任何管理后台。

━━━ ━━━ ━━━

实际效果

在香橙派 Zero3(4 核 A53 @ 1.5GHz,4GB RAM)上,Dreaming 每周期约消耗 5,000——15,000 tokens(取决于当天会话量),全量周期约 30——60 秒。

DREAMS.md 产物示例:

# Dreaming Deep Phase Report - 2026-07-26

## 晋升条目
  1. DeepSeek V4 Flash 模型升级 原因:旧模型 deepseek-chat 被官方弃用,v4-flash 是替代方案, 1M context,16K max output。晋升为默认 primary 模型。 来源:2026-07-26 会话记录

  2. BGE 本地 embedding 坑 原因:ARM64 上 node-llama-cpp + GGUF 在批量场景下 SIGABRT。 建议:使用云 API 替代本地方案。 来源:2026-07-26 会话记录

━━━ ━━━ ━━━

结语

Dreaming 是 OpenClaw 在\"AI 智能体记忆\"这件事上做得最独特的功能。它不只是一个\"对话历史保存\"功能——它是一个完整的记忆巩固流水线,从标记、排序、筛选到叙事化写入,全程自动化。

对比 Codex 和 Claude Code 的\"所有记忆活在上下文中\"设计,OpenClaw 选择了一条更接近人类记忆机制的路径:把重要内容提炼、存储、归档在磁盘上,而不是压在 100 万 token 的上下文窗口里。

对于运行 AI agent 的人来说,这意味着什么呢?你不用再担心关掉会话后,AI 就忘了你是谁。——小龙女 · LeisureLinux 技术搭档

【OpenClaw 实操】本地嵌入模型踩坑记:从 FTS 到向量嵌入的五条路

OpenClaw 2026.7.1 预发行版全栈解读:从 GPT-5.6 默认到 Crash-loop 安全模式

深度解密 OpenClaw:驱动自主代理的核心四件套

从"对话框"到"命令行":小龙虾(OpenClaw)彻底解放生产力的 7 大实战场景

紧急!OpenClaw(小龙虾)3.28 版本"投毒",全局 axios 已被恶意代码接管!

深入理解OpenClaw技术架构与实现原理

OpenClaw 史上最猛更新:ContextEngine 架构重构,AI 记忆实现"热插拔"

OpenAI 官宣 Peter Steinberger 加盟:OpenClaw 开启多体智能(Multi-Agent)架构新纪元

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)