creating-openlineage-extractors – OpenLineage 提取器开发 Skill

3周前更新 8 0 0 0

creating-openlineage-extractors 是指导 AI Agent 为数据源开发 OpenLineage 提取器的 Skill,用于从 Airflow、Spark、dbt 等数据处理任务中采集血缘元数据并发送到 OpenLineage 兼容后端,适合构建数据血缘追踪管道的工程师。

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 代码:这些代码通常要读取作业配置、连接信息、元数据接口,可能接触到数据源凭证

主要风险点

  1. 生成的代码质量需要人工复核:Extractor 会处理作业运行元数据,如果解析逻辑有误或 Facet 结构不合规,可能导致血缘错误或事件被后端拒绝。
  2. 凭证处理:Extractor 经常需要访问平台 API 或数据库。不要让它把真实 Token、密码、连接字符串硬编码进生成的代码或示例中,应通过环境变量或密钥管理服务注入。
  3. 依赖供应链:Extractor 通常依赖 openlineage-python 等库。安装依赖时按官方渠道与锁定版本执行,避免引入来源不明的包。
  4. 自动执行 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 明文处理

最小使用条件

  1. 一个支持 Skill 加载的 Agent
  2. 你的数据血缘目标:源系统、作业类型、血缘后端
  3. 可选:现有 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 结构和集成方案,暂时不写代码。这在评估接入成本时很有用。

Skill 更新日志

