乐于分享
好东西不私藏

不一样的OpenClaw教程(廿七):Dreaming进阶实战

不一样的OpenClaw教程(廿七):Dreaming进阶实战

Dreaming Series · Part Two

当Agent学会写梦日记——Dreaming进阶实战

梦跑完了到底产出什么、回填什么、怎么读——以及升级的坑

第25篇讲了Dreaming的底层机制——三阶段模型、6维加权评分、三重门控。那篇从Claude Code源码泄露事件切入,拆了两套做梦机制的设计理念差异。重点在”怎么算的”。

从那之后OpenClaw从4.5一路到5.4,Dreaming加了不少东西。这篇讲的是”产出什么、怎么用”。

01Dreaming跑了这么久,到底写了什么

4.5刚出的时候,Dreaming输出很简陋——往当天日记里写一个章节,内容是触发统计和候选分数。Agent做了梦,但梦的内容是技术日志。

5.4版本完全不同了。三个实实在在的产出物,各自独立可控。

DREAMS.md——独立的梦日记

workspace根目录下的独立文件:

# Dream Diary*May 7, 2026*The user talked about memory systems today — specifically how Active Memory complements Dreaming. There were recurring questions about model configuration and timeout handling…

每条用---分隔,日期用星号包裹。内容由叙事子Agent生成,有叙事感——能读下去。

MEMORY.md里的Dreaming章节

如果配了inlineboth模式,每天日记里有Dreaming专属区块:

## Light Sleep<!– openclaw:dreaming:light:start –>– User prefers practical examples over abstract theory.– Active Memory was tested and tuned today.<!– openclaw:dreaming:light:end –>

HTML注释精确标记边界。Agent更新时替换标记之间的内容,不影响日记其他部分。

memory/dreaming/目录——独立存档

separate模式下创建三个子目录,每天每个阶段一个文件。

三种模式怎么选

模式
适合场景
缺点
inline
简单不想多文件
日记变长
separate
需要独立存档
多一套文件
both
两者兼顾
磁盘多占一点

我选的both:三份记录各有用处。

02历史回填——把老session翻出来做一次梦

这是4.7版本加的最有用的功能。Dreaming是4.5才出的,之前几个月的聊天记录从没经过recall trace系统——DRDreaming根本看不到它们。

源码里这个过程叫BACKFILL。

扫描sessions目录→提取对话摘要→喂给评分管线→评分过滤→写进DREAMS.md。每个回填条目带marker:

<!-- openclaw:dreaming:backfill-entry day=2026-04-15 -->

配置:

“dreaming”: {  “backfill”: {    “enabled”: true,    “maxAgeDays”: 90  }}

90天在我的机器上跑3-5分钟。完成后建议关掉——没必要每次跑。

回填后DREAMS.md里多出十几条早于今天的日记。之前几个月的对话被重新整理成梦。

03叙事生成——子Agent写的梦境叙事

4.10版本加的功能。评分结束→选出得分最高的记忆片段→起narrative子Agent→写成连贯文字→写进DREAMS.md。

Prompt结构:指令 + 最多12条记忆片段 + 反复出现的主题 + 已固化的记忆。不是创意写作,是把”今天发生了什么事”串起来。

模型配置:

“dreaming”: {  “execution”: { “model”: “deepseek-chat” }}

子Agent挂了有fallback——从片段里取第一条写进去。当前版本叙事只是”可读”,不追求文学性,追求准确性。

04Short-term Promotion的实际运作

每天干的事:扫描recall traces→6维评分排序→三道门控过滤→写入MEMORY.md→起narrative子Agent写日记→写deep dreaming报告。

通过率很低。典型输出:

memory-core: dreaming promotion complete   (workspaces=1, candidates=3, applied=1, failed=0)

3个候选过1个。三重门控卡得很死。这是设计选择——保守总比塞噪音强。

管理型Cron:5.4版本Dreaming自己管理cron。启动时自动创建、配置变了自动更新、被删了心跳重建。完全零维护。

05怎么验证和阅读梦日记

确认在跑:查cron列表找Memory Dreaming Promotion标记了managed-by=memory-core的任务。查日志搜memory-core: dreaming

阅读:打开DREAMS.md直接读。英文内容可以让Agent翻译。

故障排查:不触发查cron配置。通过率0调低门控或多用memory_search。DREAMS.md为空可能配了inline没配separate。叙事失败查模型配置。

06升级插曲:这升级真坑老子

上面列了一堆美好的新功能。但有个前提——你得先活到新版本。

我一般对小版本的OpenClaw升级调教稳定之后,就不怎么动了。日常Ai军团一直正常。后来夸大版本升级导致,一堆东西坏了。下面是亲历。

坑一:飞书通道直接消失

4.x升到5.x后,官方把飞书从内置插件拆成了独立npm包。升级完重启Gateway,飞书State栏是空的。通道没了。

我第一反应是改配置。channels.feishu.enabled: true,明明写着,怎么不通?翻遍openclaw.json找不出问题。最后在一堆启动日志深处找到一条passive warning:plugin not installed: feishu。你没翻启动日志——根本不知道通道怎么没的。修起来就一行命令,定位花了快一个小时。

坑二:config被写废

从4.x升5.x后跑openclaw config validate,报Config validation failed。所有CLI命令全挂。

