在本地部署 AI 编程助手时,很多开发者都遇到过同一个问题:官方 API 访问不稳定、多模型切换繁琐、鉴权配置容易出错。OpenClaw 作为一款支持多模型调度的本地 AI Agent 工具,通过自定义中转站配置,可以将 GPT、Claude、Gemini、DeepSeek 等主流大模型统一纳入同一套工作流管理。本文记录完整的配置过程,包含每一步的配置文件示例和注意事项。
一、环境准备与安装
在开始配置之前,确保本机已安装 Node.js (建议 v18 及以上版本)。Node.js 是 OpenClaw 运行的基础依赖,可以通过 node -v 验证当前版本。
1.1 全局安装 OpenClaw
打开终端(Windows 用 PowerShell 或 CMD,macOS 用 Terminal),执行以下命令:
perl
# 全局安装 OpenClaw 最新版本
# -g 参数表示全局安装,安装完成后可在任意目录使用 openclaw 命令
npm install -g openclaw@latest
安装完成后,执行引导命令完成基础初始化:
bash
# 执行交互式引导,根据终端提示逐步完成基础设置
# 此步骤会自动生成 .openclaw 目录和默认配置文件
openclaw onboard
onboard 命令会在用户目录下创建 .openclaw 文件夹,这是后续所有配置文件的根目录。Windows 系统路径为 C:\\Users\\你的用户名\\.openclaw,macOS 系统需要在用户主目录下找到 .openclaw 文件夹(注意该目录默认隐藏,可通过 ls -a ~ 查看)。
二、核心配置:修改 openclaw.json
这是整个配置流程中最关键的一步。openclaw.json 文件负责定义模型列表、Provider 信息以及鉴权模式,配置正确与否直接决定多模型能否正常调用。
文件路径:
- Windows:
C:\\Users\\admin\\.openclaw\\openclaw.json - macOS:
~/.openclaw/openclaw.json
2.1 配置文件结构说明
整个配置文件分为三个核心部分:
| 配置块 | 作用 |
|---|---|
agents.defaults |
定义默认使用的模型、并发数等运行参数 |
auth.profiles |
声明各 Provider 的鉴权方式(此处只声明类型,不填 Key) |
models.providers |
定义各 Provider 的接口地址、模型列表和参数 |
2.2 完整配置文件示例
将以下内容替换到 openclaw.json 中,注意 primary 字段需要与你实际使用的模型对应:
swift
{
"agents": {
"defaults": {
"model": {
// primary 指定默认启动时使用的模型
// 格式为 "provider名称/模型ID"
// 如果你主要用 GPT-5.2,改为 "api-proxy-gpt/gpt-5.2"
"primary": "api-proxy-claude/claude-sonnet-4-5-20250929"
},
"models": {
// 以下是可在运行时快速切换的模型别名配置
"api-proxy-gpt/gpt-5.2": {
"alias": "GPT-5.2"
},
"api-proxy-claude/claude-sonnet-4-5-20250929": {
"alias": "Claude Sonnet 4.5"
},
"api-proxy-google/gemini-3-pro-preview": {
"alias": "Gemini 3 Pro"
},
"api-proxy-deepseek/deepseek-v3.2": {
"alias": "Deepseek v3.2"
}
},
// workspace 是 OpenClaw Agent 的工作目录,按需修改
"workspace": "C:\\\\Users\\\\admin\\\\clawd",
"maxConcurrent": 4, // 主 Agent 最大并发数
"subagents": {
"maxConcurrent": 8 // 子 Agent 最大并发数
}
}
},
"auth": {
"profiles": {
// 此处只声明鉴权类型,实际 API Key 在 auth-profiles.json 中填写
"api-proxy-gpt:default": {
"provider": "api-proxy-gpt",
"mode": "api_key"
},
"api-proxy-claude:default": {
"provider": "api-proxy-claude",
"mode": "api_key"
},
"api-proxy-google:default": {
"provider": "api-proxy-google",
"mode": "api_key"
},
"api-proxy-deepseek:default": {
"provider": "api-proxy-deepseek",
"mode": "api_key"
}
}
},
"models": {
"mode": "merge", // merge 模式:将自定义 Provider 与内置模型合并
"providers": {
"api-proxy-gpt": {
"baseUrl": "<https://api.88api.chat/v1>", // 中转站接口地址
"api": "openai-completions", // 使用 OpenAI 兼容协议
"models": [
{
"id": "gpt-5.2",
"name": "GPT-5.2",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000, // 上下文窗口大小(Token 数)
"maxTokens": 8192 // 单次最大输出 Token 数
}
]
},
"api-proxy-claude": {
"baseUrl": "<https://api.88api.chat>",
"api": "anthropic-messages", // Claude 使用专属的 anthropic-messages 协议
"models": [
{
"id": "claude-sonnet-4-5-20250929",
"name": "Claude Sonnet 4.5",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000, // Claude 支持 20 万 Token 上下文
"maxTokens": 8192
}
]
},
"api-proxy-google": {
"baseUrl": "<https://api.88api.chat/v1>",
"api": "google-generative-ai", // Gemini 使用 Google 专属协议
"models": [
{
"id": "gemini-3-pro-preview",
"name": "Gemini 3 Pro",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 2000000, // Gemini 支持超长 200 万 Token 上下文
"maxTokens": 8192
}
]
},
"api-proxy-deepseek": {
"baseUrl": "<https://api.88api.chat/v1>",
"api": "openai-completions", // DeepSeek 兼容 OpenAI 协议
"models": [
{
"id": "deepseek-v3.2",
"name": "Deepseek v3.2",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 2000000,
"maxTokens": 8192
}
]
}
}
}
}
几个容易踩坑的地方:
api字段不能混用 :Claude 必须使用anthropic-messages,Gemini 使用google-generative-ai,其余模型使用openai-completions,协议类型写错会导致请求格式不匹配。baseUrl末尾斜杠 :Claude 的baseUrl不带/v1,其他 Provider 需要带,这是由各自协议的路径规范决定的。- Windows 路径转义 :
workspace字段在 Windows 下需要用双反斜杠\\\\转义,macOS 直接用正斜杠即可。
三、鉴权配置:填写真实 API Key
openclaw.json 只声明了鉴权方式,真正的 API Key 需要单独写入 auth-profiles.json,这样做的好处是可以将配置文件和密钥文件分开管理,便于团队协作时共享配置而不泄露密钥。
文件路径:
- Windows:
C:\\Users\\admin\\.openclaw\\agents\\main\\agent\\auth-profiles.json - macOS:
~/.openclaw/agents/main/agent/auth-profiles.json
vbnet
{
"version": 1,
"profiles": {
"api-proxy-gpt:default": {
"type": "api_key",
"provider": "api-proxy-gpt",
// 将 sk-your-unique-gpt-key-here 替换为你从中转站获取的真实 Key
"key": "sk-your-unique-gpt-key-here"
},
"api-proxy-claude:default": {
"type": "api_key",
"provider": "api-proxy-claude",
// Claude 对应的 API Key,同一中转站通常使用同一个 Key
"key": "sk-your-unique-claude-key-here"
},
"api-proxy-google:default": {
"type": "api_key",
"provider": "api-proxy-google",
// Gemini 对应的 API Key
"key": "sk-your-unique-google-key-here"
},
"api-proxy-deepseek:default": {
"type": "api_key",
"provider": "api-proxy-deepseek",
// DeepSeek 对应的 API Key
"key": "sk-your-unique-deepseek-key-here"
}
}
}
API Key 可以从你使用的大模型中转服务获取。如果你还没有统一的中转站账号,88API 支持 GPT、Claude、Gemini、DeepSeek 等多个主流模型的统一接入,获取 Key 后按上述格式填入对应字段即可。
安全提示: auth-profiles.json 包含真实密钥,不要将其提交到 Git 仓库。建议在 .gitignore 中添加 .openclaw/agents/ 路径。
四、启动与验证
两个配置文件都填写完毕后,执行以下命令启动 Gateway 服务:
bash
# 启动 OpenClaw Gateway,指定端口为 18789
# 端口号可按需修改,避免与本机其他服务冲突
openclaw gateway --port 18789
服务启动成功后,打开浏览器访问 http://127.0.0.1:18789/,进入 OpenClaw 控制台。
在控制台中可以验证以下几点:
- 左侧模型列表中能否看到 GPT-5.2、Claude Sonnet 4.5、Gemini 3 Pro、Deepseek v3.2 四个模型
- 切换模型后发送一条测试消息,观察是否正常返回
- 检查控制台日志,确认请求走的是中转站地址而非官方直连
如果某个模型返回鉴权错误(401),优先检查 auth-profiles.json 中对应的 Key 是否填写正确,以及 Key 是否有对应模型的调用权限。
五、常见问题排查
Q:配置文件保存后,控制台看不到自定义模型? 检查 openclaw.json 中 models.mode 是否为 "merge",如果设置为 "replace" 会覆盖内置模型列表。
Q:Claude 调用返回 400 错误? 确认 api-proxy-claude 的 api 字段是否为 anthropic-messages,同时检查 baseUrl 是否去掉了末尾的 /v1。
Q:macOS 找不到 .openclaw 目录? 该目录以 . 开头,默认隐藏。在 Finder 中按 Command + Shift + . 可显示隐藏文件;终端中使用 ls -a ~ 查看。
Q:多个模型能否共用同一个 API Key? 取决于中转站的策略。部分中转站提供统一 Key,可以在四个 Provider 的 key 字段填入相同的值;如果中转站按模型分配不同 Key,则需要分别填写。
结语
完成上述四步配置后,OpenClaw 就能通过中转站统一调度 GPT、Claude、Gemini、DeepSeek 四个模型,在不同任务场景下灵活切换,无需为每个模型单独维护一套调用逻辑。对于需要在多个大模型之间做横向对比测试的开发者来说,这套配置方式能显著降低接入和维护成本。