高级模型配置
掌握多模型配置、主备切换和成本优化
5.1 多模型配置
在真实使用场景中,我们可能需要同时使用多个模型:
- 简单任务用便宜模型(省钱)
- 复杂任务用强大模型(效果好)
基本多模型配置
{
"agent": {
"model": {
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}"
},
"models": [
{
"id": "deepseek",
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}",
"tags": ["fast", "cheap", "default"]
},
{
"id": "gpt4",
"provider": "openai",
"name": "gpt-4",
"apiKey": "${OPENAI_API_KEY}",
"tags": ["powerful", "reasoning"]
},
{
"id": "kimi",
"provider": "moonshot",
"name": "kimimix-medium",
"apiKey": "${KIMI_API_KEY}",
"tags": ["long-context"]
}
]
}
}
根据场景自动选择模型
{
"agent": {
"model": {
"provider": "deepseek",
"name": "deepseek-chat"
},
"routing": [
{
"condition": "length < 100",
"model": "deepseek"
},
{
"condition": "contains(code)",
"model": "gpt4"
},
{
"condition": "always",
"model": "deepseek"
}
]
}
}
5.2 主备模型配置
为了保证服务稳定性,可以配置主备模型:
{
"agent": {
"model": {
"provider": "openai",
"name": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}",
"fallback": [
{
"provider": "anthropic",
"name": "claude-3-haiku",
"apiKey": "${ANTHROPIC_API_KEY}"
},
{
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}"
}
]
}
}
}
工作原理:
- 先尝试使用主模型(GPT-4o)
- 如果失败(如 API 限流),自动切换到第一个备用模型
- 如果还失败,继续切换下一个
- 直到所有模型都失败才报错
5.3 模型分组与分工
你可以为不同任务配置专门的模型:
{
"agent": {
"models": {
"chat": {
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}"
},
"coding": {
"provider": "openai",
"name": "gpt-4",
"apiKey": "${OPENAI_API_KEY}"
},
"long-context": {
"provider": "moonshot",
"name": "kimimix-medium",
"apiKey": "${KIMI_API_KEY}"
}
},
"model": "chat",
"taskRouting": {
"code": ["coding"],
"debug": ["coding"],
"write": ["chat"],
"translate": ["chat"],
"analyze": ["gpt4"]
}
}
}
5.4 成本控制
设置消费限额
{
"agent": {
"model": {
"provider": "openai",
"name": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}",
"monthlyLimit": 50,
"maxCostPerRequest": 0.5
}
}
}
使用便宜的模型处理日常任务
{
"agent": {
"model": {
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}",
"premium": {
"enabled": true,
"users": ["user_id_1", "user_id_2"],
"model": {
"provider": "openai",
"name": "gpt-4o"
}
}
}
}
}
5.5 本地模型支持
OpenClaw 也支持本地部署的模型:
Ollama 本地模型
{
"agent": {
"model": {
"provider": "ollama",
"name": "llama2",
"baseUrl": "http://localhost:11434"
}
}
}
// 或者使用 OpenAI 兼容接口
{
"agent": {
"model": {
"provider": "openai",
"baseUrl": "http://localhost:11434/v1",
"apiKey": "ollama",
"name": "llama2"
}
}
}
LM Studio 本地模型
{
"agent": {
"model": {
"provider": "openai",
"baseUrl": "http://localhost:1234/v1",
"apiKey": "not-needed",
"name": "llama-2-7b"
}
}
}
5.6 多模型协同工作
有时候一个任务需要多个模型配合完成:
{
"agent": {
"inputModel": {
"provider": "deepseek",
"name": "deepseek-chat"
},
"reasoningModel": {
"provider": "openai",
"name": "gpt-4"
},
"outputModel": {
"provider": "deepseek",
"name": "deepseek-chat"
}
}
}
5.7 配置模板
模板1:性价比之选
{
"agent": {
"model": {
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}",
"temperature": 0.7
}
}
}
模板2:均衡配置
{
"agent": {
"models": {
"default": {
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}"
},
"premium": {
"provider": "openai",
"name": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}"
}
},
"model": "default",
"routing": [
{
"condition": "contains(代码, 编程, debug)",
"model": "premium"
}
]
}
}
模板3:企业级配置
{
"agent": {
"model": {
"provider": "openai",
"name": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}",
"fallback": [
{
"provider": "anthropic",
"name": "claude-3-5-sonnet",
"apiKey": "${ANTHROPIC_API_KEY}"
},
{
"provider": "deepseek",
"name": "deepseek-chat",
"apiKey": "${DEEPSEEK_API_KEY}"
}
],
"monthlyLimit": 500
}
}
}
5.8 常见问题
❓ 模型切换不生效?
检查配置格式是否正确,然后重启服务:
openclaw restart
❓ 如何查看各模型的使用量?
# 查看使用统计
openclaw stats
❓ 本地模型连接失败?
确保 Ollama 或 LM Studio 已启动,并正确配置了 baseUrl。
5.9 总结
本章我们学习了:
- 多模型配置和自动路由
- 主备模型配置,确保服务稳定
- 模型分组与分工
- 成本控制技巧
- 本地模型支持
- 多个实用的配置模板
到这里,模型配置已经讲透了!下一章我们将学习如何对接各种消息渠道。