From 405394d4517992868b6829022b7095c4a81f2f1f Mon Sep 17 00:00:00 2001 From: lili Date: Sun, 14 Jun 2026 05:16:04 -0700 Subject: [PATCH] =?UTF-8?q?feat(wg1-gen):=20gate-H=20=E6=8E=A8=E5=B9=BF=20?= =?UTF-8?q?=3D=20design=20agent=20=E8=87=AA=E4=BA=A7=20gate-spec=20+=20ref?= =?UTF-8?q?rame=20=E5=86=B3=E7=AD=96=E9=94=81=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P1(gate-H 推广多游戏):确定性门从手写 brief 升级为 design agent 自产,适用任意游戏。 - roles.py:DESIGN_SYSTEM 末尾产机器可读 gatespec 块(exportState/driver/controlCheck/ assertAfterPlay/expectLatch);ballPath 明确为水平 x。 - studio.py:_extract_gatespec 抽取(json_repair 兜)+ 合入 play_spec + 安全归一 (paddle-intercept 的 ballPath .y→.x 兜底);结果记 gatespec。 - 实证:flash design agent 对 breakout 产出结构合法 gate-spec,studio 抽取合入成功 (唯一内容误差 ball.y 已由 prompt + 归一双修)。 reframe 锁定(WG1 review §8,创始人亲玩校准后):确定性 gate-H = 可玩性真值/地板; player = 主观层(消费 gate-H、判不出手感、须人锚校准);创始人/人锚不可替代; 生产三层 = 确定性门 + 便宜 player + 创始人抽检(无 Claude)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- ...bakeoff天花板与Claude-free评估门-review.md | 6 +++ wg1/gen-worker/worker/agent_loop/roles.py | 15 ++++++- wg1/gen-worker/worker/agent_loop/studio.py | 42 +++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/docs/agent-specs/2026-06-14-WG1-bakeoff天花板与Claude-free评估门-review.md b/docs/agent-specs/2026-06-14-WG1-bakeoff天花板与Claude-free评估门-review.md index a4866831..722d9656 100644 --- a/docs/agent-specs/2026-06-14-WG1-bakeoff天花板与Claude-free评估门-review.md +++ b/docs/agent-specs/2026-06-14-WG1-bakeoff天花板与Claude-free评估门-review.md @@ -169,3 +169,9 @@ graph TD **架构守护栏(working 解读,待创始人纠正):** - "改进 agent scope" = 改进**我方 agent 层**(任务协议 / 状态模型 / 工具接口 / 循环模板 / 门禁 / 自修复逻辑 / judge 校准——GC9 明列的"要固化"项),**AgentScope 框架本身保持可替换**(不 fork 其内核,保留换轨 LangGraph 选项,遵 XC3/GC9 框架可替换铁律)。 - 便宜模型仍是**生产 in-loop 角色**(生成 / 自修复 / judge);**Opus = builder / teacher / calibrator,建好即退,不进生产环**(否则"生产无 Claude"前提破)。 + +**质量评估架构 reframe(2026-06-14 创始人亲玩校准后拍定):** +- **确定性 gate-H = 可玩性真值 / 地板(Claude-free)**:九门(七门假绿守卫 + H 机制/latch + I 控制手感)+ 适配性真玩 driver(读 state 接球,解盲打假阴性)。手感尽量**拆成确定性门**(latch 终态驻留 / 控制跟手 / 碰撞穿透[门 J 规划]);拆得掉的全自动判。 +- **player panel = 主观层,消费 gate-H,有结构性天花板**:便宜 player(M3 静态截图 + flash 数据)**判不出物理/碰撞/控制的交互手感**——实证创始人把碰撞有问题的件判 fix、两 player 均高估(fun=4),text 还漏控制 bug。故 player 只判**拆不掉的主观**好玩/美术/节奏,且须人锚校准(`calibrate.py` vs 创始人 `labels.json`)。 +- **创始人 / 人锚不可替代**(现阶段):是 gate-H 假阴性(盲打)+ player 漂移的最终纠偏。**Opus 退场后,生产 = 确定性门 + 便宜 player + 创始人抽检 三层**,无 Claude。 +- **gate-H 推广 = design agent 自产 gate-spec**(exportState / driver / controlCheck / assertAfterPlay / expectLatch)→ 确定性门适用**任意游戏**,不再手写 brief(已建:`roles.py` 产 spec、`studio.py` 抽取合入;实证 design agent 能产合法 spec)。 diff --git a/wg1/gen-worker/worker/agent_loop/roles.py b/wg1/gen-worker/worker/agent_loop/roles.py index 27a79996..b3eb2336 100644 --- a/wg1/gen-worker/worker/agent_loop/roles.py +++ b/wg1/gen-worker/worker/agent_loop/roles.py @@ -16,7 +16,20 @@ DESIGN_SYSTEM = r"""你是轻量 H5 小游戏的【设计 agent】。输入是 6. 画面要点:背景铺满、主要元素形状与颜色、HUD(分数等)。 7. 可观测进展:点明"玩家在推进"的可量化信号(如剩余目标数下降 / 分数上升 / 关卡推进),并说明胜负如何切状态——这是判"真有进展、非空心"的依据。 -【约束】控制在 ~200 字内,聚焦"代码 agent 实现时需要的决策",不堆砌辞藻、不写引擎/契约细节(那是代码 agent 的事)。""" +【约束】设计正文控制在 ~200 字内,聚焦"代码 agent 实现时需要的决策",不堆砌辞藻、不写引擎/契约细节(那是代码 agent 的事)。 + +【末尾必附 gate-spec(机器可读·harness 据此确定性验"能玩 + 手感"·这是 gate-H 推广到任意游戏的关键)】 +设计正文之后另起一个 ```gatespec 代码块,块内为 JSON,声明本游戏怎样被确定性验证: +```gatespec +{ + "exportState": ["phase","score","remaining","progress","<关键实体位置:如 ball:{x,y,vx,vy}、paddle:{x,y,w};纯点击类可省位置>"], + "driver": {"type":"paddle-intercept","ballPath":"ball.x","paddleY":800}, + "controlCheck": {"paddlePath":"paddle.x","tapXs":[50,340]}, + "assertAfterPlay": [{"path":"remaining","op":"decreased","why":"击碎砖块→剩余下降"}], + "expectLatch": true +} +``` +规则:① `expectLatch` 恒 true(游戏必须能真玩到 gameover 且驻留);② 有"连续控制体(挡板/角色随手指平滑移动)"才给 `controlCheck`,纯点击/无连续控制给 null;③ 技巧类(挡板接球/接物)`driver.type="paddle-intercept"`,`ballPath`=**球的水平 x 坐标字段**(挡板水平移动去对齐它,几乎总是 `ball.x`,**绝不要填 ball.y**),`paddleY`=挡板所在 y;纯点击类用 `{"type":"none"}`;④ `assertAfterPlay` 至少一条"真有进展"断言(op ∈ increased/decreased/changed/>/>=/