打开openclaw.json一看,meta.lastTouchedAt字段后面多了一个尾逗号。JSON解析器直接拒绝。自动备份.last-good也被同一条bug写坏了——备份了一个不可用的配置。还好我有外部备份,复制回来才活过来。

坑三:cron静默挂掉

4.x升5.x后,第二天所有cron任务都没跑。openclaw cron list能看到任务,状态也正常,但就是不触发。翻遍日志找不到报错。

排查到最后:config validate说OK、doctor也说OK,但cron payload里的模型引用被新版allowlist静默拒绝了。配置文件里模型写得明明白白,verify工具过了两遍——实际运行时就是给你reject。这种bug最恶心,工具告诉你没问题,但事情就是不对。

坑四:依赖模块莫名消失

另一次升级Gateway起不来,报ERR_MODULE_NOT_FOUND。dist/里引用的文件hash跟实际文件名对不上——打包的时候命名没对齐。发布包的问题,clean install也会触发。改配置没用,等官方修。

怎么都是这些问题

根因就几类:

插件偷偷外置——通道拆成独立npm包,升级不自动装不报错。你不知道通道没了,通道就是没了。

config mutate不校验——写配置不验证合法性,连备份一起坏。

allowlist静默过滤——validate过了、doctor过了,运行时才拒绝。

发布包本身有坑——不是你的问题,是那一个版本的问题。

怎么活下来

调教好一个版本、所有东西跑顺之后,先备份整套配置再考虑升级。~/.openclaw/openclaw.json + ~/.openclaw/agents/目录 + workspace下的MEMORY.mdmemory/。全量复制到外部路径。别指望自动备份——坑二已经教做人了。

升级出问题别第一时间跑doctor --fix。先跑openclaw config validateopenclaw gateway status看报什么错。报错看不懂也别怕——贴给AI。最快的方法就是用AI辅助排查,OpenCode也好ChatGPT也好,日志和报错贴进去让AI帮你读。

OpenClaw版本迭代快,每次升级都有概率翻车。稳定了就少动,不是每个版本都值得追。版本号涨了不代表你的系统更好了。老版本有时候就是最稳的版本。

07总结

第25篇+这篇合起来才是完整画面:一个讲算法层怎么评怎么筛,一个讲应用层产出什么怎么读——再加上升级血泪史。

四块拼图在5.4版本基本凑齐:三阶段模型筛选→叙事子Agent编写→DREAMS.md存档→回填补全历史。

从被动执行到主动管理记忆。Agent每天后台默默整理、默默写日记、默默沉淀。不是在教它记住什么——它自己在学。


往期系列🔥

不一样的OpenClaw教程(廿六):让你的Agent自动翻记忆——Active Memory实战拆解

2万字详解!一个人的超级AI军团:基于OpenClaw的多智能体蜂群

不一样的OpenClaw教程(廿五):重磅更新!OpenClaw也会做梦了!从Claude Code到OpenClaw源码级拆解!

不一样的OpenClaw教程(廿四):重磅更新!OpenClaw Task Flow全解析

不一样的OpenClaw教程(廿三):把OpenClaw变成一个OpenAI——API服务化实战

不一样的OpenClaw教程(廿二):OpenClaw记忆系统深度拆解

不一样的OpenClaw教程(廿一):OpenClaw的多智能体编排——OpenProse实战

不一样的OpenClaw教程(二十):Lobster工作流引擎–让Agent按剧本干活

不一样的OpenClaw教程(十九):聊几百轮不崩——上下文管理与模型容灾

不一样的OpenClaw教程(十八):Hook实战——让Agent对事件做出反应

不一样的OpenClaw教程(十七):让Agent自己上班——从定时任务到自治运行

不一样的OpenClaw教程(十六):给Agent划一条安全边界——沙箱安全与执行审批

不一样的OpenClaw教程(十五):我把一只AI龙虾放养在了小红书,它叫图犬

不一样的OpenClaw教程(十四):OpenClaw 插件实战:配合HEARTBEAT打通GitHub主动通知

不一样的 OpenClaw 教程(十三):Agent操作浏览器控制原理与明文密钥管理

不一样的OpenClaw系列(十二):OpenClaw的底层智能体引擎——Pi Coding Agent

不一样的OpenClaw系列(十一):让你的Agent指挥外部编码Agent——ACP实战

不一样的OpenClaw系列(十):每天跑的三个智能工作流

不一样的OpenClaw系列(九):一个Agent不够用的时候——Spawn与多Agent协作

不一样的OpenClaw系列(八):Gateway的另一半——调度、安全与设备管理

不一样的OpenClaw系列(七):从一条消息说起——Gateway全解析

不一样的OpenClaw系列(六):OpenClaw记忆系统详细拆解

不一样的 OpenClaw 系列(五):我把监控搬进了飞书

不一样的 OpenClaw 系列(四):用飞书玩转智能体服务中心/企业团队大管家

不一样的 OpenClaw 系列(三):七个文件定义一个 AI 管家

不一样的OpenClaw系列(二):草履虫级安装部署上手指南

不一样的OpenClaw系列(一):它不是另一个 OpenCode


版权声明:本文由AI技术博客原创,转载请注明出处。

#Agent#HermesAgent#AI智能体#自进化#开源Agent#OpenClaw#AI#OpenClaw#ActiveMemory#AI #OpenClaw #智能体 #记忆系统 #Dreaming