5.1 KiB
5.1 KiB
R2.2.8 任务报告
结果
已增强 Sub2API 只读诊断 CLI,按分组和上游账号归因近期请求质量。默认输出保持 Kubernetes 风格表格,完整展示账号名称和账号 ID;显式 --json 提供紧凑语义摘要,整组概要通过 --account 和 request ID 渐进下钻。未修改 Sub2API runtime、YAML、账号调度或源码运行面。
数据口径
- 成功请求、流式请求和账号 TTFT 来自 Sub2API 原生
/api/v1/admin/usage。 - 客户可见错误来自原生
/api/v1/admin/ops/request-errors。 - 切号、同账号重试、临时不可调度和
forward_failed来自原生 system-log 索引,并自动分页读取近期窗口。 - 失败分子按 request ID 去重;账号 attempts 是上游账号尝试次数,不等于客户请求数,切号时一个客户请求可以计入多个账号。
- 评分权重为可靠性 60、TTFT 25、当前可用性 15,置信度单独计算。TTFT 少于 5 个样本不按零时延计分。
- 至少 10 次尝试且至少 5 个 TTFT 样本时,才把高分映射为 A-D 可比较等级;样本不足的偶然高分标记为
insufficient。至少 10 次尝试且评分低于 60 时保留 E,避免高失败率被证据不足掩盖。 - 账号名称是人类可读运维信息,报告和 CLI 完整输出;API Key、token、credentials 继续脱敏。
近期只读快照
采样窗口为 2026-07-14 05:32-05:35 UTC 向前 60 分钟,滚动值会随请求变化。
- 所有分组共 530 个请求、13 个客户错误,客户错误率 2.45%,上游错误率 6.60%。
unidesk-codex-pool:约 219 个请求、7 个客户错误,客户错误率 3.20%,上游错误率 13.24%,队列为 0。https://api.iceiu.com plus 0.03(ID 33):89.9/B/healthy,高置信;172 次尝试、3 次失败,失败率 1.74%,TTFT P95 42.87 秒;有 3 个forward_failed,未形成客户错误。https://sub.yjxm1221.top plus 0.025(ID 27):15/E/poor,中置信;39 次尝试、26 次失败,失败率 66.67%,TTFT P95 202.12 秒;23 个切号请求,18 个恢复、5 个失败,3 次临时不可调度、3 个forward_failed、7 个客户错误。它是该分组近期客户可见错误的主因。https://ai.whistlelads.com plus 0.03(ID 28):20/E/poor,低置信;11 次尝试全部失败;11 个切号请求全部由后续账号恢复,12 次临时不可调度,未形成客户错误。说明现有切号有效遮蔽了该账号故障,但源账号质量差。https://sub2.pokexiao.com plus 0.03(ID 31):样本内 100 分,但只有 8 次尝试,等级为insufficient,不能据此认定为优质账号。https://api.lwylink.xyz pro 0.1(ID 29)和https://api.lwylink.xyz plus 0.05(ID 30)当前不可用且无近期成功证据。
自用:约 326 个请求、5 个客户错误,客户错误率 1.53%,上游错误率 2.15%,队列为 0。https://api.iceiu.com plus 0.03(ID 33):93.5/A/preferred,高置信;230 次尝试全部成功,TTFT P95 53.94 秒。https://sub2.pokexiao.com pro 0.05(ID 32):77.9/C/watch,中置信;33 次尝试、1 次失败,切号后恢复,TTFT P95 98.49 秒。lyon9801(ID 15):55.9/E/poor,中置信;34 次尝试、5 次失败,失败率 14.71%;5 次切号均未恢复,5 个客户错误,是该分组近期客户可见错误主因。
grok分组近期无请求和错误。- 两个活跃分组均无排队,当前证据不支持把降低全局上游并发作为主修复方向。
- 近期未观察到同账号重试事件;不能把“未观察到”解释为功能不存在。
CLI 行为
runtime errors --all-groups:所有分组概要和稳定分页。runtime errors --group <name-or-id>:分组内完整账号名称、评分、置信度、错误、切号和 TTFT 表格。runtime errors --group <name-or-id> --account <name-or-id>:单账号详细归因和 request index。- 整组
--json保留所有账号名称和质量概要;请求级证据通过--account下钻,不依赖手工limit。 - 单账号 JSON 实测 9248 字节、整组 JSON 实测 9058 字节,均低于 10240 字节输出预算;未出现
outputTruncated,也未暴露内部_requestIds。
结论与后续建议
主因不是池总并发或排队,而是少数上游账号的高失败率和长 TTFT:https://sub.yjxm1221.top plus 0.025 与 lyon9801 会把错误直接传给客户,https://ai.whistlelads.com plus 0.03 虽被切号遮蔽但持续消耗 failover。下一步若获准调优,应优先基于高置信/中置信评分调整账号优先级或临时不可调度,并继续保持 lyon9801 的既有例外约束;低置信账号先积累样本,不应自动调度。任何自动评分到 runtime 的闭环都应另行审批,本任务没有实施。
验证
bun --check scripts/src/platform-infra-sub2api-codex/runtime.tsbun --check scripts/src/platform-infra-sub2api-codex/remote-python-sync.tsbun --check scripts/src/output.tsbun test scripts/src/output.test.ts:2 pass,0 fail。git diff --check- PK01 原生只读命令已验证 all-groups、group 2、group 3、account 27、默认表格和显式 JSON。