OpenClaw
OpenClaw 是一個開源、自託管的個人 AI 助手平臺,把 Telegram、Discord、WhatsApp、iMessage 等訊息應用連線到執行在你自己硬體上的 AI 代理。在 openclaw.json 中把 WRouter 新增為自定義 provider,即可讓 WRouter 路由的所有模型對 OpenClaw 的智慧體可用。
前置要求
| 項 | 要求 |
|---|---|
| Node.js | ≥ 22 |
| OpenClaw | 最新版本 |
| WRouter | 一把可用 sk- Token |
安裝與引導
bash
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon嚮導會完成認證、Gateway 設定與可選的渠道初始化。其他安裝方式(Docker、手動)見 OpenClaw Getting Started。
通過 models.providers 接入 WRouter
OpenClaw 從 openclaw.json 發現模型 provider。把 WRouter 宣告為自定義 provider,列出你要暴露的模型,再把智慧體的預設模型指向它即可。
內建 provider 外掛已經發布了預設目錄。只有當你想覆蓋預設的 baseUrl、headers 或模型列表時才需要顯式
models.providers.<id>條目——這正是 WRouter 接入的場景。
1. 提供 API Key
在 shell、服務環境或 OpenClaw 可讀取的 .env 中:
bash
export WROUTER_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"2. 編輯 openclaw.json
補充(或合併)以下片段:
js
{
models: {
mode: "merge",
providers: {
wrouter: {
baseUrl: "https://wrouter.ai/v1",
apiKey: "${WROUTER_API_KEY}",
api: "openai-completions",
models: [
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "gemini-2.5-flash", name: "Gemini 2.5 Flash" },
// 多模態模型 — 讓圖片以原生輸入方式傳入
{ id: "gpt-5.4", name: "GPT-4o", input: ["text", "image"] },
],
},
},
},
agents: {
defaults: {
model: {
primary: "wrouter/claude-sonnet-4-6",
fallbacks: ["wrouter/gemini-2.5-flash"],
},
models: {
"wrouter/claude-sonnet-4-6": { alias: "sonnet" },
"wrouter/gemini-2.5-flash": { alias: "flash" },
},
},
},
}關鍵配置說明
| 配置項 | 說明 |
|---|---|
models.mode | 建議設為 "merge",保留 OpenClaw 內建 provider 的同時追加 WRouter |
models.providers.wrouter.baseUrl | WRouter 地址,必須帶 /v1 |
models.providers.wrouter.apiKey | 推薦用 ${WROUTER_API_KEY} 注入,避免明文 |
models.providers.wrouter.api | OpenAI 相容閘道器使用 "openai-completions" |
models.providers.wrouter.models[] | 每一項的 id 必須與 WRouter 控制台中暴露的模型 ID 完全一致 |
models.providers.wrouter.models[].input | 如該模型支援圖片,設為 ["text", "image"]——這樣 WebChat 與節點附件會作為原生輸入傳入,而非文本媒體引用 |
agents.defaults.model.primary | 預設主模型,格式 provider/model-id(如 wrouter/claude-sonnet-4-6) |
agents.defaults.model.fallbacks | 主模型失敗時按順序切換的備選列表 |
agents.defaults.models | 可選別名 / 每模型後設資料 — 只控制可見性,本身不會註冊新的執行時模型。自定義 provider 模型必須同時出現在 models.providers.<provider>.models[] |
驗證
通過任一已接入渠道(Telegram、Discord、Web UI)傳送訊息。智慧體應通過 WRouter 用 primary 模型響應;失敗時按配置自動 fallback。
推薦模型
| 模型 | 用途 |
|---|---|
claude-sonnet-4-6 | 跨渠道日常主力 |
gpt-5.4 | 多模態(圖片附件)— 記得加 input: ["text", "image"] |
gemini-2.5-flash | 長對話歷史 |
tts-1 + whisper-1 | 語音渠道(TTS + STT) |
常見錯誤
| 現象 | 可能原因 |
|---|---|
上游返回 404 | baseUrl 沒帶 /v1 |
| 執行時報模型"未註冊" | 模型只在 agents.defaults.models 裡聲明瞭;必須同時出現在 models.providers.<provider>.models[] |
| 圖片附件被當作文本引用 | 沒在該模型上設 input: ["text", "image"] |
| Fallback 不生效 | fallbacks 中的 ID 與 models.providers.wrouter.models[].id 不匹配 |
已知限制
- 渠道整合(Telegram 機器人、Discord webhook、WhatsApp Business)需要在對應平臺單獨申請與配置。
- OpenClaw 執行在你自己的硬體上,可用性與安全由你負責。
- 語音互動質量取決於作業系統(macOS / iOS / Android 的 STT/TTS 支援有差異)。