games-development-ai/docs/plans/2026-06-22-003-feat-tier2-富游戏自治生成线-plan.md
lili 1b97c55ca0 docs(生成引擎): tier2 doc-sync — SoT① §4.2/§5.x 按 HANDOFF 回写真相(§6.8 #1 收口)
§6.8 评审 #1 阻塞:SoT① 忠实搬运 spike 前源档、把已落 accept 的 tier2 写成「待 spike」。
按 tier2/HANDOFF.md(2026-06-24)+ 内网凭据 P4 回写真相:
- §4.2 headline:翻成「核心已落 + 0号 spike feie-005 accept(n=1 机制验证,n≥30 统计待跑)
  + 服务化@8200,判断=go(留观微调)」
- §5.1-5.8 八面「现/建」全部按 HANDOFF 翻新(已落:Phaser 探针+九门+富游戏三门、
  四道收敛契约机器门、mmx、M3 接法、Tier2TraceMiddleware/成本折¥、L3软检、n≥30底座;
  待:n≥30统计/阶段1 Agent Team/控制面后端/feed第二装载)
- 纠 2 处设计叙述错(spike 实测推翻):① 官方 ReplyBudgetControlMiddleware 2.0.2 不存在
  →自建 on_system_prompt+硬熔断;② 纯内部多轮 ReAct 过早放弃→有界外层 resume(wg1范式回归)
- frontmatter status + §二补⑥(a) 标 doc-sync 已做;003 加「执行现状」块、修「待 spike」全局口径

门:全仓死链 0。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 00:06:38 -07:00

50 KiB
Raw Blame History

title, type, status, date, origin
title type status date origin
feat: tier2 富游戏自治生成线实现方案AgentScope 2.0.2 + Phaser feat active · Phase A + 0 号 spike feie-005 accept 已落(2026-06-24)· 待 n≥30 统计 + 阶段1 Agent Team 2026-06-22 docs/brainstorms/2026-06-22-tier2-整体实现方案-requirements.md

feat: tier2 富游戏自治生成线实现方案AgentScope 2.0.2 + Phaser

Summary

把 tier2 富游戏自治生成线从设计落成可执行序列:先在新顶层 tier2/ 搭起一个独立的 AgentScope 2.0.2 Python 模块fork 现有廉价线种子 worker、单写起步、本地 runner、不上 Agent Service再用 M3 写代码逻辑、mmx 产美术音乐,在三层校验(初期只焊 L1的笼子里连续迭代生成引擎。顺序连续、判据离散——M3 证路是软门、便宜档 n≥30 是硬门、退路树沿用《tier2 实现详设》的数字触发线,只有硬门通过才投入重机器(工作室 Agent Team、第二装载分支、配置外置、控制面、ReMe。Phase A集成+环境+迭代写成可立即执行的详细单元Phase B重机器写成纲要、显式 gated 在 B 门后。

执行现状(2026-06-24 spike / 2026-06-25 doc-sync)

本 plan 写于 spike 前。0 号 spike 已跑、feie-005 = decision=accept(M3 自治写面包店经营合成富游戏:9 道 L1 门 + 富游戏三门全过、finished=True、无熔断,约 20K/36K tokens、墙钟约 610s),判断 = go(留观微调)。落地实况(权威基准 tier2/HANDOFF.md):

  • 已落:U1U7 核心生成线(种子 fork + 有界外层 resume + Phaser validate/run/prompt/roles 重写)、Phaser CDP 探针 + 九门 + 富游戏三门、四道收敛契约机器门(validate_datatable/LOCKED_PLATFORM_FILES/validate_play_scene/finish 门)、mmx 资产工具、M3 Anthropic 接法 + RecordingChatModel 成本取证、Tier2TraceMiddleware→TraceAdapter(647 事件 dropped=0、cost_rmb=1.29)、L3 视觉软检 observe-only、n≥30 批跑底座(便宜档 client / RunRecord / 退路树判定器 / batch_run+aggregate)、服务化 P4 部署 mini-desktop:8200(Agent Service + 落库 MySQL+MinIO,save→fetch 已验)。
  • 两处早稿设计错已纠(回写 SoT①):官方 ReplyBudgetControlMiddleware 2.0.2 不存在 → 自建 on_system_prompt+硬熔断;纯内部多轮 ReAct 过早放弃 → 有界外层 resume(wg1 范式回归)。
  • 🔴 真待执行:n≥30 统计 go/no-go(本次 n=1 是机制验证、非统计;底座已就位可直接跑)· 阶段 1 工作室 Agent Team(决策⑤ Phase B)· 控制面/管理面对 tier2 接入(D12/GenerationDispatcher 在 SAA Java 后端)· feed→play 第二装载分支与正式源项目契约(交后端)· ReMe vs 树内 mem0 小验。
  • 下方 U8U10「B 门后才投·纲要」口径已被既成事实部分推翻(服务化/落库/观测已落):读时以本节 + tier2/HANDOFF.md 为准,不以 U8U10 纲要字面为准。

spike 收敛 commit 在 feat/tier2-phaser-engine


Problem Frame

绘境现有生成线只擅长超休闲单局小游戏LittleJS 声明式数据壳 + 便宜模型填空 + 九门 harness。合成、经营、挂机这类多系统富游戏肥鹅美食街档它做不出——难在重 UI 表现层、多系统稠密接线、大内容量。2026-06-20 对抗审查把"声明式数据壳 + 自由 JS"判到几何色块单局这一档的天花板,富游戏必须另起一轨。

tier2 就是这条轨用约束自治O2的单写 ReAct agent + Phaser 引擎,在确定性验收门里把富游戏逼出来。它的 WHAT 已在 origin 充分设计并过双评审。但整条线最深、最没证过的赌注是——便宜或中等模型的自治 agent 能不能稳定写出那约 56% 的表现层。历史上王蓝莓 12 文件经营游戏与 2026-06-11 Phaser 五门 spike 证的都只是"形态"真引擎工程装得下、Phaser 能过门),用的都是最贵模型 Fable + 重人工编排,不是便宜模型自治。这份计划要做的,是把这条赌注在最便宜的时候、用可判定的判据验掉,而不是在未验证的机器上过度投入。

前提措辞对齐2026-06-23origin 写「廉价线只擅长超休闲单局、声明式数据壳天花板」——此后 Mac 的 A-model 优化(feat/mac-amodel-foundation)已让廉价线也走向 agentic自治写真 JS + 插件库 + 轻量经营/合成,仍在 LittleJS。故两线边界不再是「声明式 vs 自治」的能力档,而是「引擎 / 表现层复杂度档」A-model 吃 LittleJS 轻量档tier2 吃 Phaser 重表现富游戏档(肥鹅美食街档)。详见下文「与 A-model 分支的关系」。

Key Technical Decisions

  • 代码落点 = 新顶层 tier2/:独立模块、与 wg1/(廉价线 Python worker并列、与 game-cloud 的 Java SAA 线运行期零耦合。理由origin 定 tier2 为"独立 AgentScope 模块、SAA 可删、运行期零依赖";物理隔离 + forbidden-import 守门把这条落地。这是可调整的——若改为 wg1/ 下或别的根,全部 **Files:** 路径随之平移。

  • 锁 AgentScope 2.0.2;但「迁移=版本钉」只对 AgentScope 框架接缝成立,种子业务模块链要按 Phaser 重写:迁移面取证证明种子用到的 AgentScope 框架符号(Agent/ReActConfig/UserMsg/OpenAICredential/OpenAIChatModel + duck-typed ChatUsage)在 2.0.2 全兼容、0 改签名——这层确实是版本钉requirements2.0.2)。studio.py 拖着的业务模块链(validate.py/run.py/roles.py/prompt.py)是 LittleJS 专属、要按 Phaser 重写、工作量≈net-newvalidate 的硬规则(禁 import / 禁 littlejsengine / 必须单 export default 工厂)对 Phaser 多文件 src/ 工程完全反转runscaffold/build/play 是 LittleJS 单包 iife 形态;roles.DESIGN_SYSTEM 全是声明式壳 few-shot。别让"框架符号兼容"误导成"整个 U2 是平移"。真正的 AgentScope 新功夫另在 net-new 的多轮 ReAct / Workspace / ServicePhase B

  • 顺序软、判据硬:先集成+环境再连续迭代顺序连续不设建设前的离散生死门但生成证据的判据保持离散可判定——A 门 = M3 证路(软,创始人试玩判"有肥鹅味的可玩雏形"B 门 = 便宜/强便宜档 deepseek-v4 跑 n≥30过门率/单款成本/收敛/失败分布达《tier2 实现详设》阈值退路树沿用《tier2 实现详设》数字触发线v4-pro<40%→更模板化 / 某系统装不出→补骨架 / 全线<20%→便宜模型天花板换档),达任一触发线即转退路、不再调参。双评审揪出"软化顺序时别把判据也软化"是本计划最要紧的一条纠正。

  • 起步只单写(阶段 2工作室 Agent Team阶段 1后置到 Phase B:最快拿到"M3+mmx 能不能产过门 mini-肥鹅"的真信号。生产态正式流程仍是阶段 1 工作室设计 → 阶段 2 单写实现;起步只跑阶段 2 是 spike 范围裁剪,不是永久颠倒。

  • 复用 _client.py/cost.py 走显式传参,禁读模块级全局cost.compute() 已是纯函数显式传参可直接复用;但 _client.chat() 内部读模块级 BASE_URL/env key —— tier2 调用须把 endpoint/key/model/pricing/quota/retry/timeout 全显式传入,否则暗中继承 SAA/L2 的模型路由与预算表,"SAA 可删"成空话。

  • CDP harness 对 Phaser 是重写适配层、不是参数化;其底座是迭代开跑前的前置阻断验证play.cdp.cjs 的探针硬编码 LittleJS 专属 #game-engine 选择器、window.__engine.snapshot().frame 帧源、window.__gameHostEngineInitFired boot 信号Phaser 的帧源、canvas 注入、活动 hash 全不同。沙箱底座agentscope-runtime BrowserSandbox 是否暴露足够 page.evaluate/CDP不够则回落复用 play.cdp.cjs 路 + Phaser driver 重写须在生成迭代开跑前出结论origin 标记的 spike 前置阻断项)。

  • tier2 装载/契约/沙箱独立,绝不碰 Tier0/1 ECS-lite 装载路contracts/agent-loop/source-project.schema.json 第 5 行明示 tier2 另立独立 schemaboot-game-host.jsopts.engine 注入边界可参照、但 Phaser boot 序列独立、不改它;build-from-source.mjsnew Function + 静态禁则路不复用tier2 是真 src/ 工程 + 真 Workspace 沙箱)。

  • M3 走 Anthropic 原生端点 + 启动校验 + 首 smoke 三证AnthropicChatModel + AnthropicCredential.base_url 指 new-api /v1/messages + thinking 分离;启动前校验 max_tokens 严格大于 thinking_budget;首个 M3 smoke 必须证明 thinking 分离 / 工具调用 / new-api quota 计费三者都通。模型统一从 new-api 出口走(baseUrl+NEWAPI_KEY),协议/SDK 不锁。

  • 三层校验初期只焊 L1L3 只评分绝不阻塞/拒发,绝不让 LLM 自评L1 编译/启动/运行错误必须解决、循环L2 设计符合尽量L3 效果M3 视觉软检)只进趋势/告警/人工终审减负,绝不参与"算不算完成"、绝不单独拒发(防 Goodhart

  • forbidden-import CI 守门升为 pre-spike 验收项= 《tier2 四层工程架构》§11 T4禁运行期 import SAA 配置 / 现有 studio.py 运行态 / L2 模型路由表;只许种子拷贝 + 显式传参复用 _client.py/cost.py

与 A-model 分支的关系(边界 · 复用 · 协调)

feat/mac-amodel-foundation 是 Mac 在做的 Tier1 廉价线「A-model」agentic 优化ReAct+M3 + 3 层架构 + 插件库 + 九门 SAA-mode仍在 LittleJS/game-runtime。它废了 gamedef 的 JSON 框死contracts/agent-loop/source-project.schema.json 升 oneOf2.0 = 真多文件 JS所以廉价线现在也是「便宜模型自治写真 JS + ReAct + 九门」——这更新了 tier2 立轨前提的措辞。但两线边界仍清晰、分立不收敛(创始人 2026-06-23 裁定):

  • A-modelTier1 = LittleJS 上的轻量自治生成(单局 + 轻量经营/合成,插件库 + sim-business 配方)。
  • tier2 = Phaser 上的重表现富游戏(肥鹅美食街档:大内容量 / 稠密 UI / 多系统耦合LittleJS 表现层撑不住那一档)。

边界从旧的「能力档(声明式 vs 自治)」精确为「引擎 / 表现层复杂度档」。tier2 计划据此维持不动,只对齐前提措辞,并接住 A-model 已造好的可复用资产(省 Mac 重新发明):

  • 插件契约(最大协同)→ U6 / 引擎能力包U10A-model 的 scene-fsm / hud-ui / session-score / timer-scheduler引擎无关、零语义契约 + 一份 sim-business 配方(game-runtime/src/plugins/*/api.d.ts + .agents/skills/agentic-amodel-generation.md)——正是经营/合成的系统骨架。tier2 Phaser 能力面复用其契约 / 命名 / sim-business 配方,仅渲染 impl 按 Phaser 重做impl 绑 Canvas、跨不了引擎
  • 循环范式 → U2 / U7game-runtime/tools/amodel-gen/gen.mjs 已把「多轮 ReAct done 门 + check/build 循环内快反馈 + 历史压缩 + 5 工具沙箱」在 M3 上跑通——tier2 的多轮 ReAct 移植其循环范式,别只从单轮 repair 摸索(种子仍是 Python studio.py,参照系加 amodel-gen
  • 九门基线 → U3 / U6A-model 改了 play.cdp.cjsSAA-mode __GameBundle 信封 + driven 感知 advisory 分级:无 driver 降 advisory、有 driver 恢复致命 + _forensicsView 必需。tier2 的 fork 源与行号锚点要钉到 A-model 合并后的版本重取其「driver 缺位→advisorydriver 到位→致命」范式正好复用到 tier2 修 latch 与经营门 observe→enforce。
  • 源项目契约 → 维持独立KTD7 / U9A-model 把 source-project.schema.json 升 oneOf(1.0/2.0),但 2.0 绑死 __GameBundle+九门+ECS-lite 装载路tier2 的 Phaser 工件装载序列不同(第二装载分支),故另立独立 schema、不加 3.0 变体进同一 oneOf——避免把 Phaser 差异焊进 LittleJS keystone 契约。

术语消歧tier2 的 L1/L2/L3 指三层校验门(编译门 / 设计门 / 视觉软检),与 A-model 分支的 L1/L2/L3 代码层plumbing / 插件 / 游戏码)是不同坐标系,勿混。

协调A-model 是 Mac 在飞分支(未并 dev/2.0.0)。它合并后 tier2 接缝(play.cdp.cjssource-project.schema.json会刷新——Mac 在 tier2 实现时对账两分支(见 tier2/HANDOFF.md)。


High-Level Technical Design

实现主轴(顺序软 / 判据硬 · Phase A 详 / Phase B 纲要):

flowchart TB
  subgraph PA["Phase A · 集成+环境+生成迭代(立即可执行)"]
    U1["U1 tier2 独立模块骨架<br/>落点 tier2/ · 锁 2.0.2 · 复用 client/cost · forbidden-import"]
    U2["U2 fork 种子 → 2.0.2 + Agent 内多轮 ReAct<br/>放开 max_iters · 两阶段角色(起步只单写)"]
    U3["U3 Phaser 浏览器探针路径(前置阻断验证)<br/>沙箱底座小验证 + CDP harness 为 Phaser 重写"]
    U4["U4 mini-肥鹅 Phaser 靶子<br/>经营骨架+耦合点+数据表schema+资产占位"]
    U5["U5 mmx 资产管线接成 agent 工具"]
    U6["U6 L1 门重写 + 富游戏专属门<br/>引擎无关 L1 + 联动/经济门 + latch"]
    U7["U7 生成迭代闭环 + 证据门<br/>M3 Anthropic端点+三层校验(只L1)+四熔断"]
    U1 --> U2 --> U7
    U1 --> U3 --> U7
    U4 --> U7
    U5 --> U7
    U6 --> U7
    U3 --> U6
  end
  U7 --> GA{"A 门 · M3 证路(软)"}
  GA -->|过| GB{"B 门 · 便宜档 n≥30(硬)<br/>达《实现详设》阈值?"}
  GA -->|不过| R["退路树(数字触发线)"]
  GB -->|达退路线| R
  GB -->|过 · 硬证据| PB
  subgraph PB["Phase B · 重机器B 门后才投 · 纲要)"]
    U8["U8 工作室阶段1 + Agent Service<br/>create_app + Agent Team(SubAgentTemplate/EXPLORE)"]
    U9["U9 第二装载分支 + tier2 源项目契约七要素"]
    U10["U10 平台化: 配置外置(引线A)+控制面(D12/trace)+ReMe"]
  end

依赖与排序U1 是地基其余都依赖U2/U3/U4/U5/U6 可并行推进,全部汇入 U7 的迭代闭环U3 的沙箱前置阻断验证须在 U7 开跑前出结论,且 U6 的门重写依赖 U3 的探针。Phase B 三单元在 B 门通过后才进入细化与建设。

Requirements

承接 origin 的 R1-R21见 origin: docs/brainstorms/2026-06-22-tier2-整体实现方案-requirements.md),按关注点分组并溯源到实现单元。

起步 · 集成与环境(无论生成证据如何都要做)

  • R1. AgentScope 集成 pre-spike 档:起步只用 Agent+ReActConfig+Workspace 本地 runner不上 Agent Service / Agent Team / 配置外置。→ U1, U2
  • R2. 单写循环演进 + 版本钉fork 种子,agentscope 钉 2.0.2,多轮自治从外层 repair 搬进 Agent 内 ReAct放开 max_iters),运行期零依赖现有 worker。→ U2
  • R3. Phaser 浏览器探针路径前置阻断验证Workspace 解决代码/构建/shellL1 门要的浏览器真跑低层探针接 CDP harness对 Phaser 是重写;底座可行性须迭代开跑前出结论。→ U3
  • R4. mini-肥鹅 fixture迭代靶子 + spike 产物目录范本):经营骨架(三系统+耦合点、先天过 boot产物以 Workspace.workdir 本地多文件工程形态、harness 直接构建+真跑,不走正式契约/落库。→ U4
  • R5. mmx 资产管线最简形态:接成单写 agent 可调资产工具。→ U5
  • R6. L1 门抽象重写:现九门为 LittleJS 单文件壳而建、带病灶,抽象重写进 L1引擎无关+ L2设计符合补富游戏专属跨表联动门/经济门、修 latch。→ U6
  • R7. 成本计量 + 轨迹最小版:接 new-api quota复用 cost.py),落最小轨迹仓。→ U1, U7

生成迭代 · M3 + mmx · 判据离散

  • R8. M3 走 Anthropic 原生端点 + smoke gate启动前校验 max_tokens > thinking_budget,首 smoke 证 thinking 分离/工具调用/quota 计费。→ U7
  • R9. 三层校验初期只焊 L1L2 尽量、L3 只评分绝不阻塞/拒发、绝不让 LLM 自评。→ U6, U7
  • R10. 四道熔断(步数硬顶/预算闸/卡死探测/双层超时),任一触发优雅收尾、每轮 checkpoint早期预算闸只需时间盒强制 fail-closed 是规模化前项。→ U7
  • R11. 生成证据判据离散A 门 M3 证路(软)/ B 门便宜档 n≥30达《实现详设》阈值才转重机器。→ U7
  • R12. 退路树离散触发沿用《tier2 实现详设》数字触发线,达任一线即转退路、不再调参。→ U7

重机器 · B 门通过后才投

  • R13. 阶段 1 工作室Agent Team 星形):SubAgentTemplate+PermissionMode.EXPLORE 只读设计 worker跨 session 对话,设计结论写工程内文档。→ U8
  • R14. 第二装载分支 + tier2 源项目契约七要素(独立 schema + finish 工具,与 ECS-lite 解耦并存)。→ U9
  • R15. 完整配置外置认领引用线A 阶段 2-3。→ U10
  • R16. 控制面接入D12 补 tier2 入口/预算/并发/补偿,统一 trace 契约,观测走 TracingMiddleware→OTel。→ U10
  • R17. 长期记忆/经验召回ReMe vs 树内 mem0起步前小验证 + 创始人定)。→ U10

收口 · 对齐(横切硬约束)

  • R18. 正典档对齐(《自治富游戏引擎》升三层校验口径)——已在 origin 收口提交完成。→ 已交付
  • R19. §11 六条跨档 TODO 作 follow-up doc-sync。→ Open Questions
  • R20. forbidden-import 守门升为 pre-spike CI 静态检查验收项(= 四层档 T4。→ U1
  • R21. spike 产物承载 = Workspace.workdir 本地多文件工程harness 直接构建+真跑,不走正式契约/落库(落库随重机器后置)。→ U4

Implementation Units

Phase A — 集成 + 环境 + 生成迭代(到 A/B 证据门 · 立即可执行)

U1. tier2 独立模块骨架 + 依赖 + 复用 + forbidden-import 守门

  • Goal:在 tier2/ 立起一个独立 AgentScope 2.0.2 Python 模块骨架,含独立依赖、对 _client.py/cost.py 的显式传参复用接缝、以及禁运行期 import SAA 的 CI 守门。这是其余单元的地基。
  • RequirementsR1, R7, R20
  • Dependencies:无
  • Files
    • tier2/gen-worker/requirements.txt(新建:agentscope==2.0.2 + phaser 工具链所需 + pyyaml;不复用 wg1/gen-worker/requirements-l2.txt 的 2.0.1
    • tier2/gen-worker/worker/cost_reuse.py(新建:薄包装,显式传 endpoint/key/pricing/quota内部转调 wg1/gen-worker/worker/cost.py:compute——纯函数可直接复用)
    • tier2/gen-worker/worker/client_reuse.py(新建:薄包装,显式传 endpoint/key/model/retry/timeout禁读 _client.py 模块级 BASE_URL/全局)
    • tier2/.agent(新建:模块目标/边界/红线声明,参照 game-runtime/games/_wg1-gen/.agent
    • tier2/ci/check-forbidden-import.sh(新建:参照 .agents/tools/check-deadlinks.sh 形制,扫 tier2/ 禁 import wg1.* 运行态 / SAA 配置 / L2 模型路由)
    • tier2/README.md(新建:指向本 plan + origin + agentscope-2.0.2-facts
  • Approachtier2 自有 env、独立锁 2.0.2。复用边界严格走"显式传参"——cost.compute() 已是纯函数直接调。注意 agent 循环真正消费的不是 _client.chat()(那是 L1 裸路、agent 不调),而是 _client 的模块级 BASE_URL + get_api_key() + import 副作用(.env 加载 + 必须在 import agentscope 前设 NO_PROXY 代理旁路——config.py:11 注释明示是 spike 头号坑)。所以要显式参数化的是 endpoint/key 来源 + 显式、有序地处理那个代理旁路副作用,而非包装 chat()。forbidden-import 脚本进 CIpre-spike 验收项)。
  • Patterns to followwg1/gen-worker/worker/cost.py:compute(纯函数范本)、game-runtime/games/_wg1-gen/.agent(模块隔离声明)、.agents/tools/check-deadlinks.shCI 脚本形制)
  • Test scenarios
    • tier2/ci/check-forbidden-import.sh 对一个故意 import wg1... 的样例文件返回非零(守门生效);对干净 tier2 代码返回零。
    • cost_reuse 用显式传入的 pricing/qpu/usd_rate 调 compute,结果与直接调 wg1 cost.compute 一致(复用未走样)。
    • client_reuse 在未设模块级 BASE_URL 时仍能用显式 endpoint 工作(证不依赖全局)。
  • Verificationpip install -r tier2/gen-worker/requirements.txt 成功且 agentscope.__version__ == "2.0.2"forbidden-import CI 在干净树通过、对违例样例失败;复用包装的单测绿。

U2. fork 种子 worker → 2.0.2 + Agent 内多轮自治 ReAct

  • Goal:以 wg1/gen-worker/worker/agent_loop/studio.py 为种子拷贝到 tier2/,版本钉 2.0.2(代码零签名改),把多轮自治从外层 repair 循环搬进 Agent 内 ReAct放开 max_iters),并按两阶段重写角色 prompt起步只单写阶段 2
  • RequirementsR1, R2
  • DependenciesU1
  • Files(标注 fork=框架接缝可平移 / 重写=LittleJS 专属、按 Phaser 重做、工作量≈net-new
    • tier2/gen-worker/worker/agent_loop/studio.pyfork:编排骨架可平移;_agent_replyReActConfig(max_iters=1) 放开为多轮,外层 for attempt in range(max_repairs) 改为 Agent 内 reason→act→读结果→再 reason
    • tier2/gen-worker/worker/agent_loop/config.pyfork:保留 RecordingChatModel.__call__ 成本取证覆写——2.0.2 仍命中;清 config.py:30-32 关于 DeepSeek cache 的过时注释)
    • tier2/gen-worker/worker/validate.py重写:现 extract_code 只认单 ```js 块、validate 硬规则=禁 import / 禁 littlejsengine / 必须单 export default 工厂——对 Phaser 多文件 src/ 工程完全反转,重写为多文件抽取 + Phaser 工程校验)
    • tier2/gen-worker/worker/run.py重写scaffold/build/play 三件是 LittleJS 单包 iife 形态,换成 Phaser 多文件 scaffold + 构建 + Phaser CDP harness 接线)
    • tier2/gen-worker/worker/prompt.py重写build_messages 按 Phaser 工程 + 两阶段重组)
    • tier2/gen-worker/worker/agent_loop/roles.py重写DESIGN_SYSTEM 全是 LittleJS 声明式壳 + gatespec/tap-targets few-shot按 Phaser 富游戏 + 单写实现角色重写;阶段 1 工作室角色留 Phase B
  • Approachfork-为-起点、独立演进、运行期零依赖现有 worker、不回写origin §1.1)。分清两层AgentScope 框架接缝(studio.py/config.py 的 6 符号)据迁移取证是版本钉、零签名改,重点回归验证 RecordingChatModel.__call__ 仍被 Agent 经 await model(...) 命中(成本取证命脉);validate/run/prompt/roles 是 LittleJS 专属业务逻辑、需按 Phaser 重写≈net-new按"6 符号兼容"排期会严重低估。多轮 ReAct 也是 net-new种子是单轮用 2.0.2 Agent+ReActConfig(max_iters=N)
  • Execution note:先为"Agent 内多轮 ReAct 写源→build→读 verdict→再 reason"写一个最小集成测试mock 模型 + 假 verdict证循环骨架跑通再接真 M3。
  • Patterns to followwg1/gen-worker/worker/agent_loop/studio.py种子run_studio@230 / _agent_reply@153 / repair@266 / 五接线点@270-300config.py:RecordingChatModelusage 取证)
  • Test scenarios
    • Agent 内多轮mock 模型先返回"调写工具"再返回"纯文本收尾",循环正确在收尾终止、产出 src/。
    • max_iters 硬顶mock 模型永远调工具,循环在 max_iters 处停(不无限)。
    • RecordingChatModel.__call__ 在 2.0.2 被命中:跑一轮真/mock 模型,断言 per-call usageinput/output/cache_input tokens被捕获。
    • 版本钉:agentscope.__version__ == "2.0.2" 且 6 个框架符号 import 不报错。
    • 消息形态复验2.0.2UserMsg(name, content=str) 仍把 str 包成 TextBlockagent.reply 返回 block-list Msg(这层是形态契约、不在 6 符号 import 面内)。
  • Verification:最小集成测试绿;一轮 mock 端到端(组 context→reason→act 写 src/→读 verdict→收尾跑通usage 捕获非空。注意6 符号 import 通过≠迁移完成——validate/run/prompt/roles 的 Phaser 重写另有各自验收(不被本单元的框架接缝绿误判为"迁移已完成")。

U3. Phaser 浏览器探针路径spike 前置阻断验证 + CDP harness 重写)

  • Goal:先做沙箱底座小验证定方案,再把 play.cdp.cjs 的低层探针为 Phaser 重写(参数化引擎钩子 + 新增经营 driver。这是生成迭代能否照设计跑起来的前置阻断项。
  • RequirementsR3
  • DependenciesU1
  • Files
    • tier2/harness/SANDBOX-PROBE.md新建小验证结论——agentscope-runtime BrowserSandbox 是否暴露足够 page.evaluate/CDP不够则回落自建薄沙箱 + 复用 play.cdp.cjs 路)
    • tier2/harness/play-phaser.cdp.cjsfork 自 game-runtime/games/_wg1-gen/_shared/play.cdp.cjs:参数化 canvas 选择器 #game-engine、帧源 window.__engine.snapshot().frame、boot 信号 window.__gameHostEngineInitFired 三个 LittleJS 专属钩子为 Phaser 等价;新增经营类 driver
    • tier2/harness/drivers/business-sim.driver.js(新建:经营品类确定性 driver——"点合成→凑齐订单物品→交单→看金币涨"序列)
  • Approach:先出 SANDBOX-PROBE 结论(前置阻断),它决定本地 runner 选型。CDP 探针对 Phaser 是重写适配层——帧源、canvas 注入、活动 hash 取法全不同,不是简单参数化。沿用 play.cdp.cjscheckAssertion/runDriver 分发/九门组装骨架,但引擎钩子与经营 driver 全换。
  • Patterns to followgame-runtime/games/_wg1-gen/_shared/play.cdp.cjs(探针 #game-engine、__engine.frame、boot 信号、9 driver runDriver@217、checkAssertion@189、九门组装 main@894game-runtime/src/host/boot-game-host.jsopts.engine 注入边界,参照不改)
  • Test scenarios
    • Covers AE机制地板一个手搓的过门 Phaser mini 经营页跑过重写后的 L1 门boot/frame/像素/hash/输入改状态/控制跟手)。
    • 一个故意空壳页(不响应输入)被重写后的门判 fail守假绿
    • business-sim driver 真输入驱动 mini-肥鹅到赢/输双终态并 latch。
    • 沙箱探针矩阵navigate/screenshot/page.evaluate/输入注入逐项在选定底座上可用SANDBOX-PROBE 结论的可执行验证)。
  • VerificationSANDBOX-PROBE.md 出明确结论(复用现有 CDP 或回落自建薄沙箱);重写后的 harness 对过门页 pass、对空壳页 fail经营 driver 跑通赢输双路径。

U4. mini-肥鹅 Phaser 靶子工程 + 数据表 schema + 资产占位

  • Goal:预建 mini-肥鹅 经营骨架 Phaser 工程作迭代靶子(三系统+耦合点、先天过 boot数据表 schema 留空给 LLM 填,配共用资产占位图。产物以 Workspace.workdir 本地多文件工程形态承载。
  • RequirementsR4, R21
  • Dependencies:无(可与 U2/U3 并行)
  • Files
    • tier2/fixtures/mini-foie-gras/(新建 Phaser 经营骨架工程:合成系统 3×3 棋盘 / 资源系统 {coins,ingredients} / 订单系统;耦合点=合成产出进库存、订单读库存、金币门控解锁;参照 game-runtime/games/wanglanmei-ref/src/game-shop.js 的系统结构Phaser 重写非代码复用)
    • tier2/fixtures/mini-foie-gras/data/(数据表 schema12 物品 / 6 合成链 / 5 订单 / 2 货币,留空给 LLM 填值)
    • tier2/fixtures/_assets/(共用资产池占位图)
  • Approach按《tier2 实现详设》mini-肥鹅 fixture 规格 mini 化复刻——砍任务弹窗/背包深度/上百物品,留三个联动系统 + 胜负(赢=金币 20→100输=连续 3 订单流失)。是 Phaser 版(不是 LittleJS 的 wanglanmei-ref 代码复用,只参照系统/耦合结构。spike 产物不走正式源项目契约/落库——harness 直接在 workdir 构建+真跑。
  • Patterns to followgame-runtime/games/wanglanmei-ref/src/game-shop.js@729 经营骨架、entry.js@42 引擎动态 import Option C 范式、《tier2 实现详设》mini-肥鹅 fixture 规格
  • Test scenarios
    • 骨架先天过 bootmini-肥鹅 工程构建 + 真跑过 U3 的 L1 boot/frame 门(无 LLM 填值也能起)。
    • 跨表耦合可达:合成产出的物品能满足某订单的 requires跨表可达性经营专属硬门的前提
    • 胜负双路径harness driver 能把骨架驱动到赢(金币达 100和输连续 3 流失)双终态。
  • Verificationmini-肥鹅 骨架构建成功、过 boot 门;赢输双路径可被 driver 驱动到 latch 终态。

U5. mmx 资产管线接成 agent 可调工具

  • Goal:把 mmx-cli 接成单写 agent 可调的资产生成工具(进 Toolkit、有 tool schema产美术/音乐,用量计入成本台账。
  • RequirementsR5
  • DependenciesU1
  • Files
    • tier2/gen-worker/worker/tools/mmx_asset_tool.py(新建:包装 mmx-cli 为 AgentScope Tool 工具函数,参数 schema = 资产类型/描述/规格;产物落 Workspace.workdir 资产目录)
  • Approach最简形态——mmx 作 agent 同一 ReAct 回路里可调的资产工具(符合"一台游戏工作站"范式),而非旁路并行管线。用量 quota 计入 cost_reuse 台账。资产产物进 fixture 的 _assets/ 同构目录。
  • Patterns to followmemory mmx-asset-pipelinemmx-cli 用法、quota 对账、AgentScope 2.0.2 Toolkit(tools=[...]) + Tool 工具函数(见 agentscope-skill v2-building-blocks
  • Test scenarios
    • mmx 工具被 agent 调用一次,产出资产文件落 workdir、且 quota 计入台账。
    • 工具失败mmx 不可达/超时返回结构化错误agent 能据此降级(不崩循环)。
  • Verificationagent 经工具调用产出一个占位级资产;失败路径返回可恢复错误。

U6. L1 门抽象重写 + 富游戏专属门

  • Goal:把现九门抽象重写进 L1引擎无关的确定性门补 tier2 富游戏专属的跨表联动门、经济门、latch胜利/弃守分流)的 assertAfterPlay 规格。
  • RequirementsR6, R9
  • DependenciesU3
  • Files
    • tier2/harness/gates/l1-engine-agnostic.js(新建:能装载/不报错/帧 delta/像素回读/活动 hash/引擎调用前缀/输入改状态/控制跟手——从九门抽象重写、引擎无关)
    • tier2/harness/gates/business-sim-gates.js(新建:跨表联动门(订单引物品可达·合成 DAG 无环)+ 经济门(可盈利可破产)+ latch 分胜利/弃守)
  • Approach:现九门为 LittleJS 单文件壳而建、带病灶latch 空壳蹭过。抽象重写时三层职责绝不混——L1 确定性门拒发权全来自确定性信号、零 LLM 判定;富游戏专属门走 observe→enforce默认只观测达标率稳后才赋拒发权
  • Patterns to followgame-runtime/games/_wg1-gen/_shared/play.cdp.cjs(九门组装 main@894、checkAssertion@189、latch 终态轮询@1040、readGameState@168 可测性红线、《tier2 四层工程架构》§4.1 三层校验
  • Test scenarios
    • 联动门:订单 requires 无法被任何合成链产出的工程被判 fail跨表可达性合成链成环被判 failDAG 无环)。
    • 经济门:开局即破产/永远攒不到目标金币的数值配置被判 fail可盈利可破产
    • latch只合成不交单的空转工程不蹭过 latch弃守 ≠ 胜利)。
    • observe→enforce新增门默认只 observe记录不拒发达标率阈值后才 enforce。
  • Verification:联动/经济/latch 门对正例 pass、对各退化反例 failobserve/enforce 档位可配。

U7. 生成迭代闭环 + 证据门M3 + 三层校验 + 四熔断 + A/B 门 + 退路树)

  • Goal:把 U1-U6 汇成可跑的生成迭代闭环——M3 走 Anthropic 原生端点写代码、三层校验(初期只焊 L1裁决、四熔断关着并落 A 门M3 证路软)/ B 门(便宜档 n≥30 硬)证据门与退路树触发线 + 采集字段。
  • RequirementsR7, R8, R9, R10, R11, R12
  • DependenciesU2, U3, U4, U5, U6
  • Files
    • tier2/gen-worker/worker/agent_loop/m3_model.py(新建:AnthropicChatModel+AnthropicCredential.base_url 指 new-api /v1/messages+thinking启动校验 max_tokens > thinking_budgetRecordingChatModel 的 Anthropic 变体——subclass AnthropicChatModel 同样覆写 __call__ChatUsage⚠️ 现有 RecordingChatModel(OpenAIChatModel) 对 Anthropic 路不生效不做这个变体A 门 M3 路的 per-call usage 抓不到、成本证据链断、A 门与 B 门成本口径不可比)
    • tier2/gen-worker/worker/finish_spike.py(新建:spike-grade 最小产物收尾。M3 开 thinking 时 generate_structured_output 的强制 tool_choice 被 Anthropic 拒——改用 tool_choice=auto 非强制 + 兜底重试,或一个最简 finish 工具把多文件 src/ 吐到 Workspace.workdir,不走正式契约/落库(与 R21 一致。Phase B U9 升正式 finish + 源项目契约)
    • tier2/gen-worker/worker/breakers.py(新建:四熔断——步数硬顶/预算闸时间盒/卡死探测/双层超时;预算闸早期只时间盒上限)
    • tier2/gen-worker/worker/evidence/gates.py新建A 门 M3 证路记录 + B 门 n≥30 统计阈值引《tier2 实现详设》§过门判据,不复列)
    • tier2/gen-worker/worker/evidence/fields.py新建采集字段表——run_id/model/stage/pass/repairs/fail_stage/fail_system/cost_rmb/wall_s/file_count/长程一致性,承《实现详设》)
    • tier2/gen-worker/worker/evidence/retreat.py新建退路树数字触发线——v4-pro<40%/全线<20%/超 max_iters
  • Approach:闭环 = 组 context→M3 reason→Workspace act 写多文件 src/→finish_spike 收尾吐产物到 workdir→build→真跑→三层校验→repair/checkpoint→产出。初期只焊 L1L2/L3 渐进L3 永远软。A 门是两段与,不是纯软门:① M3 产物先确定性过 L1机器判别对崩溃页试玩② 再创始人试玩判"有肥鹅味的可玩雏形"(软)——两段都过才算 A 门过。B 门硬(便宜档 deepseek-v4-flash/pro 各 n≥30过门率/¥/收敛达《实现详设》阈值)才允许转 Phase B。给"A 门后、B 门 n≥30 前"的前置物调参加显式上限≤K 轮或 ≤¥/≤墙钟,超即按退路树 KEEP/缓行处置),把"不再调参"从触发线之后前移一个兜底闸,杜绝未达触发线时无限调参。退路树达任一数字触发线即转退路、不再调参。环境切分见 Risks——本计划"项目初始化"在 6c6g 搭骨架,"运行调优"M3+mmx 真生成、n≥30 spike、CDP 真跑)转 Mac/mini-desktop。
  • Execution note:先 M3 smokethinking 分离/工具调用/quota 三证)再接迭代闭环;先 M3 证路A 门再用便宜档比成本B 门 n≥30
  • Patterns to followwg1/gen-worker/worker/agent_loop/studio.py(迭代骨架)、wg1/gen-worker/worker/cost.pyper-model 折¥、《tier2 实现详设》§模型矩阵/过门判据/采集字段/退路树
  • Test scenarios
    • M3 smoke一次 M3 调用证 thinking 分离(拿到 ThinkingBlock+ 工具调用 + quota 计费三者都通。
    • M3 路 per-call usage 捕获:RecordingChatModel(AnthropicChatModel) 跑一次 M3断言 input/output/cache_input tokens 被抓到非空(成本证据链不断)。
    • 闭环首次端到端(独立验收门 · 最高风险点)M3 真调一次 → 写多文件 src/ → finish_spike 收尾 → build → Phaser harness 真跑 → 三层裁决 → 产出一行采集。这是闭环首次贯通的独立 gate不被分散子测试掩盖。
    • 启动校验:max_tokens <= thinking_budget 配置在启动期被拒(不到运行期才撞)。
    • 四熔断:步数/时间盒/卡死/超时各造一个触发样例,闭环优雅收尾、每轮 checkpoint 存在。
    • 证据采集:一次迭代 run 产出采集字段表一行pass/repairs/cost_rmb/fail_system 等齐全,M3 路成本非空)。
    • A 门两段与M3 产物未过 L1 时 A 门判不过(不靠对崩溃页试玩);过 L1 + 创始人试玩才过。
    • A/B 门逻辑 + 调参上限mock 一批 run 的 pass 分布B 门按《实现详设》阈值正确判 go / 退路A→B 间调参超 K 轮上限即按退路树 KEEP/缓行(不无限调)。
  • VerificationM3 smoke 三证 + M3 路 usage 非空闭环首次端到端独立门通过四熔断各自可触发并优雅收尾一次迭代产出完整采集字段A/B 门 + 退路树 + 调参上限对 mock 分布给出正确判定。

Phase B — 重机器B 门通过后才投 · 纲要)

以下三单元在 B 门硬证据通过后才进入细化与建设。此前不投,避免在未验证的机器上过度排细节。细度为纲要级——建设前据 origin + 当时实测再细化。

U8. 工作室阶段 1 + Agent Service

  • Goal:上官方 Agent Servicecreate_app+ Agent Team 星形(阶段 1 工作室多 agent 设计),恢复生产态两阶段。
  • RequirementsR13并解除 R1 的「pre-spike 不上 Agent Service」限制——service 化是 R1 显式 deferred 到 B 门后的部分,不是新需求
  • DependenciesU7B 门通过)
  • Files纲要tier2/service/create_app + storage/message_bus/workspace_managertier2/gen-worker/worker/agent_loop/studio_roles.py(阶段 1 设计 worker 角色)
  • Approach纲要:用官方 create_app(storage, message_bus, workspace_manager)REST+SSE+durable sessionRedis 后端);阶段 1 工作室 = Agent Team 星形,只读设计 worker 经 create_app(sub_agent_templates=[SubAgentTemplate(permission_context=PermissionMode.EXPLORE)]) 注册、leader AgentCreatesubagent_type 拉起——AgentScope 原生机制(见 agentscope-skill v2-deploy
  • Test scenarios纲要:阶段 1 leader 经 AgentCreate 拉起只读 worker、worker 不能写文件EXPLORE 生效);阶段 1→2 收敛到单写Agent Service POST /sessions+SSE 断线 replay。
  • Verification:阶段 1 多 agent 设计跑通且只读、阶段 2 单写、SSE 可恢复。

U9. 第二装载分支 + tier2 源项目契约七要素

  • Goal:立 tier2 自己的源项目契约(七要素)与 feed 第二装载分支,与 Tier0/1 ECS-lite 装载路解耦并存。
  • RequirementsR14
  • DependenciesU7B 门通过)
  • Files纲要contracts/agent-loop/tier2-source-project.schema.json(新建独立 schema绝不扩 source-project.schema.json)、game-runtime/src/host/boot-phaser-host.js(新建第二装载分支,参照 boot-game-host.js 的 opts.engine 注入边界但 Phaser boot 序列)
  • Approach纲要:七要素=类型标记/文件树 manifest/入口/构建 profile/依赖锁/内容哈希/落库寻址finish 工具的参数 schema 与该契约共用一份定义(防漂移)。绝不碰 Tier0/1 装载契约与 build-from-source.mjsnew Function 路。
  • Test scenarios纲要tier2 Phaser 工程经第二分支落库→取回→feed 真跑Tier0/1 装载路不受影响回归finish 工具产物形状 = 契约认的形状。
  • Verificationtier2 产物 feed 真跑通Tier0/1 装载零回归。

U10. 平台化:配置外置 + 控制面接入 + ReMe

  • Goal完整配置外置引线A 阶段 2-3、控制面接入D12/统一 trace 契约)、长期记忆 ReMe让 tier2 被配置/观测/审计/限流地管起来。
  • RequirementsR15, R16, R17
  • DependenciesU8, U9B 门通过)
  • Files纲要:认领引用《生成主线架构演进路线》阶段 2-3不另立分期contracts/trace/additive 立位,公共核心子集+扩展段tier2 接 D12 运行治理门入口
  • Approach纲要配置外置归线A、本档只引用trace 走官方 TracingMiddleware→OTel→Studio + adapter 映射统一契约D12 现仅覆盖 SAAtier2 入口/预算扣减/并发释放/失败补偿需补ReMe vs 树内 mem0 起步前小验证 + 创始人定;强制 fail-closed 预算闸自建 Middleware订阅 ModelCallEndEvent)。
  • Test scenarios纲要:配置改 prompt/模型不发版生效轨迹按统一契约公共核心子集可查D12 对 tier2 入口限流/降级生效fail-closed 预算闸越硬上限即终止本次生成。
  • Verification:配置热改生效、轨迹可反查、预算闸硬熔断。

Scope Boundaries

早期不做B 门硬证据通过后才投)

  • 工作室 Agent Team阶段 1、官方 Agent Service 服务化、第二装载分支与完整源项目契约、完整配置外置、控制面/管理面 UI、引擎能力包接口抽象、ReMe 长期记忆、强制 fail-closed 预算闸——全排在 B 门后(即 Phase B

本计划不做(属主在别处或别线/别会话)

  • 不重排 0 号 spike 可跑 runbook归《tier2 实现详设》与控制面治理细节归《agentic 集成架构》)——只引用、只落执行序列。
  • 不碰 gamedef 废除(另一会话);不碰 SAA 廉价线运行态运行期零耦合forbidden-import 守门)。
  • 不做 Cocos / Tier3 / 3D / 渠道导出正交轴、Phaser 证成后)。
  • 不拍实测类阈值¥3/款、过门率、ReMe vs mem0迭代中校准。

Deferred to Follow-Up Work

  • 《tier2 四层工程架构》§11 六条跨档 TODOstudio.py "演进 vs fork" 措辞统一、trace 契约立位时机、SAA 线 player 软门是否与 tier2 同步收紧等)作 doc-sync follow-up。

Risks & Dependencies

  • 最大风险(全线 go/no-go 所系):便宜/中等模型自治写 56% 表现层能否稳定达 B 门阈值——零证据,正是 U7 迭代要验的赌注。务必与"2026-06-18 已证便宜模型产 Tier0/1 声明式数据壳过门"硬区分后者已证、是另一档gameDefinition 数据壳tier2 的 Phaser 富游戏自治零证据,历史 Fable+Phaser 只证形态。
  • 前置阻断U3Phaser 浏览器探针路径可行性agentscope-runtime BrowserSandbox 够不够,不够回落自建薄沙箱)须在 U7 迭代开跑前出结论,否则 spike 跑不起来。
  • 运行环境切分(逐单元 · 6c6g 搭骨架 / Mac·mini-desktop 跑调优)6c6g 禁 chromeexit 144、本机零依赖凡需真跑 chrome/headless+esbuild 的验证必在 mini-desktop。逐单元归属——6c6g 可完成U1pip install / 纯函数复用单测 / forbidden-import CI、U2mock 模型集成测试 / 版本钉 / 消息形态复验、U4 与 U5 的骨架与 schema 文件创建。必须 mini-desktop 真跑U3page.evaluate/CDP 探针矩阵真验、U4mini-肥鹅 构建+真跑过 boot 门、U6门对过门页 pass/空壳页 fail 真验、U7M3 smoke / 四熔断真触发 / 闭环端到端 / n≥30。即"项目初始化(骨架+mock 级)"在 6c6g 完成、"运行调优(真跑迭代)"转交 Mac。
  • 外部依赖new-api 网关(baseUrl+NEWAPI_KEY,凭据见 docs/内网凭据与端点.mdM3 走 Anthropic 端点mmx-cli创始人已亲验已 clone 的 AgentScope 2.0.2 源码 /root/oss/agentscope
  • 版本风险tier2 独立锁 2.0.2不随廉价线2.0.12.0 系列内部 API 仍在变(参照 agentscope-skill 的 v2 离线镜像 + 源码为权威SKILL.md 正文示例是 1.x 勿照抄)。

Open Questions

Resolve Before Planning建设前要定

  • U3 沙箱底座可行性BrowserSandbox vs 自建薄沙箱 + 复用 CDP——属主标记的 spike 前置阻断项U7 迭代开跑前必须出结论。
  • ReMe vs 树内 mem0 长期记忆后端选型——起步前小验证 + 创始人定(影响 U10

Deferred to Implementation

  • 过门率/成本阈值¥3/款、50%/70%)最终校准值,及 B 门 n≥30 在 M3 证路后对各便宜档的具体分配。
  • CDP 探针对 Phaser 重写的具体接口(帧源/canvas 注入/活动 hash 取法)。
  • 第二装载分支与源项目契约的字段级细节、与 finish 工具 schema 的共用落点。
  • tier2 独立 service 错误码/契约归属(运行期零耦合 → 自有空间,细节随建设定)。

附:生成平台「采标准」上层路线(提案 · 待 §6.8 双评审)

上面 U1U10 是 tier2 富游戏 spike 的执行序列;这一段是更高一层——把整条生成平台的 adapter 从「自研」翻转为「采 2025 收敛标准」的路线。对标结论与架构已并入 生成运行时架构图说 §二(canonical SoT,标「提案」);本段只记执行序列与待决。触及 build-vs-buy 基石翻转、属高风险,须先过 §6.8 双评审(Codex+Opus)再据以执行,评审前不动手。 收敛自原 docs/mvp/后续路线图.md(已删,其设计入 SoT① §二/§三、其路线序列入本段)。

  • 第 0 步 · 按对标重订 adapter:A1/A2→A2A、A7→MCP、A2.5→OTel;自研收缩到 checkpoint/续跑 + 验收门;明确「框架可替换=采三标准」。(已部分兑现:SoT① §二/§三 已按对标重写,待双评审定稿。)
  • 第 1 步 · 采标准落地(按依赖):OTel GenAI 接 trace(钉版本 + TraceAdapter,顺手消 split-brain)→ MCP-native 暴露工具(run_gates/build 用 Task 原语)→ A2A 端点包住 dispatch(白得 cancel)→ Langfuse 式 prompt/model 运行时热取(解后端构建期快照)。
  • 第 2 步 · 沙箱与扩容采现成件:沙箱接抽象接口替固定端口 CDP(内网用 AgentScope-local / E2B 自托管,上云用阿里云 AgentRun/AIO Sandbox);K-槽搬成无状态 worker + 共享 checkpoint + 队列。
  • 第 3 步 · 自研两块主流空白:生成专属 checkpoint/续跑;A5 per-tier 验收门(元协议 + tier2 fork)。
  • 第 4 步 · 三档产品阶梯:tier1(L2 能力库+L3 高质轻游戏→大众 feed)/ tier2(本计划 U1U10)/ phase3(独立 App·高复杂 3D)。
  • 第 5 步 · 账实收口:doc-sync 回写 tier2、退役死掉的 gamedef plan 链、修 verdict F3/F5、总账回填 tier2。

5 个 build-vs-buy 待创始人拍板(随 §6.8 双评审一并定):① 采 A2A+MCP+OTel 作 adapter 底座?② 「框架可整体替换」非主流目标值不值得自背?③ 沙箱采 microVM 抽象、扩容采 durable-execution?④ prompt/model 采 Langfuse 式运行时热取?⑤ 接口协议层(原 76KB design)§7 其余开放问题随第 0 步一并定。

§6.8 双评审结论(2026-06-24 · Codex web 源验 + Opus repo 验真,总判一致:采纳但修):方向可采,但本路线不能照此当执行基线,收口前置——

  • (a) 先 doc-sync:tier2 已落 accept(dev/2.0.0:92 文件 / feie-005 / 服务化@8200 / Phase B),上面 U8U10「B 门后才投·纲要」口径已被既成事实推翻,执行前须按 tier2/HANDOFF.md+git 重取"现/建"。这是最高优先——在失真基线上批准的 build-vs-buy 不可信。
  • (b) 5 个待决改 ADR 矩阵:每条 ≥3 具名候选 + 排除理由(按 .agents/rules/build-vs-buy.md 硬门);最站不住的是 ②可移植(白得被夸大,实际协议边界可迁、业务语义 net-new)与 ③沙箱+扩容。
  • (c) 第 1 步标准按成熟度分层:MCP Tools/A2A 任务壳/OTel 映射可采;MCP Tasks(2025-11 experimental)/durable-execution(范式非标准)/microVM/Langfuse 热取标 maturity gate,不当"已收敛"。
  • (d) 第 2 步「沙箱+扩容」拆开:沙箱→SandboxDriver 能力矩阵(先 Local/Docker/薄沙箱);扩容→durable-execution 独立选型,先旁路 tier2、不动在产 SAA K-槽(已参数化非反模式)

修正详见 SoT① §二补。本附段路线据此收口后再作执行基线。


Sources & Research

  • Origindocs/brainstorms/2026-06-22-tier2-整体实现方案-requirements.mdR1-R21、已定决策、已过 Codex+Opus 双评审)。
  • 属主设计档2026-06-24 已收敛为单一 SoT生成运行时架构 = docs/architecture/架构/生成引擎/agentic运行时架构图说.md原《tier2 四层工程架构》《tier2 实现详设》《自治富游戏引擎》《agentic 集成架构》等 16 份已并入——§三 adapter 协议层 A1A13 / §4 两实例 / §5 八面forbidden-import 与四层落点见 §5.8、源项目契约七要素见 §5.6、三层校验与九门见 §5.4、控制面/D12/trace 见 §5.2/§5.7。0 号 spike runbook建设五步/模型矩阵/过门阈值/采集字段/退路树/mini-肥鹅 fixture= 配套执行 runbook docs/architecture/架构/生成引擎/tier2细节图说-G-spike-runbook.md(本 plan 的 spike 视图)。
  • 子代理研究本计划repo 文件级定位(种子 studio.py run_studio@230 / ReActConfig(max_iters=1)@158 / repair@266 / 五接线点;_client.py/cost.py 复用边界;play.cdp.cjs@1131 探针Tier0/1 装载契约边界;wanglanmei-ref 12 文件经营样板AgentScope 2.0.1→2.0.2 迁移面取证6 符号全兼容、迁移=版本钉+注释清理非 API 重写)。
  • A-model 分支Tier1 agentic 优化 · 复用 / 边界源,见「与 A-model 分支的关系」节):feat/mac-amodel-foundationgame-runtime/tools/amodel-gen/*.mjsJS ReAct+M3 循环范式)、game-runtime/src/plugins/{scene-fsm,hud-ui,session-score,timer-scheduler}/api.d.ts(引擎无关零语义契约)、.agents/skills/agentic-amodel-generation.md + docs/agent-specs/2026-06-22-amodel-3layer-boundaries-review.md3 层边界 + sim-business 配方)、contracts/agent-loop/source-project.schema.jsononeOf 1.0/2.0)。
  • 框架权威:/root/oss/agentscope2.0.2 源码);.agents/knowledge/agentscope-2.0.2-facts.md速查agentscope-skill 的 references/v2-building-blocks.md/v2-deploy.mdv2 离线镜像集成权威SKILL.md 正文 1.x 勿照抄)。
  • 关键记忆:saa-agentic-infra-decisionm3-agentic-anthropic-protocolgeneration-lifecycle-project-modeltrue-structured-foundation-provenTier0/1 数据壳已证、与 tier2 硬区分)、mmx-asset-pipelinetiered-engine-cocos-decision