Codex 自定义模型代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fdb96f95/codex-custom-model-proxy。
技能介绍
问题背景
OpenAI Codex CLI 默认走 Responses API(/v1/responses)并以 SSE 流式返回;不少自建或第三方模型(例如 MiniMax)只提供与 OpenAI 兼容的 Chat Completions(/v1/chat/completions)。两边请求体、流式事件名和字段并不一致,直接改 base_url 往往会出现 Stream disconnected before completion、Model metadata not found 等现象。
技能如何工作
本技能提供一个可配置的本地 Python SSE 代理(默认监听 http://127.0.0.1:5005),在 Codex 与上游之间做协议转换:
- 接收 Codex 的 Responses API 请求
- 转成 Chat Completions 格式并转发到上游
- 将上游流式块再映射回 Codex 期望的 SSE 事件(如
response.created、response.output_text.delta、response.completed等) - 处理模型元数据、UTF-8 编码与超时等常见坑
典型用法是编辑 ~/.codex/config.toml 把端点指向本地代理,启动 scripts/sse_proxy.py(或捆绑脚本),再照常运行 Codex。
适用边界与注意点
- 上游需基本兼容 OpenAI Chat Completions 流式语义;非该形态的 API 需要额外适配。
Model metadata not found多为目录警告,可在model_catalog_gpt55.json中补条目(见references/model-catalog-schema.md),不影响代理转发本身。- 空闲断流时优先加大
UPSTREAM_TIMEOUT(建议 180 秒以上),并确认代理输出完整 SSE 序列与X-Accel-Buffering: no。 - 多模型、自定义
MODEL_META、HTTPS 上游证书等可在代理脚本与环境变量中扩展。
使用场景
- 公司统一走 MiniMax 等 Chat Completions 网关,需要让本机 Codex CLI 也能用同一套密钥与端点
- Codex 直连自定义 base_url 时出现 idle timeout 或 SSE 断流,需要本地代理把 Responses 与 Completions 格式对齐
- 要在 ~/.codex/config.toml 里把模型指到内网推理服务,而不是 OpenAI 官方 Responses 端点
- 多技能占满 context 预算导致描述被截断时,仍需稳定跑通自定义模型代理与 Codex 会话
适合人员
- 日常用 Codex CLI 写代码、但模型配额走企业自建 OpenAI 兼容网关的后端工程师
- 已接入 MiniMax 等厂商 API,想把 Codex 从官方模型切换到该线路而不改工作流的独立开发者
- 负责给团队分发 Codex 配置、需要维护 config.toml 与本地代理脚本的 DevOps 或平台同学
- 在排查 Stream disconnected 或 Model metadata not found 时,需要对照代理事件序列与超时参数的基础设施维护者