evolve_report_v2.md 20 KB

Evolve 阶段报告 v2 — h3-video-prompt(SKILL.md v0.3.0 重训)

任务:T-mtadwn5l|训练人:innovator-evolver|日期:2026-08-26|Large Loop 重训 触发:真实生产场景 conv-mtabpqx9「你出去看看」人工评测 6/10 基准:train/digest/benchmark_v2.md(9 维度,D5/D7 硬错误下限,§3.3 阻塞产出评分规则) 场景集:train/digest/test_scenarios_v2.json(12 场景)

⚠️ 分数可比性说明(先说清楚):本报告的所有分数都来自 benchmark_v2.md(9 维度), 上一轮报告(evolve_report.md)的 97~100 分来自 benchmark_v1.md(6 维度)。两套基准的 维度数、权重结构、硬错误规则都不同,两组数字不能直接对比、也不能相减得出"提升了 X 分"。 本文第三节的表述以此为准。


一、最终分数表(12 场景,round 3 / SKILL.md v0.3.0)

场景 模式 处理 最终得分 说明
TS-01 T2VA 复用+v2 校验 98 D8=4(核心主体以标注假设推定、未反问,判断性扣分)
TS-02 I2VA 复用+v2 校验 100 —
TS-03 FL2VA 复用+v2 校验 100 指令行占位符 round 2 已修复
TS-04 L2VA 复用+v2 校验 100 同上
TS-05 Ref2VA 重新生成 100 素材职责分别声明 + 人物 Subject 具体可辨识特征
TS-06 Ref2VA 重新生成 100 3 图合并同一 Subject + 时间戳连续
TS-07 边界-信息不足 重新核对 100 判断性打分(反问交付,沿用 v1 报告 4.2 惯例)
TS-08 边界-矛盾指令 重新核对 98 D8=4(场景以标注假设推定、未反问,判断性扣分)
TS-09 Ref2VA 重新生成 100 §3.3 正确阻塞(scene 水印无清洗版)+ 附修正示范
TS-10 T2VA 重新生成 100 N/A 精确条件首次被真实触发并正确执行
TS-11 T2VA 重新生成 100 带感叹号对白逐字保真
TS-12 Ref2VA 重新生成 100 §3.3 正确阻塞 + 多 note 类型区分处理
总分 = 1196 / 12 → 平均 99.67(精确值 99.666...)
最低分 = 98(TS-01 / TS-08,均因 D8 判断性扣 1 分档)
低于 90 分的场景:无
算术回溯:每场景加权和 = Σ(维度得分/5 × 权重),D1=20、D2-D9 各 10,
         已逐一回溯核对(如 TS-01 = 20 + 10×7 + 8 = 98),明细见 round_outputs_v2.md。

本次评测对应的目标行为核查(task book §四 逐项)

要求 结果
TS-09 正确阻塞(不静默引用带水印 scene) ✅ 产出为阻塞报告,references 未含任何素材;附「修正示范」演示清洗版可用时的 4 条修正
TS-10 全程静音才写 overall_soundscape: N/A、配乐显式 N/A ✅ 两字段均显式 N/A,且画面细节未因静音而变空
TS-11 感叹号逐字保留 + 无高风险剧情推断 ✅ <d>[Chinese] 别过来!</d>;女孩反应中性/短暂/开放
TS-12 多 note 类型区分(A 无替代→阻塞 / B 有替代→选对版本 / C 正常引用) ✅ 三类分别处理,未一刀切全阻塞
TS-05/06 Ref2VA 重新生成 ✅ 六字段齐全、职责声明、特征具体
TS-07/08 重新核对 ✅ 通过,各有 1 处判断性扣分如实记录(仅 TS-08)/ 无违规(TS-07)
TS-01~04 复用并逐项过 v2 机械校验 ✅ 4 个场景 D9 全部通过,无需因新判据重新生成

