OpenClaw多模型服务商配置指南
OpenClaw多模型服务商配置指南
目录
概述
OpenClaw 支持配置多个 AI 模型服务商,实现灵活的模型调度和管理。通过统一的配置文件 openclaw.json,您可以:
- 接入多个模型服务商(如 OpenAI、Anthropic、百度千帆等)
- 为每个服务商配置多个模型
- 在 Agent 级别灵活指定使用的模型
- 支持推理模型、多模态模型等多种模型类型
多服务商配置架构
OpenClaw 的模型配置采用 "服务商-模型" 两层架构:
models
├── mode: "merge" # 配置合并模式
├── providers # 服务商配置
│ ├── glm # 服务商ID
│ │ ├── baseUrl # API基础URL
│ │ ├── apiKey # API密钥
│ │ ├── api # API协议类型
│ │ ├── headers # 自定义请求头
│ │ └── models[] # 该服务商下的模型列表
│ └── qianfan
│ └── ...配置模式 (mode)
json
{
"models": {
"mode": "merge" // 可选值: "merge" | "replace"
}
}- merge: 将自定义配置与默认配置合并
- replace: 完全替换默认配置
服务商配置参数详解
基础参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
baseUrl | string | 是 | API 服务的基础 URL 地址 |
apiKey | string | 是 | API 认证密钥 |
api | string | 是 | API 协议类型 |
headers | object | 否 | 自定义 HTTP 请求头 |
models | array | 是 | 该服务商提供的模型列表 |
参数详细说明
baseUrl
API 服务的基础 URL,所有模型请求都会基于此地址。
json
{
"baseUrl": "https://qianfan.baidubce.com/v2"
}常见示例:
- 百度千帆:
https://qianfan.baidubce.com/v2 - OpenAI:
https://api.openai.com/v1 - 内部服务:
http://oneapi-comate.baidu-int.com/v1
apiKey
用于 API 认证的密钥,不同服务商格式不同:
json
// 百度千帆 BCE 认证格式
{
"apiKey": "bce-v3/ALTAK-xxxxxxxx"
}
// 标准 API Key 格式
{
"apiKey": "sk-xxxxxxxxxxxx"
}api
指定 API 协议类型,决定请求格式:
json
{
"api": "openai-completions" // 使用 OpenAI 兼容的 Chat Completions API
}支持的协议:
openai-completions: OpenAI Chat Completions 兼容协议
headers
自定义 HTTP 请求头,用于传递额外认证或追踪信息:
json
{
"headers": {
"comate_custom_header": "{\"username\":\"your-name\",\"source\":\"openclaw\"}"
}
}完整服务商配置示例
示例 1: 内部服务配置 (glm)
json
{
"glm": {
"baseUrl": "http://oneapi-comate.baidu-int.com/v1",
"apiKey": "oOl53tzmBGxxxxxxx",
"api": "openai-completions",
"headers": {
"comate_custom_header": "{\"username\":\"username\",\"source\":\"openclaw\"}"
},
"models": [
{
"id": "glm-4.7-internal",
"name": "glm Coding",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
}示例 2: 百度千帆配置 (qianfan)
json
{
"qianfan": {
"baseUrl": "https://qianfan.baidubce.com/v2",
"apiKey": "bce-v3/ALTAK-xxxxxxxx",
"api": "openai-completions",
"models": [
// ... 多个模型配置
]
}
}模型配置参数说明
每个模型支持以下配置参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | 模型唯一标识符,调用时使用 |
name | string | 否 | 模型显示名称 |
reasoning | boolean | 否 | 是否为推理模型(如 DeepSeek-R1) |
input | array | 是 | 支持的输入类型:text、image |
contextWindow | number | 是 | 上下文窗口大小(tokens) |
maxTokens | number | 是 | 最大输出 tokens 数 |
cost | object | 否 | 成本配置 |
参数详解
id 与 name
json
{
"id": "deepseek-v3.2", // 用于 API 调用和模型引用
"name": "deepseek-v3.2" // 显示名称,便于识别
}reasoning (推理模型)
标记模型是否支持推理能力(如 Chain-of-Thought):
json
{
"reasoning": true // 推理模型,如 DeepSeek-R1、DeepSeek-V3.2
}推理模型特点:
- 支持复杂的逻辑推理
- 会输出思考过程
- 适合数学、编程、分析类任务
input (输入类型)
指定模型支持的输入模态:
json
// 纯文本模型
{
"input": ["text"]
}
// 多模态模型(支持文本和图像)
{
"input": ["text", "image"]
}contextWindow (上下文窗口)
模型能够处理的最大上下文长度:
json
{
"contextWindow": 131072 // 约 10 万 tokens
}常见上下文大小:
- 32K: 32768 tokens
- 128K: 131072 tokens
- 200K: 204800 tokens
maxTokens (最大输出)
模型单次响应的最大 token 数:
json
{
"maxTokens": 96000 // 最大输出 9.6 万 tokens
}cost (成本配置)
定义模型的调用成本:
json
{
"cost": {
"input": 0, // 输入每千 tokens 价格
"output": 0, // 输出每千 tokens 价格
"cacheRead": 0, // 缓存读取价格
"cacheWrite": 0 // 缓存写入价格
}
}不同类型模型的配置
1. 推理模型 (reasoning: true)
推理模型适用于需要复杂逻辑分析的任务。
json
{
"id": "deepseek-v3.2",
"name": "deepseek-v3.2",
"reasoning": true, // 标记为推理模型
"input": ["text", "image"], // 可选支持图像输入
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 131072, // 128K 上下文
"maxTokens": 96000 // 大输出窗口
}适用场景:
- 复杂问题求解
- 代码分析与生成
- 数学推理
- 多步骤任务规划
2. 多模态模型 (input: ["text", "image"])
支持图像理解的多模态模型。
json
{
"id": "qwen3-vl-32b-instruct",
"name": "qwen3-vl-32b-instruct",
"reasoning": false,
"input": ["text", "image"], // 支持文本和图像输入
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 131072,
"maxTokens": 32768
}适用场景:
- 图像描述与分析
- 视觉问答
- 文档图片理解
- 截图分析
3. 普通文本模型
标准的文本对话模型。
json
{
"id": "glm-5",
"name": "glm-5",
"reasoning": false,
"input": ["text"], // 仅支持文本输入
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 202000, // 约 20 万上下文
"maxTokens": 131072 // 大输出窗口
}适用场景:
- 日常对话
- 文本生成
- 内容创作
- 信息检索
模型类型对比表
| 特性 | 推理模型 | 多模态模型 | 普通文本模型 |
|---|---|---|---|
| reasoning | true | false | false |
| input | ["text"] 或 ["text", "image"] | ["text", "image"] | ["text"] |
| 典型应用 | 复杂推理、编程 | 图像理解 | 日常对话 |
| 示例模型 | deepseek-v3.2 | qwen3-vl-32b-instruct | glm-5 |
Agent级别的模型配置覆盖
OpenClaw 支持为不同的 Agent 配置不同的默认模型,实现精细化的模型调度。
配置结构
json
{
"agents": {
"defaults": {
"model": {
"primary": "qianfan/glm-5" // 全局默认模型
},
"imageModel": {
"primary": "qianfan/qwen3-vl-32b-instruct" // 默认图像模型
},
"models": {
"glm/glm-4.7-internal": { "alias": "glm-4.7-internal" },
"qianfan/glm-5": { "alias": "glm-5" }
// ... 模型别名配置
}
},
"list": [
{
"id": "main",
"default": true,
"name": "Main"
// 使用 defaults 中的模型配置
},
{
"id": "code-helper",
"name": "Code Helper",
"model": {
"primary": "qianfan/qwen3-coder-480b-a35b-instruct" // 覆盖默认模型
}
}
]
}
}覆盖优先级
Agent 自定义模型 > 全局默认模型实际配置示例
以下是一个完整的 Agent 模型配置示例:
json
{
"agents": {
"defaults": {
"model": {
"primary": "qianfan/glm-5"
},
"imageModel": {
"primary": "qianfan/qwen3-vl-32b-instruct"
}
},
"list": [
{
"id": "main",
"default": true,
"name": "Main"
// 使用默认的 glm-5 模型
},
{
"id": "code-helper",
"name": "Code Helper",
"model": {
"primary": "qianfan/qwen3-coder-480b-a35b-instruct" // 编程专家模型
}
},
{
"id": "meeting-secretary",
"name": "Meeting Secretary",
"model": {
"primary": "qianfan/kimi-k2.5" // 长上下文模型,适合会议记录
}
},
{
"id": "project-assistant",
"name": "Project Assistant",
"model": {
"primary": "qianfan/glm-4.7" // 项目助手模型
}
},
{
"id": "researcher",
"name": "Researcher",
"model": {
"primary": "qianfan/glm-5" // 研究助手
}
}
]
}
}模型引用格式
在 Agent 配置中引用模型时,使用 服务商ID/模型ID 格式:
json
{
"model": {
"primary": "qianfan/deepseek-v3.2"
}
}格式说明:
qianfan: 服务商 ID(providers 下的 key)deepseek-v3.2: 模型 ID(models 下的 id)- 使用
/分隔
完整配置示例
以下是一个包含多个服务商和模型类型的完整配置示例:
json
{
"models": {
"mode": "merge",
"providers": {
"glm": {
"baseUrl": "http://oneapi-comate.baidu-int.com/v1",
"apiKey": "your-api-key",
"api": "openai-completions",
"headers": {
"comate_custom_header": "{\"username\":\"your-name\",\"source\":\"openclaw\"}"
},
"models": [
{
"id": "glm-4.7-internal",
"name": "glm Coding",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 8192
}
]
},
"qianfan": {
"baseUrl": "https://qianfan.baidubce.com/v2",
"apiKey": "bce-v3/your-bce-key",
"api": "openai-completions",
"models": [
{
"id": "glm-5",
"name": "glm-5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 202000,
"maxTokens": 131072
},
{
"id": "deepseek-v3.2",
"name": "deepseek-v3.2",
"reasoning": true,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 131072,
"maxTokens": 96000
},
{
"id": "qwen3-vl-32b-instruct",
"name": "qwen3-vl-32b-instruct",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 131072,
"maxTokens": 32768
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 32768
},
{
"id": "qwen3-coder-480b-a35b-instruct",
"name": "qwen3-coder-480b-a35b-instruct",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "minimax-m2.1",
"name": "minimax-m2.1",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 204800,
"maxTokens": 131072
},
{
"id": "glm-4.7",
"name": "glm-4.7",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 202000,
"maxTokens": 131072
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "qianfan/glm-5"
},
"imageModel": {
"primary": "qianfan/qwen3-vl-32b-instruct"
}
},
"list": [
{
"id": "main",
"default": true,
"name": "Main"
},
{
"id": "code-helper",
"name": "Code Helper",
"model": {
"primary": "qianfan/qwen3-coder-480b-a35b-instruct"
}
},
{
"id": "researcher",
"name": "Researcher",
"model": {
"primary": "qianfan/deepseek-v3.2"
}
}
]
}
}总结
OpenClaw 的多模型服务商配置提供了灵活的模型管理能力:
- 多服务商支持:可同时接入多个 AI 服务商
- 丰富的模型类型:支持推理模型、多模态模型、普通文本模型
- 精细化的 Agent 配置:每个 Agent 可独立配置默认模型
- 统一的配置格式:使用 OpenAI 兼容协议,简化接入流程
通过合理配置,您可以为不同的使用场景选择最合适的模型,实现性能与成本的最优平衡。
