games-development-ai/docs/agent-specs/2026-07-03-生成引擎-实现与图说一致性对账-report.md

18 KiB
Raw Blame History

date, topic, status, sot-impact, 上级
date topic status sot-impact 上级
2026-07-03 生成引擎运行时一致性对账 已交付,双评审已过(Codex 一评 P1×3/P2×1 全采纳修订;Opus 二评 PASS、16 处 file:line 抽查全准、路径精度 P2 已修)(只读静态对账,三路并行读码,代码断言带 file:line、计划与决策类证据给文档指针;发现项待 doc-sync 与修码工单消费) 本档不改 SoT;产出两张清单——回写图说的 doc-sync 清单(§5,喂 W-DSGN)与修码清单(§6,与 W-S1 修复三单对账);预算红线口径分裂一项需创始人裁定(§3 发现一) docs/architecture/架构/生成引擎/agentic运行时架构图说.md

生成引擎:实现与运行时图说的一致性对账(2026-07-03)

1 总判

架构骨架与工程纪律层面,实现与图说高度一致;图说作为唯一 SoT 的时效已掉队约两周;唯一一组"实现违背设计意图"集中在便宜档续修反馈链上——它正是当前生产过门率卡在 1/6 的根因。

拆开说三句:

  • 骨架与纪律全部对得上。 三档同构跑 AgentScope、九门与富游戏三门的判定纪律(零自评、出题≠被考、driven 感知 advisory 分级、latch 同义词与限时降级)、单写者加有界续修、LOCKED_PLATFORM_FILES 锁平台文件、trace 公共五字段、A11 两段式加三断言——逐条在代码坐实,tier2 一侧没有一处实现违背设计纪律。A1A13 协议表的"现/建"自标在它的冻结时点(2026-06-24/25)是诚实的。
  • 图说快照停在 06-24/25,没吸收其后两周的五件大事:便宜档核心 Python 重写(06-26)、续修原语迁入 RepairMiddleware 与预算软化(07-01/02)、tier2 收敛环真跑判 conditional(06-28/29)、配置控制面 Nacos/yudao 反转(07-01)、质量四层塔 canonical 接管 D11 权重(07-02)。其中预算一条构成安全红线口径的 SoT↔生产码直接矛盾,要裁定、不只是回写。
  • 便宜档续修反馈链是唯一的"实现违背"聚集区:门的裁决产出了关键信号,反馈管道把它丢了。图说早就预言"收敛强依赖机器门把每类契约违规变成响亮可修反馈"(§4.2/§5.3),这条在便宜档没有被兑现到位。

判定口径四类,下文各表沿用:**【一致】设计与代码相符(含"设计说建且确实未建");【设计滞后】代码合法演进、图说没跟(需 doc-sync);【实现违背】代码违背设计意图或纪律(需修码,或改设计并留痕);【口径冲突】**两处权威说法互斥(需裁定)。

2 对账方法与证据边界

三路并行只读审计:便宜档(cheap-worker/、九门 harness、A11)、tier2(gen-worker、harness、收敛环 runbook)、协议与横切(A1A13 逐条、contracts/、game-cloud 派发链、配置控制面两份设计档、质量与验收门两 canonical)。全部静态读码、未运行任何链路;代码断言带 file:line(引用行号为 2026-07-03 工作区快照,会随代码漂移),计划与决策类结论给文档指针、不逐条标行号。

未核查项(诚实边界):D12 网关配额闸只确认 game-cloud aigc 存在控制平面装配,未追便宜档派发路径是否真强制(图说自注默认关闭);cheap_modify.py 执行段未逐行读(两段式与三断言已由 classify/assert/studio 侧坐实);latch 达终态分支的字段形状未展开;Agent Service 服务态"真跑未验证"是代码自述与 runbook 记录,本对账未做运行验证。

3 高严重度发现(七条,按处置紧迫度排)

