一键导入
agent-stream-nesting-logic
万悟平台 SSE 子会话递归嵌套与三明治序列渲染架构指南。涵盖 parentId 领养、order 绝对排序、动静 Chunk 分层及 Vue 2 响应式引用协议。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
万悟平台 SSE 子会话递归嵌套与三明治序列渲染架构指南。涵盖 parentId 领养、order 绝对排序、动静 Chunk 分层及 Vue 2 响应式引用协议。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
文档解析技能,用于解析PDF文档和图片(jpg/png/jpeg)并将其转换为Markdown格式输出。支持标题层级、表格(HTML格式)、公式(LaTeX格式)、图片(链接形式)等复杂内容的解析。当用户提到"解析PDF"、"文档解析"、"PDF转Markdown"、"提取PDF内容"、"解析文档"、"文档内容提取"、"PDF内容识别"、"图片解析"、"图片转文字"、"识别图片内容"等场景时使用此技能。即使用户只是要求读取或查看PDF/图片文件内容,也应考虑使用此技能。
智能数据采集技能,用于从图片或文档(PDF、Word、Excel)中提取结构化数据,基于知识网络完成字段映射,生成SQL并写入数据库。当用户提到"数据采集"、"从文档提取数据"、"图片转数据"、"数据导入"、"文档数据入库"、"批量数据提取"或需要从非结构化文件中提取结构化数据并存储时,自动使用此技能。
操作 知识网络(BKN)— 构建知识网络、查询 Schema/实例、语义搜索、执行 Action。 操作数据源与数据视图 — 数据源连接与查询、原子/自定义视图浏览与 SQL 查询。 操作 Vega 可观测平台 — 查询 Catalog/资源/连接器类型、健康巡检。 当用户提到"知识网络"、"知识图谱"、"查询对象类"、"执行 Action"、 "数据源"、"数据视图"、"原子视图"、"Catalog"、"Vega"、 "健康检查"、"巡检"等意图时自动使用。
问数端到端编排(native CLI 版):从候选 KN 选定知识网络,用 bkn object-type 发现对象类与字段, 由编排层 LLM 生成 SQL,再由 ontology dataview query 执行取数; 最后输出中文结论与口径说明。 当用户需要指标、统计、趋势、SQL 取数或数据查询时使用。
数据分析员工(Data Analyst Agent)的唯一总入口:凡与数据资产、取数、指标、表/视图、 治理职责、知识网络、统计或分析相关的问题,必须先经本 skill 做编排与路由,再进入找表或问数等子流程。 负责 kn 分域、上下文注入(accountId / date)、多候选 KN 时的 LLM 决策、 问数分支的 SQL 生成;与 smart-search-tables / smart-ask-data / ontology-core 的交接。 当用户提出任何数据类自然语言任务、或需在多条业务 KN 间切换时使用; 所有 ontology CLI 执行均委托 ontology-core 完成,本 skill 不直接执行 CLI。
找表/找数端到端编排:在元数据型知识网络下用 ontology bkn object-type query 检索表/视图实例, 再在职责型知识网络下检索相关部门职责与治理边界,最后汇总为中文结论 (候选表 + 职责要点 + 下一步)。当用户问「表在哪、哪个视图、数据资产归属、谁负责这类数据」时使用。 所有 ontology CLI 执行均委托 ontology-core 完成;本 skill 不直接执行 CLI。
基于 SOC 职业分类
| name | agent-stream-nesting-logic |
| description | 万悟平台 SSE 子会话递归嵌套与三明治序列渲染架构指南。涵盖 parentId 领养、order 绝对排序、动静 Chunk 分层及 Vue 2 响应式引用协议。 |
本指南针对万悟平台中「主消息 -> 子会话 (Skill/Tool/Knowledge) -> 孙级会话」的递归序列化渲染标准,定义了 AI 助手及后续维护者必须遵守的底层逻辑。
为了支持正文与多个子会话(工具调用、知识库)的任意插空排列,我们不再按类型分块渲染,而是通过 messageSequence 数组实现**“三明治”交错结构**。
type: 'main': 文本片段。直接由 StreamProcessor 驱动打字机渲染。type: 'sub': 子会话卡片。触发 SubConversion.vue 组件递归渲染。parentId 为空的包,进入主消息的 messageSequence。parentId 的包,必须由对应的父组件 ID “领养”,存入其自身的 messageSequence 中。messageSequence 内部,必须以 order 字段为唯一权重进行升序排列。在渲染 main 片段时,必须区分两种状态以防止打字时界面闪烁:
stableChunks: 已完成 Markdown 语法闭环解析并生成的 HTML 块集合。activeResponse: 正在缓冲区排队、尚未完成闭环解析的输入文本(打字动画部分)。所有生成的子会话 DOM 必须携带以下身份锚点,以支持「引文角标点击」的事件冒泡定位:
data-sub-id: 该段文字所属的原子消息 ID(若是吸收片段,则为分片 ID)。data-parent-id: 视觉所属的容器组件 ID(父卡片 ID)。[!IMPORTANT] 绝对禁止使用浅拷贝或快照!
在将子会话(尤其是
agentSkillText正文分段)注册进父组件序列时,必须直接传递原始响应式对象的引用(即parentSub.messageSequence.push(subConversion))。
- 原因: 只有保持引用一致,外部
StreamProcessor对activeResponse的实时增长才能无缝穿透进多层嵌套的子组件 UI 中。若使用{...subConversion}浅拷贝,会导致打字效果丢失或不连续。
status: 3/4(结束/失败)一旦更新,不再受后续包干扰回退。id === parentId(自引用死循环),必须在 sseMethod.js 拦截层将其重刷 ID 为 content_ 前缀的分片包。