Codex App 使用 GPT-5.3 Codex Spark 报 reasoning.summary 不支持
结论
这不是项目配置或提示词导致的问题,而是 Codex App 当前的模型能力配置与 Spark 服务端实际能力不一致。
Codex App 向 gpt-5.3-codex-spark 发送了 reasoning.summary,但该模型端点拒绝这个参数,于是请求还没开始生成内容就返回:
Unsupported parameter: 'reasoning.summary' is not supported with the 'gpt-5.3-codex-spark' model.截至 2026 年 7 月 15 日,openai/codex#31846 仍处于 Open 状态,没有关联负责人、里程碑或修复 PR。Windows 和 macOS 均有复现,最新讨论中的 Windows 复现版本是 Codex Desktop 26.707.9981.0、bundled runtime 0.144.2。
目前建议按以下优先级临时处理:
- 完全退出 Codex App,改用 Codex CLI 或 VS Code Codex 扩展运行 Spark。
- 必须留在 Codex App 时,暂时换用 GPT-5.5 或 GPT-5.6。
- 必须在 Codex App 中使用 Spark 时,临时修正
~/.codex/models_cache.json,并理解这个缓存可能被 App 覆盖。
现场核对
本机环境与 issue 中的最新 Windows 复现一致:
Codex App: 26.707.9981.0
Codex CLI: 0.144.4
Model: gpt-5.3-codex-spark全局 ~/.codex/config.toml 只设置了推理强度:
model_reasoning_effort = "medium"其中没有 model_reasoning_summary,说明错误并不是用户显式开启 summary 造成的。与此同时,本机 ~/.codex/models_cache.json 中 Spark 的能力声明是:
{
"slug": "gpt-5.3-codex-spark",
"supports_reasoning_summaries": true,
"default_reasoning_summary": "none"
}issue 中的运行日志进一步显示,Codex App 会在每一轮启动时通过自己的功能开关把 summary 解析成 detailed。因此,即使用户没有配置 summary,甚至在 config.toml 中写入 model_reasoning_summary = "none",App 仍可能覆盖它并发送不受支持的参数。
根因判断
目前证据指向两个条件同时成立:
- 模型目录把 Spark 标记为支持 reasoning summaries。
- Codex App 的
concurrent_reasoning_summaries功能覆盖会为请求注入 summary。
请求构建器看到 supports_reasoning_summaries = true 后允许附带 reasoning.summary,而 Spark 服务端实际上不接受它,最终返回 HTTP 400。
这里要特别区分 reasoning.effort 与 reasoning.summary。Spark 支持 low、medium、high、xhigh 等推理强度;失败的是 summary 参数,所以降低推理强度通常不能解决问题。
临时方案一:退出 App,使用 CLI 或 VS Code
这是当前最稳妥、侵入最小的方案。
- 从系统托盘彻底退出 Codex App,不要只关闭窗口。
- 在终端启动 Spark:
codex -m gpt-5.3-codex-spark也可以在 VS Code Codex 扩展中选择 GPT-5.3 Codex Spark。
issue 中有人确认 CLI 单独运行正常,但重新打开 Codex App 后,App 会发现共享会话并重新注入配置,使原本正常的 CLI 会话也开始失败。因此使用这个方案时,不要同时打开 Codex App,也不要在 App 中点开同一个 Spark 会话。
如果只是需要继续工作而不要求 Spark,直接在 App 中切回 GPT-5.5 或 GPT-5.6 更简单。官方 Codex 模型说明 也把 GPT-5.5 作为大多数任务的推荐模型,而 Spark 是面向低延迟文本迭代的 research preview。
临时方案二:修正本地模型缓存
只有在必须通过 Codex App 使用 Spark 时,才建议采用这个办法。先完全退出 Codex App,然后备份文件:
$cache = "$env:USERPROFILE\.codex\models_cache.json"
Copy-Item $cache "$cache.bak"打开 C:\Users\你的用户名\.codex\models_cache.json,找到:
"slug": "gpt-5.3-codex-spark"只在这个模型对象中把:
"supports_reasoning_summaries": true改成:
"supports_reasoning_summaries": false保存后重新打开 Codex App,再创建一个新的 Spark 任务测试。不要先用重要的已有任务测试,因为切换到 Spark 后失败的会话可能会反复报同一个错误。
缓存被自动覆盖
models_cache.json 是缓存,不是稳定配置入口。Codex App 会重新拉取模型目录,有的版本在启动时覆盖它,有的复现甚至在下一次请求时就恢复成 true。
如果确认补丁有效,但每次都会被覆盖,可以在完全退出 App 并修改完成后,临时把文件设为只读:
attrib +R "$env:USERPROFILE\.codex\models_cache.json"这样做也会阻止正常的模型目录更新,可能导致新模型、能力变化或官方修复无法落到本机,所以只能作为短期措施。每次升级 Codex App 后都应先取消只读并重新验证:
attrib -R "$env:USERPROFILE\.codex\models_cache.json"需要撤销全部修改时:
$cache = "$env:USERPROFILE\.codex\models_cache.json"
attrib -R $cache
Copy-Item "$cache.bak" $cache -Force为什么只改 config.toml 不可靠
官方 Codex 高级配置文档 提供了以下配置:
model_reasoning_summary = "none"
model_supports_reasoning_summaries = false从配置语义看,这本应关闭 reasoning summary。但 issue 中针对当前 Codex App 的跟踪表明:
- App 的每轮 feature override 可能把 summary 重新设为
detailed; - 相关 runtime 版本对
model_supports_reasoning_summaries = false的处理可能是无效覆盖; - 实测加入
model_reasoning_summary = "none"后仍然失败。
因此可以尝试这两个配置,但不能把它们当作当前 Desktop App 的可靠解决方案。直接修改模型缓存之所以暂时有效,是因为请求构建器会根据模型能力声明决定是否发送 summary 字段。
风险与后续判断
- 不要删除整个
~/.codex目录,也没有必要退出登录或重装项目依赖;现有证据表明问题发生在模型请求参数层。 - 不要把
reasoning_effort改为none当作修复;错误字段不是 reasoning effort。 - 本地缓存补丁随时可能失效,也可能遮蔽官方下发的新模型配置。
- issue 中的根因分析和缓存补丁来自用户复现,并非 OpenAI 维护者正式确认的修复说明。
升级 Codex App 后,可按以下顺序判断是否已经修复:
- 取消
models_cache.json的只读属性。 - 恢复备份或让 App 重新生成模型缓存。
- 新建一个无项目、无技能的 Spark 任务,发送最简单的文本。
- 确认不再出现
reasoning.summary400 错误后,删除备份和临时补丁。