TL;DR:OpenClaw 在 2026 年 9 月的文档里把自动化机制拆成了 5 件套:Automations(定时调度)、Heartbeat(环境监控)、Tasks(后台任务台账)、Standing Orders(常驻指令)、Hooks(事件钩子),外加一个跨件的 Task Flow 编排层。新人最容易踩的坑不是装不上,而是选错机制。本文用一份「决策矩阵 + 4 步选型流程」把这 5 件套串起来,并配上 3 个真实场景(每日简报 / 死链巡检 / 邮件回复合规)告诉你哪一格点哪个。
本文配图为 2026-09-22 06:02 Chrome headless 抓取的 OpenClaw 官方文档/automation 总览页(1440×2400),可点击放大查看决策流程图与对照表。

目录
- 一、为什么 OpenClaw 要把自动化拆成 5 件套
- 二、5 件套决策矩阵(核心表格)
- 三、4 步选型流程:先问 4 个问题
- 四、3 个真实场景对照演练
- 五、最容易写错成「定时炸弹」的 4 种姿势
- 六、常见问题(FAQ)
- 七、结论:先 Automations 跑通,再叠加其它
一、为什么 OpenClaw 要把自动化拆成 5 件套
如果你装好 OpenClaw 第一次想「让 Agent 每天早上 9 点自动给我发个简报」,搜官方文档会撞墙——因为官方在 /automation 总览页直接甩了一张决策图,告诉你:定时任务去 Automations,环境感知去 Heartbeat,后台工作记录去 Tasks,长存指令去 Standing Orders,事件触发去 Hooks。再加一个跨件的 Task Flow 做多步编排。
这不是文档写得分散,是 OpenClaw 的设计哲学:每一种「自动化」的背后都有不同的运行时上下文、任务记录策略和投递通道。强行用一个 cron 包打天下,结果就是「每天 9 点任务跑得挺勤,但产出垃圾邮件」或「我装了一个心跳,结果主会话被它撑爆」。本文要解决的就是这件事——让你在动手之前先选对机制。
为了写准这件事,我在 2026-09-22 06:02 重新抓了一次 docs.openclaw.ai/automation 和 /automation/cron-jobs,并对比了 9/19 的 v2026.9.5 Atomic Updates 文档(见上一篇文章《OpenClaw 2026.9.5 Atomic Updates 与 Schema 21 迁移》)和 9/21 的 Extended-Stable 文档(见《OpenClaw 2026 路线:从 Extended-Stable 到 Maturity Scorecard》)中关于调度与心跳的章节,把 5 件套的边界画清。
二、5 件套决策矩阵(核心表格)
下表把 5 件套的核心维度摆在一起。判断维度来自 docs.openclaw.ai/automation 总览页的「Quick decision guide」表格,加上我从 /automation/cron-jobs 和 /gateway/heartbeat 抓的额外说明:
| 机制 | 触发方式 | 会话上下文 | 任务记录 | 投递通道 | 典型场景 |
|---|---|---|---|---|---|
| Automations | 一次性 / 间隔 / cron 表达式 / webhook | 隔离 / 当前 / 命名 / main 四选一 | 隔离运行会创建 detached 任务;main-session 不创建 | channel / webhook / silent | 每日 9 点发简报、20 分钟后提醒、每周深度分析 |
| Heartbeat | 系统所有,间隔默认 30 分钟 | main session(可隔离) | 不创建任务记录(避免污染台账) | owner-routed alerts / silent | 环境感知「有没有新邮件 / 任务在排队」 |
| Tasks | 被动记录 | 跟随宿主(ACP run / subagent / isolated automation) | 任务台账本身 | 不直接投递 | 事后审计「昨晚那个 detached 任务干了啥」 |
| Standing Orders | 无触发,被注入 | 每次会话启动自动注入 | 无(不算任务) | 无 | 「每次回复前先查合规」「别在外部频道发 token」 |
| Hooks | 生命周期事件(/new / /reset / /stop / 压缩 / 网关启动 / 消息流) | 脚本独立运行 | 无 | 无(自己决定副作用) | 会话重置后跑清理脚本、每次工具调用前打日志 |
| Task Flow | 编排驱动 | 跨多个 background task | 每个 step 一个 task | 汇总到调度端 | 「先调研 → 再写 → 再审」三步研究流水线 |
一句话区别:Automations 是「钟表」,Heartbeat 是「温度计」,Tasks 是「账本」,Standing Orders 是「家训」,Hooks 是「门铃」,Task Flow 是「流水线」。你需要的到底是哪个,先看这一行。
三、4 步选型流程:先问 4 个问题
OpenClaw 总览页给了一个 mermaid 决策图,但太抽象。落地到「我打开终端之前先问自己什么」,我整理出 4 个连续问题:
第 1 问:这件事需要「定时」吗?
- 是 → 进 Automations。一次性提醒用
--at,周期用--every,cron 表达式用--cron。 - 否,但需要「环境感知」(要不要主动打扰主会话) → 进 Heartbeat。
- 否,但需要「每次会话都自动遵守」 → 进 Standing Orders(写到
AGENTS.md)。 - 否,但需要「某个事件触发」 → 进 Hooks。
第 2 问:跑这件事要不要自己的会话上下文?
- 要(不希望污染主会话 / 想用别的模型) → Automations 选
--session isolated或--session <name>。 - 不要(直接往主会话里发一句) → Automations 选
--session main或选 Heartbeat。
第 3 问:这件事会产生 detached 任务记录吗?
- 要审计、能用
openclaw tasks list查 → Automations 选--session isolated(会自动建 task 记录)。 - 不需要记录,只想「悄悄看一眼有没有事」 → Heartbeat(系统所有,不建任务)。
第 4 问:要做多步流水线吗?
- 是(要可重试、可看 revision、可单独 cancel 某一步) → 走 Task Flow(
openclaw tasks flow list|show|cancel)。 - 否 → 单步 Automations 够了,不要硬上 Task Flow。
把这 4 问答案对齐 5 件套,对照矩阵点一格就行。下面给 3 个真实场景。
四、3 个真实场景对照演练
场景 A:每日 9 点发一条「今日待办 + 死链巡检」简报到飞书
选型路径:
- 定时 → Automations。
- 要独立上下文(用便宜模型跑扫描,主会话继续工作) →
--session isolated。 - 要任务记录(万一没收到能查) → isolated 自动建 task。
- 单步 → 不上 Task Flow。
等价 CLI(参考 /automation/cron-jobs):
openclaw automations create "0 9 * * *" --tz Asia/Shanghai \
--name "morning-briefing" \
--session isolated \
--message "扫描今日待办 + 死链,结果发到飞书 #timew-ops 频道" \
--model minimax/minimax-m3 \
--delivery channel:feishu:#timew-ops \
--description "每天 9 点发早报,模型 minimax-m3(省钱)"
注意点:定时 cron 在 OpenClaw 里永远用墙钟时间 + 显式 --tz,文档明确说「never pre-convert to UTC」。这是 9/19 Atomic Updates 之后仍然保留的边界,不要图省事把 0 9 * * * 写成 UTC。
场景 B:环境监控「每 30 分钟看一眼主会话队列有没有堆积」
选型路径:
- 需要环境感知,不需要打扰主会话 → Heartbeat(不要走 Automations)。
- 默认 30 分钟够用;如果要 15 分钟,改 Heartbeat 配置里的 interval。
- 不创建任务记录 → 符合预期。
等价配置(参考 /gateway/heartbeat):
# 在 Gateway 配置中
heartbeat:
interval: 30m
scratch: "$HOME/.openclaw/workspace-timew/HEARTBEAT.md"
on_idle: "skip"
notify_on: ["queue_backlog", "stale_subagent"]
这里最常踩的坑:把「每隔 30 分钟跑一次扫描」写成 Automations。区别在于 Automations 的每一次 run 都会创建 detached task 记录(除非显式 --session main),跑一周后台账会被噪声淹没。Heartbeat 是系统所有的监控轮询,不入账。
场景 C:每次回复外部用户前,先过一道合规扫描
选型路径:
- 不依赖时间,依赖「每次会话都遵守」 → Standing Orders,写入
AGENTS.md。 - 如果还要做拦截(比如检测到 token 立刻不发)→ Hooks 配合
api.on("before_reply")。
等价片段(写入 AGENTS.md 的「Standing Orders」段):
## Standing Orders
- 任何对外回复前必须先调用 compliance-check skill;skill 返回 fail 直接拒答。
- 任何包含 sk-、ghp_、AKIA 开头的字符串,禁止出现在 Discord / Telegram / 飞书 等外部频道。
- 不要把 daily/articles/2026-09-22/ 草稿区的内容自动推到 main,先经过人工 review。
如果想再硬一层,写一个 Hook:
# ~/.openclaw/hooks/before-reply/check-compliance.sh
#!/usr/bin/env bash
input="$1"
if echo "$input" | grep -E 'sk-[A-Za-z0-9]{20,}|ghp_[A-Za-z0-9]{30,}|AKIA[0-9A-Z]{16}'; then
echo "BLOCKED: secret-like pattern detected" >&2
exit 2
fi
exit 0
再在 Hooks 段注册 before_reply 触发。这是 Standing Orders + Hooks 双层防御的典型搭法。
五、最容易写错成「定时炸弹」的 4 种姿势
列 4 个我在 9/19–9/22 这轮升级里见过 / 差点写错的反模式:
- 把 Heartbeat 当成 cron 用:结果 30 分钟一次,每次都建 task,一周后台账 300+ 条。正确做法:定时跑的工作走 Automations,环境感知才走 Heartbeat。
- 把 Standing Orders 当 cron 用:Standing Orders 没有时间触发,写成「每天 9 点检查合规」是不工作的,它只会在每次会话启动时被注入上下文。要定时+合规,请 Automations + Standing Orders 双写。
- 把 Hooks 写在错误的位置:OpenClaw 的内部 Hooks 目录与 Plugin Hooks 是两套体系(参考 /plugins/hooks)。想拦截工具调用,请用 Plugin Hooks 的
api.on("tool_call");想响应/new这种生命周期事件,才用~/.openclaw/hooks/。 - 把 Task Flow 当 cron 用:Task Flow 是为多步编排设计的,单步任务硬上 Flow 反而引入 revision tracking 这种你不需要的开销。
以上 4 条都对应一个共同根因:把 OpenClaw 的 5 件套当成「5 个 cron 命令」来用。它们的运行时模型、上下文边界、记录策略都不同。
六、常见问题(FAQ)
Q1:Automations 跑失败会自动重试吗?
会,但有限度。/automation/cron-jobs/managing-jobs 里的 retry 章节给的是「默认指数退避 + 上限」,route-backed jobs 还有「连续 2 次执行失败触发告警(默认 1 小时冷却)」的安全网。建议关键任务额外配 --failure-alert 到飞书或邮件,避免半夜静默翻车。
Q2:Heartbeat 跑空会怎样?
文档原话:「Empty scratch skips as empty-heartbeat-file」。意思是监控轮询写到 scratch 文件是空的,OpenClaw 会跳过这一轮、不发「无事可报」的噪音消息。这是默认行为,不要关。
Q3:Tasks 和 Task Flow 是不是冗余?
不冗余。Tasks 是台账,Task Flow 是编排器。每个 Flow 的 step 在 Tasks 里都能看到对应条目,Flow 自己再加一层「多步状态 + revision 控制」。如果你只想事后审计(昨晚哪些 detached 任务跑过),用 openclaw tasks list;如果你想做「调研→写→审」三步流水线,用 openclaw tasks flow。
Q4:OpenClaw 9.5 Atomic Updates 之后,5 件套有改动吗?
9/19 的 v2026.9.5 主要改的是「升级」机制(Atomic Updates + Schema 21,见《OpenClaw 2026.9.5 Atomic Updates 与 Schema 21 迁移》),对 5 件套的边界没有破坏性改动。真正需要关注的,是 Extended-Stable 渠道 + Maturity Scorecard(见《OpenClaw 2026 路线:从 Extended-Stable 到 Maturity Scorecard》),它会让 5 件套在企业部署里有「上线前成熟度」的可见性。
Q5:最小可用配置是什么?
只装 Automations + Standing Orders 两件就够撑起 80% 个人使用:
- 所有「定时 + 隔离执行」的事 → Automations。
- 所有「每次会话都遵守」的事 → Standing Orders(写进
AGENTS.md)。 - Heartbeat / Tasks / Hooks / Task Flow 在需要时再加。
七、结论:先 Automations 跑通,再叠加其它
5 件套不是「功能多到挑花眼」,而是 OpenClaw 在 2026 年主动把「自动化」这个词拆开了:
- Automations = 钟表(定时)
- Heartbeat = 温度计(环境感知)
- Tasks = 账本(事后审计)
- Standing Orders = 家训(会话常驻指令)
- Hooks = 门铃(事件触发)
- Task Flow = 流水线(多步编排)
行动建议:
- 打开
~/.openclaw/workspace-timew/AGENTS.md,把所有「每次都要提醒自己」的事写到 Standing Orders 区。 - 用
openclaw automations list看一眼现有任务,标记哪些其实是 Heartbeat 或 Hooks。 - 先 Automations 跑通一条「每日早报」,再叠加其它件。
把这套选型思路记下来,下次再有人问「我装了 OpenClaw,怎么让它每天自动帮我检查一遍网站」,你就不会再被一个 cron 命令忽悠过去了。
本文由时间网原创,转载请保留出处。检索日期:2026-09-22。
来源标注(检索日期 2026-09-22,均可正常访问):
- docs.openclaw.ai/automation — 自动化总览页(5 件套决策图)
- docs.openclaw.ai/automation/cron-jobs — Automations 完整参考(含 schedules / payloads / delivery / managing-jobs / webhooks / gmail)
- docs.openclaw.ai/gateway/heartbeat — Heartbeat 配置与 empty-heartbeat-file 跳过规则
- docs.openclaw.ai/automation/standing-orders — Standing Orders 注入机制
- docs.openclaw.ai/plugins/hooks — Plugin Hooks 与 Internal Hooks 区分








