Skip to main content

Building Provider Plugins

本指南通過構建 provider 外掛來為 OpenClaw 添加模型 provider(LLM)。完成後,你會得到一個具有模型目錄、API key auth 與動態模型解析的 provider。
如果你從未建置過任何 OpenClaw 外掛,請先閱讀 入門指南,以了解基本的套件結構與 manifest 設定。

逐步指南

1

套件與 manifest

Manifest 宣告 providerAuthEnvVars,使 OpenClaw 可以在不載入外掛 runtime 的情況下偵測認證。
2

註冊 provider

最小的 provider 需要 idlabelauthcatalog
index.ts
這是一個可以運作的 provider。使用者現在可以執行 openclaw onboard --acme-ai-api-key <key> 並選擇 acme-ai/acme-large 作為他們的模型。對於只註冊一個文字 provider 搭配 API-key auth 與單一 catalog-based runtime 的捆綁 provider,優先使用較窄的 defineSingleProviderPluginEntry(...) 輔助函式:
如果 auth flow 還需要在 onboarding 期間修補 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 的 provider:
OpenClaw 按此順序呼叫 hooks。大多數 provider 只使用 2-3 個:如需詳細說明與真實範例,參考 內部:Provider Runtime Hooks
5

加入額外能力(可選)

Provider 外掛可以與文字推理一併註冊語音、media understanding、影像生成與網路搜尋:
OpenClaw 將此分類為 hybrid-capability 外掛。這是公司外掛的推薦模式(每家供應商一個外掛)。參考 內部:能力所有權
6

測試

src/provider.test.ts

檔案結構

Catalog order 參考

catalog.order 控制你的 catalog 何時與內建 provider 合併:

後續步驟