定时深度整合:将分散的 daily 日记提炼合并到 topic 文件,删除过时内容,保持 MEMORY.md 简洁可用。
触发:Cron 满足条件 OR 用户输入 "/dream-rem"
↓
Step 1 — 准备
读取 heartbeat-state.json
读取 MEMORY.md 索引
扫描 topics/ 目录,建立 topic 清单
↓
Step 2 — Orient(建立视野)
输出 topic 清单(文件名 + type + description)
检查 MEMORY.md 是否超限(200行/25KB)
↓
Step 3 — Gather(收集信号)【含核查清单】
确定扫描窗口:最近14天的 daily 文件
执行 ls memory/*.md,列出窗口内所有文件
逐个读取每个文件(不得跳过任何文件)
输出"已扫描文件清单(共 N 个)"
对照 topics/,识别:新信息 / 过时内容 / 矛盾
↓ [必须输出核查清单,才能进入下一步]
↓
Step 4 — Consolidate(整合执行)
按核查清单结果执行:
- 新信息 → 追加到已有 topic 或新建 topic
- 过时内容 → 更新或删除
- 矛盾 → 保留正确版本,删除错误版本
↓
Step 5 — Prune & Index(精简索引)
重写 MEMORY.md(≤200行 + ≤25KB)
更新 heartbeat-state.json
↓
Step 6 — 输出执行报告
扫描N个文件 / 新增N个 topic / 删除N个 / MEMORY.md行数
memory/heartbeat-state.jsonsessionCount(每次心跳代表一个新会话)MEMORY.md 索引,了解当前主题覆盖情况topics/ 目录,建立已有 topic 清单(文件名 + type + description)memory/ 或 memory/logs/)MEMORY.md 超限警告:若超过 200 行或 25KB,在提案中标记。
硬性要求:在扫描窗口内不得跳过任何文件。
ls memory/*.md 得到完整清单> 已扫描文件(共 N 个,窗口14天):
> - memory/2026-04-01.md ✓
> - memory/2026-04-03.md ✓
【核查清单 Gate】进入 Step 4 前,必须输出以下全部项,缺少任何一项不得进入整合:
若核查清单任何一项为空,必须重新确认,不得跳过。
按 Step 3 核查清单结果执行:
MEMORY.md:- 名称 — 一句话 hook(≤150字符)heartbeat-state.json 的 lastDreamAt,重置 sessionCount> ## 🌙 Dream 完成 · YYYY-MM-DD HH:MM
> 扫描窗口:14天
> 已扫描文件:N个
> 本次耗时:N分钟
>
> ### 整合结果
> | 类型 | 数量 | 说明 |
> |------|------|------|
> | 🌟 新增/更新 topic | N个 | - |
> | 🗑 清理过时记忆 | N条 | - |
> | 📋 MEMORY.md | N行(之前 M行) | ✅ 精简 |
>
> ### 本次主要变化
> - 新增:topics/xxx.md
> - 更新:topics/ccc.md
> - 删除:topics/ddd.md(过时)
>
> ### 下次整合预计
> YYYY-MM-DD HH:MM(≥5会话 + ≥24小时后自动触发)
topics/ 下"昨天" → "2026-04-04"首次安装后,请在终端执行以下命令创建定时任务:
openclaw cron add --name "记忆深度整合(Dream)" --every 12h --session isolated --timeout-seconds 600 --message "检查并执行记忆深度整合(dream-rem)。..." --announce
心跳状态文件:memory/heartbeat-state.json,内容如下:
{ "lastExtraction": null, "lastDreamAt": null, "sessionCount": 0 }
FileRead:读取 MEMORY.md、topics/、daily 文件FileWrite / FileEdit:修改 topics/、MEMORY.md、memory/heartbeat-state.json/dream-rem本 Skill 基于 CC 记忆系统设计,适配 OpenClaw v3.1.0
共 1 个版本