# R2.2.3 任务报告 ## 目标 把本轮形成的 Sub2API runtime 控制、原生数据诊断、客户可见错误溯源和配置调优方法沉淀到 `unidesk-sub2api` skill,避免后续代理重新试探入口、证据口径和下发边界。 ## 沉淀内容 ### Skill 触发与路由 - 扩展 skill description,使 runtime CRUD、精准批量、临时不可调度、上游错误率、客户可见错误、failover、模型映射和可用模型探测均能触发本 skill。 - `SKILL.md` 将 runtime 控制路由到 `references/codex-pool.md`。 - 客户错误溯源、错误率分析和配置调优路由到 `references/troubleshooting-accounts.md`。 - 同步更新 `agents/openai.yaml` 的简述和默认提示。 ### Runtime 控制合同 `references/codex-pool.md` 固化: - `runtime list|get|models|errors|apply|delete` 的职责。 - `get` 的脱敏 `modelMapping` 与临时不可调度规则可见性。 - `models` 区分配置模型和上游实时模型。 - `temp-unschedulable` 与 `model-mapping` 两类 CRUD。 - 单账号 `--account` 和显式精准批量 `--accounts`,禁止隐式 `all`。 - 批量选择预检、顺序写入、中途 admin API 失败后的逐账号对账要求。 - 默认 dry-run、`--confirm` 写入、紧凑批量输出和 Secret/credentials 脱敏。 - YAML 只保存通用模板和 managed 引用,runtime-manual 账号继续使用 CRUD,不为批量操作强行纳入 YAML。 - 文档命令与当前分支 CLI 不一致时按集成漂移处理,禁止退回手写管理 API。 ### 调优分析流程 `references/troubleshooting-accounts.md` 固化八步流程: 1. 用原生 dashboard、availability、concurrency、upstream errors 获取全账号同窗口事实。 2. 用有限 request id 和 `trace` 区分切号成功、候选耗尽、首次无候选和流式 degraded。 3. 临时不可调度规则必须同时有真实状态码与响应关键词证据。 4. 无候选先用原生模型接口核实能力,不猜测近似模型映射。 5. 按 YAML-managed 与 runtime-manual 所有权分别下发,默认一分钟冷却且无新证据不超过三分钟。 6. 不用当前并发快照证明错误时并发,降低并发只做有直接证据的有界对照。 7. 短窗口只做回归,效果等待新的完整窗口并综合请求分母、错误率、规则命中和切号结果。 8. 版本回退必须有源码差异或版本对照证据。 ## 实现边界 精准批量和 `runtime models` 已在 `/root/unidesk/.worktree/sub2api-error-tuning` 完成真实 PK01 验证。主工作区当前 runtime CLI 尚未语义吸收这部分实现,且同文件存在并行诊断增强修改,因此本任务没有覆盖主工作区 runtime 源码。skill 已加入 CLI 集成漂移防护,后续必须先完成语义合入,不能手写 Sub2API admin API 绕过。 ## 验证 - `quick_validate.py .agents/skills/unidesk-sub2api`:通过。 - `git diff --check`:通过。 - skill 主文件 46 行,三个核心文件合计 207 行,保持渐进披露。 - `agents/openai.yaml` 的 `default_prompt` 显式引用 `$unidesk-sub2api`。 - 未写入账号 ID、供应商名称、当前错误率或其他一次性运行数据。