【進階篇】OpenClaw 高級技巧:定時任務 + 子 Agent + 自動化工作流
整理版優先睇
OpenClaw 高級技巧:通過定時任務、子 Agent 同自動化工作流,將 AI 從被動響應升級為主動執行、並行幹活嘅數字打工人。
呢篇文章係 H先生 OpenClaw 系列嘅進階篇,專注教用戶點樣令 OpenClaw 自動做嘢,而唔係下下要你問先答。作者係專注 AI 工具同效率提升嘅內容創作者,佢發現入門篇只係做到「你問佢答」嘅被動模式,但現實需要係:每日朝早自動推送日程天氣、每小時監控伺服器、多個任務並行做。
文章嘅核心結論係:透過定時任務(cron)、子 Agent(sessions_spawn)同自動化工作流,你可以將 OpenClaw 變成一個真正幫你打工嘅數字助理。定時任務係基於 cron,但比傳統 cron 強大,因為佢執行嘅係 Agent 而唔係腳本,仲可以駁落微信飛書等渠道通知你。子 Agent 可以同時開幾個,各自做唔同嘢,最後由主 Agent 彙總,速度可以快幾倍。自動化工作流就係將觸發、動作、通知串埋一條鏈,比如朝早九點自動查日曆天氣待辦再推送。
作者仲畀咗好多實戰案例,例如伺服器存活監控、並行 PR 審查、每日晨報,仲有踩坑指南同最佳實踐,令你可以即刻跟住做。總括嚟講,呢篇係一篇好實用嘅進階指南,適合已經識基本操作、想更進一步嘅用戶。
- 結論:定時任務、子 Agent、工作流三者組合,可以將 OpenClaw 從被動答問升級為主動執行嘅數字打工人。
- 方法:定時任務用 cron 表達式或 everyMs 設定,子 Agent 用 sessions_spawn 工具,工作流就係將兩者結合。
- 差異:OpenClaw cron 同傳統 cron 最大分別係執行內容(Agent vs 腳本)同通知方式(即時推送到微信等渠道 vs 寫日誌)。
- 啟發:並行子 Agent 可以大幅縮短複雜任務時間,例如審查 3 個 PR 可以同時做,快 3 倍。
- 可行動點:立即用文章提供嘅模板建立一個每日晨報或伺服器監控任務,體驗自動化流程。
定時任務創建模板 JSON
一個完整嘅定時任務 JSON 結構,包含 name、agentId、schedule、sessionTarget、payload、delivery 等字段。
子 Agent 調用指令模板
使用 sessions_spawn 工具創建子 Agent 嘅 JSON 格式,包含 task、runtime、mode、timeoutSeconds。
每日晨報工作流配置
每日九點自動查日曆、天氣、待辦,然後推送匯總。使用定時任務 + 一個 agentTurn 訊息。
伺服器存活監控技能
每小時執行 bash script 檢查伺服器,如果返回 SERVER_DOWN 就發告警。包含腳本同定時任務配置。
點解需要高級技巧?由被動變主動
入門篇裏面,你同 OpenClaw 嘅互動係被動嘅:你問先答,唔問就唔出聲。但現實場景你需要朝早自動推送日程、每小時檢查伺服器、多個任務並行做,呢啲就唔係就咁問一句搞得掂。
定時任務:讓 OpenClaw 主動揾你
OpenClaw 嘅定時任務基於 cron,但比傳統 cron 更厲害:傳統 cron 只係跑腳本,OpenClaw cron 係跑 Agent,仲可以經微信/飛書/釘釘即時通知你。時間類型有三種:週期任務(everyMs 或 cron 表達式)、一次性任務(at)、同埋智能時區處理。
關鍵要記住:時區一定要用 ISO 格式(+08:00),否則會當成 UTC 搞錯時間
- 1 週期任務:例如每 30 分鐘用 {"kind":"every","everyMs":1800000},或每晚 9 點用 {"kind":"cron","expr":"0 9 * * *"}。
- 2 一次性任務:用 at 搭配 deleteAfterRun: true,例如今日下午三點用 ISO 8601 格式。
- 3 智能時區:先用 date +%z 拎系統時區,轉成 ISO,唔好 hardcode。
建立定時任務有兩個途徑:推薦用內置 cron 工具,直接喺 UI 或者微信飛書等渠道 send JSON;第二種係用 CLI 命令 openclaw cron add,適合企微等外部渠道。管理任務可以用 openclaw cron list、edit、remove、run。
{
"action": "add",
"job": {
"name": "每日提醒",
"agentId": "main",
"schedule": {"kind":"cron","expr":"0 9 * * *"},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "你係一個暖心嘅提醒助手。請用温暖嘅方式提醒用戶:新嘅一日開始咗。要求:(1) 唔好回 HEARTBEAT_OK (2) 唔好 call message 工具 (3) 直接輸出提醒文字 (4) 控制喺 2-3 句以內"
},
"delivery": {"mode":"announce"}
}
}
子 Agent:並行幹活,快幾倍
複雜任務例如查 10 篇文檔、寫 API、整理文件,串行做要 30 分鐘;但如果開三個子 Agent 並行做,10 分鐘就搞掂,快成三倍。子 Agent 嘅核心係每個都有獨立會話,各自執行唔同任務,最後由主 Agent 收集結果。
建立子 Agent 用 sessions_spawn 工具,task 係子任務描述,runtime 用 subagent,mode 用 run 一次性
- 監控子 Agent 可以用 openclaw subagents list / log / steer / kill。
- 建議同時運行嘅子 Agent 唔好超過 5 個,否則系統會變慢。
- 實戰案例:並行審查 3 個 PR,每個子 Agent 做 git diff,最後主 Agent 出統一報告。
{
"task": "查閲 https://docs.example.com/api 並總結核心功能",
"runtime": "subagent",
"mode": "run",
"timeoutSeconds": 300
}
自動化工作流:一條龍自動執行
自動化工作流就係將觸發器、動作、通知串埋一條鏈。觸發器可以係定時、事件或手動;動作包括查詢、執行、生成;通知渠道支援本地 UI、微信、飛書等。最常見嘅例子係每日晨報:朝早 9 點觸發,查日程、天氣、待辦,然後推送畀你。
工作流嘅核心係 payload 入面嘅 message 要寫清楚要求,例如限制字數同禁止調用 message 工具
- 觸發器:定時(cron/everyMs)、事件(例如收到重要郵件)、手動(講句開始工作流)。
- 動作:查類(天氣、日程)、執行類(call API、行腳本)、生成類(報告、文檔)。
- 通知:用 delivery.mode announce,可以指定 channel 同 to。
{
"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) 唔好 call message 工具 (3) 直接輸出晨報內容"
},
"delivery": {"mode":"announce"}
}
}
踩坑指南同最佳實踐
用呢啲高級功能嘅時候,有幾個常見問題要注意。首先係時區,冇指定時區會當成 UTC,搞到時間錯曬。第二係 delivery 參數,漏咗就唔會收到通知。第三係子 Agent 開太多,建議控制喺 5 個以內。另外,任務重複創建會令你收到重複提醒,所以創建前先用 openclaw cron list 檢查。
定時任務命名規範:<類型>_<頻率>_<動作>,例如 daily_morning_report、hourly_server_check
- 定期檢查任務狀態:每星期用 openclaw cron list 睇下有冇過期任務。
- 善用錯誤重試:failureAlert.after 設為 2,失敗兩次先告警,避免誤報。
- 條件執行:喺 message 入面加 if 條件,例如「如果落雨就提醒,否則唔出聲」。
- 子 Agent 協作模式:主從模式(主 Agent 派工)同流水線模式(串聯執行)兩種,按場景揀。
之前幾篇講完咗「點樣用」同「點樣行」,呢篇就講「點樣令佢自己行」。定時任務令 OpenClaw 主動提你,子 Agent 令佢並行做嘢,自動化工作流令佢成為你嘅「數字打工人」。
一、點解需要高級技巧?
入門篇入面,你同 OpenClaw 嘅互動係咁樣:
你:幫我查一下今天天氣
OpenClaw:今天北京晴,15-25℃這是被動回應——你唔問,佢唔講。
但現實場景中,你往往需要:
每日早上 9 點,自動推送今日日程 + 天氣 + 待辦事項 每小時,檢查伺服器係咪仲生還,死咗自動警報 多個任務並行,一個寫程式碼,一個查資料,一個整理文件
咁就需要定時任務和子 Agent。
二、定時任務:令 OpenClaw 主動揾你
2.1 定時任務嘅核心概念

