docs(agentic): 落创始人第2轮反馈——两阶段闭环/session三路径/goal-task/载体类型/workflow范式
- 图A 重画: 阶段1只读(EXPLORE)+跨session对话+修改意图设计 / 阶段2写工程内文档+模板初始化工具+写代码 / 工程仓闭环(写→读) - 图1/2 加 Agent Team; 图2 加 session 初始化三路径(续会话/加载已有工程/加载模板) - 图3 补 goal/task(AgentState.tasks_context TODO 追踪); 图6 每个自建项标载体类型(Tool/MW/Skill/Prompt/Memory/Schema/独立) - 图说 §5b 登记未来需求(给用户的 workflow 能力·待讨论) + §5 校正记录 + workflow 范式(无 DAG·自治) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ -1,22 +1,22 @@
|
||||
# tier2 agentic 运行时架构图说
|
||||
|
||||
> 🚧 评审版 · **9 张图**(6 svg + 3 mermaid)· 已纳入创始人 4 问校正(见 §5)。
|
||||
> **这是什么**:tier2 自治富游戏生成轨——agentic 这条线的「看图入口」。把「编排 → 启动 → 调用 → 运行时 → 返回结果」整条生命周期、它在系统里的位置、内部怎么转,用一套图讲清。复杂重要的用 svg/png 高保真大图,简单的用 mermaid。颗粒度面向 vibecoding。
|
||||
> 🚧 评审版 · **9 张图**(6 svg + 3 mermaid)· 已纳入创始人两轮共 8 点反馈校正(见 §5)。
|
||||
> **这是什么**:tier2 自治富游戏生成轨——agentic 这条线的「看图入口」。把「编排 → 启动 → 调用 → 运行时 → 返回」整条生命周期、它在系统里的位置、内部怎么转,用一套图讲清。复杂重要的 svg 大图,简单的 mermaid。颗粒度面向 vibecoding。
|
||||
> **给谁看**:判断「整个 agentic 架构是不是想要的那个」的创始人;照图实现的工程师 / vibecoding 的人。
|
||||
|
||||
---
|
||||
|
||||
## 0. 阅读约定与同步纪律
|
||||
|
||||
- **映射的设计档**:本图说不另立设计,只把《[自治富游戏引擎](自治富游戏引擎.md)》《[tier2 四层工程架构](tier2四层工程架构.md)》《[tier2 实现详设](tier2实现详设.md)》《[agentic 集成架构](agentic集成架构.md)》画出来。运行时机制以 **agentscope 2.0.3 源码实证**为准(`/root/oss/agentscope`,逐条核过)。
|
||||
- **同步纪律(创始人要求)**:**设计一变动,本图说与对应 svg 必须同步更新**,图脚注注明版本。已并入 wave 收口清单。
|
||||
- **产物形式**:svg 入仓(GitHub/编辑器直接渲染矢量),png 在 mini-desktop 转(6c6g 禁 chrome、无转换器)。
|
||||
- **映射设计档**:本图说只把《[自治富游戏引擎](自治富游戏引擎.md)》《[tier2 四层工程架构](tier2四层工程架构.md)》《[tier2 实现详设](tier2实现详设.md)》《[agentic 集成架构](agentic集成架构.md)》画出来。机制以 **agentscope 2.0.3 源码实证**为准(`/root/oss/agentscope`,逐条核过)。
|
||||
- **同步纪律**:设计一变动,本图说与对应 svg 必须同步更新(已并入 wave 收口清单)。
|
||||
- **产物**:svg 入仓(GitHub/编辑器渲染矢量),png 在 mini-desktop 转。
|
||||
|
||||
## 1. 全图通用图例
|
||||
|
||||
**生产维度**(大厂生产环境关心):安全(Workspace 隔离/密钥/产物消毒)、可观测(Event System → OTel → Studio)、可靠(四熔断/checkpoint/HITL/durable/fallback)、成本(预算软刹+硬杀/quota 台账)、数据(AgentState/落库/哈希)、伸缩(多实例/多租户/会话隔离)、质量(三层校验)。
|
||||
|
||||
**复用边界(二维 · 见图 6)**:来源(**官方现成** vs **自建**)× 共享范围(**两线公共** vs **tier2 私有**)。⚠️「公共组件」是**自建的共享件、不是现成的**。
|
||||
**生产维度**:安全 / 可观测 / 可靠 / 成本 / 数据 / 伸缩 / 质量(标在对应组件)。
|
||||
**复用边界(二维 · 图 6)**:来源(官方现成 vs 自建)× 共享(两线公共 vs tier2 私有)。⚠️公共组件是**自建的共享件、非现成**。
|
||||
**自治范式**:骨架 = 自治 loop(怎么走)+ task/goal 清单(走向哪、走到哪)+ Agent Team 动态调度(谁来走),**没有 workflow DAG**(见图 A 注 + §5b)。
|
||||
|
||||
## 2. 图集
|
||||
|
||||
@ -24,35 +24,35 @@
|
||||
|
||||

|
||||
|
||||
整个生成是**两阶段**。**阶段 1 是游戏工作室**——用 AgentScope 的 Agent Team(星形):一个 leader agent 分析并拆解用户意图,spawn 出玩法/关卡/数值机制/UI/音乐音效/特效/资产等多个专业**设计 worker** 并行发散(基于玩法模板 prompt + 工程初始化模板),结果经 TeamSay 汇回 leader(worker 之间不互连),leader 收敛成一份结构化设计(GDD + 各维度设计 + 工程骨架)。**阶段 2 是单写实现**——把这份设计交给单写 agent,它在 ReAct 循环里独自把代码写出来(运行时内部见图 3)、过三层校验、产出结构化游戏源项目。**设计用多 agent 是因为各专业发散、不共享代码状态;实现用单写是因为多系统共享同一套代码与约定,并行写几乎必然不一致**(曾把 Flappy 拆并行写,背景跑成了马里奥)。
|
||||
两阶段。**阶段 1 工作室**用 Agent Team 星形:leader 分析+拆解用户意图、`AgentCreate` 出玩法/关卡/数值/UI/音乐/特效/资产设计 worker 发散,TeamSay 汇 leader 收敛成设计结论。**这阶段是只读 + 对话**——设计 worker 用 `PermissionMode.EXPLORE` **只读已有工程代码 + 工程内设计文档**(迭代已有游戏时),并与用户**跨 session 多轮对话**。**阶段 2 单写实现**:① **模板代码初始化是这阶段的工具**(从模板铺工程骨架)② 把阶段 1 每个设计 agent 的结论**写成工程内文档** ③ 单写 agent 写代码 ④ 三层校验 ⑤ 产出。**闭环**:阶段 2 写进 repo 的文档/代码 → 下次迭代阶段 1 只读它再设计(设计文档 in repo、改源不改包,正是「游戏=长生命周期项目」)。设计用多 agent(发散/专业),实现用单写(防并行写冲突)。
|
||||
|
||||
### 图 1 · 系统全景 / 部署
|
||||
|
||||

|
||||
|
||||
tier2 agentic 是独立 service,game-cloud 经官方 **Agent Service 的 REST + SSE** 调它;它经 **new-api**(统一出口、协议不锁)调模型,用 **Workspace**(Local/Docker/E2B)干活,把会话/产物落到 Redis/MySQL/OSS,trace 导出 Studio。它与 **SAA 廉价线运行期零耦合**,两线只在「计费/送审/feed/验收基线」这些**公共组件**上交汇。
|
||||
tier2 agentic 是独立 service,game-cloud 经官方 **Agent Service(REST + SSE)**调它;service 内是「工作室 Agent Team → 单写」;它经 new-api 调模型、用 Workspace 干活、落 Redis/MySQL/OSS、trace 进 Studio;与 SAA 廉价线**运行期零耦合**,只在公共组件(计费/送审/feed/验收基线)交汇。
|
||||
|
||||
### 图 2 · 调用时序(cloud ↔ agentic)
|
||||
### 图 2 · 调用时序(含 session 初始化与两阶段)
|
||||
|
||||

|
||||
|
||||
**tier2 不自造 API,直接用官方 Agent Service**:`POST /sessions` 建 durable 会话并触发 run,`GET /sessions/{id}/events` 订阅 SSE。运行时每步(thinking/tool/result)作为 Event 经 SSE 流式推 cloud,**断线重连可 replay 缓冲**。中途可 HITL(确认/编辑工具参数)再精确恢复,也可取消。产物落库后回完成 event(verdict + 产物引用)。
|
||||
**tier2 不自造 API,直接用官方 Agent Service**。`POST /sessions` 建 durable 会话,**初始化三种加载入口**:① 续接之前会话(取 `SessionRecord.state` 历史,resume)② 加载已有游戏工程(`Workspace.workdir` 指向已有目录 → 迭代)③ 新建(阶段 2 模板初始化工具铺模板)。之后 **阶段 1 工作室**(leader 只读设计、AgentCreate worker、TeamSay 收敛、设计写 repo 文档)→ **阶段 2 单写**(ReAct loop:reason M3 / act Workspace / CDP 三层校验 / checkpoint)。每步 Event 经 SSE 流给 cloud(断线可 replay)+ OTel→Studio;可 HITL、可取消;产物落库后回完成 event。
|
||||
|
||||
### 图 3 · 运行时内部架构(AgentScope 真实对象结构)
|
||||
|
||||

