数据上下文提取器

一种元技能,从分析师那里提取公司特定的数据知识,并生成定制化的数据分析技能。

工作原理

该技能有两种模式:

  1. 引导模式:从头创建新的数据分析技能
  2. 迭代模式:通过添加领域特定的参考文件来改进现有技能

引导模式

适用场景:用户希望为其数据仓库创建新的数据上下文技能。

阶段 1:数据库连接与探索

步骤 1:识别数据库类型

询问:"你使用的是什么数据仓库?"

常见选项:

使用 ~~data warehouse 工具(查询和模式)进行连接。如果不确定,请检查当前会话中可用的 MCP 工具。

步骤 2:探索模式

使用 ~~data warehouse 模式工具:

  1. 列出可用的数据集/模式
  2. 识别最重要的表(询问用户:"分析师最常查询哪 3-5 个表?")
  3. 获取这些关键表的模式详细信息

按方言划分的示例探索查询:

-- BigQuery:列出数据集
SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA

-- BigQuery:列出数据集中的表
SELECT table_name FROM `project.dataset.INFORMATION_SCHEMA.TABLES`

-- Snowflake:列出模式
SHOW SCHEMAS IN DATABASE my_database

-- Snowflake:列出表
SHOW TABLES IN SCHEMA my_schema

阶段 2:核心问题(询问这些)

模式探索后,以对话方式(而非一次性全部)询问这些问题:

实体消歧(关键)

"这里的人说'用户'或'客户'时,具体指什么?有不同类型吗?"

注意听取:

主要标识符

"[客户/用户/账户]的主要标识符是什么?同一个实体有多个 ID 吗?"

注意听取:

关键指标

"人们最常问的 2-3 个指标是什么?每个指标如何计算?"

注意听取:

数据卫生

"哪些内容应该始终从查询中排除?(测试数据、欺诈数据、内部用户等)"

注意听取:

常见陷阱

"新分析师在使用这些数据时通常会犯什么错误?"

注意听取:

阶段 3:生成技能

创建具有以下结构的技能:

[公司]-data-analyst/
├── SKILL.md
└── references/
    ├── entities.md          # 实体定义和关系
    ├── metrics.md           # KPI 计算
    ├── tables/              # 每个领域一个文件
    │   ├── [领域1].md
    │   └── [领域2].md
    └── dashboards.json      # 可选:现有仪表盘目录

SKILL.md 模板:参见 references/skill-template.md

SQL 方言部分:参见 references/sql-dialects.md,包含相应的方言说明。

参考文件模板:参见 references/domain-template.md

阶段 4:打包和交付

  1. 在技能目录中创建所有文件
  2. 打包为 zip 文件
  3. 向用户呈现,并附上所捕获内容的摘要

迭代模式

适用场景:用户已有技能但需要添加更多上下文。

步骤 1:加载现有技能

要求用户上传其现有技能(zip 或文件夹),或如果在当前会话中,则定位该技能。

阅读当前的 SKILL.md 和参考文件,了解已记录的内容。

步骤 2:识别缺口

询问:"哪个领域或主题需要更多上下文?哪些查询失败了或产生了错误的结果?"

常见的缺口:

步骤 3:针对性探索

针对已识别的领域:

  1. 探索相关表:使用 ~~data warehouse 模式工具查找该领域的表
  2. 提出领域特定问题
  3. 生成新的参考文件:使用领域模板创建 references/[领域].md

步骤 4:更新和重新打包

  1. 添加新的参考文件
  2. 更新 SKILL.md 的"知识库导航"部分,包含新领域
  3. 重新打包技能
  4. 向用户呈现更新后的技能

参考文件标准

每个参考文件应包含:

表文档

指标文档

实体文档


质量检查清单

在交付生成的技能之前,请验证: