OpenClaw Gateway 在常见部署中会暴露与 OpenAI HTTP API同构的端点(如 /v1/chat/completions、/v1/models)。这意味着:只要客户端允许自定义 Base URL并发送 Authorization: Bearer …,就可以把流量指向你的远程物理 Mac上的网关,而不是 api.openai.com。
本文结论:先在本机用 curl 固定一条黄金请求(路径 + Header + JSON 体),再把完全相同的契约搬到 Cursor 与脚本;公网路径只多一层反代与 TLS 终止,不要在每一步「顺手」改 Base URL 写法。
若你尚未完成网关安装与依赖环境,可先对照 2026年 OpenClaw 完整安装指南:Mac / Windows / Linux 全平台部署教程; 需要评估「节点放哪」以控制 API 调用的 RTT 与稳定性,可延伸阅读 2026年全球开发者如何选择 Mac 云服务器地区?**实践指南。
- 限制被「路径拼接规则」掩盖。OpenAI 系客户端对 Base URL 的处理并不统一:有的自动补
/v1,有的不会;一旦与网关实际监听路径不一致,就会表现为稳定的 404 或奇怪的重定向,而不是清晰的鉴权错误。
- 隐性成本在反代默认配置。复制网上的
proxy_pass 片段却未透传 Authorization,或 WAF 丢弃大 Header,会导致公网 401、本机 200——排错若不从代理层下手,会在网关配置里空转很久。
- 稳定性与长连接超时耦合。流式输出(SSE)会拉长单次请求的读阶段;若只调大了「连接超时」、未调反代/客户端的 read/stream 超时,会在生成到一半时被切断,表象像「模型不稳定」,实为链路超时策略不一致。
发布前用下表做一次「签字」;左列为常见凑合写法,右列为建议基线。
Base URL 每人一种写法,有的带尾
/ 有的不带 以网关文档 + 本机 curl 为准,冻结一条字符串;全团队复用 脚本(Python/Node) 在代码里硬编码完整 URL 与 Key 使用
OPENAI_BASE_URL /
OPENAI_API_KEY(或 SDK 等价项),与 curl 对齐 Bearer 把 Key 放在 Query 或日志可读的字段
Authorization: Bearer
;网关与反代侧同一 token 名 反代路径 对外
/ai、对内
/v1「靠猜」一致 画出公网 path → 上游 path;需要时
rewrite /
strip_prefix 验收 只测 Cursor 一次成功
curl 127.0.0.1 与
curl 公网 HTTPS 双路径;再跑脚本集成测试
- 读本机黄金路径。SSH 到 Mac,对
http://127.0.0.1:
<端口>端口> 执行 curl -sS -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"model":"…","messages":[{"role":"user","content":"ping"}]}' http://127.0.0.1:…/v1/chat/completions(路径以你的网关为准),保存为团队共用的「黄金命令」。
- 冻结 Base URL 契约。明确对外暴露时是
https://api.example.com 还是带前缀 https://api.example.com/openclaw,以及最终拼接后是否等价于黄金 curl 的 URI。
- 配置反代透传。Nginx/Caddy 侧确保
Authorization、Content-Type、流式场景下的缓冲策略正确;避免匿名 location 吃掉前缀导致上游路径漂移。
- 接入 Cursor。打开模型设置:将 API Key 设为网关颁发的 token;Override Base URL 填与黄金 curl 一致前缀。若 Cursor 仍请求官方地址,优先检查是否选用了「仅官方模型」配置档或未保存设置。
- 脚本环境变量。Python 示例:
export OPENAI_BASE_URL=https://…、export OPENAI_API_KEY=…;用与 curl 相同变量跑通最小 SDK 调用后再接入业务。
- 双路径验收。同一 Body 与 Header,先后请求本机与公网;若仅公网失败,问题在 TLS/反代/WAF,不在 OpenClaw 进程本身。
- 归档与告警。把黄金 curl、Base URL、反代片段写入 Runbook;对连续 401、TLS 握手失败、5xx 配置监控。
按现象缩小范围,避免在客户端与网关之间来回改密钥。
公网 401,本机 200
Authorization 未透传;或打到另一实例 对比反代前后日志中的 Authorization;确认 upstream 与黄金 curl 一致 TLS 证书错误 / 主机名不符 证书 SAN 不含当前访问名;或链不完整
openssl s_client 检查链与 SNI;统一用证书覆盖的域名访问 连接超时 安全组/防火墙、错误端口、DNS 指错
nc -vz host port;对照 Tunnel/零信任路由是否存活 流式输出中途断开 读超时、反代 SSE 缓冲、CDN 限制 调高客户端 read timeout 与
proxy_read_timeout 类配置;直连源站对比
- 契约项:至少记录 Base URL 全量字符串、是否含
/v1、Bearer token 颁发方与轮换窗口。
- 超时建议(量级):流式场景下读超时常见需分钟级(具体视模型与输出长度);连接超时保持秒级即可,二者不要混为一谈。
- 对照命令:团队内统一保存一条「最小 chat 请求」curl,与 Cursor/脚本共用同一环境变量名。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/255984.html