乐于分享
好东西不私藏

【进阶篇】OpenClaw 高级技巧:定时任务 + 子 Agent + 自动化工作流

【进阶篇】OpenClaw 高级技巧:定时任务 + 子 Agent + 自动化工作流

前面几篇讲完了”怎么用”和”怎么跑”,这篇讲”怎么让它自己跑”。定时任务让 OpenClaw 主动提醒你,子 Agent 让它并行干活,自动化工作流让它成为你的”数字打工人”。


一、为什么需要高级技巧?

入门篇里,你和 OpenClaw 的交互是这样的:

你:帮我查一下今天天气OpenClaw:今天北京晴,15-25℃

这是被动响应——你不问,它不说。

但现实场景中,你往往需要:

  • 每天早上 9 点,自动推送今日日程 + 天气 + 待办
  • 每小时,检查服务器是否存活,挂了自动告警
  • 多个任务并行,一个写代码,一个查资料,一个整理文档

这就需要定时任务子 Agent


二、定时任务:让 OpenClaw 主动找你

2.1 定时任务的核心概念

OpenClaw 的定时任务基于 cron,但比传统 cron 更强大:

特性
传统 cron
OpenClaw cron
执行内容
只能跑命令
可以让 AI 干活
通知方式
只能写日志
微信/飞书/企微/钉钉
任务类型
周期性
一次性 + 周期性
管理
手动改 crontab
命令行 + API

本质区别:传统 cron 跑脚本,OpenClaw cron 跑 Agent

2.2 三种时间类型

(1)周期任务

最常见,按固定间隔重复执行:

