适用场景
适用于下面这种情况:
- OpenClaw 已经安装并运行
- 使用的是 Docker Compose
- 希望让 OpenClaw 调用 OpenAI API
- 不打算先接 Telegram、WhatsApp 之类的聊天渠道
- 只先验证网页控制台能否正常调用模型
先说明一件事
OpenClaw 接入 OpenAI API,不是优先去网页设置里找输入框。
更稳妥的方式是:
- 把 API Key 写进环境变量
- 让 Docker 容器读取这个环境变量
- 在容器里执行
openclaw onboard - 验证默认模型是否已经切到
openai/gpt-5.4
一、准备 OpenAI API Key
先准备好真实的 OpenAI API Key。
下面这种写法只是示例,不是真实密钥:
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
不要把真实密钥直接写进博客、聊天记录、截图或公开网页。
二、进入 OpenClaw 目录
cd /你的/OpenClaw/目录
例如:
cd /path/to/openclaw
三、创建或修改 .env 文件
在 OpenClaw 项目目录下创建 .env:
vim .env
写入:
OPENAI_API_KEY=你的真实OpenAI_API_KEY
保存退出。
四、在 docker-compose.yml 里把环境变量传给 OpenClaw
打开 docker-compose.yml:
vim docker-compose.yml
找到运行 OpenClaw 的服务,在该服务下加入:
environment:
OPENAI_API_KEY: ${OPENAI_API_KEY}
示例:
services:
openclaw-gateway:
environment:
OPENAI_API_KEY: ${OPENAI_API_KEY}
注意:
openclaw-gateway只是示例服务名- 实际应以自己的 compose 文件中的服务名为准
五、重启容器
docker compose up -d
这一步的目的是让容器重新读取 .env 中的 OPENAI_API_KEY。
六、执行 onboarding
先确认服务名:
docker compose ps
假设服务名是 openclaw-gateway,执行:
docker compose exec openclaw-gateway openclaw onboard --auth-choice openai-api-key
七、onboarding 过程中应该怎么选
执行后会进入交互界面。
1)看到安全提示
直接确认继续即可。
2)看到已有配置
如果当前配置本来就能正常运行,选择:
Use existing values
3)看到是否使用已有 OPENAI_API_KEY
如果界面显示类似:
Use existing OPENAI_API_KEY (env: OPENAI_API_KEY, sk-p…xxxx)?
选择:
Yes
这说明容器已经成功读到了环境变量。
4)看到模型设置成功
如果出现类似提示:
Default model set to openai/gpt-5.4
说明 OpenAI API 已经接入成功。
5)看到 Select channel
这一页不是让配置 API,而是在问要不要顺手接聊天渠道。
如果当前只想先验证网页控制台是否可用,直接选择:
Skip for now
不要误以为这一页和 API 接入还有关。
八、手动再设一次默认模型
为了避免默认模型没有切对,可以再执行一次:
docker compose exec openclaw-gateway openclaw models set openai/gpt-5.4
如果服务名不是 openclaw-gateway,替换成自己的服务名。
九、检查是否生效
执行:
docker compose exec openclaw-gateway openclaw models status
重点看两点:
- 默认模型是不是:
openai/gpt-5.4
- OpenAI provider 是否正常可用
如果这两点正常,说明 API 接入已经完成。
十、网页里怎么验证
打开 OpenClaw 的网页控制台,进入聊天页面,发送一条最简单的测试消息,例如:
Hi
如果网页能正常返回回答,通常说明下面几件事都已经打通:
- OpenClaw 网关在正常运行
- 网页前端和后端通信正常
- 默认模型能被调用
- OpenAI API 已经生效
十一、最常见的误区
误区 1:去网页里找 API Key 输入框
不建议把重点放在网页输入框上。
更稳的方式是:环境变量 + onboarding。
误区 2:看到 Select channel 就以为还没配好 API
不是。
这一步只是问要不要接 Telegram、Slack、WhatsApp 等聊天渠道。
误区 3:.env 写了,但容器里还是读不到
通常是下面几个原因:
docker-compose.yml没有把变量传进去- 改完
.env后没有重启容器 - 改错了服务名
- 实际执行命令的不是那个运行 OpenClaw 的容器
十二、最短操作版
如果只想看最短流程,按这个顺序操作即可:
1)写 .env
vim .env
内容:
OPENAI_API_KEY=你的真实OpenAI_API_KEY
2)改 docker-compose.yml
在 OpenClaw 服务下加:
environment:
OPENAI_API_KEY: ${OPENAI_API_KEY}
3)重启
docker compose up -d
4)执行 onboarding
docker compose exec openclaw-gateway openclaw onboard --auth-choice openai-api-key
5)交互中这样选
- 安全提示:继续
- 现有配置:
Use existing values - 使用已有
OPENAI_API_KEY:Yes - 渠道选择:
Skip for now
6)强制设置默认模型
docker compose exec openclaw-gateway openclaw models set openai/gpt-5.4
7)检查状态
docker compose exec openclaw-gateway openclaw models status
十三、一个完整示例
下面用占位符写成完整示例,实际使用时替换服务名和 API Key 即可。
.env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
docker-compose.yml
services:
openclaw-gateway:
environment:
OPENAI_API_KEY: ${OPENAI_API_KEY}
命令
cd /path/to/openclaw
docker compose up -d
docker compose exec openclaw-gateway openclaw onboard --auth-choice openai-api-key
docker compose exec openclaw-gateway openclaw models set openai/gpt-5.4
docker compose exec openclaw-gateway openclaw models status
十四、结论
给 OpenClaw 接入 OpenAI API,核心只有一句话:
把 OPENAI_API_KEY 传进容器,再执行 openclaw onboard --auth-choice openai-api-key。
只要 onboarding 中已经识别到环境变量,并显示默认模型设为 openai/gpt-5.4,再加上网页聊天测试正常,基本就说明已经成功。