通过 Coder AI Gateway 连接模型服务

用户层 [model_providers.ai_gateway],base_url 以 /api/v2/ai-gateway/openai/v1 结尾,env_key = OPENAI_API_KEY,wire_api = responses,supports_websockets = false。再用 ~/.codex/ai_gateway.config.toml 和 --profile ai_gateway。

Coder 官方 Codex 网关:profile 写 [model_providers.ai_gateway],base_url 以 /api/v2/ai-gateway/openai/v1 结尾,env_key 读 OPENAI_API_KEY。

这是换 Codex 使用的模型,流量打到 Coder 部署上的 AI Gateway,不是添加 MCP 服务。功能在 Premium 的 AI Governance 里。集中密钥那条:env_key 只能写变量 OPENAI_API_KEY,进程里填的是 Coder API 令牌 YOUR_CODER_API_TOKEN,不是 OpenAI 平台密钥。Codex 不会在 base_url 里展开环境变量,主机名要写成字面量。

供应商表放用户 ~/.codex/config.toml。项目 .codex/config.toml 无法修改 model_provider / model_providers。不要写 openai_base_url,也不要把总览页给通用客户端的 OPENAI_BASE_URL 当 Codex 主路径:内置 openai 会带客户端 web 命名空间。具名 ai_gateway 才是 Codex 专节。

网关不支持 Responses WebSocket。不写 supports_websockets = false 时,每一轮会先试 WebSocket、重试约 5 次再回落 HTTPS,日志是 Falling back from WebSockets to HTTPS transport.。把这项写进供应商表。

更稳妥是独立 profile(用户层 $CODEX_HOME,不是项目 .codex):

# ~/.codex/ai_gateway.config.toml
model_provider = "ai_gateway"

[model_providers.ai_gateway]
name = "AI Gateway"
base_url = "https://YOUR_DEPLOYMENT/api/v2/ai-gateway/openai/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
supports_websockets = false
export OPENAI_API_KEY="YOUR_CODER_API_TOKEN"
codex --profile ai_gateway

0.134 起不要再写 [profiles.ai_gateway]。自定义供应商必须 wire_api = "responses"。密钥必须出现在启动 Codex 的那个进程里。从已经 export 的终端启动;Dock 打开的桌面读不到你刚改的 zshrc。

个人 OpenAI 密钥那条(BYOK)才加 requires_openai_auth = true,并用 env_http_headers 把头 X-Coder-AI-Governance-Token 指到变量名 CODER_API_TOKEN。这时 OPENAI_API_KEY 才是你的 OpenAI 密钥。ChatGPT 订阅那条把 base_url 换成 https://YOUR_DEPLOYMENT/api/v2/ai-gateway/chatgpt/v1,并 unset OPENAI_API_KEY;部署上必须有名为 chatgpt 的供应商,否则 404 route not supported: POST /chatgpt/v1/responses

Coder Registry 模块 enable_ai_gateway = true 写的是另一张表:[model_providers.aigateway](没有下划线),base_url/api/v2/aibridge/openai/v1env_key = "OPENAI_CODER_AIGATEWAY_SESSION_TOKEN"。不要和文档专节的 ai_gateway 表混抄。

配置说明:

  • 不要写 openai_base_url,也不要覆盖内置 ID openaiollamalmstudioai_gateway 是新 ID,可以。
  • 不要写进项目 .codex/config.toml
  • 不要把密钥写进 http_headers 或 TOML 字面量。

改完新开会话。codex --profile ai_gateway 启动后,发送一条简短请求验证连接。401 先看进程里有没有该变量。

来源