发现一 · 预算红线口径分裂(【口径冲突】,需创始人裁定)。 图说三处(§5.2/§5.3/§5.7)把便宜档 per-gen「<¥10 且 fail-closed 越限即终止」写成安全纪律,标注创始人 2026-06-25 数字红线。但生产 Service 现为 soft_budget=True——越限走软停分支,设标记、提醒尽快 finish、交尽力产物不断链(cheap-worker/cheap_service_app.py:262-263tier2/gen-worker/worker/middleware.py:392-402),¥10 由此只剩软停线——当前实际硬上界是轮数(max_repairs=6)、model/tool 调用次数与墙钟的组合上界,尚缺显式的 RMB 硬地板公式;而 CLI 路仍是 hard(cheap_studio.py:161)。这是创始人 07-02 决策①(护城河续修不被预算旁路)之后的合法演进,但结果是同一条安全红线在 SoT、生产路、CLI 路三处取值不同。建议裁定为"两段式预算":软停线 ¥10(越线只许收尾类动作、交尽力产物)+ 硬地板(轮数/超时/收尾预算带,保证 ¥ 上界仍可证明),裁定后图说与 CLI 同步回同。

发现二 · 配置控制面反转未回写(【设计滞后】)。 07-01 创始人反转后,配置口径已收敛为「yudao 治理 + MySQL 版本账本 ⊕ Nacos 下发 ⊕ AgentScope per-POST 热重载」,Nacos/RocketMQ/Sentinel 进 MVP 生产 runtime——AGENTS.md §3.1 已改,而被它指为运行时单一真相的图说未改:§5.2/§5.8/ADR-4/A13 仍写「采 Langfuse 式热取 + GitOps 四闸」。两份配置设计档(06-3007-02 阶段二)的 sot-impact 都显式声明要回写图说、注"收口时回写"未执行。这是 SoT 注册表内的真实漂移,R5(文档口径漂移)现行案例。

发现三 · §4.1 便宜档整节口径落后于 Python 重写(【设计滞后】)。 §4.1 通篇仍以 Node「A-model/amodel-gen」叙述便宜档,现实是核心 06-26 起已整条 Python 化:cheap_studio.py(CLI)+ cheap_service_app.py(独立 AgentScope Agent Service),大面积复用 tier2 worker 包(config、三中间件、gate_judge、observability)。「Node 退役」必须拆开说:Node ReAct 编排(gen.mjs)已退为 A/B 对照基线,但 Node 工具与九门执行层(tools.mjs/play.mjs/serve-and-play.sh)仍是 Python 经 shell-out 调用的活地基(cheap_run.py:127,151,206,297)。照现文施工或评审会找错承重墙。

发现四 · §4.2 收敛环结论滞后,全线最高价值信息没进 SoT(【设计滞后】)。 图说仍以前瞻语气写「下一步收敛环……判断=go(留观微调)」。真跑(06-28/29,runbook)结论是 conditional:M3 能写出过大多数门的多系统富游戏,但自调「赢的条件/经济平衡」不稳(约 1-2/5 thrash 到 step_cap),创始人裁定瓶颈在 agent 层 win-balance、非工具层。据图说判这条线的成熟度会被误导为"已 go"。

发现五 · 续修原语已迁移,§5.3 叙述过时且代码内部注释反向失同(【设计滞后】)。 §5.3 把多轮定为「内部单轮 + 有界外层 resume(studio.py 编排层)≤6」。现实:续修已提升进 on_reasoning 的 RepairMiddleware——整局一个 POST 内在 finish 点拦截、重跑九门、结构化回喂(middleware.py:560-624),便宜档与 tier2 生产路共用;外层 resume 在 tier2 的 studio 路仍存,两套并存。附带一处代码内失同:tier2/gen-worker/worker/agent_loop/studio.py:3-6 头部注释声称"不再外层 repair",而同文件 :408-463 正是外层 resume——此处图说反而比代码注释新。

