بنقرة واحدة
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 ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
文档解析技能,用于解析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。
| 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_ 前缀的分片包。