zizi
|
069ae73e97
|
feat(aigc/worker): U3 trace 扩展键 + U4 缓存命中落账(B5/B9)
6c6g 后端 Tier0 计划 U3+U4(docs/plans/2026-06-17-001-...)。execution §5.8 trace+cost 落值。
- U3 extractTraceQuietly(Java)+ _extract_trace(worker)additive 抽 modelTier/escalationEvents/giveupDumpPath;
仅真升档态(stage2/escalationEvents 非空)落 modelTier + 形态校验(非空 str/非空 list)→ 字节兼容(无扩展键键集与扩前一致)、Java/Python 两路同口径
- U4 cost.py 缓存命中折¥:两套字段取 max(DeepSeek prompt_cache_hit_tokens / MiniMax prompt_tokens_details.cached_tokens)
+ cache_ratio 折真实 quota;worker usage 捕获(_safe_int 兜脏不抛);pricing 不可达 tokens-only+costFallback 标记;不阻断仅观测
- 诚实边界:SAA Java 路无 cache 字段源→省略不伪造(follow-up);AgentScope 丢 DeepSeek 顶层字段(待真跑对账);worker 生产路完整落账
验证:mini-desktop Java 12+(SaaGraphDispatcherTraceTest)+ Python 73(test_cost 56/wg1_groupb 17)全绿;
codex 评审 NO-MERGE→2 P0(字节兼容/usage 阻断)+2 P1(pricing 口径/两路一致)全修后绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 22:26:27 +00:00 |
|
zizi
|
96081a574c
|
feat(aigc): W-G1 组B 落库组——9d trace 账本 + D11 就绪评分 + D9 反同质化(全非阻断)
把 worker 已产出、当前在边界被丢弃的富生成轨迹(9d)接过来落库,补"放了能管/追溯/不雷同"
三件 v0 能力,全部 best-effort 非阻断(口号"放了能管,非放了能拦")。三件全关=现行字节零变。
契约先行:
- contracts/api-schemas/aigc.yaml DifyCallbackReqVO 加 trace(object,nullable) additive 字段;
顺带补 engineBundle 漂移对齐(Java 已加 yaml 漏)——守契约先行收口。
9d trace 账本(公共底座):
- Flyway V16.0.0:game_aigc_task 加 trace_json(JSON NULL)+readiness_score(SMALLINT NULL),
additive 可空 AFTER failure_reason(接 V15 组A level,勿撞号);AigcTaskDO 加两映射字段。
- worker service.py:_extract_trace 从 run_studio result 抽 9d 子集(必填子集7项+可选段,camelCase),
build_callback_payload 加 result 参可携 trace,handle_job 把 result 提到函数作用域传入(成败路都抽)。
- 后端 DifyCallbackTxService.persistTraceQuietly:succeeded 步骤⑦后 + failed markTaskFailed 后
best-effort 落 trace_json;全程 try-catch 吞异常,绝不回滚三表写链/绝不阻断 PUBLISHED。
D11 就绪评分:
- 新建 ReadinessScorer:读 trace 算 0-100(playability 0.50/firstPlay 0.25/stability 0.15/efficiency 0.10,
权重占位待校准;缺字段取中性 0.5,纯函数无副作用);算分独立 try-catch,失败仅 readiness 降级 NULL、
不拖累 trace 落库(§7)。AigcTaskRespVO 加 readinessScore(BeanUtils 平铺自动映射)→ /task/page 零改透出。
D9 反同质化:
- 新建 worker agent_loop/dedup.py:移植 agent-loop-v1 run_batch.py:96 _norm_text(归一≈复制)
+ ledger.py:50 mint_design_id 思路(compute_sig 精确撞重键);重接 _dedup_gate 逻辑——解绑实例状态
改 FS jsonl 登记表、engine 路取字段(title=brief 派生/theme=generic 占位)、落库改塞 trace.similarity。
- studio.py result 注入 similarity(AIGC_DEDUP_ENABLED 开关门控);撞重只 log.warn+dupHit=true,
照常回调入 feed(v0 只观测避免误杀,九门已是硬地板)。
回滚:三件各一开关(aigc.trace.enabled 默认 false/D11 随 trace/AIGC_DEDUP_ENABLED),全关=逐字一致;
列 additive 可空,真回滚写 V17 drop(不改 V16,遵 V2.0.0 头注铁律)。不触公平性铁律(只读 gatespec)。
验证(mini-desktop /root/build-lane-a 隔离目录):
- Java:aigc-server 全模块 clean test 111/111 通过(0 fail/0 err/4 skip,BUILD SUCCESS);
含新 DifyCallbackTxTraceTest 5/5(trace 落库/失败不阻断/D11 算分 pass-vs-fail/算分失败不阻断/RespVO 可见)
+ 既有 DifyCallbackServiceImplTest 13/13 零回归(坐实 traceEnabled=false 现行行为字节一致)。
- worker:wg1_groupb_test.py 17/17(9d trace 必填子集完整率 5/5=100% + D9 撞重/归一/不撞/坏行容错);
真 venv 验 dedup/service/studio import 链健康 + result=None additive 兼容。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 18:04:02 +00:00 |
|
zizi
|
a2cbabe647
|
fix(gen): tap 类 design-agent 自产 driver——规则③家族二分补 tap-targets,闭 driver:none 临门一脚(Python+SAA 逐字同改)
DESIGN_SYSTEM 规则③旧「纯点击类用 driver:none」一刀切 = moat「一句话现生成」对 tap 族不可靠真因(盲打打不中离散目标→H_progress 卡)。改家族二分:
- 离散点击目标类(井字棋/打地鼠/扫雷)→ 必产 tap-targets + 导出 targets[{x,y,idx,occupied}];规避/推理族 +safeOnly +导出 safe(仅 _forensicsView 测试可见不渲染)+断言 result==win;安全放置族断言 progress↑
- 技巧挡板类→ 仍 paddle-intercept(ball.x,绝不 ball.y);其余→ none
roles.py(Python worker)与 SaaPrompts.java(SAA backend)规则段逐字一致(1076 chars,公平性铁律),SAA test-compile 绿。
验证(Python 派发面,play_spec={} 逼自产,stage1=deepseek-v4-flash):
- tictactoe(放置族)整链 9/9 全绿一次过=design 自产 tap-targets→factory 自产 targets→九门含 H_progress+latch 达终态(铁证)
- saolei(避负族)driver 自产正确 3/4,但九门未翻绿=便宜模型扫雷 factory 质量(Math.random违禁/win不可达/A_boot崩),九门正确拦截,与本修正交(O1 factory 级,§9/scale-20 跟踪)
- breakout 回归未误伤=恒 paddle-intercept,H_progress 绿;成本闸内(¥0.014~0.052/款);仅改 prompt 未加 extractGatespec 兜底
源:2026-06-15-WG1-tap-targets-driver-自产缺口-L1brief.md / driver-coverage §6
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 17:08:12 +08:00 |
|
zizi
|
2b59f53f44
|
feat(saa): Python agentic 生成系统迁移到 SAA(Spring AI Alibaba)裸图 spike (HJ-AGI-002)
全图 design->generate->validate->[repair环]->scaffold->build->play(九门)->player->emit;build/play 复用既有 harness 子进程。
SAA 完整框架集接入 aigc-server(graph-core/agent-framework/builtin-nodes/observation/openai,3 BOM;Boot3.5.14/Redisson4.4.0 保住)。
双评审(Opus+Codex)9 项对比前必修:LLM超时重试/ProcessBuilder超时修复/采样面对齐/playerFeedback清串味/gatespec强解析/problems归一/recursionLimit兜底/cost/端口参数化。
首轮对比 breakout/whack/flappy:SAA 通过率 2/3 >= Python 1/3。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 07:55:27 +08:00 |
|
lili
|
06e59de659
|
feat(wg1): angrybirds 也翻绿——drag-aiming 解析瞄准(暴露物理常数闭可测性边界)
续 cc5fa48:最后一个 driver-coverage 边界 angrybirds 转确定性闭口(复刻 asteroids「暴露所需常数+适配 driver」范式)。
- play.cdp.cjs drag-aiming 加 45° 抛【解析模式】:游戏暴露 launch{gravity,powerScale} 即反解拖拽矢量(各发±力度微抖兜物理离散),否则退化力度扫描
- angrybirds brief:pin 死简单可解析物理(powerScale=8/gravity=1200,无阻力)+ 导出 launch:{gravity,powerScale}
- flash 重生成首发过(retries=0):launch 导出与 pin 完全一致、score 0→20 result=win 清场、latch✓
- 终局:flappy/multiball/asteroids/angrybirds 4 款翻绿;仅 t2048 余 8/9(2048 抗死锁 latch 体裁边界,游戏真可玩,建议放宽门)
- 回填:闭口报告 + game-e2e §8(drag-aiming 解析)+ cheap-model §9
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 03:36:01 -07:00 |
|
lili
|
cc5fa486ac
|
feat(wg1): driver-coverage 闭口 + P2 三档对照——flappy/multiball/asteroids 翻绿,0 模型造不出
创始人 2026-06-15 定档「driver 残留闭口 + P2 对照(L1 自主)」;P1 校准放量 blocked-on-founder。
- play.cdp.cjs driver 库 1→8 型:+flap-to-gap vy 前瞻 / paddle-intercept 弃守排空 / drag-aiming(第7) / aim-fire(第8)
- flappy ✅(重生成 score 0→5,vy 前瞻+可达缝隙 brief)
- multiball ✅(重生成首发 retries=0,弃守排空 driver+底部丢球语义 brief)
- asteroids ✅(enrich exportState 暴露陨石坐标+aim-fire driver,score 0→6=可测性边界转确定性闭口范式)
- t2048(8/9,键盘桥已修 score 0→4;latch=2048 抗死锁体裁边界)/ angrybirds(8/9,隐藏弹道物理可测性边界)honest 留界
- 三分类铁论:0 模型造不出 / 0 3D 硬界——全是宿主键盘桥(L0 已修)/driver 覆盖(我域已增强)/可测性边界(游戏 exportState)
- P2:同款 Breakout 三档对照(flash ¥0.194/M2.7 ¥0.514/pro ¥0.417)+ 创始人锚(pro 碰撞 bug 被两便宜 player 假绿=人锚不可替代)
- 蒸馏:game-e2e §8(driver 1→8 型 + H 假阴四因归因铁律)、cheap-model §9(重生成区分实例bug/可测性/模型短板);W-G1 spec 执行进展回填;新增 L1 闭口报告
- 顺带:run.py/prompt.py 注释 六门→九门 对齐(我域,trivial)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 02:00:07 -07:00 |
|
zizi
|
824ff672e3
|
merge(wg1): 并入 L1 saolei-borderline 修复(tap-targets safeOnly 避负族 driver)
独立验证(saolei verdict pass=9门0挂、trial merge、roles.py 未碰)后并入 L1 38032c7:
✅ L1 完成(避负族 facet,真+验证):
- harness driver runTapTargets 加 safeOnly(规避/推理族只点 safe===true 确定性避负到 win;
安全放置族缺省关、零回归)
- saolei 题面加 safe x-ray 观测位(仅 _forensicsView·勿渲染)+ safeOnly + 断言改 result==win
- 重生成 saolei flash 一次过九门(revealed 0→71/all_cleared/win-latch)=borderline→confirmed-playable;
自产 safe 正确→坐实缺口在题面非模型;回归 tictactoe/invaders 全绿
- 家族二分法(安全放置 vs 避负/推理)沉淀进 cheap-model/game-e2e skill
冲突解:brief add/add(L1 与 L0 同路径不同切片)取 L1 版为底 + 追加 §十 L0 补充——
澄清 L1 治的是 lane/避负族(saolei),与 3b-B 派发面 driver:none 是不同 facet;
cheap-model skill auto-merge 已含两 facet(line 58 dispatch 面 / line 80 避负族)。
⚠️ 仍 pending(不同 facet):3b-B 派发面 design agent 给 driver:none(roles.py:32,安全放置族
在派发面拿不到 driver)=「一句话现生成 tap 类」缺口,L1 本次零碰 roles.py/studio.py→属 L1 下一步。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 04:56:42 +00:00 |
|
lili
|
38032c72b4
|
feat(wg1): tap-targets safeOnly oracle driver——扫雷 borderline 翻绿(自产缺口修复)
driver: runTapTargets 加 safeOnly(规避/推理族只点 safe===true、确定性避负到 win;安全放置族缺省关、零回归)。题面: saolei.json targets 加 safe x-ray 观测位(勿渲染)+ safeOnly + 断言 result==win。重生成 saolei: flash 一次过九门(revealed 0→71 / all_cleared / win-latch),自产 safe 正确→坐实缺口在题面非模型。回归 tictactoe(X)/invaders(win)全绿。沉淀 L1brief §九 + game-e2e/cheap-model skill 二分法。零碰 L0(boot-game-host/契约/门面)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 20:36:51 -07:00 |
|
zizi
|
238ec2dbe8
|
test(aigc-3b-B): 视觉终局达成——真游戏真玩入 feed(亲眼验);一句话现生成腿缺口=tap类driver:none→L1
3b-B 重跑视觉终局(mini-desktop·证据 wg1/gen-worker/evidence-3bB-final/):
✅ 视觉终局达成(亲眼复核截图):feed 里一款真渲+真玩有进展的井字棋(gameId=9306/versionId=93112)——
空盘「轮到X」→ 落子填盘 X·O → 「X 胜!」+ 重新开始(latch 终态);feed 真玩门 10/11 过
(no_demo_fallback/engine_rendered/lively_interactive 全 true,唯一 false=play_start 遥测非阻断)。
经真 HMAC 回调写链落库(验签通过 engineBundleLen=210891→建版本→组包 checksum 自洽→翻 feed)。
走兜底路(诚实标注):主路一句话现生成两次均失败,故取已验证过九门样板 tictactoe(便宜模型 flash 真生成、
verdict A-I 全 pass)的 engineBundle 经派发面真回调路落 feed,DB bundle 与样板 sha256 字节级一致。
仍是便宜模型真生成的过门游戏,只是非本次现生成。
★ 主路两次 fresh 失败真因(非模型壁垒,铁证):design agent 在 dispatch 面 run_studio(play_spec={}) 下
均给 driver:{type:none}→harness 盲打打不中目标→moves/score 恒 0→H_progress 挂+latch 不触发,repairs=5
耗尽。游戏本体全对(gen9306/9307 verdict 8/9 门过,targetX/Y/radius·board·moves 导出正确,G_input/
I_control/F_wiring 均过)。样板过门靠 lane brief 手供 play_spec.driver=tap-targets。
→ 蒸馏入 cheap-model §7:DESIGN_SYSTEM 须对离散点击类强制产 tap-targets driver(纯 L1 生成域,
moat『一句话现生成』腿的真·临门一脚)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 00:48:50 +00:00 |
|
zizi
|
23e86934d2
|
merge(wg1): 并入 L1 scale-20 放量 + 宿主键盘桥 fix(d754b71·关键盘输入缺口)
独立验证(不信自述)后并入 fix/host-keyboard-bridge(=wg1/scale-20 超集,merge-base d79f2c3):
✅ 宿主键盘桥 fix(d754b71·5行纯增量):boot-game-host.js attachInput() 补 window keydown/keyup
桥接(ctx.getInput 键盘通道原为空→方向键/空格游戏输入死),对齐 host-dev/host.js:427-428 既有范式,
inputBridge _assertType 白名单本已含 keydown/keyup=零兼容风险。独立验:tetris verdict 修后
pass=True/9门/0挂(翻绿铁证)、tictactoe pass=True。
L1 scale-20 14 款放量(briefs/results/calibration/m3_player_test.py + tictactoe/tetris 正样本):
主力 7/8 真可玩;spec 预判门面缺口几乎全推翻(CCD/文本HUD/网格/match-finding 便宜模型自写对),
真·L0 门面缺口收敛为唯一一处=宿主键盘桥(本 fix 已补)。trial merge 干净(仅 .agents skill
auto-merge),我 3b-B 文件(service.py/CallbackSignatureVerifier)完好。
校正:我 §5『点击坑=moat 真壁垒』系单样本(3b-B)过度泛化,与 L1 §9 scale-20 实证矛盾→已改为
承认便宜模型相当能干、真缺口=键盘桥(已修)+driver-coverage(harness),非模型能力。
重大上修:moat 生成质量远好于 3b-B 单样本所示;失败主因=宿主门面(已补)+harness driver 覆盖,非模型。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 23:49:40 +00:00 |
|
lili
|
4836a6f519
|
feat(wg1-scale20): 20基准放量(14款)+ 三方门验证 + driver库泛化 + 宿主键盘缺口定位
主力批 7/8 真可玩(Opus 对抗审计 0 假绿)、压测 match3 ✅;失败收敛:3 键盘款(2048/Tetris/Asteroids)挂宿主缺 keydown 桥=唯一真·L0 门面缺口(已 spawn_task 交 L0)、multiball/flappy/愤怒小鸟=driver-coverage(非模型)。spec 预判 CCD/文本HUD/网格/match/手势缺口全推翻(便宜 flash 自带 swept CCD/自写网格文本)。
- driver 库 1→6 型(tap-targets/flap-to-gap/seek-x/tap-pairs/key-cycle/paddle-intercept)+ drag 输入事件 + key() Arrow 修
- M3 视觉 player 当生产过滤器实证(与门 8/9 一致、抓显性空心)→ 门(地板)+M3(主观过滤)+创始人(人锚)三层互补
- 短板量化报告定稿 + 两 skill 沉淀(game-e2e §8 driver库/门承重/键盘缺口 · cheap-model §9 模型能力画像)
- 2 个 ultracode 对抗 workflow(审计10+诊断7 agents)抓 saolei 弱断言、纠 flappy 归因(driver 非模型)、定位宿主键盘根因
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 10:30:06 -07:00 |
|
zizi
|
c99014c243
|
test(aigc-3b-B): 派发面 e2e 真证安全面+全自动管线闭合(HMAC双向),P5 生成质量转 L1
3b-B e2e(mini-desktop 真跑·证据 wg1/gen-worker/evidence-3bB/):
✅ P0-P4 安全面+全自动管线=真证闭合(铁证 backend-callback-hmac.log + p4*.txt):
- HMAC 双向证:缺签名头→HTTP 401 / 错签(deadbeef≠482147b5)→HTTP 401 / 正签→过门(走到下游"任务不存在"非401)
=关死 /dify/callback-internal 裸 @PermitAll 缺口
- 全自动派发链真通:执行器认领 taskId→dispatchGeneric 投 §6.1 job→worker 真生成(真烧模型)→
HMAC 签名回调→验签通过→handleCallback 落库(gen-9303/9304/9305 三轮齐全)
❌ P5 一句话真生成=未达终局:三款全 nine_gate_failed。但截图(gen-9303-after-play.png)证生成
真出 on-theme 可渲可动的「点击小怪物」游戏(Score/3s 倒计时/多彩怪物 monsters/targetScore=12),
仅点击→计分坏(Score 仍 0)→九门确定性地板正确拦截「看着像但玩不了」=质量门正确履职、拒发不可玩。
判:L0 交付(管线+安全+质量门)已完成且证;缺=便宜模型把「点击命中→计分」写对=L1 生成域
(prompt 点击坑+模型档+player/calibration,run_studio 自修 max_repairs 未救回)→转 L1 v3 迭代。
附带:serve-and-play.sh 跨平台 Chrome 探测(CHROME_BIN 覆盖>Linux /usr/bin>macOS>PATH 兜底,
Linux 在前因 mini-desktop x86 是权威 e2e 机);p3bB_*.sql 发布四态/翻 feed 桩。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 16:20:28 +00:00 |
|
zizi
|
d59093f84c
|
feat(aigc-3b-B): 派发面真 worker 服务壳 + HMAC 服务间签名(关 @PermitAll 裸缺口)
P3 W-G1 派发面 3b-B:把 3b-A 的 stub worker 升级为真生成 worker 服务壳,
并补 HMAC-SHA256 服务间签名关掉 /dify/callback-internal 的裸 @PermitAll 安全缺口。
后端安全面(评审验证):
- CallbackSignatureVerifier(新):HMAC-SHA256 对回调原始字节验签,MessageDigest.isEqual
常数时间比对(抗时序),JDK 原生零新依赖,空密钥=回退 3b-A 仅内网兜底(灰度/回滚兼容)
- AigcExecutorProperties:加 callbackSecret 字段(来源 aigc.executor.callback-secret)
- AigcExecutorConfiguration:注册 Verifier @Bean(随 executor.enabled 装配)
- AdminAigcTaskController.difyCallbackInternal:接 @RequestBody String rawBody 先 HMAC 验签
(错签真 HTTP 401),再用同字节反序列化为 VO,补 traceId/status 非空(绕 @Valid 手动校验);
系统身份 id=0 注入 + finally clearContext 保留(部署窗口#3 同根因)
- application-staging.yaml:加 callback-secret 占位符 + worker-url 指真 worker :9401
worker 服务壳(语法+契约对账验证):
- wg1/gen-worker/worker/service.py(新):http.server 服务壳包 L2 run_studio
(design 展开一句话→自产 gatespec→九门真玩),run.py/agent_loop 逐行不改;
POST /generate 收 §6.1 job 立即回 202→后台串行真生成→读 bundle.iife.js→
HMAC 签名(逐字节对齐 Java 验签:json.dumps ensure_ascii=False 一次算定既签既发)→
POST 回调入参驱动落包入 feed
契约对账:执行器 dispatchGeneric job 含 brief/gameId/traceId/templateId ↔ service.py 读取一致;
HMAC 两侧密钥(CALLBACK_SECRET/AIGC_CALLBACK_SECRET)须逐字节一致。
e2e(worker 起+HMAC双向证+一句话真生成入feed真玩)待 mini-desktop 跑。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 15:03:53 +00:00 |
|
lili
|
405394d451
|
feat(wg1-gen): gate-H 推广 = design agent 自产 gate-spec + reframe 决策锁定
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) <noreply@anthropic.com>
|
2026-06-14 05:16:04 -07:00 |
|
lili
|
a205929f15
|
feat(wg1-gen): L1 对齐官方 latch 壳 + 确定性手感门 + player 校准(founder 锚揭天花板)
W-G1 生成主线 L1 worker 本轮收口(lane wg1/gen-worker;便宜模型 + harness 门兜底,HJ-GEN-001):
机制/契约
- 可测性红线 + P0 latch 终态:生成工厂导出 _forensicsView().state().phase
(booting|playing|gameover,进 gameover 恒驻留、禁自动重开),对齐官方 P3 契约;
flash 实测能遵此契约(v4/v5 latch 驻留 ✓)。
- 套官方 generic 壳:worker 产 generated-factory.js → entry-bundle 用 buildGenericHostConfig
装配(=官方 entry-generic.js 的取证超集,多透传 recHook 供 F 门)→ esbuild __GameBundle。
真玩门(七门→九门)
- 门 H 机制+latch:assertAfterPlay 进展断言(剩余↓ 等,证非空心) + expectLatch 真玩到
gameover 且驻留。
- 门 I 控制手感:controlCheck 连点验控制体平滑逼近(逮"一格一跳"/卡死)。
- 适配性真玩 driver:读 state 实体位置自动接球,解"盲打固定坐标打不动技巧游戏"的
H 假阴性(创始人亲玩 + v4/v5 regen 双重实证)。
质量评估(player 校准)
- studio(design/code/fix/player panel on AgentScope 2.0.1) + calibrate.py 校准 harness。
- 创始人亲玩锚揭结构性天花板:便宜 player(静态截图+数据)判不出物理/碰撞/控制手感
(把碰撞有问题的 pro 高估为最佳);gate-H 盲打会假阴性;founder/人锚不可替代。
"上下文是杠杆"实证:接地使成本 −50%、修复轮次 −80%;rubric 锚定使 player MAE 1.25→0.75。
含从 dev/2.0.0 @3108009 拉入的官方 P3 通用装载壳(_generic/ + generic-host-config.js + 双 spec)
作 L1 套壳靶(为 lane 自洽,内容与 dev/2.0.0 一致,后续 merge 自去重)。
未提交:AGENTS.md/.gitignore 的 localagents 改动(非本人);生成产物游戏目录(构建 artifact)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 04:58:25 -07:00 |
|
lili
|
6201f95146
|
feat(wg1-gen): 便宜模型生成可真玩轻游戏——L1 worker + 七门真玩 harness(HJ-GEN-001 成立)
W-G1 生成核心:brief→便宜模型写 GameHostFactory→esbuild __GameBundle iife→P1 bootGameHost
装载→本机 Chrome+CDP 七门真玩取证;失败回喂错因重试。只消费冻结契约,零改 P1/P2。
实测(deepseek-v4-flash 最便宜档):Pong/Simon/打地鼠 三款【七门全过真玩】,
单款 ¥0.01–0.03(远低于 ¥0.15 L1 闸门)。最优模型:flash 打底 + 难档升 deepseek-v4-pro(Simon 0 重试 ¥0.06)。
关键:实证「能生成代码 ≠ 能玩」——一处 prompt 输入坐标契约写错(误称 x/y∈[0,1],实为逻辑像素)
让生成游戏能编译/渲染/动但点击全失灵;Pong 因自走动画假绿混过、Simon 被正确判否。
为此加装 G 门(确定性 A/B 对照,隔离自走动画假绿)+ 修 prompt 后三款真过。
- harness:games/_wg1-gen/_shared/{entry-bundle 模板,index 模板,play.cdp.cjs 七门,serve-and-play.sh}(复用 ref buildRefHostConfig + browser-evidence.cjs)
- worker:wg1/gen-worker/worker/{_client(代理旁路),prompt(生成上下文包),validate(静态门+node --check),cost(¥折算),run(§3 编排+重试门)}
- golden-path 自检:ref 工厂 5/6(F=0 菜单态正确)+ probe 工厂 7/7 → harness 无假绿
- game-runtime/package.json:加 ws(CDP 驱动 devDep)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-13 22:50:24 -07:00 |
|