发现六 · 便宜档续修反馈链丢关键信号(【实现违背】,当前生产卡点根因)。 设计要求每类违规变"响亮可修反馈",实现把反馈做薄了四处:① gate_judge.py:100-102 只读 latch.after/reason,而便宜档 latch advisory 分支只产 phaseNow(play.cdp.cjs:1083)——"卡在 menu"三处可见却进不了反馈;② 反馈不携带 driver 类型,agent 不知道判卷用的是哪张卷;③ 游戏侧 console-log 信号不进管道;④ CLI 路收敛只认 check+build 绿,九门 verdict 事后算、不回喂(cheap_studio.py:202-204,246-249)。叠加两处脆弱隐形契约:driver 选择取决于取证 state 有无 targets/target 键(cheap_run.py:241-244,无任何文档与 schema 背书),play-spec「已存在不覆盖」不随续修重生(cheap_run.py:278-279)。这组问题与 07-03 卡 menu 归因(2 案驱动器约定漂移 + 盲修空转)完全互证,修复三单已在途;本对账补充的增量是 CLI 路回喂缺失契约无背书两点要一并进单。

发现七 · tier2 服务态与阶段一团队的"现/建"标注错位(【设计滞后】)。 图说把 Redis durable session、控制面、阶段一设计团队框成「待/Phase B/本地 runner 起步」。现实:Agent Service 服务壳已编码——create_app + RedisStorage/MessageBus + admin 只读三路由(roles/traces/cost,恰是 §5.2 phase-1 描述的最小切片)(tier2/gen-worker/service/app.py:272-291),但 run_studio 等价的服务态生成主链尚未完整落位(有界 resume/设计团队/L2·L3/成本/落库等循环外能力仍是 follow-up),且真跑未验证(代码自承只验能启、没跑过一回合 chat;收敛环显式走本地 runner);design_team.py 已以 worker-as-tool 落地四专家星形,且 studio 与批跑默认开启(use_team=True/do_design=True)。准确状态是「已编码、真跑未验证」——既非"待",也不许写"已落"。

4 分面发现表

4.1 便宜档(vs §4.1/§5.4/§5.6 左支/§六)

# 设计口径(§) 代码现实(file:line) 判定 严重度
1 预算 fail-closed §5.2/§5.3/§5.7 <¥10 fail-closed 生产 soft_budget=True 软停(cheap_service_app.py:262-263;middleware.py:392-402);CLI 仍 hard(cheap_studio.py:161) 口径冲突
2 生成核心口径 §4.1 通篇 Node「amodel-gen」 核心已 Python(cheap_studio.pycheap_service_app.py:300-354,复用 tier2 worker);Node 编排退为对照(compare_node.py:205),Node 工具/九门 shell-out 仍活(cheap_run.py:127,151,206,297) 设计滞后
3 续修反馈内容 "每类违规变响亮可修反馈" 丢 phaseNow(gate_judge.py:100-102 vs play.cdp.cjs:1083);无 driver 型、无 game-log(gate_judge.py:64-127) 实现违背 中(产品影响高)
4 收敛判据 门没绿+有预算→带 verdict 续修 Service 路 RepairMiddleware 回喂(cheap_service_app.py:270-293);CLI 路九门 verdict 不回喂(cheap_studio.py:202-249) 实现违背(CLI)
5 driver 契约 §5.4 标"待建" 隐形契约:state 有无 targets/target 键定驱动器(cheap_run.py:241-244);spec 已存在不覆盖(:278-279) 实现违背(脆弱)
6 续修放置层 内部单轮+外层 resume 生产改 RepairMiddleware 单 POST finish 点续修(middleware.py:560-563) 设计滞后 中低
7 九门+driven+latch §5.4 全套 全在(play.cdp.cjs:958-1094;driven :1115-1122;同义词 :1075;限时降级 :1082-1083) 一致
8 A11 两段式+三断言 §六 /classify 判意图+可信边界(cheap_classify.py:118-165);三断言真比对(cheap_assert.py:19-76) 一致
9 trace 五字段 §5.7 复用 tier2 TraceAdapter,落同一 schema(contracts/trace/README.md:7;README 廉价线仍写 SAA=轻微漂移) 一致
10 预算三层强制 §5.2 三层 Layer1 预测闸(middleware.py:355-391)+Layer3 deadline(:302-310)+Layer2 D12(Java 侧,默认关) 一致
11 L2 插件数 §4.1「十一插件」 实为 12(8 基元+4 编排) 设计滞后

