跳到主要内容

高级模型配置

掌握多模型配置、主备切换和成本优化

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}"
}
]
}
}
}

工作原理:

  1. 先尝试使用主模型(GPT-4o)
  2. 如果失败(如 API 限流),自动切换到第一个备用模型
  3. 如果还失败,继续切换下一个
  4. 直到所有模型都失败才报错

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 总结

本章我们学习了:

  • 多模型配置和自动路由
  • 主备模型配置,确保服务稳定
  • 模型分组与分工
  • 成本控制技巧
  • 本地模型支持
  • 多个实用的配置模板

到这里,模型配置已经讲透了!下一章我们将学习如何对接各种消息渠道。