openclaw + 自定义 API 中转站配置全攻略:告别限制,本地跑通多模型调度
手把手教你用 openclaw 配置多模型 API 中转,支持 GPT、Claude、Gemini、DeepSeek,本地 30 分钟跑通全流程。
前言:开发者的 API 接入困境
相信不少做 AI 开发的同学都遇到过这样的问题:想在本地跑一套多模型调度系统,但官方 API 要么需要绑定信用卡、要么有地区限制、要么并发上限卡得死死的。折腾半天,光是鉴权和网络问题就能让人头大。
本文基于 openclaw 这套本地 AI 调度框架,手把手带你走完从安装到多模型接入的完整流程。整个配置过程不超过 30 分钟,配好之后可以同时调用 GPT、Claude、Gemini、DeepSeek 等主流模型,通过统一的 Gateway 接口对外暴露,极大降低多模型项目的接入成本。
一、环境准备与安装
在开始之前,确保本机已安装 Node.js 18+ 环境。可以通过以下命令验证:
node -v
npm -v
确认版本正常后,全局安装 openclaw:
# 全局安装最新版 openclaw
npm install -g openclaw@latest
安装完成后,执行引导初始化命令,按照终端提示完成基础设置(主要是工作目录和默认配置的生成):
openclaw onboard
执行完毕后,openclaw 会在用户目录下自动生成 .openclaw 文件夹,这是后续所有配置的根目录。
- Windows 路径:
C:\\\\Users\\\\你的用户名\\\\.openclaw\\\\ - macOS/Linux 路径:
~/.openclaw/
二、修改主配置文件 openclaw.json
这是整个配置流程的核心步骤。打开以下路径的文件:
- Windows:
C:\\\\Users\\\\admin\\\\.openclaw\\\\openclaw.json - macOS:
~/.openclaw/openclaw.json
这个文件控制着模型注册、Provider 路由以及并发策略。我们需要将其改造为支持自定义中转站的结构。
2.1 配置结构说明
整个配置文件分为三个关键区块:
| 区块 | 作用 |
|---|---|
agents.defaults.model |
指定默认调用的主模型 |
auth.profiles |
声明各 Provider 的鉴权方式 |
models.providers |
注册每个 Provider 的 baseUrl、API 协议和模型列表 |
2.2 完整配置示例
将文件内容替换为以下配置。注意 "primary" 字段指定的是默认模型,如果你主要使用 Claude,保持不变;如果要切换为 GPT 或 DeepSeek,修改对应的模型 ID 即可。
{
"agents": {
"defaults": {
"model": {
// 默认主模型,按需修改为你常用的模型 ID
"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": "C:\\\\\\\\Users\\\\\\\\admin\\\\\\\\clawd",
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
}
},
"auth": {
"profiles": {
"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",
"providers": {
"api-proxy-gpt": {
// 中转站统一入口,支持 OpenAI 兼容协议
"baseUrl": "<https://api.88api.shop/v1>",
"api": "openai-completions",
"models": [
{
"id": "gpt-5.2",
"name": "GPT-5.2",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 128000,
"maxTokens": 8192
}
]
},
"api-proxy-claude": {
// Claude 使用 anthropic-messages 协议,baseUrl 不带 /v1
"baseUrl": "<https://api.88api.shop>",
"api": "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,
"maxTokens": 8192
}
]
},
"api-proxy-google": {
"baseUrl": "<https://api.88api.shop/v1>",
"api": "google-generative-ai",
"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,
"maxTokens": 8192
}
]
},
"api-proxy-deepseek": {
"baseUrl": "<https://api.88api.shop/v1>",
"api": "openai-completions",
"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
}
]
}
}
}
}
几个关键细节值得注意:
- Claude 的
baseUrl不带/v1后缀,其他 Provider 都带,这是协议差异导致的,不要搞混; maxConcurrent: 4控制主 Agent 并发数,subagents.maxConcurrent: 8控制子任务并发,可根据实际需求调整;cost字段全部设为 0,是因为通过中转站调用时计费由中转站侧管理,本地不做重复统计。
三、配置鉴权文件 auth-profiles.json
主配置文件只是声明了"用哪种方式鉴权",真正的 API Key 存放在另一个文件里。
打开路径:
- Windows:
C:\\\\Users\\\\admin\\\\.openclaw\\\\agents\\\\main\\\\agent\\\\auth-profiles.json - macOS:
~/.openclaw/agents/main/agent/auth-profiles.json
将文件内容替换如下,把 sk-your-unique-xxx-key-here 替换为你从中转站后台获取的真实 Key:
{
"version": 1,
"profiles": {
"api-proxy-gpt:default": {
"type": "api_key",
"provider": "api-proxy-gpt",
// 替换为你的 GPT 中转 Key,获取地址:<https://api.88api.shop>
"key": "sk-your-unique-gpt-key-here"
},
"api-proxy-claude:default": {
"type": "api_key",
"provider": "api-proxy-claude",
// 替换为你的 Claude 中转 Key
"key": "sk-your-unique-claude-key-here"
},
"api-proxy-google:default": {
"type": "api_key",
"provider": "api-proxy-google",
// 替换为你的 Gemini 中转 Key
"key": "sk-your-unique-google-key-here"
},
"api-proxy-deepseek:default": {
"type": "api_key",
"provider": "api-proxy-deepseek",
// 替换为你的 DeepSeek 中转 Key
"key": "sk-your-unique-deepseek-key-here"
}
}
}
安全提示:auth-profiles.json 包含明文 API Key,不要将此文件提交到 Git 仓库。建议在 .gitignore 中加入 .openclaw/ 目录。
四、启动 Gateway 并验证
两个配置文件都修改完毕后,回到终端启动 Gateway 服务:
# 启动本地 Gateway,监听 18789 端口
openclaw gateway --port 18789
服务启动后,打开浏览器访问:
<http://127.0.0.1:18789/>
如果看到控制台界面,说明 Gateway 已经正常运行。此时你可以在控制台中切换模型、发起对话,验证各个 Provider 是否都能正常响应。
常见问题排查
| 现象 | 可能原因 | 解决方式 |
|---|---|---|
| 控制台无法打开 | 端口被占用 | 换一个端口,如 --port 18790 |
| 模型列表为空 | openclaw.json 格式错误 |
用 JSON 校验工具检查语法 |
| 调用报 401 | API Key 填写有误 | 检查 auth-profiles.json 中的 key 字段 |
| Claude 调用失败 | baseUrl 多了 /v1 |
确认 Claude provider 的 baseUrl 不带后缀 |
五、扩展:动态切换默认模型
如果你的项目需要在不同场景下使用不同模型,可以直接修改 openclaw.json 中的 primary 字段,无需重启服务(热重载支持):
// 切换为 DeepSeek 作为主模型
"primary": "api-proxy-deepseek/deepseek-v3.2"
// 切换为 Gemini 作为主模型
"primary": "api-proxy-google/gemini-3-pro-preview"
这种设计对于需要做模型对比测试或按任务类型路由的场景非常实用——写代码用 Claude,长文档摘要用 Gemini,日常问答走 DeepSeek,成本和效果都能兼顾。
总结
整个配置流程核心就三件事:安装 openclaw → 修改 openclaw.json 注册 Provider → 在 auth-profiles.json 填入 Key。配好之后本地就有了一个统一的多模型调度层,上层应用只需对接 http://127.0.0.1:18789 这一个地址,不用关心底层用的是哪家模型。
对于需要稳定 API 中转服务的开发者,可以参考文中代码注释里的资源地址,按需申请 Key 接入即可。
更多推荐
所有评论(0)