4.2 tier2(vs §4.2/§5.1/§5.3/§5.4/§5.5/§5.6 右支/§5.7/§5.8)

# 设计口径 代码现实(file:line) 判定 严重度
1 收敛环结论 §4.2 前瞻"go(留观微调)" 真跑=conditional,瓶颈=agent 层 win-balance(runbook 执行发现) 设计滞后
2 服务态/控制面 "待 Redis durable/Phase B" 服务壳已编码(service/app.py:272-291),服务态主链未完整落位、真跑未验证(自承) 设计滞后
3 阶段一设计团队 "留 Phase B" design_team.py worker-as-tool 已落,studio/批跑默认开启 设计滞后 中高
4 续修机制 §5.3 仅外层 resume RepairMiddleware finish 点续修另立(middleware.py:560-624),两套并存;agent_loop/studio.py:3-6 注释反向失同 设计滞后
5 沙箱前置阻断 "小验结论不出来 spike 跑不起来" 06-28 裁定收敛环走 in-process,DockerWorkspace 转 Phase B——该句已被证伪 设计滞后
6 verdict 反馈补厚 §5.4/§5.7 未描述 F-1 已落:经济门三数+结构性错配直指(run.py:1000-1070,agent_loop/studio.py:456),仅记在质量 canonical 设计滞后
7 checkpoint "每轮落 Redis" 每外层 resume 落本地 JSON(work_memory.py:140-198) 设计滞后
8 四熔断+会话级预算 §5.3 四闸齐(middleware.py:302-349);spent_rmb 跨 resume 累计(agent_loop/studio.py:368);soft 档已加 一致
9 validate_play_scene 标"结构化=待" 剥注释/串后正则,非 AST(run.py:439-482) 一致
10 自产 driver 三层隔离 标"待" 仅 RunRecord 占位恒 None(run_record.py:184-191) 一致(未建)
11 源项目 schema/M3 成本 "待交后端"/"补上" schema 已落;RecordingChatModel(Anthropic)+活价回落告警已落(cost.py:46,newapi_pricing.py:138);feed→play 播放分支仍待 一致
12 九工具 §5.5 九个 实为 10(+validate_datatable,toolkit.py:368-379) 一致(计数漂移)

4.3 协议与横切(A1A13 快查 + 横切)

协议 图说标注 2026-07-03 现实 判定
A1 任务协议 现(dispatch+回调)+建(cancel/progress) dispatch+HMAC 回调+watchdog+idempotency_key 已落;cancel 副作用契约未建 一致
A2 状态+checkpoint 现+建;采 A2A TaskState 自研 6 态枚举,toA2aStatus() additive 投影到 A2A 命名;input-required 不产出 一致(A2A=对外投影层)
A2.5 统一 trace 建(不存在) contracts/trace 两 schema 已立、TraceAdapter 真跑 647 事件 设计滞后(与 §5.7 自身不自洽)
A3/A3.5 源项目 schema 已立,LocalFsStore 哈希寻址已验 一致
A4/A4.5 装载 现(左支)+建(右支) 左支现行;tier2 播放分支未建 一致
A5 验收门 现+建(tier2 fork) 两 verdict schema 已立、feie-005 全过 一致(fork 已推进到现)
A6 探针 现(LittleJS)+建(Phaser) Phaser 探针已落;第二引擎前不冻 一致
A7 工具签名 建·采 MCP FunctionTool 薄壳已落;MCP 加性默认关 一致
A8 送审 现·部分 GP9 已落;渠道 adapter 未抽 一致
A9 资产 现·骨架(护城河字段缺) 未补 license/ownership/血缘 一致
A10 玩法模板 现·部分 品类 schema 已立;一句话直驱 一致
A11 试玩/HITL 现·代码完成 两段式+三断言已落,计费 e2e 待窗口 一致
A12 通用检查门 现·散三处+建(收一门) 仍散,未收敛 一致(未做)
A13 配置注册表 建(零落地)·采 Langfuse 式 阶段〇+一①已落(Nacos/RocketMQ/Sentinel+middleware);口径已反转 yudao⊕Nacos 设计滞后(双重)

