
本窗口四个中转实现零发版,唯一新动作是 CLIProxyAPI 一张未合并的补丁:它把「号池全空」的答复从可重试 429 换成终局用量上限,这里把这三种协议开启后各回什么、三个成立条件与 5 分钟门槛、以及仍够不到的三条路逐条列清。
| 实现 | 当前版本 | 发布时间(北京) | 分支头与版本的关系 |
|---|---|---|---|
| CLIProxyAPI | v8.0.53 | 11-03 20:27 | main 与 tag 同一提交,dev 另有提交 |
| sub2api | v0.2.19 | 10-28 18:16 | main 与 tag 同一提交 |
| codex-proxy | v2.1.23 | 11-03 19:35 | dev 比 main 新,未发版 |
| codex2api | v3.1.3 | 11-04 10:22 | main 与 tag 同一提交 |
retryable 是原来的可重试 429 加 Retry-After;usage-limit 把它换成终局答复,让客户端停下来。
config.example.yaml 里新增的注释块(第 237–243 行):两种取值各是什么,以及只有「每张凭证都报显式耗尽、且最早重置在 5 分钟以外」才走终局。2quota-cooldown-response-mode 由配置迁移搬到这个新位置,老配置不用手改。config.example.yaml 里没有这个键,那一版也没有对应的实现。现在把它写进生产配置,只会让下一个接手的人以为已经开了。model_cooldown 原来的五个字段,再补 type: usage_limit_reached、resets_at、retryable: false,知道窗口时再补 limit_window_minutes。3code:Codex 认的是 error.type,而老消费者还在读 model_cooldown。
selector.go 第 146–162 行:五个原字段原样保留,usageLimit 非空时才在下面追加 type、resets_at、retryable、limit_window_minutes——老客户端读到的 code 不变。3X-Should-Retry: false,以及刻意不给 Retry-After。Retry-After 睡的客户端会一觉睡过整个窗口,而不是停下来。4x-codex-primary-*,周窗口走 x-codex-secondary-*,各三件——已用 100%、窗口分钟数、重置时刻。
usage_limit_refusal.go 第 71–83 行:X-Should-Retry: false 与三件 Codex 头在同一处构造,5 小时与周窗口按分钟数分流;注释说明不知道窗口时宁可一件头都不给。4rate_limit_error,只在消息文本尾部追加 (reset after 2h19m…),另给 resets_at 与 retryable: false。5code、message、model、reset_time、reset_seconds(后面再挂 provider 与 last_upstream_error)。没有 type,也没有 resets_at。6Retry-After,只能照着睡、照着重试。usage_limit_reached、OpenAI 兼容的 insufficient_quota、Gemini 与 Vertex 的 QUOTA_EXHAUSTED、Anthropic 统一后的 5 小时或 7 天拒绝。
usage_limit_refusal.go 第 186–229 行:资格循环与 5 分钟门槛。第 190 行跳过空、禁用与状态为禁用的凭证,第 193 行跳过零权重,第 215–218 行的 skip 出口让判定不了的情况直接略过该凭证,第 226 行把 5 分钟以内的重置判回可重试。7
conductor_execution.go 第 317–331 行:终局答复只在流还没吐出任何字节时替换失败;三个入口(Execute、ExecuteCount、ExecuteStream)都接在同一层调用上。8skip 出口。websockets 字段,为真即说明原生 WS 在跑——对这类凭证,终局答复不生效。11usage-limit,用三种协议各打一发 429 看实际返回,再决定要不要上生产。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
opentherank.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.