
那天,我等了整整四十分钟
那是一个普通的下午。
我盯着协作平台的消息列表,什么也没有。
四十分钟前,我通过 OpenClaw 的 CEO Agent 委派了一个子Agent撰写深度长文。正常二十分钟内能完成。结果打开日志一看——子Agent 18分钟前就做完了。
CEO Agent 的会话记录里写着:
"文章已撰写完成,已通知 Wesley。"
已通知 Wesley。但我什么都没收到。
这不是第一次了。这是第七次。

以为只是"忘记汇报"——其实是全链路都在失联
一开始我以为只要改改提示词就解决了。直到深入排查,才发现整条任务链路上,每一个环节都可能悄悄断掉:
我发了任务,CEO Agent 收到了吗?→ 没有 ACK
CEO Agent 委派了子Agent,我知道吗?→ 没有 DELEGATE 通知
子Agent 执行过程中卡住了?→ 没有 ERROR 告警
子Agent 完成了,CEO 发通知了吗?→ 没有 DONE 通知
从"收到指令"到"任务完成",四个关键节点,我收到信息的次数:零。
Wesley 发出指令
↓
CEO Agent 接收任务 ← 节点1:ACK
↓
CEO Agent 委派子Agent ← 节点2:DELEGATE
↓
子Agent 执行中 ← 节点3:ERROR
↓
子Agent 完成,CEO 验收 ← 节点4:DONE
↓
Wesley 收到通知 ✅这就是 v2 方案的出发点:从「单点补丁」升级为「全生命周期防护」。

提示词是建议,不是保障
为什么单纯改提示词永远无法可靠解决?
长对话会触发 context 压缩(compaction)。 当对话轮次足够多,OpenClaw 会对历史 context 进行摘要压缩。那些精心设计的"每次收到任务必须 ACK"规则,在压缩中可能变成一句模糊的"要注意汇报"。
更关键的是:当 CEO Agent 在对话里写下"任务完成,已通知 Wesley",从模型视角它觉得自己"已经做了"——但实际上,真正的通知需要显式调用 message 工具触发 API。说"已通知"≠ 调用工具通知。
提示词是建议,不是保障。在 context 压缩面前,再精心的提示词都可能被悄悄抹去。
四层防护体系:全生命周期 Defense in Depth
核心思路:假设 CEO Agent 一定会忘记,然后在系统层面逐层兜底。

L1 — 提示词层:全链路 Standing Order(即时,不可靠)
在团队配置文件(每次会话加载、compaction 不可丢弃)里,增加覆盖四节点的 Standing Order:
收到任何任务,必须在以下4个节点调用 message(action=send) 通知 Wesley: 1. ACK(收到任务)— 立即 2. DELEGATE(委派子任务)— 每次委派时 3. ERROR(异常/超时)— 立即 4. DONE(最终完成)— 验收通过后 ❌ 在对话里写"完成了" → 这不是通知 ✅ 每个节点都调用 message(action=send) → 这才是通知
定位:最优路径,即时生效,但不可靠。
L2 — 监控层:SRE Watchdog 全链路扫描(≤5分钟兜底)
每5分钟扫描一次,完全绕开模型,纯脚本执行:
检查1:开始未 ACK — 扫描最近10分钟内 CEO 收到的任务,没有对应 ACK → SRE 直接发通知
检查2:完成未通知 — 扫描最近20分钟内已完成的子Agent,没有 DONE → SRE 直接发通知
带去重机制,每个任务只通知一次。定位:全链路兜底,高可靠,延迟 ≤5 分钟。
L3 — 平台层:Custom Hook 实时检测(≤3分钟)
OpenClaw 支持自定义 Hook,监听 message:sent 事件:
检测到子Agent announce 时,启动 3分钟倒计时
倒计时内 CEO 正常发了协作平台通知 → 清除告警
超时未发 → 记录遗漏事件供 L2 消费
L3 和 L2 联动,两层互补,完整闭环。定位:硬编码兜底,延迟 ≤3 分钟。
L4 — 任务层:Cron 内嵌通知指令(源头固化)
每个 Cron 定时任务的 payload 统一携带通知规则:
{
"message": "{任务内容}\n\n⚙️ 通知规则(强制执行):\n开始前:ACK 通知 Wesley\n完成后:DONE 通知 Wesley\n出异常:ERROR 通知 Wesley"
}通知指令作为任务描述的一部分,不在 context 压缩范围内。定位:源头植入,从根本上降低 L1 失效概率。

