1. 问题
随着 deepseek-v4-flash-0731 版本发布,现在新版的的v4-flash支持low、high、max三档思考模式,但是在 CC Switch 的 DeepSeek-response 配置里,思考强度明明设成了 max,Codex 对话里却有两个怪现象:

- 选择器只有”轻度 / 高”两档,找不到 max;
- 抓包一看,实际请求走的也是 high,根本没跑 max。
配置文件看起来又没问题(config.toml 里写的确实是 max),就是死活不生效。
2. 分析原因
问题不在 CC Switch,也不在模型目录,而是 Codex Desktop 自己的两层机制:
- 实际强度没走 max:Codex 每个对话(线程)有自己的思考强度设置,存在应用状态库里。这个线程级设置会覆盖
config.toml里的默认值。当时线程被设成了 high,所以请求只按 high 发。 - 选择器看不到 max:Desktop 选择器显示的档位 = 模型支持的档位 ∩ 应用启用的档位。deepseek-v4-flash 支持
low / high / max,但应用启用档位列表默认是low / medium / high / xhigh / ultra,默认不含 max。一交集,就只剩low / high,max 被藏起来了。
一句话:是 Desktop 的 UI 过滤把 max 挡住了,加上线程级设置覆盖了 config 默认值。
3. 如何解决
改三处,再重启一次:
- 在
~/.codex/config.toml的[desktop]段加一行,把max放回启用档位列表; - 把同一行同步进 CC Switch 数据库里 DeepSeek-response 的配置模板,防止切换 provider 时被覆盖;
- 把当前对话在状态库里的
reasoning_effort从high改成max。
最后完全退出 Codex Desktop(Cmd+Q)再重新打开。重启后选择器就出现”最高”档,抓包确认请求体里 reasoning.effort = max,修复完成。
4. 解决细节提示词(AI 可直接执行)
把下面的内容整段交给一个能读写本地文件的 AI 执行即可。
任务
修复 Codex Desktop + CC Switch 使用 deepseek-v4-flash 时,对话选择器无法显示/使用 max 思考强度的问题。验收标准:重启后当前对话选择器能看到”最高(max)”档,且实际请求以 reasoning.effort = max 发出。
根因(已定位,按此修改即可)
- Desktop 选择器档位 = 模型
supported_reasoning_levels∩ 应用设置enabled-reasoning-efforts。该设置默认["low","medium","high","xhigh","ultra"],不含max。 - 该设置从
~/.codex/config.toml的[desktop]段读取(不是[features]段)。 - 对话实际强度由
~/.codex/state_5.sqlite的threads.reasoning_effort决定,会覆盖config.toml的model_reasoning_effort默认值。
修改步骤
0. 备份(必做,出错可恢复)
1 | TS=$(date +%Y%m%d_%H%M%S) |
1. 修改 ~/.codex/config.toml
在 [desktop] 段(即含 followUpQueueMode 的那段)追加一行,kebab 键必须加引号:
1 | [desktop] |
注意:放在 [desktop] 下,不要放 [features]。
2. 修改 CC Switch 数据库(DeepSeek-response 模板)
目标:~/.cc-switch/cc-switch.db 中 providers 表、app_type='codex' AND name='DeepSeek-response' 行的 settings_config JSON 里,$.config 这个字符串中的 [desktop] 段加上同一行。
务必用 Python 的 json 模块读写(JSON 字符串内引号需转义,用 shell 直接拼裸引号会写坏 JSON):
1 | import sqlite3, json |
3. 修改当前线程的思考强度
先查线程 ID(正在对话的线程):
1 | sqlite3 ~/.codex/state_5.sqlite "SELECT id, model, reasoning_effort FROM threads ORDER BY updated_at DESC LIMIT 10;" |
然后把对应线程改为 max:
1 | sqlite3 ~/.codex/state_5.sqlite "UPDATE threads SET reasoning_effort='max' WHERE id='<线程ID>';" |
4. 重启应用
提示用户完全退出 Codex Desktop(Cmd+Q,不是关窗口,关窗口会最小化到托盘),再重新打开。
验证
重启并让用户发一句话后检查:
1 | # 1) 线程状态 |
注意事项
- 不要修改任何 API key、token、认证字段。
- 修改
cc-switch.db后必须确认json_valid(settings_config) = 1。 - 修改前先备份,出错从备份恢复。
- 不要擅自向用户线程发送测试消息来触发验证轮次,除非用户明确要求。