三道门详解
- 注册模型 — 在全局
openclaw.json的providers.models里声明 provider 名称、API 地址、支持的模型列表 - 加入白名单 — 在 agent 级
models.json的defaults.models里把模型加进去。==这一步没做 = 注册了也调不到== - 配置认证 — 在
auth-profiles.json里写入 API key 或 OAuth token。token 有过期时间的要定期同步
API 类型踩坑
anthropic-messages vs anthropic
- 典型表现
- Anthropic 的 API 类型必须用
anthropic-messages,不能用anthropic。用错了不会报错,但请求会失败。这是一个静默失败的经典案例——HTTP 200 但 body 是错误信息。 - 判断标准
- 解决方向
openai-completions
- 典型表现
- OpenAI 兼容接口的标准类型。cliproxy 和大部分第三方站点用这个。
- 判断标准
- 解决方向
openai-responses
- 典型表现
- OpenAI Responses API 类型,用于较新的模型接口。
- 判断标准
- 解决方向
当前 Provider 一览
| Provider | API 类型 | 角色 | 特点 |
|---|---|---|---|
| foxcode | anthropic-messages | 默认主力 | 直连 Anthropic 官方 API,独立 rate limit,cooldown 后自动恢复 |
| cliproxy | openai-completions | 备选 | 多站点 round-robin 路由,端口 8317,有黑名单机制 |
| 代理通道 | openai-completions | 备选 | 代理转发 Claude 系列 |
| zai | openai-completions | 终极兜底 | GLM 系列模型,走智谱 API,最后防线 |
| openai-codex | openai-responses | 按需 | Codex 系列,OAuth token 认证,需定期同步 |
重启 Gateway
改完任何配置,必须重启 Gateway。Gateway 是常驻进程,启动时把 JSON 配置缓存到内存里。你改了文件但没重启,它用的还是旧配置。
# 重启 Gateway
systemctl --user restart openclaw-gateway.service
# 确认状态
systemctl --user status openclaw-gateway.service --no-pager
实操清单
✓推荐做法
- 注册 provider 后立即验证:
openclaw models list --json - 改配置后立刻重启 Gateway
- 用
manage.sh sync-models做幂等同步,不要手动改远端文件 - 新 provider 上线先用
manage.sh status确认注册状态
✗不推荐
- 不要直接改远端的
openclaw.json,下次同步会覆盖 - 不要忘了白名单这一步(第二步)
- 不要用
anthropic作为 API 类型,必须用anthropic-messages - 不要在 agent 级
models.json里注册新 provider
⚠常见误区
- HTTP 200 不代表成功——部分站点认证失效返回 200 + 错误 body
- Provider 注册了但没加白名单 = 静默不可用
- token 过期后不会自动刷新,需要手动从本地同步到远端
- 远端 IP 可能被限流(负载上限),本地同 key 可用不代表远端也行