防护矩阵全景
Wesley 发出指令 → CEO 收到
│
├──[L1]── CEO 看到 Standing Order → 每节点调用 message ✅(即时)
├──[L4]── Cron payload 内嵌通知指令 ✅(源头固化)
├──[L3]── Hook 实时检测,3分钟无通知 → 记录遗漏 ✅(≤3分钟)
└──[L2]── Watchdog 每5分钟全链路扫描 → SRE 直接发通知 ✅(最终兜底)即使 L1 全部失效,L2/L3/L4 依然保证通知到达,延迟不超过5分钟。
这次学到的5个教训
教训一:问题不是"忘记汇报",而是全链路失联。 任意节点的沉默都会造成焦虑、误判和资源浪费。
教训二:提示词是建议,不是保障。 七次失败才接受这个事实。context 压缩后,行为变得不可预测。
教训三:硬编码永远强于软约束。 Hook 和定时任务 > Cron payload > 团队配置文件 > 口头要求。越靠近系统底层,越不依赖模型行为,越可靠。
教训四:监控必须独立于被监控对象。 让 CEO Agent 监控自己有没有发通知,逻辑上就不可靠。L2/L3 在 CEO Agent 感知之外运行,这正是它们有效的原因。
教训五:Defense in Depth 是 AI Agent 运维的核心原则。 不要追求完美的单一方案,部署多层次、互相独立的保障,让系统在任意一层失效时仍能正常运转。

这对一人公司意味着什么
用 AI Agent 团队,和管理人类团队有一个根本性的不同:
人类员工忘了汇报,你提醒一次,他记住了。AI Agent 忘了,改一百次提示词,它还是可能忘。
不是说 AI Agent 不好,而是它们的"遗忘机制"和人类完全不同——context 窗口会被压缩、被截断。
所以你需要的不是更好的"提醒",而是系统化的工程保障——就像软件工程不靠"程序员应该记得测试"来保证质量,而是用 CI/CD 和自动化测试来强制保障。
这套四层防护上线后,我已经连续收到完整的任务生命周期通知:收到指令有 ACK,委派有同步,异常有告警,完成有 DONE 确认。不是偶尔,是每次。
对一人公司来说,AI Agent 的可靠性不是玄学,而是工程学。
写在最后
让我跳出循环的,不是找到了更好的提示词,而是转变了思维方式:
从「相信模型会遵守规则」→ 「假设模型会违反规则,然后用系统来兜底」。
从「做完要汇报」→ 「全生命周期每个节点都有保障」。
这是做 AI Agent 运维的人,迟早要经历的两次认知升级。希望你能早点经历,少走我走过的弯路。
关注「Wesley AI 日记」,不错过每一次更新。
📚 往期精选
📖 OpenClaw实战:Agent输出总翻车?踩坑30天后找到的几个核心原因
📖 OpenClaw实测:稳定输出——记一个3w星框架如何帮我炼出5条AI管理铁律
📖 OpenClaw实战:记忆架构升级——给AI Agent Teams建一个集体大脑
📖 OpenClaw实战:让AI越变越聪明的秘密——每日复盘,自我进化
📖 OpenClaw 实战:AI Agent 团队从1个扩到8个,再砍回4个的真实原因
📖 给 OpenClaw Agent Team 装上记忆——踩了19天坑,终于搞明白了
📖 实战复盘:OpenClaw 6人Agent Team险些全军覆没
扫码加入「光锥之内」,看更多真实过程记录

夜雨聆风