Skill 安装
多 Agent 安装npx skills add https://github.com/astronomer/agents --skill creating-openlineage-extractors
使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。
Skill 调研报告
Skill 详细介绍
这个 Skill 的准确身份是 astronomer/agents 仓库中名为 creating-openlineage-extractors 的技能,作者 / 组织是 Astronomer。Astronomer 是 Apache Airflow 的主要商业支持方之一,也是 OpenLineage 生态的重要参与者,因此这个 Skill 的属性是数据血缘工程方向,而不是通用编程助手。
它要解决的问题是:在数据管道、调度任务、数据平台中,如何为某个新的数据源、新的作业类型或新的运行环境编写 OpenLineage Extractor(提取器),让这个作业的运行元数据能够以 OpenLineage 规范的形式被采集、上报并进入血缘图谱。
OpenLineage 是一个开放的、与厂商无关的数据血缘标准。它定义了一套事件模型(RunEvent、Job、Run、Dataset、Facet 等),由各类 Extractor 负责从具体系统里把信息抽出来,再发到 OpenLineage 兼容的后端(例如 Marquez)。不同系统、不同作业形态需要的 Extractor 写法差别很大,这正是这个 Skill 存在的意义。
它的核心用途
- 指导为一个新的作业类型 / 数据系统编写 OpenLineage Extractor
- 解释 OpenLineage 事件模型的正确用法:Job、Run、Dataset、Facet
- 帮助设计 Extractor 与调度器、执行引擎之间的集成方式
- 协助定义自定义 Facet,以承载特定平台的元数据
- 帮助排查 Extractor 生成的事件不符合规范或血缘缺失的问题
它的工作方式
它属于 Skill 中的方法论 / 开发指南类,本质是一套面向 OpenLineage Extractor 开发的提示词与知识指令集,本身不是一个可独立运行的软件,不提供运行时服务,也不替代 OpenLineage 客户端库或 Marquez。真正产生血缘事件的仍然是你的 Extractor 代码和 OpenLineage 运行时。
适合谁
- 正在为 Airflow 之外的调度系统或自研数据平台接入 OpenLineage 的工程师
- 需要为特定数据源写自定义 Extractor 的数据平台团队
- 需要扩展自定义 Facet 以承载业务元数据的数据治理人员
不适合什么
- 只想可视化已有血缘、不打算写 Extractor 的用户
- 需要开箱即用的血缘采集插件的场景(那是 OpenLineage 官方集成或 Airflow Provider 的职责)
- 与数据血缘无关的通用编程任务
Skill 安全评估
总体判断:这是一个以文档与代码指导为主的 Skill,风险主要来自使用过程中涉及的代码生成与本地执行,而不是 Skill 自身。
来源可信度
来自 Astronomer 官方仓库 astronomer/agents,属于有明确维护主体的项目,相比个人 fork 或第三方搬运版本更值得信任。使用时应确认自己安装的是该仓库下的 Skill,而不是同名或改名的第三方版本。
权限与行为
- Skill 本身不需要账号、API Key、Token 或 OAuth
- Skill 本身不需要网络访问
- Skill 本身不写入文件、不删除文件
- 实际风险集中在它生成的 Extractor 代码:这些代码通常要读取作业配置、连接信息、元数据接口,可能接触到数据源凭证
主要风险点
- 生成的代码质量需要人工复核:Extractor 会处理作业运行元数据,如果解析逻辑有误或 Facet 结构不合规,可能导致血缘错误或事件被后端拒绝。
- 凭证处理:Extractor 经常需要访问平台 API 或数据库。不要让它把真实 Token、密码、连接字符串硬编码进生成的代码或示例中,应通过环境变量或密钥管理服务注入。
- 依赖供应链:Extractor 通常依赖
openlineage-python等库。安装依赖时按官方渠道与锁定版本执行,避免引入来源不明的包。 - 自动执行 Shell 的风险:如果 Agent 具备自动执行 Shell 的权限,它可能自动运行依赖安装或测试命令。若只想获得代码建议,可关闭自动执行,由你手动运行。
降低风险的做法
- 让 Skill 只输出代码与说明,安装、运行、连通性测试由你手动执行
- 生成的 Extractor 先在测试环境验证,再接入生产血缘后端
- 检查事件是否包含敏感字段,避免把不该上报的元数据写入 Facet
以上判断基于该 Skill 的功能定位。具体行为以 Astronomer 官方仓库中该 Skill 当前版本的说明为准。
Skill 使用要求
一、Agent / 客户端
该 Skill 来自 astronomer/agents,属于面向 AI 编码 Agent 的 Skill 资源。官方没有提供一份明确的“支持哪些 Agent”的完整兼容列表。从 Agent Skill 的通用工作机制看:
- 在支持 Skills 或自定义 Skill 加载机制的 Agent 中,通常可以直接使用
- Claude Code、Codex、Cursor、Trae、OpenClaw、WorkBuddy 等主流 Agent,只要其当前版本支持加载此类 Skill,通常可以尝试
- 不同 Agent 的加载方式、触发方式和 Skill 存放位置不同,兼容程度也可能不同
建议以对应 Agent 当前版本的 Skill 管理方式为准。
二、运行环境 / 依赖
Skill 本身没有额外的运行时依赖,不需要安装 Node.js、Python、Docker 才能使用 Skill。
但如果你要把 Skill 输出的 Extractor 真正跑起来,环境取决于你开发 Extractor 所用的语言与框架:
| 项目 | 要求 |
| Agent | 支持 Skill / 自定义指令加载的 Agent |
| Skill 运行依赖 | 无特殊要求 |
| Extractor 开发环境 | 取决于你选用的语言与 OpenLineage 客户端库,以官方文档为准 |
| 网络 | Skill 本身不需要;运行 Extractor 时需要能访问血缘后端 |
具体版本请以 OpenLineage 官方文档和你所选技术栈的要求为准,不要照搬未经确认的版本号。
三、权限
- 文件读取:可选,用于读取你现有的 Extractor 或作业配置
- 文件写入:可选,用于生成新的 Extractor 文件
- Shell 执行:可选,用于安装依赖或运行测试;非必需
- 网络访问:可选,仅在需要查阅 OpenLineage 规范或运行 Extractor 时使用
如果你只想拿到设计方案和代码草稿,可以关闭 Shell 与网络权限。
四、账号 / API Key
- Skill 本身不需要任何账号或 API Key
- 真正需要凭证的是你后续开发的 Extractor:例如源系统的 API Token、数据库连接信息、血缘后端的接入地址等
- 这些凭证应由你自行通过环境变量或密钥管理服务提供,不要交给 Skill 明文处理
最小使用条件
- 一个支持 Skill 加载的 Agent
- 你的数据血缘目标:源系统、作业类型、血缘后端
- 可选:现有 Extractor 代码或作业配置作为参考
Skill 安装、使用与卸载教程
一、安装
本页面已经提供该 Skill 的安装指令,直接复制并粘贴到你使用的 Agent 或终端中执行即可。
如果你不确定当前 Agent 的 Skill 安装方式,可以直接向 Agent 提问,让它根据自身的 Skill 加载机制给出安装步骤:
如何安装 astronomer/agents#creating-openlineage-extractors?
如何在 Claude Code 中安装 astronomer/agents#creating-openlineage-extractors?
如何在 Codex 中安装 astronomer/agents#creating-openlineage-extractors?
如何在 Cursor 中安装 astronomer/agents#creating-openlineage-extractors?
本 Skill 没有需要额外说明的特殊官方安装条件。
二、安装后如何使用
安装后,向 Agent 描述你的血缘采集目标即可触发。适合交给它的任务类型:
- 为某个新数据源或新作业类型设计 Extractor
- 审查现有 Extractor 是否符合 OpenLineage 规范
- 设计自定义 Facet 以承载平台特定元数据
- 排查血缘事件缺失或字段不正确的问题
向 Agent 描述需求时,建议说明:源系统是什么、作业如何运行、血缘后端是什么、期望采集哪些字段。示例:
使用 creating-openlineage-extractors,帮我为自研调度系统写一个 OpenLineage Extractor,采集作业的输入输出表和运行状态。
使用 creating-openlineage-extractors,检查这份 Extractor 代码生成的事件是否符合 OpenLineage 规范,指出缺失的 Facet。
使用 creating-openlineage-extractors,设计一个自定义 Facet,用来记录作业所属的业务域和负责人。
三、卸载
卸载保持简单即可:
- 使用对应 Agent / Skill 管理器提供的删除方式移除该 Skill
- 或直接询问当前 Agent:如何卸载
astronomer/agents#creating-openlineage-extractors
不同 Agent 的 Skill 安装位置与管理方式不同,如果没有统一卸载命令,直接让当前 Agent 帮你移除通常更稳妥。官方没有明确提供专门的卸载命令。
常见问题
这个 Skill 可以同时在多个 Agent 中安装吗?
可以。它是一份 Skill 资源,本身没有绑定某个 Agent。只要各 Agent 的 Skill 机制支持,就能分别安装使用。各处的配置与版本需各自维护。
安装后 Agent 没有识别到这个 Skill,一般是什么原因?
常见原因包括:Skill 没有放到该 Agent 期望的目录、Agent 当前版本不支持 Skill 加载、安装后未重启或未重新加载、Skill 名称与调用方式不匹配。可以先用“列出已安装的 Skill”这类方式确认 Agent 是否真的加载了它。
Skill 更新后需要重新安装吗?
取决于你的安装方式。如果是通过 Git 仓库或包管理器安装,通常拉取最新版本或重新安装即可;如果是手动复制文件,需要重新同步。具体以 Astronomer 官方仓库的当前说明为准。
中国大陆使用是否有网络要求?
Skill 本身不需要联网。真正可能涉及网络的是:拉取 astronomer/agents 仓库、安装 Extractor 依赖、访问血缘后端。仓库拉取和依赖安装在中国大陆网络环境下是否顺畅,取决于你的网络与镜像配置。
这个 Skill 会直接修改我已有的项目吗?
Skill 本身不会主动改动你的项目。是否修改取决于 Agent 的权限设置和你的指令。建议先让 Skill 输出方案与代码草稿,确认后再由你决定是否落盘。
它和 OpenLineage 官方文档、Airflow 集成有什么区别?
OpenLineage 官方文档描述的是规范与 API,Airflow 集成是官方提供的现成 OpenLineage Provider。这个 Skill 的定位是帮助你编写新的 Extractor,适用于官方尚未提供现成集成的系统,是开发辅助,而不是替代品。
可以只用它做设计、不生成可运行代码吗?
可以。你可以明确要求它只输出事件模型设计、Facet 结构和集成方案,暂时不写代码。这在评估接入成本时很有用。