资源组与请求诊断
并发、冷却、配额与请求记录的实际行为。
需要排查账号忙碌、冷却或会话路由时,再查这篇。只想查看一次失败调用,先看日常使用。
并发与会话绑定
客户端主动换成另一个模型、携带完整且不依赖上游状态的历史时,原账号不支持新模型可重新选择同一资源组内符合条件的账号;上游续接和同模型请求保持原绑定,详见模型路由。容量、冷却或账号故障本身不会触发自动换号。
新建订阅账号默认允许 30 个同时执行的模型请求,可在「账号 → 调度设置」调整为 1–1,000,升级保留已有账号的设置。这是本地容量控制,不代表订阅平台保证的并发能力。工作区总容量默认 128 个操作,包含等待请求和共享元数据读取,可通过启动配置调整。成员并发默认 10,可设为 0–1,000;0 表示不设成员并发限制。HTTP、SSE、压缩和 WebSocket 回合的账号槽位保持到响应关闭。降低上限不会中断已获准请求。
对话空闲或 WebSocket 连接保持打开,但没有正在执行的回合时,不占模型请求槽位。回答结束后随响应关闭释放;客户端取消 Codex 请求后,最多再读取 3 秒以收集最终用量,然后释放,仍受可配置的单次请求总超时(默认 30 分钟)和服务关闭约束。如果客户端只是没有继续聊天,却没有取消仍在执行的请求,槽位会保留到该请求结束或超时。
降低上限不会中断已获准请求。账号满载时,新请求最多等待 30 秒(默认),每个资源组最多同时等待 100 个请求(默认)。槽位释放或提高并发上限后,等待请求会重新尝试准入。队列满返回 429 account_queue_full,等待超时返回 429 account_wait_timeout,均提供 Retry-After: 1。排队和这些本地拒绝不会中断正在输出的请求,也不会增加上游账号的失败计数。
等待请求计入成员并发和工作区总限制,RPM 只计算一次;实际获准前,不持有账号槽位,也不暂占额度。发送前会重新检查资源组权限、模型策略、成员状态、密钥启用/撤销/过期状态、账号健康、订阅配额及个人额度。客户端取消或服务关闭会及时移除等待请求。等待期间不持有准入锁或数据库事务;槽位释放后,先记录已完成请求的用量,再允许下一个请求进入。
冷却仍返回 429 account_cooling 和 Retry-After,不进入队列。已绑定的对话只等待原账号,不会因繁忙、冷却或故障自动换账号;无会话绑定或新会话可以直接选择其他可用账号。订阅配额耗尽、成员/工作区限制和个人额度限制仍按原规则生效。
没有 Session_id 或非空 prompt_cache_key 的请求独立选择账号,不创建会话绑定。新会话在支持模型的可用账号间轮换。一个数据库只运行一个 SubLane 进程。
订阅账号调度与额度示例(合成数值):

冷却与恢复
整个账号的冷却用于上游 429。优先遵守 Retry-After,范围为 1–3600 秒;缺失或无效时使用可配置的回退时间,默认 5 秒。凭据刷新失败有独立退避。请求超时、HTTP 408 和原因未知的网络失败不会使整个账号冷却。
明确的上游 5xx 与无效、异常中断的响应流按「账号 + 模型」累计。默认两分钟内三次逻辑失败后,对该模型冷却 10 秒,继续失败逐步延长,最多五分钟。阈值、计数窗口和初始冷却时间可配置;阈值设为 0 可关闭暂时失败的模型冷却。其他模型继续可用。后续普通恢复请求成功后清理对应状态,迟到的旧请求不能清除新失败;Antigravity 的结构化模型限流仍按原有范围恢复。
在收到成功响应之前,明确的 HTTP 408、500、502、503、504 可在原账号上最多重试两次,并使用有界退避。每次重试重新检查成员、密钥、资源组与模型策略、配额、账号状态和内容规则。一个逻辑请求只持有一份槽位、请求 ID、历史记录和最终结算。上游要求较长等待时返回重试提示。原因未知的网络失败、400/401/403/429、已经接收的流和已输出内容不由此机制自动重放;原有明确 401 后的凭据刷新尝试仍独立处理。
HTTP SSE 默认每 10 秒发送注释心跳,同时继续读取上游事件。可选的流空闲超时只根据上游事件计时,下游心跳不会掩盖模型停滞;默认关闭。推理响应头等待默认五分钟,元数据保留较短超时,单次请求与 WebSocket 回合的总超时默认 30 分钟。配置项见部署说明。
「清除冷却」不会启用账号、更新授权或恢复订阅配额。已有对话保留原账号。账号和模型冷却持久化;升级会清理无法确定模型范围的旧账号级暂时失败惩罚,实际限流保持不变。
凭据刷新与恢复
Codex 凭据在距离过期两分钟内按需刷新。如果刷新暂时失败,只要旧访问令牌仍有超过 30 秒的有效期,且未被上游拒绝,请求就可以继续使用它;有效期会在刷新尝试结束后重新检查。Claude 和 Antigravity 保持原有有效期要求。
同一账号共享刷新退避:依次等待 30 秒、1 分钟、2 分钟、4 分钟,之后最多 5 分钟。OAuth 接口要求更长的 Retry-After 时会遵守,上限一小时。等待结束后,由后续凭据读取或模型请求触发重试,不新增后台轮询;其他账号各自独立计时。
没有可用令牌时,模型请求返回 503 account_refresh_failed 和 Retry-After。刷新失败不会累计模型调用冷却惩罚;刷新成功或重新授权后清除刷新退避。退避时间保存在进程内,上游拒绝记录则随凭据加密保存,重启不会让被拒绝的旧令牌重新获得回退资格。
Codex 令牌接口只有返回 invalid_grant、refresh_token_reused 等明确凭据错误时,才会标记需要重新授权;未知的 HTTP 400/401、代理错误页面或共享 OAuth 客户端配置错误本身不会触发该标记。刷新后的令牌仍被模型接口拒绝时,依然要求重新授权。恢复过程中已有对话继续绑定原账号。
配额感知
Codex、Claude 和 Antigravity 模型请求会触发共享后台配额读取,调度不等待这次网络调用。Codex 和 Claude 只有在新鲜主订阅限额明确耗尽时,才排除新选择;Antigravity 只限制与请求原生模型精确匹配的额度,并识别 SDK 思考等级后缀,其他模型不受影响;未知、过期或已经重置的数据不被当成零配额。新鲜窗口最多 2 分钟,可能被重置时间缩短。
绑定账号或所请求的 Antigravity 模型额度耗尽时,返回 403 quota_exhausted,仍不迁移对话。快照过期或到达重置时间后重新检查,不保证此时配额已经恢复。Claude 账号可因主额度耗尽被排除;Antigravity 的单个模型耗尽不影响其他模型或整个账号。
额度使用进度
快照新鲜且已知周期长度、重置时间时,额度行会展示相对均匀使用进度的差异。例如,周期过去一半时已用 70%,表示比均匀进度快 20 个百分点。比较始终以最后一次观测时间为准,不会因为浏览器时间推进就让旧数据看起来更充裕。
展开进度说明可查看含义。快照过期、刷新失败、重置时间已过或周期信息不完整时,不展示进度。供应商周期可能滚动或重置,所以这仅供参考,并非耗尽时间预测,也不改变额度准入或账号调度。
请求记录
「常规 → 请求」仅显示本人记录;「管理 → 全部请求」供管理员排查。可按结果、模型、密钥、请求 ID 和时间筛选,管理员还能按成员与订阅账号筛选。每页最多 50 条,保留最近 7 天且最多 5,000 条。
记录包括耗时、结果、脱敏错误码、上游 HTTP 状态及上游报告的 token 数,不记录提示词、响应正文、原始错误、IP、凭据或会话标识。认证失败、进入网关前的请求校验失败、全局准入拒绝与元数据查询不计入模型调用记录。
服务端生成 req_… 请求 ID,HTTP 返回 X-Request-ID,WebSocket 事件附带 request_id。使用该 ID 对照客户端报错与服务端记录。HTTP 200 不一定意味着流最终成功,应同时看结果字段。
「首次输出」是网关开始处理到首个非空文本、推理或工具参数增量的时间,包含排队与上游等待;不是浏览器渲染时间。缺失 token 数保持未知。缓存命中率是缓存输入 token 占全部输入 token 的比例,不是命中缓存的请求比例。
个人请求诊断示例(合成记录):

