Files
pikasTech-unidesk/docs/MDTODO/sub2api-upstream-reliability.md
T
Codex 4dde098329
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / platform-infra-gitea-nc01- Success
Pipelines as Code CI / unidesk-host- Success
docs: 记录 Sub2API 利润 CLI 优化
2026-07-14 18:12:35 +02:00

139 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sub2API 上游可靠性
本问题域持续跟踪 Sub2API 上游错误的真实归因、账号运行时可见性、受控调度缓解和用户侧错误隔离。配置事实以 owning YAML 为准,手工账号运行时配置通过受控 CRUD 显式管理。
## R1 [completed]
完善 Sub2API 上游错误归因与 runtime CRUD 可见性,并基于实际错误证据应用保守的临时不可调度策略,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R1_Task_Report.md)。
## R2 [in_progress]
在新观测窗口复核临时不可调度命中、内部换号和最终客户响应,按请求分母评估调优效果并识别仍会穿透的流式错误,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2_Task_Report.md)。
### R2.1 [completed]
增强 CLI 使用 Sub2API 原生 admin/ops 数据诊断请求错误、账号可用性、并发和 request trace,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.1_Task_Report.md)。
### R2.2 [in_progress]
在连续新窗口复核临时不可调度、failover、客户可见错误率和流式 degraded 请求,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2_Task_Report.md)。
#### R2.2.1 [completed]
溯源最近窗口客户可见错误请求,区分上游失败、切号耗尽、无候选和流式提交后错误并给出配置调优建议,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.1_Task_Report.md)。
#### R2.2.2 [completed]
执行客户错误调优:处理 gpt-5.4-nano 无候选,扩展 429 upstream rate limit 与精确 504 临时不可调度规则,并通过受控 runtime apply 下发和验证,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.2_Task_Report.md)。
#### R2.2.3 [completed]
将 runtime 精准 CRUD、批量操作、原生模型探测、客户可见错误溯源和基于真实证据的配置调优流程沉淀到 unidesk-sub2api skill,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.3_Task_Report.md)。
#### R2.2.4 [completed]
重新分析所有 Sub2API 分组最近的用户可见错误,并把 runtime errors 泛化为 all-groups 与精确 group 下钻;默认输出必须提供语义摘要、索引和渐进披露,禁止用手工 limit 规避输出问题,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.4_Task_Report.md)。
#### R2.2.5 [completed]
增强 Sub2API CLI 的纯分析能力:只读披露实际 OpenAI response-header timeout、TTFT 分位数、长等待请求和 failover 剩余时间窗,并使用原生 admin/ops 数据分析候选配置,不修改 Sub2API 配置、源码或运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.5_Task_Report.md)。
#### R2.2.6 [completed]
继续纯分析 Sub2API timeout 与 failover:按所有分组、模型、账号和请求类型定位超长 TTFT 与客户错误,区分响应头前等待、流式提交后失败和无候选,评估观测下限是否可能缓解且不做配置实验或运行面变更,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.6_Task_Report.md)。
#### R2.2.7 [completed]
按仓库 P0 拆分超过 3000 行的 `remote-python-sync.ts`,关联 [Issue #2026](https://github.com/pikasTech/unidesk/issues/2026):把大段内嵌 Python 按 trace、sync/validate 与 sentinel 职责迁入原生模块,单文件收敛到 2000 行以下,并保持受控 CLI 行为与只读诊断契约不变,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.7_Task_Report.md)。
#### R2.2.8 [completed]
增强 Sub2API CLI 的上游账号粒度质量分析与自动评分:使用原生 Ops 归因账号请求量、客户/上游错误、触发切号、切号结果、同账号重试、临时不可调度和首字延迟覆盖率/分位数,输出可解释评分、置信度和扣分原因;只做分析,不自动修改账号 runtime 或调度配置,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.8_Task_Report.md)。
#### R2.2.9 [completed]
重新抓取 PK01 Sub2API 最近 30 分钟所有分组的客户可见错误、上游错误、账号质量、切号恢复、临时不可调度和首字延迟,按完整账号名称报告主因;只做原生只读分析,不修改 runtime、YAML 或调度配置,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.9_Task_Report.md)。
#### R2.2.10 [completed]
只读专项调查 lyon9801 的近期 503 流式错误:增强 Sub2API CLI 同时采集账号 proxy 绑定、容器环境代理摘要、DNS/路由、连接与出网基础设施证据,结合真实 request trace 和源码链路区分 OpenAI 上游、PK01 网络、代理、超时或 Sub2API 转发问题;不发探针、不修改 runtime、YAML、代理或调度配置,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.10_Task_Report.md)。
#### R2.2.11 [completed]
只读复取并综合分析最近2小时所有 Sub2API 分组的客户可见错误、上游错误、账号质量、failover、候选耗尽和流式 degraded 情况,报告完整账号名称,不发探针且不修改 runtime、YAML、代理或调度配置,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.11_Task_Report.md)。
#### R2.2.12 [completed]
快速缓解账号 https://sub.yjxm1221.top plus 0.025 的 Input must be a list 客户可见400:在 owning YAML 模板加入精确400短语并保留该 runtime-manual 账号现有规则,通过精准 runtime CRUD dry-run、确认下发和短窗口只读复取验证当前请求能够冷却并切号,不泛化匹配其他400,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.12_Task_Report.md)。
#### R2.2.13 [completed]
向当前PK01全部非 lyon9801 OpenAI账号精准批量下发 codex-upstream-failover 统一临时不可调度模板:从runtime账号清单固定显式selector,排除lyon9801,先dry-run再confirm并逐账号对账,不修改分组、优先级、容量、proxy或凭据,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.13_Task_Report.md)。
#### R2.2.14 [completed]
由 Artificer 实现 Sub2API runtime 精准批量 CRUD 的命令内自动回读对账:confirm 后批量回读全部selector并输出write result、actual、reconciled、mismatch和部分写入摘要,避免外部逐账号get;关联 [GitHub issue #1998](https://github.com/pikasTech/unidesk/issues/1998),完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.14_Task_Report.md)。
#### R2.2.15 [completed]
继续只读分析统一非 auth 上游模板与超时预算的下一轮调优方案:交由独立 Artificer 调查 [Issue #1999](https://github.com/pikasTech/unidesk/issues/1999),基于下发后真实400切号成功、旧长请求context canceled、其他invalid input id与HTTP 200流式degraded证据,区分可安全泛化的精确模板、需要Sub2API源码能力和不应自动处理的客户参数错误,不继续盲目扩规则,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.15_Task_Report.md)。
#### R2.2.16 [completed]
紧急只读追踪用户 mail0795336304@163.com 反馈请求卡住15分钟:定位用户ID、近30分钟请求、当前长请求/并发、request ID、账号与模型,区分排队、上游首字、流式间隔、代理网络或客户连接,不取消请求且不修改runtime、YAML、proxy或调度,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.16_Task_Report.md)。
#### R2.2.17 [completed]
复盘用户直接反馈的只读追踪过程并交由 Artificer 实现 [Issue #2000](https://github.com/pikasTech/unidesk/issues/2000):增加通用的一键用户追踪 CLI,以邮箱或用户ID关联请求空窗、用户/API Key并发、client/internal request ID、上游账号名称、proxy基础设施和证据化归因,采用Kubernetes列表风格与稳定ID渐进披露,减少手工API与重复trace调用,不改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.17_Task_Report.md)。
#### R2.2.18 [completed]
将 PK01 的 Sub2API 通过 owning YAML 从 v0.1.153 受控升级到 v0.1.155:只修改 PK01 target镜像版本,依次执行状态核对、plan、apply dry-run、镜像预拉、受控apply、状态与公开健康验证,保持账号池runtime和Codex pool配置原样,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.18_Task_Report.md)。
#### R2.2.19 [completed]
交由 Artificer 实现 [Issue #2004](https://github.com/pikasTech/unidesk/issues/2004):增强 Sub2API CLI 拉取 v0.1.155 原生智能诊断与渠道监控状态,泛化所有分组/渠道概要和指定对象下钻,以Kubernetes列表风格呈现TTFT、上游与客户错误率、原生建议和证据边界,以及7/15/30天渠道运行状态、平台/模型、对话延迟、端点PING、可用率、最近记录和刷新事实,使用稳定ID渐进披露,不重算第二套诊断且不修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.19_Task_Report.md)。
#### R2.2.20 [completed]
快速缓解错误 #17440:基于 request e5c08dde-9e60-4a14-9458-5574cec00b65 的真实链路,将精确短语 Input must be a list 补入通用 504 临时不可调度规则,对全部非 lyon9801 账号精准批量 dry-run、确认下发和自动回读对账,不改容量、优先级、代理或 Sub2API 源码,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.20_Task_Report.md)。
#### R2.2.21 [completed]
交由 Artificer 实现 [Issue #2013](https://github.com/pikasTech/unidesk/issues/2013):定义并实现 Sub2API P0/P1/P2 故障快速查询 CLI,P0 为上游故障穿透客户,P1 为首字延迟偏高且普通与 compact 分开统计并突出极端离群,P2 为上游错误率偏高;支持所有分组概要与按等级、分组、账号名称、模型、请求类型、稳定 request ID 下钻,默认 Kubernetes 列表风格和固定分页,不靠手工 limit,不修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.21_Task_Report.md)。
#### R2.2.22 [completed]
主代理只读追踪客户错误 #17490request ID 4eb9a84b-7346-47a8-bb66-fb7b44317279):使用 Sub2API 原生 Ops、trace、账号完整名称、failover/retry/临时不可调度和近期窗口证据,定位账号 https://sub2.pokexiao.com plus 0.03 的同步502为何穿透客户,区分候选耗尽、context取消、不可重试阶段或模板未命中;先调查,不盲目新增generic 502规则,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.22_Task_Report.md)。
#### R2.2.23 [completed]
交由 Artificer 实现 [Issue #2016](https://github.com/pikasTech/unidesk/issues/2016):增强 CLI 对 Sub2API 内部账号/渠道监控的原生只读访问,展示探测 timeout、cadence、阶段耗时、账号选择、上游首字节、切号/重试和最终状态,支持所有监控对象概要与稳定 ID 下钻,默认 Kubernetes 列表风格且不靠手工 limit;不修改运行面、不发新探针,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.23_Task_Report.md)。
#### R2.2.24 [completed]
只读调查错误 #17511request ID `f7ff0efe-64d3-4dd7-8716-20bdfc3a2f90`)为何上游 502 后未成功切号,重建流式请求的账号选择、首字节、响应提交、failover、排除列表、context deadline 与最终客户错误链,并与内部 monitor 请求 #17490 对照,不修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.24_Task_Report.md)。
#### R2.2.25 [completed]
将 PK01 Sub2API 从 v0.1.155 受控回退到 v0.1.147:只修改 owning YAML 版本事实,在最新 master 的独立干净 worktree提交并通过受控 GitHub PR 合并,随后使用原 platform-infra Sub2API 交付入口完成 PK01 rollout,并核验实际镜像、版本、健康状态和原入口可用性,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.25_Task_Report.md)。
#### R2.2.26 [completed]
只读执行 PK01 Sub2API 最近4小时所有分组的上游账号质量评分:使用原生 Ops 账号请求量、客户/上游错误、切号、重试、临时不可调度、TTFT 和当前可用性,完整报告账号名称、评分、等级、置信度和扣分原因;兼容 v0.1.147,不修改 runtime、YAML 或调度配置,完成任务后将详细报告写入任务报告,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.26_Task_Report.md)。
#### R2.2.27 [in_progress]
交由 Artificer 实现 [Issue #2035](https://github.com/pikasTech/unidesk/issues/2035):增强 Sub2API 最近窗口账号质量分析,在同一分组、同一账号、同一窗口的一张 Kubernetes 列表中聚合展示评分/等级/置信度/失败率/TTFT 与请求数/TokenM/B/金额($);复用 v0.1.147 原生 admin usage 分页,JSON 保留精确值与来源,字段缺失不伪造为零,并修复 `--group <id>` 精确下钻错误,不修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.27_Task_Report.md)。
#### R2.2.28 [completed]
只读核查 PK01 Sub2API 当前全部 OpenAI 上游账号的实际 priority、分组成员关系、可调度与可用状态,并结合最近4小时分组内评分、失败率、TTFT、Token和金额给出分层的推荐优先级调整方案;报告完整账号名称,区分立即建议、观察建议和证据不足,不直接修改 runtime、YAML或调度配置,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.28_Task_Report.md)。
#### R2.2.29 [completed]
按 R2.2.28 的最近4小时评分与用量结论,精准调整 PK01 Sub2API 账号全局 priority:只更新明确列出的 runtime-manual 账号,变更前全量预检、失败自动回滚、变更后批量回读对账;不修改分组、容量、代理、凭据、状态、可调度或临时不可调度规则,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.29_Task_Report.md)。
#### R2.2.30 [in_progress]
交由 Artificer 实现 [Issue #2037](https://github.com/pikasTech/unidesk/issues/2037):为 Sub2API runtime 接入账号全局 priority 的单账号与精准批量 dry-run/confirm、所有 selector 预检、写后自动回读对账、所有权提示和 Kubernetes 列表/显式 JSON 输出;明确 lower-is-higher、没有分组优先级,兼容 v0.1.147,不自动调整评分、不部署或修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.30_Task_Report.md)。
#### R2.2.31 [completed]
只读复核 PK01 Sub2API 全局 priority 调整生效后约25分钟的新窗口:按全部分组和完整账号名称统计请求量、流量份额、客户/上游错误、失败率、TTFT、切号、Token与原生金额,并将账号名称尾部0.02/0.025/0.03/0.05/0.06/0.1作为上游采购成本权重综合评价当前分层,给出下一轮优先级建议;不修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.31_Task_Report.md)。
#### R2.2.32 [completed]
按用户确认的经济口径修正 PK01 Sub2API runtime:将账号15名称从lyon9801标注为lyon9801 0.10,并按净售价0.10减采购成本重新调整全局priority,将零毛利账号15从1降至20、将成本0.02且近期表现良好的账号35从20升至5;执行前校验名称/旧值,变更后回读,不修改分组、容量、代理、凭据、状态、可调度或临时不可调度规则,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.32_Task_Report.md)。
#### R2.2.33 [completed]
实现 YAML-first 的 Sub2API 利润统计 CLI:默认读取最近24小时原生 admin usage,按账号完整名称聚合请求、TokenM/B)和 actual_cost,并依据 YAML 声明的盈利分组、自用分组、净收入系数与账号名称尾部采购成本系数,输出不扣除自用成本和扣除自用成本两种利润口径;缺失成本或未分类流量必须标记 partial,默认 Kubernetes 列表风格、显式 --json 保留精确值,兼容 v0.1.147,不修改 runtime,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.33_Task_Report.md)。
#### R2.2.34 [completed]
纠正 Sub2API 利润 CLI 的币种与倍率语义:原生 actual_cost 是标准 API 美元计费基数,售价 0.10 和账号名称尾部 0.02/0.025/0.03/0.05/0.06/0.10 都表示每 1 美元标准 API 计费对应的人民币单价;将 YAML、字段名、Kubernetes 表格、JSON 和 skill 统一改为 CNY per API USD,重新统计最近24小时人民币利润,不做汇率换算且不修改 runtime,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.34_Task_Report.md)。
#### R2.2.35 [completed]
只读计算 PK01 Sub2API 最近7天成本与利润:使用已修正的 CNY per API USD 口径,从原生 admin usage 按完整账号名称聚合标准 API 美元计费基数、人民币收入和人民币采购成本,分别给出不扣除自用成本与扣除自用成本的人民币利润;不修改 runtime,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.35_Task_Report.md)。
#### R2.2.36 [completed]
由 Artificer 优化 Sub2API 利润统计 CLI 的单次聚合与渐进披露,减少 7 天成本利润计算中的重复查询、外部解析和手工算术;默认 Kubernetes 风格与显式 JSON 都应直接保留紧凑汇总,账号明细语义化下钻,缺失历史成本时输出参数化利润公式;不修改 runtime 或部署,关联 [GitHub issue #2043](https://github.com/pikasTech/unidesk/issues/2043),完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.2.36_Task_Report.md)。
### R2.3 [completed]
调查并收敛 Sub2API 原生 system-log 索引未保留策略事件的能力缺口,关联 [Issue #2027](https://github.com/pikasTech/unidesk/issues/2027),完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.3_Task_Report.md)。