📖 纸质书《OpenClaw超级个体实操手册》已上市! 清华大学出版社出版,在开源教程基础上全面重写+逐条验证。🛒 京东专属购买链接(¥42,原价¥59.8)
第13章节 高级自动化工作流(Cron / Tasks / Task Flow / Hooks / Standing Orders)
本章目标:建立一套符合 OpenClaw 当前官方设计的自动化观念,不再混淆 cron、heartbeat、tasks、Task Flow、hooks 和 standing orders 的职责边界。
版本基线
- 当前稳定版:
v2026.4.14(2026-04-14) - 当前预发布版:
v2026.4.15-beta.1(2026-04-15) - 自动化章节默认按稳定版行为说明
先给小白的阅读说明
这章最重要的不是命令,而是顺序
很多人一上来就学 Task Flow,最后反而越学越乱。更适合小白的顺序是:
- 先学
cron - 再学怎么看
tasks - 最后再上
Task Flow、hooks、standing orders
如果你只想先做一个能用的自动化
请先完成这一条最小路径:
- 用
cron建一个每天早上跑的任务 - 用
tasks list看它有没有进入后台账本 - 用
tasks show看一次任务详情
如果这 3 步你都能完成,再往后看多步骤编排。
这章适合谁
- 已经能稳定使用 OpenClaw,但想把重复工作交给它
- 想把“提醒、报表、扫描、汇总”变成固定流程
- 想接外部触发,但还分不清
hooks和webhooks
13.1 先把 6 个概念分清楚
| 机制 | 适合什么 | 什么时候用 |
|---|---|---|
cron |
精确时间触发 | 每天、每周、一次性提醒、定时报表 |
heartbeat |
近似定期检查 | 需要持续“巡检主会话”而不是严格时刻 |
tasks |
记录后台工作 | 看 detached work 跑了什么、卡在哪 |
Task Flow |
多步骤可恢复编排 | A→B→C 这类 durable 流程 |
hooks |
外部轻量触发 | 外部系统来一个事件,叫醒主会话或跑 isolated job |
standing orders |
长期授权规则 | 把“你拥有哪些固定职责”写进 AGENTS.md |
官方文档的核心观点非常一致:
cron是调度器tasks是后台工作账本Task Flow是位于 tasks 之上的耐久编排层standing orders是 agent 的长期运营授权,不是调度器本身
13.2 cron:时间驱动自动化的第一选择
13.2.1 一次性提醒
这是最适合新手先练手的例子,因为它结构最简单:到了某个时间点,发一次提醒,然后结束。
openclaw cron add --name "Reminder" --at "2026-05-01T16:00:00Z" --session main --system-event "Reminder: review the launch checklist" --wake now --delete-after-run
13.2.2 每日定时报表
openclaw cron add --name "Morning brief" --cron "0 7 * * *" --tz "Asia/Shanghai" --session isolated --message "Summarize overnight updates, key tasks, and calendar priorities." --announce
13.2.3 运维常用命令
看到什么算 cron 已经跑通
你至少要会检查这 3 件事:
openclaw cron list里能看到你刚创建的任务openclaw cron runs --id <job-id>能看到实际运行记录- 如果任务是长时间运行的,
tasks list里也能看到对应后台任务
openclaw cron list
openclaw cron runs --id <job-id>
openclaw cron run <job-id>
openclaw cron edit <job-id> --message "Updated prompt"
openclaw cron remove <job-id>
13.2.4 现在应该怎么选 session 模式
main:适合提醒、系统事件、继续主会话上下文isolated:适合日报、扫描、报告、批处理current:适合绑定当前会话的重复任务session:custom-id:适合每天都延续同一份上下文的固定流程
13.3 tasks:先学会看账本,再谈复杂编排
很多人把自动化做复杂了,最后却不知道“到底什么在跑、哪里失败了”。这就是 tasks 的意义。
13.3.1 你最该会的命令
openclaw tasks list
openclaw tasks show <task-id>
openclaw tasks cancel <task-id>
openclaw tasks audit
13.3.2 tasks audit 最有价值的地方
它会直接告诉你是否存在:
stale_queuedstale_runninglostdelivery_failedmissing_cleanupinconsistent_timestamps
如果你已经在用:
- 视频生成
- 音乐生成
- isolated cron
- subagent / ACP 子任务
那 tasks audit 应该成为你的固定巡检动作。
13.4 Task Flow:多步骤流程的标准编排层
Task Flow 适合:
- 多步骤串行或分支流程
- 要求持久化状态
- 需要在 gateway 重启后继续
- 需要统一查看流程进度
13.4.1 两种模式
Managed mode:Task Flow 自己驱动每一步任务
适合:
- 周报流水线
- 内容生产流水线
- 审批后自动交付
Mirrored mode:Task Flow 只观察外部任务并同步状态
适合:
- 已经有 cron / CLI / 外部系统在生成任务
- 你只是想把多个任务收敛成一个流程视图
13.4.2 CLI 命令
openclaw tasks flow list
openclaw tasks flow show <lookup>
openclaw tasks flow cancel <lookup>
13.4.3 什么时候不要上 Task Flow
以下情况先别急着上:
- 只是单次后台任务
- 只是每天一个固定提醒
- 你还不会看
tasks list/tasks audit - 工作流步骤还没稳定,今天改一版、明天改一版
这时先用 cron 或 isolated job 更稳。
13.5 hooks 与 webhooks plugin:把外部系统接进来
13.5.1 轻量触发:hooks
官方 hooks 适合外部事件进来后:
- 唤醒主会话
- 触发一次 isolated agent run
配置:
{
"hooks": {
"enabled": true,
"token": "replace-with-dedicated-hook-token",
"path": "/hooks"
}
}
调用 wake:
curl -X POST http://127.0.0.1:18789/hooks/wake -H 'Authorization: Bearer SECRET' -H 'Content-Type: application/json' -d '{"text":"New invoice received","mode":"now"}'
调用 agent:
curl -X POST http://127.0.0.1:18789/hooks/agent -H 'Authorization: Bearer SECRET' -H 'Content-Type: application/json' -d '{"message":"Summarize the new invoice and extract payable date","name":"Finance","model":"openai/gpt-5.4-mini"}'
13.5.2 多步骤编排:webhooks plugin
如果你是 Zapier、n8n、CI、表单系统来驱动复杂流程,直接用 webhooks plugin 绑定 Task Flow。官方配置形态:
{
"plugins": {
"entries": {
"webhooks": {
"enabled": true,
"config": {
"routes": {
"ops": {
"path": "/plugins/webhooks/ops",
"sessionKey": "agent:main:main",
"secret": {
"source": "env",
"provider": "default",
"id": "OPENCLAW_WEBHOOK_SECRET"
},
"controllerId": "webhooks/ops",
"description": "Ops TaskFlow bridge"
}
}
}
}
}
}
}
最常用两个动作:
create_flowrun_task
这比旧教程里一堆 shell glue code 更稳定,也更方便排障。
13.6 standing orders:自动化不是“计划”,而是“长期授权”
OpenClaw 官方现在把 standing orders 讲得很清楚:它们不是某个定时器,而是写在 agent workspace 里的长期授权规则。推荐直接放在 AGENTS.md 里,因为这个文件会自动注入到每次会话。
13.6.1 一个合格的 standing order 长什么样
## Program: Weekly Status Report
**Authority:** Compile data, generate report, deliver to stakeholders
**Trigger:** Every Friday at 4 PM (enforced via cron job)
**Approval gate:** None for standard reports. Flag anomalies for human review.
**Escalation:** If data source is unavailable or metrics look unusual
### Execution Steps
1. Pull metrics from configured sources
2. Compare to prior week and targets
3. Generate report in Reports/weekly/YYYY-MM-DD.md
4. Deliver summary via configured channel
5. Log completion to Agent/Logs/
### What NOT to Do
- Do not send reports to external parties
- Do not modify source data
- Do not skip delivery if metrics look bad
13.6.2 为什么它重要
没有 standing orders:
- 你每次都要重复下达同样的管理指令
- agent 只能“被动等你叫”
- routine work 很容易中断
有 standing orders:
- 责任边界更清楚
- 人工审批点更清楚
- agent 的长期行为更可控
- cron 只负责“何时跑”,AGENTS.md 负责“跑什么、什么时候停”
13.7 推荐的自动化组合,不推荐的自动化组合
推荐组合
组合 1:定时报表
crontasks list / auditAGENTS.mdstanding order
组合 2:外部系统驱动的多步流程
hooks或webhookspluginTask Flowtasks flow show
组合 3:长期研究 / 知识运营
croninfer web search / fetchMemory Wiki
不推荐组合
- 只用 shell while true + sleep 模拟调度
- 用一个超大 prompt 代替 standing orders
- 还不会看
tasks audit就上很多 subagent 和 webhook - 把外部系统 token 直接写进仓库
13.8 本章实践建议
如果你要从 0 到 1 搭一套稳定自动化,顺序应该是:
- 先用
cron跑通一个固定任务 - 再学会看
tasks list和tasks audit - 多步骤时再上
Task Flow - 外部系统接入时再开
hooks/webhooksplugin - 最后把长期职责沉淀进
AGENTS.md
13.9 官方参考
- GitHub Releases:https://github.com/openclaw/openclaw/releases
- Automation Overview:https://docs.openclaw.ai/automation/cron-vs-heartbeat
- Scheduled Tasks:https://docs.openclaw.ai/automation/cron-jobs
- Background Tasks:https://docs.openclaw.ai/automation/tasks
- Task Flow:https://docs.openclaw.ai/automation/taskflow
- Standing Orders:https://docs.openclaw.ai/automation/standing-orders
- Webhooks Plugin:https://docs.openclaw.ai/plugins/webhooks