OpenClaw 嘅定時任務係基於 cron,但比傳統 cron 仲強大:
本質分別:傳統 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:000 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"} // 沒有時區,會被當成 UTC2.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 | |
sessionTarget | isolated |
payload.kind | agentTurnsystemEvent = 簡單文本 |
delivery.mode | announce |
方式二:CLI 指令
適用於企微、飛書等外部渠道:
openclaw cron add \
--name "每日提醒" \
--cron "0 9 * * *" \
--session isolated \
--agent main \
--message "你是一個暖心的提醒助手..." \
--announce2.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/bash
curl -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?
想像嚇你有個複雜任務:
查閲 10 篇技術文件 寫一個 API 服務 整理程式碼文件
串行執行: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 | |
runtime | subagent |
mode | runsession = 持久會話 |
timeoutSeconds |
3.4 監控子 Agent
# 查看所有子 Agent
openclaw subagents list
# 查看某個子 Agent 的輸出
openclaw subagents log <sessionId>
# 向子 Agent 發送指令
openclaw subagents steer <sessionId> --message "請加快進度"
# 終止子 Agent
openclaw subagents kill <sessionId>3.5 實戰案例:並行程式碼審查
需求:同時審查 3 個 PR
步驟 1:啟動 3 個子 Agent
# 子 Agent 1:審查 PR #86
sessions_spawn task:"Review PR #86. git diff origin/main...origin/pr/86" runtime:"subagent" mode:"run"
# 子 Agent 2:審查 PR #87
sessions_spawn task:"Review PR #87. git diff origin/main...origin/pr/87" runtime:"subagent" mode:"run"
# 子 Agent 3:審查 PR #88
sessions_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 定時任務
四、自動化工作流:從「我問佢答」到「佢幫我做嘢」
4.1 乜嘢係自動化工作流?
將多個操作串聯起嚟,形成一個完整嘅自動化鏈條:
觸發條件 → 執行動作 → 結果通知示例:
每天 9 點 → 查日程 + 查天氣 + 查郵件 → 推送彙總4.2 三要素
(1)觸發器
(2)動作
(3)通知
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/bash
CPU_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_reporthourly_server_checkweekly_summary
7.2 任務描述模板
你是一個【角色】。
請【具體動作】。
要求:
(1) 不要回復 HEARTBEAT_OK
(2) 不要調用 message 工具
(3) 直接輸出結果
(4) 控制在 X 句話以內7.3 監控與維護
定期檢查任務狀態:
# 每週檢查一次
openclaw cron list
# 清理過期任務
openclaw cron remove <過期任務ID>八、總結
cron | ||
sessions_spawn | ||
從被動到主動:
入門篇:你問佢答 進階篇:佢主動幫你
下一步:實戰篇會帶你搭建一個完整嘅「數字打工人」,從需求到落地。
系列文章預告:
✅ 入門篇(已完成) ✅ 技能篇(已完成) ✅ 記憶篇(已完成) ✅ 原理篇(已完成) ✅ 進階篇(本文) ⏳ 實戰篇(待完成):用 OpenClaw 搭建你嘅「數字打工人」
㩒下讚同關注唔好迷路,後面仲有更多精彩乾貨。
👨💻 H先生出品 | 專注 AI 工具與效率提升
前面幾篇講完了"怎麼用"和"怎麼跑",這篇講"怎麼讓它自己跑"。定時任務讓 OpenClaw 主動提醒你,子 Agent 讓它並行幹活,自動化工作流讓它成為你的"數字打工人"。
一、為什麼需要高級技巧?
入門篇裏,你和 OpenClaw 的交互是這樣的:
你:幫我查一下今天天氣
OpenClaw:今天北京晴,15-25℃這是被動響應——你不問,它不說。
但現實場景中,你往往需要:
每天早上 9 點,自動推送今日日程 + 天氣 + 待辦 每小時,檢查服務器是否存活,掛了自動告警 多個任務並行,一個寫代碼,一個查資料,一個整理文檔
這就需要定時任務和子 Agent。
二、定時任務:讓 OpenClaw 主動找你
2.1 定時任務的核心概念

