OpenClaw API 中转站配置指南
如果你搜索的是 OpenClaw Base URL 填什么、OpenClaw 怎么接 AI API 中转站、OpenClaw openai-responses 怎么配、OpenClaw reasoning true 但 Think off 怎么办,这页就是给你的。
OpenClaw 当前官方配置核心是三层结构:
models.providers:定义上游中转站、baseUrl、api、模型列表。auth.profiles:声明 provider 使用哪种鉴权模式。agents.defaults:指定默认模型、模型别名、流式输出等会话行为。
不要把真实 API Key 写进公开仓库、README、工单截图或聊天记录。本文统一使用
sk-xxxxxxxxxxxxxxxx占位。
适合谁看
- 第一次把 OpenClaw 接入 AI API 中转站。
- 旧配置还能跑,但结构已经落后,想迁移到
models.providers。 - 想确认
openai-responses和openai-completions该选哪个。 - 想打开 Think / reasoning,却发现
/status里还是Think: off。 - 遇到 401、404、
model not found、配置不生效、仍走旧模型。
配置文件在哪里
OpenClaw 默认读取 JSON5 配置文件:
~/.openclaw/openclaw.json
JSON5 比普通 JSON 宽松,支持注释和尾随逗号。配置缺失时 OpenClaw 会使用安全默认值;如果配置格式错误或字段不合法,Gateway 会拒绝启动。
修改前先备份:
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
配置前先确认 5 件事
- 已安装 OpenClaw,且能正常打开会话。
- 已拿到可用 API Key。
- 中转站兼容入口确认是
https://www.aigcwuji.com/v1。 - 模型名以账户页面展示为准,不自己猜 model id。
- 知道怎么验证:至少会用
/status、openclaw doctor、新开会话复测。
OpenClaw 官方推荐的配置入口
如果你不想直接改文件,OpenClaw 官方还有几条更稳的入口:
openclaw onboard
openclaw configure
openclaw config get agents.defaults.workspace
openclaw config set agents.defaults.heartbeat.every "2h"
也可以打开本地 Control UI:
http://127.0.0.1:18789
直接编辑 openclaw.json 也可以。官方文档说明 Gateway 会监视配置文件并自动应用大多数变更;如果配置损坏,优先跑:
openclaw doctor
新版结构先看懂:三层分别做什么
| 层级 | 作用 | 你最常改的字段 |
|---|---|---|
models.providers | 定义上游中转站和模型能力 | baseUrl、apiKey、api、models[] |
auth.profiles | 声明 provider 的鉴权模式 | provider、mode |
agents.defaults | 选择默认模型与会话偏好 | model.primary、models.<ref>.alias、streaming |
简单说:
- 中转地址写在
models.providers.<id>.baseUrl - 协议类型写在
models.providers.<id>.api - 默认模型写在
agents.defaults.model.primary - 是否支持 Think 写在
models.providers.<id>.models[].reasoning
最小可用配置示例
如果你只是先跑通,最小可用配置可以长这样:
{
models: {
mode: "merge",
providers: {
"api-proxy-claude": {
baseUrl: "https://www.aigcwuji.com/v1",
apiKey: "sk-xxxxxxxxxxxxxxxx",
api: "openai-responses",
authHeader: true,
models: [
{
id: "gpt-5.4",
name: "gpt-5.4",
api: "openai-responses",
reasoning: true,
input: ["text"],
contextWindow: 200000,
maxTokens: 8192,
},
],
},
},
},
auth: {
profiles: {
"api-proxy-claude:default": {
provider: "api-proxy-claude",
mode: "api_key",
},
},
},
agents: {
defaults: {
model: {
primary: "api-proxy-claude/gpt-5.4",
},
models: {
"api-proxy-claude/gpt-5.4": {
alias: "gpt-5.4",
streaming: true,
},
},
},
},
}
这份最小配置里最容易错的 4 个点
baseUrl要写兼容入口,通常是https://www.aigcwuji.com/v1,不是根域名。id是 provider 内部模型 id,例如gpt-5.4。- 真正选择模型时要写完整引用:
api-proxy-claude/gpt-5.4。 - 自定义 OpenAI 兼容 provider 如果省略
api,OpenClaw 默认按openai-completions处理;只有上游明确支持/v1/responses时才用openai-responses。
生产环境推荐:把密钥和配置拆开
官方文档强调:auth-profiles.json 主要用于存放凭据;baseUrl、api、模型 id、超时、header 等连接细节,放在 openclaw.json 的 models.providers 下。
openclaw.json 放结构
{
auth: {
profiles: {
"api-proxy-claude:default": {
provider: "api-proxy-claude",
mode: "api_key",
},
},
},
}
auth-profiles.json 放凭据
{
"version": 1,
"profiles": {
"api-proxy-claude:default": {
"type": "api_key",
"provider": "api-proxy-claude",
"key": "sk-xxxxxxxxxxxxxxxx"
}
}
}
如果你只是快速测试,把 apiKey 暂时写在 models.providers.<id>.apiKey 也能跑;但正式环境更推荐把密钥独立出来,避免误提交。
openai-responses 和 openai-completions 怎么选
| 选项 | 请求接口 | 适合场景 |
|---|---|---|
openai-responses | /v1/responses | 新版 Responses 兼容接口、思考模型、需要更贴近 OpenAI Responses 行为 |
openai-completions | /v1/chat/completions | 传统 OpenAI compatible 网关、vLLM、SGLang、LiteLLM、多数老代理 |
最实用的判断规则:
- 支持
/v1/responses:优先openai-responses - 只支持
/v1/chat/completions:使用openai-completions - 配完就 404 / unsupported endpoint:先别怀疑 Key,先切
api
如果你的上游只支持 chat completions,把 provider 和 model 两处 api 都改成:
"api": "openai-completions"
如果上游明确支持 Responses,则优先:
"api": "openai-responses"
OpenClaw Think / reasoning 怎么开
这里最容易踩坑:
reasoning: true= 模型声明支持思考/reasoning或 UI Think 档位 = 当前会话真的打开思考
也就是说,只改配置不等于当前会话一定进入 Think。
模型条目示例:
{
id: "gpt-5.4",
name: "gpt-5.4",
api: "openai-responses",
reasoning: true,
contextWindow: 200000,
maxTokens: 8192,
}
改完以后,进入会话检查:
/status
你希望看到:
Think: medium
如果仍然是:
Think: off
就按下面顺序查:
- 模型条目是否真的有
reasoning: true - 当前会话是不是新开的
- 是否在 UI 重新选了 Think 档位,或发送过
/reasoning /status里的当前模型是否真的是你刚配的那个
6 步落地流程:从备份到验证
第 1 步:备份
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
第 2 步:修改 openclaw.json
- 填
models.providers.<id>.baseUrl - 填
api - 配好
models[] - 设定
agents.defaults.model.primary
第 3 步:确认鉴权方式
- 快测:可直接写
apiKey - 生产:推荐写
auth.profiles+auth-profiles.json
第 4 步:保存后做格式检查
openclaw doctor
如果你把配置写坏了,Gateway 可能拒绝启动;openclaw doctor 能直接给出字段和格式错误。
第 5 步:新开会话验证
发送一条短消息:
请回复“配置已生效”。
第 6 步:看状态页
/status
重点确认:
- 当前 Model 是否为
api-proxy-claude/gpt-5.4 - Think 是否为目标档位,而不是
off - 是否还有 401、404、429、timeout
- 上下文窗口是否接近你配置的
contextWindow
常见错误排查表
| 现象 | 先看哪个字段 | 常见原因 | 修复动作 |
|---|---|---|---|
| 401 / Unauthorized | apiKey、auth.profiles、auth-profiles.json | Key 过期、复制多了空格、provider 绑定不一致 | 重贴 Key,确认 provider 名和 profile id 一致 |
| 404 / unsupported endpoint | api、baseUrl | 上游不支持 /v1/responses,或路径少了 /v1 | 切 openai-completions,确认兼容入口 |
model not found | models[].id、agents.defaults.model.primary | 模型 id 写错,或用错完整引用格式 | provider 内写 bare id,选择时写 provider/model |
| 配置后还是旧模型 | agents.defaults.model.primary | 当前会话缓存旧模型、没新开会话 | 新开会话,重新选模型,再看 /status |
reasoning: true 但 Think off | models[].reasoning、会话 Think 档位 | 只声明了能力,没打开会话开关 | UI 重新选 Think 或执行 /reasoning |
| timeout | timeoutSeconds、baseUrl | 上游慢、线路波动、超时过短 | 增加 timeoutSeconds,换线路短消息复测 |
| JSON5 无法加载 | 整体文件格式 | 注释位置、括号、逗号或字段类型非法 | 跑 openclaw doctor,按报错逐条修 |
OpenClaw 配置使用技巧
1. 先用最小配置跑通,再加复杂字段
不要一上来就把 header、代理、多个 provider、多个模型、兼容选项全堆进去。先让一条短消息成功,再迭代。
2. provider 内部的 id 保持简洁
models.providers.<id>.models[].id 记录 provider 本地模型名即可;真正选模型时再用完整引用 provider/model。
3. 上游是 OpenAI compatible 时,baseUrl 和 api 比 Key 更容易配错
很多人先怀疑 API Key,其实最常见错误是:
- 把根域名写成兼容入口
- 漏了
/v1 - 上游只支持 chat completions,却误填
openai-responses
4. 生产环境优先拆凭据
结构放 openclaw.json,密钥放 auth-profiles.json 或环境变量,更不容易把敏感信息带进 Git。
安全建议
- 不要把
openclaw.json、auth-profiles.json提交到仓库。 - 不要在公开截图里暴露完整 Key、用户目录和真实网关地址。
- 按环境、成员、用途拆分 Key,不要多人共用一个高权限主 Key。
- 换 Key 后优先做一条短请求验证,别直接跑长任务。