|
||||
|
||||
**这张按 AgentScope 真实对象结构画**(纠正了上一版把 environment 当「被调用的旁边数据面」的错)。核心是 **Agent——一个无状态 ReAct 引擎**,它通过构造参数持有 model(M3)/toolkit/middlewares/state(AgentState)等。**Workspace 是 Agent 的执行环境,但它沿两条轴「注入」Agent**:① 它的工具/MCP/skills 被 `get_toolkit` 装进 Toolkit 给 Agent;② 它本身作为 offloader(管 context 卸载)给 Agent。所以 **Agent 持有 Workspace 引用,不是嵌在 Workspace 里**;真正「跑在 Workspace 里」的是 MCP 进程、skills、卸载文件。还有一条关键的生产事实:**Agent 实例非常驻**——Agent Service 每次 run 现组装一个 Agent、跑完即弃,一切可变态都在可持久化的 `AgentState`(落 Redis),所以天然可中断、可恢复、可水平扩。验收是**三层**(见下)。而「四层(environment/harness/context/prompt)」只是**职责视角**,叠在这个真实结构上,不是并列模块。
|
||||
按 AgentScope 真实结构画。核心是 **Agent——无状态 ReAct 引擎**,构造参数持有 model(M3)/toolkit/middlewares/state。**Workspace 是执行环境,沿两轴注入 Agent**:① 工具/MCP/skills → `get_toolkit` → Toolkit;② 本身作 offloader。所以 **Agent 持有 Workspace 引用、不嵌在里面**;真正「跑在 Workspace 里」的是 MCP 进程/skills/文件。**Agent 实例非常驻**——每 run 现组装、跑完即弃,状态全在可持久化 `AgentState`(含 `context` 工作记忆、`cur_iter`、`tasks_context`)。**goal/进度** = 输入(brief/play_spec/GDD)为目标 + `AgentState.tasks_context` 拆 TODO、逐项 `TaskCreate/Update` 追踪(像 todo)。验收**三层**。四层(environment/harness/context/prompt)只是职责视角,叠在真实结构上。
|
||||
|
||||
### 图 4 · 单写者 ReAct 循环流程(一轮迭代)
|
||||
|
||||

