前几天我刚写过一篇复盘,讲我是怎么把 OpenClaw 调得越来越重、越来越僵的。
那篇文章写的是问题。 这篇文章写的是后续真正落地的一次修正。
这次我没有再去追求什么“更完整的规则体系”,而是只做了一件事:
把真正该自动运行的东西,和只该留在文档里的东西,重新分开。
最终改动不多,但我觉得这比继续堆规则有价值。
一、这次要解决的不是“坏”,而是“乱”
系统其实已经能跑:
- 主会话能承接上下文
MEMORY.md和每日memory/YYYY-MM-DD.md都在- Dreaming 任务也已经挂着
- Telegram 通道也通
问题在于,运行层的职责开始有点打架了。
最典型的两个点:
HEARTBEAT.md里写了“每天 8:30 汇报学习内容”- Cron 里也有一条“每天 8:30 汇报学习内容”
这意味着同一件事同时存在两种调度思路:
- 一种是心跳轮询时“顺手看看要不要做”
- 一种是精确定时“这个点必须做”
这不是冗余得更稳,而是定义冲突。
因为 Heartbeat 和 Cron 天生就不是同一种东西。
二、我这次重新划清了两条线
1. 精确定时,一律交给 Cron
像这种需求:
- 每天固定时间汇报
- 每周固定时间提醒
- 某个时间点必须触发
本质上都属于精确定时任务。
这种任务不应该依赖 Heartbeat。
Heartbeat 更适合的,是下面这类事情:
- 邮箱 + 日历 + 天气这种可以顺手合并的巡检
- 不要求精确到分钟
- 时间稍微漂一点也没关系
所以这次我直接把规则写死了:
- 精确定时 = Cron
- 可漂移巡检 = Heartbeat
HEARTBEAT.md 默认清空,只保留说明,不再挂固定汇报任务。
2. 长期上下文,只保留真正长期的东西
另一个要收口的地方,是上下文本身。
之前比较容易混的,是下面这几层:
- 当前会话里讨论出来的临时细节
- 每天日志里的过程性记录
- 真正长期有效的偏好、原则、坑点
这三种东西不能混着放。
我现在的处理方式是:
memory/YYYY-MM-DD.md记录原始过程MEMORY.md只保留长期有效的结论- 临时任务细节默认不进入长期记忆
比如:
- “以后固定 8:30 报告”这种运行规则,应该交给 Cron
- “用户希望全程中文、先核实再下结论”这种,才应该留在长期上下文里
- 某次临时排障时的碎片细节,不应该永久塞进 MEMORY
这听起来很朴素,但对 Agent 很重要。
因为上下文不是越多越好。 上下文的价值,在于它有没有长期复用价值。
三、这次顺手还修了一个容易忽略的坑
我在检查 Cron 的时候,发现那条“8:30 Sydney”的任务,实际 cron 表达式写错了。
任务名字叫:
8:30 AM Sydney learning report
但调度表达式当时不是一个真正的“悉尼时间早上 8:30”。
这类问题特别典型:
- 名字看起来对
- 描述看起来也对
- 但真正执行的调度字段不一定对
如果不核对实际配置,很容易产生一种错觉:
“任务已经配好了,只是偶尔没跑。”
实际情况可能是:
“它从一开始就没在你以为的时间跑。”
所以我这次没有只改文档,而是把 Cron 任务本身也一起修了:
- 改成真正的 Sydney
08:30 - 执行时走轻上下文
- 模型切到更适合这种短汇报的
fast - thinking 压到
low - timeout 放宽,避免上一次那种超时
这套组合的目标很简单:
不是让它显得更聪明,而是让它更稳定地把小事做完。
四、我最终定下来的默认规则
为了避免后面再混,我把默认规则收成了这一版:
运行规则
- 主会话负责承接长期上下文
- 用户不需要手动“清上下文”或“补上下文”
- 真正长期的偏好和原则写进长期记忆
- 临时任务细节默认不固化
调度规则
- 精确定时任务走 Cron
- 低频巡检才走 Heartbeat
HEARTBEAT.md默认留空- 固定学习汇报由 Cron 直接发送
这套规则没有很“高级”。 但它比“再补一层规则”有用得多。
五、为什么我现在更相信“少一点,但准一点”
过去几次折腾下来,我越来越确定一件事:
AI 助理系统真正怕的,不是规则少,而是职责不清。
只要职责一乱,后面就会出现一串连锁问题:
- 文档和运行规则混在一起
- Heartbeat 和 Cron 重复干活
- 临时信息被误塞进长期记忆
- 用户以为在“优化”,实际是在增加系统摩擦
这次修复本质上不是一次功能升级。
它更像一次系统减脂:
- 去掉重复职责
- 去掉错误分层
- 去掉不该常驻的运行负担
最后留下来的,不一定更多,但一定更稳。
如果你也在调 OpenClaw、或者别的长期运行型 Agent,我现在会建议你先问自己三个问题:
- 这条规则是“设计说明”,还是“运行时必须注入”的东西?
- 这件事需要“固定时间触发”,还是“有空顺手检查”就行?
- 这条信息真的是长期有用,还是只是今天这次对话里的临时细节?
只要这三个问题答清楚,很多“越配越乱”的问题,前面就能拦住。
信息采集和实际修正时间:2026-04-17(UTC)/ 2026-04-18(Australia/Sydney)。