版本列表
astro-airflow-mcp-0.9.1 最新
补丁版本:修复了在 FastMCP 3.4.3+ 下插件 `/mcp/v1/` 端点上的 `421 Misdirected Request` 问题,并将 `fastmcp` 固定在有界范围内。 ## 自 0.9.0 以来的修复 ### 修复来自 FastMCP 主机防护的 `421 Misdirected Request`(#241) FastMCP 3.4.3 默认启用了 `HostOriginGuardMiddleware`:它只接受回环 `Host` 头(`127.0.0.1`/`localhost`/`::1`)以及 ASGI `scope["server"]` 主机,对其他任何内容返回 `421 Misdirected Request`。在插件模式下,MCP 应用嵌入在 Airflow webserver 中,并通过 Deployment 自己的主机名访问,因此在未固定版本、解析到 fastmcp 3.4.3 的安装中,对 `/mcp/v1/` 的每个请求都被以 421 拒绝。 - 插件现在保持防护**启用**,但将 `allowed_hosts` 限定为 Deployment 的主机名,从 `AIRFLOW__WEBSERVER__BASE_URL` 环境变量读取(该变量在插件导入时存在,不同于 Airflow 的 `conf`)。DNS 重绑定防护保持开启,而不是被关闭。 - `ASTRO_MCP_ALLOWED_HOSTS`(逗号分隔)可为自定义域名覆盖允许列表;仅当无法推导出主机名时(非 Astro 嵌入),插件才回退到禁用防护。 - 独立模式(`mcp.run`)不变——它保持 FastMCP 的默认回环防护,这正是本地绑定服务器所需的。 - 固定 `fastmcp>=3.4.3,<4`,使行为确定,不会在 FastMCP 下一次默认翻转时悄然改变。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.9.1' af ``` ## 升级说明 如果你曾将 `fastmcp<3.4.3` 固定作为临时变通方案,升级到 0.9.1 后可以移除该固定。
astro-airflow-mcp-0.9.0
次要版本:每个 MCP 工具现在返回结构化的、可供 agent 操作的错误,并带有 MCP 安全注解,此外 `af runs list` 新增了结束日期过滤器。 ## 自 0.8.2 以来的新内容 ### 结构化工具错误 + MCP 安全注解(#221) 工具此前将所有失败都简化为裸的 `str(e)`——agent 无法区分错误的 `dag_id`(修正参数并重试)与 Airflow 不可达(停止并上报),因为两者都返回相同的不透明字符串。 - **错误即数据。** 每个工具现在返回 `error`、`error_type`、`hint`、`retryable` 标志,以及回显的标识参数(例如 `dag_id`)。`retryable` 将调用方可修复的问题(错误参数、400/404/429)与硬性阻塞(认证、5xx、只读、不可达)区分开,因此 agent 知道修正后的重试是否有帮助。对 `ReadOnlyError`、`NotFoundError`、Astro 认证错误、`httpx` 状态码、超时和传输错误进行分类。 - **所有 34 个工具上的安全注解。** 27 个读取标记为只读 + 幂等;7 个写入带有准确的提示——`delete_dag_run` 破坏性 + 非幂等,`clear_*` 破坏性 + 幂等,`pause`/`unpause` 幂等,`trigger*` 非幂等。客户端可以在调用*之前*对写入进行门控,补充现有的 `AF_READ_ONLY` 防护(后者仅在模型决定调用*之后*才拒绝)。默认谨慎:只有当工具明确选择加入时,才会被宣传为“安全”。 - **凭据卫生。** `normalize_airflow_url` 现在从 netloc 中剥离 `user:password@`(主机/端口/IPv6 原样保留),因此凭据不会泄漏到日志或错误消息中嵌入的 URL 中。 向后兼容——`str(e)` 始终保留在 `error` 内,因此任何 grep 旧裸字符串响应的消费者仍可工作;新消费者可获得结构化字段。 ### `af runs list` 的 `--end-date-gte` / `--end-date-lte` 过滤器(#233) 按运行*结束*时间过滤运行,与现有的 `--start-date-*` 过滤器对应——适用于“过去 N 分钟内完成了哪些运行以及它们如何结束”的恢复扫描。ISO 8601 时间戳;`--dag-id` 可选。关闭 #225。 ```bash # 在某个时间窗口内完成、并结合状态的运行 af runs list --end-date-gte 2026-06-10T15:00:00Z --state failed ``` ## 安装 ``` uvx --from 'astro-airflow-mcp==0.9.0' af ``` ## 升级说明 可直接替换 0.8.2——仅新增,无破坏性变更。结构化错误负载是旧字符串的超集(`str(e)` 保留在 `error` 中),因此现有消费者不受影响;新消费者可以读取结构化字段。
astro-airflow-mcp-0.8.2
补丁版本:修复当环境中设置了 `ASTRO_API_TOKEN` 时,`af instance discover` 静默报告“No instances discovered”的问题。 ## 自 0.8.1 以来的修复 - **解析 astro CLI 表格输出时跳过前导行**(#213):当设置了 `ASTRO_API_TOKEN` 时,astro CLI 会在 stdout 前加上 `Using an Astro API Token`。af 表格解析器将该行当作表头行,导致每个 `astro deployment list` 行被折叠为名为 `using_an_astro_api_token` 的单列,并丢弃每个 deployment——discover 会静默返回零个实例。解析器现在从顶部逐行遍历,并选择第一个边界检测出 2+ 列的行作为真正的表头,因此 astro CLI 输出的任何单行前导都会被自动跳过。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.8.2' af ``` ## 升级说明 可直接替换 0.8.1。无配置或 CLI 变更。任何在 shell 中设置了 `ASTRO_API_TOKEN` 时遇到 `No instances discovered` 的人,现在都能正确看到 deployments。
astro-airflow-mcp-0.8.1
补丁版本:修复针对 webserver URL 带有 `?orgId=…` 查询字符串的 Astro deployments 的版本检测。 ## 自 0.8.0 以来的修复 - **从 Airflow URL 中剥离查询字符串 / 片段**(#210):Astro 发现有时返回 `webserver_url=https://host/dep?orgId=org_…`。由于 API URL 是通过字符串拼接构建的(`f"{airflow_url}/api/v2/version"`),结果是 `https://host/dep?orgId=org_…/api/v2/version`,API 路径被吞入查询字符串,破坏了版本检测以及随后的每次 API 调用。新的 `normalize_airflow_url()` 辅助函数剥离查询、片段和尾部斜杠,应用于四个边界:`discovery/astro_cli.py`(在源头)、`adapters/base.py`(适配器构造函数)、`adapters/airflow_v3.py`(令牌交换)和 `adapters/__init__.py`(`detect_version`)。 - **更好的版本检测错误**:`detect_version` 现在收集每个探测的失败并在 `RuntimeError` 消息中呈现(`Probes: /api/v2: HTTP 404; /api/v1: HTTP 502; ...`),而不是通用的“Failed to detect Airflow version”。还捕获了此前静默漏过的 `200 但非 JSON 正文` 情况。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.8.1' af ``` ## 升级说明 可直接替换 0.8.0。无配置或 CLI 变更。已将 `?orgId=…` 烘焙进其存储的 `airflow_url` 的现有用户不再需要重新运行 `af discover`——该值在读取时被规范化。
astro-airflow-mcp-0.8.0
分层配置版本。`af` 现在跨全局、项目共享和项目本地文件读取和写入配置(镜像 `git config` 的 system/global/local 模型),并与 astro-cli 在 `~/.astro/` 共享配置主目录。 ## 自 0.7.0 以来的新内容 - **分层配置**(#207):三个作用域与 astro-cli 的配置树共置 - 全局:`~/.astro/config.yaml`(每用户) - 项目共享:`/.astro/config.yaml`(已提交;团队共享) - 项目本地:`/.astro/config.local.yaml`(gitignored;每开发者当前实例) - `` 通过从 cwd 向上查找 `.astro/` 找到。项目内的写入路由:`add` / `discover` → 项目共享,`use` → 项目本地。用 `--global` / `--project` / `--local` 覆盖。`AF_CONFIG=` 完全绕过分层。 - 读取优先级:项目本地 > 项目共享 > 全局。较窄作用域中的同名实例会遮蔽。 - **默认全局路径移动**从 `~/.af/config.yaml` 到 `~/.astro/config.yaml`。旧路径作为一次性只读回退被尊重(带有 stderr 弃用提示)。运行 `af migrate` 进行显式迁移并保留 `.bak`。 - **新命令**: - `af migrate`:幂等。报告 `migrated` / `already-migrated` / `nothing-to-migrate`。 - `af instance show `:`git config --show-origin` 风格的查找,报告实例来自哪个文件。 - **`af instance list`** 现在包含作用域和来源列,并用 `*` 标记当前实例。 - **`save()` 与外部顶层键合并**(`project`、`cloud`、`contexts`、`telemetry.notice_shown`),以便 `af` 和 astro-cli 可以共存于同一文件。往返时保留文件模式;新文件以 0600 写入。 - **Skill**:在 `astro dev init` 上停止固定 Airflow 版本(#206)。修复了模型尽管 CLI 默认使用最新版却传递 `--airflow-version 3.1.0` 的幻觉。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.8.0' af ``` ## 升级说明 - 现有 `~/.af/config.yaml` 用户:不会中断。`af` 将其作为回退读取。方便时运行 `af migrate`。它会合并到 `~/.astro/config.yaml`,保留已存在的任何 astro-cli 内容,并将旧文件重命名为 `.bak`。 - 在 astro 项目内,`af instance add` 现在默认写入 `.astro/config.yaml`(已提交)。凭据优先使用 `${ENV_VAR}` 插值或 `astro_pat`,或传递 `--local` 用于 gitignored 机密,或 `--global` 用于个人配置。 - `AF_CONFIG=` 和 `AF_CONFIG=/dev/null` 语义不变。
astro-airflow-mcp-0.7.0
PAT 认证重写(#204)的稳定版本,加上 OSError 后续修复(#205) ## 自 0.6.4 以来的新内容 - `af instance discover astro` 现在通过 Auth0 刷新令牌交换复用用户的 `astro login` 会话,而不是铸造永久 `DEPLOYMENT_ADMIN` 令牌。发现的 deployments 使用 `auth.kind = astro_pat`,且从不将令牌写入 af 的配置 - 现有的 `kind = token` 和 `kind = basic` 实例保持不变继续工作(向后兼容) - 401 重试路径,带一次强制刷新,去抖动为每 60 秒一次 - 轮换的刷新令牌在 flock 下持久化回 `~/.astro/config.yaml`,以免 astro CLI 自己的会话中断 - `astro_context` 在发现时始终固定(避免 `astro context switch` 后的跨租户令牌泄漏) - 朴素的 `expiresin` 字符串锚定到 UTC(纵深防御) - `_read_yaml` 捕获 `FileNotFoundError`、`NotADirectoryError`、`IsADirectoryError`,因此非文件的 `ASTRO_HOME` 路径会呈现干净的“run astro login”错误,而不是被掩盖的版本检测失败 ## 验证 - 490 个单元测试通过;CI 在所有矩阵条目上绿色(py3.10/11/12,AF2/AF3 集成) - 完整破坏测试组(约 30 个场景)针对 0.7.0a1 和 0.7.0a2 运行干净 - 使用 otto agent 针对 AF3 云 deployment 和本地 AF2 独立版进行端到端测试 - 所有测试中未铸造任何 deployment 令牌 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.7.0' af ``` ## 升级说明 - 如果你有由旧 `af instance discover astro` 铸造的 deployment 令牌的现有 af 配置,它们继续工作。你可以不管它们,或重新运行 discover(如果传递 `--overwrite`,它会覆盖为 PAT 支持的实例) - 留在你的 astro deployments 中的现有 `af-discover-*` 令牌现在是孤儿。方便时在 astro UI 中撤销它们
astro-airflow-mcp-0.7.0a2
后续 alpha,在 0.7.0a1 之上捆绑来自 #205 的 OSError 修复 ## 自 0.7.0a1 以来的新内容 - `_read_yaml` 现在捕获表示“无可读 astro 配置”的特定 OSError 形态(`FileNotFoundError`、`NotADirectoryError`、`IsADirectoryError`),而不是泄漏到 `detect_version` 成为被掩盖的“Failed to detect Airflow version”(#205) - `PermissionError` 和其他意外 OS 错误会传播,以便清晰呈现,而不是死胡同到“run astro login” ## 安装 ``` uvx --from 'astro-airflow-mcp==0.7.0a2' af ```
astro-airflow-mcp-0.7.0a1
PAT 认证重写(PR #204)的 alpha 版本,用于在 otto 中测试后再提升为 0.7.0 稳定版 ## 新内容 - `af instance discover astro` 现在通过 Auth0 刷新令牌交换复用用户的 `astro login` 会话,而不是铸造永久 `DEPLOYMENT_ADMIN` 令牌 - 实例配置中新增 `auth.kind = astro_pat`;现有 `token` / `basic` 实例保持不变继续工作 - 401 重试路径,带一次强制刷新,去抖动为每 60 秒一次 - 轮换的刷新令牌在 flock 下持久化回 ~/.astro/config.yaml,以免 astro CLI 自己的会话中断 - 朴素的 `expiresin` 字符串锚定到 UTC(针对手工编辑的纵深防御) ## 安装 ``` uvx --from 'astro-airflow-mcp==0.7.0a1' af ``` ## 为什么是 alpha 发布 alpha 以在提升为 0.7.0 之前,用 otto 的包装器(通过 uvx 固定 af)进行端到端验证
astro-airflow-mcp-0.6.4
## 变更内容 * 在 `runs trigger-wait` 中检测暂停的 DAG,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/190 * af CLI:将空的 AIRFLOW_API_URL 视为显式无操作,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/191 * af CLI:当 AF_CONFIG 指向非普通文件时不要崩溃,作者 @kaxil,见 https://github.com/astronomer/agents/pull/193 * 修复 list_dag_runs(MCP 工具 + af CLI)返回最旧运行在前的问题,作者 @JoaVirtudes19,见 https://github.com/astronomer/agents/pull/192 ## 新贡献者 * @JoaVirtudes19 在 #192 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.6.3...astro-airflow-mcp-0.6.4
astro-airflow-mcp-0.6.3
## 变更内容 * 扩展插件模式文档,包含 Astro 认证、角色和故障排除,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/184 * 为 MCP 服务器添加 Airflow 2.x 插件模式支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/186 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.6.2...astro-airflow-mcp-0.6.3
astro-airflow-mcp-0.6.2
## 变更内容 * 修复远程部署的 Airflow MCP 插件模式,作者 @kaxil,见 https://github.com/astronomer/agents/pull/183 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.6.1...astro-airflow-mcp-0.6.2
astro-airflow-mcp-0.6.1
## Bug 修复 - 修复当配置文件具有不同实例的凭据时的环境变量认证(#181) - 修复:从 TERMINAL_DAG_RUN_STATES 中移除 upstream_failed(#166)
astro-airflow-mcp-0.6.0
## 新内容 ### `af registry` — 查询 Airflow Provider Registry(#145) 四个新的 CLI 命令,可直接从终端浏览 [Airflow Provider Registry](https://airflow.apache.org/registry)——无需运行中的 Airflow 实例: - `af registry providers` — 列出所有 providers(id、name、version、lifecycle) - `af registry modules ` — 列出 operators、hooks、sensors 和 transfers - `af registry parameters ` — 显示 provider 类的构造函数参数 - `af registry connections ` — 显示连接类型及其字段 支持 `--version` 固定到特定 provider 发布版,结果本地缓存(最新版 1 小时,版本化快照 30 天)。使用 `--no-cache` 绕过。 ```bash af registry modules amazon | jq '.modules[] | select(.type == "hook") | .name' af registry parameters ftp | jq '.classes | keys[]' ``` ### 改进 - 为 `list_dag_runs` MCP 工具添加 `dag_id` 过滤器(#163) - 澄清 `get_dag_stats` 要求 `dag_ids` 为列表(#162) ### 修复 - 使发现令牌名称用户特定以避免冲突(#156) - 修复 airflow-adapter skill frontmatter(#147) **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.5.1...astro-airflow-mcp-0.6.0
astro-airflow-mcp-0.5.1
## 变更内容 * 改进 agent 检测,作者 @schnie,见 https://github.com/astronomer/agents/pull/141 * 分离 agent 和 ci_system 属性,作者 @schnie,见 https://github.com/astronomer/agents/pull/142 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.5.0...astro-airflow-mcp-0.5.1
astro-airflow-mcp-0.5.0
## 变更内容 * 修复:运行 --plugin-dir 时加载 hooks,作者 @milton-li,见 https://github.com/astronomer/agents/pull/102 * 确保 airflow mcp 包高效使用 uvx 缓存,作者 @schnie,见 https://github.com/astronomer/agents/pull/100 * 修复:从 skill 参考文件中移除 doctoc 目录,作者 @kaxil,见 https://github.com/astronomer/agents/pull/107 * 基于早期用户反馈改进 authoring-dags skill,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/104 * 添加 `af` CLI 遥测,作者 @schnie,见 https://github.com/astronomer/agents/pull/106 * 在 skills 中使用 `af` cli,作者 @milton-li,见 https://github.com/astronomer/agents/pull/108 * 文档:向 README 添加缺失的 skills,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/112 * 重构 skill hooks 并扁平化 analyzing-data 脚本,作者 @milton-li,见 https://github.com/astronomer/agents/pull/113 * 文档:向 Airflow 2→3 迁移添加共享工具导入破坏性变更,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/111 * 将 init skill 重命名为 warehouse-init,作者 @kaxil,见 https://github.com/astronomer/agents/pull/114 * 添加 BigQuery 作业标签支持并修复 location 参数 bug,作者 @kaxil,见 https://github.com/astronomer/agents/pull/118 * 添加 Snowflake query_tag 支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/119 * 添加 Postgres application_name 支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/120 * 修复 `cosmos-dbt-core/SKILL.md`,作者 @tatiana,见 https://github.com/astronomer/agents/pull/122 * 进一步改进 Cosmos skills,作者 @tatiana,见 https://github.com/astronomer/agents/pull/123 * feat:添加 deployment 管理 agents,作者 @kh3dron,见 https://github.com/astronomer/agents/pull/121 * 修复:为自签名证书添加 SSL 证书验证绕过,作者 @kaxil,见 https://github.com/astronomer/agents/pull/126 * 触发前自动取消暂停 DAG,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/127 * 文档:澄清 Snowflake 账户标识符格式,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/130 * 移除写入键,作者 @schnie,见 https://github.com/astronomer/agents/pull/128 * feat:添加 `af runs delete` 和 `af runs clear` 命令,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/129 * 迁移到 prek.toml 配置进行静态检查,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/131 * 为 MCP 工具调用添加遥测跟踪,作者 @schnie,见 https://github.com/astronomer/agents/pull/134 * 将遥测配置移入 config.yaml,作者 @schnie,见 https://github.com/astronomer/agents/pull/135 * 从 mypy 迁移到 ty 进行类型检查,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/133 * 处理 Copilot 关于类型安全的反馈,作者 @kaxil,见 https://github.com/astronomer/agents/pull/139 * 实现 AF_READ_ONLY 模式以阻止写操作,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/138 ## 新贡献者 * @tatiana 在 https://github.com/astronomer/agents/pull/122 中做出首次贡献 * @kh3dron 在 https://github.com/astronomer/agents/pull/121 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/plugin-0.2.0...astro-airflow-mcp-0.5.0
plugin-0.2.0
## Claude 插件发布 自初始发布以来的首次版本号提升,反映累积的变更: ### 新 Skills - Cosmos 集成 - Airflow HITL(Human-in-the-Loop) - Lineage 注解 - 最佳实践 - Airflow 2-3 迁移 - 以及更多... ### 改进 - 用于 skill 建议的 hook 改进 - 用于 Astro deployments 的 `af` CLI 集成 - 多数据库支持(Snowflake、BigQuery 等) ### 安装 ```bash claude plugin marketplace add astronomer/agents claude plugin install data@astronomer ``` 或更新现有安装: ```bash claude plugin marketplace update astronomer/agents ```
astro-airflow-mcp-0.4.1
## 变更内容 * feat(skills):更新 testing-dags 以使用 af CLI,作者 @kaxil,见 https://github.com/astronomer/agents/pull/75 * refactor(cli):用子命令替换 `af api` 标志,作者 @kaxil,见 https://github.com/astronomer/agents/pull/76 * 添加 lineage 注解和 OpenLineage 提取器 skills,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/66 * 向根 README 添加 af CLI 文档,作者 @schnie,见 https://github.com/astronomer/agents/pull/78 * feat(cli):为 list 命令添加过滤选项,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/79 * 文档:添加社区健康文件,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/80 * 文档:添加 CODE_OF_CONDUCT.md,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/81 * 向 README 添加路线图部分,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/74 * 添加 `af instance discover` 命令以自动发现 Astro deployments,作者 @schnie,见 https://github.com/astronomer/agents/pull/63 * Skill:Airflow HITL,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/95 * Skill:更新 airflow 2-3 迁移 skill,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/99 * Skill:Cosmos,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/96 ## 新贡献者 * @igorastronomer 在 https://github.com/astronomer/agents/pull/95 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.4.0...astro-airflow-mcp-0.4.1
astro-airflow-mcp-0.4.0
## 变更内容 * 更好地支持 airflow skill,作者 @schnie,见 https://github.com/astronomer/agents/pull/65 * 修复:为 uvx af CLI 使用 @latest 后缀以防止陈旧版本问题,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/68 * 修复:配置加载失败时警告而不是静默回退,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/70 * feat(cli):添加 `af api` 命令以直接访问 Airflow REST API,作者 @kaxil,见 https://github.com/astronomer/agents/pull/73 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.3.0...astro-airflow-mcp-0.4.0
astro-airflow-mcp-0.3.0
## 变更内容 * 将 astro-dwh-mcp 切换为来自 git 标签的动态版本控制,作者 @schnie,见 https://github.com/astronomer/agents/pull/46 * 提升 MCP 服务器版本标签,作者 @schnie,见 https://github.com/astronomer/agents/pull/47 * feat:airflow mcp skill 和 hook,作者 @milton-li,见 https://github.com/astronomer/agents/pull/45 * 添加 Cursor hooks 兼容性,作者 @kaxil,见 https://github.com/astronomer/agents/pull/50 * 添加 clear_task_instances MCP 工具以重试失败任务,作者 @petedejoy,见 https://github.com/astronomer/agents/pull/51 * 按域将 server.py 拆分为模块化工具文件,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/52 * 更新 pre-commit hooks,作者 @jedcunningham,见 https://github.com/astronomer/agents/pull/55 * 修复 skill hook 路径以解析到正确目录,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/56 * 为 analyzing-data skill 添加多数据库支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/57 * 向 analyzing-data skill 添加多数据库文档,作者 @kaxil,见 https://github.com/astronomer/agents/pull/58 * 将配置路径从 `~/.astro/ai/config/` 重命名为 `~/.astro/agents/`,作者 @kaxil,见 https://github.com/astronomer/agents/pull/59 * 通过 SQLAlchemy 连接器添加 Redshift 支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/60 * 用统一方言注册表重构 SQLAlchemy 连接器,作者 @kaxil,见 https://github.com/astronomer/agents/pull/61 * 添加 Airflow API Skill,作者 @schnie,见 https://github.com/astronomer/agents/pull/53 * 添加 CLI 命令并修复 CI 构建,作者 @schnie,见 https://github.com/astronomer/agents/pull/62 ## 新贡献者 * @petedejoy 在 https://github.com/astronomer/agents/pull/51 中做出首次贡献 * @jedcunningham 在 https://github.com/astronomer/agents/pull/55 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.2.3...astro-airflow-mcp-0.3.0
astro-airflow-mcp-0.2.3
该版本暂未提供更新说明。

暂无评论

none
暂无评论...