长期汇总与成员限额见 团队用量与限额。
已记录的路由说明
点击请求开始时间,在详情中查看此请求最后一次路由尝试。说明区分保留会话绑定、父会话偏好、均匀轮转和剩余额度加权轮转,并展示最终候选数量,以及因模型支持、策略、额度、冷却、容量或资源不可用而排除的汇总数量。它记录调用当时的决策,不会按资源当前状态重新推断。
旧记录及进入路由前被拒绝的请求没有已记录说明。个人请求继续隐藏订阅账号身份,说明不包含候选账号身份、凭据或请求响应正文。选中资源不代表生成最终成功;已有会话的绑定规则保持不变。
模型级限流
只有 Antigravity 返回的结构化限流信息中,错误域、原因和模型都与当前请求匹配时,才缩小到模型范围。信息不足的 429 继续按整个账号冷却处理。模型限制在重启后保留,并绑定当前账号生命周期;重新授权、停用后启用和手动清除冷却会使旧状态失效。
模型冷却返回 429 model_cooling,上游原始模型限流返回 429 model_rate_limited,并保留有界重试提示。其他模型继续可用,已有会话仍绑定原账号。冷却结束后,同一模型最多让一个正常请求尝试恢复,不额外发送推理探测。旧请求或其他模型的成功不能清除新限流;写入失败时,当前进程仍保留限制,并记录持久化失败。
账号卡片显示受限模型数量,整个账号仍可参与其他模型调度。在“调度设置 → 清除冷却”中可以同时清除账号和模型冷却,不改变账号启用、授权和订阅额度。上游 HTTP 403 显示 upstream_forbidden,不会笼统提示需要重新授权。
Codex 自动审查
对于标记为 guardian 或 review 的 codex-auto-review 请求,一致的父线程元数据可用于优先选择父对话的账号,查找范围限于同一认证用户和资源组。已有子会话绑定优先,候选账号仍须通过模型能力、权限、订阅配额、用量分配及容量检查。父线程信息缺失、冲突、含糊、过期或账号不可用时,回退到正常调度,不改动父对话绑定;父对话与审查任务的会话及缓存标识保持独立。HTTP 和 WebSocket 路由已使用合成数据测试,真实 Codex 客户端的接受情况仍未验证。
按剩余额度调度新会话
可选启动配置 SUBLANE_GATEWAY_QUOTA_WEIGHTED=true 按最紧张额度窗口的剩余百分比分配轮转份额。仅在最高优先级候选均来自同一受支持供应商、且都有新鲜完整数值窗口时生效;Antigravity 仅使用请求模型的额度。未知、过期、不完整或混合供应商快照沿用均匀轮转。
默认关闭,修改后需重启。已有会话、父会话账号偏好、模型权限、个人分配和并发检查仍优先执行。百分比仅为调度启发式,不代表不同订阅套餐具有可比较的绝对容量。