2026-05-21 OpenClaw 內建 cron:隔離工作階段、按任務 Webhook 交付與閘道重啟錯峰——無頭租用 Apple Silicon 雲端 Mac(香港 / 東京 / 首爾 / 新加坡 / 美國)
在香港、東京、首爾、新加坡、美國租用Mac mini M4並以無頭 SSH執行 OpenClaw 的團隊,常從被動對話演進到定時自動化:夜間倉庫摘要、站會材料、憑證到期掃描,以及將 CI 失敗分診結果推到 Slack 或內部 Webhook。OpenClaw 的內建 cron執行於閘道程序內,把任務持久化到 ~/.openclaw/cron/jobs.json,並可在隔離工作階段或主工作階段心跳上喚醒智慧代理。本篇 2026-05-21 長文先給出策略:重工具鏈背景任務用隔離 cron,輕量提醒保留主工作階段 cron,排程至少錯開 2–5 分鐘,按任務 Webhook POST 必須走 TLS 與共用金鑰——切勿在共用租機上使用明文 HTTP。正文提供工作階段決策矩陣、排程 + Webhook 表、閘道重啟錯峰說明、八步上線與排障表,並與《Node 24 + launchd + doctor》《launchd cron 基線》《MCP 工具策略》互相引用。
誰需要在租用無頭 Mac 上使用 OpenClaw 閘道 cron
僅靠 macOS launchd 可觸發 shell,但無法依智慧代理情境、模型路由或通道投遞來編排工作。OpenClaw cron 補齊這一層:排程與閘道同生共死,jobs.json 完好時可在重啟後恢復,輸出可進聊天通道或 HTTP 端點。在租用主機上,典型故障是維運層面的——部署後五個任務擠在同一分鐘、閘道恢復時逾期任務齊射,或 Webhook 仍指向會改寫正式工單的預發位址。
- 平台 SRE 希望夜間摘要以 JSON POST 到內網收集器,而不必再養一台獨立排程 VM。
- 工程主管 需要在靠近亞太倉庫的東京或新加坡節點上,用 ripgrep 與工單系統產生站會材料。
- 資安負責人 要求隔離工作階段,避免 cron 提示詞繼承人工主工作階段裡已核准的高風險工具。
可從 MacXCode 首頁 的區域地圖入手:把閘道放在 Webhook 到 VPC 往返延遲最低的位置,並文件化哪些任務允許寫入工具、哪些僅允許唯讀摘要。
隔離工作階段、主工作階段與命名 cron 目標
OpenClaw cron 可指向不同執行情境。隔離工作階段會拉起專用的 cron 代理輪次,適合呼叫檔案工具、MCP 或 shell 包裝器的報告類任務。主工作階段任務掛在下一次心跳輪次,適合不必 fork 重工具鏈的輕量提醒。命名自訂工作階段適合需要跨多次執行累積情境的流程(例如週報維運日誌)。選錯目標會導致無輸出(部分版本的隔離派送缺陷)或污染人工聊天執行緒。
| 目標 | 適用情境 | 避免情形 | 租用注意 |
|---|---|---|---|
| 隔離工作階段 | 夜間摘要、MCP 重度掃描 | 需要即時在同一聊天執行緒回覆 | 單機 M4 上並行隔離任務 ≤ 2 |
| 主工作階段 + 心跳 | 提醒、行事曆輕推 | 任務會呼叫 xcodebuild 或大規模 ripgrep |
提示詞輸入控制在約 2k token 內 |
| 命名持久工作階段 | 跨週維運日誌 | 法遵要求情境必須 ephemeral | 每週快照 OPENCLAW_STATE_DIR |
--cron 表達式應錯開2–5 分鐘;同時開始的模型洪峰常會觸發 429,詳見《API 背壓與重試》。
排程類型、Webhook 與交付矩陣
閘道 cron 支援三種排程:--at(一次性 ISO 或相對時間如 20m)、--every(固定間隔)與 --cron(5/6 欄位表達式,可帶 IANA 時區)。一次性任務成功後常會自刪——若需稽核軌跡,請先確認該行為。按任務的 Webhook 交付(2026.2.x+)會把執行摘要 POST 到 HTTPS 端點;請與入站 OpenClaw Webhook 使用相同的 TLS 與 HMAC 約定。
| 排程 | 範例 | 交付 | 無頭檢查項 |
|---|---|---|---|
--cron + 時區 |
0 9 * * 1-5 Asia/Tokyo |
Slack + Webhook | 核對閘道系統時區與任務 --tz |
--every |
4h 健康摘要 |
僅 Webhook | 處理器需冪等;承載含 runId |
--at |
部署後 45m 冒煙 |
隔離工作階段 | 把結束碼寫入 launchd 日誌路徑 |
閘道重啟、逾期任務與 jobs.json 衛生
Cron 執行於閘道內部而非模型程序內,因此每次 launchctl kickstart -k 也是排程器重啟。主機停機期間,逾期的隔離任務可能在啟動時一併入隊;上游新版本會對錯過的執行做錯峰,但仍應把重啟視窗視為高風險時段。升級前請複製 ~/.openclaw/cron/jobs.json 及狀態樹,做法見《工作階段檢查點與閘道重啟》。重啟後若日誌裡同一秒出現大量 cron 任務 ID,往往預示即將到來的 429 風暴。
npm 升級後請配合 openclaw doctor;過時模組更常讓排程靜默失效而非聊天立刻報錯。若隔離任務入隊卻無輸出,可暫時改為主工作階段提醒、向上游回報 issue,並停用可寫入工具直至修復——勿在正式租約上保留「靜默排程」。
EnvironmentVariables 中,而非全域可讀的點檔。
租用 Apple Silicon 上 OpenClaw cron 八步上線
- 確認閘道健康:
openclaw doctor與launchctl print gui/$(id -u)/com.openclaw.gateway(標籤名可能不同)。 - 首次改排程前備份
~/.openclaw/cron/jobs.json與OPENCLAW_STATE_DIR。 - 建立一個隔離、唯讀摘要任務,
--cron相對整點偏移(例如第7分)。 - 設定帶 HMAC 標頭的 HTTPS Webhook;先在預發端點驗證 2xx。
- 執行一次性
--at 15m冒煙;確認自刪行為是否符合稽核要求。 - 在維護視窗重啟閘道一次;在日誌中確認逾期任務被錯峰執行。
- 文件化熔斷:停用任務項、
launchctl kickstart -k閘道、確認 Webhook 停止。 - 執行七天後按次檢視 token 遙測;調整模型層級或拆到第二台租用主機。
錯峰友善的 cron 範例(東京工作日上午,隔離工作階段):
openclaw cron add --cron "12 9 * * 1-5" --tz Asia/Tokyo --session isolated --message "彙總夜間 CI 失敗;唯讀工具。" --webhook https://hooks.internal.example/ci-digest
無頭租約上 cron 異常排障
| 現象 | 可能原因 | 下一步 |
|---|---|---|
| 任務從不觸發 | 閘道未執行或時區不一致 | 檢查 launchd;對比 --tz 與主機 date |
| 閘道啟動時集中觸發 | 逾期積壓 | 錯開排程;升級閘道;觀察錯峰日誌 |
| Webhook 401/403 | 輪換金鑰未寫入 plist | 更新環境變數;kickstart 閘道 |
| 隔離入隊無輸出 | 派送迴歸 | 暫用主工作階段;查 doctor 與上游 issue |
常見問題
OpenClaw 把 cron 存在哪裡? 在閘道使用者的 ~/.openclaw/cron/jobs.json——升級前請備份。
夜間報告用隔離還是主工作階段? 重工具鏈用隔離;僅輕推可用主工作階段 + 心跳。
重啟後為何 cron 洪峰? 逾期任務一併追趕——請錯開排程並確認建置包含啟動錯峰。
自動化正式 Webhook 前,請先收藏 部落格索引 與 說明中心 中的 SSH 接入說明。
為何 Mac mini M4 租約適合 OpenClaw cron + Webhook
Apple Silicon M4 能在可預測的統一記憶體預算內同時承載閘道與兩條隔離 cron——不像突發型 x86 VM 在 ripgrep 時把索引擠進 swap。在香港或東京租機可降低面向亞太端點的 Webhook RTT;美國節點適合美東工作時段排程。你無需再買第二台桌面 Mac 即可獲得 7×24 自動化,並在 token 遙測提示時把重任務拆到第二台租約。請在 定價頁 對比區域,在 說明中心 演練閘道安裝;僅當 cron 任務必須除錯純 GUI 工具時才使用 VNC。