§7 知识沉淀(仓库权威版,配套代码提交 4e5a7bbf): - .agents/skills/saa-graph-orchestration.md:新增 §3.5「M3 thinking 治理 + 协议/流式」——M3 thinking 二元(无深度/budget、提示词压不住);openai adaptive 内联污染→只能关;anthropic 原生分离要质量走这条但必配【流式 StreamingCallChatModel + NO_PROXY webClientBuilder】否则阻塞整取大面积 SocketTimeout;#4407 对 1.1.2 过时;rc 门耦合 bug(playNode pass 别前置 rc==0)。e2e 段补 2026-06-20 跃迁(67%→91.7%、证伪模型天花板)。 - docs/plans/2026-06-20-…md:状态 banner→主线达成 + 追加 §7 结果与修正(rc 真根因 / thinking+协议杠杆 / 实测对照 / n=12 达标口径放宽 / 未尽项)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.5 KiB
6.5 KiB
关闭九门 driver 判定 · 全面参考 OpenGame · Phase 0–4 决策记录
状态:✅ 主线达成(2026-06-20:rc 门修使 Phase 1 真生效 + 改 anthropic 流式 thinking → gamedef e2e 91.7%、按 n=12 达标;详见末节「§7 结果与修正」)。execution-spec/Codex×Opus 双评审仍为 follow-up。 决策人 / 日期:创始人 / 2026-06-20。 一句话:把"逐品类手写 driver 自动试玩"从生成硬门降级,生成环改只认客观健康门(build-health, A–F),验证全面对标 OpenGame(方法蓝图,非 Phaser 运行时)。
1. 决策内容
- 关闭九门 driver 判定对生成的绑架:生成环(SAA 管线)硬门 = 客观健康门 A–F;driver 依赖门 G_input / H_progress / I_control 不再否决生成、不进救场回喂。九门 harness 仍照常跑并写 verdict.json(不动门判定本身),仅改"生成环如何消费 verdict",双轨可回退(
-Dsaa.gen.gateMode=all9退回旧聚合 pass)。 - 全面参考 OpenGame:采纳其方法蓝图——agentic 编码循环 / Template-First+hook 覆写 / 活调试协议 / build-health+VLM 验证 / 薄 prompt+按需 archetype doc;落在我们 LittleJS + gamedef + 便宜模型 栈;不照搬 Phaser/TS/GameCoder-27B 运行时(评审
2026-06-14-OpenGame蓝图补缺-reviewD1 已划线)。 - 反转前约束:本会话早前的"never edit nine-gate judgment logic"安全约束由创始人 2026-06-20 显式解除。
2. 为什么(证据)
- n=1 铁证:M3 openai 流式 n=1 实测,游戏过尽全部客观门(A_boot/B_uncaught/C_frame/D_render/E_live/F_wiring),只挂
I_control+H_progress(driver 门)→ 几乎肯定是可玩游戏,纯被 driver 玩不动误杀。 - Phase 0 去混杂基线:跨日志门失败分布
H_progress 24 / G_input 7 / F_wiring 5 / E_live 4 / I_control 1,~78% 失败是 driver 依赖门;A_boot/B/C_frame/D_render 零失败。all-9 历史率 ≈ 50%,推断客观-only 率 ~80–90%(精确值待 Phase 1 新口径重测)。 - OpenGame 源码+论文(
leigest519/OpenGame,arXiv 2604.18394):验证 = build-health + VLM(无 driver);消融最大杠杆 = hook/模板 +10.1 BH、活调试协议 +6.9、模板族 +5.8;prompt = 薄基座 + 按 archetype 动态装配 doc + 匹配式调试库。 - SOTA 校准:OpenGame + Claude Sonnet 4.6 也只 BH 72.4 / VU 67.2 / IA 65.1(复合分,口径异)→ "一句话自由生成可玩游戏"前沿在七成上下,我们 ≥80% 自由生成目标偏激进,主失败源是 driver 测量偏差而非模型天花板。
3. Phase 0–4
| Phase | 内容 | 状态 |
|---|---|---|
| 0 | 去混杂基线(挖现有 verdict 样本:A–F vs all-9) | ✅ 完成(§2) |
| 1 | 关闭九门对生成的绑架 + prompt/driver 解耦 | 进行中:1a 代码门解耦 ✅ 编译验证;1b prompt 解耦起草中 |
| 2 | Template-First 骨架(+10.1):每 archetype 已验证 gamedef 骨架 + hook 覆写 | 待办 |
| 3 | 活调试协议/离线 linter(+6.9):坑入版本化匹配库,真玩前静态门回灌 | 待办 |
| 4 | build-health + VLM 验证替换 driver 判定;自修复封 T=3;达标 flip | 待办(注:SaaStudioNodes.judgeVision 已有 VLM 雏形) |
4. 客观门 vs driver 门(Phase 1 口径)
- 客观健康门(build-health·play-independent,生成硬门):
A_boot / B_uncaught / C_frame / D_render / E_live。 - driver 依赖门(降级为参考,不否决生成):
G_input / H_progress / I_control。 - F_wiring 已移出客观硬门(2026-06-20 实测 n=2 发现):它靠游戏事件触发
rt.fx,无 driver 真玩→事件不触发→必挂=play-dependent(实测两局均挂[F_wiring,H_progress],但 A–E 全过=游戏本身可跑可动)。"真用引擎/有特效"语义改由 player 节点 VLM 看截图判(OpenGame VU 口径);彻底解法见 Phase 4(VLM 升打分门 / harness 通用 input-poker 触发事件)。 - 实现:
SaaGenNodes.objectiveGatesPass()+OBJECTIVE_GATES常量 +GATE_ALL9开关;summarizeFailedGuards客观门模式下不回喂 driver 门失败。
5. Blast radius / 回退
- 改动面:
SaaGenNodes.java(生成环 verdict 消费口径);后续SaaPrompts.java(prompt 解耦)。 - 不改:
play.cdp.cjs九门判定逻辑、gd-runtime.js、verdict.json 产物结构。 - 回退:
-Dsaa.gen.gateMode=all9即恢复旧"九门聚合 pass"硬门。
6. Follow-up(不阻塞执行)
- 出 Phase 0–4 execution-spec 并过 §6.8 Codex×Opus 双评审(task #18)。
- Phase 4 VLM 验证口径(对标 OpenGame BH/VU/IA)单独定义 + 契约无关基线 parity 门(≥ 现客观基线才 flip 默认)。
7. 2026-06-20 结果与修正(已提交 4e5a7bbf → feat/mac-gamedef-qc-concurrent)
执行中发现 + 修正,最终把 gamedef 生成质量做到 91.7%(超 80 门):
- rc 门耦合 bug(Phase 1 真根因):§4 的客观门解耦写对了,但
SaaGenNodes.playNode的 pass 前置了rc==0,而play.cdp.cjs退出码=九门聚合(任一门含 driver 门挂即 exit 1)→ driver 门失败 rc=1 反向否决客观 pass,使 Phase 1 形同虚设、空跑 8 轮救场烧 302K token。修:客观门模式pass=(rc==0||rc==1)&&objectiveGatesPass。修后 Phase 1 真生效。 - 生成质量杠杆 = thinking + 协议(先于 Phase 2 模板即见效):便宜模型"哑火静态游戏"(E_live 不动=没接对运动逻辑)是最大失败簇;开 M3 thinking 修了它。M3 thinking 仅二元(无深度/budget、提示词压不住);openai 路 adaptive 内联污染 JSON+截断→只能关;改走 anthropic 原生分离 + 流式(
StreamingCallChatModel+ NO_PROXY webClient,治阻塞 SocketTimeout;#4407 对 1.1.2 过时)+ max_tokens 256k。详见.agents/skills/saa-graph-orchestration.md §3.5。 - 实测对照(conc=12 gamedef):thinking-off 8/12(67%、哑火×4) → thinking-on 11/12(91.7%、哑火修 3/4);残留 #7 打地鼠(天生无运动点击类,E_live 苛、思考也救不活→留 Phase 2 模板 / E_live 口径调整)。代价 ~10x 慢 + 1.6x token。
- 达标口径放宽(创始人拍板):以 n=12/91.7% 宣告达标(非原 plan003 n≥30——n≥30 只多给方差信息,不改"thinking-on 更好且过门"的结论)。
- 证伪"模型天花板":§2 曾忧"≥80% 偏激进 / 前沿七成"——便宜模型经"对的协议 + 开思考"实达九成,主瓶颈是工程配置非模型天花板。
- 未尽:#7 无运动点击类;速度代价(adaptive 无界、单局 20–73min,上线要治);Phase 2/3/4(模板 / 活调试 / VLM 门)仍可叠加作进一步增益。