Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
周额度几分钟掉 9 个点,而配置的档位上限有两处没生效
2026-10-24

周额度几分钟掉 9 个点,而配置的档位上限有两处没生效

上游有人说周额度几分钟掉了 9 个点;而在 sub2api v0.2.18 里,两类 /v1/messages 请求根本不会走分组配的推理档位上限——两张修单今天各补一笔,仍未合并。

中
中转站风控与更新速报@Karuha
北京 10:23 到 11:55,一个半小时。四个仓库没有发新版,主干也没有新合并。
窗口里值得现在看的是两件事。上游有人说周额度在几分钟里掉了 9 个点;而我们自己的 v0.2.18 里,有两类 /v1/messages 请求不会走分组里配的推理档位上限。 1
先查自己这一侧,再决定要不要怀疑上游。

一、两类 Messages 请求不走你配的上限

sub2api 的推理强度映射挂在分组上。客户端从 /v1/messages 进来,网关转成 Responses 再发上游,策略在转换之后才应用。 2
第一处缺口在绑定这一步:客户端没写 output_config.effort 时,函数直接返回,策略根本没绑上。 3
代码上面留了三行注释:Messages 桥接会在缺省时合成一个默认档位,所以只对客户端显式给的值绑定策略,免得上限去改那个默认值。 3
绑定策略的函数
绑定策略的函数
v0.2.18 的 backend/internal/handler/composite_platform.go 第 161–178 行:第 166–168 行的注释写明「只对显式值绑定」,第 170 行判 output_config.effort 缺失或为空,第 171 行直接返回。
缺省时合成出来的值是多少?关了思考是 none,其余情况是 medium。 4
缺省档位的来源
缺省档位的来源
v0.2.18 的 backend/internal/pkg/apicompat/anthropic_to_responses.go 第 437–446 行:第 439 行 thinking.type 为 disabled 时返回 none,第 441 行把缺省值定成 medium,只有客户端写了 output_config.effort 才覆盖它。
这带来两个后果。
带 none 的请求打到 gpt-6.1-sol,会在转换开头被一道按模型名做的档位校验拒掉:这款模型只接受 low、medium、high、xhigh、max。那条校验排在策略之前,于是你配的 none → low 仍然白配,请求照样回 400。 56
带 medium 的请求不会报错,它只是绕过了你的上限。你配最高 low,上游收到的还是 medium。 34
第二处缺口在平台判断。策略应用那一段被 account.Platform == PlatformOpenAI 包着,平台不是 OpenAI 的账号直接跳过。 2
策略应用外面的平台判断
策略应用外面的平台判断
v0.2.18 的 backend/internal/service/openai_gateway_messages.go 第 294–312 行:第 301 行把整段策略应用包在 account.Platform == PlatformOpenAI 里,第 302 行才读取绑定在 context 上的策略。
而 composite 分组路由到国产平台时,账号平台就是 DeepSeek、Kimi、智谱或 MiniMax。 7
这类账号的 Messages 走另一条路:判定为 Anthropic 协议后,请求零转换直通到供应商原生的 /v1/messages,只做模型名映射和少量 body 清理。 8
那条路上,整个文件里搜不到一次策略应用。
结果很具体:客户端发 low,上游收到 low;分组里配的 low → max 不会发生,也没有日志和报错。 9
报障的人还查了一件事:既有单测里有一条断言,明确要求非 openai / anthropic 目标平台不改写。 9 这是当时写下的选择。
面板也没拦。composite 分组照样能保存这套配置,保存时不提示。 9

二、两张修单今天各补一笔,仍不在任何一版里

写这两处的单子今天都动了。
#8161 是 10-16 开的,北京 11:28 补了两笔,第二笔叫「在策略映射之后校验合成档位」。 10
改法有两处:删掉「缺省就返回」那个早退;给转换函数加一个选项,把 gpt-6.1-sol 的档位校验从转换开头推迟到映射之后。 11
#8309 是 10-23 开的,北京 11:46 补了第二笔,叫「落实最终档位上限」:国产平台的闸门打开,原生直通在模型改写之前先过策略,另外给 GLM-5.3 加一道只封顶、不再映射的终局校验。 1213
修单在原生直通上新增的那段
修单在原生直通上新增的那段
PR 8309 头分支 wucm667/sub2api 的 backend/internal/service/openai_gateway_messages_anthropic_native.go 第 49–64 行:第 54 行按 IsCNProvider 判平台,第 55 行在模型改写之前就把分组策略应用到请求体,拒绝时回 Anthropic 格式的 403。
两单现在都开着。#8161 是 11 个文件、+329/−30,mergeable 为 clean;#8309 是 4 个文件、+382/−6,mergeable 为 unstable。 1012
v0.2.18 与主干里两处都还是原样。 23814

三、今天能做的三步自查

第一步,翻用量记录里最近几条 /v1/messages 请求,看「请求档位」与「转发档位」两项。两者不同,说明策略按你的配置生效了;请求侧为空、转发侧是 medium,就是第一节那处。 9
第二步,抓一条上游请求体,看 reasoning.effort 或 output_config.effort 发出去的实际值。 9
第三步,看这条请求打到了哪个平台。OpenAI 账号之外的目标,暂时别指望分组里那套映射。
两个临时绕法。一是让客户端显式写 output_config.effort:只要这个字段带着非空字符串,策略就会绑上,映射与上限都按配置走。 3
二是把 composite 分组里配给国产目标的那些映射先摘掉,省得以为它在生效。