二、是否达标结论

  • 90 分硬性部署线(passing_score):达到,最低 98 分,余量明显。
  • 95 分目标线:达到。
  • D1 封顶规则全程未触发:12 个场景 D1 全部 = 5(≥3 不封顶)。
  • D5/D7 硬错误下限全程未触发:唯一产出多句对白的 TS-11 写法正确(D5=5);两个触发阻塞条件的场景(TS-09/TS-12)都走了 §3.3 的"正确阻塞"路径,没有静默引用污染素材(D7=5)。
  • v0.3.0 重点修复的 6 类失败模式(F1-F6)在 12 场景层面均已覆盖且未再出现:F1→TS-09/TS-11,F2→TS-09/TS-12,F3→TS-09 修正示范,F4→TS-09 修正示范/TS-11,F5→TS-02/TS-08 校验点,F6→全部场景的第 11 项机械清单。

结论:v0.3.0 在 benchmark_v2 下达到训练收敛目标,建议部署。 但"达到收敛目标"≠"生产风险清零",局限见第五节——尤其 5.1(阻塞行为只有 1 条真实输入先例)和 5.3(评分者与执行者是同一个我)。


三、训练过程简述

本次任务是 Large Loop 重训的单轮收敛(Round 3,接在 v1 任务的两个 round 之后),不是多轮迭代: Digest v2 重新定义了基准与场景集之后,把 feedback_eval 评审给出的「七步工作流」整体落进 SKILL.md (v0.2.0 → v0.3.0,diff 见第四节),然后一次性对 12 个场景执行任务书规定的处理要求 (6 个重新生成 / 2 个重新核对 / 4 个复用+v2 校验),逐场景按 D1-D9 打明细分。全部产出与打分明细见 round_outputs_v2.md,逐条改动记录见 iteration_log.md Round 3 段。

两次独立复核(详见 iteration_log.md):

  1. 算术复核:对所有非满分场景手工重算加权和与封顶判断(TS-01/TS-08 的 98 分、 N/A 维度按 §3.1 记满分的处理),与自动打分一致,未发现封顶规则漏算。
  2. 跨引用复核:核对阻塞报告内"补齐后的预案"与 TS-09 修正示范实际使用的 references 顺序 / <Picture 1> 绑定 / <Subject 1/2> 绑定是否互相一致——一致(scene 单独成条作 Picture 1, npc/player 只作 Subject 外观来源),即"声称会怎么做"与"示范里真的怎么做"没有脱节。 这是 dream 经验里「单份日志撑不起 resume/reuse 场景,要加跨引用校验」在本轮的直接应用。

四、SKILL.md v0.2.0 → v0.3.0 改动 diff

来源:git diff system/agents/h3-video-prompt/train/evolve/SKILL.md(256 行插入 / 32 行删除)。 diff 属实可查,以下按节归类列出,不做选择性摘录。

