Dreaming(实验性)
Dreaming 是memory-core 中的后台记忆巩固系统。
它帮助 OpenClaw 将强烈的短期信号转移到持久记忆中,同时
让这个过程保持可解释且可审查。
Dreaming 为可选启用,默认禁用。
Dreaming 会写入什么
Dreaming 会保留两类输出:memory/.dreams/中的机器状态(召回存储、阶段信号、摄取检查点、锁)。DREAMS.md(或现有的dreams.md)中的人类可读输出,以及位于memory/dreaming/<phase>/YYYY-MM-DD.md下的可选阶段报告文件。
MEMORY.md。
阶段模型
Dreaming 使用三个协作阶段:| 阶段 | 目的 | 持久写入 |
|---|---|---|
| 浅睡 | 整理并暂存最近的短期材料 | 否 |
| 深睡 | 为持久候选项评分并提升 | 是(MEMORY.md) |
| REM | 反思主题和反复出现的想法 | 否 |
浅睡阶段
浅睡阶段会摄取近期的每日记忆信号和召回轨迹,对其去重, 并暂存候选条目。- 从短期召回状态、近期每日记忆文件,以及可用时的脱敏会话转录中读取。
- 当存储包含内联输出时,会写入一个受管理的
## Light Sleep区块。 - 记录强化信号,供后续深睡排序使用。
- 绝不会写入
MEMORY.md。
深睡阶段
深睡阶段决定哪些内容会成为长期记忆。- 使用加权评分和阈值门槛对候选项进行排序。
- 要求
minScore、minRecallCount和minUniqueQueries全部通过。 - 在写入前从实时每日文件中重新提取片段,因此会跳过过时或已删除的片段。
- 将提升后的条目追加到
MEMORY.md。 - 将
## Deep Sleep摘要写入DREAMS.md,并可选写入memory/dreaming/deep/YYYY-MM-DD.md。
REM 阶段
REM 阶段提取模式和反思信号。- 从近期短期轨迹中构建主题和反思摘要。
- 当存储包含内联输出时,会写入一个受管理的
## REM Sleep区块。 - 记录供深睡排序使用的 REM 强化信号。
- 绝不会写入
MEMORY.md。
会话转录摄取
Dreaming 可以将脱敏后的会话转录摄取到 Dreaming 语料中。当 转录可用时,它们会与每日记忆信号和召回轨迹一起输入到浅睡 阶段。在摄取前,个人和敏感内容会被脱敏。Dream Diary
Dreaming 还会在DREAMS.md 中维护一份叙事性的 Dream Diary。
每个阶段积累到足够材料后,memory-core 会运行一次尽力而为的后台
子智能体轮次(使用默认运行时模型),并追加一条简短的日记条目。
这份日记是供人类在 Dreams UI 中阅读的,不是提升来源。
另外还有一条基于事实的历史回填通道,用于审查和恢复工作:
memory rem-harness --path ... --grounded可预览基于历史YYYY-MM-DD.md记录生成的 grounded 日记输出。memory rem-backfill --path ...会将可逆的 grounded 日记条目写入DREAMS.md。memory rem-backfill --path ... --stage-short-term会将 grounded 的持久候选项暂存到与常规深睡阶段已使用的同一短期证据存储中。memory rem-backfill --rollback和--rollback-short-term会移除这些已暂存的回填产物,而不会影响普通日记条目或实时短期召回。
深睡排序信号
深睡排序使用六个加权基础信号以及阶段强化:| 信号 | 权重 | 描述 |
|---|---|---|
| 频率 | 0.24 | 该条目积累了多少短期信号 |
| 相关性 | 0.30 | 该条目的平均检索质量 |
| 查询多样性 | 0.15 | 使其浮现的不同查询/日期上下文 |
| 近期性 | 0.15 | 随时间衰减的新鲜度分数 |
| 巩固度 | 0.10 | 跨多日重复出现的强度 |
| 概念丰富度 | 0.06 | 来自片段/路径的概念标签密度 |
memory/.dreams/phase-signals.json 添加一个随近期性衰减的小幅加成。
调度
启用后,memory-core 会自动管理一个用于完整 Dreaming
扫描的 cron 任务。每次扫描都会按顺序运行各阶段:light -> REM -> deep。
默认节奏行为:
| 设置 | 默认值 |
|---|---|
dreaming.frequency | 0 3 * * * |
快速开始
启用 Dreaming:斜杠命令
CLI 工作流
使用 CLI 提升来进行预览或手动应用:memory promote 默认使用深睡阶段阈值,除非通过
CLI 标志覆盖。
解释某个特定候选项为什么会或不会被提升:
关键默认值
所有设置都位于plugins.entries.memory-core.config.dreaming 下。
| 键 | 默认值 |
|---|---|
enabled | false |
frequency | 0 3 * * * |
Dreams UI
启用后,Gateway 网关的 Dreams 标签页会显示:- 当前 Dreaming 启用状态
- 阶段级状态和受管理扫描是否存在
- 短期、grounded、信号以及今日已提升数量
- 下次计划运行时间
- 用于暂存历史重放条目的独立 grounded 场景通道
- 由
doctor.memory.dreamDiary支持的可展开 Dream Diary 阅读器