docs: ③ 五决策落地(1B trace 改'待立新类' · 2A 源项目契约另立独立 schema/防撞在产线 · 3A 前端 tier2 承载归属桩 · 4B 护城河对外暂不改+内部备注 · 5B 渠道竞标加 tier2 祛魅交叉引用)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zizi 2026-06-21 17:13:29 +00:00
parent 7ecd616eb8
commit 5cadf5042c
6 changed files with 11 additions and 3 deletions

View File

@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://wanxiang.ai/contracts/agent-loop/source-project.schema.json",
"title": "SourceProject",
"description": "游戏源项目工件:cheap agents 在固定架构上填的唯一结构化产物;改源不改打包产物(GamePackage 产物 schema 不变);Opus 设计、长期版本化升级。两开发线交汇的 keystone 契约(后端线产出/落库,引擎线 2D 适配器消费)。详见 docs/agent-specs/2026-06-17-固定游戏架构与SAA-agentic-studio-execution.md §5.1。",
"description": "游戏源项目工件:cheap agents 在固定架构上填的结构化产物(限 Tier0/1 ECS-lite 数据壳;tier2 真 Phaser 引擎工程的源项目契约另立一份独立 schema、不复用本路);改源不改打包产物(GamePackage 产物 schema 不变);Opus 设计、长期版本化升级。两开发线交汇的 keystone 契约(后端线产出/落库,引擎线 2D 适配器消费)。详见 docs/agent-specs/2026-06-17-固定游戏架构与SAA-agentic-studio-execution.md §5.1。",
"type": "object",
"required": ["schemaVersion", "sourceHash", "profile", "gameDefinition"],
"additionalProperties": false,

View File

@ -110,6 +110,8 @@ flowchart LR
- **自研(必须自掌——控制点 + 数据入口)**:运行时宿主层(Runner + iframe 沙箱 + SDK 注入;渲染引擎为可替换的开源轻引擎,不自研)、信息流推荐、遥测数据底座、变现链路(钱包/分账/广告位)。
- **不自研(省 6-12 月 + 千万级,且可替换无锁定)**:大模型、多模型网关(new-api,接通用 LLM)、后台(Huijing)、素材生成(mmx-cli;ComfyUI 备选)、内容安全(阿里云)、复杂引擎(Cocos,远期);编排用 SAA(Spring AI Alibaba)裸图、轻引擎用 LittleJS(均开源、可替换)。生成 Agent(OpenGame)/可视化编排(Dify)列为远期增强、当前不部署。
> **内部备注(不对外,2026-06-21)**:复杂/富游戏的*生成轨*内部已改判——tier2 自治富游戏轨用 Phaser/Pixi(全无头),Cocos 收窄到 3D/渠道导出轴(见 `../架构/生成引擎/自治富游戏引擎.md`)。但 tier2 还在 0号 spike 待验,所以上面"复杂用 Cocos / 不自研引擎"的*对外*话术暂不改,等 spike 过了再同步——免得拿没验证的东西对外背书。
### B4. CTO 会戳的三个点 + 怎么答
| CTO 戳 | 怎么答 |

View File

