Automation
自動化
OpenClaw 透過任務、排程工作、推斷承諾、事件鉤子與常設指令,在背景執行工作。請使用本頁選擇合適的機制。
快速決策指南
flowchart TD
START([What do you need?]) --> Q1{Schedule work?}
START --> Q2{Track detached work?}
START --> Q3{Orchestrate multi-step flows?}
START --> Q4{React to lifecycle events?}
START --> Q5{Give the agent persistent instructions?}
START --> Q6{Remember a natural follow-up?}
Q1 -->|Yes| Q1a{Exact timing or flexible?}
Q1a -->|Exact| CRON["Scheduled Tasks (Cron)"]
Q1a -->|Flexible| HEARTBEAT[Heartbeat]
Q2 -->|Yes| TASKS[Background Tasks]
Q3 -->|Yes| FLOW[Task Flow]
Q4 -->|Yes| HOOKS[Hooks]
Q5 -->|Yes| SO[Standing Orders]
Q6 -->|Yes| COMMITMENTS[Inferred Commitments]| 使用情境 | 建議機制 | 原因 |
|---|---|---|
| 每天上午 9 點整傳送報告 | 排程工作(排程) | 精確時間、隔離執行 |
| 20 分鐘後提醒我 | 排程工作(排程) | 使用精確時間的一次性工作(--at) |
| 每週執行深度分析 | 排程工作(排程) | 獨立任務,可使用不同模型 |
| 每 30 分鐘檢查收件匣 | 心跳偵測 | 與其他檢查批次執行,並能感知情境 |
| 監控行事曆中的近期活動 | 心跳偵測 | 很適合用於週期性感知 |
| 在提及的面試後追蹤 | 推斷承諾 | 類似記憶的後續追蹤,未明確要求提醒 |
| 根據使用者情境進行溫和的關懷問候 | 推斷承諾 | 範圍限定於相同代理與頻道 |
| 檢查子代理或 ACP 執行的狀態 | 背景任務 | 任務帳本會追蹤所有分離執行的工作 |
| 稽核執行了哪些工作及其時間 | 背景任務 | openclaw tasks list 與 openclaw tasks audit |
| 執行多步驟研究後摘要 | 任務流程 | 具備修訂追蹤的持久化協調機制 |
| 在工作階段重設時執行指令碼 | 鉤子 | 由事件驅動,在生命週期事件發生時觸發 |
| 每次工具呼叫時執行程式碼 | 外掛鉤子 | 程序內鉤子可攔截工具呼叫 |
| 回覆前一律檢查合規性 | 常設指令 | 自動注入每個工作階段 |
排程工作(排程)與心跳偵測的比較
| 面向 | 排程工作(排程) | 心跳偵測 |
|---|---|---|
| 時間安排 | 精確(排程運算式、一次性) | 約略(預設每 30 分鐘) |
| 工作階段情境 | 全新(隔離)或共用 | 完整的主要工作階段情境 |
| 任務記錄 | 一律建立 | 絕不建立 |
| 傳送方式 | 頻道、網路鉤子或靜默 | 直接顯示於主要工作階段 |
| 最適合 | 報告、提醒、背景工作 | 收件匣檢查、行事曆、通知 |
需要精確時間或隔離執行時,請使用排程工作(排程)。若工作可受益於完整的工作階段情境,且約略時間即可,請使用心跳偵測。
核心概念
排程工作(排程)
排程是閘道內建的精確計時排程器。它會保存工作、在正確時間喚醒代理,並可將輸出傳送至聊天頻道或網路鉤子端點。支援一次性提醒、週期性運算式及傳入網路鉤子觸發器。
請參閱排程工作。
任務
背景任務帳本會追蹤所有分離執行的工作:ACP 執行、子代理啟動、隔離的排程執行,以及命令列介面操作。任務是記錄,而非排程器。請使用 openclaw tasks list 與 openclaw tasks audit 檢查任務。
請參閱背景任務。
推斷承諾
承諾是選擇啟用、短期保存的後續追蹤記憶。OpenClaw 會從一般對話中推斷承諾,將其範圍限定於相同代理與頻道,並透過心跳偵測傳送到期的問候。使用者明確要求且時間精確的提醒仍應交由排程處理。
請參閱推斷承諾。
任務流程
任務流程是建立在背景任務之上的流程協調基礎。它透過受管理與鏡像同步模式、修訂追蹤,以及用於檢查的 openclaw tasks flow list|show|cancel,管理持久化的多步驟流程。
請參閱任務流程。
常設指令
常設指令會授予代理針對指定程序的永久操作權限。這些指令存放於工作區檔案中(通常是 AGENTS.md),並會注入每個工作階段。可搭配排程使用,以進行以時間為基礎的強制執行。
請參閱常設指令。
鉤子
內部鉤子是由代理生命週期事件(/new、/reset、/stop)、工作階段壓縮、閘道啟動及訊息流程觸發的事件驅動指令碼。系統會從鉤子目錄中探索這些鉤子,並使用 openclaw hooks 管理。若要在程序內攔截工具呼叫,請使用外掛鉤子。
請參閱鉤子。
心跳偵測
心跳偵測是週期性的主要工作階段回合(預設每 30 分鐘)。它會在一次具備完整工作階段情境的代理回合中,批次執行多項檢查(收件匣、行事曆、通知)。心跳偵測回合不會建立任務記錄,也不會延長每日或閒置工作階段重設的有效期。使用 HEARTBEAT.md 可設定簡短的檢查清單;若希望僅在到期時於心跳偵測中執行週期性檢查,則可使用 tasks: 區塊。空白的心跳偵測檔案會以 empty-heartbeat-file 跳過;僅執行到期任務的模式則會以 no-tasks-due 跳過。當排程工作正在執行或排隊時,心跳偵測會延後;當相同代理依工作階段索引鍵識別的子代理或巢狀執行通道忙碌時,heartbeat.skipWhenBusy 也可延後該代理。
請參閱心跳偵測。
這些機制如何協同運作
- 排程處理精確排程(每日報告、每週審查)與一次性提醒。所有排程執行都會建立任務記錄。
- 心跳偵測每 30 分鐘在一次批次回合中處理例行監控(收件匣、行事曆、通知)。
- 鉤子透過自訂指令碼回應特定事件(工作階段重設、壓縮、訊息流程)。外掛鉤子則處理工具呼叫。
- 常設指令為代理提供持續性的情境與權限界線。
- 任務流程在個別任務之上協調多步驟流程。
- 任務會自動追蹤所有分離執行的工作,供您檢查與稽核。