
服务端把请求改成 Fast 之后,用量记录里仍写着 auto;sub2api 的混合账号池会把带工具的 Sol 请求交给只支持 Chat 的账号,再直接回 400。本篇给出两处的版本与源码位置、今晚的绕行,以及 Anthropic 与 OpenAI 两条上游事件的当前读数。
auto;混合账号池会把带工具的 Sol 请求交给只支持 Chat 的账号,再直接回 400;Claude 的工具失败转到 Gemini 时被写成成功。0db1902)、Docker 部署、Codex OAuth 账号,下游用 Oh-My-CPA 读 usage 队列。1gpt-* 加 service_tier: priority,客户端自己不带这个字段。service_tier: priority,X-Codex-Routing-Hint 头写的是 tier=priority。| 场景 | 记录里的 service_tier | 上游响应里的档位 | 实际发出去的 |
|---|---|---|---|
客户端自己带 priority | priority | default | priority |
| 客户端不带,由 payload.override 改成 priority | auto | default | priority |
| 客户端不带,也没有覆盖规则 | auto | default | 不带 |

sdk/api/handlers/handlers.go 第 379–392 行:setServiceTierMetadata 读的是 handler 手里的 rawJSON,读不到就写 auto——这段跑在协议转换与 payload 规则之前。ResponseServiceTier 是两个相邻字段。6X-Codex-Routing-Hint,tier 段从最终请求体里读。注释的原话是「档位从最终 body 读,这样 payload 规则不会让提示过期」。7
internal/runtime/executor/codex_executor_request.go 第 329–358 行:第 331 行写明档位取自最终 body,第 353 行用 gjson.GetBytes(upstreamBody, "service_tier") 把它拼进路由提示头。effective_service_tier 这个字段。service_tier 的就自己带,记录里才会出现 priority;X-Codex-Routing-Hint 的 tier= 段核对这一趟到底走了哪一档;service_tier 与 response_service_tier 都别当 Fast 的计费依据,前者是客户端原稿,后者是上游的写法。gpt-6.1-sol、请求里带工具时,这条通道直接把 400 写给客户端,然后 return。
backend/internal/service/openai_gateway_responses_chat_fallback.go 第 65–84 行:第 78 行判模型名与工具数,第 80 行先把 400 写给客户端,第 81 行才 return——换号循环还没轮到它。GatewayFailureStageRequestCompatibility 阶段,错误体带上 NextAccountRetry。ShouldReportAccountScheduleFailure 对这个阶段直接返 false,账号健康与切换指标保持原样。accountRepo 非空)才转成换号;单账号直连的调用者拿到的仍是原来的 JSON 400。reasoning.effort=none 这类真正的请求错误不换号,换的只有能力不匹配这一种。gpt-6.1-sol 的名单。13
internal/translator/gemini/claude/gemini_claude_request.go 第 179–188 行:resultPath 在 IsError 时改指 error,两条分支共用同一个写入点。result 一条出口。16is_error。17claude.ai 与 Claude Cowork 两个组件,状态页整体仍是 Partially Degraded Service。POST /v8/management/routing/cooldown/reset 带 auth_index 还要再跑一次。22X-Codex-Routing-Hint 的 tier=;记录里的 service_tier 是客户端原稿,判不出 Fast。gpt-6.1-sol,否则带工具的请求会撞在它上面。github.com
status.claude.com
codex-reset.com
x.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.