通过 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/v1,env_key = "OPENAI_CODER_AIGATEWAY_SESSION_TOKEN"。不要和文档专节的 ai_gateway 表混抄。
配置说明:
- 不要写
openai_base_url,也不要覆盖内置 IDopenai、ollama、lmstudio。ai_gateway是新 ID,可以。 - 不要写进项目
.codex/config.toml。 - 不要把密钥写进
http_headers或 TOML 字面量。
改完新开会话。codex --profile ai_gateway 启动后,发送一条简短请求验证连接。401 先看进程里有没有该变量。