Skip to content

OpenClaw多模型服务商配置指南

OpenClaw多模型服务商配置指南

目录

  1. 概述
  2. 多服务商配置架构
  3. 服务商配置参数详解
  4. 模型配置参数说明
  5. 不同类型模型的配置
  6. Agent级别的模型配置覆盖
  7. 完整配置示例

概述

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: 完全替换默认配置

服务商配置参数详解

基础参数

参数类型必填说明
baseUrlstringAPI 服务的基础 URL 地址
apiKeystringAPI 认证密钥
apistringAPI 协议类型
headersobject自定义 HTTP 请求头
modelsarray该服务商提供的模型列表

参数详细说明

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": [
      // ... 多个模型配置
    ]
  }
}

模型配置参数说明

每个模型支持以下配置参数:

参数类型必填说明
idstring模型唯一标识符,调用时使用
namestring模型显示名称
reasoningboolean是否为推理模型(如 DeepSeek-R1)
inputarray支持的输入类型:textimage
contextWindownumber上下文窗口大小(tokens)
maxTokensnumber最大输出 tokens 数
costobject成本配置

参数详解

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             // 大输出窗口
}

适用场景:

  • 日常对话
  • 文本生成
  • 内容创作
  • 信息检索

模型类型对比表

特性推理模型多模态模型普通文本模型
reasoningtruefalsefalse
input["text"] 或 ["text", "image"]["text", "image"]["text"]
典型应用复杂推理、编程图像理解日常对话
示例模型deepseek-v3.2qwen3-vl-32b-instructglm-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 的多模型服务商配置提供了灵活的模型管理能力:

  1. 多服务商支持:可同时接入多个 AI 服务商
  2. 丰富的模型类型:支持推理模型、多模态模型、普通文本模型
  3. 精细化的 Agent 配置:每个 Agent 可独立配置默认模型
  4. 统一的配置格式:使用 OpenAI 兼容协议,简化接入流程

通过合理配置,您可以为不同的使用场景选择最合适的模型,实现性能与成本的最优平衡。