$npx -y skills add kweaver-ai/kweaver-dip --skill smart-data-analysis数据分析员工(Data Analyst Agent)的唯一总入口:凡与数据资产、取数、指标、表/视图、 治理职责、知识网络等相关的问题,必须先经本 skill 做编排与路由,再进入找表或问数等子流程。 当用户提出数据类问题、需要知识网络选择、或需要在找表与问数之间切换时使用。
| 1 | # Smart Data Analysis(总入口) |
| 2 | |
| 3 | 本 skill 是数据分析员工的唯一前门,负责**编排与路由**,不直接替代找表与问数子流程。 |
| 4 | |
| 5 | 子技能参考: |
| 6 | |
| 7 | - 问数:[`references/smart-ask-data.md`](references/smart-ask-data.md) |
| 8 | - 找数:[`references/smart-search-tables.md`](references/smart-search-tables.md) |
| 9 | - 权限申请:[`references/smart-apply-data-auth.md`](references/smart-apply-data-auth.md) |
| 10 | - 报告:[`references/smart-reporting.md`](references/smart-reporting.md) |
| 11 | - 图表数据:[`references/smart-json2plot.md`](references/smart-json2plot.md) |
| 12 | - 数据洞察:[`references/smart-data-insights.md`](references/smart-data-insights.md)(含归因子场景 [`references/attribution_analysis.md`](references/attribution_analysis.md)) |
| 13 | - Schema Search 脚本(`search_schema` HTTP):[`references/search-schema-scripts.md`](references/search-schema-scripts.md) |
| 14 | |
| 15 | **assets 索引**(报告三场景填空模版 + 解读规范入口):见 [`assets/README.md`](assets/README.md)。 |
| 16 | |
| 17 | ## 核心职责 |
| 18 | |
| 19 | 1. 识别是否为数据类请求(数据资产、取数、指标、表/视图、治理职责、知识网络)。 |
| 20 | 2. 根据用户意图路由到: |
| 21 | - `smart-search-tables`:找表/找视图/找字段/找职责 |
| 22 | - `smart-ask-data`:问数(第 10 步按查询类型分流执行;仅 `complex_query` 走 SQL,返回数据结果与口径) |
| 23 | - `smart-apply-data-auth`:为指定数据视图申请 `data_query`/`view_detail` 权限 |
| 24 | - `smart-json2plot`:画图数据转换(仅消费上游结构化数据,不新增取数) |
| 25 | - `smart-data-interpretation`(`data_interpretation`):基于既有取数结果做趋势/异常/贡献/建议解读(不新增取数) |
| 26 | - `smart-reporting`:将既有找数/问数/归因结果组装为可复核报告(不新增取数) |
| 27 | - `smart-data-insights`:当用户要求「解读数据/趋势/异常/贡献/建议」或「多角度/多维度/分布」或「对比/同比/环比」或「归因/根因/为什么/MECE 证据链」等时使用;若用户同轮要求 **归因分析报告** 书面终态,须在洞察(含归因子场景)交付证据包后 **同轮** 衔接 `smart-reporting`(`attribution_analysis_report`)。 |
| 28 | 3. 对齐并传递上下文:`kn_id`、时间范围、过滤条件、业务口径。 |
| 29 | 4. 对超出问数/找表能力边界的请求给出明确说明,不伪造结果。 |
| 30 | |
| 31 | ## 强约束 |
| 32 | |
| 33 | - 知识网络来源以 `SOUL.md` 为准。 |
| 34 | - `smart-search-tables` 与 `smart-ask-data`、 `smart-data-insights`使用的 `kn_id` 必须来自 `SOUL.md` 已声明配置。 |
| 35 | - 不允许在未完成路由判定前直接进入子技能执行。 |
| 36 | - 问数命中后必须输出结果数据与口径说明;仅在 `complex_query` 场景产生 SQL(内部执行且不对用户展示);不得扩写为主观分析结论。 |
| 37 | - 先执行门禁机制(环境检测、约束检测、意图路由),再进入子技能。 |
| 38 | - 进度输出必须遵循“进度显示规范(必须执行)”中的统一硬约束。 |
| 39 | - 必须严格按照编排流程与连续步骤编号执行,不得跳步、并步、倒序或绕过门禁。 |
| 40 | - 禁止编造或篡改流程:不得虚构已执行步骤、不得伪造步骤结果、不得擅自修改流程定义与执行记录。 |
| 41 | - 任一步骤失败必须立即停止流程并返回真实失败原因;在失败状态下不得继续后续步骤。 |
| 42 | - 会话复用约束:若同一会话前文已完成并通过第 1 步和第 2 步,允许跳过重复检测;但必须先输出“第 1 步已校验通过、第 2 步已校验通过”的进度,再进入第 3 步。 |
| 43 | |
| 44 | ## 门禁机制(必须先执行) |
| 45 | |
| 46 | ### 1) 环境检测 |
| 47 | |
| 48 | 目标:确认当前环境可执行 KWeaver 命令。 |
| 49 | |
| 50 | - 检查 `kweaver` 是否安装可用(如 `kweaver --version` 可正常返回)。 |
| 51 | - 版本门槛:`kweaver` 版本必须满足 `>= 0.7.2`。 |
| 52 | - 若版本低于 `0.7.2`:立即停止后续流程,并明确提示用户先升级 `kweaver` 到 `0.7.2` 或更高版本后再继续。 |
| 53 | - 若未安装或不可用:立即告知用户先安装/修复,再停止后续路由。 |
| 54 | - 若同一会话前文已确认通过:可跳过重复检测,并输出第 1 步“已校验通过(复用前文结果)”。 |
| 55 | |
| 56 | ### 2) 配置检查 |
| 57 | |
| 58 | 目标:确保本 skill 的运行配置可用(含知识网络配置、kn_id 上下文)并完成约束注入。 |
| 59 | |
| 60 | - 检查是否存在知识网络配置:`SOUL.md` 可读取且包含可用 `kn_id` 声明。 |
| 61 | - 若无知识网络配置:先提示用户补充配置,再停止后续路由。 |
| 62 | - 从 `SOUL.md` 确认本次请求可用的 `kn_id` 与上下文(时间、过滤、口径)。 |
| 63 | - 校验 `kn_id` 在平台中是否真实存在且可访问;若 `kn_id` 不存在或不可用,必须提示用户先**配置或创建知识网络**(并补充有效 `kn_id`)后再继续。 |
| 64 | - 检查当前会话是否已存在本 skill 约束(来源 `SOUL.md`、KN 必须声明、问数按第 10 步分流执行并返回结果+口径等)。 |
| 65 | - 若不存在:先注入约束,再继续执行。 |
| 66 | - 注入后在会话中记忆,后续同会话优先复用,不重复注入。 |
| 67 | - 若同一会话前文已确认通过:可跳过重复检查,并输出第 2 步“已校验通过(复用前文结果)”。 |
| 68 | |
| 69 | ### 3) 意图路由 |
| 70 | |
| 71 | 目标:根据用户问题进行分流。 |
| 72 | |
| 73 | - **模糊问题澄清(必须执行)**:若同一问题可同时落入“问数/找数/其他”中的多个意图,或关键信息不足以唯一判定路由,必须先向用户发起澄清问题;在用户确认前不得进入任一子流程。 |
| 74 | - **路由优先级(关键,必须遵守)**:当同一请求同时包含「取数」与「洞察/解读」诉求时,**优先路由到 `smart-data-insights`**(其内部再按 smart-ask-data 第 5~9 步完成取数),不得仅因为出现“查/统计/汇总/多少”等词就路由到 `smart-ask-data`。 |
| 75 | - **趋势/对比/同环比默认问数路由(新增,必须遵守)**:当用户问题属于**趋势/对比/同比/环比**查询,且**未明确提出**“解读/分析/异常说明/建议/归因”等洞察型输出时,必须优先路由到 `smart-ask-data`(按问数流程执行,不进入 `smart-data-insights`)。 |
| 76 | - **画图优先级约束(必须遵守)**:当同一请求同时出现“画图”与任一数据主意图(找数 / 问数 / 数据洞察 / 报告)时,必须先按数据主意图路由;仅当用户问题**只包含画图意图**、且不包含找数/问数/洞察/报告意图时,才可直接路由到 `smart-json2plot`。 |
| 77 | - **数据洞察**(当用户要求「解读数据/趋势/异常/贡献/建议」或「多角度/多维度/分布」或「对比/同比/环比的分析解读」或「归因/根因/为什么/驱动因素/MECE 证据链」等;尤其出现“重新取数/查一下再解读/基于最新数据解读”等)→ 路由到 `smart-data-insights`(启用 [`references/attribution_analysis.md`](references/attribution_analysis.md) 等对应子场景模板) |
| 78 | - **问数**(仅取数:查多少、明细、汇总、统计;且用户**不要求**解读/趋势/异常/贡献/建议等洞察型输出)→ 路由到 `smart-ask-data` |
| 79 | - **冲突判定示例(同环比)**: |
| 80 | - 示例 A:「查询企业数量同环比」/「给我同环比数据表」→ 仅取数,路由 `smart-ask-data`。 |
| 81 | - 示例 B:「查询企业数量同环比,并分析原因/给建议」→ 取数 + 洞察,路由 `smart-data-insights`。 |
| 82 | - 示例 C:「先查同环比,再解读趋势异常」→ 按优先级进入 `smart-data-insights`(其内完成取数并输出洞察)。 |
| 83 | - 示例 D:「查询企业数量趋势」→ 未要求洞察,路由 `smart-ask-data`。 |
| 84 | - 示例 E:「只要A与B对比结果」→ 未要求洞察,路由 `smart-ask-data`。 |
| 85 | - 示例 F:「查询企业数量趋势,并分析异常原因」→ 取数 + 洞察,路由 `smart-data-insights`。 |
| 86 | - **找数**(找表、找字段、找视图、找职责)→ 路由到 `smart-search-tables` |
| 87 | - **报告**(基于已有找数/问数/归因交付写标准报告)→ 路由到 `smart-reporting` |
| 88 | - **画图**(用户仅要求“把已有结构化数据转换为图表数据”,且不含找数/问数/洞察/报告意图)→ 路由到 `smart-json2plot`(参考 [`references/smart-json2plot.md`](references/smart-json2plot.md)) |
| 89 | - **其他**(超边界/非数据任务)→ 返回边界说明或转普通对话,不强行进入子技能 |
| 90 | - **问数前:日期及区间合法性(仅当本步已明确路由为问数时执行)**:在**进入第 4 步、衔接 `smart-ask-data` 之前**,若用户问题中**已出现或可唯一定义**的**公历日期或日期区间**(自然语言如「某年某月某日」「A 到 B」等),须先做**日历合法性**校核。若出现**不存在的月日、不存在的公历日**(如 13 月、非闰年的 2 月 29 日等,按公历规则判定)或**区间不合法**(上界早于下界、开闭与业务冲突且无法自洽等),**立即终止**总入口后续步,**不得**进入子流程,并向用户**点名无效处**及**建议改法**;在日期/ |