docs(agentic): 视觉增强 repair NO-GO 决策记录
三独立透镜一致否决 + 硬数据证伪,存为决策记录防再提: - 对抗评审:前提塌陷(play.cdp.cjs:548 waitBoot抛错→552 first-paint永不写,A/D失败无截图;evidence零清场→陈旧图幻觉);看图冗余/两头不靠;漏算诊断进K_FEEDBACK放大后续全量重出轮token - 可行性评审:同P0;judgeVision复用带回playerSystem的verdict=M3又当门(自打"M3不当门"红线) - 桌面统计(N=49失败/87运行):D_render=0,C_frame=0 视觉失败象限不存在;真病灶=H_progress 85%+G_input/F_wiring各34%逻辑层 数据指向真修复线:H_progress(game loop终态驱动)+G_input(输入响应) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b7786caa40
commit
188511d2ce
90
docs/agent-specs/2026-06-16-视觉增强repair-review.md
Normal file
90
docs/agent-specs/2026-06-16-视觉增强repair-review.md
Normal file
@ -0,0 +1,90 @@
|
||||
# ⛔ NO-GO(已否决,2026-06-16)—— 视觉增强 repair
|
||||
|
||||
> **裁定:不做"视觉增强 repair"。** 三独立透镜一致否决,且被硬数据证伪——本稿存为**决策记录**(防再提)。
|
||||
>
|
||||
> 1. **对抗评审**:前提塌陷——`play.cdp.cjs:548 waitBoot 抛错 → :552 first-paint 永不写`,A_boot/D_render 早失败**无截图**;evidence 目录**零清场**→ M3 会读到上一轮陈旧图=系统性幻觉源;能数值判的门看图**冗余**、真需看图的软维度**软门(playerNode 视觉位)过门后已做**=两头不靠;漏算诊断进 `K_FEEDBACK` 后**放大每个后续全量重出轮的 token**。
|
||||
> 2. **可行性评审**:同一 P0(A/D 失败无图,控制流证伪);且 `judgeVision` 复用会带回 `playerSystem` 的 `verdict:pass/fix`=**M3 又当了门**(自打"M3 不当门"红线)。
|
||||
> 3. **桌面统计(N=49 失败 / 87 运行,硬数据)**:**D_render = 0、C_frame = 0**——视觉失败象限**根本不存在**;真病灶 = **H_progress 85% + G_input/F_wiring 各 34%**,全是 game-loop 逻辑层,截图看不出、改渲染也修不了。`ts` 49/49 全 null(独立缺陷)。
|
||||
>
|
||||
> **数据指向的真高价值修复线**:**H_progress(game loop 终态驱动)+ G_input(输入响应)**——逻辑/prompt 问题,非视觉。
|
||||
>
|
||||
> **过程价值**:用 ~免费的两轮评审 + 桌面统计,在写 execution / 占端口 spike **之前**杀掉一个貌似合理、实则前提为假的提案。
|
||||
>
|
||||
> ---
|
||||
> *下文为当时考虑的提案原稿,仅存档。*
|
||||
|
||||
---
|
||||
|
||||
# 视觉增强 repair —— 硬门失败注入失败截图 + M3 诊断 · 评审版(已否决)
|
||||
|
||||
> **状态**:review 版 · 2026-06-16 · ~~给创始人决策~~ **已 NO-GO,见顶部横幅**。基于对现行生成评测环的只读源码核证(`SaaStudioNodes.java`/`SaaPrompts.java`,file:line 见下)。
|
||||
> **定位**:生成评测环(W-G1 / HJ-GEN-001 / game-e2e-cdp-harness)的局部增强。**与 SAA 基建正交**——SAA 只换编排框架、节点逐字移植自 `studio.py`,本案不动框架、不动九门判定。
|
||||
|
||||
---
|
||||
|
||||
## 0. 结论先行
|
||||
|
||||
- **现状缺口**:**硬门(九门 harness)失败时,repair 只拿到门的文字 verdict、没有失败截图/视觉诊断**;M3 视觉只在九门**过后**的软门(player 顾问轮)才跑。对"本质是视觉"的失败(黑屏 / 没渲染 / 卡帧 / 精灵缺失 / 布局崩),修复 agent 是"盲修"。
|
||||
- **建议**:在硬门失败路径,对**疑似视觉类**门失败追加一次 **M3 结构化视觉诊断**(读失败截图→出"缺什么 / 哪类问题 / 修复方向"),注入 repair feedback。**九门仍是唯一 pass/fail 权威,不变。**
|
||||
- **预期收益**:提修复成功率(尤其视觉类失败)、可能降平均修复轮数与成本。
|
||||
- **风险可控**:附加在失败路径、有界触发(仅特定门 + 轮次/成本上限 + M3 失败优雅降级不连坐),不改九门确定性、不引新框架、可 feature-flag 默认关。
|
||||
- **怎么定**:**A/B 用数据拍**,别空辩——#1 对比 harness 已产四件套截图证据,可复用。
|
||||
|
||||
## 1. 背景:现行两层评测(已核证)
|
||||
|
||||
| 层 | 角色 | 证据 |
|
||||
|---|---|---|
|
||||
| **九门 harness** | **硬地板**(确定性 CDP,pass/fail 唯一权威) | `SaaStudioNodes.java:712` playCondition「九门 pass→player;否则 repair/giveup,九门=硬地板」|
|
||||
| **M3 视觉位** | **软门顾问**(九门**过后**才跑,读首帧/玩后截图判进展/反馈可见/好不好玩) | `playerNode:437` + `judgeVision:537`(M3+截图+180s/≤3重试+失败优雅降级);反馈经 `K_PLAYER_FEEDBACK` → `repairNode:628` 喂回生成 |
|
||||
|
||||
> 即"喂图自修"在**软门路径已闭环**;生成 prompt 本就要求"反馈做得截图里看得见"(`SaaPrompts.java:130/179`)。**唯一盲区 = 硬门失败路径无视觉**(`repairNode` 此时走纯文字 `K_FEEDBACK`)。
|
||||
|
||||
## 2. 现状 vs 提议(数据流)
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
G[generate] --> V[validate] --> B[build] --> P[play 九门]
|
||||
P -- pass --> PL[player 软门<br/>文本+M3视觉] -->|K_PLAYER_FEEDBACK| R[repair]
|
||||
P -- fail --> R
|
||||
R --> G
|
||||
P -. 提议:fail且疑似视觉类 .-> VD[[visionDiagnose<br/>M3读失败截图出诊断]]
|
||||
VD -. 注入 K_FEEDBACK .-> R
|
||||
classDef new fill:#fde,stroke:#c39
|
||||
class VD new
|
||||
```
|
||||
|
||||
- **现状**:硬门 fail → repair 仅得文字 verdict。
|
||||
- **提议**:硬门 fail **且**门类型属"疑似视觉类" → 轻量 `visionDiagnose` 节点(复用 `judgeVision` 调用骨架,只换诊断向 prompt)读失败截图喂 M3 → 结构化诊断并入 `K_FEEDBACK` → repair → generate。
|
||||
|
||||
## 3. 关键取舍
|
||||
|
||||
| 取舍点 | 选项 | 建议 |
|
||||
|---|---|---|
|
||||
| 触发面 | 全失败都加视觉 / 仅"视觉类"门失败 | **仅视觉类**(成本+相关性)。D_render/C_frame 卡帧/H_progress 无进展=有视觉信号;B_uncaught/F_wiring=逻辑类,视觉帮助小→不触发 |
|
||||
| M3 职能 | 出 pass/fail 判决 / 只出诊断+修复方向 | **只出诊断**(守"done 由九门定、不让 LLM 自评"),绝不让 M3 当门 |
|
||||
| 动态盲区 | 喂视频/多帧补动态 / 不做 | **不做**(动态归九门:帧进/输入响应/进展确定性已覆盖),避免重+贵 |
|
||||
| 成本 | —— | 每次视觉类失败+1 次 M3 调用;需测**净收益**(修复轮数下降是否抵单轮视觉成本) |
|
||||
|
||||
## 4. 爆炸半径 / 兼容
|
||||
|
||||
- **改动面**:play 失败路由 + 新增 `visionDiagnose` 节点 + repair feedback 注入。**不动**九门判定、SAA 框架、8 类契约。
|
||||
- **复用**:`judgeVision`(M3+截图+超时重试+优雅降级)骨架现成,只换 prompt(诊断向)。
|
||||
- **兼容**:feature-flag 默认关 = 现行行为逐字不变。M3 失败优雅降级回落纯文字 verdict、不连坐。
|
||||
- **公平性**:评测设计是 Python/SAA 共享语义;A/B 须同臂对照(要么两侧都加、要么只在一侧量"加 vs 不加"的增量)。
|
||||
|
||||
## 5. 验收(A/B 指标)
|
||||
|
||||
主指标:**修复成功率 ↑ / 平均修复轮数 / 通过率 / 成本-每款**。
|
||||
诊断质量:**视觉诊断命中率**(M3 指出的问题,下一轮是否真被修掉)。
|
||||
分层:按**门失败类型**分布看(视觉类 vs 逻辑类,验证"只对视觉类有用"假设)。
|
||||
|
||||
## 6. 待确认(创始人/团队)
|
||||
|
||||
1. **触发门清单**:哪些门失败算"视觉类"、触发视觉诊断?(建议起步:D_render + C_frame 卡帧 + H_progress 无进展)
|
||||
2. **预算上限**:每款最多几次视觉诊断 / 成本闸?
|
||||
3. **落点**:先在对比 harness 离线 A/B,还是直接进 SAA 生产路径(feature-flag)?建议**先 A/B**。
|
||||
4. **值不值得**:用 A/B 数据决——若视觉类失败占比低或诊断命中率低,则不投。
|
||||
|
||||
---
|
||||
|
||||
> **下一步(确认本案方向后)**:① 两轮对抗评审;② 写 execution 版(节点契约/触发谓词/诊断 prompt/降级路径/A/B 跑法);③ 待 #1 腾端口后 spike 一版去 A/B。
|
||||
Loading…
x
Reference in New Issue
Block a user