OpenClaw 的定時任務基於 cron,但比傳統 cron 更強大:
本質區別:傳統 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:000 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"} // 沒有時區,會被當成 UTC2.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 | |
sessionTarget | isolated |
payload.kind | agentTurnsystemEvent = 簡單文本 |
delivery.mode | announce |
方式二:CLI 命令
適用於企微、飛書等外部渠道:
openclaw cron add \
--name "每日提醒" \
--cron "0 9 * * *" \
--session isolated \
--agent main \
--message "你是一個暖心的提醒助手..." \
--announce2.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/bash
curl -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?
想象你有一個複雜任務:
查閲 10 篇技術文檔 寫一個 API 服務 整理代碼文檔
串行執行: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 | |
runtime | subagent |
mode | runsession = 持久會話 |
timeoutSeconds |
3.4 監控子 Agent
# 查看所有子 Agent
openclaw subagents list
# 查看某個子 Agent 的輸出
openclaw subagents log <sessionId>
# 向子 Agent 發送指令
openclaw subagents steer <sessionId> --message "請加快進度"
# 終止子 Agent
openclaw subagents kill <sessionId>3.5 實戰案例:並行代碼審查
需求:同時審查 3 個 PR
步驟 1:啓動 3 個子 Agent
# 子 Agent 1:審查 PR #86
sessions_spawn task:"Review PR #86. git diff origin/main...origin/pr/86" runtime:"subagent" mode:"run"
# 子 Agent 2:審查 PR #87
sessions_spawn task:"Review PR #87. git diff origin/main...origin/pr/87" runtime:"subagent" mode:"run"
# 子 Agent 3:審查 PR #88
sessions_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 定時任務
四、自動化工作流:從"我問它答"到"它幫我幹活"
4.1 什麼是自動化工作流?
把多個操作串起來,形成一個完整的自動化鏈條:
觸發條件 → 執行動作 → 結果通知示例:
每天 9 點 → 查日程 + 查天氣 + 查郵件 → 推送彙總4.2 三要素
(1)觸發器
(2)動作
(3)通知
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/bash
CPU_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_reporthourly_server_checkweekly_summary
7.2 任務描述模板
你是一個【角色】。
請【具體動作】。
要求:
(1) 不要回復 HEARTBEAT_OK
(2) 不要調用 message 工具
(3) 直接輸出結果
(4) 控制在 X 句話以內7.3 監控與維護
定期檢查任務狀態:
# 每週檢查一次
openclaw cron list
# 清理過期任務
openclaw cron remove <過期任務ID>八、總結
cron | ||
sessions_spawn | ||
從被動到主動:
入門篇:你問它答 進階篇:它主動幫你
下一步:實戰篇將帶你搭建一個完整的"數字打工人",從需求到落地。
系列文章預告:
✅ 入門篇(已完成) ✅ 技能篇(已完成) ✅ 記憶篇(已完成) ✅ 原理篇(已完成) ✅ 進階篇(本文) ⏳ 實戰篇(待完成):用 OpenClaw 搭建你的"數字打工人"
點點贊和關注不迷路,後面還有更多精彩乾貨。
👨💻 H先生出品 | 專注 AI 工具與效率提升