5. Codex
6.1 兼容性指南
Codex 当前版本使用 OpenAI Responses API。U-Router 原生支持 /v1/responses(支持流式 SSE),Codex 可直接接入,无需降级到旧版本。
此外需注意:Codex 下发的工具列表可能包含 namespace、web_search 等非 function 类型工具,U-Router 目前仅支持 function 类型工具(非 function 类型会自动过滤,用户无需额外操作)。
6.2 安装
安装当前版本:
npm install -g @openai/codexcodex --version仅在进行临时 Chat Completions 兼容联调、并接受旧版本维护与安全风险时:
npm install -g @openai/codex@0.80.0生产环境不建议长期锁定该历史版本。
6.3 Responses API 配置模板(主推)
编辑 ~/.codex/config.toml:
model_provider = "Umeng_U_Router"
model = "qwen3.8-max"
model_reasoning_effort = "high"
[model_providers.Umeng_U_Router]
name = "Umeng U-Router"
base_url = "https://ai.umeng.com/api/llm/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
requires_openai_auth = true
transport_kind = "responses_http" # 当模型无法连通情况时,可尝试添加该行配置注意:
设置环境变量(Codex 启动时从 shell 读取):
macOS 或 Linux:
# zsh / bashexport OPENAI_API_KEY="<YOUR_U_ROUTER_API_KEY>"如需长期生效,写入 ~/.zshrc、~/.bashrc 或 ~/.bash_profile,但不要把密钥提交到 Git。
Windows CMD:
setx OPENAI_API_KEY "<YOUR_U_ROUTER_API_KEY>"Windows PowerShell:
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "<YOUR_U_ROUTER_API_KEY>", [EnvironmentVariableTarget]::User)~/.codex/auth.json 中保存的 Key 仅供存储,Codex 运行时仍从 shell 环境变量读取:
{ "OPENAI_API_KEY": "<YOUR_U_ROUTER_API_KEY>"}6.4 Chat Completions 配置模板(回退方案)
仅当 Responses 模式不可用时,可使用旧版 Codex 0.80.0 走 Chat Completions 临时联调;这不是长期方案,生产环境不建议长期锁定该历史版本。
model_provider = "Umeng_U_Router"model = "auto"[model_providers.Umeng_U_Router]name = "Umeng U-Router"base_url = "https://ai.umeng.com/api/llm/v1"env_key = "OPENAI_API_KEY"wire_api = "chat"6.5 验证
首次验证推荐用 exec 模式:
model_provider = "Umeng_U_Router"
model = "auto"
[model_providers.Umeng_U_Router]
name = "Umeng U-Router"
base_url = "https://ai.umeng.com/api/llm/v1"
env_key = "OPENAI_API_KEY"
wire_api = "chat"预期输出包含 model: qwen3.8-max、provider: Umeng_U_Router、reasoning effort: high,并返回模型回复。
常见报错排查:
stream disconnected before completion:检查transport_kind是否设为responses_http(默认responses_websocket会绕过 base_url)。Missing environment variable: OPENAI_API_KEY:确认当前 shell 已export OPENAI_API_KEY=...,且杀掉旧 Codex 后台进程(pkill -f codex)后重新启动(Codex 会复用旧 app server,旧进程没有环境变量)。400: 'function' is a required property:U-Router 仅支持 function 类型工具,非 function 类型会自动过滤;如仍出现请确认 U-Router 版本已更新。