# 章节 改动类型 内容
1 frontmatter 改+增 version: 0.2.0 → 0.3.0 (evolve iteration 3, Large Loop retrain);新增 v0.3.0_changes 说明字段(融入七步工作流 + 生产输入格式处理,对应 benchmark_v2 D5-D9)
2 §0(开头) 删 移除针对 agent.md 语言规则冲突的重复论述段(该冲突的处理立场已在 v1 报告 4.5 立案,正文保留官方规则的正面陈述即可)
3 §0.5 新增整章 「内部固定工作流:七步总览」+ 优先级顺序声明(先硬性格式和引用规范 → 再用户意图 → 再冲突与不可用素材 → 再可拍摄性 → 最后电影感);下设 §0.5.1 提取硬约束(7 项内部约束表)、§0.5.2 引用素材预检(不可用判定 + 5 条处理规则 + 阻塞报告应包含的 4 要素)、§0.5.3 输入冲突解决(5 级优先级表 + 最小改动范例"蜡烛保留但写明未点燃")、§0.5.4 扩写边界(四类内容分类表 + "一句台词时对方反应保持中性/短暂/开放")、§0.5.5 对白三条核心、§0.5.6 指向 §5.3、§0.5.7 输出前机械验收(11 项固定清单)、§0.5.8 阻塞交付形态(禁止报阻塞同时附带污染 Prompt)
4 §0.6 新增整章 生产输入格式处理:参考图菜单 {id, role, url, note} + 主体定义 + 立绘绑定规则 + 要拍的意图的结构示例,以及从这份输入构造最终产出的 6 步流程(references 按菜单顺序不重排 / 只有场景图单独成条作 <Picture 1> / 立绘只作 Subject 外观来源 / 逐条预检 note / 台词逐字进 <d> / 输出形状处理)
5 §1 Step 0 增 信息收集新增一项:逐条提取素材 note 的禁止/替换/版本要求;新增"核心主体未知优先反问,不要替用户编造外观"硬规则
6 §2 Step 1 增 模式判断新增一条:"生产输入菜单 + 主体定义 + 立绘绑定规则 → Ref2VA,不要降级当 I2VA 处理";边界引用从 §Step 8 改指 §10.1
7 §3.1 改 占位符硬规则与 §0.5.7 清单第 11 项建立联动(不再是孤立提醒)
8 §4.1 增 新增"生产输入格式下的绑定写法":<Subject N> 直接绑定立绘时用立绘做来源声明 + 从文字设定提取的具体特征(附白衣女子示例)
9 §5.1 增 矛盾运镜反例扩为两类:除"推进又环绕"外新增 static shot with small amplitude shake,给出两种干净的替代写法(remains locked off / shakes slightly while maintaining the same framing)
10 §5.3 新增节 物理与镜头一致性检查(六条):唯一光源真唯一 / 人物出现要有过程 / 道具位置不跨镜头跳变 / 运镜不互相冲突 / summary-retention-detailed 三字段讲同一件事 / Shot 编号与时间戳连续——对应七步工作流第六步与 benchmark_v2 D6
11 §6 增 对白语法新增一条硬规则:"不擅自添加/删除/改动标点——原句没有句号就不加句号,原句带感叹号就保留感叹号,不补省略号";说话方式/音色/动作永远写在 <d> 外
12 §7 改 N/A 精确条件规则不变,标注口径改为"v0.2.0 用原文纠正、v0.3.0 沿用"(措辞统一)
13 §8 增 元指令("越震撼越好""要有科技感""高大上")按具体性三问转译,不要照抄进最终提示词
14 §9 增 自查清单由 15 条扩到 20 条:新增第 16 条对白逐字标点、17 条素材 note 逐项预检与阻塞、18 条冲突按优先级最小改动、19 条未经授权的剧情结果、20 条输出前过 §0.5.7 十一项;自查顺序重排为"① 素材预检 → ② 冲突与扩写 → ③ 对白 → ④-⑩ 原有顺序 → ⑪ 机械验收"
15 §10 增 §10.1 补"核心主体未知时同此处理(反问),只有时长/情绪基调这类低风险参数可在标注假设下推定";新增 §10.3 素材阻塞(生产级),明确"这不是失败,是正确行为"
16 §11 增 交付清单新增:冲突取舍或阻塞要说明处理方式;交付前必须通过 §0.5.7 十一项机械验收(由"建议"升为"必须")
17 §12 增 来源标注补充 v0.3.0 依据:feedback_eval(2026-08-26)+ benchmark_v2

落地自检(对照 task book §六.1):七步工作流的 7 步在正文各有一个操作细则落点(§0.5.1 / §0.5.2 / §0.5.3 / §0.5.4 / §6 / §5.3 / §0.5.7);生产输入格式有专门小节 §0.6; 阻塞行为由 §0.5.2 第 2/3 条 + §0.5.8 + §10.3 三处共同固定,均为"必须/停止生成"的指令式写法, 不是可选项。


五、诚实的局限说明(沿用 v1 报告 4.x 的写法,不只报喜)

5.1 「阻塞」这一新行为的真实先例数量:1 条输入,0 次真实部署

本轮最重要的新行为(必需素材不可用 → 报告阻塞)是在 2 个场景(TS-09 / TS-12)上验证的:

  • TS-09 的输入确实取自真实生产对话(conv-mtabpqx9 的完整菜单原样重建),所以 "note 说要换清洗版 + 输入没给清洗版 → 应阻塞"这条判定有 1 条真实先例支撑。
  • TS-12 是 Digester 为了覆盖"A/B/C 三种 note 类型"而构造的场景,不是真实发生的请求。

更关键的是:v0.3.0 还没有在任何一次真实调用中跑过。也就是说,"正确阻塞"这个行为目前的 真实证据形态是"对过去那条失败案例的复盘式重放,结果正确",而不是"下一次同类真实请求不会再错"。 真实生产里还有两类变体本轮完全没测到:① note 说「必须替换」但菜单里有清洗版(应选清洗版继续, 不阻塞也不静默);② 多份素材同时不可用(部分必需、部分可选)。这两条的预期行为写在 §0.5.2 里了, 但没有对应的场景产出,属于规则已落地、行为未验证的状态。

