The OpenClaw App SDK 是供 OpenClaw 程序外部應用程式使用的公開用戶端 API。當腳本、儀表板、CI 作業、IDE 擴充功能或其他外部應用程式想要連線到 Gateway、啟動代理執行、串流事件、等待結果、取消工作,或檢查 Gateway 資源時,請使用Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/sdk。
App SDK 與 Plugin SDK 不同。
@openclaw/sdk 會從 OpenClaw 外部與 Gateway 通訊。
openclaw/plugin-sdk/* 僅供在 OpenClaw 內部執行,並註冊提供者、通道、工具、hook 或受信任執行階段的 plugins 使用。目前提供的內容
@openclaw/sdk 提供:
| Surface | 狀態 | 功能 |
|---|---|---|
OpenClaw | 就緒 | 主要用戶端進入點。負責傳輸、連線、請求與事件。 |
GatewayClientTransport | 就緒 | 由 Gateway 用戶端支援的 WebSocket 傳輸。 |
oc.agents | 就緒 | 列出、建立、更新、刪除並取得代理控制代碼。 |
Agent.run() | 就緒 | 啟動 Gateway agent 執行並回傳 Run。 |
oc.runs | 就緒 | 建立、取得、等待、取消並串流執行。 |
Run.events() | 就緒 | 串流標準化的逐執行事件,並為快速執行提供重播。 |
Run.wait() | 就緒 | 呼叫 agent.wait 並回傳穩定的 RunResult。 |
Run.cancel() | 就緒 | 依執行 id 呼叫 sessions.abort,可用時包含 session key。 |
oc.sessions | 就緒 | 建立、解析、傳送至、修補、壓縮並取得 session 控制代碼。 |
Session.send() | 就緒 | 呼叫 sessions.send 並回傳 Run。 |
oc.tasks | 就緒 | 列出、讀取並取消 Gateway 任務帳本項目。 |
oc.models | 就緒 | 呼叫 models.list 與目前的 models.authStatus 狀態 RPC。 |
oc.tools | 就緒 | 透過政策管線列出、限定範圍並叫用 Gateway 工具。 |
oc.artifacts | 就緒 | 列出、取得並下載 Gateway transcript artifacts。 |
oc.approvals | 就緒 | 透過 Gateway approval RPC 列出並解析 exec approvals。 |
oc.environments | 部分 | 列出 Gateway-local 與 node 環境候選項目;尚未接上建立/刪除。 |
oc.rawEvents() | 就緒 | 為進階消費者公開原始 Gateway 事件。 |
normalizeGatewayEvent() | 就緒 | 將原始 Gateway 事件轉換為穩定的 SDK 事件形狀。 |
AgentRunParams, RunResult, RunStatus, OpenClawEvent,
OpenClawEventType, GatewayEvent, OpenClawTransport,
GatewayRequestOptions, SessionCreateParams, SessionSendParams,
ArtifactSummary, ArtifactQuery, ArtifactsListResult,
ArtifactsGetResult, ArtifactsDownloadResult,
TaskSummary, TaskStatus, TasksListParams, TasksListResult,
TasksGetResult, TasksCancelResult, RuntimeSelection,
EnvironmentSelection, WorkspaceSelection, ApprovalMode,以及相關的結果型別。
連線到 Gateway
使用明確的 Gateway URL 建立用戶端,或為測試與嵌入式應用程式執行階段注入自訂傳輸。new OpenClaw({ gateway: "ws://..." }) 等同於 url。建構函式接受
gateway: "auto" 選項,但自動 Gateway 探索尚不是獨立的 SDK 功能;當應用程式尚不知道如何探索 Gateway 時,請傳入 url。
測試時,傳入實作 OpenClawTransport 的物件:
執行代理
當應用程式需要代理控制代碼時,使用oc.agents.get(id),然後呼叫
agent.run()。
openai/gpt-5.5 這樣的提供者限定模型參照會拆分為 Gateway
provider 與 model 覆寫。timeoutMs 在 SDK 中維持毫秒,並會針對
agent RPC 轉換為 Gateway timeout 秒數。
run.wait() 使用 Gateway agent.wait RPC。如果等待期限到期時執行仍在進行中,會回傳 status: "accepted",而不是假裝執行本身已逾時。執行階段逾時、中止的執行與取消的執行會標準化為 timed_out 或 cancelled。
建立並重用 sessions
當應用程式需要持久的 transcript 狀態時,請使用 sessions。Session.send() 會呼叫 sessions.send 並回傳 Run。Session 控制代碼也支援:
串流事件
SDK 會將原始 Gateway 事件標準化為穩定的OpenClawEvent envelope:
| 事件類型 | 來源 Gateway 事件 |
|---|---|
run.started | agent 生命週期開始 |
run.completed | agent 生命週期結束 |
run.failed | agent 生命週期錯誤 |
run.cancelled | 已中止/取消的生命週期結束 |
run.timed_out | 逾時生命週期結束 |
assistant.delta | 助手串流 delta |
assistant.message | 助手訊息 |
thinking.delta | Thinking 或計畫串流 |
tool.call.started | 工具/項目/命令開始 |
tool.call.delta | 工具/項目/命令更新 |
tool.call.completed | 工具/項目/命令完成 |
tool.call.failed | 工具/項目/命令失敗或遭封鎖狀態 |
approval.requested | Exec 或 plugin approval request |
approval.resolved | Exec 或 plugin approval resolution |
session.created | sessions.changed 建立 |
session.updated | sessions.changed 更新 |
session.compacted | sessions.changed compaction |
task.updated | 任務更新事件 |
artifact.updated | Patch 串流事件 |
raw | 尚無穩定 SDK 對應的任何事件 |
Run.events() 會將事件篩選到單一執行 id,並為快速執行重播已看過的事件。這表示文件中的流程是安全的:
oc.events()。若要使用原始 Gateway frames,請使用
oc.rawEvents()。
模型、工具、artifacts 與 approvals
模型輔助工具會對應到目前的 Gateway 方法:oc.tools.invoke() 會回傳具型別的 envelope,而不是因政策或 approval 拒絕而拋出。
sessionKey、runId 或
taskId 範圍:
openclaw tasks 的持久任務帳本:
目前明確不支援
SDK 包含我們想要的產品模型名稱,但不會默默假裝 Gateway RPC 存在。這些呼叫目前會拋出明確的不支援錯誤:workspace、runtime、environment 與 approvals 欄位已型別化為未來形狀,但目前的 Gateway 不支援在
agent RPC 上使用這些覆寫。如果呼叫端傳入它們,SDK 會在提交執行前拋出,避免工作意外以預設 workspace、runtime、environment 或 approval 行為執行。
App SDK 與 Plugin SDK
當程式碼位於 OpenClaw 外部時,請使用 App SDK:- 啟動或觀察代理執行的 Node 腳本
- 呼叫 Gateway 的 CI 作業
- 儀表板與管理面板
- IDE 擴充功能
- 不需要成為通道 plugins 的外部橋接
- 使用假或真實 Gateway 傳輸的整合測試
- 提供者 plugins
- 通道 plugins
- 工具或生命週期 hooks
- 代理 harness plugins
- 受信任的 runtime helpers
@openclaw/sdk 匯入。Plugin 程式碼應從已文件化的
openclaw/plugin-sdk/* 子路徑匯入。不要混用這兩份合約。