關於 npm 套件、裝置配對、重新連線復原、歷史記錄、訂閱
和核准,請先參閱
建置閘道用戶端。如果你的
應用程式將閘道作為子程序監管,也請閱讀
嵌入 OpenClaw。在
初始套件推出期間,在第一個包含套件的
OpenClaw 版本發布前,npm 可能會傳回
E404。本頁適用於 OpenClaw 程序外部的程式碼。在
OpenClaw 內部執行的外掛程式碼應改用已有文件說明的
openclaw/plugin-sdk/* 子路徑。目前可用的項目
建議途徑
對於代理程式執行,請從agent RPC 開始,並搭配 agent.wait 取得
終止結果。對於持久的對話狀態,請使用 sessions.* 方法。
對於 UI 整合,請訂閱閘道事件,並只呈現你的應用程式
能理解的事件類別。
協作式主機暫停
凍結正在執行的程序或建立其快照的託管控制器,可以使用 主機中立的暫停交握:- 停止接受由主機控制的外部輸入流量。
- 使用穩定且唯一的
requestId呼叫gateway.suspend.prepare。 - 如果回應為
busy,請讓程序繼續執行,並稍後重試。 - 如果回應為
ready,請儲存傳回的suspensionId,然後在expiresAtMs前凍結程序或建立其快照。 - 解除凍結後,或放棄暫停時,請透過現有的 WebSocket 或管理 HTTP 控制
路徑,使用該
suspensionId呼叫gateway.suspend.resume。
gateway.suspend.prepare—operator.admin;參數{ "requestId": "stable-host-operation-id" }gateway.suspend.status—operator.read;參數{ "suspensionId": "id-from-prepare" }gateway.suspend.resume—operator.admin;參數{ "suspensionId": "id-from-prepare" }
status: "busy"、reason、
retryAfterMs、activeCount 和 blockers。就緒結果的格式如下:
{"status":"running"},或傳回包含 expiresAtMs 的就緒結果。
繼續執行會傳回 {"ok":true,"status":"running","resumed":true};成功繼續執行後再次呼叫,
則會傳回 resumed: false。
相互競爭的請求 ID 或暫時性的排程器恢復失敗,會傳回可重試的
UNAVAILABLE,其中包含 retryAfterMs。在排程器復原期間,準備、狀態
和繼續執行都會傳回該錯誤,閘道會維持未就緒並
採取失敗關閉模式,且主機不得凍結閘道或建立其快照。OpenClaw 會自動
重試排程器,且僅會在復原成功後重新開放接受連線。
不相符的繼續執行 ID 會傳回 INVALID_REQUEST。準備作業與閘道共用
每分鐘三次嘗試的控制平面寫入預算;請遵循傳回的
重試延遲。WebSocket 用戶端依裝置和 IP 分組計算。管理 HTTP
控制器依解析後的用戶端 IP 分組計算,因此位於同一個
Proxy 後方的控制器可能會共用一份預算。
準備作業僅能拒絕:OpenClaw 會關閉新的根層級/工作階段/命令接收、
暫停自動排程計時,並同步檢查工作。如果有任何
工作處於活動狀態,則會在傳回 busy 前恢復排程器並重新開放接收;
它不會中斷該工作,也不會等待該工作排空。就緒租約持續兩
分鐘。使用相同的 requestId 重複呼叫 prepare 會續期;租約到期時會先恢復
排程器,再重新開放接收。
在就緒租約期間到期應觸發的重新啟動發送,會等到租約
恢復後再執行;正在進行的重新啟動會使準備作業傳回 busy。
處於就緒狀態時,/healthz 仍可使用,而 /readyz 會傳回 503。本機或
已驗證的就緒狀態回應包含 gateway-draining;未驗證的
遠端探測只會收到 { "ready": false }。HTTP 健康狀態探測、
現有 WebSocket 連線上的暫停方法,以及已啟用的
管理 HTTP RPC 路由仍可使用。其他 RPC 會傳回可重試的
UNAVAILABLE。內建 HTTP 使用者工作路由和一般外掛 HTTP 路由,
包括與 OpenAI 相容的 API、工具/工作階段作業、節點監看及
已設定的鉤子,會傳回包含 error.code: "gateway_unavailable" 的 503。新的
外掛所擁有的 WebSocket 升級也會傳回 503;這涵蓋升級
所有權,不包含之後透過已建立的外掛 Socket 執行的工作。
此交握不會保存傳入訊息、不會停止第三方頻道
傳輸,也不會控制託管平台。主機必須在準備前封鎖其輸入流量,
並持續負責喚醒、快照/凍結及
停止。activeCount 是彙總的受追蹤工作數量,而 blockers
包含非零類別計數和有數量限制的任務詳細資料。這不是
通用的程序靜止屏障。background-exec 阻擋項目僅提供彙總資訊:
命令文字、程序 ID、輸出以及工作階段或範圍識別碼絕不會
透過協定傳送。頻道健康狀態、維護、快取重新整理、已建立的
外掛 WebSocket 工作階段,以及未登錄的外掛所擁有背景工作,都可能
繼續處於活動狀態。
託管平台必須一致地凍結整個程序樹及其
檔案系統,或為其建立快照;這份初始合約無法證明未登錄的工作
處於閒置狀態。
應用程式碼與外掛程式碼
當程式碼位於 OpenClaw 外部時,請使用閘道 RPC:- 啟動或觀察代理程式執行的 Node 指令碼
- 呼叫閘道的 CI 工作
- 儀表板和管理面板
- IDE 擴充功能
- 不需要成為頻道外掛的外部橋接器
- 使用模擬或實際閘道傳輸的整合測試
- 供應商外掛
- 頻道外掛
- 工具或生命週期鉤子
- 代理程式控管外掛
- 受信任的執行階段輔助工具
openclaw/plugin-sdk/*;這些子路徑是供
OpenClaw 載入的外掛使用。