# R2.5.11 任务报告

## 结论

- PK01 `unidesk-codex-pool` 最近 8 小时复核时约有 2295 个请求、32 个客户可见错误，客户错误率 1.39%。
- 32 个客户错误不是同一种账号故障：
  - 17 个为上下文窗口超限，属于客户输入约束，不扣账号分；
  - 2 个为 `glm-5.2` 未被分组账号支持，属于模型路由配置，不扣账号分；
  - 11 个为 `Upstream service temporarily unavailable`；
  - 2 个为 `Upstream request failed`。
- 状态码分布为 502 共 29 个、404 共 2 个、524 共 1 个；同步 30 个、流式 2 个。
- 账号 `https://sub2.pokexiao.com plus 0.03` 原始客户错误 25 个，其中 17 个上下文超限被排除，只有 8 个明确上游错误参与评分；修正后评分为 96.2/A，而不是此前把全部客户错误计入后的 88/B。
- 两个代表性同步 502 均已触发 failover，但请求上下文随后立即 `context canceled`，切号没有剩余执行窗口；这不是当前池并发不足，因为观察时容量 225、在用约 5、排队 0。

## Priority 调整

- 账号 27 `https://sub.yjxm1221.top plus 0.01` 保持 priority 1，兼顾最低成本和高质量。
- 账号 28 `https://ai.whistlelads.com plus 0.03`、31 `https://sub2.pokexiao.com plus 0.03`、33 `https://api.iceiu.com plus 0.03` 调整为 priority 5；账号 32 `https://sub2.pokexiao.com pro 0.05` 保持 priority 5。
- 账号 35 `https://api.recurdream.com plus 0.02` 调整为 priority 20：成本低，但样本少且存在已恢复的上游失败，需要继续观察。
- `lyon9801 0.10` 保持 priority 20，作为零毛利应急账号；账号 19 `https://sub.yjxm1221.top pro 0.06` 保持 priority 50。
- 全部写入均通过受控 runtime priority dry-run、confirm 和逐账号自动回读完成；未修改分组、容量、代理、凭据、状态、可调度或临时不可调度规则。

## 工具与 SKILL

- PR #2077 增加 runtime priority 单账号与精准批量 dry-run/confirm、仅字段更新和逐账号自动对账。
- PR #2082 将评分、请求量、Token、标准 API 美元计费基数、人民币采购倍率和人民币上游成本聚合到一次 `runtime errors --group ... --since ...` 查询。
- 可靠性扣分改为保守的明确归因：只计入原生 upstream 分类、稳定上游网关消息、failover 和 `forward_failed`；上下文、输入校验、模型路由、内部/业务、无账号和未知归因错误全部保留可见但不扣分。
- CLI 输出新增 `scoreableUpstreamErrorRequests`、`excludedNonUpstreamErrorRequests`、排除原因桶和账号成本流水表。
- `runtime.ts` 从超过 3000 行按输出投影、远端脚本头部和远端脚本尾部拆分，相关文件均低于 2000 行。
- `unidesk-sub2api` SKILL 已固化一次查询完成评分与流水分析、完整账号名称输出和非上游错误不扣分的规则。

## 验证

- 相关 TypeScript 文件 `bun --check` 全部通过，`git diff --check` 通过。
- PK01 真实只读回归中，账号 31 一次显示 624 请求、3.607M Token、56.3256 API USD、0.030 CNY/API USD 和 1.6898 CNY 上游成本。
- `runtime list --target PK01` 回归通过，账号名称、priority 和 runtime 状态正常显示。
- PR #2082 已合并，merge commit 为 `3464e93acd8a2d688933f03f0f78303cdf9c6c64`；该交付为 CLI/SKILL 轻量变更，`rollout=not-applicable`。
