阅读时间 4 分钟

OpenClaw 的“梦境”功能是什么:一次把短期记忆变成长记忆的后台系统

OpenClaw 的 Dreaming 功能,指的是 memory-core 里的后台记忆整合机制。它处理近期对话、日记、回放片段和短期信号,再决定哪些内容进入长期记忆,哪些内容只保留为可审查的过程记录。

背景与定义

官方文档将 Dreaming 定义为 background memory consolidation system。该功能默认关闭,属于 experimental 范畴,需要用户显式开启。

Dreaming 相关输出分成两类:

  • 机器状态:写入 memory/.dreams/,用于保存 recall store、phase signals、checkpoint 和锁信息。
  • 可读叙事:写入 DREAMS.mddreams.md,用于展示 Dream Diary 和阶段摘要。

长期记忆仍然写入 MEMORY.md

调研范围

本文只围绕三件事展开:

  1. Dreaming 在 OpenClaw 中的职责是什么;
  2. 最近一次更新补了哪些能力;
  3. 这套机制有哪些明确边界。

功能机制

阶段作用结果
Light整理近期短期材料,做去重、分组和初步筛选不写入长期记忆
REM提炼主题、反思和模式,形成反思信号不写入长期记忆
Deep对候选内容评分并决定是否晋升写入 MEMORY.md

从官方描述看,这套设计有三个明显特征:

  • 阶段职责分离,避免把所有输入直接写进长期记忆。
  • Dream Diary 作为叙事层存在,和长期记忆写入分开。
  • phase policy、thresholds 和 storage behavior 被视为内部实现细节,不作为用户侧核心配置暴露。

因此,Dreaming 更接近一条记忆加工流水线,而不是单一功能按钮。

最近更新增加了什么

根据 GitHub 官方 release notes,v2026.4.9 与 Dreaming 相关的新增点集中在四类:

  • Grounded REM backfill:支持历史 rem-harness --path 回放,把旧日记重新送入 Dreaming 流程。
  • Diary commit/reset flows:补齐日记的提交与重置流程,便于回看和修正回放结果。
  • Structured Dreams UI:新增结构化 diary view,包含时间线导航、backfill/reset 控件和可追踪的 dreaming summary。
  • Grounded Scene lane:单独显示历史回放产生的 staged 结果,并提供安全的清理动作,避免与正常在线材料混在一起。

release notes 还提到对 grounded backfill 输入、日记写入、状态 payload 和 diary action classification 的加固,重点包括保留 source-day 标签、拒绝缺失或符号链接目标,以及规范 gateway backfill 的日记标题与元数据。

官方文档中的边界

  • Dreaming 是 opt-in,默认关闭。
  • 它负责记忆整合,不替代长期记忆本身。
  • Dream Diary 主要用于人类查看,不是 promotion source。
  • phase policy、thresholds 和 storage behavior 不属于用户层公开配置接口。

这类边界设计的作用,是把“可解释性”和“自动晋升”分开:用户能看到过程,但不会把过程输出直接当成最终记忆。

实际含义

从产品角度看,Dreaming 解决的是三个问题:

  • 减少人工整理记忆的成本;
  • 把短期噪音和真正有价值的内容区分开;
  • 保留一条可回放、可审查的记忆形成链路。

它的重点不在命名,而在于把长期记忆的形成过程做成一个可管理系统。

已知边界与注意事项

  • 该功能是实验性功能,默认关闭。
  • 内容晋升依赖评分和阈值,结果会受输入质量影响。
  • 历史回放如果边界不清晰,可能把噪音带回记忆流程,因此官方加入了 grounded lane 和输入校验。
  • Dream Diary 是解释层,不应与真正的长期记忆写入混为一谈。

总结

OpenClaw 的 Dreaming 功能,是围绕长期记忆整合设计的后台系统:Light、REM、Deep 三阶段协作,Dream Diary 提供过程可视化,最新更新则把历史回放、结构化查看和安全清理补了起来。它更适合被理解为“记忆加工与晋升机制”,而不是一个独立的对话特性。

参考来源