docs(生成引擎): SoT① 36 张 SVG 改渲染嵌入 (原反引号路径不渲染)
§四/§五 各 facet 末尾的 SVG 引用原写成 `assets/x.svg` 反引号路径(只显示路径、不渲染); 按 md 图片嵌入式  逐张转,每图独立成块。36 张全部对应 assets/ 真实文件。图本身仍是 spike 前视角(§5 开头 caveat 已注明,svg 重绘待出图管线)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
374e30805d
commit
a2a8266416
@ -252,7 +252,7 @@ B 类对接上面某几条 A 协议,换引擎 / 换框架 / 换渠道时被换
|
||||
|
||||
两条生成线是同一套 adapter 协议的两个实例,运行期零耦合,只在公共组件(计费 / 送审 / feed / 验收基线)交汇。
|
||||
|
||||
> 全局两线与 tier 体系总览:`assets/07-全局两线与tier体系.svg`。
|
||||

|
||||
|
||||
### 4.1 实例一:SAA · LittleJS 廉价线(Tier0/1)
|
||||
|
||||
@ -266,7 +266,7 @@ B 类对接上面某几条 A 协议,换引擎 / 换框架 / 换渠道时被换
|
||||
|
||||
**A-model 怎么补上天花板**:A-model 让 LLM 直接写真 `src/` 多文件、调 L2 十一插件(juice / gamefeel / palettePost 给手感卖相),逻辑与表现都不再被声明式数据壳焊死。所以 tier1 高质轻游戏的载体是 **L2 能力库 + L3 自由写**,产物就是真 `src/` 工程——与 tier2 同范式(LLM 写真 src/),只是引擎(LittleJS vs Phaser)与表现层复杂度档不同。这条把"轻量≠简单"落到工程上:轻量是用公共素材、玩法模板、工程模板低成本生成相对不复杂、又不易同质化的高质小游戏,不是产没人会玩的简单玩具。
|
||||
|
||||
> 廉价线端到端闭环图:`assets/09-廉价线端到端.svg`。
|
||||

