双查一致性(Codex+Opus)→ 修问题 → 出 plan 全链收口。 修问题(reframe 全活层 doc-sync · 框架统一 AgentScope / 三档按 AI 深度 / 去超休闲 / A-model 写真 src/ / tier2 spike accept · n=5 收敛环 / 预算闸 <¥10·<¥50): knowledge 三件套 + 顶层图说 00/01/02/05 + 6 域 README + 5 mvp 账本 + skill·workflow + agent-specs(_index / 演进路线降留痕);系统性死链 自治富游戏引擎.md → 运行时 SoT repoint(7 档)。 AGENTS.md:§2 收敛上线主计划 SoT、§3.1 入口自审 reframe 对齐。 出 plan:① 生成引擎统一执行计划(新建 · 统一三档 · 吸收退役 06-18-001/06-19-001/003); ② 4 份重复 plan 退役/并入/去两线 banner;③ 可行性方案16周 就地升格为项目上线主计划 SoT(canonical)。 §6.8 双评审(Codex+Opus)6 必修已修:WU-A 真实拓扑+JS留+迁移契约 / A11 孤儿接缝(①WU-B↔③阶段三) / 三档拆清 / ③ 过度表述 / 人办清单 n≥30→n=5 / 死链。 tier2/HANDOFF.md:n≥30→n=5 + agentscope-runtime→2.0.2 Workspace doc-sync banner。 ①③ status=草稿·双评审已过·待创始人确认 F1(WU-A 迁移归属)后转正式。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
13 KiB
tier2 交接 brief(6c6g → Mac)
2026-06-22。tier2 富游戏自治生成线的设计、HOW 计划与项目初始化已在 6c6g 完成,运行与调优交给 Mac / mini-desktop。这份 brief 说清你接手时有什么、接着做什么、以及哪些步骤必须在 mini-desktop 上跑。
⚠️ doc-sync(2026-06-25)。 本 brief 是 2026-06-22 交接稿,两处口径已被后续裁定取代,以运行时 SoT 与生成引擎统一执行 plan 为准:① 下文凡「便宜档 n≥30 统计批跑」的 tier2 验证口径,已被创始人取代为 n=5 收敛环(并发跑 5、有错追加 5、收敛即 go;批跑底座保留、n 设 5)——便宜档 ≥80% 成功率门是另一回事(测成功率需统计样本)、不在此列;② L17「agentscope-runtime BrowserSandbox」——agentscope-runtime 已官方归档、能力并入 agentscope 2.0.2 Workspace(见
.agents/knowledge/agentscope-2.0-facts.md),沙箱底座以 2.0.2 Workspace 为准、不再引 agentscope-runtime。现行真相 = 运行时 SoTagentic运行时架构图说.md+ 统一执行 plan2026-06-25-生成引擎统一执行计划。
你接手时已有的
- WHAT 需求(已过 Codex+Opus 双评审、合入 dev/2.0.0):
docs/brainstorms/2026-06-22-tier2-整体实现方案-requirements.md。 - HOW 计划(已过双评审、本分支
docs/tier2-plan):docs/plans/2026-06-22-003-feat-tier2-富游戏自治生成线-plan.md。10 个单元,Phase A(U1-U7,到 A/B 证据门)写成可立即执行的详细单元,Phase B(U8-U10)是 B 门通过后才投的纲要。 - 项目初始化骨架(本目录
tier2/):模块.agent边界声明、README.md、gen-worker/requirements.txt(锁agentscope==2.0.2)、ci/check-forbidden-import.sh(运行期零碰 SAA 的守门)。 - 框架权威:
/root/oss/agentscope(2.0.2 源码)+.agents/knowledge/agentscope-2.0.2-facts.md(速查)+ agentscope-skill 的references/v2-*.md(v2 离线镜像)。⚠️ 该 skill 的 SKILL.md 正文示例是 1.x(ReActAgent/MsgHub),勿照抄。
接着做(按计划 Phase A)
照 plan 的 U1-U7 实现。几条评审已经替你压实、别再走弯路:
- U2 是重头:种子
wg1/gen-worker/worker/agent_loop/{studio.py,config.py}的 AgentScope 框架接缝(6 个符号)与 2.0.2 兼容、是版本钉级别;但它拖着的validate.py/run.py/prompt.py/roles.py是 LittleJS 专属(validate的「禁 import / 单 export default 工厂」规则对 Phaser 多文件工程完全反转),这几件要按 Phaser 重写、工作量≈net-new,别按「fork+钉版本」排期。 - U3 是前置阻断:先做沙箱底座小验证(agentscope-runtime BrowserSandbox 是否暴露足够
page.evaluate/CDP,不够则回落复用play.cdp.cjs路),再把 CDP 探针为 Phaser 重写(#game-engine选择器 /__engine.frame帧源 / boot 信号全换)。这道结论出来前,U7 的生成迭代跑不起来。 - U7 成本取证:M3 走
AnthropicChatModel,所以成本台账要补一个RecordingChatModel(AnthropicChatModel)变体——现有的只覆盖 OpenAI 路,不补则 A 门 M3 成本抓不到。 - 判据离散:A 门 = M3 产物先确定性过 L1(机器判)+ 创始人试玩(软)两段与;B 门 = 便宜档 n≥30 达《tier2 实现详设》阈值(硬)才转 Phase B。
环境切分(重要)
- 6c6g 已能完成 / 已交付:项目初始化骨架(本目录);按计划 U1(
pip install、纯函数复用单测、forbidden-import CI)、U2 的 mock 级集成测试与版本钉,理论上 6c6g 也能跑(无 chrome)。 - 必须在 mini-desktop 真跑:凡需 chrome/headless + esbuild 的——U3(CDP 探针矩阵真验)、U4(mini-肥鹅 构建+真跑过门)、U6(门对真页 pass/fail 真验)、U7(M3 smoke、四熔断真触发、闭环端到端、n≥30 spike)。6c6g 禁 chrome(exit 144)。
与 A-model 分支的协调(重要 · 你同时在做这条)
你的 feat/mac-amodel-foundation(Tier1 廉价线 A-model agentic 优化)与 tier2 边界清晰、分立(创始人 2026-06-23 裁):A-model 吃 LittleJS 轻量经营档,tier2 吃 Phaser 重表现富游戏档。但 A-model 造的几样资产 tier2 要接住、别重新发明(详见计划「与 A-model 分支的关系」节):
- 插件契约(最大协同):
scene-fsm/hud-ui/session-score/timer-scheduler的api.d.ts是引擎无关零语义契约 +sim-business配方——tier2 Phaser 能力面复用其契约/命名/配方,仅渲染 impl 按 Phaser 重做。 - 循环范式:
amodel-gen/gen.mjs的多轮 ReAct done 门 + check/build 快反馈 + 历史压缩,是 tier2 U2/U7 的 working reference(种子仍studio.py)。 - 九门基线:A-model 改过
play.cdp.cjs(SAA-mode + driven 感知 advisory 分级 +_forensicsView)——tier2 U3/U6 fork 源与行号锚点钉到 A-model 合并后的版本重取,并复用其 driver 感知分级范式。 - 源项目契约:A-model 升了
source-project.schema.jsononeOf(1.0/2.0);tier2 仍另立独立 schema、不加 3.0 进同一 oneOf(理由见计划 KTD7/U9)。
A-model 合并 dev/2.0.0 后,tier2 接缝(play.cdp.cjs、source-project.schema.json)会刷新——实现 tier2 时以合并后版本为准对账。
0 号 spike 结果(2026-06-24,feie-005 跑出 decision=accept)
M3(MiniMax-M3,中等模型)自治写出的面包店经营合成富游戏,在 feat/tier2-phaser-engine 分支上首次跑到
decision=accept:9 道 L1 门(A_boot/B_uncaught/C_frame/D_render/E_live/F_wiring/G_input/H_progress/I_control)
全过,富游戏三门(三联动/经济/latch)全过,finished=True,无熔断,tokens≈20K/36K(+508K 缓存),墙钟约 610s。
金标装配链冒烟(fixture)始终保持 ACCEPT,门一道没放松——失败全在 M3 产物对契约的命中,不在平台。
第一次满 40 轮跑只过 5/9(decision=fix),收敛靠拆掉四个真问题,每个都补成机器门:
-
loop 不自纠(头号):AgentScope 2.0.2 原生 ReAct 一旦模型产出「无 tool_call 的纯文本回合」就退出 (
_agent.py:612),M3 调一次 run_gates 看到 fix 就收尾、根本没续修(tool_calls=9/40、无熔断)。 修法 = 编排层加有界外层 resume(agent_loop/studio.py):agent 停下后若没真 finish 且门没绿且有预算, 带 verdict 失败反馈再 reply(跨 reply 保留 memory=原地续修),上限 6 次,middleware 硬熔断 60/80 兜底。 外加 finish 门(门没绿不许 finish)。这是 wg1「外层 Python repair」范式的回归——纯自治 ReAct 会过早放弃。 -
数据表自创 schema:平台锁定的
tables.js按固定 key 读数据表(mergeChains/currencies/orders{requires:{id:qty}}), M3 却自创 recipes/initialCoins/数组 requires → 合成系统空转却仍 boot(假绿)。 修法 =validate_datatable(build 段自动跑):查 schema + DAG 无环 + 订单可达性 + 破产路 patience 可达性, 失败响亮回喂精确指引(平台读哪些 key、你缺/错哪个)。 -
改了平台锁定文件:M3 重写了装载胶水
main.js,丢了 recHook 透传 → F 门 calls=0、合成不记引擎调用。 修法 =LOCKED_PLATFORM_FILES(toolkitwrite_source拒改 main.js/game-core/systems/layout/tables/util/play-runtime)。 -
破坏表现层平台命脉:输入路由(命中→core.tapCell)与逐帧
core.updatetick 原先混在 agent 可写的 play-scene 里,M3 重写时一起改没了/坐标错位/把工厂写成class extends Phaser.Scene+init(data)取 core (但 main.js 用工厂模式建 scene、不喂 data → this.core=undefined → 整个空转)。 修法 = 抽进锁定文件src/scenes/play-runtime.js(bindInput+tick)+validate_play_scene契约门(build 段跑): play-scene 必须工厂模式收 deps、闭包捕获 core、返回配置对象、暴露 handleNormalizedInput、调 bindInput+tick。
对「中等模型自治写富游戏」这条路的判断 = go(留观微调)。 M3 一旦被机器门挡在正确契约上,有能力自治写出
过全门的多系统富游戏,还能从 verdict 反馈自己修平衡(把 patience 从 4565s 调到 812s 修破产路)。但收敛
强依赖机器门把每类契约违规变成响亮可修反馈 —— 纯放开 ReAct + 软约束 prompt 不行(它会过早放弃 + 自创 schema +
改平台文件)。下一步:n≥30 跑测真实成功率与墙钟/成本分布(本次 n=1 是机制验证、非统计);把四道门里偏脆的文本契约
检查(play-scene 工厂结构)考虑做成更稳的结构化校验,或进一步收窄 agent 可写面。相关 commit 在
feat/tier2-phaser-engine(b43d59c/f8ec30c/0fd0d4f/f64dcc6/8f2bbce 五个)。
图说对账补全(2026-06-24)
把 0 号 spike 为过门收窄掉、但 tier2 图说明确要求的「核心引擎待补」项补齐。改动全部加性 / observe-only:金标 fixture 冒烟仍 ACCEPT(九门 9/9 + 富游戏三门 3/3,门一道没放松),真依赖下全链 import + 自测 + 一款真 M3 跑端到端验证通过。
n≥30 runbook 执行基建(G 族)。 第一段只跑了 M3、n=1、driver 冻结;要测真实成功率与成本分布,得先有批跑底座。新增便宜档模型 client(worker/config.py 的 build_model_openai,deepseek-v4-flash/pro 经 new-api OpenAI 兼容路,与 M3 的 Anthropic 原生路并存,base 口径相反、各自注释写清);结构化采集字段(worker/run_record.py,把 G4 采集字段表编译成可序列化 RunRecord,含退路树分流键 fail_system);退路树五出口判定器(worker/fallback_tree.py,Q1–Q4 数字触发线 → go/R1/R2/R3/KEEP,★阈值集中常量区待实测校准);批跑编排与矩阵聚合(batch_run.py 跑 model×variant×n 矩阵、断点续跑、失败隔离;aggregate.py 出三图并喂判定器)。
观测/成本接线(H 族)。 此前 observability/{cost,trace}.py 件已造齐却是孤儿、从未接进 run 主链。现在 run_studio 收口把 RecordingChatModel.records 折成 ¥(新增 observability/newapi_pricing.py 活读 new-api /api/pricing 倍率,取不到回落显式参数并告警,绝不中断主链);新增 Tier2TraceMiddleware 挂在 writer agent 最外层洋葱,把 ReAct 全事件旁路 ingest 进 TraceAdapter。真跑实测:cost_rmb=1.29(pricingSource=newapi-live)、trace 647 事件 dropped=0。contracts/trace/ 立了 additive trace 事件契约位(忠实于 trace.py 真实落 sink 形状)。
L3 视觉软检接线(D 族 · observe-only)。 player_system 提示词此前从不被调、verdict.L3.score 恒 null。现在 run_studio 收口后调一次 M3 多模态(真截图 after-play.png + 真玩取证 → fun 1–5 映射 0–100 分),只写 verdict.L3.{scoreOnly,score,notes},绝不参与 decision。真跑实测:L3 score=25 准确指出「[object Object] 满屏 + 订单零交付却判胜」,而 decision=fix 仍由 L1 硬门 / 熔断裁、与 L3 无关——observe-only 铁律落实、防 Goodhart 成立(坏游戏正确被拒,金标仍过)。
没补的,按既定决策留后,不投机抢建:
- 设计判后续(plan 决策⑤ gate 到 B 门后才投):阶段 1 工作室 Agent Team 多 agent 设计、第二装载分支 + 源项目落库取回(交后端)、完整配置外置、控制面 / 管理面(B 族;D12 与 GenerationDispatcher 属 SAA Java 后端、不在本分支)、ReMe、Agent Service / MessageBus / Workspace 双轴 / checkpoint(决策②明写「本地 runner·不上 Agent Service」)。
- spike 统计相(是「跑」不是「写」):n≥30、5×6 题面变体、模型矩阵跑序、过门率 / 成本统计、★阈值校准、创始人亲玩软门——批跑底座现已就位,可直接执行。
- 跨分支(待 A-model 合并对账):4 个引擎无关插件复用、advisory 分级(本引擎分支 play-phaser 已字面落 driven 两态,合并时对账即可)。
- 图说待回写(交生成引擎子树 doc 线 / 在飞 session;本会话不跨分支跨 session 改 canonical):A4/C3 把「官方 ReplyBudgetControlMiddleware 软刹」画成现成,但 2.0.2 源码核验该类不存在(tier2 已用自建 on_system_prompt 替代);C3 预算闸实际是硬熔断、比图说当前口径强;C 族 frontmatter「尚未落代码」已过时(0 号 spike PASSED);D 族 advisory 标「待 A-model 合并」,本引擎分支已字面落。
协调
按 git 中介异步:本分支 docs/tier2-plan 已推送。你在该分支实现、提交;6c6g 侧(我)审 commit、按需更新计划/设计。完成判据是 git push,不是读屏。