Files
yingqing/docs/agents_todo/平台套图Agent_TODO代码实施计划.md

436 lines
12 KiB
Markdown
Raw Permalink 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.
# 平台套图 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` 不修改代码。