|
||||
|
||||
### 4.2 实例二:AgentScope · Phaser 富游戏线(tier2)
|
||||
|
||||
@ -280,7 +280,19 @@ B 类对接上面某几条 A 协议,换引擎 / 换框架 / 换渠道时被换
|
||||
|
||||
**这条线的核心已落、0 号 spike 已 accept(2026-06-24)。** M3 自治写出的面包店经营合成富游戏 `feie-005` 跑到 `decision=accept`——9 道 L1 门 + 富游戏三门(三联动/经济/latch)全过、`finished=True`、无熔断,约 20K/36K tokens(+508K 缓存)、墙钟约 610s,服务化已部署到 `mini-desktop:8200`。但这是 **首次机制验证(跑通一款)、不是结论**。下一步用**收敛环**验证更多款:并发跑 5 个,有错误(>1)就读日志、分析、修复,再并发追加一次 5 个,收敛即止——**不做 n≥30 统计批跑**。批跑底座(便宜档 client + RunRecord 采集 + 退路树判定器 + 批跑矩阵)已就位,跑的就是这个 n=5 收敛环。判断 = **go(留观微调)**:M3 一旦被机器门挡在正确契约上,有能力自治写出过全门的多系统富游戏、还能据 verdict 反馈自调平衡;但收敛**强依赖机器门把每类契约违规变成响亮可修反馈**——spike 靠拆掉四个真问题、每个补成机器门才收敛(详见 §5.3/§5.4),纯放开 ReAct + 软约束 prompt 不行。spike 只跑了阶段 2 单写;阶段 1 工作室 Agent Team 按 plan 决策⑤ 留 Phase B(下文 §5.5)。锁 AgentScope 2.0.2。
|
||||
|
||||
> tier2 这条线另有一套总览图,与 §5 各 facet 的细化图互补:生成两阶段 `assets/00-生成两阶段.svg`、系统全景 `assets/01-系统全景.svg`、调用时序 `assets/02-调用时序.svg`、运行时内部结构 `assets/03-运行时内部架构.svg`、ReAct 循环 `assets/04-ReAct循环流程.svg`、复用边界 `assets/06-reuse边界全景.svg`。
|
||||
tier2 这条线另有一套总览图,与 §5 各 facet 的细化图互补:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
@ -303,7 +315,13 @@ tier2 富游戏线的运行时按 AgentScope 2.0.2 的真实对象结构落地,
|
||||
多 agent 协作走部署态的 **Agent Team** 星形(leader 用 `TeamCreate` / `AgentCreate` / `TeamSay` 调度 worker),不是进程内 pipeline——2.0.2 已删掉进程内的 MsgHub / pipeline 那套同步编排原语。任务目标与进度的承载也对齐这套结构:目标 = 输入(brief / play_spec / GDD),进度 = `AgentState.tasks_context` 逐项用 `TaskCreate` / `TaskUpdate` 追踪,像一份 todo 清单,没有预先画死的 workflow DAG。
|
||||
|
||||
> **现 / 建(2026-06-24 spike 后)**:Agent Service、MessageBus、AgentState + StorageBase、Workspace 三实现是 2.0.2 现成件(已逐条核源码)。tier2 的非常驻装配、本地 runner、注入工具集、自建硬熔断、`Tier2TraceMiddleware`**已落并经 feie-005 accept**,服务化已部署 `mini-desktop:8200`。**两处早稿错已纠**:① "官方预算软刹 `ReplyBudgetControlMiddleware`"——2.0.2 源码核验该类不存在,tier2 用自建 `on_system_prompt` + 硬熔断替代;② 多轮不是"搬进 Agent 内部"——纯内部 ReAct 过早放弃,实际是内部单轮 + 有界外层 resume 续修(见 §5.3)。待:每轮 checkpoint 落 Redis 的完整 durable session(决策②起步只本地 runner)、阶段 1 Agent Team(留 Phase B)、SandboxDriver 选型。
|
||||
> 图:`assets/t2-A-01-AgentService与session三路.svg`、`assets/t2-A-02-Agent非常驻与AgentState.svg`、`assets/t2-A-03-Workspace双轴注入.svg`、`assets/t2-A-04-Middleware洋葱.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.2 控制面与配置热取
|
||||
|
||||
@ -318,7 +336,13 @@ tier2 富游戏线的运行时按 AgentScope 2.0.2 的真实对象结构落地,
|
||||
**管理面 UI** 是注册表与观测仓的视图与编辑器,不是真相本身——配置才是真相。它不从零造一个 Dify 式可视化建图器,因为裸图的节点是 Java 代码、ReAct 的工具也是代码,真相在代码与配置里,靠 UI 拖拽生成代码是另一套不可靠的范式。但"配置是真相、UI 是视图"不等于第一期什么都不做,管理面按三档诚实命名地落:phase-1 是配置管理加运行可观测(含一个纯只读、不依赖任何前置、立刻能给创始人看见的最小切片——看各角色当前用什么模型、回放任意一次生成的全轨迹、按 new-api 口径对账成本;其上再加配置编辑,改完落 Git 加审计、不直接热生效),phase-2 是限定范围的图编辑(节点启停、参数、版本 diff、轨迹回放,但渲染的拓扑来自运行时自报、不让用户拖拽改结构),phase-3 是完整可视化建图(拖拽改拓扑,远期不投)。一条贯穿约束:管理面对拓扑只渲染框架运行时自报的结构,绝不在管理面这侧另持一份拓扑模型——廉价线是静态图、tier2 的 ReAct 没有静态图,两套异构范式用同一个管理面,只能靠"渲染运行时自报"这个共同口径,而硬编码的拓扑模型在换框架时反而成为阻力。这也是反锁死(§一)在管理面的落点。
|
||||
|
||||
> **现 / 建(2026-06-24)**:D12 现行已落(默认关闭,在 SAA Java 后端);配置注册表是"现·部分"(prompt 构建期快照),热取、推广到 skill/tool/mcp、配置审计日志、管理面三 phase 待建。tier2 侧 `genconfig` 热配已落(雏形);控制面/管理面对 tier2 的接入(D12 入口、管理面 UI)按 plan 决策⑤ 留 Phase B。
|
||||
> 图:`assets/t2-B-01-控制面四组件.svg`、`assets/t2-B-02-反锁死五协议.svg`、`assets/t2-B-03-预算三层强制.svg`、`assets/t2-B-04-管理面三phase.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.3 单写 ReAct 循环
|
||||
|
||||
@ -333,7 +357,13 @@ tier2 富游戏线的运行时按 AgentScope 2.0.2 的真实对象结构落地,
|
||||
**M3 的接法**是这条线能不能成的根因之一。tier2 agent 经官方 `AnthropicChatModel` 走 `AnthropicCredential.base_url`(指向 new-api 的 Anthropic 端点),到 MiniMax-M3,计费统一从 new-api 一个平面走。"用对 M3"是三件事:走 Anthropic 原生协议加 agentic 工具循环(循环调工具写源 / build / 跑门 / 读 verdict / 改,而不是 OpenAI 式单次 JSON 填空);thinking 分离(开 thinking,且 max_tokens 须严格大于 thinking_budget);完整 response 与历史保留(每轮的 thinking / text / tool_use 块原样回传入历史,否则 M3 的交错思维失效)。旧用法 60% 失败的最深根因正是反着来——关 thinking、单次 JSON 填空、失败从头重生成,是用法错、不是模型天花板。
|
||||
|
||||
> **现 / 建(2026-06-24 spike 后)**:本面核心**已落并经 feie-005 accept**——M3 Anthropic 接法链路、有界外层 resume + finish 门、自建硬熔断(非官方软刹,该类 2.0.2 不存在)、写源/改/快检/跑门内循环都已跑通;`max_tokens > thinking_budget` 启动校验、`RecordingChatModel(Anthropic)` 成本取证已落。待:更多款收敛环验证(n=5、有错追加 5)、把偏脆的文本契约检查(play-scene 工厂结构)做成更稳的结构化校验。
|
||||
> 图:`assets/t2-C-01-单写ReAct循环.svg`、`assets/t2-C-02-M3原生接法.svg`、`assets/t2-C-03-四道熔断.svg`、`assets/t2-C-04-多轮范式承amodel.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.4 三层校验与九门
|
||||
|
||||
@ -351,7 +381,15 @@ spike 第二段放开让 agent 自产或扩展 driver 时,会撞上一个 Goodha
|
||||
|
||||
> **本节是运行时视角的九门与三层校验,确定性验收的护城河命题(机器判、禁自评、出题≠被考、per-tier verdict 元协议)即落在此节与 §三 A5**;另有一层"对外开闸放行"的 6 道门(D12 控制平面、GP9 合规先行、落库观测三门、首局体验门、G0/G1 前置)坐在九门机制地板之上,是独立 SoT,见 [`验收门.md`](验收门.md),其基准靶集见 [`WG1基准.md`](WG1基准.md)。
|
||||
> **现 / 建(2026-06-24 spike 后)**:廉价线九门现行已落。tier2 侧——三层校验框架、Phaser 探针(九门 + 富游戏三门:三联动/经济/latch)、L3 视觉软检 observe-only 接线**已落并在 feie-005 全过**;spike 收敛补的四道契约机器门(`validate_datatable` 数据表 schema+DAG+可达性、`LOCKED_PLATFORM_FILES` 锁平台文件、`validate_play_scene` 表现层契约、finish 门)也已落。待:自产 driver 三层隔离(spike 第二段)、偏脆的文本契约门做成结构化校验。
|
||||
> 图:`assets/t2-D-01-三层校验全景.svg`、`assets/t2-D-02-九门逐门.svg`、`assets/t2-D-03-富游戏专属门.svg`、`assets/t2-D-04-advisory分级与Goodhart隔离.svg`、`assets/t2-D-05-CDP探针Phaser重写.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.5 能力面:skills 与 MCP 工具
|
||||
|
||||
@ -366,7 +404,13 @@ tier2 与 A-model(廉价线那条 LittleJS 轻量经营档)**两线分立、运
|
||||
廉价线那一侧的能力面是另一套:SAA 用裸 `StateGraph` 加自定义 `NodeAction` 手写确定性编排,模型层直接复用上游 spring-ai 的 `OpenAiChatModel`(baseUrl 指 new-api、多个 bean 仅 model 名不同),checkpoint 用 `MysqlSaver` 单权威。它和 tier2 的能力面同源于"框架可换、契约不变"的原则,但因为生成主线本质是确定性多步编排、不是给 LLM 一堆工具自决,所以用裸图原语、不套自治 agent 框架。具体的图原语 API、repair 回边、子进程调用与依赖冲突避让属实现细节,落在配套 playbook 与代码里、不进本文。
|
||||
|
||||
> **现 / 建(2026-06-24 spike 后)**:九门 harness 钩子、A-model 四插件契约、SAA 能力现行已落(SAA 一侧基于 v1.1.2.2 真实源码四路取证)。tier2 侧——九工具的 Phaser 实现(含 `write_source` 的 `LOCKED_PLATFORM_FILES` 锁:拒改 main.js/game-core/systems/layout/tables/play-runtime)、mmx 资产工具、阶段 2 单写 ReAct **已落并经 feie-005 accept**。待:阶段 1 工作室 Agent Team(留 Phase B,spike 只跑阶段 2 单写)、五件套通用接口(克制:只有 Phaser 一个真实现时不抽,等第二引擎落地有两实现再抽)。
|
||||
> 图:`assets/t2-E-01-skills清单.svg`、`assets/t2-E-02-引擎能力包manifest.svg`、`assets/t2-E-03-prompt两阶段角色.svg`、`assets/t2-E-04-Amodel插件复用.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.6 源项目契约与装载
|
||||
|
||||
@ -379,7 +423,13 @@ tier2 与 A-model(廉价线那条 LittleJS 轻量经营档)**两线分立、运
|
||||
右支的装载比左支多出一段:入库的是一个真 Phaser 工程(多源文件加构建脚本加依赖锁),取回之后要先按构建 profile 用 esbuild 打包出可玩 bundle,再在沙箱里跑——这一段构建是左支即取即跑所没有的。`finish` 工具交付的形状与落库取回认的形状**共用同一份 schema**:agent 自治跑完经 finish 吐出的那个工程,和落库取回认的那个工程本是两处定义,共用一份则"契约即工具签名,改一处即两处一起改",从源头消除交付与落库漂移这个失败面。装载终态仍服从 latch 轮询:游戏跑到结束态时不主动发事件,而是把状态焊成可轮询的终态、宿主每帧轮询读。整条线的产物是可维护的源工程而非死 bundle,改源、重新构建、按内容哈希长期取回重建——这正是"改源不改包、游戏即长生命周期项目"在装载面的兑现。
|
||||
|
||||
> **现 / 建(2026-06-24 spike 后)**:左支 ECS-lite 装载契约现行已落。tier2 侧——spike 已产出真 Phaser `src/` 多文件工程、`finish` 门(门没绿不许 finish)已落、服务态落库已部署(manifest 进 MySQL、源文件全文进 MinIO,save→fetch 往返已验)。待(按 plan 决策⑤ 交后端):正式七要素源项目契约 schema、feed→play 第二装载分支(tier2 产物进 feed 的播放路径)。
|
||||
> 图:长生命周期源项目 `assets/08-长生命周期源项目.svg`;`assets/t2-F-01-源项目契约七要素.svg`、`assets/t2-F-02-第二装载分支.svg`、`assets/t2-F-03-finish共用schema.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.7 观测与成本(OTel)
|
||||
|
||||
@ -390,7 +440,11 @@ tier2 与 A-model(廉价线那条 LittleJS 轻量经营档)**两线分立、运
|
||||
成本不是估的,从 new-api 的 quota 权威口径折出每款多少人民币——每次调用的 quota 就是真实的倍率成本,比按公开单价估更准。OTel 的语义约定里没有成本属性,所以"成本钉 new-api 计费行"这条自研口径要保留,经 traceId 关联进 trace。这里有一个红线缺口:M3 那一档走 Anthropic 原生端点,而现有成本记录只覆盖 OpenAI 路,抓不到它,于是 M3 这档的 token 用量采不到、单款成本对它直接缺、全矩阵成本没法对比。接点是补一个包住 Anthropic 模型调用的录制变体,抓每次按模型分列的 token 用量,把 Anthropic 路补齐。计费平面的纪律是"协议自由、计费收口"——M3 走 Anthropic 端点、便宜档走各自端点,协议与 SDK 不锁死、每档走各自最优端点,但所有路最终都收口到 new-api 的 quota 按模型折 ¥ 这一个计费平面。
|
||||
|
||||
> **现 / 建(2026-06-24 spike 后)**:tier2 侧全部已落并真跑验证——`Tier2TraceMiddleware` 挂 writer agent 最外层洋葱、ReAct 全事件旁路 ingest 进 TraceAdapter(真跑 647 事件 dropped=0);`RecordingChatModel.records` 经 `newapi_pricing.py`(活读 new-api /api/pricing 倍率,取不到回落显式参数并告警、不中断主链)折 ¥(真跑 cost_rmb=1.29);`contracts/trace/` 已立 additive 事件契约位(忠实 trace.py 真实 sink 形状)。待:统一 trace 契约的 SAA 侧 adapter 映射(两条线对齐)。NEWAPI_KEY、端点、机器见 `docs/内网凭据与端点.md`。
|
||||
> 图:`assets/t2-H-01-trace统一契约.svg`、`assets/t2-H-02-观测管道.svg`、`assets/t2-H-03-成本台账.svg`。
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 5.8 四层职责
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user