5.2 构造性判据的真实先例数量:本轮仍为零

TS-09 附带的「修正示范」(假设清洗版可用时怎么写)是构造出来的展示产出,目的是让 F1/F3/F4 三类修复有真实的 Prompt 文本可核对,而不是只在打分表里说"会这么做"。它本身有效,但要如实记录:

判据 来源 性质
「油灯唯一光源 + 蜡烛写明未点燃」最小改动的实际产出效果 仅存在于 TS-09 修正示范 构造性(无真实生成)
「一句台词后反应中性/短暂/开放」的效果 仅存在于 TS-09 修正示范 / TS-11 半构造(TS-11 是完整生成的 Prompt,但场景本身也是 Digester 构造的)
「<d> 逐字 + 感叹号保留」 TS-11 实际产出 已验证(文本层面)
「带水印素材进 references 会被模型学进成片」造成的画面污染程度 从未观测过 无先例

最后一行值得单独强调:我们验证的是"不再把污染素材送进 references"(流程层),而没有验证 "如果不送,成片质量到底差多少"(效果层)——后者需要真实出片才能知道,本技能无法自证。

5.3 所有打分都是自评,评分者与执行者同为一人

12 个场景的 D1-D9 明细是我自己按 benchmark_v2 打的,没有第三方盲评,也没有把产出交给 org-innovator 复核后再计分。打分依据都已写明(每个维度带依据列),算术可回溯,但"这份依据算不算 命中 tier 4"这类判断仍是自我裁量的。上一轮报告中 TS-05 得 92 分那一档的自我扣分是可信的 (有具体缺陷文本佐证),同理本轮 TS-01/TS-08 的 D8=4 也是自我扣的——方向上应该是诚实的 (扣了分而不是白给),幅度上无法自证客观。需要 org-innovator 或独立评审抽 1-2 个场景复核 (建议抽 TS-09 和 TS-05),确认判分尺度没有系统性偏松。

5.4 本轮仍未被任何场景实际验证过的判据

benchmark_v2 的判据里,以下几条在本轮 12 个场景中没有任何一条被真实触发,因此 v0.3.0 是否能 在它们上得 5 分仍是未知数,只能确认"没有发生过反向证据":

未触发的判据 所属维度 为何没测到
人物无进入过程突然出现在画面里 D6 没有"人物凭空出场"的反例场景
道具位置跨镜头跳变 D6 没有多镜头道具连续性的专项场景
画外音 says in an off-screen voiceover + 嘴唇保持闭合 D5 没有画外音场景
多说话人 (S1)/(S2) 编号稳定且一一对应 D5 只测了单说话人(TS-11 仅 S1)
Ref2VA 的音频素材(音色锚定) D1/D7 12 个场景的素材全是图和视频,没有 audio 类素材
JSON 是否真的可解析、无 schema 外字段 D9 测试产出是 markdown 正文形态,没有走真实 {"prompt", "references"} 序列化通道
输入 schema 有错误通道时的正确用法 D7 两个阻塞场景碰到的都是"schema 无错误通道"分支
歌词/可见文字(招牌字幕霓虹灯字样)保留原语言 D5 没有歌词或画面文字场景

这些与 v1 报告 4.4(N/A 条件未被触发)性质相同,区别在于本轮已把其中最重要的一条(声音 N/A)用 TS-10 真实验证掉了,其余仍在清单上。建议 Digester 下一批场景优先补齐"双说话人 + 音频素材"这一组, 因为它们在 Ref2VA 场景里出现的概率不低。

5.5 一个尚未裁决的评分惯例问题(继承自 v1 报告 4.2,并在本轮被放大)

"N/A 按'未发生违规'记满分"这条惯例在本轮覆盖的范围比 v1 大得多:v1 只用于 TS-07 这一个反问场景, 本轮还覆盖了 TS-09/TS-12 两个阻塞场景的全部正文类维度。直接后果是12 个场景里 10 个拿了 100 分, 分数分布几乎没有区分度。这不是打分错误(§3.3 就是这么设计的),而是这套规则天然让"正确放弃"和 "完美达成"拿同样的分。如果 Digester 认为"一份高质量的阻塞报告"应该比"一份刚好合格但毫无亮点的 Prompt"得分更高(现在两者并列 100),或者反过来认为阻塞场景根本不该参与平均分计算,都需要拍板—— 本轮不改分数、不改 benchmark,只把这个结构性问题摆出来。

