Files
pikasTech-unidesk/docs/MDTODO/details/sub2api-upstream-reliability/R2.2.8_Task_Report.md
T

5.1 KiB
Raw Blame History

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.03ID 33):89.9/B/healthy,高置信;172 次尝试、3 次失败,失败率 1.74%TTFT P95 42.87 秒;有 3 个 forward_failed,未形成客户错误。
    • https://sub.yjxm1221.top plus 0.025ID 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.03ID 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.1ID 29)和 https://api.lwylink.xyz plus 0.05(ID 30)当前不可用且无近期成功证据。
  • 自用:约 326 个请求、5 个客户错误,客户错误率 1.53%,上游错误率 2.15%,队列为 0。
    • https://api.iceiu.com plus 0.03ID 33):93.5/A/preferred,高置信;230 次尝试全部成功,TTFT P95 53.94 秒。
    • https://sub2.pokexiao.com pro 0.05ID 32):77.9/C/watch,中置信;33 次尝试、1 次失败,切号后恢复,TTFT P95 98.49 秒。
    • lyon9801ID 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.025lyon9801 会把错误直接传给客户,https://ai.whistlelads.com plus 0.03 虽被切号遮蔽但持续消耗 failover。下一步若获准调优,应优先基于高置信/中置信评分调整账号优先级或临时不可调度,并继续保持 lyon9801 的既有例外约束;低置信账号先积累样本,不应自动调度。任何自动评分到 runtime 的闭环都应另行审批,本任务没有实施。

验证

  • bun --check scripts/src/platform-infra-sub2api-codex/runtime.ts
  • bun --check scripts/src/platform-infra-sub2api-codex/remote-python-sync.ts
  • bun --check scripts/src/output.ts
  • bun test scripts/src/output.test.ts2 pass0 fail。
  • git diff --check
  • PK01 原生只读命令已验证 all-groups、group 2、group 3、account 27、默认表格和显式 JSON。