






















/dreaming on 或配置文件启用OpenClaw 代理每天都在积累记忆:每日笔记、会话记录、搜索召回痕迹。这些材料大多数当下有用,但不适合长期存储。没有统合作业,你会面临两个糟糕的结果之一:
MEMORY.md,被噪音撑大Dreaming 用三阶段后台扫描解决这个问题:对短期信号持续评分,只将超过证据阈值的信号升级。把这个过程想象成策展管道:摄入→反思→谨慎升级
关键洞察 Dreaming 是可选开启的,默认关闭。你决定 OpenClaw 何时、如何整合记忆。
启用后,memory-core 创建一个托管的 cron 作业(默认:每天凌晨 3 点),运行完整的 dreaming 扫描。每次扫描按顺序执行三个阶段:
浅睡阶段是摄入层。它会:
memory/YYYY-MM-DD.md),解析为片段memory/.dreams/session-corpus/ 下的每日语料库文件## Light Sleep 块⚠️ 重要 浅睡阶段绝不写入
MEMORY.md。它只暂存和记录信号。
REM 阶段在暂存的素材中寻找重复出现的主题。它会:
## REM Sleep 块⚠️ 重要 REM 阶段也绝不写入
MEMORY.md。它产生的是为深度阶段提供信息的反思性信号。
这是真正发生升级的地方。深睡阶段:
MEMORY.md 中带日期的 ## Promoted From Short-Term Memory 部分✅ 最佳实践 只有深睡阶段写入
MEMORY.md。这种分离确保噪音数据永远不会污染长期记忆。
短期召回存储中的每个候选都用六个加权信号评分。完整分解如下:
| 信号 | 权重 | 测量内容 |
|---|---|---|
浅睡和 REM 阶段命中在基础分数之上额外增加时间衰减加成(分别为最高 0.05 和 0.08)。
候选必须通过全部三个门限才能升级:
| 门限 | 默认值 | 含义 |
|---|---|---|
为什么要三个门限? 这些门限防止一次性提及被升级。记忆必须展示持续、多样的相关性 — 而非仅仅一次幸运的检索。
浅睡和 REM 阶段命中在基础信号分数上额外加分:
| 阶段 | 最大加成 | 条件 |
|---|---|---|
除了机器可读的状态,dreaming 在 DREAMS.md 中生成人类可读的 Dream Diary。每个有足够素材的阶段后,一个后台子代理会生成一个简短、富有创意的叙事条目(80-180 词),从一个"好奇、温柔、略带异想天开的心灵回顾这一天"的视角来写。
日记在 Gateway 的 Dreams 标签页可见,仅供人类浏览 — 它不是升级源。
memory/.dreams/)| 文件 | 用途 |
|---|---|
| 文件 | 用途 |
|---|---|
最快方式是在任意频道使用斜杠命令:
/dreaming on
或添加到配置文件:
{
"plugins": {
"entries": {
"memory-core": {
"config": {
"dreaming": {
"enabled": true
}
}
}
}
}
}
默认每天凌晨 3 点运行。改为每 6 小时一次:
{
"plugins": {
"entries": {
"memory-core": {
"config": {
"dreaming": {
"enabled": true,
"frequency": "0 */6 * * *"
}
}
}
}
}
}
/dreaming status
或通过 CLI:
openclaw memory status --deep
/dreaming off
查看如果现在运行深睡扫描会升级什么:
openclaw memory promote
运行深睡升级并将结果写入 MEMORY.md:
openclaw memory promote --apply
限制为前 5 个候选:
openclaw memory promote --apply --limit 5
用于调优阈值或理解评分:
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
查看 REM 阶段会产出什么,但不写入任何内容:
openclaw memory rem-harness
openclaw memory rem-harness --json
所有设置位于 plugins.entries.memory-core.config.dreaming。
| 键 | 默认值 | 描述 |
|---|---|---|
如果 MEMORY.md 增长太快:
phases.deep.minScore(尝试 0.85 或 0.9)phases.deep.minRecallCount(尝试 5)phases.deep.limit(尝试 5)phases.deep.maxAgeDays,让老候选更快过期如果什么都没有升级,丢失了重要上下文:
phases.deep.minScore(尝试 0.7)phases.deep.minRecallCount 降至 2phases.deep.limit 允许每次扫描更多升级phases.deep.maxAgeDays,给候选更多时间积累信号| 频率 | 适用场景 |
|---|---|
verboseLogging: true 可在事件日志中查看每个候选的分数openclaw memory promote-explain "<查询>" 检查特定候选memory/.dreams/events.jsonl 获取详细阶段执行日志每日笔记 + 会话 + 召回痕迹
│
▼
┌─────────────────────┐
│ 浅睡阶段 │ 摄入、去重、暂存、记录信号
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ REM 阶段 │ 提取主题、记录强化信号
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ 深睡阶段 │ 评分、阈值、升级 → MEMORY.md
└──────────┬──────────┘
│
▼
Dream Diary(DREAMS.md)— 仅人类可读叙事
关键集成点:
openclaw memory search)在正常代理运行期间将短期召回信号输入升级管道memory/YYYY-MM-DD.md)是浅睡阶段摄入的主要来源素材~/.openclaw/agents/<id>/sessions/*.jsonl)是辅助来源A:Dreaming 是 OpenClaw 的后台记忆统合作系统。它模拟生物睡眠周期 — 浅睡用于摄入,REM 用于模式识别,深睡用于记忆升级。它在空闲时间自动运行,将嘈杂的短期信号转化为经过筛选的长期知识。
A:没有 dreaming,你面临二元结果:要么过度升级(一切都进入 MEMORY.md,被噪音撑大),要么过少升级(什么都不存活,重要模式丢失)。Dreaming 使用六个加权信号和三个阈值门限的证据驱动评分,确保只有真正有价值、反复相关的内容被升级。
A:可以。用 openclaw memory promote 预览而不应用,或用 openclaw memory promote-explain "<查询>" 了解特定条目是否会升级。你也可以查看 Gateway 的 Dreams 标签页获取实时状态。
A:监控 MEMORY.md 增长速度。如果膨胀了,提高 minScore 和 minRecallCount。如果丢失了重要上下文,降低阈值并延长 maxAgeDays。events.jsonl 日志和 promote-explain 命令提供每个候选的可见性。
A:Dream Diary 仅供人类使用 — 它不是升级源。它旨在供你浏览和理解 OpenClaw 从你的会话中发现了什么有趣的东西。把它想象成一个好奇心的产物:一段温柔、略带异想天开的叙事,让记忆整合过程变得透明且有趣。
A:它们留在短期召回存储中,继续在未来的召回中积累信号。如果最终通过所有三个门限,它们将在未来的扫描中被升级。超过 maxAgeDays 的条目过期并从候选中移除。
OpenClaw 的 Dreaming 系统为 AI 代理记忆管理带来了有纪律的筛选。通过将摄入(浅睡)、反思(REM)和升级(深睡)分离,它确保你的长期记忆保持干净、相关且真正有用。
30 秒开始:
/dreaming on
明天早上回来查看 — Dream Diary 会在 Gateway Dreams 标签页等你。
要更深入调优,探索 openclaw memory promote --dry-run 和 openclaw memory status --deep 来了解底层发生了什么。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。