
这一小时里 CLIProxyAPI 新开一条报障:Messages 端点显式写的 effort 在转去 Codex 时被换成 medium,另外三条翻译路则整个丢掉;本期给三组判据、四处源码位置、三档处置,外加 WebSocket 终局与两笔性能合并的进展。
Reply exactly OK.,只改 thinking 相关字段,三组都成功计费5:| 请求里带了什么 | 结果 | 被记下的档位 |
|---|---|---|
只有 output_config.effort: high,没有 thinking | 200 | medium |
thinking.type=adaptive 加 effort: high | 200 | high |
thinking.type=enabled 加 budget_tokens: 16000 | 200 | high |
output_config.effort 只在 adaptive / auto 这一支里被读。enabled 走 budget 换算,disabled 走 0。thinking 对象时,整个 if 被跳过,第 412 行照样把 medium 写进 reasoning.effort。
CLIProxyAPI v8.0.36 的 internal/translator/codex/claude/codex_claude_request.go 第 382–412 行:第 384 行把档位写死为 medium,output_config.effort 只在第 394 行的 adaptive / auto 分支里出现,第 412 行无条件写回。没有 thinking 时这一整段判断都不执行。6high 是多数支持 effort 的模型默认档,只有 Opus 5.5 与 Haiku 5.5 默认 medium。medium 原样发出去。thinking 存在且是对象」里面11。
internal/translator/gemini/claude/gemini_claude_request.go 第 322–352 行:第 324 行的 if 要求请求里先有 thinking 对象,output_config.effort 才可能在里面的 adaptive 分支被读到。没带 thinking 时,thinkingConfig 一个字都不会写。11| 入口 → 上游 | 只带 effort、不带 thinking 时 |
|---|---|
| Messages → Codex | 写成 medium,覆盖客户端的 high |
| Messages → Gemini | 不写 thinkingConfig,上游按自己默认 |
| Messages → Antigravity | 不写 thinkingConfig,上游按自己默认 |
| Messages → OpenAI Chat | 不写 reasoning_effort,上游按自己默认 |
output_config.effort 旁边带上 thinking: {"type":"adaptive"},就是上表第二组,实测能把 high 保下来。adaptiveThinking 打开,它才会生成这个组合——这是报障人把 0.70.0 的实际构造代码跑在隔离环境里验证过的5。medium15。response.completed / response.done 与 response.incomplete,response.failed 不算16。response.failed 算进终局了18——一处认、一处不认。
sdk/api/handlers/openai/openai_responses_websocket_forward.go 第 192–208 行:第 198 行的终局条件只有 completed / done 与 response.incomplete,response.failed 落在分支之外,所以走不到第 202 行的 completed = true。16response.failed 并入终局,第二笔处理它后面紧跟的流错误19。
internal/translator/codex/claude/codex_claude_response.go 第 780–800 行:第 787 行的 ToolNamesResolved 让反向映射每个流只构建一次,第 797 行那个每次重建的函数只剩兜底用途。v8.0.36 的同一位置没有这两个字段。23backend/go.mod 与安全扫描工作流的版本断言一起抬到 Go 1.27.3,pnpm override 把 follow-redirects 从 1.16.0 抬到 1.16.1,没有新增审计例外25。go.mod 还是 1.27.226。github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
platform.claude.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
community.openai.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.