Back to home

Codex ccswitch配置文件修改

整理 Codex 配置第三方 API 时的思考强度与图片上传问题的完整讨论。

说明:本文档整理的是对话中的用户提问与助手答复;系统/开发者指令、工具调用原始输出和隐藏推理过程未纳入正文。

目录

  1. 第 5 个问题:Codex 通过 CC switch 接入第三方 API 的能力限制
  2. 助手回答:原因分析与可修改项
  3. 后续问题:确认模型支持,要求完整说明修改位置
  4. 助手回答:完整修改清单
  5. 后续请求:导出整个对话为 HTML 文档
  6. 当前请求:从第 5 个问题开始导出 HTML 文档

用户 · 第 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.toml
  • C:\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
  • 支持的思考强度:只有 nonehigh
  • 没有声明 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 的文件上传、图片、工具调用等能力不是只看模型名,而是要看:

  1. Codex 本地 model catalog 是否声明支持;
  2. 自定义 provider 是否支持对应 API 形态;
  3. CC switch 是否实现了图片、文件、multipart、Responses input file 等转换;
  4. 第三方模型后端是否真正支持这些输入。

你当前 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

修改后建议:

  1. 保存文件;
  2. 完全重启 Codex;
  3. 新开一个线程测试;
  4. 如果请求报错,说明 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。

用户 · 后续问题

我确认这个模型是支持的,请从头到尾完整地说一下我有哪些地方需要改。

助手 · 回答

可以。按你现在的配置,主要需要改 两个地方

  1. C:\Users\30477\.codex\config.toml
  2. C:\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.jsonsupported_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 才会知道这个模型支持 nonelowmediumhigh 四档。

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 通过本地文件系统读取。

七、完整修改步骤

  1. 退出 Codex 或至少关闭当前会话,最好完全退出 Codex App,避免配置缓存。
  2. 备份文件。
  3. 修改 config.toml,把 model_reasoning_effort = "high" 改成 model_reasoning_effort = "medium"
  4. 修改 cc-switch-model-catalog.json,至少改默认思考强度、输入模态、支持的思考强度列表、图片细节支持。
  5. 检查 JSON 是否有效。
  6. 重启 Codex。
  7. 新建线程测试:普通文本、切换 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文档。