2026年 OpenClaw Gateway OpenAI 兼容 HTTP API 实战:启用 /v1/chat/completions、鉴权与 SSH 端口转发下的内网/RAG 对接可复现清单 + FAQ
把 Gateway 当作「可被标准 OpenAI SDK 消费的 HTTP 端点」,在独占远程 Mac 上完成兼容层、鉴权与 SSH 隧道;本文给出内网/RAG 旁路对接的可复现步骤与排错 FAQ,便于写入 Runbook。若你也在做本地或混合推理,可参考 OpenClaw + Ollama 混合推理与网关超时排错 中的配额与超时思路。
1. 目标与边界
本清单解决三件事:① 在 Gateway 上暴露与 OpenAI 官方形态一致的 /v1/chat/completions;② 用 Bearer 令牌与最小监听面完成鉴权;③ 通过 SSH 本地端口转发,把仅在机房内网可达的 Gateway 安全映射到工程师笔记本,再让应用侧按「OpenAI Base URL」去连。
不在本文展开:公网反代证书自动化、多租户计费、向量库选型对比——这些应单独成篇并纳入架构评审。
2. 启用 OpenAI 兼容 HTTP 与 /v1/chat/completions
在 Gateway 配置(或等价环境变量)中打开 OpenAI-compatible HTTP 开关,并确认下列语义与官方兼容层一致:
- 路径:
POST /v1/chat/completions,请求体包含model、messages,可选stream。 - 响应:非流式返回 JSON;流式返回
text/event-stream且每行遵循 SSE 约定(具体字段以你当前 Gateway 版本文档为准)。 - 模型映射:将 OpenAI 风格模型名映射到后端实际路由(云端 API、本地 Ollama、或混合链路);在配置里保留一张「别名 → 真源」表,避免多处硬编码。
生产建议:默认仅监听 127.0.0.1,由本机反代或 SSH 隧道对外;若必须监听 0.0.0.0,务必叠加防火墙与 mTLS/反代鉴权,并把变更记入 Runbook。
3. 鉴权:Bearer、轮换与日志
兼容层通常使用 Authorization: Bearer <token>。推荐做法:
- 在独占用户或 LaunchAgent 环境中注入
OPENCLAW_GATEWAY_TOKEN(或项目约定的等价变量),与客户端、CI 密钥管理一致。 - 轮换时令牌先写密钥库/环境,再
launchctl unload/load或等价重启 Gateway,避免「新令牌已发、旧进程仍验旧令」的半开状态。 - 日志中默认不落盘完整 Bearer,只记录前缀与请求 ID;排错时用请求 ID 关联网关与上游模型日志。
4. SSH 本地端口转发:把内网 Gateway 带到本机
当 Gateway 只监听远程 Mac 的 loopback 时,在本地开发机执行(示例端口请按实际替换):
ssh -N -L 18080:127.0.0.1:18789 user@remote-mac.example
随后将应用或 SDK 的 Base URL 设为 http://127.0.0.1:18080/v1(注意是否带尾部斜杠以匹配客户端),并在请求头携带 Bearer。若隧道频繁断开,可启用 ControlMaster 复用连接或把隧道交给 autossh,并在 Runbook 写明「谁有权拿 SSH、密钥轮换频率」。
5. 内网与 RAG 对接路径
RAG 常见拆法:检索与重排跑在内网向量服务,生成仍走 Gateway 的 chat 兼容层。注意:
- 同源策略:若 embedding 与 chat 同机,可用
127.0.0.1互调,延迟最低;若分机,优先走内网 DNS 与固定超时,避免把检索超时与模型超时混在一个 SLA 里。 - 凭证:向量库 API Key 与 Gateway Bearer 分离;CI 与人工调试使用不同令牌,便于审计。
- 上下文长度:在写入
messages前做截断/摘要,防止隐式超长导致上游 413 或账单异常。
6. 可复现验收清单
| 步骤 | 验收动作 | 通过标准 |
|---|---|---|
| A | curl 非流式 /v1/chat/completions |
HTTP 200,JSON 含 choices[0].message(字段名以版本为准) |
| B | 故意省略 Bearer | 401/403,且日志可关联 request id |
| C | SSH 隧道拉起后从笔记本访问 | 与在远程机 loopback 直连结果一致(除 RTT) |
| D | RAG 检索 + chat 串联 | 端到端延迟与错误率落在预设 SLO;失败可定位到检索或生成 |
7. FAQ
Q:SDK 报「Invalid URL」但 curl 正常?
A:检查 Base URL 是否含 /v1 重复、是否强制 HTTPS 而隧道为 HTTP,以及是否走了系统代理。
Q:流式响应中途断开?
A:对齐网关与上游超时;SSH 隧道可加 ServerAliveInterval;确认中间反代未缓冲 SSE。
Q:想给团队共享同一 Gateway,如何降低令牌泄露面?
A:按人/按项目发子令牌(若网关支持),或在反代层做 OIDC;禁止把 Bearer 写进公开仓库。
在 Mac mini 上跑 Gateway 与兼容 API,更省心
OpenAI 兼容层、SSH 隧道与轻量 RAG 旁路都依赖长期稳定、可预测的操作系统与网络栈。macOS 上 launchd、原生 OpenSSH 与 Unix 工具链成熟,独占远程 Mac mini 上可以把监听面、日志路径与令牌环境固定在单一用户上下文中,排障时「SSH 上去就能复现」。Apple Silicon 统一内存与神经网络引擎也有利于在单机同时承载网关、日志与轻量本地模型,而不必为噪声与功耗妥协。
与同价位小型主机相比,Mac mini M4 在能效与待机功耗上通常更友好,Gatekeeper、SIP 与 FileVault 也降低了无人值守节点的恶意软件面。若你希望把本文的兼容 API 与 SSH 隧道方案落在安静、低功耗、可审计的硬件上,Mac mini M4 是值得优先考虑的起点——现在即可入手,让内网对接与 RAG 流水线真正可复现、可交接。 更多在远程 Mac 上迭代 OpenClaw 与插件的实践,见 远程 Mac mini 全功能 SSH 上的 OpenClaw 开发实践。