|
||||
|
||||
把图 3 中心那个循环展开成一轮:组装 context → reason 调 M3 → 判断「调工具还是收尾」→ 调工具就去 Workspace 写码/构建/真跑、CDP 取证、过**三层校验**,没过回 repair。模型产纯文本即收尾、出产物。右侧四熔断任一触发即优雅收尾,每轮 checkpoint。
|
||||
一轮:组装 context → reason 调 M3 → 判断「调工具 or 收尾」→ 调工具去 Workspace 写码/构建/真跑、CDP 取证、过三层校验,没过 repair。模型产纯文本即收尾。四熔断任一触发优雅收尾,每轮 checkpoint。
|
||||
|
||||
### 图 5 · 编排与配置结构
|
||||
|
||||
「编排」= 写一次代码骨架(`create_app` + 组装 Agent 的 model/toolkit/middleware/memory/react_config),「配置」= 三类外置(机制硬代码、安全/构建走版本化审计、策略热改不发版)。
|
||||
「编排」= 写一次代码骨架(`create_app` + 组装 Agent),「配置」= 三类外置(机制硬代码 / 安全·构建版本化审计 / 策略热改不发版)。
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
@ -66,24 +66,22 @@ flowchart TB
|
||||
AG --> RC["react_config:max_iters"]
|
||||
end
|
||||
subgraph 配置["配置外置(三类)"]
|
||||
H["硬代码·机制<br/>门断言 / 熔断 / 权限上限"]
|
||||
V["版本化·审计<br/>依赖锁 / 引擎版本 / 构建 profile / 沙箱类型"]
|
||||
HOT["热配置·策略<br/>prompt / 模型路由 / 阈值 / RAG 源"]
|
||||
H["硬代码·机制:门断言 / 熔断 / 权限上限"]
|
||||
V["版本化·审计:依赖锁 / 引擎版本 / 构建 profile / 沙箱类型"]
|
||||
HOT["热配置·策略:prompt / 模型路由 / 阈值 / RAG 源"]
|
||||
end
|
||||
APP --> AG
|
||||
HOT -. 改配置不发版 .-> AG
|
||||
```
|
||||
|
||||
### 图 6 · 复用边界(来源 × 共享范围)
|
||||
### 图 6 · 复用边界(来源 × 共享 · 自建项标载体类型)
|
||||
|
||||

|
||||
|
||||
**两个维度**:来源(官方现成 vs 自建)× 共享范围(两线公共 vs tier2 私有)。左列是 AgentScope 官方现成(列全,十几组:Event/Agent/Model/Context/Tool/MCP/Permission/Middleware/Workspace/State/Agent Service/Agent Team/Embedding/Formatter/Skill),直接用、不算 tier2 资产。右上是**自建的两线公共件**(九门/三层校验/CDP 探针/计费/送审/feed/trace 契约)——**它们是自建的、只是两线共享,不是现成的**。右下是 tier2 私有自建(通用治理 6 项 + 游戏专属 2 项)。还标了「官方没有」(无 RAG/无 evaluate/A2A 仅基座)和「该删」(token 计量/软预算/结构化调用/OTel/经验召回/多 agent 总线——都改用官方),把自研面缩到最小。
|
||||
二维:来源(官方现成 vs 自建)× 共享(两线公共 vs tier2 私有)。左列官方现成(十几组,直接用、非 tier2 资产)。右上自建的**两线公共件**(九门/三层校验/CDP/计费/送审/feed/trace,自建但共享)。右下 tier2 私有自建。**每个自建项标了载体类型**——用 AgentScope 哪种扩展点做:`Tool`(工具函数)/ `Middleware`(hook 拦截)/ `Skill`(SKILL.md)/ `Prompt`(指令)/ `Memory`(ReMe)/ `Schema`(契约)/ 框架外独立。还标了「官方没有」(RAG/evaluate/A2A 基座)和「该删→改官方」6 项。
|
||||
|
||||
### 图 7 · 产物与契约
|
||||
|
||||
返回的是**结构化源项目**(改源不改包、重新构建),由源项目契约钉住文件树/构建/依赖/落库;过程由 trace 契约记录。
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph SP["tier2 源项目契约(落库取回)"]
|
||||
@ -109,7 +107,7 @@ classDiagram
|
||||
class TimeoutMiddleware
|
||||
class StuckDetectMiddleware
|
||||
class AnthropicChatModel { +thinking_enable +credential.base_url }
|
||||
class AgentState { +cur_iter +context }
|
||||
class AgentState { +cur_iter +context +tasks_context }
|
||||
class WorkspaceBase
|
||||
Agent --> ReActConfig
|
||||
Agent --> Toolkit
|
||||
@ -133,13 +131,13 @@ classDiagram
|
||||
|
||||
| # | 图 | 形式 | 状态 |
|
||||
|---|---|---|---|
|
||||
| A | 生成两阶段(工作室→单写) | svg | ✅ 新增 |
|
||||
| 1 | 系统全景 / 部署 | svg | ✅ |
|
||||
| 2 | 调用时序(cloud↔agentic) | svg | ✅ |
|
||||
| 3 | 运行时内部(真实对象结构) | svg | ✅ 重画 |
|
||||
| 4 | 单写 ReAct 循环流程 | svg | ✅ |
|
||||
| A | 生成两阶段(工作室→单写·闭环) | svg | ✅ |
|
||||
| 1 | 系统全景(含 Team) | svg | ✅ |
|
||||
| 2 | 调用时序(session 三路径 + 两阶段) | svg | ✅ |
|
||||
| 3 | 运行时内部(真实结构 + goal/task) | svg | ✅ |
|
||||
| 4 | 单写 ReAct 循环流程(三层) | svg | ✅ |
|
||||
| 5 | 编排与配置 | mermaid | ✅ |
|
||||
| 6 | reuse 边界(二维) | svg | ✅ 重做 |
|
||||
| 6 | reuse 边界(二维 + 载体类型) | svg | ✅ |
|
||||
| 7 | 产物与契约 | mermaid | ✅ |
|
||||
| 8 | 关键类图 | mermaid | ✅ |
|
||||
|
||||
@ -147,26 +145,34 @@ classDiagram
|
||||
|
||||
| 层 | 内容 | 处置 | 工具包 |
|
||||
|---|---|---|---|
|
||||
| **L1 硬约束** | 编译报错 / 启动报错 / 运行错误日志 | **必须解决 · 循环** | 确定性:构建日志 / console error / CDP 错误捕获(九门多数落此) |
|
||||
| **L2 设计符合** | 玩法/关卡实现 vs 最新设计、UI 缺组件 | **尽量解决** | 设计符合度校验(部分九门:机制进展) |
|
||||
| **L3 效果** | 特效 / 画面美观 / 好不好玩 | **只评分不解决** | M3 视觉软检(绝不阻塞、绝不拒发) |
|
||||
| **L1 硬约束** | 编译/启动/运行错误日志 | **必须解决 · 循环** | 确定性:构建日志/console/CDP 错误捕获(九门多数落此) |
|
||||
| **L2 设计符合** | 玩法/关卡实现 vs 设计、UI 缺组件 | **尽量解决** | 设计符合度校验(部分九门:机制进展) |
|
||||
| **L3 效果** | 特效/美观/好不好玩 | **只评分不解决** | M3 视觉软检(绝不阻塞/拒发) |
|
||||
|
||||
**迭代原则**:初期只识别硬问题(L1),L2/L3 渐进完善;**绝不让效果问题阻塞真问题**;用户可经 HITL 发消息要求继续解决任意层。
|
||||
**迭代原则**:初期只识别硬问题(L1),L2/L3 渐进;**绝不让效果问题阻塞真问题**;用户可经 HITL 要求继续解决任意层。
|
||||
|
||||
## 5. 关键校正记录(创始人 4 问 · 2026-06-22)
|
||||
## 5. 校正记录(创始人反馈 · 2026-06-22)
|
||||
|
||||
1. **补两阶段**:原图只画了单写 agent;补「工作室多 agent 设计(Agent Team 星形)→ 单写实现」两阶段(图 A)。单写约束只管「写代码」那步。
|
||||
2. **environment 嵌套纠错**:environment = Workspace 是 Agent 的执行环境,沿两轴(资源→Toolkit / offloader)注入 Agent;Agent 持有引用、非嵌套;Agent 实例非常驻(图 3 重画)。
|
||||
3. **验收改三层**:L1 必须 / L2 尽量 / L3 只评分,不同工具包,初期只做 L1(§4、图 3/4)。
|
||||
4. **复用边界二维**:来源 × 共享范围;官方能力列全;自建严格核对(该删的改用官方);公共组件 = 自建 ∩ 共享(图 6)。
|
||||
1. **两阶段 + 职责闭环**:工作室多 agent 设计(Agent Team 星形)→ 单写实现(图 A)。阶段 1 只读(EXPLORE)+ 跨 session 对话 + 修改意图设计;阶段 2 写工程内文档 + 模板初始化工具 + 写代码;设计文档 in repo 闭环。
|
||||
2. **environment 嵌套纠错**:Workspace 是执行环境、沿两轴注入 Agent;Agent 持有引用、非嵌套;Agent 非常驻(图 3)。
|
||||
3. **三层校验**:L1 必须 / L2 尽量 / L3 只评分,不同工具包,初期只 L1(§4、图 3/4)。
|
||||
4. **复用边界二维 + 载体类型**:来源 × 共享;官方能力列全;自建严格核对(6 项改官方);公共=自建∩共享;**每个自建项标用什么 AgentScope 扩展点做**(图 6)。
|
||||
5. **goal/task**:目标 = 输入(brief/GDD) + `AgentState.tasks_context`(TaskCreate/Update 拆 TODO 追踪),补进图 3。
|
||||
6. **workflow 范式**:AgentScope 无显式 workflow DAG,tier2 是自治 loop + task/goal + Agent Team 动态调度(图 A 注)。
|
||||
7. **图 1/2 加 Team + session 三路径**:续会话 / 加载已有工程 / 加载模板(图 1、图 2)。
|
||||
|
||||
## 5b. 未来需求(记录 · 待讨论)
|
||||
|
||||
- **给用户使用的 workflow 能力**(2026-06-22 记):未来提供 workflow 编排能力**给用户 / 创作者使用**(可视化编排场景)。**当前 tier2 自身不需要 workflow**(自治 agent 范式)。这是未来产品场景,以后单独讨论,此处仅登记。
|
||||
|
||||
## 6. 术语映射(图里词 → AgentScope 2.0 官方)
|
||||
|
||||
| 图里词 | AgentScope 2.0 官方 |
|
||||
|---|---|
|
||||
| environment / 沙箱工作站 | **Workspace**(LocalWorkspace / DockerWorkspace / E2BWorkspace),经 Toolkit + offloader 双轴接入 Agent |
|
||||
| API / Session 层 | **Agent Service**(REST + SSE,`/sessions` 等;Agent 非常驻) |
|
||||
| environment / 沙箱 | **Workspace**(Local/Docker/E2B),经 Toolkit + offloader 双轴接入 Agent |
|
||||
| API / Session 层 | **Agent Service**(REST + SSE,Agent 非常驻) |
|
||||
| 工作室多 agent | **Agent Team**(leader-worker 星形 · TeamCreate/AgentCreate/TeamSay) |
|
||||
| goal / 任务追踪 | **AgentState.tasks_context** + `TaskCreate/Get/List/Update` 工具 |
|
||||
| 可观测 | **Event System**(typed stream)→ TracingMiddleware → Studio |
|
||||
| 熔断 | **Middleware 洋葱**(`on_reasoning`/`on_model_call`…) |
|
||||
| checkpoint | **AgentState**(pydantic)+ StorageBase(Redis) |
|
||||
| 工作室多 agent | **Agent Team**(leader-worker 星形 · TeamCreate/AgentCreate/TeamSay) |
|
||||
|
||||
@ -1,94 +1,94 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1480 740" font-family="-apple-system,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1480 880" font-family="-apple-system,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif">
|
||||
<defs>
|
||||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L8,3 L0,6 Z" fill="#334155"/></marker>
|
||||
<marker id="arrowG" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L8,3 L0,6 Z" fill="#16a34a"/></marker>
|
||||
<marker id="arrowR" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L8,3 L0,6 Z" fill="#b45309"/></marker>
|
||||
<style>
|
||||
.t{fill:#0f172a}.mut{fill:#475569}.sm{font-size:12px}.xs{font-size:11px}
|
||||
.h1{font-size:24px;font-weight:700}.h2{font-size:15px;font-weight:700}.lbl{font-size:13px;font-weight:600}
|
||||
.flow{stroke:#334155;stroke-width:1.8;fill:none}.star{stroke:#16a34a;stroke-width:1.5;fill:none}
|
||||
.h1{font-size:23px;font-weight:700}.h2{font-size:14px;font-weight:700}.lbl{font-size:13px;font-weight:600}
|
||||
.flow{stroke:#334155;stroke-width:1.8;fill:none}.star{stroke:#16a34a;stroke-width:1.3;fill:none}
|
||||
.ro{stroke:#b45309;stroke-width:1.8;fill:none;stroke-dasharray:6 3}.wr{stroke:#2563eb;stroke-width:1.8;fill:none}
|
||||
</style>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1480" height="740" fill="#f8fafc"/>
|
||||
<text x="40" y="38" class="t h1">图 A · 生成两阶段:工作室(多 agent 设计)→ 单写(实现)</text>
|
||||
<text x="40" y="58" class="mut sm">AgentScope Agent Team 星形:leader 拆解+调度,多专业设计 worker 发散;再交单写 agent 实现。设计用多 agent(发散·专业分工),实现用单写(防并行写冲突)。</text>
|
||||
<rect x="0" y="0" width="1480" height="880" fill="#f8fafc"/>
|
||||
<text x="40" y="36" class="t h1">图 A · 生成两阶段:工作室(只读·设计)→ 单写(写文档·实现)</text>
|
||||
<text x="40" y="56" class="mut sm">阶段 1 多 agent 只读设计 + 跨 session 对话;阶段 2 单写实现 + 把设计写成工程内文档。设计文档 in repo,下次迭代阶段 1 再只读它 → 闭环(游戏=长生命周期项目)。</text>
|
||||
|
||||
<!-- 阶段1 工作室 -->
|
||||
<rect x="40" y="80" width="720" height="600" rx="12" fill="#f0fdf4" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="58" y="106" class="t h2">阶段 1 · 游戏工作室(Agent Team 星形)</text>
|
||||
<!-- 用户 -->
|
||||
<rect x="560" y="78" width="360" height="42" rx="9" fill="#e2e8f0" stroke="#0f172a" stroke-width="1.6"/>
|
||||
<text x="740" y="104" text-anchor="middle" class="t sm">用户(跨 session 多轮对话:新建 / 迭代已有游戏)</text>
|
||||
|
||||
<rect x="58" y="120" width="200" height="46" rx="9" fill="#e2e8f0" stroke="#0f172a" stroke-width="1.6"/>
|
||||
<text x="158" y="148" text-anchor="middle" class="t sm">一句话 brief + play_spec</text>
|
||||
<!-- 阶段1 -->
|
||||
<rect x="40" y="140" width="690" height="448" rx="12" fill="#f0fdf4" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="58" y="165" class="t h2">阶段 1 · 工作室(只读 · 对话 · 设计)</text>
|
||||
<text x="58" y="183" class="mut xs">PermissionMode.EXPLORE 只读 · Agent Team 星形</text>
|
||||
|
||||
<rect x="58" y="320" width="200" height="100" rx="10" fill="#dcfce7" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="158" y="356" text-anchor="middle" class="t lbl">leader agent</text>
|
||||
<text x="158" y="378" text-anchor="middle" class="mut xs">意图分析 + 拆解</text>
|
||||
<text x="158" y="396" text-anchor="middle" class="mut xs">+ 调度 + 收敛</text>
|
||||
<rect x="58" y="335" width="172" height="92" rx="10" fill="#dcfce7" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="144" y="368" text-anchor="middle" class="t lbl">leader</text>
|
||||
<text x="144" y="389" text-anchor="middle" class="mut xs">意图分析 + 拆解</text>
|
||||
<text x="144" y="407" text-anchor="middle" class="mut xs">+ 调度 + 收敛</text>
|
||||
|
||||
<line x1="158" y1="166" x2="158" y2="318" class="flow" marker-end="url(#arrow)"/>
|
||||
<line x1="740" y1="120" x2="240" y2="335" class="flow" marker-end="url(#arrow)"/>
|
||||
<text x="430" y="210" class="xs mut">跨 session 对话</text>
|
||||
|
||||
<!-- 7 worker -->
|
||||
<rect x="330" y="118" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="147" class="t sm">玩法设计 worker</text>
|
||||
<rect x="330" y="176" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="205" class="t sm">关卡设计 worker</text>
|
||||
<rect x="330" y="234" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="263" class="t sm">数值/机制设计 worker</text>
|
||||
<rect x="330" y="292" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="321" class="t sm">UI 设计 worker</text>
|
||||
<rect x="330" y="350" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="379" class="t sm">音乐 / 音效设计 worker</text>
|
||||
<rect x="330" y="408" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="437" class="t sm">特效设计 worker</text>
|
||||
<rect x="330" y="466" width="410" height="48" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="1.6"/><text x="344" y="495" class="t sm">资产设计 worker</text>
|
||||
<rect x="266" y="196" width="448" height="38" rx="7" fill="#ffffff" stroke="#16a34a" stroke-width="1.4"/><text x="280" y="221" class="t xs">玩法设计 worker</text>
|
||||
<rect x="266" y="240" width="448" height="38" rx="7" fill="#ffffff" stroke="#16a34a" stroke-width="1.4"/><text x="280" y="265" class="t xs">关卡设计 worker</text>
|
||||
<rect x="266" y="284" width="448" height="38" rx="7" fill="#ffffff" stroke="#16a34a" stroke-width="1.4"/><text x="280" y="309" class="t xs">数值 / 机制设计 worker</text>
|
||||
<rect x="266" y="328" width="448" height="38" rx="7" fill="#ffffff" stroke="#16a34a" stroke-width="1.4"/><text x="280" y="353" class="t xs">UI 设计 worker</text>
|
||||
<rect x="266" y="372" width="448" height="38" rx="7" fill="#ffffff" stroke="#16a34a" stroke-width="1.4"/><text x="280" y="397" class="t xs">音乐 / 音效设计 worker</text>
|
||||
<rect x="266" y="416" width="448" height="38" rx="7" fill="#ffffff" stroke="#16a34a" stroke-width="1.4"/><text x="280" y="441" class="t xs">特效设计 worker · 资产设计 worker</text>
|
||||
|
||||
<!-- leader → worker 扇出 -->
|
||||
<line x1="258" y1="360" x2="328" y2="142" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="258" y1="362" x2="328" y2="200" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="258" y1="366" x2="328" y2="258" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="258" y1="370" x2="328" y2="316" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="258" y1="374" x2="328" y2="374" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="258" y1="378" x2="328" y2="432" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="258" y1="382" x2="328" y2="490" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="230" y1="365" x2="264" y2="215" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="230" y1="372" x2="264" y2="303" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="230" y1="380" x2="264" y2="391" class="star" marker-end="url(#arrowG)"/>
|
||||
<line x1="230" y1="388" x2="264" y2="435" class="star" marker-end="url(#arrowG)"/>
|
||||
|
||||
<text x="58" y="450" class="mut xs">· 基于玩法模板 prompt + 工程初始化模板</text>
|
||||
<text x="58" y="470" class="mut xs">· worker 不互连(星形)·</text>
|
||||
<text x="58" y="488" class="mut xs"> TeamSay 收发汇 leader</text>
|
||||
<rect x="58" y="470" width="656" height="100" rx="10" fill="#bbf7d0" stroke="#15803d" stroke-width="2"/>
|
||||
<text x="72" y="494" class="t lbl">leader 收敛 → 各 agent 设计结论(修改意图 / 新建)</text>
|
||||
<text x="72" y="516" class="mut xs">只读已有工程代码 + 工程内设计文档/结论(迭代时)→ 产出 GDD / 各维度设计</text>
|
||||
<text x="72" y="538" class="mut xs">worker 不互连(星形)· TeamSay 汇 leader</text>
|
||||
<text x="72" y="560" class="mut xs">Agent Team 工具:TeamCreate / AgentCreate / TeamSay / TeamDelete</text>
|
||||
|
||||
<rect x="58" y="540" width="682" height="120" rx="10" fill="#bbf7d0" stroke="#15803d" stroke-width="2"/>
|
||||
<text x="72" y="566" class="t lbl">leader 收敛 → 结构化设计</text>
|
||||
<text x="72" y="590" class="mut xs">GDD(玩法/胜负/机制)+ 关卡/数值表 + UI 规格 + 音乐音效/特效设计</text>
|
||||
<text x="72" y="610" class="mut xs">+ 资产清单 + 工程骨架初始化(玩法模板代码脚手架)</text>
|
||||
<text x="72" y="636" class="mut xs">Agent Team 工具:TeamCreate / AgentCreate(派生 worker)/ TeamSay / TeamDelete · 经 MessageBus 异步驱动</text>
|
||||
<!-- 阶段2 -->
|
||||
<rect x="760" y="140" width="680" height="448" rx="12" fill="#eff6ff" stroke="#2563eb" stroke-width="2.4"/>
|
||||
<text x="778" y="165" class="t h2">阶段 2 · 单写实现(写文档 · 初始化 · 写代码)</text>
|
||||
<text x="778" y="183" class="mut xs">可写权限 · 单写 agent</text>
|
||||
|
||||
<rect x="786" y="196" width="628" height="44" rx="8" fill="#dbeafe" stroke="#2563eb" stroke-width="1.6"/>
|
||||
<text x="796" y="223" class="t sm">① 模板代码初始化(工具:从模板铺工程骨架)</text>
|
||||
<rect x="786" y="250" width="628" height="44" rx="8" fill="#dbeafe" stroke="#2563eb" stroke-width="1.6"/>
|
||||
<text x="796" y="277" class="t sm">② 写工程内文档(记录每个设计 agent 的结论)</text>
|
||||
<rect x="786" y="304" width="628" height="44" rx="8" fill="#dcfce7" stroke="#16a34a" stroke-width="1.6"/>
|
||||
<text x="796" y="331" class="t sm">③ 单写 agent · ReAct 写代码(运行时 → 图 3)</text>
|
||||
<rect x="786" y="358" width="628" height="44" rx="8" fill="#ffffff" stroke="#15803d" stroke-width="1.6"/>
|
||||
<text x="796" y="385" class="t sm">④ 三层校验(L1 必须 / L2 尽量 / L3 评分)· 未过 repair</text>
|
||||
<rect x="786" y="412" width="628" height="44" rx="8" fill="#bbf7d0" stroke="#15803d" stroke-width="2"/>
|
||||
<text x="796" y="439" class="t sm">⑤ 产出结构化游戏源项目</text>
|
||||
<line x1="1100" y1="240" x2="1100" y2="250" class="flow" marker-end="url(#arrow)"/>
|
||||
<line x1="1100" y1="294" x2="1100" y2="304" class="flow" marker-end="url(#arrow)"/>
|
||||
<line x1="1100" y1="348" x2="1100" y2="358" class="flow" marker-end="url(#arrow)"/>
|
||||
<line x1="1100" y1="402" x2="1100" y2="412" class="flow" marker-end="url(#arrow)"/>
|
||||
|
||||
<text x="786" y="486" class="mut xs">模板初始化是阶段 2 的工具(不是阶段 1);每个设计结论落 repo 文档,供下次迭代只读</text>
|
||||
|
||||
<!-- 移交 -->
|
||||
<line x1="740" y1="600" x2="788" y2="350" class="flow" marker-end="url(#arrow)"/>
|
||||
<text x="746" y="475" class="xs t">移交结构化设计</text>
|
||||
<text x="746" y="492" class="xs t">+ 工程骨架</text>
|
||||
<line x1="714" y1="510" x2="758" y2="320" class="flow" marker-end="url(#arrow)"/>
|
||||
<text x="700" y="430" class="xs t" transform="rotate(-78 700 430)">移交设计结论</text>
|
||||
|
||||
<!-- 阶段2 单写 -->
|
||||
<rect x="790" y="80" width="650" height="600" rx="12" fill="#eff6ff" stroke="#2563eb" stroke-width="2.4"/>
|
||||
<text x="808" y="106" class="t h2">阶段 2 · 单写实现</text>
|
||||
<!-- 工程仓 + 闭环 -->
|
||||
<rect x="330" y="630" width="820" height="120" rx="12" fill="#fffbeb" stroke="#b45309" stroke-width="3"/>
|
||||
<text x="350" y="657" class="t h2">游戏工程仓 repo(长生命周期 · 改源不改包)</text>
|
||||
<text x="350" y="681" class="mut xs">源代码 + 设计文档(in repo:每个设计 agent 的结论)</text>
|
||||
<text x="350" y="703" class="mut xs">→ 阶段 2 写入;阶段 1 下次迭代只读它做修改设计</text>
|
||||
<text x="350" y="727" class="t xs" font-weight="700" fill="#b45309">闭环:写 → 读 → 再设计 → 再写</text>
|
||||
|
||||
<rect x="828" y="130" width="574" height="70" rx="10" fill="#dbeafe" stroke="#2563eb" stroke-width="1.6"/>
|
||||
<text x="838" y="156" class="t sm">结构化设计(GDD + 各维度 + 工程骨架)</text>
|
||||
<text x="838" y="178" class="mut xs">阶段 1 的产物,作为单写 agent 的输入</text>
|
||||
<path d="M 360,630 L 280,630 L 280,500 L 56,500" class="ro" marker-end="url(#arrowR)"/>
|
||||
<text x="150" y="560" class="xs" fill="#b45309">① 阶段1 只读</text>
|
||||
<text x="150" y="576" class="xs" fill="#b45309">代码 + 文档</text>
|
||||
<path d="M 1100,456 L 1100,560 L 1148,560 L 1148,628" class="wr" marker-end="url(#arrow)"/>
|
||||
<text x="1156" y="560" class="xs" fill="#2563eb">② 阶段2 写</text>
|
||||
<text x="1156" y="576" class="xs" fill="#2563eb">文档 + 代码</text>
|
||||
|
||||
<rect x="868" y="244" width="494" height="74" rx="10" fill="#dcfce7" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="1115" y="272" text-anchor="middle" class="t lbl">单写 agent(实现)</text>
|
||||
<text x="1115" y="296" text-anchor="middle" class="mut xs">ReAct 循环写代码(运行时内部 → 图 3)</text>
|
||||
|
||||
<rect x="868" y="356" width="494" height="64" rx="10" fill="#ffffff" stroke="#15803d" stroke-width="2"/>
|
||||
<text x="1115" y="383" text-anchor="middle" class="t sm">三层校验(L1 必须 / L2 尽量 / L3 评分)</text>
|
||||
<text x="1115" y="404" text-anchor="middle" class="mut xs">未过 → repair 回环</text>
|
||||
|
||||
<rect x="868" y="458" width="494" height="64" rx="10" fill="#bbf7d0" stroke="#15803d" stroke-width="2"/>
|
||||
<text x="1115" y="485" text-anchor="middle" class="t lbl">产出:结构化游戏源项目</text>
|
||||
<text x="1115" y="506" text-anchor="middle" class="mut xs">→ 落库 MySQL + OSS</text>
|
||||
|
||||
<line x1="1115" y1="200" x2="1115" y2="242" class="flow" marker-end="url(#arrow)"/>
|
||||
<line x1="1115" y1="318" x2="1115" y2="354" class="flow" marker-end="url(#arrow)"/>
|
||||
<line x1="1115" y1="420" x2="1115" y2="456" class="flow" marker-end="url(#arrow)"/>
|
||||
<path d="M 868,388 L 828,388 L 828,280 L 866,280" class="flow" marker-end="url(#arrow)"/>
|
||||
|
||||
<rect x="828" y="556" width="574" height="104" rx="10" fill="#ffffff" stroke="#2563eb" stroke-width="1.4"/>
|
||||
<text x="842" y="582" class="t sm" font-weight="700">为什么这样分两阶段:</text>
|
||||
<text x="842" y="606" class="mut xs">· 设计阶段是发散、各专业不共享代码状态 → 多 agent 并行最优</text>
|
||||
<text x="842" y="628" class="mut xs">· 实现阶段多系统共享同一套代码/约定 → 单写防不一致</text>
|
||||
<text x="842" y="650" class="mut xs"> (曾把 Flappy 拆并行写,背景跑成了马里奥)</text>
|
||||
|
||||
<text x="40" y="724" class="mut xs">映射:自治富游戏引擎.md(单写者)· tier2实现详设.md · agentic集成架构.md | 基于 agentscope 2.0.3 Agent Team 源码实证 | 设计变动须同步本图</text>
|
||||
<text x="40" y="800" class="mut xs">workflow:两阶段 = Agent Team 动态调度 + 自治 loop,<tspan font-weight="700">非 workflow DAG</tspan>(AgentScope 无显式 workflow 原语);「给用户用的 workflow 能力」是未来需求、另议(图说 §5b)。</text>
|
||||
<text x="40" y="822" class="mut xs">建 session 三种加载入口(续会话 / 加载已有工程 / 加载模板)见图 2。 映射:自治富游戏引擎.md · agentic集成架构.md · generation-lifecycle-project-model | 设计变动须同步本图</text>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 8.2 KiB |
@ -39,8 +39,8 @@
|
||||
<text x="468" y="166" class="t sm">Agent Service(REST + SSE)</text>
|
||||
<text x="468" y="183" class="mut xs">多租户 · 会话 · HITL · 取消 · /sessions /chat /schedule</text>
|
||||
<rect x="458" y="198" width="434" height="66" rx="8" fill="#ffffff" stroke="#16a34a" stroke-width="2"/>
|
||||
<text x="468" y="222" class="t lbl">单写者 ReAct 循环(详见图 3)</text>
|
||||
<text x="468" y="244" class="mut xs">Agent + ReActConfig + Middleware 熔断 + 四层载荷</text>
|
||||
<text x="468" y="222" class="t lbl">工作室 Agent Team → 单写实现(图 A / 3)</text>
|
||||
<text x="468" y="244" class="mut xs">阶段1 leader+设计worker(星形) · 阶段2 单写 agent</text>
|
||||
<rect x="458" y="272" width="212" height="44" rx="8" fill="#f5f3ff" stroke="#7c3aed" stroke-width="1.6"/>
|
||||
<text x="468" y="299" class="t sm">Model 适配 → new-api</text>
|
||||
<rect x="680" y="272" width="212" height="44" rx="8" fill="#eff6ff" stroke="#2563eb" stroke-width="1.6"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
@ -1,95 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1480 1010" font-family="-apple-system,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1480 1200" font-family="-apple-system,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif">
|
||||
<defs>
|
||||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L8,3 L0,6 Z" fill="#334155"/></marker>
|
||||
<marker id="arrowB" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L8,3 L0,6 Z" fill="#0ea5e9"/></marker>
|
||||
<style>
|
||||
.t{fill:#0f172a}.mut{fill:#475569}.sm{font-size:12px}.xs{font-size:11px}
|
||||
.h1{font-size:24px;font-weight:700}.h2{font-size:14px;font-weight:700}.lbl{font-size:13px;font-weight:600}
|
||||
.h1{font-size:23px;font-weight:700}.h2{font-size:13px;font-weight:700}.lbl{font-size:13px;font-weight:600}
|
||||
.req{stroke:#334155;stroke-width:1.8;fill:none}.sse{stroke:#0ea5e9;stroke-width:1.8;fill:none;stroke-dasharray:6 3}
|
||||
.life{stroke:#94a3b8;stroke-width:1.4;stroke-dasharray:3 4}.badge{font-size:10.5px;font-weight:700}
|
||||
</style>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1480" height="1010" fill="#f8fafc"/>
|
||||
<text x="40" y="38" class="t h1">图 2 · 调用时序(cloud ↔ agentic)</text>
|
||||
<text x="40" y="58" class="mut sm">cloud 直接用官方 Agent Service:REST 建会话 + SSE 收流式 Event;durable session 可恢复、可取消、支持 HITL。蓝色虚线 = SSE 事件流。</text>
|
||||
<rect x="0" y="0" width="1480" height="1200" fill="#f8fafc"/>
|
||||
<text x="40" y="36" class="t h1">图 2 · 调用时序(cloud ↔ agentic · 含 session 初始化与两阶段)</text>
|
||||
<text x="40" y="56" class="mut sm">cloud 用官方 Agent Service(REST + SSE)。建 session 三种加载入口;阶段 1 工作室 Agent Team 设计 → 阶段 2 单写实现。蓝虚线 = SSE 事件流。</text>
|
||||
|
||||
<!-- 泳道头 -->
|
||||
<rect x="50" y="78" width="280" height="52" rx="10" fill="#e2e8f0" stroke="#0f172a" stroke-width="2"/>
|
||||
<text x="190" y="100" text-anchor="middle" class="t lbl">game-cloud(Java)</text>
|
||||
<text x="190" y="119" text-anchor="middle" class="mut xs">调用方</text>
|
||||
<rect x="410" y="78" width="300" height="52" rx="10" fill="#f0fdf4" stroke="#16a34a" stroke-width="2"/>
|
||||
<text x="560" y="100" text-anchor="middle" class="t lbl">Agent Service〔官方〕</text>
|
||||
<text x="560" y="119" text-anchor="middle" class="mut xs">REST + SSE · 多租户 · durable</text>
|
||||
<rect x="780" y="78" width="280" height="52" rx="10" fill="#dcfce7" stroke="#16a34a" stroke-width="2"/>
|
||||
<text x="920" y="100" text-anchor="middle" class="t lbl">运行时(单写者循环)</text>
|
||||
<text x="920" y="119" text-anchor="middle" class="mut xs">Agent + Middleware</text>
|
||||
<rect x="1130" y="78" width="300" height="52" rx="10" fill="#eff6ff" stroke="#2563eb" stroke-width="2"/>
|
||||
<text x="1280" y="100" text-anchor="middle" class="t lbl">依赖</text>
|
||||
<text x="1280" y="119" text-anchor="middle" class="mut xs">new-api · Workspace · 存储 · Studio</text>
|
||||
<rect x="50" y="76" width="280" height="50" rx="10" fill="#e2e8f0" stroke="#0f172a" stroke-width="2"/><text x="190" y="106" text-anchor="middle" class="lbl t">game-cloud</text>
|
||||
<rect x="410" y="76" width="300" height="50" rx="10" fill="#f0fdf4" stroke="#16a34a" stroke-width="2"/><text x="560" y="100" text-anchor="middle" class="lbl t">Agent Service〔官方〕</text><text x="560" y="118" text-anchor="middle" class="mut xs">REST+SSE · durable · Team</text>
|
||||
<rect x="780" y="76" width="280" height="50" rx="10" fill="#dcfce7" stroke="#16a34a" stroke-width="2"/><text x="920" y="106" text-anchor="middle" class="lbl t">运行时(Team + 单写)</text>
|
||||
<rect x="1130" y="76" width="300" height="50" rx="10" fill="#eff6ff" stroke="#2563eb" stroke-width="2"/><text x="1280" y="106" text-anchor="middle" class="lbl t">依赖:new-api·Workspace·存储</text>
|
||||
|
||||
<!-- 生命线 -->
|
||||
<line x1="190" y1="130" x2="190" y2="900" class="life"/>
|
||||
<line x1="560" y1="130" x2="560" y2="900" class="life"/>
|
||||
<line x1="920" y1="130" x2="920" y2="900" class="life"/>
|
||||
<line x1="1280" y1="130" x2="1280" y2="900" class="life"/>
|
||||
<line x1="190" y1="126" x2="190" y2="1110" class="life"/>
|
||||
<line x1="560" y1="126" x2="560" y2="1110" class="life"/>
|
||||
<line x1="920" y1="126" x2="920" y2="1110" class="life"/>
|
||||
<line x1="1280" y1="126" x2="1280" y2="1110" class="life"/>
|
||||
|
||||
<!-- 消息 -->
|
||||
<line x1="190" y1="162" x2="558" y2="162" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="196" y="156" class="xs t">① POST /sessions(brief + play_spec)</text>
|
||||
<line x1="560" y1="198" x2="192" y2="198" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="300" y="192" class="xs mut">② 201 · session_id(durable 持久会话)</text>
|
||||
<line x1="190" y1="234" x2="558" y2="234" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="196" y="228" class="xs t">③ GET /sessions/{id}/events(SSE 订阅)</text>
|
||||
<line x1="560" y1="270" x2="918" y2="270" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="566" y="264" class="xs t">④ 启动单写者 run</text>
|
||||
<line x1="190" y1="156" x2="558" y2="156" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="196" y="150" class="xs t">① POST /sessions(brief + play_spec · mode:新建/迭代/续接)</text>
|
||||
|
||||
<!-- loop 框 -->
|
||||
<rect x="800" y="292" width="610" height="338" rx="10" fill="none" stroke="#ea580c" stroke-width="1.6" stroke-dasharray="6 4"/>
|
||||
<text x="812" y="310" class="lbl" fill="#ea580c">ReAct 循环 ×N(每轮详见图 3 / 图 4)</text>
|
||||
<!-- session 初始化三路径 -->
|
||||
<rect x="410" y="172" width="1020" height="120" rx="10" fill="#fffbeb" stroke="#b45309" stroke-width="1.8"/>
|
||||
<text x="424" y="194" class="h2" fill="#b45309">② session 初始化(三选一加载)</text>
|
||||
<text x="424" y="218" class="xs t">· 续接之前会话:取 SessionRecord.state(历史对话 + 上次进度,durable resume)</text>
|
||||
<text x="424" y="242" class="xs t">· 加载已有游戏工程:Workspace.workdir 指向已有工程目录(→ 迭代/修改)</text>
|
||||
<text x="424" y="266" class="xs t">· 新建:阶段 2 用模板初始化工具把游戏模板铺进 Workspace</text>
|
||||
<text x="424" y="286" class="mut xs">(durable session + Workspace workdir 都是官方现成)</text>
|
||||
|
||||
<line x1="920" y1="338" x2="1278" y2="338" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="926" y="332" class="xs t">⑤ reason → new-api(M3 /v1/messages,thinking)</text>
|
||||
<line x1="1280" y1="372" x2="922" y2="372" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="980" y="366" class="xs mut">⑥ thinking + tool/text(Event)</text>
|
||||
<line x1="920" y1="408" x2="1278" y2="408" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="926" y="402" class="xs t">⑦ act → Workspace(写码 / esbuild / headless 真跑)</text>
|
||||
<line x1="920" y1="442" x2="1278" y2="442" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="926" y="436" class="xs t">⑧ CDP 探针 → verdict〔公共〕</text>
|
||||
<path d="M 920,468 q 46,0 46,14 q 0,14 -44,14" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="972" y="486" class="xs mut">⑨ 未过 → repair 回环</text>
|
||||
<line x1="920" y1="512" x2="1278" y2="512" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="926" y="506" class="xs t">⑩ checkpoint → Redis(durable,可恢复)</text>
|
||||
<line x1="918" y1="548" x2="562" y2="548" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="610" y="542" class="xs mut">⑪ Event(thinking / tool / result)</text>
|
||||
<line x1="558" y1="584" x2="192" y2="584" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="220" y="578" class="xs mut">⑫ SSE event-stream(resumable:断线 replay buffered)</text>
|
||||
<line x1="920" y1="618" x2="1278" y2="618" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="926" y="612" class="xs mut">⑬ OTel trace → Studio</text>
|
||||
<line x1="560" y1="316" x2="192" y2="316" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="300" y="310" class="xs mut">③ 201 · session_id + SSE 订阅</text>
|
||||
|
||||
<!-- 阶段1 工作室 -->
|
||||
<rect x="500" y="340" width="930" height="220" rx="10" fill="#f0fdf4" stroke="#16a34a" stroke-width="1.8" stroke-dasharray="6 4"/>
|
||||
<text x="514" y="362" class="h2" fill="#15803d">阶段 1 · 工作室(Agent Team 星形 · 只读 EXPLORE)</text>
|
||||
<line x1="560" y1="386" x2="918" y2="386" class="req" marker-end="url(#arrow)"/><text x="566" y="380" class="xs t">④ 启动 leader(意图分析 + 拆解)</text>
|
||||
<line x1="920" y1="420" x2="1278" y2="420" class="req" marker-end="url(#arrow)"/><text x="926" y="414" class="xs t">⑤ leader 只读 workspace(已有代码 + 工程内文档)</text>
|
||||
<path d="M 920,448 q 44,0 44,13 q 0,13 -42,13" class="req" marker-end="url(#arrow)"/><text x="968" y="465" class="xs mut">⑥ AgentCreate 设计 worker(玩法/关卡/数值/UI/音乐/特效/资产)</text>
|
||||
<path d="M 920,492 q 44,0 44,13 q 0,13 -42,13" class="req" marker-end="url(#arrow)"/><text x="968" y="509" class="xs mut">⑦ TeamSay 汇 leader → 收敛设计结论(GDD/各维度)</text>
|
||||
<line x1="920" y1="536" x2="1278" y2="536" class="req" marker-end="url(#arrow)"/><text x="926" y="530" class="xs t">⑧ 设计结论写入 repo 文档(供下次只读)</text>
|
||||
|
||||
<!-- 阶段2 单写 -->
|
||||
<rect x="500" y="580" width="930" height="300" rx="10" fill="#eff6ff" stroke="#2563eb" stroke-width="1.8" stroke-dasharray="6 4"/>
|
||||
<text x="514" y="602" class="h2" fill="#1d4ed8">阶段 2 · 单写实现(ReAct loop ×N · 每轮详见图 3 / 图 4)</text>
|
||||
<line x1="920" y1="628" x2="1278" y2="628" class="req" marker-end="url(#arrow)"/><text x="926" y="622" class="xs t">⑨ 模板初始化(新建时铺工程骨架)</text>
|
||||
<line x1="920" y1="662" x2="1278" y2="662" class="req" marker-end="url(#arrow)"/><text x="926" y="656" class="xs t">⑩ reason → new-api(M3 /v1/messages,thinking)</text>
|
||||
<line x1="920" y1="696" x2="1278" y2="696" class="req" marker-end="url(#arrow)"/><text x="926" y="690" class="xs t">⑪ act → Workspace(写码 / esbuild / headless 真跑)</text>
|
||||
<line x1="920" y1="730" x2="1278" y2="730" class="req" marker-end="url(#arrow)"/><text x="926" y="724" class="xs t">⑫ CDP 探针 → 三层校验(L1 必须 / L2 尽量 / L3 评分)</text>
|
||||
<line x1="920" y1="764" x2="1278" y2="764" class="req" marker-end="url(#arrow)"/><text x="926" y="758" class="xs t">⑬ checkpoint → Redis(durable)</text>
|
||||
<line x1="918" y1="800" x2="562" y2="800" class="sse" marker-end="url(#arrowB)"/><text x="610" y="794" class="xs mut">⑭ Event(thinking/tool/result)</text>
|
||||
<line x1="558" y1="836" x2="192" y2="836" class="sse" marker-end="url(#arrowB)"/><text x="220" y="830" class="xs mut">⑮ SSE event-stream(resumable · 断线 replay)+ OTel→Studio</text>
|
||||
|
||||
<!-- HITL -->
|
||||
<rect x="50" y="648" width="1230" height="40" rx="8" fill="#fef9c3" stroke="#ca8a04" stroke-width="1.4"/>
|
||||
<text x="62" y="673" class="xs t">HITL(可选):运行时挂起 → RequireUserConfirm(经 SSE 推 cloud)→ cloud POST /sessions/{id} 确认/编辑参数 → 从暂停处精确恢复</text>
|
||||
<rect x="50" y="898" width="1380" height="38" rx="8" fill="#fef9c3" stroke="#ca8a04" stroke-width="1.4"/>
|
||||
<text x="62" y="922" class="xs t">HITL(任意阶段):挂起 → RequireUserConfirm(SSE 推 cloud)→ cloud POST /sessions/{id} 确认/编辑 → 精确恢复;用户可要求继续解决 L1/L2/L3 任意层</text>
|
||||
|
||||
<line x1="920" y1="718" x2="1278" y2="718" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="926" y="712" class="xs t">⑭ 产物落库 → MySQL + OSS(内容哈希)</text>
|
||||
<line x1="558" y1="754" x2="192" y2="754" class="sse" marker-end="url(#arrowB)"/>
|
||||
<text x="220" y="748" class="xs mut">⑮ 完成 event:verdict + 产物引用</text>
|
||||
<path d="M 190,778 q 46,0 46,14 q 0,14 -44,14" class="req" marker-end="url(#arrow)"/>
|
||||
<text x="242" y="796" class="xs t">⑯ 取产物 → 进 feed</text>
|
||||
<line x1="920" y1="966" x2="1278" y2="966" class="req" marker-end="url(#arrow)"/><text x="926" y="960" class="xs t">⑯ 产物落库 → MySQL + OSS(内容哈希)</text>
|
||||
<line x1="558" y1="1000" x2="192" y2="1000" class="sse" marker-end="url(#arrowB)"/><text x="220" y="994" class="xs mut">⑰ 完成 event:verdict + 产物引用</text>
|
||||
<path d="M 190,1024 q 44,0 44,13 q 0,13 -42,13" class="req" marker-end="url(#arrow)"/><text x="238" y="1041" class="xs t">⑱ 取产物 → 进 feed</text>
|
||||
|
||||
<!-- 异常 -->
|
||||
<rect x="50" y="828" width="1380" height="48" rx="8" fill="#fef2f2" stroke="#dc2626" stroke-width="1.4"/>
|
||||
<text x="62" y="848" class="xs t" font-weight="700">异常 / 生产路径:</text>
|
||||
<text x="62" y="867" class="xs mut">超时/熔断 → 优雅收尾(ExceedMaxItersEvent) · cloud 取消 session · provider 瞬时失败 graceful fallback · /schedule 定时 run · /credential 托管密钥</text>
|
||||
<rect x="50" y="1066" width="1380" height="40" rx="8" fill="#fef2f2" stroke="#dc2626" stroke-width="1.4"/>
|
||||
<text x="62" y="1090" class="xs t">异常 / 生产:超时·熔断→优雅收尾 · cloud 取消 session · provider 失败 graceful fallback · /schedule 定时 · /credential 托管密钥</text>
|
||||
|
||||
<!-- 图例 -->
|
||||
<line x1="60" y1="918" x2="110" y2="918" class="req" marker-end="url(#arrow)"/><text x="118" y="922" class="t xs">REST 请求 / 同步动作</text>
|
||||
<line x1="300" y1="918" x2="350" y2="918" class="sse" marker-end="url(#arrowB)"/><text x="358" y="922" class="t xs">SSE 事件流(Event System · 异步 / 可恢复)</text>
|
||||
<g class="badge"><rect x="740" y="909" width="56" height="18" rx="3" fill="#16a34a"/><text x="745" y="922" fill="#fff">可靠</text>
|
||||
<rect x="804" y="909" width="56" height="18" rx="3" fill="#0891b2"/><text x="809" y="922" fill="#fff">数据</text>
|
||||
<rect x="868" y="909" width="62" height="18" rx="3" fill="#0ea5e9"/><text x="873" y="922" fill="#fff">可观测</text>
|
||||
<rect x="938" y="909" width="56" height="18" rx="3" fill="#dc2626"/><text x="943" y="922" fill="#fff">安全</text></g>
|
||||
<text x="1010" y="922" class="mut xs">durable/取消/fallback=可靠 · checkpoint/落库=数据 · Event/SSE/OTel=可观测 · HITL/credential=安全</text>
|
||||
|
||||
<text x="40" y="968" class="mut xs">映射:agentic集成架构.md · tier2实现详设.md | 基于 agentscope 2.0.3 官方 Agent Service(/sessions + SSE)源码实证 | 设计变动须同步本图</text>
|
||||
<line x1="60" y1="1140" x2="110" y2="1140" class="req" marker-end="url(#arrow)"/><text x="118" y="1144" class="t xs">REST 请求 / 动作</text>
|
||||
<line x1="300" y1="1140" x2="350" y2="1140" class="sse" marker-end="url(#arrowB)"/><text x="358" y="1144" class="t xs">SSE 事件流(可恢复)</text>
|
||||
<text x="640" y="1144" class="mut xs">映射:agentic集成架构.md · tier2实现详设.md|基于 agentscope 2.0.3 Agent Service + Agent Team 源码实证|设计变动须同步本图</text>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.9 KiB |
@ -109,7 +109,7 @@
|
||||
<rect x="50" y="784" width="1380" height="80" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.6" stroke-dasharray="5 4"/>
|
||||
<text x="66" y="808" class="t h2">四层 = 职责视角(叠在上面的真实结构上,非并列模块)</text>
|
||||
<text x="66" y="832" class="mut xs">environment = Workspace(执行环境:工作目录 + 工具 + 沙箱) harness = Agent ReAct 循环 + Middleware(控制面)</text>
|
||||
<text x="66" y="852" class="mut xs">context = AgentState.context + 自动压缩 + offload prompt = sys_prompt + agent skills(热配置)</text>
|
||||
<text x="66" y="852" class="mut xs">context = AgentState.context + tasks_context(goal→TODO 追踪 · TaskCreate/Update)+ 压缩/offload prompt = sys_prompt + agent skills</text>
|
||||
|
||||
<!-- 图例 -->
|
||||
<text x="50" y="900" class="t h2">复用边界:</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@ -1,75 +1,79 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1480 980" font-family="-apple-system,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1480 1000" font-family="-apple-system,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif">
|
||||
<defs>
|
||||
<style>
|
||||
.t{fill:#0f172a}.mut{fill:#475569}.sm{font-size:12px}.xs{font-size:11px}
|
||||
.h1{font-size:24px;font-weight:700}.h2{font-size:15px;font-weight:700}.it{font-size:12px;fill:#0f172a}
|
||||
.c{font-size:11px;font-weight:700}
|
||||
</style>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1480" height="980" fill="#f8fafc"/>
|
||||
<text x="40" y="38" class="t h1">图 6 · 复用边界(来源 × 共享范围)</text>
|
||||
<text x="40" y="58" class="mut sm">两个维度:来源(AgentScope 官方现成 vs 自建)× 共享范围(两线公共 vs tier2 私有)。关键纠正:「公共组件」其实是<tspan font-weight="700" fill="#b91c1c">自建的共享件,不是现成的</tspan>。</text>
|
||||
<rect x="0" y="0" width="1480" height="1000" fill="#f8fafc"/>
|
||||
<text x="40" y="38" class="t h1">图 6 · 复用边界(来源 × 共享范围 · 自建项标载体类型)</text>
|
||||
<text x="40" y="58" class="mut sm">维度:来源(官方现成 vs 自建)× 共享(两线公共 vs tier2 私有)。自建项后的〔徽章〕= 用 AgentScope 哪种扩展点做(看明白在哪做什么)。公共组件是<tspan font-weight="700" fill="#b91c1c">自建的共享件、非现成</tspan>。</text>
|
||||
|
||||
<!-- 官方现成 -->
|
||||
<rect x="40" y="86" width="590" height="788" rx="12" fill="#f0fdf4" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="58" y="114" class="h2" fill="#15803d">AgentScope 官方现成</text>
|
||||
<text x="58" y="133" class="mut xs">〔实线 · 直接用 · 不算 tier2 自建资产〕</text>
|
||||
<rect x="40" y="86" width="560" height="788" rx="12" fill="#f0fdf4" stroke="#16a34a" stroke-width="2.4"/>
|
||||
<text x="58" y="114" class="h2" fill="#15803d">AgentScope 官方现成(直接用)</text>
|
||||
<g class="it">
|
||||
<text x="58" y="168">· Message & Event System(typed stream:text/thinking/tool/result)</text>
|
||||
<text x="58" y="204">· Agent(无状态 ReAct 引擎 + 工具并发执行)</text>
|
||||
<text x="58" y="240">· ReActConfig(max_iters) + ModelConfig(fallback 回退)</text>
|
||||
<text x="58" y="276">· Model(9 provider + thinking + generate_structured_output)</text>
|
||||
<text x="58" y="312">· Context(自动压缩 + offload + tool 结果截断)</text>
|
||||
<text x="58" y="348">· Tool(Toolkit + 内置工具 + ToolGroup + 并发标志)</text>
|
||||
<text x="58" y="384">· MCP 集成(stdio / HTTP)</text>
|
||||
<text x="58" y="420">· Permission System(5 mode + HITL 中断/恢复)</text>
|
||||
<text x="58" y="456">· Middleware(6 hook + 内置 Budget/Mem0/Tracing/TTS)</text>
|
||||
<text x="58" y="492">· Workspace(Local / Docker / E2B 执行环境)</text>
|
||||
<text x="58" y="528">· State / Session(AgentState + 持久化 Redis/PG)</text>
|
||||
<text x="58" y="564">· Agent Service(REST + SSE · 8 router · storage · MessageBus)</text>
|
||||
<text x="58" y="600">· Schedule(cron)+ Credential(托管密钥)</text>
|
||||
<text x="58" y="636">· Agent Team(leader-worker 多 agent · 星形)</text>
|
||||
<text x="58" y="672">· Embedding / Formatter / Skill / Exception</text>
|
||||
<text x="58" y="150">· Message & Event System(typed stream)</text>
|
||||
<text x="58" y="184">· Agent(无状态 ReAct 引擎 + 工具并发)</text>
|
||||
<text x="58" y="218">· ReActConfig(max_iters) + ModelConfig(fallback)</text>
|
||||
<text x="58" y="252">· Model(9 provider + thinking + 结构化输出)</text>
|
||||
<text x="58" y="286">· Context(自动压缩 + offload + 截断)</text>
|
||||
<text x="58" y="320">· Tool(Toolkit + 内置工具 + ToolGroup)</text>
|
||||
<text x="58" y="354">· MCP 集成(stdio / HTTP)</text>
|
||||
<text x="58" y="388">· Permission System(5 mode + HITL)</text>
|
||||
<text x="58" y="422">· Middleware(6 hook + Budget/Mem0/Tracing/TTS)</text>
|
||||
<text x="58" y="456">· Workspace(Local / Docker / E2B)</text>
|
||||
<text x="58" y="490">· State / Session(AgentState + tasks_context)</text>
|
||||
<text x="58" y="524">· Agent Service(REST + SSE · 8 router · MessageBus)</text>
|
||||
<text x="58" y="558">· Agent Team(leader-worker 星形多 agent)</text>
|
||||
<text x="58" y="592">· Schedule(cron)+ Credential(托管密钥)</text>
|
||||
<text x="58" y="626">· Embedding / Formatter / Skill / Exception</text>
|
||||
</g>
|
||||
<rect x="58" y="700" width="554" height="150" rx="10" fill="#fef2f2" stroke="#dc2626" stroke-width="1.4"/>
|
||||
<text x="70" y="724" class="t sm" font-weight="700">官方没有(别误判去找):</text>
|
||||
<text x="70" y="746" class="mut xs">· 无独立 RAG / 向量检索层(仅 Mem0 / ReMe 长期记忆)</text>
|
||||
<text x="70" y="766" class="mut xs">· 无 evaluate / benchmark 模块(1.x 的已移除)</text>
|
||||
<text x="70" y="786" class="mut xs">· A2A 仅基座(AG-UI 有成品 AGUIProtocolMiddleware)</text>
|
||||
<text x="70" y="812" class="t xs" font-weight="700">该删(之前误标自建 → 改用官方):</text>
|
||||
<text x="70" y="832" class="mut xs">token 计量 / 软预算 / 结构化调用 / OTel / 经验存储召回 / 多 agent 总线</text>
|
||||
<rect x="58" y="654" width="524" height="196" rx="10" fill="#fef2f2" stroke="#dc2626" stroke-width="1.4"/>
|
||||
<text x="70" y="678" class="t sm" font-weight="700">官方没有(别误判去找):</text>
|
||||
<text x="70" y="700" class="mut xs">· 无独立 RAG / 向量检索(仅 Mem0 / ReMe 长期记忆)</text>
|
||||
<text x="70" y="720" class="mut xs">· 无 evaluate 模块 · A2A 仅基座</text>
|
||||
<text x="70" y="746" class="t sm" font-weight="700">该删(之前误标自建 → 改官方):</text>
|
||||
<text x="70" y="768" class="mut xs">token 计量 / 软预算 / 结构化调用 / OTel /</text>
|
||||
<text x="70" y="788" class="mut xs">经验存储召回 / 多 agent 总线</text>
|
||||
<text x="70" y="820" class="mut xs" font-style="italic">官方能力是「框架给的」,不算 tier2 自建资产</text>
|
||||
|
||||
<!-- 自建·公共 -->
|
||||
<rect x="650" y="86" width="790" height="360" rx="12" fill="#eff6ff" stroke="#2563eb" stroke-width="3"/>
|
||||
<text x="668" y="114" class="h2" fill="#1d4ed8">自建 · 两线公共</text>
|
||||
<text x="668" y="133" class="mut xs">〔双线 · 两条生成线共享 · 是自建的、不是现成〕</text>
|
||||
<rect x="620" y="86" width="820" height="346" rx="12" fill="#eff6ff" stroke="#2563eb" stroke-width="3"/>
|
||||
<text x="638" y="114" class="h2" fill="#1d4ed8">自建 · 两线公共(自建的共享件,非现成)</text>
|
||||
<g class="it">
|
||||
<text x="668" y="172">· 确定性九门(在真浏览器真玩一遍判能不能玩)</text>
|
||||
<text x="668" y="212">· 三层校验工具:L1 编译/运行错误 · L2 设计符合度 · L3 效果评分</text>
|
||||
<text x="668" y="252">· CDP 低层探针(注入输入 / 帧 delta / 像素回读 / 活动 hash)</text>
|
||||
<text x="668" y="292">· 计费台账(读 new-api quota → ¥)</text>
|
||||
<text x="668" y="332">· 送审 / 审核台 · feed / 发布</text>
|
||||
<text x="668" y="372">· trace 契约(公共核心子集 + 各线扩展段)</text>
|
||||
<text x="638" y="152">· 确定性九门(真浏览器真玩判能玩)<tspan class="c" fill="#2563eb"> 〔Tool + 独立 harness〕</tspan></text>
|
||||
<text x="638" y="190">· 三层校验工具:L1 编译/运行 · L2 设计符合 · L3 效果<tspan class="c" fill="#2563eb"> 〔Tool〕</tspan></text>
|
||||
<text x="638" y="228">· CDP 低层探针(注入/帧/像素/hash)<tspan class="c" fill="#2563eb"> 〔Tool / 脚本〕</tspan></text>
|
||||
<text x="638" y="266">· 计费台账(new-api quota → ¥)<tspan class="c" fill="#ea580c"> 〔Middleware〕</tspan></text>
|
||||
<text x="638" y="304">· 送审 / 审核台 · feed / 发布<tspan class="c" fill="#334155"> 〔框架外独立服务〕</tspan></text>
|
||||
<text x="638" y="342">· trace 契约(核心子集 + 扩展段)<tspan class="c" fill="#64748b"> 〔Schema〕</tspan></text>
|
||||
</g>
|
||||
<text x="668" y="416" class="mut xs">为什么公共:两条生成线产物都要计费/送审/进同一 feed、都靠同一套确定性验收判能玩 → 抽共享,不重复造。</text>
|
||||
<text x="638" y="392" class="mut xs">为什么公共:两线产物都要计费/送审/进同一 feed、都靠同一套确定性验收判能玩 → 抽共享、不重复造。</text>
|
||||
<text x="638" y="416" class="mut xs">为什么不是现成:AgentScope 不提供游戏验收/计费/发行,这些是项目自建、只是两线共用。</text>
|
||||
|
||||
<!-- 自建·私有 -->
|
||||
<rect x="650" y="466" width="790" height="408" rx="12" fill="#ffffff" stroke="#475569" stroke-width="2" stroke-dasharray="7 5"/>
|
||||
<text x="668" y="494" class="h2" fill="#334155">自建 · tier2 私有</text>
|
||||
<text x="668" y="513" class="mut xs">〔虚线 · 挂官方扩展点 / 薄层〕</text>
|
||||
<text x="668" y="544" class="t sm" font-weight="700">通用 agent 治理层(框架不提供):</text>
|
||||
<rect x="620" y="452" width="820" height="422" rx="12" fill="#ffffff" stroke="#475569" stroke-width="2" stroke-dasharray="7 5"/>
|
||||
<text x="638" y="480" class="h2" fill="#334155">自建 · tier2 私有(挂官方扩展点 / 薄层)</text>
|
||||
<text x="638" y="510" class="t sm" font-weight="700">通用 agent 治理层:</text>
|
||||
<g class="it">
|
||||
<text x="668" y="574">· 墙钟超时 + fail-closed 硬熔断(官方只软刹)</text>
|
||||
<text x="668" y="606">· 卡死 / 无进展探测</text>
|
||||
<text x="668" y="638">· ¥成本台账(挂 ModelCallEndEvent · token×单价)</text>
|
||||
<text x="668" y="670">· finish 接线(自治跑完 → 吐结构化游戏定义)</text>
|
||||
<text x="668" y="702">· 错误签名精确命中层(ReMe 当存储/召回底座)</text>
|
||||
<text x="668" y="734">· 两阶段编排策略(Agent Team leader 的拆解+调度提示)</text>
|
||||
<text x="638" y="540">· 超时 / 卡死 / fail-closed 硬熔断<tspan class="c" fill="#ea580c"> 〔Middleware:on_reasoning/on_model_call〕</tspan></text>
|
||||
<text x="638" y="574">· ¥成本台账<tspan class="c" fill="#ea580c"> 〔Middleware:订阅 ModelCallEndEvent〕</tspan></text>
|
||||
<text x="638" y="608">· finish 接线(吐结构化游戏定义)<tspan class="c" fill="#2563eb"> 〔Tool:参数 schema=源项目契约〕</tspan></text>
|
||||
<text x="638" y="642">· 错误签名精确命中层<tspan class="c" fill="#0891b2"> 〔Tool + Memory(ReMe) 底座〕</tspan></text>
|
||||
<text x="638" y="676">· 两阶段编排策略<tspan class="c" fill="#16a34a"> 〔Prompt:leader 调度 + Agent Team 工具〕</tspan></text>
|
||||
</g>
|
||||
<text x="668" y="772" class="t sm" font-weight="700">游戏专属(与框架正交):</text>
|
||||
<text x="638" y="716" class="t sm" font-weight="700">游戏专属(与框架正交):</text>
|
||||
<g class="it">
|
||||
<text x="668" y="802">· Phaser 引擎适配 / 能力包</text>
|
||||
<text x="668" y="834">· tier2 源项目契约(建议与 finish schema 共用一份,避免漂移)</text>
|
||||
<text x="638" y="746">· Phaser 引擎适配 / 能力包<tspan class="c" fill="#7c3aed"> 〔Skill:SKILL.md + Tool:写/构建〕</tspan></text>
|
||||
<text x="638" y="780">· tier2 源项目契约(与 finish schema 共用一份)<tspan class="c" fill="#64748b"> 〔Schema〕</tspan></text>
|
||||
</g>
|
||||
|
||||
<text x="40" y="922" class="mut xs">映射:tier2四层工程架构.md §8 · agentic集成架构.md | 基于 agentscope 2.0.3 源码逐项核对(哪些官方已有/哪些真自建) | 设计变动须同步本图</text>
|
||||
<!-- 载体图例 -->
|
||||
<rect x="620" y="800" width="820" height="58" rx="8" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.2"/>
|
||||
<text x="634" y="820" class="t xs" font-weight="700">载体类型(AgentScope 扩展点):</text>
|
||||
<text x="634" y="842" class="xs"><tspan fill="#2563eb" font-weight="700">Tool</tspan>=工具函数 <tspan fill="#ea580c" font-weight="700">Middleware</tspan>=hook 拦截 <tspan fill="#7c3aed" font-weight="700">Skill</tspan>=SKILL.md <tspan fill="#16a34a" font-weight="700">Prompt</tspan>=指令 <tspan fill="#0891b2" font-weight="700">Memory</tspan>=ReMe <tspan fill="#64748b" font-weight="700">Schema</tspan>=契约数据 <tspan fill="#334155" font-weight="700">独立</tspan>=框架外</text>
|
||||
|
||||
<text x="40" y="922" class="mut xs">映射:tier2四层工程架构.md §8 · agentic集成架构.md | 基于 agentscope 2.0.3 源码逐项核对(官方已有/真自建 + 载体类型) | 设计变动须同步本图</text>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 7.1 KiB |