5.6 需要决策的事项:v0.2.0 存量产出与新规则的张力(TS-01 / TS-08 的那 1 分)

TS-01 和 TS-08 都是复用 v0.2.0 产出,各自因"核心主体/场景缺失时以标注假设推定、未反问"扣了 D8 的 1 分档。三点如实交代:

  1. 这个行为在 v1 基准下是完全合规的(当时的规则就是"能合理推断的直接采用并注明"),所以这两个 场景没有因 v0.2.0 写错了什么而失分,失分是因为 v0.3.0 把标准收紧了——这是基准演进的正常 现象,不是回归。
  2. 按任务书要求,这两条属于"复用 + 校验"范围,本轮没有用 v0.3.0 重写它们去抹掉这 1 分; 如果重写(像 TS-07 那样先反问),预计都能回到 100。
  3. 但这里有一个真正的开放问题需要拍板:"开箱视频"这种情形,到底应该反问还是合理推断后开工? 反问会让体验变重(一个纯娱乐请求被列 6 个问题),推定则有替用户编造主体外观的风险。v0.3.0 目前 选了"优先反问"的一侧。如果 org-innovator 认为低风险娱乐场景应当默认推定、只在歧义大时反问, 那么 §0.5.4 / §10.1 的这条收紧就要回调,且 TS-01/TS-08 的 D8 应当改回 5 分——这两种取向都有道理, 不是我能在训练里擅自决定的,所以分数维持现状。

5.7 仍然悬挂的两条旧账(承接 v1 报告 4.5 / 4.6,本轮未处理)

  • agent.md 的语言规则校准冲突:官方原文要求结构化字段一律英文、只对白/可见文字保留原语言, 而 system/agents/h3-video-prompt/agent.md "交付形态"一节写的是"跟随用户输入语言"。v0.3.0 正文 已删除对该冲突的重复论述(见第四节 #2),但 agent.md 本身没有被修改(超出 Evolver 职权范围), 冲突依旧存在。skill 生产部署用的是 agent.md 还是这份 train/evolve/SKILL.md,需要 org-innovator 明确——如果线上走的是 agent.md,那么本次重训的成果并没有真正生效,这是比分数更重要的问题。
  • 飞书标杆文档依旧不可达(train/hunt/feishu_access_status.md 记录的三次尝试结论未变)。 本次重训全部基于官方仓库原文 + feedback_eval 的人工评审意见。如果飞书内部标杆对某些字段有额外 定制约定,本轮无法反映。

5.8 关于"分数提升"的表述纪律

v1 → v2 的分数变化(99.125/98.71 最低 97 → 99.67 最低 98)看起来只提升了不到 1 分,但两组 数字在两套不同的 benchmark 上得出,既不能说"进步很小"也不能说"大幅提升"。准确的说法是:v0.2.0 在旧基准下表现良好,但在新的、以行为约束为核心的基准下被暴露出 6 类真实失败模式(6/10 评测); v0.3.0 把这 6 类各自的修复落进了正文与固定流程,并在新基准下全部通过。重训的价值体现在失败的类别 被消灭(6 类全部有对应的场景级证据),而不是体现在分数涨幅上。


六、给部署决策的建议

  1. v0.3.0 建议可以进入生产试用,但按 5.1 的结论,首个上线阶段应重点观察两类真实请求: 必需素材带"必须替换"类 note 时是否正确阻塞;菜单里有可用清洗版时是否能正确选择而不是误报阻塞。
  2. 先解决 5.7 第一条再谈部署:确认线上实际加载的 skill 文件是哪一份,若线上走 agent.md, 需要把 v0.3.0 的七步工作流同步进去(或由 org-innovator 排期一次 agent.md 校准)。
  3. 若采纳 5.5 / 5.6 中任一调整(阻塞场景计分方式、"反问 vs 推定"取向),会导致本轮分数表变化, 请届时通知重评——那是 Digester / org-innovator 的决定,Evolver 不擅自改 benchmark 或回填分数。