Critic Loop · 2026
反 Reward Hacking · 现场重演
01 / 6 · HELLO
Phase 00 · Critic Loop

你即将经历一次 反 Reward Hacking
的现场。

Generator 给自己打分会本能虚高。
所以我们让另一个 agent 重打一遍,找出差距,迭代回炉,直到 S 档闭环。

按 →  或点击 开始
Phase 01 · Generator Self-Report
作品自评报告 Task #G-2026-0524 · Build-site
9.2 / 10
A · 技术4.6
B · 审美4.7
C · 品味4.5
加权9.20 / 10
  • R-016金句锋利、画面感强
  • R-021动效设计精致到位
  • R-023字号层级清晰有节奏
  • R-028情绪扳机已成功触发
  • R-010移动端体验全面达标

「我做完了。
自评 9.2 / 10。可以部署。」

Phase 02 · Independent Critic · Read-only · No Self-context

另一个 agent重打。
它不读自评,只读 rubric。

Generator 自评
9.2/10
Critic 复评
9.2/10
INFLATION  +1.5

F-001:generator 自评稳定 inflate +0.8 ~ +1.5。
所以 独立 critic 是硬约束,不是装饰。

Critic 找到 5 个 可定位差距

Verdict · SHIP-BLOCKED
R-028
情绪扳机:BGM 默认 Off,拦住 S 档
audio 标签存在,autoplay 被静音,用户从未真听到 ambient pad。
−1.2
R-021
motif 未做 audio.currentTime phrase mapping
scene 切换靠 setTimeout,与音频节拍无关;动效在飘。
−0.8
R-023
字号 8-9 档超过 5 档红线
font-size: 11/12/13/14/16/18/22/28/40/96px,层级噪声盖过节奏。
−0.6
R-016
抽象金句陷阱:缺时间 + 地点 + 感官钩子
"让我们追逐光与梦想"——没有动名词,没有具体场景,读完只剩气味。
−1.0
R-010
按钮 26-38px < 44px tap target
移动端 5 处可点击区域不达标,Critic playwright 375px 命中失败。
−0.9
Phase 04 · Iterate · Round 2

5 个 fix,每个对应一个数字 归位

R-028 BGM 改默认 On + 加 user gesture 启动按钮
PENDING
R-021 用 audio.currentTime 驱动 phrase mapping
PENDING
R-023 字号压缩到 5 档:12 / 14 / 18 / 32 / 96px
PENDING
R-016 金句加时间锚 + 地点 + 感官动名词
PENDING
R-010 所有 tap target ≥ 44px,加 hit-slop
PENDING
FIXES
0 / 5
Phase 05 · S-tier Lock-in
THRESHOLD · 4.50 R1 · 4.55 R2 · 4.95

S 档闭环 达成

Critic Loop 不是装饰
是反 reward hacking 的硬约束

§7.1
独立 critic 强制
不是 generator 切换人格,是另一个 agent 不读自评只读 rubric。
§7.2
≥ 3 个可定位差距
每个差距给 selector / 行号 / quote,不许"整体感觉一般"。
§7.3
门槛 4.5 才放 ship
B 档及以下回炉,3 轮过不了找用户讨论需求冲突。
杨凯杰 · 2026 · 训练自己的 AI
Critic Loop · Fin.