整理 Codex 配置第三方 API 时的思考强度与图片上传问题的完整讨论。
说明:本文档整理的是对话中的用户提问与助手答复;系统/开发者指令、工具调用原始输出和隐藏推理过程未纳入正文。
目录
用户 · 第 5 个问题
Files mentioned by the user:
config.toml:C:/Users/30477/.codex/config.toml
My request for Codex:
我使用codex通过CC switch接入第三方API。
下面是文件格式,为什么在codex里,GPT模型只能是高的思考强度,不能调节其他思考强度,且不能上传图片和文件?
助手 · 回答
原因基本不在 “GPT 模型本身”,而在你给 Codex 的 自定义 provider + model catalog 里声明的能力。
我看了这两个文件:
C:\Users\30477\.codex\config.tomlC:\Users\30477\.codex\cc-switch-model-catalog.json
里面有几个关键点。
1. 为什么只能是高思考强度?
你的 config.toml 里写了:
model_reasoning_effort = "high"
model_catalog_json = "cc-switch-model-catalog.json"
然后 C:\Users\30477\.codex\cc-switch-model-catalog.json 里这个模型的配置是:
"default_reasoning_level": "high",
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Enabled Thinking",
"effort": "high"
}
]
也就是说,Codex 看到的能力声明是:
- 默认思考强度:
high - 支持的思考强度:只有
none和high - 没有声明
low - 没有声明
medium - 没有声明其他档位
所以 Codex UI 里不会给你显示其他思考强度。它不是根据模型名 gpt-5.5 自动猜能力,而是根据 model_catalog_json 里的 supported_reasoning_levels 来决定能不能选。
如果你希望能调节,需要 CC switch 生成/提供的 catalog 声明更多档位,例如类似:
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Low Thinking",
"effort": "low"
},
{
"description": "Medium Thinking",
"effort": "medium"
},
{
"description": "High Thinking",
"effort": "high"
}
]
并且:
"default_reasoning_level": "medium"
同时 config.toml 里也可以改成:
model_reasoning_effort = "medium"
但前提是:你的第三方 API / CC switch 后端真的支持这些 reasoning effort 参数。如果后端只接受 high 或者根本忽略 reasoning 参数,Codex 这边改了也可能无效,甚至请求报错。
2. 为什么不能上传图片?
你的 model catalog 里写的是:
"input_modalities": [
"text"
],
"supports_image_detail_original": false
这等于告诉 Codex:
这个模型只支持文本输入,不支持图片输入。
所以 Codex 会禁用或隐藏图片上传/图片输入相关能力。
如果模型和第三方 API 确实支持视觉输入,catalog 至少需要把能力声明改成类似:
"input_modalities": [
"text",
"image"
],
"supports_image_detail_original": true
但这也只是让 Codex “认为”模型支持图片。真正能不能用,还取决于 CC switch 是否正确把 Codex 的图片输入转换成第三方 API 支持的格式。
3. 为什么不能上传文件?
这个也类似。你当前 catalog 没有声明文件输入能力,而且你的 provider 是:
[model_providers.custom]
name = "custom"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://api.ggniao.com/v1"
你现在接的是第三方 OpenAI-compatible / Responses-compatible 接口。Codex 的文件上传、图片、工具调用等能力不是只看模型名,而是要看:
- Codex 本地 model catalog 是否声明支持;
- 自定义 provider 是否支持对应 API 形态;
- CC switch 是否实现了图片、文件、multipart、Responses input file 等转换;
- 第三方模型后端是否真正支持这些输入。
你当前 catalog 明确是文本模型:
"input_modalities": ["text"]
所以文件/图片能力被视为不可用。
4. 一句话总结
你现在 Codex 里之所以:
- GPT 模型只能高思考强度;
- 不能调低/中等思考强度;
- 不能上传图片;
- 不能上传文件;
主要是因为 C:\Users\30477\.codex\cc-switch-model-catalog.json 里把这个模型声明成了:
"text only"
并且 reasoning 只声明了:
"none" 和 "high"
Codex 是按这个能力表来渲染 UI 和构造请求的。
5. 你可以怎么改?
如果你确认 CC switch 和第三方 API 支持,可以尝试改 C:\Users\30477\.codex\cc-switch-model-catalog.json:
reasoning 改成多档
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Low Thinking",
"effort": "low"
},
{
"description": "Medium Thinking",
"effort": "medium"
},
{
"description": "High Thinking",
"effort": "high"
}
]
然后 C:\Users\30477\.codex\config.toml 里改:
model_reasoning_effort = "medium"
图片能力改成支持 image
"input_modalities": [
"text",
"image"
],
"supports_image_detail_original": true
修改后建议:
- 保存文件;
- 完全重启 Codex;
- 新开一个线程测试;
- 如果请求报错,说明 CC switch 或第三方 API 实际不支持这些参数。
6. 重要提醒
不要只因为模型名叫 gpt-5.5 就假设它一定支持所有 Codex 功能。
在 Codex + 自定义 API 场景里,真正决定能力的是:
config.toml
+
cc-switch-model-catalog.json
+
第三方 API 实际兼容程度
你现在的问题本质上是:CC switch 给 Codex 暴露了一个能力受限的模型配置。如果要解锁更多功能,需要改 catalog,或者让 CC switch 生成更完整的 model catalog。
用户 · 后续问题
我确认这个模型是支持的,请从头到尾完整地说一下我有哪些地方需要改。
助手 · 回答
可以。按你现在的配置,主要需要改 两个地方:
C:\Users\30477\.codex\config.tomlC:\Users\30477\.codex\cc-switch-model-catalog.json
其中真正决定“能不能选不同思考强度 / 能不能传图”的核心是第二个:
C:\Users\30477\.codex\cc-switch-model-catalog.json
一、先备份
修改前建议先备份这两个文件:
Copy-Item "C:\Users\30477\.codex\config.toml" "C:\Users\30477\.codex\config.toml.bak"
Copy-Item "C:\Users\30477\.codex\cc-switch-model-catalog.json" "C:\Users\30477\.codex\cc-switch-model-catalog.json.bak"
二、修改 config.toml
文件路径:
C:\Users\30477\.codex\config.toml
你现在开头是:
model_provider = "custom"
model = "gpt-5.5"
disable_response_storage = true
model_reasoning_effort = "high"
model_catalog_json = "cc-switch-model-catalog.json"
如果你希望默认不是高思考强度,比如默认中等,就改成:
model_provider = "custom"
model = "gpt-5.5"
disable_response_storage = true
model_reasoning_effort = "medium"
model_catalog_json = "cc-switch-model-catalog.json"
也就是说只改这一行:
model_reasoning_effort = "medium"
你也可以按需要设置成:
model_reasoning_effort = "none"
或:
model_reasoning_effort = "low"
或:
model_reasoning_effort = "high"
但注意:config.toml 里设置的值必须在 cc-switch-model-catalog.json 的 supported_reasoning_levels 里也存在,否则 Codex 可能不会正常显示或会回退。
三、修改 cc-switch-model-catalog.json
文件路径:
C:\Users\30477\.codex\cc-switch-model-catalog.json
你现在的问题主要来自这几处。
1. 修改默认思考强度
现在是:
"default_reasoning_level": "high"
建议改成:
"default_reasoning_level": "medium"
2. 修改支持的思考强度列表
现在是:
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Enabled Thinking",
"effort": "high"
}
]
建议改成完整多档:
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Low Thinking",
"effort": "low"
},
{
"description": "Medium Thinking",
"effort": "medium"
},
{
"description": "High Thinking",
"effort": "high"
}
]
这样 Codex 才会知道这个模型支持 none、low、medium、high 四档。
3. 修改输入模态,允许图片
现在是:
"input_modalities": [
"text"
]
改成:
"input_modalities": [
"text",
"image"
]
4. 打开原图细节支持
现在是:
"supports_image_detail_original": false
改成:
"supports_image_detail_original": true
5. 可选:如果模型支持并行工具调用
现在是:
"supports_parallel_tool_calls": false
如果你确认第三方 API 支持并行 tool calls,可以改成:
"supports_parallel_tool_calls": true
如果不确定,先别改,保持 false 更稳。
6. 可选:如果模型支持 web search tool
现在是:
"supports_search_tool": false
通常第三方 API 即使支持文本/图片,也不一定支持 OpenAI 的内置 search tool。
如果你不确定,保持:
"supports_search_tool": false
四、完整可替换的 cc-switch-model-catalog.json
{
"models": [
{
"additional_speed_tiers": [],
"availability_nux": null,
"base_instructions": "You are Codex, a coding agent. You and the user share the same workspace and collaborate to achieve the user's goals.",
"context_window": 1000000,
"default_reasoning_level": "medium",
"default_reasoning_summary": "none",
"description": "gpt-5.5",
"display_name": "gpt-5.5",
"effective_context_window_percent": 95,
"experimental_supported_tools": [],
"input_modalities": [
"text",
"image"
],
"max_context_window": 1000000,
"priority": 1000,
"service_tiers": [],
"shell_type": "shell_command",
"slug": "gpt-5.5",
"support_verbosity": false,
"supported_in_api": true,
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Low Thinking",
"effort": "low"
},
{
"description": "Medium Thinking",
"effort": "medium"
},
{
"description": "High Thinking",
"effort": "high"
}
],
"supports_image_detail_original": true,
"supports_parallel_tool_calls": false,
"supports_reasoning_summaries": true,
"supports_search_tool": false,
"truncation_policy": {
"limit": 10000,
"mode": "bytes"
},
"upgrade": null,
"visibility": "list"
}
]
}
五、config.toml 推荐改法
你不需要重写整个 config.toml,只改开头这一行即可。
当前:
model_reasoning_effort = "high"
改成:
model_reasoning_effort = "medium"
保持其他内容不变。
六、如果你还想“上传文件”
这里要分清楚两种“上传文件”。
情况 A:把文件作为 Codex 工作区文件处理
这种通常不需要模型 API 支持文件上传。
你把文件放进工作区,Codex 可以通过本地文件系统读取。
比如当前工作区:
C:\Users\30477\Documents\Codex\2026-07-07\new-chat-3
你可以把文件放在这里,然后告诉 Codex 文件路径。
这种方式依赖的是 Codex 本地文件读取能力,不是模型的 file input 能力。
情况 B:像 ChatGPT 那样把文件直接作为模型输入附件
这个就复杂一些。
Codex 的 custom provider + Responses wire API 要想完整支持“文件附件输入”,不仅要 catalog 声明,还要第三方 API / CC switch 正确兼容对应的 Responses 文件输入格式。
你当前 catalog 里没有看到明确的 file modality 字段。你可以尝试把:
"input_modalities": [
"text",
"image"
]
改成:
"input_modalities": [
"text",
"image",
"file"
]
但我不保证 Codex 当前版本会识别 "file" 这个 modality,也不保证 CC switch 会正确转发。
更稳妥的做法是:把文件放到工作区,让 Codex 通过本地文件系统读取。
七、完整修改步骤
- 退出 Codex 或至少关闭当前会话,最好完全退出 Codex App,避免配置缓存。
- 备份文件。
- 修改
config.toml,把model_reasoning_effort = "high"改成model_reasoning_effort = "medium"。 - 修改
cc-switch-model-catalog.json,至少改默认思考强度、输入模态、支持的思考强度列表、图片细节支持。 - 检查 JSON 是否有效。
- 重启 Codex。
- 新建线程测试:普通文本、切换 reasoning effort、上传图片、文件。
检查 JSON 的 PowerShell 命令:
Get-Content "C:\Users\30477\.codex\cc-switch-model-catalog.json" -Raw | ConvertFrom-Json | Out-Null
八、最终你需要改的清单
最小必改:
C:\Users\30477\.codex\config.toml
改:
model_reasoning_effort = "medium"
以及:
C:\Users\30477\.codex\cc-switch-model-catalog.json
改:
"default_reasoning_level": "medium"
"input_modalities": [
"text",
"image"
]
"supported_reasoning_levels": [
{
"description": "Disable Thinking",
"effort": "none"
},
{
"description": "Low Thinking",
"effort": "low"
},
{
"description": "Medium Thinking",
"effort": "medium"
},
{
"description": "High Thinking",
"effort": "high"
}
]
"supports_image_detail_original": true
可选改:
"supports_parallel_tool_calls": true
但只有在你确认第三方 API 支持并行工具调用时再改。
用户 · 后续请求
将这整个对话输出为一个HTML文档。
该回合随后被用户主动中断。
用户 · 当前请求
从我问你的第5个问题开始,以这个地方为开头,将后面的所有对话内容输出为一个HTML文档。