4.4 KiB
4.4 KiB
统一创作品类 Agent 对话框架技术方案
日期:2026-04-22
1. 目标
把平台内所有“先 Agent 聊天收束锚点,再生成结果页”的创作流程统一到一套前端框架:
- UI 交互共用一套:标题区、返回、进度条、进度操作按钮、生成结果页按钮、操作横幅、聊天气泡、推荐回复、输入框。
- 对话进度管理共用一套:进度归一化、忙碌态判断、SSE
reply_delta / session / error解析、操作状态展示。 - 品类差异只允许落在配置和后端领域逻辑:锚点列表、提示词/占位文案、生成结果页 action、快捷补全/总结话术、结果页与运行态。
2. 本轮范围
覆盖当前已接入平台入口的三条创作链:
- RPG / Custom World Agent 创作。
- 大鱼吃小鱼 Agent 创作。
- 拼图 Agent 创作。
本轮不迁移结果页、运行态、发布、资产生成 UI;这些仍按各品类自己的页面承载。
3. 前端结构
新增目录:
src/components/creation-agent/
├─ CreationAgentWorkspace.tsx
└─ index.ts
src/services/creation-agent/
├─ creationAgentProgress.ts
├─ creationAgentSse.ts
└─ index.ts
3.1 CreationAgentWorkspace
统一组件只接收通用 view model:
session:CreationAgentSessionView | nulltheme: 品类主题色与背景 classprimaryAction: 生成结果页按钮配置progressActions: 总结、补全等可选快捷动作activeOperation: 可选操作状态streamingReplyText / isStreamingReply / isBusy / erroronBack / onSubmitText / onPrimaryAction / onQuickAction
聊天页展示规则:
- Agent 聊天页不展示锚点内容卡片,锚点只作为进度与后端生成依据。
- 标题区文案支持按品类留空;当
title与assistantSummary都为空时,顶部模块只保留返回、进度和操作按钮,不显示额外标题与副文案。 - 生成草稿 / 生成结果页主按钮只在
progressPercent归一化后达到100%时显示。 - 进度条下方承载“总结当前设定”“补全剩余设定”等进度操作按钮。
- “补全剩余设定”必须配置
minTurn: 2,对话不足两轮时不显示。
组件内部只做表现,不读取任何 RPG、Big Fish、Puzzle 专属字段。
3.2 会话 view model
各品类工作区负责把自己的 session 映射成:
titleassistantSummaryprogressPercentcurrentTurnanchors: { key, label, value, status }[]messages: { id, role, kind, text, createdAt }[]recommendedReplies
因此新增品类时只需要新增 mapper,不再复制聊天工作区。
3.3 进度管理
creationAgentProgress.ts 统一提供:
normalizeCreationAgentProgress(progressPercent)isCreationAgentOperationBusy(operation)resolveCreationAgentProgressHint(progressPercent, copy?)resolveCreationAnchorStatusLabel(status)createCreationAgentClientMessageId(prefix)
3.4 SSE 解析
creationAgentSse.ts 统一解析现有 SSE 事件:
reply_delta: 调用onUpdate(text)session: 缓存最终 sessionerror: 抛出后端错误- 流结束后若没有 session,抛出品类传入的 incomplete message
各品类 client 只负责打开自己的 URL 和提供类型参数。
4. 品类差异边界
4.1 RPG / Custom World
保留差异:
- 8 个 RPG 高杠杆锚点映射。
- 总结当前设定话术。
- 补全剩余设定话术。
- 生成结果页 action:
draft_foundation。
4.2 大鱼吃小鱼
保留差异:
- 4 个玩法锚点映射。
- 输入框占位提示。
- 生成结果页 action:
big_fish_compile_draft。
4.3 拼图
保留差异:
- 拼图视觉/题材锚点映射。
- 输入框占位提示。
- 生成结果页 action:
compile_puzzle_draft。
5. 禁止事项
- 禁止在统一组件中判断具体品类名称后写分支业务。
- 禁止把 Big Fish / Puzzle 的状态写入 RPG 命名脚本。
- 禁止把后端锚点收束、提示词生成或进度裁决搬到前端。
- 禁止为了统一 UI 改写结果页、运行态或发布流程。
6. 验收
- 三个创作流程的 Agent 聊天区都通过
CreationAgentWorkspace渲染。 - Big Fish 与 Puzzle 不再各自复制聊天 UI、输入框和进度条。
- RPG / Custom World 保留原有“总结当前设定 / 补全剩余设定 / 生成游戏设定草稿”交互。
- 定向 TypeScript / ESLint / 编码检查通过。