Building Provider Plugins
本指南通過構建 provider 外掛來為 OpenClaw 添加模型 provider(LLM)。完成後,你會得到一個具有模型目錄、API key auth 與動態模型解析的 provider。如果你從未建置過任何 OpenClaw 外掛,請先閱讀 入門指南,以了解基本的套件結構與 manifest 設定。
逐步指南
1
套件與 manifest
providerAuthEnvVars,使 OpenClaw 可以在不載入外掛 runtime 的情況下偵測認證。2
註冊 provider
最小的 provider 需要 這是一個可以運作的 provider。使用者現在可以執行 如果 auth flow 還需要在 onboarding 期間修補
id、label、auth 與 catalog:index.ts
openclaw onboard --acme-ai-api-key <key> 並選擇 acme-ai/acme-large 作為他們的模型。對於只註冊一個文字 provider 搭配 API-key auth 與單一 catalog-based runtime 的捆綁 provider,優先使用較窄的 defineSingleProviderPluginEntry(...) 輔助函式:models.providers.*、aliases 與 agent 預設模型,使用來自 openclaw/plugin-sdk/provider-onboard 的預設輔助函式。最窄的輔助函式為 createDefaultModelPresetAppliers(...)、createDefaultModelsPresetAppliers(...) 與 createModelCatalogPresetAppliers(...)。3
加入動態模型解析
如果你的 provider 接受任意模型 ID(如代理或路由),加入 如果解析需要網路呼叫,使用
resolveDynamicModel:prepareDynamicModel 進行非同步預熱 — resolveDynamicModel 會在它完成後再次執行。4
加入 runtime hooks(視需要)
大多數 provider 只需要
catalog + resolveDynamicModel。根據 provider 的需求逐步加入 hooks。- Token exchange
- 自訂標頭
- 使用情況與帳單
針對在每次推理呼叫之前需要 token exchange 的 provider:
所有可用的 provider hook
所有可用的 provider hook
5
加入額外能力(可選)
Provider 外掛可以與文字推理一併註冊語音、media understanding、影像生成與網路搜尋:OpenClaw 將此分類為 hybrid-capability 外掛。這是公司外掛的推薦模式(每家供應商一個外掛)。參考 內部:能力所有權。
6
測試
src/provider.test.ts
檔案結構
Catalog order 參考
catalog.order 控制你的 catalog 何時與內建 provider 合併:
後續步驟
- Channel 外掛 — 如果外掛也提供 channel
- SDK Runtime —
api.runtime輔助函式(TTS、搜尋、subagent) - SDK 概述 — 完整 subpath import 參考
- 外掛內部 — hook 詳細說明與捆綁範例