docs(生成引擎): SoT① 收口定稿 — §二补二 成熟度五列 + §二补三 6 条 build-vs-buy ADR + §三 定级冻结

§6.8「采纳但修」收口:补标准成熟度五列(操作化 §二补①)+ 6 条 build-vs-buy ADR 决策矩阵
(每条 ≥3 具名候选 + 排除理由)。纠 ADR-5/6:agentscope-runtime 独立仓已归档、能力并入
agentscope 2.0.2(Workspace/app/event),改判走 2.0.2 内置件——沙箱=2.0.2 Workspace(工具
沙箱非 CDP)+ tier2 自家 CDP harness;扩容=2.0.2 Agent Service,跨机 durable-exec future-state。
L247 同步。(c)选型 spike /(e)n=5 收敛环留作执行 plan、不在文档完成范围。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
lili 2026-06-25 03:25:19 -07:00
parent 42eafd876a
commit d4eb4b1197

View File

@ -1,6 +1,6 @@
---
title: agentic 生成运行时架构 — 可插拔 agent 平台
status: 架构演进中 · tier2 核心已落 + 0 号 spike feie-005 accept(首跑;下一步收敛环 n=5、有错再追加 5)· §4.2/§5.x 已按 2026-06-24 HANDOFF doc-sync(2026-06-25)· "采标准"方向 §6.8 双评审已过(采纳但修),修正见 §二补、待据以收口定稿
status: 架构演进中 · tier2 核心已落 + 0 号 spike feie-005 accept(首跑;下一步收敛环 n=5、有错再追加 5)· §4.2/§5.x 已按 2026-06-24 HANDOFF doc-sync(2026-06-25)· "采标准"方向 §6.8 双评审已过(采纳但修),已收口定稿:成熟度五列(§二补二)+ 6 条 build-vs-buy ADR(§二补三)已补、§三 定级已冻
canonical: true # 生成运行时架构唯一 SoT,收敛原 16 份图说/详设/接口协议草案
topic: 生成运行时架构(adapter + 可插拔 agent 框架 + 两生成实例)
date: 2026-06-24
@ -67,11 +67,11 @@ date: 2026-06-24
"框架适配器"于是瘦身成一件事:**把 SAA、AgentScope 各包成一个 A2A + MCP + OTel 端点**。但可移植是分层的:**协议边界**(任务/工具/trace 接缝)可迁移,**业务语义层不白得**——工具内部实现、prompt few-shot、checkpoint/verdict schema、探针、沙箱能力都是 per-引擎/per-框架的,换一次引擎这层≈net-new。采标准把"换框架"从"推倒重来"降到"重写 B 类实现、A 类协议不动",**不是降到零**(详见 §二补②)。
> **状态与评级**:本节"采标准"方向触及生成平台基石(build-vs-buy 翻转),属高风险。**§6.8 双评审已完成(2026-06-24,Codex web 源验 + Opus repo 验真):总判一致「采纳但修」——方向对,但当前文本不能当执行基线,修正见下「§二补」。提案仍未过、§三 定级未冻**,据 §二补收口后再定稿。沙箱选型来源(2026-06-24 验证):[阿里云 AgentRun](https://help.aliyun.com/zh/functioncompute/fc/what-is-agentrun) · [AIO Sandbox](https://help.aliyun.com/zh/functioncompute/fc/aio-sandbox) · [AgentScope Runtime Sandbox](https://runtime.agentscope.io/en/sandbox/sandbox.html)。
> **状态与评级**:本节"采标准"方向触及生成平台基石(build-vs-buy 翻转),属高风险。**§6.8 双评审已完成(2026-06-24,Codex web 源验 + Opus repo 验真):总判一致「采纳但修」——方向对,但当前文本不能当执行基线,修正见下「§二补」。修正已收口落地(成熟度五列见 §二补二、6 条 build-vs-buy ADR 见 §二补三),§三 定级已冻。**沙箱选型来源(2026-06-24 验证):[阿里云 AgentRun](https://help.aliyun.com/zh/functioncompute/fc/what-is-agentrun) · [AIO Sandbox](https://help.aliyun.com/zh/functioncompute/fc/aio-sandbox) · [AgentScope Runtime Sandbox](https://runtime.agentscope.io/en/sandbox/sandbox.html)。
### 二补 · §6.8 双评审修正与待验证门(2026-06-24 · Codex + Opus)
双评审总判一致:**采纳但修**——方向(MCP Tools / A2A 任务壳 / OTel 映射 / Langfuse 注册表)可采,但当前文本不能当执行基线。下列修正与待验证门为收口前置,**评审未过、定级未冻**:
双评审总判一致:**采纳但修**——方向(MCP Tools / A2A 任务壳 / OTel 映射 / Langfuse 注册表)可采,但当前文本不能当执行基线。下列修正与待验证门已收口落地(成熟度五列见 §二补二、build-vs-buy ADR 见 §二补三):
**① 成熟度分层(不是"全部已收敛")**:可即采的成熟子集 = **MCP Tools**、**A2A 任务壳**(状态/流式/发现)、**OTel GenAI span 映射**、**SKILL.md**;须隔离 / 标 maturity gate 的实验子集 = **MCP Tasks**(2025-11 引入、官方 experimental)、**durable-execution**(范式非标准)、**microVM 沙箱**(能力/成本待验)、**Langfuse 热取**(须调和 GitOps)。每条标准落定前补「权威来源 / 版本 / 成熟度 / 本项目采用位置 / 待验证项」五列。
@ -83,9 +83,106 @@ date: 2026-06-24
**⑤ 自研面别低估**:adapter 的**护城河核心**只两块(checkpoint/续跑 + 验收门),但平台域契约 A3/A4/A4.5/A8/A9/A11/A12 + A13 落地仍是自研或待建(见 §三)——排期按真实自研清单,不按"只剩两块"。
**⑥ 收口 TODO(跨文档 / 需真工)**:(a)~~doc-sync~~ **已做(2026-06-25)**——§4.2/§5.x 已按 `tier2/HANDOFF.md` 回写真相(tier2 核心已落 + feie-005 accept n=1,纠了"官方软刹不存在""纯内部多轮过早放弃→有界外层 resume"两处设计错),plan U8U10 现状同步(见 003「执行现状」);**剩:据此把 §二/§三 定级定稿、去"提案"标**;(b)5 个 build-vs-buy 待决改 **ADR 矩阵**(每条 ≥3 具名候选);(c)durable-execution / SandboxDriver 各出选型 spike;(d)标准成熟度五列补全;(e)收敛环验证 go/no-go(并发跑 5、有错再追加 5;批跑底座已就位、设 n=5,**不做 n≥30 统计批跑**)。
**⑥ 收口 TODO(跨文档 / 需真工)**:(a)~~doc-sync + §二/§三 定级定稿、去"提案"标~~ **已做(2026-06-25,见 §二补二/三)**;(b)~~5 个 build-vs-buy 待决改 ADR 矩阵~~ **已做(§二补三,每条 ≥3 具名候选 + 排除理由)**;(d)~~标准成熟度五列~~ **已做(§二补二)**。**剩两项属"通过设计后的执行 plan"、不在文档完成范围**:(c)durable-execution / SandboxDriver 选型 spike(沙箱底座先验 agentscope 2.0.2 DockerWorkspace 能否托管 CDP 九门 harness、跨机扩容是否真需独立 durable-engine);(e)收敛环验证 go/no-go(并发跑 5、有错再追加 5;批跑底座已就位、设 n=5,**不做 n≥30 统计批跑**)。
下面 §三 把每条 A 协议对到它采的标准,并如实标"现 / 建 / 待定"(定级待 §二补收口后冻)。
### 二补二 · 标准成熟度五列
| 标准 | 权威来源 / 版本 | 成熟度 | 采用位置 | 待验证项 |
|---|---|---|---|---|
| A2A(任务+状态) | Linux Foundation · 规范 1.0.0 GA(2025;LF 治理、150+ 组织企业生产用) | 可即采(任务壳:状态机/流式/发现) | A1 / A2 | cancel 仅状态壳 → 副作用契约自研 |
| MCP Tools | Anthropic / AAIF | 可即采 | A7 | rule-of-three:第二实现(Phaser 探针)前 v1 directional 不冻 |
| MCP Tasks | SEP-1686 · 2025-11 引入 | experimental(无毕业表;缺 retry/expiry) | A7 慢门(仅 spike) | 自补幂等 + TTL;spike 对比平台 job-handle+poll |
| OTel GenAI semconv | OpenTelemetry 独立 semconv-genai 仓 · 1.40.0 | Development(span 语义稳定、整组非 stable) | A2.5 | 钉版本 + 隔离;**无 cost 属性 → TraceLedger 自研**;补 Anthropic 路成本录制 |
| SKILL.md | agentskills.io 开放标准 | 可即采 | A10 / 能力面 | — |
| Langfuse 热取 | OSS MIT 自托管 | 须隔离(调和 GitOps) | A13 | EE 锁 protected labels → 验 OSS label+GitOps 等效;先补一致性 CI |
| Agent Service / Workspace / MessageBus | agentscope 2.0.2 内置(源码实证;吸收自已归档 agentscope-runtime) | 可即采(已落 `mini-desktop:8200`) | 扩容(A1)/ 沙箱(A6) | DockerWorkspace 能否托管 CDP 九门 harness;跨机是否需独立 durable-engine |
| durable-execution(跨机) | Temporal(MIT)/ DBOS(OSS) | 范式 · future-state(跨机才需) | 扩容 | 跨机 run 调度/续跑是否真超出 Agent Service durable session |
| microVM 沙箱(远期) | E2B(via E2BWorkspace)/ 阿里云 AgentRun | future-state | 沙箱 | E2B 数据出境 / AgentRun 数据不出境·FC 锁·定价;Chrome+CDP under gVisor |
护城河两块,标准都不提供、必自研:确定性验收门 + fail-closed 预算硬闸。归属须分清:MCP / goose / AGENTS.md ∈ AAIF;A2A ∈ Linux Foundation;OTel GenAI ∈ OpenTelemetry 独立仓。独立的 `agentscope-runtime` 仓已归档,其工具沙箱 / Agent-as-a-Service / 可观测能力已并入 agentscope 2.0.2(`workspace` / `app` / `event`)——做沙箱与部署用 `agentscope[full]` 一个包,不装那个归档仓(本仓 [`agentscope-2.0-facts.md`](../../../../.agents/knowledge/agentscope-2.0-facts.md) 早有此结论)。
### 二补三 · build-vs-buy ADR 决策矩阵
每条 ≥3 具名候选,排除理由落枚举 {许可 / 体积 / 沙箱CSP / 维护健康度 / 集成成本 / 数据主权}(按 [`build-vs-buy.md`](../../../../.agents/rules/build-vs-buy.md) R1)。
**ADR-1 · 任务+状态协议 → 采 A2A**(checkpoint / 续跑 + cancel 副作用契约自研)
| 候选 | 判定 |
|---|---|
| A2A(LF,1.0 GA;8 态 + tasks/cancel) | 采 |
| OpenAI Assistants API | 排除(数据主权 + 集成成本:锁 OpenAI 端点) |
| LangGraph 状态机 | 排除(集成成本 + 维护健康度:任务语义绑进框架运行时) |
| 自研任务协议 | 排除(R2:v3 趋同 A2A 任务壳,默认采购) |
位置 A1 / A2。待验证:cancel 仅状态壳 → 自研 cancel contract(取消点 Chrome/子进程/模型中断、费用结算、checkpoint、D12 释放、补偿、幂等)。
**ADR-2 · 工具协议 → 采 MCP-native**(Tools 即采;慢门第一版 job-handle+poll,Tasks 仅 spike)
| 候选 | 判定 |
|---|---|
| MCP(Tools 成熟;Tasks experimental) | 采 Tools;Tasks 隔离 |
| OpenAI function-calling | 排除(数据主权 + 集成成本:绑厂商 schema) |
| LangChain tools | 排除(维护健康度 + 集成成本:框架内包装、非语言无关) |
| 自研 FunctionTool 薄壳(AgentScope 内置) | 部分采纳(R5 胶水豁免);跨进程仍走 MCP |
位置 A7(finish 形状 = A3)。待验证:Tasks 缺 retry/expiry → 慢门若用须自补幂等 + TTL;rule-of-three 第二实现前不冻。
**ADR-3 · trace → 采 OTel GenAI + 自研 TraceLedger**
| 候选 | 判定 |
|---|---|
| OTel GenAI semconv(Development、语义稳定) | 采(钉版本 + 隔离) |
| Langfuse trace | 可叠加作消费/可视化端、非语义源 |
| LangSmith | 排除(数据主权 + 许可:SaaS 数据出域) |
| 自研 trace | 排除(R2:span 三段趋同 OTel);只留 TraceLedger 封套 |
位置 A2.5。关键:OTel `gen_ai.usage` 只有 token 数、**无 cost 属性** → 成本钉 new-api 计费行的自研口径必留。待验证:Development 非 stable → 钉版本 + 隔离;补 Anthropic 路(M3)成本录制变体。
**ADR-4 · 配置热取 → 采 Langfuse 式(自托管 OSS)**(read 运行时热取 / write 走 GitOps)
| 候选 | 判定 |
|---|---|
| Langfuse 自托管(核心 MIT;prompt 版本不可变 + label 指针全 OSS) | 采 |
| LangSmith | 排除(数据主权 + 许可) |
| 自研 GitOps 快照(现状) | 部分采纳(write 侧 GitOps);read 侧"改一条发版"反模式须叠热取 |
| Spring Cloud Config | 排除(集成成本:无 prompt 版本/label/eval/灰度) |
| LaunchDarkly | 排除(数据主权 + 集成成本:SaaS、面向 flag 非 prompt) |
位置 A13。待验证:EE 锁 protected prompt labels → 验纯 OSS label + 外部 GitOps 门等效防误推 production;先补一致性 CI 再推广。
**ADR-5 · 水平扩容 → 近期 2.0.2 Agent Service,跨机 durable-execution future-state**
agentscope 2.0.2 内置 Agent Service(`create_app`,REST + SSE + 多租户 + durable session,**强依赖 Redis**)与 MessageBus(Redis:事件 replay / 分布式锁 / cancel)已满足 tier2 接入与会话持久(P4 已落 `mini-desktop:8200`,零新增依赖);app 级弹性扩展靠自容器化 ASGI 上 K8s / serverless。跨机的 workflow 持久化与断点续跑超出 agentscope,才需独立引擎。
| 候选 | 判定 |
|---|---|
| agentscope 2.0.2 Agent Service + MessageBus | 近期采(零新增依赖,已落 @8200;durable session / 分布式锁 / cancel / replay) |
| Temporal | 跨机 durable-execution 候选(MIT、双栈 SDK;运维重 3 服务) |
| DBOS Transact | 候选(最轻、复用 Postgres;Java SDK 新、可观测缺口) |
| Restate | 备选(BSL 1.1 法务先清) |
| 自研 DB-queue / AgentScope MessageBus 当 durable-exec | 排除(现货优先 / 能力不匹配:MessageBus 无 workflow 持久化) |
| ~~agentscope-runtime DeployManager~~ | 排除·**项目已归档**(能力并入 2.0.2) |
位置 扩容(future-state,先旁路 tier2、不动在产 SAA)。廉价线现状 K-槽 单 JVM 非反模式。待验证:跨机 run 调度 + 续跑 + cancel 是否真需独立引擎(还是 Agent Service durable session + K8s 够);Temporal 单 PG 低 QPS 运维 / DBOS Java 长跑稳定性。
**ADR-6 · 沙箱执行 → agentscope 2.0.2 Workspace(吸收自已归档 runtime)+ tier2 CDP harness**
agentscope 2.0.2 内置 Workspace 三后端(源码实证 `LocalWorkspace` / `DockerWorkspace` / `E2BWorkspace`)= agent 工具执行沙箱(Docker/E2B 经容器内 MCP gateway,是 generic 工具沙箱、不直接暴露 CDP)。tier2 九门要 CDP / Chrome 真玩,走 tier2 自家 CDP harness(现状 Local)。
| 候选 | 判定 |
|---|---|
| Local workspace(现状已 accept) | 留开发态(零隔离) |
| agentscope 2.0.2 DockerWorkspace | agent 工具执行近期采(零新增依赖;过渡期需 agentscope 源码 COPY 进镜像) |
| 自建 Docker(承载 CDP harness) | 九门真玩近期采(社区镜像暴露 CDP、内网数据主权) |
| Docker + gVisor | 隔离加固候选(Chrome+CDP 兼容性待 spike) |
| E2BWorkspace / 阿里云 AgentRun | 远期 microVM(E2B 数据出境硬伤;AgentRun 数据不出境、FC 锁) |
| ~~独立 agentscope-runtime BrowserSandbox~~ | 排除·**项目已归档**(能力并入 2.0.2 Workspace;且本是 MCP-gateway 工具沙箱、非 CDP) |
位置 A6 探针 + B 类沙箱。待验证(最高优先):agentscope DockerWorkspace 能否托管 tier2 CDP 九门 harness(对比自建 Docker);Chrome+CDP 在 gVisor/runsc 下;阿里云 AgentRun 定价 / 是否暴露 CDP。
> **战略发现(已并入,非引入)**:agentscope-runtime 独立仓归档,工具沙箱 / Agent-as-a-Service / 可观测能力已并入 agentscope 2.0.2(Workspace / app / event)。tier2 已锁 2.0.2 → 扩容与沙箱底座零新增依赖,走 2.0.2 内置件、不装归档仓。本轮 §6.8 研究曾误把它当独立可采件,根因是漏 grep 仓内 `agentscope-2.0-facts.md`(已记此结论)+ 未核项目归档状态——已回填进 [`build-vs-buy.md`](../../../../.agents/rules/build-vs-buy.md) R1/R4。
下面 §三 把每条 A 协议对到它采的标准,并如实标"现 / 建"(定级已冻)。
---
@ -244,7 +341,7 @@ tier2 富游戏线的运行时按 AgentScope 2.0.2 的真实对象结构落地,
L1 的主体是九门,每门在真浏览器里真玩一局取确定性证据:A_boot(能否 boot,轮询 boot 信号)、B_uncaught(有无未捕获异常,监听 console 与 CDP 错误)、C_frame(帧在不在推进,前后取帧号差大于零)、D_render(画面有无真实内容,截图回读亮像素阈值)、E_live(画面在不在变,对多帧取哈希去重)、F_wiring(逻辑真调引擎还是空桩,查引擎 API 调用有没有出现)、G_input(注入输入后状态有无变化)、H_progress(核心机制有无真进展,driver 驱动加玩后断言、含 latch 终态)、I_control(控制响应跟不跟手,输入到反应的时序在阈值内)。九门里只有 H_progress 落 L2,其余落 L1;E_live 与 H_progress 是条件门(没有 driver 时降为 advisory),其余是硬门。九门全绿等于机制地板通过、可发——把"做完了"钉在客观证据上,绝不让模型自评。
现有九门是为廉价线的 LittleJS 建的,探针钩子硬编码了 LittleJS 专属取法。tier2 复用的是"真玩判定加零自评"这套哲学、**不是**这套代码,探针要为 Phaser 整套重写——canvas 选择器、帧源、boot 信号、输入注入与 state 读取四条钩子各自重写,不是参数化一键切。沙箱底座是 spike 的前置阻断项:先小验 agentscope-runtime 的 BrowserSandbox 暴露的能力够不够跑探针,够就用、不够回落自建薄沙箱复用现有 harness——这个结论必须在生成迭代开跑前出来,出不来整个 spike 跑不起来。
现有九门是为廉价线的 LittleJS 建的,探针钩子硬编码了 LittleJS 专属取法。tier2 复用的是"真玩判定加零自评"这套哲学、**不是**这套代码,探针要为 Phaser 整套重写——canvas 选择器、帧源、boot 信号、输入注入与 state 读取四条钩子各自重写,不是参数化一键切。沙箱底座是 spike 的前置阻断项:agentscope-runtime 独立仓已归档、能力并入 2.0.2,所以先小验 agentscope 2.0.2 内置 Workspace 的 Docker 后端能否托管这套 CDP 探针(它是 MCP-gateway 工具沙箱、不直接暴露 CDP),够就用、不够回落自建 Docker 薄沙箱复用现有 harness——这个结论必须在生成迭代开跑前出来,出不来整个 spike 跑不起来。
九门是超休闲单局的机制地板,不查跨系统接线;富游戏的难点恰在跨系统,所以在九门之上补三道 tier2 专属的确定性门。**三联动门**证三个系统真耦合而非孤岛:订单要的物品必须能被合成系统产出(从合成链静态推到订单的跨表可达性检查)、合成链必须是有向无环图(拓扑检查不许成环)、完成订单时必须真调资源系统加金币、合成消耗时必须真调扣食材。**经济门**用真输入把两条路驱动到终态:可盈利路径(金币从开局攒到目标判赢)、可破产路径(连续若干订单流失判输),关键约束是两条路都得被 harness 的真输入序列驱动跑到终态——能在数据表里算出来和能被真玩到是两回事。**latch 门**管终态落定不回弹、宿主能读到终局,承接的是"游戏无 emit 通道、终态焊成可轮询 latch、宿主轮询读"这条现行装载约束。九门加这三门合起来全绿,才算 tier2 的富游戏机制地板通过。