教程 05 — 多模型与故障转移:钱少也能用好 AI
目标:配置多个模型提供商,实现自动故障转移,日常用便宜模型、复杂任务自动升级。
为什么需要多模型?
| 场景 | 推荐模型 |
|---|---|
| 日常问答、翻译 | MiniMax M2.1(便宜) |
| 复杂推理、代码架构 | Claude Opus 或 MiniMax M2.5(贵但强) |
| 主力挂掉 / 限流 | 自动切换备用模型(不中断使用) |
场景一:MiniMax 主力 + Claude 备用
编辑 ~/.openclaw/openclaw.json:
{
"gateway": { "mode": "local" },
"env": {
"MINIMAX_API_KEY": "${MINIMAX_API_KEY}",
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}"
},
"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-M2.1",
"fallbacks": ["anthropic/claude-sonnet-4-6"]
}
}
},
"models": {
"mode": "merge",
"providers": {
"minimax": {
"baseUrl": "https://api.minimax.io/anthropic",
"apiKey": "${MINIMAX_API_KEY}",
"api": "anthropic-messages",
"models": [
{
"id": "MiniMax-M2.1",
"name": "MiniMax M2.1",
"reasoning": false,
"input": ["text"],
"cost": { "input": 15, "output": 60, "cacheRead": 2, "cacheWrite": 10 },
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
}
}
}当 MiniMax 返回错误或超时,自动切换到 Claude Sonnet,用户无感知。
场景二:不同任务用不同模型
在对话中手动切换模型:
# 切换到推理模型做复杂任务
pnpm openclaw models set minimax/MiniMax-M2.5
# 做完再切回便宜的
pnpm openclaw models set minimax/MiniMax-M2.1或者通过斜杠命令在对话中切换(如果启用了模型切换 Skill):
/模型 M2.5
帮我设计一个分布式缓存系统的架构
场景三:Claude Opus 主力 + MiniMax 备用(经济模式)
{
"agents": {
"defaults": {
"models": {
"anthropic/claude-opus-4-6": { "alias": "opus" },
"minimax/MiniMax-M2.1": { "alias": "minimax" }
},
"model": {
"primary": "anthropic/claude-opus-4-6",
"fallbacks": ["minimax/MiniMax-M2.1"]
}
}
}
}场景四:完整多模型配置(三重保障)
{
"env": {
"MINIMAX_API_KEY": "${MINIMAX_API_KEY}",
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
},
"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-M2.1",
"fallbacks": [
"anthropic/claude-sonnet-4-6",
"openai/gpt-4o"
]
}
}
}
}任意一个挂了,自动切到下一个,永不中断。
查看当前使用的模型
在对话里发:
/status
返回类似:
模型:minimax/MiniMax-M2.1
上下文:4,821 / 200,000 tokens
会话:main
查看 token 用量和费用
/usage
返回本次会话的 token 消耗和估算费用,帮助你控制成本。
思考等级(Thinking Level)
MiniMax M2.5 和 Claude Opus 支持"深度思考"模式,消耗更多 token 但回答更准确:
/think high
帮我分析这段代码的时间复杂度并给出优化方案:
[粘贴代码]
思考等级:off / minimal / low / medium / high / xhigh
日常问答用 off,复杂任务用 high。
模型选择建议
| 任务类型 | 推荐模型 | 思考等级 |
|---|---|---|
| 日常问答 | MiniMax M2.1 | off |
| 代码生成 | MiniMax M2.1 Lightning | low |
| 代码审查 | MiniMax M2.5 | medium |
| 系统设计 | MiniMax M2.5 / Claude Opus | high |
| 数学推理 | MiniMax M2.5 | xhigh |
常见问题
fallback(故障转移)的触发条件是什么?
当主模型返回以下情况时自动触发:HTTP 5xx 错误、请求超时、速率限制(429)、或模型服务不可用。OpenClaw 会按 fallbacks 数组的顺序依次尝试,对用户完全透明无感知。
如何知道当前实际在用哪个模型?
在对话中发 /status,返回的信息中会显示当前活跃模型的完整 ID(例如 minimax/MiniMax-M2.1)。如果发生了 fallback,日志中会有记录:tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | grep fallback。
不同模型的 Token 费用怎么计算?
费用按各模型提供商的官方价格计算,在 openclaw.json 的 models[].cost 字段中配置(单位:每百万 token 的人民币分)。运行 /usage 查看当前会话的 token 消耗和估算费用。
能在同一对话中手动强制切换模型吗?
可以,使用 pnpm openclaw models set <模型ID> 命令即时切换,无需重启网关。或者通过配置一个"模型切换"技能(SKILL.md),让 AI 理解"切换到 M2.5"这样的自然语言指令。
多个 Provider 的 API Key 都需要配置吗?
只需要配置你实际要用到的 Provider。如果你配了 MiniMax 主力 + Claude 备用,那只需要这两个 Key。没有配置的 Provider 不会被调用,也不会报错。