@ -206,6 +206,8 @@ token 还承担一个长期使命:**做跨端的单一事实源**(single source
- `tokens.css:3` 的注释里还残留旧路径 `zaomeng-ai-demo.html`(实际文件是 `huijing-ai-demo.html`,品牌应为绘境AI),措辞漂移待清。
- 明确不做的范围:原生 App(仅 token 契约就绪)、RTL(从右到左书写,服务阿拉伯语等)、护眼/高对比主题(留作后续增量)。
**tier2 富游戏的前端承载(待建,归属已定)**:第二条生成轨 tier2 的产物是 Phaser 多文件工程、要渲入 game feed 真玩。它给前端域带来两件现在还没做的事——feed 同时承载两种产物(现有 LittleJS 单包 + tier2 Phaser 多文件工程)的装载分发,以及 studio 创作端体现"超休闲廉价线 / 富游戏 premium 线"的第二轨入口。这两件归前端域(运行时容器 + 创作入口);装载与渲染的 how 在架构域,见 `../架构/生成引擎/引擎与运行时.md``../架构/生成引擎/tier2实现详设.md`。详细前端设计等 tier2 临近过 0号 spike 再展开,现在只钉归属、不预先设计。
---
## 9. 关键指针

View File

@ -51,7 +51,7 @@ prompt 和 models 这两层是线A的阶段2-3,本设计只引用、不重排,
这块回答两个独立问题,对应两条留痕线。
运行轨迹记的是每次生成发生了什么 —— 每步推理、每次工具调用、每次 LLM 输入输出、每道门裁决、每次成本。消灭 split-brain(轨迹分散在各条派发路上)的真口径是"每条派发路诚实镜像它真有的字段、没有的绝不编造",不是"强求两条线字段对齐" —— tier2 的 ReAct"想-做-看"和 SAA 16 个节点的阶段裁决本就不同构,强求对齐是错的。统一轨迹的目标是:同一张表,一个公共核心子集(traceId、step、cost、verdict、timestamp),各轨把独有的放进一个 JSON 扩展列(SAA 放阶段、修复轮次、门裁,tier2 放推理、动作、观察)。它要落成一份真契约,放 `contracts/trace/`,对齐契约组里已命名的轨迹位,additive 演进;内容含字段定义、schema 版本、脱敏规则、两条线 adapter 怎么映射,以及一条要选边的策略 —— 轨迹写不进去时阻塞生成还是 best-effort 丢弃告警(默认 best-effort 不阻塞主流程,但计入告警)。
运行轨迹记的是每次生成发生了什么 —— 每步推理、每次工具调用、每次 LLM 输入输出、每道门裁决、每次成本。消灭 split-brain(轨迹分散在各条派发路上)的真口径是"每条派发路诚实镜像它真有的字段、没有的绝不编造",不是"强求两条线字段对齐" —— tier2 的 ReAct"想-做-看"和 SAA 16 个节点的阶段裁决本就不同构,强求对齐是错的。统一轨迹的目标是:同一张表,一个公共核心子集(traceId、step、cost、verdict、timestamp),各轨把独有的放进一个 JSON 扩展列(SAA 放阶段、修复轮次、门裁,tier2 放推理、动作、观察)。它要落成一份真契约,放 `contracts/trace/`,作为契约组的新一类 additive 立位(这一位当前还没建,随 spike 或控制面 phase-1 落地时再新立、别当现成),内容含字段定义、schema 版本、脱敏规则、两条线 adapter 怎么映射,以及一条要选边的策略 —— 轨迹写不进去时阻塞生成还是 best-effort 丢弃告警(默认 best-effort 不阻塞主流程,但计入告警)。
配置审计日志记的是谁、什么时候、改了哪条配置、为什么。这条线现在完全没有,是新建的。它的最小数据模型至少含:谁改的、从哪改的(UI 还是直接改 Git / DB)、改了什么(前后 diff)、配置版本号、谁批的、何时生效、回滚到哪个版本、影响了哪些生成任务。这里有一个要选边、不能既要又要的决策:UI 改配置,直接写运行时(DB 直写)还是建 Git PR(GitOps)?

View File

@ -15,13 +15,15 @@ tier2 的产物也走"存进库、按需取来跑"这条路,但形态不同。
这条边界要再讲死一遍:这套源项目契约是 tier2 自己的,绝不碰 Tier0/1 廉价线在生产上跑着的 ECS-lite 装载契约。两条装载路解耦并存,tier2 这边怎么改都不许回归现有产线。这也正好接上项目早定下的产品基座 —— 游戏是长生命周期的结构化源项目,改源不改包、重新构建,真·多文件 Phaser 工程本身就是一个可维护的源项目。
命名上要小心别撞:仓里现有的 `contracts/agent-loop/source-project.schema.json` 虽然也叫"源项目",但那是 Tier0/1 那条 ECS-lite 数据壳的契约;tier2 这套是另立的一份独立 schema、编为契约组新一类,绝不扩在那份上——共用一份会把本该解耦的两条线又焊一起,还可能污染在产线。
## 统一 trace 契约的实现接点
tier2 这条 ReAct 轨每跑一次,要把"想一步、调一个工具、看结果"的全过程写进观测仓:每一步推理、每一次工具调用、每一次模型输入输出、每一道门的裁决、每一笔成本。这跟 SAA 那 16 个节点的阶段裁决不同构,所以两条线的轨迹不强求字段对齐 —— 强求对齐是错的。正确的做法是同一张表,一个公共核心子集加各轨自己的扩展段。
落到实现,接点有三处。**公共核心子集**是两条线都必有的最小集 —— traceId、step、cost、verdict、timestamp,tier2 老老实实把这五样填上。**扩展段**是一个 JSON 列,tier2 把自己独有的推理、动作、观察塞进去,SAA 那边塞它的阶段、修复轮次、门裁,各写各的、互不编造。**写不进去时的策略**默认 best-effort —— 轨迹写失败不阻塞主生成流程,但计入告警,不能让一次落库抖动把整局生成废掉。
这份契约落在 `contracts/trace/` 下,对齐契约组里已命名的轨迹契约位,additive 地演进,内容包括字段定义、schema 版本、敏感字段脱敏规则、两条线各自的 adapter 怎么映射。tier2 这边只管"按这份契约把自己的轨迹写进去",它的 adapter 把 ReAct 三段映射成契约字段。轨迹契约的完整治理口径 —— 为什么消灭 split-brain 指的是"诚实镜像各自字段"而非"强求对齐"、两条线接口层对称内容层不对称怎么成立 —— 写在《agentic 生成架构:tier2 富游戏自治轨 + 控制/管理面治理层》(下文简称集成架构档),本档只交代 tier2 这一侧的实现接点。
这份契约落在 `contracts/trace/` 下,作为契约组的新一类 additive 立位(这一位当前还没建,随 spike 或控制面 phase-1 落地时再新立、别当现成),内容包括字段定义、schema 版本、敏感字段脱敏规则、两条线各自的 adapter 怎么映射。tier2 这边只管"按这份契约把自己的轨迹写进去",它的 adapter 把 ReAct 三段映射成契约字段。轨迹契约的完整治理口径 —— 为什么消灭 split-brain 指的是"诚实镜像各自字段"而非"强求对齐"、两条线接口层对称内容层不对称怎么成立 —— 写在《agentic 生成架构:tier2 富游戏自治轨 + 控制/管理面治理层》(下文简称集成架构档),本档只交代 tier2 这一侧的实现接点。
## 建设五步与 0号 spike 生死门

View File

@ -175,6 +175,8 @@ flowchart TB
渠道线该用哪个游戏引擎来打包,没有在"层"这一级锁死,而是在"场景"级锁定默认 LittleJS、并保留创始人复议权(2026-06-12 拍板)。这件事用一场**竞标**来定胜负,内部代号 **W-CH-α**(渠道引擎对比 spike,spike 指"为验证某决策而做的小型探索性实验")。
> 另:tier2 设计对"Cocos 的渠道优势"做了一套祛魅论证(weapp-adapter 官方已不再维护、变现 SDK 各引擎都得手接、快手全平权、纯代码引擎全 Linux 出包反而占优,见 `../架构/生成引擎/自治富游戏引擎.md` 渠道一节)。那是从"无头自治生成"角度来的、与本竞标"超休闲渠道发行"维度正交,**不改本竞标结论**;但作为新信息,W-CH-α 终裁时一并参考、别漏。
先解释两个候选:
- **C-A = LittleJS + 自研 adapter**:LittleJS 是一款极轻量的 2D 游戏引擎(压缩后约 **55KB**),配上我们自研的微信(weapp)/抖音(tt)适配层(adapter,负责把引擎对接到各平台 API)。