OpenClaw 的一大优势在于能够同时接入多个 AI 模型提供商——Claude、OpenAI、Ollama、Gemini、OpenRouter 等。通过灵活的路由规则,你可以实现按频道分配模型、按关键词匹配模型、故障自动降级等高级功能。本文将详细介绍多模型切换和路由配置的方法。
在 openclaw.json5 的 models.providers 中配置多个提供商:
{ models: { // 默认使用的提供商 default: "claude", providers: { // Anthropic Claude claude: { apiKey: "$env:OPENCLAW_CLAUDE_API_KEY", model: "claude-sonnet-4-", maxTokens: 4096, temperature: 0.7, }, // 高级 Claude 模型(用于复杂任务) "claude-opus": { apiKey: "$env:OPENCLAW_CLAUDE_API_KEY", model: "claude-opus-4-", maxTokens: 4096, temperature: 0.5, }, // OpenAI openai: { apiKey: "$env:OPENCLAW_OPENAI_API_KEY", model: "gpt-4o", maxTokens: 4096, temperature: 0.7, }, // 本地 Ollama(免费,无需 API 密钥) ollama: { baseUrl: "http://localhost:11434", model: "llama3.1:70b", maxTokens: 2048, temperature: 0.8, }, // Google Gemini gemini: { apiKey: "$env:OPENCLAW_GEMINI_API_KEY", model: "gemini-2.0-flash", maxTokens: 4096, }, // OpenRouter(聚合多家模型) openrouter: { apiKey: "$env:OPENCLAW_OPENROUTER_API_KEY", model: "anthropic/claude-sonnet-4-", baseUrl: "https://openrouter.ai/api/v1", }, }, }, }
你可以为同一提供商配置多个实例(如上方的 claude 和 claude-opus),使用不同的模型名称。
配置完成后,用户可以在聊天中通过命令切换当前使用的模型:
GPT plus 代充 只需 145/model claude → 切换到 Claude Sonnet /model claude-opus → 切换到 Claude Opus /model openai → 切换到 GPT-4o /model ollama → 切换到本地 Ollama /model list → 查看所有可用模型 /model reset → 恢复默认模型
路由规则让 OpenClaw 根据条件自动选择最合适的模型。
{ models: { default: "claude", providers: { /* ... */ }, routing: { // 路由规则(按优先级从高到低排列) rules: [ { name: "代码任务用 Claude Opus", match: { keywords: ["写代码", "编程", "debug", "代码审查", "code"], }, provider: "claude-opus", }, { name: "翻译任务用 Gemini", match: { keywords: ["翻译", "translate", "英译中", "中译英"], }, provider: "gemini", }, { name: "日常闲聊用本地模型", match: { keywords: ["聊天", "闲聊", "你好", "哈哈"], }, provider: "ollama", }, ], // 没有匹配到任何规则时的默认提供商 fallback: "claude", }, }, }
为不同的通讯频道指定不同的模型:
GPT plus 代充 只需 145{ models: {
routing: { rules: [ { name: "Telegram 使用 Claude", match: { channel: "telegram", }, provider: "claude", }, { name: "Discord 使用 GPT-4o", match: { channel: "discord", }, provider: "openai", }, { name: "Slack 工作群使用 Claude Opus", match: { channel: "slack", }, provider: "claude-opus", }, { name: "WhatsApp 使用 Gemini(省钱)", match: { channel: "whatsapp", }, provider: "gemini", }, ], fallback: "claude", },
}, }
为特定用户指定模型:
GPT plus 代充 只需 145{ models: {
routing: { rules: [ { name: "VIP 用户使用 Opus", match: { users: ["user_001", "user_002"], }, provider: "claude-opus", }, { name: "普通用户使用 Sonnet", match: { users: ["*"], // 通配符匹配所有用户 }, provider: "claude", }, ], },
}, }
在不同时间段使用不同模型(例如夜间使用更便宜的模型):
GPT plus 代充 只需 145{ models: {
routing: { rules: [ { name: "工作时间用高级模型", match: { timeRange: { start: "09:00", end: "18:00", timezone: "Asia/Shanghai", weekdays: [1, 2, 3, 4, 5], // 周一到周五 }, }, provider: "claude-opus", }, { name: "非工作时间用经济模型", match: { timeRange: { start: "18:00", end: "09:00", timezone: "Asia/Shanghai", }, }, provider: "gemini", }, ], },
}, }
你可以组合多个条件,它们之间是 AND 关系:
GPT plus 代充 只需 145{ name: "Slack 的代码任务用 Opus", match: {
channel: "slack", keywords: ["代码", "code", "debug"],
}, provider: "claude-opus", },
当主模型不可用时,OpenClaw 可以自动切换到备用模型。
GPT plus 代充 只需 145{ models: {
default: "claude", providers: { /* ... */ }, // 故障降级链 fallbackChain: [ "claude", // 首选 "openai", // 第一备选 "gemini", // 第二备选 "ollama", // 最终兜底(本地模型,永远可用) ], // 降级触发条件 fallbackPolicy: 不可用,已自动切换到 {fallback}", }, },
}, }
GPT plus 代充 只需 145用户发送消息 ├─ 尝试 Claude → 成功 → 返回回复 │ 失败 ↓ ├─ 尝试 OpenAI → 成功 → 返回回复 │ 失败 ↓ ├─ 尝试 Gemini → 成功 → 返回回复 │ 失败 ↓ └─ 尝试 Ollama → 成功 → 返回回复(本地模型) 失败 → 返回错误提示
当你有多个相同模型的 API 密钥时,可以配置负载均衡:
{ models: {
GPT plus 代充 只需 145providers: { "claude-pool": { type: "pool", strategy: "round-robin", // round-robin, random, least-used instances: [ { apiKey: "sk-ant-key-1", model: "claude-sonnet-4-", weight: 1, }, { apiKey: "sk-ant-key-2", model: "claude-sonnet-4-", weight: 1, }, { apiKey: "sk-ant-key-3", model: "claude-sonnet-4-", weight: 2, // 权重更高,分配更多请求 }, ], }, },
}, }
负载均衡策略说明:
round-robin 轮询,依次使用每个实例
random 随机选择(按权重)
least-used 选择当前使用量最少的实例
当使用多个付费模型时,可以配置成本预警和限制:
, }, }
在 Dashboard 中可以查看各模型的使用情况。也可以通过命令行查看:
GPT plus 代充 只需 145# 打开 Dashboard openclaw dashboard
查看当前配置的所有模型
openclaw skill list
Dashboard 地址:http://localhost:18789/dashboard,在统计页面可以看到:
- 各模型的调用次数
- 各模型的平均响应时间
- Token 使用量
- 费用估算
- 降级事件记录
以下是一个包含多模型路由、降级和成本控制的完整配置:
{ gateway: {
GPT plus 代充 只需 145port: 18789, host: "0.0.0.0",
},
models: {
default: "claude", providers: { claude: { apiKey: "$env:OPENCLAW_CLAUDE_API_KEY", model: "claude-sonnet-4-", maxTokens: 4096, }, openai: { apiKey: "$env:OPENCLAW_OPENAI_API_KEY", model: "gpt-4o", maxTokens: 4096, }, ollama: { baseUrl: "http://localhost:11434", model: "llama3.1", }, }, routing: { rules: [ { name: "Slack 用 Claude", match: { channel: "slack" }, provider: "claude", }, { name: "闲聊用本地模型", match: { keywords: ["聊天", "闲聊"] }, provider: "ollama", }, ], fallback: "claude", }, fallbackChain: ["claude", "openai", "ollama"], costControl: ,
}, }
OpenClaw 的多模型架构让你不必绑定在单一 AI 提供商上。通过灵活的路由规则,你可以根据任务类型、通讯频道、用户身份甚至时间段来智能分配模型。配合故障降级链,即使某个提供商宕机,你的 AI 助手也能持续服务。建议从简单配置开始,根据实际使用情况逐步添加路由规则和降级策略。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/245213.html