ounter(lineounter(lineounter(lineounter(lineounter(line每 30 分钟 → {"kind":"every","everyMs":1800000}每 2 小时  → {"kind":"every","everyMs":7200000}每天 9 点  → {"kind":"cron","expr":"0 9 * * *"}每周一 10 点 → {"kind":"cron","expr":"0 10 * * 1"}工作日 18 点 → {"kind":"cron","expr":"0 18 * * 1-5"}

cron 表达式格式分 时 日 月 星期

  • 0 9 * * * = 每天 9:00
  • 0 18 * * 1-5 = 周一到周五 18:00
  • */30 * * * * = 每 30 分钟
  • 0 10 * * 1 = 每周一 10:00

(2)一次性任务

执行一次后自动删除:

今天下午 3 点 → {"kind":"at","at":"2026-05-07T15:00:00+08:00"}10 分钟后    → {"kind":"at","at":"<当前时间+10分钟>"}

关键参数deleteAfterRun: true

(3)智能时区

不要硬编码时区!

先获取系统时区:

date +%z  # 输出 +0800

转换成 ISO 格式:+0800 → +08:00

正确写法:

{"kind":"at","at":"2026-05-07T15:00:00+08:00"}

错误写法:

{"kind":"at","at":"2026-05-07T15:00:00"}  // 没有时区,会被当成 UTC

2.3 创建定时任务

方式一:内置 cron 工具(推荐)

适用于本地 UI、wechat-access、钉钉等渠道:

{  "action": "add",  "job": {    "name": "每日提醒",    "agentId": "main",    "schedule": {"kind":"cron","expr":"0 9 * * *"},    "sessionTarget": "isolated",    "payload": {      "kind": "agentTurn",      "message": "你是一个暖心的提醒助手。请用温暖的方式提醒用户:新的一天开始了。要求:(1) 不要回复 HEARTBEAT_OK (2) 不要调用 message 工具 (3) 直接输出提醒文字 (4) 控制在 2-3 句话以内"    },    "delivery": {"mode":"announce"}  }}

关键参数解释

参数
含义
agentId
哪个 Agent 执行(从当前 sessionKey 提取)
sessionTarget isolated

 = 独立会话,不污染主对话历史
payload.kind agentTurn

 = 让 AI 执行,systemEvent = 简单文本
delivery.mode announce

 = 推送到当前渠道

方式二:CLI 命令

适用于企微、飞书等外部渠道:

openclaw cron add \  --name "每日提醒" \  --cron "0 9 * * *" \  --session isolated \  --agent main \  --message "你是一个暖心的提醒助手..." \  --announce

2.4 定时任务管理

# 查看所有任务openclaw cron list# 暂停任务(不删除)openclaw cron edit <jobId> --enabled false# 恢复任务openclaw cron edit <jobId> --enabled true# 删除任务openclaw cron remove <jobId># 立即执行一次openclaw cron run <jobId>

2.5 实战案例:服务器存活监控

需求:每小时检查一次服务器,挂了自动告警

步骤 1:创建检测脚本

# 保存为 ~/scripts/check-server.sh#!/bin/bashcurl -f https://your-server.com/health || echo "SERVER_DOWN"

步骤 2:创建定时任务

{  "action": "add",  "job": {    "name": "服务器存活监控",    "agentId": "main",    "schedule": {"kind":"every","everyMs":3600000},    "sessionTarget": "isolated",    "payload": {      "kind": "agentTurn",      "message": "执行 ~/scripts/check-server.sh,如果输出 SERVER_DOWN,立即发送告警:服务器可能挂了,请检查。要求:(1) 直接输出结果 (2) 不要调用无关工具"    },    "delivery": {"mode":"announce"}  }}

效果:每小时自动执行,有问题立刻通知你。


三、子 Agent:让 OpenClaw 并行干活

3.1 为什么需要子 Agent?

想象你有一个复杂任务:

  1. 查阅 10 篇技术文档
  2. 写一个 API 服务
  3. 整理代码文档

串行执行:1 → 2 → 3,耗时 30 分钟

并行执行

  • 子 Agent A:查文档
  • 子 Agent B:写代码
  • 子 Agent C:整理文档

耗时 10 分钟,快了 3 倍!

3.2 子 Agent 的核心概念

主 Agent(你对话的 Agent)  ├── 子 Agent A(查资料)  ├── 子 Agent B(写代码)  └── 子 Agent C(整理文档)

关键特性

  • 独立会话:每个子 Agent 有独立的对话历史
  • 并行执行:多个子 Agent 同时干活
  • 结果汇总:主 Agent 收集所有结果

3.3 创建子 Agent

使用 sessions_spawn 工具:

{  "task": "查阅 https://docs.example.com/api 并总结核心功能",  "runtime": "subagent",  "mode": "run",  "timeoutSeconds": 300}

参数说明

参数
含义
task
子 Agent 的任务描述
runtime subagent

 = OpenClaw 子 Agent
mode run

 = 一次性任务,session = 持久会话
timeoutSeconds
超时时间(秒)

3.4 监控子 Agent

# 查看所有子 Agentopenclaw subagents list# 查看某个子 Agent 的输出openclaw subagents log <sessionId># 向子 Agent 发送指令openclaw subagents steer <sessionId> --message "请加快进度"# 终止子 Agentopenclaw subagents kill <sessionId>

3.5 实战案例:并行代码审查

需求:同时审查 3 个 PR

步骤 1:启动 3 个子 Agent

# 子 Agent 1:审查 PR #86sessions_spawn task:"Review PR #86. git diff origin/main...origin/pr/86" runtime:"subagent" mode:"run"# 子 Agent 2:审查 PR #87sessions_spawn task:"Review PR #87. git diff origin/main...origin/pr/87" runtime:"subagent" mode:"run"# 子 Agent 3:审查 PR #88sessions_spawn task:"Review PR #88. git diff origin/main...origin/pr/88" runtime:"subagent" mode:"run"

步骤 2:等待所有子 Agent 完成

ounter(lineounter(line# 查看状态openclaw subagents list

步骤 3:收集结果并汇总

主 Agent 收到所有结果后,生成统一报告。

3.6 子 Agent vs 定时任务

特性
定时任务
子 Agent
触发方式
时间驱动
手动触发
执行时机
周期/定点
立即
数量限制
建议同时 ≤ 5 个
适用场景
定期检查、提醒
并行任务、复杂工作

四、自动化工作流:从”我问它答”到”它帮我干活”

4.1 什么是自动化工作流?

把多个操作串起来,形成一个完整的自动化链条:

触发条件 → 执行动作 → 结果通知

示例

每天 9 点 → 查日程 + 查天气 + 查邮件 → 推送汇总

4.2 三要素

(1)触发器

类型
示例
定时触发
每天 9 点
事件触发
收到重要邮件时
手动触发
说”开始工作流”

(2)动作

类型
示例
查询类
查天气、查日程、查邮件
执行类
发送消息、调用 API、执行脚本
生成类
写报告、生成文档、整理摘要

(3)通知

渠道
配置
本地 UI
delivery: {"mode":"announce"}
微信
delivery: {"mode":"announce","channel":"wechat-access","to":"<sender_id>"}
飞书
delivery: {"mode":"announce","channel":"feishu","to":"<sender_id>"}

4.3 实战案例:每日晨报

需求:每天早上 9 点,自动推送今日日程 + 天气 + 待办

方案:结合定时任务 + 子 Agent

{  "action": "add",  "job": {    "name": "每日晨报",    "agentId": "main",    "schedule": {"kind":"cron","expr":"0 9 * * *"},    "sessionTarget": "isolated",    "payload": {      "kind": "agentTurn",      "message": "请生成今日晨报,包含:(1) 今日日程(查日历)(2) 今日天气(查天气)(3) 待办事项(查 TODO)。格式:简洁清晰,控制在 200 字以内。要求:(1) 不要回复 HEARTBEAT_OK (2) 不要调用 message 工具 (3) 直接输出晨报内容"    },    "delivery": {"mode":"announce"}  }}

4.4 实战案例:智能告警

需求:服务器 CPU > 80% 时告警

方案:定时任务 + 脚本检测

# 监控脚本#!/bin/bashCPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then  echo "CPU告警:当前使用率 ${CPU_USAGE}%"fi

定时任务配置:

{  "action": "add",  "job": {    "name": "CPU监控",    "agentId": "main",    "schedule": {"kind":"every","everyMs":300000},    "sessionTarget": "isolated",    "payload": {      "kind": "agentTurn",      "message": "执行 CPU 监控脚本,如果有告警输出,立即通知用户。要求:(1) 直接输出结果 (2) 正常时不输出"    },    "delivery": {"mode":"announce"}  }}

五、进阶技巧:让自动化更智能

5.1 错误重试

定时任务支持自动重试:

{  "job": {    ...    "failureAlert": {      "mode""announce",      "after"2    }  }}

含义:失败 2 次后才告警,避免误报。

5.2 失败通知

配置失败时的通知目标:

{  "job": {    ...    "failureDestination": {      "mode""announce",      "channel""wechat-access",      "to""your_sender_id"    }  }}

5.3 条件执行

在任务描述中加入条件判断:

ounter(line查天气,如果下雨,提醒带伞;否则不输出

AI 会自动判断条件并决定是否通知。

5.4 子 Agent 协作模式

主从模式:主 Agent 分配任务,子 Agent 执行

主 Agent:分析需求,拆分为 3 个子任务  ├── 子 Agent A:执行任务 1  ├── 子 Agent B:执行任务 2  └── 子 Agent C:执行任务 3主 Agent:汇总结果,生成报告

流水线模式:子 Agent 串联执行

子 Agent A → 子 Agent B → 子 Agent C(查资料)   (写代码)    (整理文档)

六、踩坑指南

6.1 时区问题

症状:定时任务比预期早/晚 8 小时

原因:时间没有指定时区,被当成 UTC

解决:始终使用 +08:00 格式

6.2 delivery 缺失

症状:任务执行了,但没有收到通知

原因delivery 参数缺失或 to 字段为空

解决:确保 delivery 包含完整信息

6.3 子 Agent 数量过多

症状:系统变慢,响应迟钝

原因:同时运行太多子 Agent

解决:控制并发数量,建议 ≤ 5 个

6.4 任务重复创建

症状:同一个提醒收到多次

原因:多次创建同名任务

解决:创建前先 openclaw cron list 检查


七、最佳实践

7.1 定时任务命名规范

<类型>_<频率>_<动作>

示例:

  • daily_morning_report
  • hourly_server_check
  • weekly_summary

7.2 任务描述模板

你是一个【角色】。请【具体动作】。要求:(1) 不要回复 HEARTBEAT_OK(2) 不要调用 message 工具(3) 直接输出结果(4) 控制在 X 句话以内

7.3 监控与维护

定期检查任务状态:

# 每周检查一次openclaw cron list# 清理过期任务openclaw cron remove <过期任务ID>

八、总结

功能
解决的问题
核心工具
定时任务
让 AI 主动找你
cron
子 Agent
让 AI 并行干活
sessions_spawn
自动化工作流
让 AI 完成复杂链条
定时任务 + 子 Agent

从被动到主动

  • 入门篇:你问它答
  • 进阶篇:它主动帮你

下一步:实战篇将带你搭建一个完整的”数字打工人”,从需求到落地。


系列文章预告

  • ✅ 入门篇(已完成)
  • ✅ 技能篇(已完成)
  • ✅ 记忆篇(已完成)
  • ✅ 原理篇(已完成)
  • ✅ 进阶篇(本文)
  • ⏳ 实战篇(待完成):用 OpenClaw 搭建你的”数字打工人”

点点赞和关注不迷路,后面还有更多精彩干货。

👨‍💻 H先生出品 | 专注 AI 工具与效率提升