四、上游那两条报障

第一条是周额度。#56634 北京 10:28 开,标签是 bug 与 rate-limits,报障人说桌面端的剩余额度在几分钟里从约 40% 掉到 31%。 1
他自己把口径写清楚了:当时用的是「GPT-6 Ultra Max」和「1.5× 加速」,这两个是他的描述,没有逐请求核对;报告时的一次实时查询确认了周窗口 69% 已用、31% 剩余,窗口长度 10080 分钟。 1
前后两次读数没有时间戳,并发任务、延迟刷新与计费错误他也都没能排除。 1
第二条是容量。#56646 北京 11:27 开,ChatGPT Plus、macOS 桌面端,从 10-09 到 10-10 起持续弹 Selected model is at capacity,到今天还在。 15
这条报障说的是客户端弹出的提示语,和网关看到的 429 属于两件事;他也没有在 CLI 与网页端逐模型试过。 15
两条都还停在报障人自述,没有官方回复。窗口里 openai/codex 新开 18 条,其余大多是桌面端界面类。

五、Codex 重置:承诺过点约 11 小时

10-23 12:47,Tibo 发帖说「明天上午十点前落地,顺带一个小发布」。 16
按美西时间算,那个「明天十点」是北京 10-24 01:00;现在已过去约 11 小时。 16
两站给的不是同一个数。codex-reset 首页写的是「今天 UTC 还没有重置」,最近一次已验证的全局重置在北京 10-23 01:10,距今 35 小时,累计 57 次、10 次 banked、节奏约每两天。 17
opentherank 记 66 次、中位间隔 3 天、最长 68 天,更新时间停在 10-24。 18
差的 9 次落在统计口径上:一家首页写的是「已验证的全局重置」,另一家只写「重置次数」。拿这个数去推「今天会不会重置」都不准,自己的 /status 更实在。 1718
窗口里 Tibo 最新一帖是北京 11:41,与重置无关;站点信号区挂的仍是 10-22 那条。 19

六、四仓与其余

仓库当前版本发布(北京)本窗口动作
sub2apiv0.2.18 2010-23 15:44两张修单各补提交,均未合并
CLIProxyAPIv8.0.41 2110-24 02:25零新提交,四张老单被重基
codex-proxyv2.1.20 2210-23 03:56零条目
codex2apiv3.1.1 2310-17 05:42零条目
CLIProxyAPI 有四张老单在北京 11:13–11:16 之间被同一批重基:#6497、#6245、#6167、#5511,作者都是 ggbdpq。 2425
看提交时间会以为它们今天动了;头提交的作者日期还是 9 月与 10 月上旬,改的只是提交时间。这属于重基:四张单里的改动一行没多。 25
三家状态页都干净。OpenAI 全绿、没有非 operational 的组件,最近一条事件在北京 07:43 恢复。 26
Claude 凌晨那两条事件分别在北京 08:11 与 08:37 恢复。 27
Google Cloud 最近一条更新仍在 10-22。 28

七、还没闭合的

两单会不会合。#8161 挂了 8 天,今天补的是校验顺序;#8309 的 mergeable 还是 unstable。 1012
被 400 打回的那类请求,今天只能靠客户端显式写 effort 绕开。 6
那次承诺的重置什么时候到,以及两站的计数差下一次会不会有人解释。 1718

References

  1. 1
    issue 56634:周额度数分钟掉 9 个点

    github.com

  2. 2
    v0.2.18 的策略应用点

    github.com

  3. 3
    v0.2.18 的绑定条件

    github.com

  4. 4
    缺省档位怎么来的

    github.com

  5. 5
    gpt-6.1-sol 支持的档位

    github.com

  6. 6
    issue 8156:配了映射仍回 400

    github.com

  7. 7
    平台清单里带 CNProvider 的四个

    github.com

  8. 8
    v0.2.18 在这里分流

    github.com

  9. 9
    issue 8308:国产目标上映射被静默跳过

    github.com

  10. 10
    PR 8161:给合成的档位套上映射

    github.com

  11. 11
    PR 8161 的实际改动

    patch-diff.githubusercontent.com

  12. 12
    PR 8309:把策略铺到国产目标

    github.com

  13. 13
    PR 8309 的实际改动

    patch-diff.githubusercontent.com

  14. 14
    sub2api 主干提交时间轴

    github.com

  15. 15
    issue 56646:桌面端持续 at capacity

    github.com

  16. 16
    推文 2113492502355562875

    x.com

  17. 17
    codex-reset 首页

    codex-reset.com

  18. 18
    opentherank

    opentherank.com

  19. 19
    codex-reset 事件接口

    codex-reset.com

  20. 20
    v0.2.18

    github.com

  21. 21
    v8.0.41

    github.com

  22. 22
    v2.1.20

    github.com

  23. 23
    v3.1.1

    github.com

  24. 24
    PR 6497

    github.com

  25. 25
    PR 5511

    github.com

  26. 26
    OpenAI 状态汇总

    status.openai.com

  27. 27
    Claude 事件列表

    status.anthropic.com

  28. 28
    Google Cloud 状态

    status.cloud.google.com

中
中转站风控与更新速报@Karuha

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • 一、两类 Messages 请求不走你配的上限
  • 二、两张修单今天各补一笔,仍不在任何一版里
  • 三、今天能做的三步自查
  • 四、上游那两条报障
  • 五、Codex 重置:承诺过点约 11 小时
  • 六、四仓与其余
  • 七、还没闭合的