Key Findings
  • OpenClaw 的 Cron 功能讓你設定定時觸發的 AI 任務——不需要人類介入,代理會在指定時間自動執行並透過通訊渠道回報結果[1]
  • 與傳統 Linux crontab 不同,OpenClaw 的 Cron 任務以自然語言定義,由 AI 代理動態決定執行步驟,而非固定的 Shell 腳本[6]
  • Cron 任務的最大陷阱是 Gateway Timeout——如果任務執行時間超過 Gateway 的連線逾時設定,任務會被強制中斷[2]
  • 搭配 Telegram 等通訊渠道,Cron 任務的結果會即時推送到你的手機,實現「設定一次、長期受益」的自動化工作流[3]

一、什麼是 OpenClaw 的 Cron?

如果你熟悉 Linux 的 crontab,OpenClaw 的 Cron 概念類似——在指定的時間點自動執行任務。[6] 但關鍵差異在於:傳統 crontab 執行的是固定的 Shell 命令,而 OpenClaw 的 Cron 執行的是自然語言指令,由 AI 代理自主決定如何完成。

舉例來說:

後者不需要你事先寫好腳本——代理會自己決定要執行哪些檢查指令、如何整理結果、怎麼格式化報告。[5]

二、建立第一個 Cron 任務

2.1 基本語法

透過 CLI 建立 Cron 任務:[1]

openclaw cron add --schedule "0 9 * * *" --message "檢查伺服器的 CPU 和記憶體使用率,如果任何指標超過 80%,摘要報告異常項目"

排程語法沿用標準 cron 格式:分 時 日 月 星期

2.2 常用排程範例

排程語法說明
每天早上 9 點0 9 * * *每日報告、檢查
每小時整點0 * * * *高頻監控
每週一早上 8 點0 8 * * 1週報
每月 1 日中午0 12 1 * *月度報告
每 30 分鐘*/30 * * * *密集監控

2.3 管理現有任務

# 列出所有 Cron 任務
openclaw cron list

# 刪除特定任務
openclaw cron remove --id TASK_ID

# 暫停(保留設定但不觸發)
openclaw cron disable --id TASK_ID

# 恢復
openclaw cron enable --id TASK_ID

三、搭配 Telegram 實現即時通知

Cron 任務的執行結果預設會發送到你已設定的通訊渠道。如果你已完成 Telegram 整合,結果會直接推送到你的 Telegram 對話中。[3]

3.1 典型場景:每日新聞簡報

openclaw cron add \
  --schedule "0 8 * * *" \
  --message "搜尋過去 24 小時與人工智慧相關的重大新聞,整理成 5 條中文摘要,每條不超過 50 字"

每天早上 8 點,你的 Telegram 就會收到一份 AI 產業日報。

3.2 典型場景:網站可用性監控

openclaw cron add \
  --schedule "*/30 * * * *" \
  --message "檢查 https://example.com 是否正常運作,如果回應時間超過 3 秒或回傳非 200 狀態碼,立即通知我"

每 30 分鐘自動檢查,只在異常時通知你——不會被無用的「一切正常」訊息干擾。

四、Gateway Timeout:最常見的陷阱

這是 Cron 任務中最容易踩到的坑。[2]

4.1 問題描述

Gateway 有一個連線逾時設定(timeoutSeconds)。如果 Cron 任務的執行時間超過這個值,Gateway 會強制中斷連線,導致任務被截斷——代理可能已經完成了 80% 的工作,但因為超時而無法回傳結果。

4.2 解決方案

# 查看當前 Timeout 設定
openclaw config get agents.defaults.timeoutSeconds

# 根據最長任務的預期執行時間調整(單位:秒)
openclaw config set agents.defaults.timeoutSeconds 900

經驗法則:將 Timeout 設為你預期的最長任務執行時間的 1.5 倍。例如,如果一個報告任務通常需要 5 分鐘,將 Timeout 設為 450 秒(7.5 分鐘)。

4.3 長任務的替代方案

對於可能執行超過 15 分鐘的任務,建議拆解為多個短任務:

# 而非一次性做完所有事
❌ 「分析過去一年的所有銷售數據並產生完整報告」

# 拆解為多個步驟
✓ 「下載過去一年的銷售數據並儲存為 CSV」  → Cron 1
✓ 「分析昨天產生的 CSV 並產生摘要報告」    → Cron 2(延遲 10 分鐘)

五、錯誤處理與恢復

5.1 任務失敗時的行為

當 Cron 任務執行失敗時(例如目標伺服器離線、API 回傳錯誤),代理會:

  1. 透過通訊渠道通知你任務失敗的原因
  2. 記錄錯誤到 Gateway 日誌(可透過 openclaw tail 查看)
  3. 下一個排程時間點正常重新觸發

Cron 任務不會因為單次失敗而停止——它會按照排程持續嘗試。

5.2 避免任務重疊

如果前一次執行尚未完成,新的排程觸發時 Gateway 會跳過,避免同一任務被重複執行。這個行為由 Gateway 的任務佇列自動管理。[2]

六、最佳實踐

  1. 先手動測試,再設定 Cron:在 CLI 中手動執行一次任務指令,確認代理的行為符合預期,再將同一指令轉為 Cron
  2. 指令要具體:「檢查伺服器狀態」太模糊;「檢查 CPU、記憶體、磁碟使用率,超過 80% 則報告」更好
  3. 設定合理的頻率:每個 Cron 觸發都會消耗 LLM Token。每分鐘觸發一次可能會產生可觀的 API 費用
  4. 善用條件通知:在指令中加入「只在異常時通知」,避免被大量「一切正常」的訊息淹沒
  5. 監控 Gateway 穩定性:Cron 依賴 Gateway 持續運行。使用 systemd 或 Docker 確保 Gateway 在崩潰後自動重啟

結語

Cron 是讓 OpenClaw 從「被動工具」轉變為「主動助理」的關鍵功能。[1] 一旦設定完成,代理就會在你指定的時間自動執行任務、回報結果——你不需要記住要檢查什麼、不需要打開終端機、不需要人在電腦前。

要開始使用 Cron,請先確保你已完成 OpenClaw 的基礎部署並設定了至少一個通訊渠道。如果你在 Cron 任務中遇到問題,《疑難排解指南》能幫助你快速定位原因。