横切另有四条中低位发现:OTel 表述超前接线(trace of record 是自研 TraceAdapter→JSONL,OTel span 非落库源);"9d trace"(Java 侧 per-task 聚合喂 D11)与 A2.5 信封(tier2 per-step 事件流)是异粒度异栈的两回事,易混须在图说注明;图说漏引 07-02 质量 canonical(D11 权重管辖已移交、四层塔与 §5.4 三层校验共用 L1-L3 标签但异轴);prompt 治理四闸的 CI 接线仍是规划态(已诚实标注)。

5 doc-sync 回写清单(喂 W-DSGN,按优先序)

  1. §5.2/§5.8/ADR-4/A13:配置口径回同 07-01 反转(yudao⊕Nacos⊕per-POST;Langfuse 式退历史备选)——两份配置设计档 sot-impact 早已声明此项。
  2. §4.2:收敛环回同 conditional 结论 + agent 层 win-balance 瓶颈 + F-1 反馈补厚机制。
  3. §4.1:便宜档回同 Python 现实(cheap-worker 双入口、复用 tier2 worker 包;Node 拆两半表述);「十一插件」改 12。
  4. §5.3:续修原语回同(RepairMiddleware finish 点续修为生产主路,外层 resume 为 tier2 studio 路并存形态);预算段随发现一裁定回同。
  5. §5.1:checkpoint 措辞降准("每外层 resume 落本地 JSON;Redis durable=已编码未真跑");服务态/阶段一团队状态改「已编码、真跑未验证/已落且默认开启」。
  6. §5.4:删"DockerWorkspace 结论必须先出来"句(已被 06-28 裁定证伪,注 in-process 现实);§三 A2.5 行改"现(schema+adapter 已落)"消内部不自洽。
  7. 图说补引质量 canonical(D11 权重管辖、四层塔与三层校验的轴区分);contracts/trace/README 廉价线口径改 cheap-worker。
  8. 顺手项:tier2/gen-worker/worker/studio.py:3-6 头注释改正(代码内失同,随下次动该文件带修)。

6 修码清单(与在途工单对账)

归属 状态
反馈补厚:phaseNow/driver 型/game-log 进管道 W-S1 修复三单·单③ 已在单,本对账坐实行号
驱动器约定显式化(targets 键契约进模板/skill/schema)+ spec 重生条件 W-S1 修复三单·单① 已在单
起局鲁棒性(menuStartBtn 解耦 render) W-S1 修复三单·单② 已在单
CLI 路九门 verdict 回喂对齐(或显式声明 CLI=lab 工具、不承诺续修,写进工具头注释) 新增,建议并入单③ 本对账新发现
预算两段式裁定后的取值统一(生产/CLI/图说三处) 已裁(2026-07-03 一次性裁决:软停线 ¥10/¥50 + RMB 硬地板 ×1.5;裁决记录见重推演档 §5)→ W-ARCH ② 实施 已裁待实施

7 结语

这次对账没有发现结构性设计错误——被真跑毒打两周后,实现仍站在图说画的承重墙上;除便宜档续修反馈链这一处实现违背外,核心纪律守住。这对架构骨架是一次有分量的印证。要治的是两件事:把 SoT 的快照追上现实(§5 清单,机械可派),以及把"响亮可修反馈"从设计断言兑现成契约(§6 清单,已在修复三单射程内)。同日另一份第一性重推演以本对账为证据基底,给出差量建议。