docs: 添加双 Agent 协同实施方案

This commit is contained in:
hh
2026-07-17 18:14:54 +08:00
parent 2daf9b77e9
commit bfca22677c
4 changed files with 2829 additions and 0 deletions
@@ -0,0 +1,435 @@
# 平台套图 Agent TODO 代码实施计划
> 依据:`07_平台套图Agent_协同引入实施方案.md`
> 原则:一步一确认、公共运行时复用、先拆规则再编排、先人工采用再自动质检补图。
> 本文件是实施清单,不代表已经修改代码。
## 1. 强制确认机制
每一步必须经过两次用户确认:
```text
开始前:“确认开始 Pxx”
→ 只实施 Pxx
→ 汇报代码、migration、测试、风险、回滚
完成后:“确认完成 Pxx,进入 Pyy”
```
未收到完成确认,禁止实施下一步。禁止一次确认连续做多个步骤。
状态:`[ ] 未开始``[~] 实施中``[?] 待验收``[x] 已验收``[!] 阻塞`
## 2. 前置依赖
- [ ] 脚本计划 `S03` 的 AgentRun/AgentStep/AgentArtifact 已验收;
- [ ] 脚本计划 `S04` 的工具协议、权限、预算、恢复已验收;
- [ ] 若尚未建设,必须先单独确认实施 S03–S04;
- [ ] 平台套图不得复制另一套 Agent 基础设施。
## 3. 实施顺序
```text
P00 业务决策
→ P01 抽离平台规则
→ P02 抽离 PromptCompiler 和单图 Spec
→ P03 修正旧链路可追溯性
→ P04 建套图领域版本
→ P05 建 Context 与参考图硬门槛
→ P06 建确定性 KitPlan
→ P07 建模型路由和生成工具
→ P08 建 Coordinator MVP
→ P09 建 API 与前端采用
→ P10 建确定性质检
→ P11 接 OCR/视觉评估
→ P12 接单槽定向补图
→ P13 Handoff、回归和灰度
→ P14 旧编排退役评估
```
## 4. TODO 明细
### [ ] P00:确认平台套图首期口径
确认项:
- [ ] MVP 首期只做 4 张,还是直接支持 4/8/12;
- [ ] 各数量的必需槽位;
- [ ] 平台规则版本和首期平台范围;
- [ ] 无真实商品图必须阻塞;
- [ ] 文字政策:no_text/minimal/short_labels
- [ ] 用户明确模型与自动路由规则;
- [ ] 单图和整套预算;
- [ ] 首期人工采用,不自动发布;
- [ ] OCR/视觉评估放 MVP 后实施。
代码范围:无业务代码修改。
启动口令:`确认开始 P00`
完成口令:`确认完成 P00,进入 P01`
---
### [ ] P01:抽离平台规则服务
依赖:P00。
目标:只解耦,不改变旧 `mode=cover` 结果。
代码 TODO
- [ ]`services.py` 封装 `_PLATFORM_NAMES`
- [ ] 封装 `_PLATFORM_COVER_BLOCKS`
- [ ] 封装 `_COVER_SLOTS`
- [ ] 封装低密度、背景、负面规则;
- [ ] 新建 `PlatformRule/v1`
- [ ] 新建 `PlatformRuleProvider.get()`
- [ ] 记录 rule_version
- [ ] 旧提示词函数改为调用 Provider;
- [ ] 不迁数据库、不改页面。
测试:十个平台映射、规则快照、未知平台、旧 prompt 等价。
完成标准:平台规则有单一读取接口,旧行为不变。
启动口令:`确认开始 P01`
完成口令:`确认完成 P01,进入 P02`
---
### [ ] P02:抽离 PromptCompiler 与单图 Spec
依赖:P01。
目标:让规划与 Worker 执行解耦。
代码 TODO
- [ ] `PlatformKitSlot/v1`
- [ ] `ImageGenerationSpec/v1` 公共 Schema
- [ ] `compile_platform_image_spec()` 纯函数;
- [ ] 明确 references、roles、ratio、prompt、negative、rubric
- [ ] 编译结果不查库、不调用模型;
- [ ]`enqueue_standalone_images()``enqueue_standalone_image_spec()`
- [ ] Worker 优先执行已编译 spec
- [ ] 旧 cover 请求通过 legacy adapter 生成相同 spec
- [ ] 不新增 Agent Coordinator。
测试:Prompt 黄金快照、ratio 尺寸、reference 顺序、旧 cover 回归、重复 spec 幂等。
完成标准:单张平台图可由完整 spec 独立提交。
启动口令:`确认开始 P02`
完成口令:`确认完成 P02,进入 P03`
---
### [ ] P03:修正旧链路可追溯性和禁止隐式问题
依赖:P02。
目标:先修数据基础,不启用 Agent。
代码 TODO
- [ ] Asset metadata 增加 platform_id、slot、attempt、rule_version
- [ ] AITask 保存最终模型、最终 prompt/spec
- [ ] 纯文本调用明确传 ratio/size
- [ ] Agent 模式预留 `allow_text_fallback=false`
- [ ] 旧模式保持兼容但记录 fallback_reason
- [ ] platform_id team/输入校验;
- [ ] 前端展示实际模型;
- [ ] 不删除旧批次。
测试:metadata、比例、模型追溯、旧资产序列化、轮询结果。
启动口令:`确认开始 P03`
完成口令:`确认完成 P03,进入 P04`
---
### [ ] P04:建立 PlatformKitVersion/Item
依赖:P03。
代码 TODO
- [ ] `PlatformKitVersion` 模型和状态;
- [ ] `PlatformKitItem` 模型和状态;
- [ ] product/platform/version/plan/hash/run 字段;
- [ ] slot_id/order/goal/selected_asset/task/attempt/report
- [ ] 唯一约束和索引;
- [ ] Serializer 和只读查询服务;
- [ ] 采用事务服务;
- [ ] migration 正反向验证;
- [ ] 不改变 Asset 真相源。
测试:版本、槽位唯一、跨团队、采用事务、删除保护。
完成标准:能保存空计划和槽位,但尚不生成图片。
启动口令:`确认开始 P04`
完成口令:`确认完成 P04,进入 P05`
---
### [ ] P05ContextSnapshot 与真实参考图硬门槛
依赖:P04。
代码 TODO
- [ ] `PlatformKitAgentRequest/v1`
- [ ] `PlatformKitContextSnapshot/v1`
- [ ] 商品和卖点 team 校验;
- [ ] 真实上传图优先并排除 AI 图;
- [ ] 用户选图需属于商品;
- [ ] 保存 asset/file checksum
- [ ] `NO_REAL_PRODUCT_REFERENCE`
- [ ] 无图时 waiting_user 且不创建图片 AITask
- [ ] snapshot hash/stale 检查。
测试:无图、真实图、AI 图、跨团队、文件删除、商品修改。
完成标准:不给模型调用,也能得到完整 Context 或明确阻塞原因。
启动口令:`确认开始 P05`
完成口令:`确认完成 P05,进入 P06`
---
### [ ] P06:确定性 PlatformKitPlan MVP
依赖:P05。
目标:先不调用文本 Planner。
代码 TODO
- [ ] `PlatformKitPlan/v1`
- [ ] 按 P00 数量生成稳定 slot_id
- [ ] hero/scene/selling/detail/multi/promo 策略;
- [ ] 卖点 ID 分配;
- [ ] 每槽 goal/composition/text_policy/reference_roles/acceptance
- [ ] PlanValidator
- [ ] 必需槽位、数量、重复、卖点、文字、ratio 校验;
- [ ] 8/12 张不得简单复制完全相同槽位;
- [ ] 保存 plan/rule version。
测试:各数量、各平台、无卖点、多卖点、未知平台、重复槽位。
完成标准:规则即可生成可执行、可解释的套图计划。
启动口令:`确认开始 P06`
完成口令:`确认完成 P06,进入 P07`
---
### [ ] P07:模型能力路由和图片生成工具
依赖:P06。
代码 TODO
- [ ] `ModelRequirement`multi_reference/count/ratio/quality
- [ ] 包装现有 `resolve_image_model()`
- [ ] 明确模型能力不满足时停止;
- [ ] 禁止丢商品图后纯文降级;
- [ ] `quote_image_spec.v1`
- [ ] `generate_image_spec.v1`
- [ ] 每槽一条 AITask
- [ ] spec/idempotency/run/kit/slot 写入任务;
- [ ] 失败复用退款;
- [ ] 实际模型返回前端。
测试:Seedream/GPT、多参考、比例不支持、余额不足、重复提交、Provider 失败。
启动口令:`确认开始 P07`
完成口令:`确认完成 P07,进入 P08`
---
### [ ] P08PlatformKit Coordinator MVP
依赖:P07。
MVP 流程:
```text
collect_context
→ plan
→ validate_plan
→ quote
→ persist_kit
→ compile_specs
→ bounded_fan_out
→ wait_tasks
→ bind_assets
→ waiting_human
```
代码 TODO
- [ ] AgentRun(agent_type=platform_kit)
- [ ] 固定 DAG
- [ ] 同 Run 图片并发限制;
- [ ] 部分失败不取消成功槽;
- [ ] fan-in 和恢复;
- [ ] Item 状态与 AITask 同步;
- [ ] 取消后不创建新任务;
- [ ] 暂不自动质检、暂不补图;
- [ ] 不自动采用。
测试:正常、部分失败、断线恢复、重复 Worker、取消、预算不足。
启动口令:`确认开始 P08`
完成口令:`确认完成 P08,进入 P09`
---
### [ ] P09API 和前端人工采用闭环
依赖:P08。
代码 TODO
- [ ] 创建 PlatformKit AgentRun API
- [ ] Run/Step/Kit 查询;
- [ ] 补图前暂只支持手动 retry action
- [ ] 选择槽位候选;
- [ ] 整套采用 API
- [ ] 前端输入/计划/槽位进度;
- [ ] 实际模型与费用;
- [ ] 刷新恢复;
- [ ] feature flag
- [ ] legacy cover 入口仍可回退。
测试:team 权限、采用事务、页面恢复、前端 build、旧入口回归。
完成标准:MVP 可计划、生成、人工选择和采用。
启动口令:`确认开始 P09`
完成口令:`确认完成 P09,进入 P10`
---
### [ ] P10:确定性图片与整套质检
依赖:P09。
代码 TODO
- [ ] 文件可读、尺寸、ratio
- [ ] 文件重复/近重复基础检测;
- [ ] 槽位齐全;
- [ ] slot/order/count
- [ ] metadata/spec/asset 对齐;
- [ ] 整套缺图和重复构图 warning;
- [ ] `ImageEvaluationReport/v1` 基础结构;
- [ ] issue code/severity/repairable
- [ ] 不调用视觉模型。
测试:每项规则正反样例。
启动口令:`确认开始 P10`
完成口令:`确认完成 P10,进入 P11`
---
### [ ] P11OCR 与独立视觉评估
依赖:P10;用户单独确认评估模型和费用。
代码 TODO
- [ ] OCR Adapter
- [ ] 二维码、平台 Logo、乱码、价格和声明检查;
- [ ] 视觉评估 Tool
- [ ] 商品身份、构图、平台适配、槽位目标维度;
- [ ] 评估 AITask/费用;
- [ ] rubric/model/threshold version
- [ ] 规则 + OCR + 视觉结果汇总;
- [ ] 评估不可用时转 warning,不把图片删掉。
测试:mock OCR/VLM、错误码、超时、费用、低置信度。
启动口令:`确认开始 P11`
完成口令:`确认完成 P11,进入 P12`
---
### [ ] P12:单槽定向补图
依赖:P11。
代码 TODO
- [ ] issue code → RepairSpec
- [ ] 只修改相关 prompt 段;
- [ ] 每槽最多 2 attempts
- [ ] 只补 error 且 repairable
- [ ] 超自动预算先确认;
- [ ] 新候选不删除旧 Asset
- [ ] 补图后完整复检;
- [ ] 第二次失败停止;
- [ ] 前端展示修复原因和新增费用。
测试:变色、错字、裁切、重复构图、预算不足、达到上限。
启动口令:`确认开始 P12`
完成口令:`确认完成 P12,进入 P13`
---
### [ ] P13Handoff、完整回归和灰度
依赖:P09;如启用质检补图则还依赖 P10–P12。
代码 TODO
- [ ] `PlatformKitHandoff/v1`
- [ ] AgentArtifact 关联 Kit/Item/Asset/报告;
- [ ] adopt 前 snapshot hash
- [ ] 全流程集成测试;
- [ ] 指标:首轮通过率、补图率、采用率、费用、耗时;
- [ ] 团队 feature flag
- [ ] 发布和回滚说明;
- [ ] legacy 继续保留。
灰度每一级都需用户确认。
启动口令:`确认开始 P13`
完成口令:`确认完成 P13,进入 P14`
---
### [ ] P14:旧平台套图编排退役评估
依赖:P13 稳定运行约定周期。
先评估:旧 API 调用、活动 batch、历史资产、Agent 指标、回滚能力。
允许删除:旧页面直接循环批次、`index % 6` 编排、旧 cover 薄适配。
禁止删除:平台规则、PromptCompiler、图片 Worker、AITask、Asset、Billing、Provider。
启动口令:`确认开始 P14 评估`
删除口令:`确认执行旧平台套图编排下线`
完成口令:`确认完成 P14`
## 5. 每步完成汇报模板
```text
步骤:Pxx
状态:等待用户验收
本步改动文件:
数据库 migration
行为变化:
测试命令与结果:
未通过项/风险:
回滚方式:
明确未实施的后续步骤:
请确认:“确认完成 Pxx,进入 Pyy”
```
## 6. 推荐首次执行
先检查公共基础设施依赖,然后从 `P00` 开始。没有 `确认开始 P00` 不修改代码。