Skip to main content
Webhooks 外掛新增經過驗證的 HTTP 路由,讓受信任的外部 系統(Zapier、n8n、CI 作業、內部服務)無須撰寫自訂外掛, 即可透過 HTTP 建立及驅動受管理的 OpenClaw TaskFlow。 此外掛在閘道程序內執行。若使用遠端閘道,請在該主機上安裝並 設定外掛,然後重新啟動閘道。外掛隨附時未設定任何路由,因此在你新增至少一條路由前, 不會執行任何操作。

設定路由

plugins.entries.webhooks.config 下設定組態:
路由欄位: secret 接受純文字字串或 SecretRef:{ source: "env" | "file" | "exec", provider: "default", id: "..." } SecretRef 會解析至閘道的啟動組態快照。當某條路由的 密鑰無法解析時,閘道會繼續執行,而該路由仍會保持 註冊但處於停用狀態:請求會收到一般驗證失敗回應(401)。 其他路由仍可使用。修正 SecretRef 來源後,重新載入或重新啟動 閘道以啟用新快照。絕不會在公開請求路徑上解析 SecretRef 值。

安全性模型

每條路由都會以其所設定 sessionKey 的 TaskFlow 權限運作:它 可以檢查及變更該工作階段擁有的任何 TaskFlow。TaskFlow 存取 一律經由 api.runtime.tasks.managedFlows.bindSession(...),因此 路由絕不可能在其繫結的工作階段之外操作。若要限制影響範圍:
  • 每條路由使用一組高強度且唯一的密鑰。
  • 優先使用 SecretRef,而非內嵌的純文字密鑰。
  • 將路由繫結至足以滿足工作流程需求的最小範圍工作階段。
  • 僅公開你所需的特定網路鉤子路徑。
每個路徑的請求處理順序:HTTP 方法(僅限 POST)及 Content-Type: application/json 檢查,接著是固定時間窗速率限制(每個路徑與用戶端 IP 組合鍵在每個 60 秒時間窗內 120 個 請求,最多追蹤 4,096 個 鍵),再接著是進行中請求限制(每個鍵可同時處理 8 個請求,最多 追蹤 4,096 個鍵)、共用密鑰驗證,最後讀取上限為 256 KB/ 15 秒的 JSON 內文。未通過較早階段檢查的請求絕不會進入 後續階段。

請求格式

傳送 POST 請求時,請使用 Content-Type: application/json,並提供 Authorization: Bearer <secret>x-openclaw-webhook-secret: <secret>

支援的動作

變更動作(set_waitingresume_flowfinish_flowfail_flowrequest_cancel)需要 flowIdexpectedRevision 以進行樂觀 並行控制;過期的修訂版本會傳回 409 revision_conflict

create_flow

run_task

允許的 runtime 值:subagentacp。只有當 status"running" 時, startedAtlastEventAtprogressSummary 才有效;將這些值與任何其他狀態一起傳送時,會傳回 400 invalid_request

回應結構

流程和任務檢視絕不包含擁有者/工作階段中繼資料,因此回應無法 洩漏路由所繫結的 sessionKeycode 值包括 not_foundnot_managedrevision_conflictpersist_failedcancel_requestedcancel_pendingterminalinvalid_requestrequest_rejected,以及 動作專屬的後備代碼(mutation_rejectedcreate_rejectedtask_not_createdcancel_rejected),用於因上述具名代碼未涵蓋的 原因而拒絕變更時。

相關內容