Cover

Written By
技能练习生
技能练习生

工作原理

Data Context Extractor 的核心思路是:通过结构化的对话,把散落在不同人脑子里的"数据知识"提取出来,整理成 AI 可以理解和复用的文档。它本质上是一个"知识提取 + 文档生成"的流水线。

Bootstrap 模式:从零到一

当你说要"创建一个数据技能"时,它会启动 Bootstrap 模式,分四个阶段工作:

阶段 1:数据库连接与发现

它先问你用什么数据仓库——BigQuery、Snowflake、PostgreSQL、还是 Databricks。然后使用对应的数据仓库工具连接,扫描可用的数据集和表。对于大型数据仓库,它会让你聚焦核心表:"哪 3-5 个表最常被查询?"。这种"缩小范围"的策略避免了信息过载,让知识提取更聚焦。

阶段 2:核心问题提取

这是最关键的一步:你不需要填一份死板问卷。它会用对话一步步把那些"文档里没有的知识"问出来,并覆盖五大类问题:

  1. 实体消歧: "用户"、"客户"、"账号"——这些常用词在你们公司的确切含义是什么?有没有多种类型?关系是什么?
  2. 主标识识别: 每个实体的主 ID 是什么?有没有遗留 ID 系统?UUID 还是整数?
  3. 核心指标: 最常问的 2-3 个指标是什么?计算公式精确到字段,时间周期如何定义?
  4. 数据卫生: 查询时必须过滤掉什么?测试数据、内部用户、已删除记录——这些是新手最容易踩的坑
  5. 常见错误: 新人最容易犯什么错?时区问题、状态过滤、NULL 值处理——这些经验比技术文档更有价值

问题的顺序很讲究:先理解"有什么"(表结构),再理解"是什么"(实体定义),然后是"怎么算"(指标),最后是"怎么避坑"(最佳实践)。这种循序渐进的方式,让知识提取更自然。

阶段 3:文档生成

提取完知识后,它会按照标准模板生成文档。每个文档类型都有固定的格式:

  • SKILL.md: 遵循技能规范,包含 frontmatter(名称、描述)、SQL 方言说明、知识库导航
  • entities.md: 实体定义文档,每个实体包含:名称、业务含义、主表、ID 字段、与其他实体的关系、标准过滤条件
  • metrics.md: 指标计算文档,每个指标包含:业务定义 (用大白话)、计算公式 (精确到字段)、数据来源表、注意事项
  • tables/[domain].md: 表文档,每个表包含:表的用途、主键、更新频率、关键字段 (名称、类型、描述、备注)、与其他表的关联、常用查询示例

所有文档都遵循统一的格式,方便后续维护和扩展。

阶段 4:打包交付

生成的所有文件会打包成一个技能包 (zip 格式),附带一份清单,说明捕获了哪些知识、包含哪些文件。你可以直接安装到 Claude Code,也可以分享给团队。

Iteration 模式:增量优化

当你已经有了一个技能,想补充新知识时,它会启动 Iteration 模式。流程更简洁:

  1. 加载现有技能: 读取 SKILL.md 和所有 references/,理解已经覆盖了哪些领域、哪些实体、哪些指标
  2. 识别缺口: 问他 "需要补充哪个领域的知识?"——比如"营销"、"财务"、"产品"
  3. 针对性提问: 只问这个领域相关的问题,而不是从头再来一遍
  4. 增量生成: 生成新的参考文档 (比如 references/marketing.md),更新 SKILL.md 的导航部分
  5. 重新打包: 输出更新后的技能包

这种"增量式"的设计,让技能可以持续进化,而不会因为新知识加入而变得混乱。

为什么这样设计

对话式而非表单式: 如果让你填一份 50 项的问卷,你会很痛苦。但通过对话引导,你感觉在跟同事聊天,知识提取更自然、更全面。

聚焦核心而非面面俱到: 第一次只覆盖 3-5 个核心表、2-3 个核心指标,快速产出可用版本。后续可以迭代补充,避免"追求完美"导致的拖延。

结构化而非随意: 所有文档都遵循统一格式,方便维护。如果用 Word 文档或 Wiki,很容易变得杂乱无章,难以复用。

AI 可读而非人可读: 生成的文档不仅是给人看的,更是给 AI "读"的。SKILL.md 的 frontmatter、references/ 的结构化字段,让 AI 能够精准理解业务上下文,在后续查询中更靠谱。

技术细节

它使用的数据仓库工具 (如 ~~data warehouse) 会根据你选择的数据库类型,调用对应的 MCP 工具来探索 schema。比如 BigQuery 用 bq schema、Snowflake 用 snowflake schema。这些工具能列出表名、字段名、字段类型、字段描述,为知识提取提供技术基础。

生成的文档使用 Markdown 格式,兼容 Git 版本控制。团队可以协作编辑、提交变更、追溯历史。技能包可以像代码一样管理,这是传统 Wiki 无法比拟的优势。