ChatGPT / Codex CLI
Codex CLI 的自定义 provider 目前只支持 Responses API(wire_api 填 responses),Base URL 指向 https://api.sagelib.com/openai,密钥填网关令牌;所选模型必须在模型详情页声明 /responses 端点。
最后更新:2026-11-14
Codex 走 OpenAI 协议,且当前版本的自定义 provider 只支持 Responses API(wire_api = "responses"),所以要选网关里支持 /responses 端点的模型。
建议用 CC Switch 来管理网关配置。它是开源免费的 Agent 客户端统一配置管理应用,把网关存成一个供应商后即可一键切换,不用手改配置文件。下面以 CC Switch 为例。
支持的模型和协议
Codex 只调用 OpenAI 入口,模型详情页的「模型能力」里要包含 OpenAI / /responses 端点。
- 模型已支持
/responses端点:如gpt-6-sol、gpt-5.6-terra、deepseek-v4.1-flash、glm-5.3、kimi-k3。 - 模型只支持
/chat/completions(如claude-sonnet-5):直连会返回model claude-sonnet-5 does not support the /responses endpoint。 - 路由模式:如果一定要在 Codex 中使用不支持
/responses端点的模型,可以在本地安装一个支持协议转换的路由服务。
界面配置
打开 CC Switch → 添加供应商 → 自定义配置,打开配置页面。

按下表填写:
| 字段 | 填什么 |
|---|---|
| 名称 / 备注 | 任意,便于识别(如「SageLib AI 边缘网关」) |
| API Key | 「令牌管理」创建的 sk-... 网关令牌 |
| API 请求地址 | https://api.sagelib.com/openai(不要带 /v1) |
| 模型列表 · 菜单显示名 | 客户端里显示的名字,如 sagelib-gpt-6-sol |
| 模型列表 · 实际请求模型 | 网关「模型广场」里的模型标识,如 gpt-6-sol |
| 模型列表 · 上下文窗口 | 模型支持的上下文长度,如 128000 |
| 模型列表 · 思考等级 | 需要的思考档位,默认「未设置」即可 |
保存后重启 Codex(界面会提示「修改后需要重启 Codex」)。
配置文件
CC Switch 会把配置写进 ~/.codex/ 下的三个文件:
1. ~/.codex/auth.json —— 网关令牌:
{
"OPENAI_API_KEY": "sk-你的网关密钥"
}
2. ~/.codex/config.toml —— 供应商与默认模型(Windows:C:\Users\<你>\.codex\config.toml):
model = "gpt-6-sol"
model_provider = "sagelib"
model_catalog_json = 'C:\Users\<你>\.codex\cc-switch-model-catalog.json'
[model_providers.sagelib]
name = "SageLib"
base_url = "https://api.sagelib.com/openai"
wire_api = "responses"
requires_openai_auth = false
experimental_bearer_token = "sk-你的网关密钥"
base_url填https://api.sagelib.com/openai,不要带/v1(Codex 会自己拼/responses);wire_api固定为responses(Codex 的自定义 provider 只支持 Responses API);experimental_bearer_token直接带上网关令牌;不想把令牌写进配置时,可改用env_key = "环境变量名"并从系统环境变量读取;requires_openai_auth = false表示不使用 OpenAI 官方登录。
3. ~/.codex/cc-switch-model-catalog.json —— 模型元数据(CC Switch 生成):
{
"models": [
{
"slug": "gpt-6-sol",
"display_name": "sagelib-gpt-6-sol",
"context_window": 128000,
"max_context_window": 128000,
"priority": 1000,
"input_modalities": ["text", "image"],
"default_reasoning_level": "high",
"supported_reasoning_levels": [
{ "effort": "none", "description": "Disable Thinking" },
{ "effort": "high", "description": "Enabled Thinking" }
],
"supports_reasoning_summaries": true,
"supports_parallel_tool_calls": false
}
]
}
slug:实际请求模型(网关的模型标识);display_name:菜单显示名;context_window:上下文窗口;input_modalities:支持的输入模态;supported_reasoning_levels:可选的思考等级。
启动并验证
重新打开 Codex,新开对话发一句话,能收到回复即接通;再到控制台「用量日志」确认这条调用出现(端点应显示 /responses)。