dag-factory – Airflow DAG 配置生成 Skill

3周前更新 8 0 0 0

dag-factory 是用于以 YAML 配置生成 Airflow DAG 的开发型 Skill,帮助 AI Agent 根据声明式配置自动构建、部署和维护数据管道任务。

Skill 安装

多 Agent 安装
npx skills add https://github.com/astronomer/agents --skill dag-factory

使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。

Skill 调研报告

Skill 详细介绍

astronomer/agents#dag-factory 是什么

astronomer/agents#dag-factory 是 astronomer/agents 仓库中提供的一个 Skill,围绕 Apache Airflow 生态中的 dag-factory 项目展开。它的核心用途是帮助用户以声明式配置(YAML)的方式定义、生成和维护 Airflow DAG,而不是逐个手写 Python DAG 文件。

它本身不是独立运行的软件,也不是 Airflow 的替代品。它是一组面向 AI Agent 的能力封装,让 Agent 在涉及 Airflow DAG 编写、配置解析、批量生成、结构调整等任务时,能够按照 dag-factory 的约定和规范来处理。

安装后,Agent 增加的能力大致包括:

1. 根据用户提供的 YAML 配置,生成符合 dag-factory 规范的 DAG 定义。
2. 解释已有 YAML 配置与最终生成的 DAG 之间的对应关系。
3. 协助调整配置结构,例如调度、依赖、任务参数等。
4. 在 dag-factory 与原生 Python DAG 写法之间做转换或对照。
5. 帮助排查配置层面的常见问题,例如字段拼写、结构不匹配等。

核心逻辑

dag-factory 的定位是让 Airflow DAG 尽量由配置驱动。用户写 YAML,dag-factory 负责把它转换成 Airflow 能识别的 DAG 对象。这个 Skill 就是把这类工作交给 Agent 处理。

它解决的主要问题是:

– 手写 DAG 重复度高、容易出错。
– 大量相似的 DAG 需要批量维护。
– YAML 配置和 Python DAG 之间的映射不直观。
– 团队希望用更统一、更声明式的方式管理 DAG。

适合谁

– 使用 Apache Airflow 做数据编排的团队。
– 希望通过 YAML 统一管理 DAG 的数据工程师。
– 需要批量生成或重构 DAG 的开发者。

不适合什么需求

– 不涉及 Airflow 或 DAG 编排的任务。
– 希望用 Skill 直接运行、部署 Airflow 的场景。
– 需要完全替代 dag-factory 项目本身功能的预期。

Skill 安全评估

总体判断:该 Skill 本身定位于 Airflow DAG 的配置与生成辅助,属于开发辅助类能力,正常情况下风险可控。但因为它会涉及代码和配置文件,实际风险取决于使用者交给它的任务范围以及 Agent 被授予的权限。

需要注意的点:

1. 来源可信度:该 Skill 来自 astronomer/agents 仓库。astronomer 是 Airflow 生态中知名度较高的组织,仓库来源相对明确。使用前建议自行核对仓库当前状态。

2. 文件读写:如果 Agent 被允许读写项目目录,该 Skill 可能修改已有的 DAG 或 YAML 文件。建议在版本控制下使用,便于回退。

3. Shell 权限:如果任务涉及运行 Airflow 命令或测试生成结果,Agent 可能需要 Shell 权限。若只需生成或修改配置,可以关闭自动执行 Shell,由用户手动执行。

4. 凭据风险:Airflow DAG 中可能包含连接信息、变量引用等。不要让 Agent 把真实密钥、Token 写入 YAML 或示例文件。敏感信息应通过 Airflow 的 Connections / Variables 或环境变量管理。

5. 供应链:如果 Skill 或 Agent 在过程中安装依赖包,需要关注来源。只从可信来源安装。

降低风险的建议:

– 在 Git 仓库中使用,改动可追踪、可回滚。
– 只对需要修改的目录授予写权限。
– 避免把生产凭据直接暴露给 Agent。
– 生成后用代码审查流程检查,再合并。

Skill 使用要求

一、Agent / 客户端

该 Skill 来自 astronomer/agents,属于 Agent Skill 形式的能力封装。官方没有公布完整的第三方 Agent 兼容列表。通常来说,支持 Skills 或自定义 Skill 加载机制的环境都可以尝试使用,例如 Claude Code、Codex、Cursor、Trae、OpenClaw、WorkBuddy 等。具体兼容程度以对应 Agent 当前版本为准。

二、运行环境 / 依赖

| 项目 | 要求 |
|—|—|
| Agent | 支持 Skill 加载的 Agent 优先 |
| Python | 若需要本地运行 Airflow / dag-factory,需 Python 环境 |
| Apache Airflow | 若要实际验证生成的 DAG,需要可用的 Airflow 环境 |
| 网络 | 安装 Skill 及依赖时通常需要 |

官方没有明确的最低版本信息,具体以该 Skill 当前官方说明为准。

三、权限

– 文件读取:通常需要,用于读取 YAML 配置和已有 DAG。
– 文件写入:可选,用于生成或修改 DAG / YAML 文件。
– Shell:可选,仅在需要运行 Airflow 命令或测试时。

四、账号 / API Key

该 Skill 本身通常不需要额外的账号或 API Key。但如果后续生成的 DAG 需要连接外部系统,相关凭据应由 Airflow 的 Connections / Variables 管理,不建议硬编码在配置中。

最小使用条件

1. 一个支持 Skill 加载的 Agent。
2. 对目标 DAG / YAML 目录的读取权限。
3. 需要写回文件时,具备写权限。
4. 需要实际验证时,具备可用的 Airflow 环境。

Skill 安装、使用与卸载教程

一、安装

可以直接复制本页面提供的 Skill 安装指令,粘贴到对应的 Agent 或终端执行。

如果不知道自己的 Agent 如何安装,可以直接询问当前 AI Agent:

如何安装 astronomer/agents#dag-factory?

如何在 Claude Code 中安装 astronomer/agents#dag-factory?

如何在 Cursor 中安装 astronomer/agents#dag-factory?

让 Agent 根据自己的 Skill 加载和管理机制给出安装方式。

如果该 Skill 存在特殊官方要求,请以官方说明为准。

二、安装后如何使用

安装后,遇到涉及 Airflow DAG 定义、dag-factory YAML 配置、批量生成或改造 DAG 的任务时,可以直接把需求交给 Agent。

自然语言使用示例:

使用 dag-factory,帮我把这份 YAML 配置转换成对应的 Airflow DAG。

使用 dag-factory,根据我给出的任务结构,生成一份规范的 DAG 配置文件。

使用 dag-factory,帮我检查这个 YAML 里的字段是否符合 dag-factory 的约定。

描述需求时,尽量说明:

– 目标 DAG 的用途。
– 涉及的任务和依赖关系。
– 调度方式。
– 是否需要写回文件。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式可能不同。常见做法:

1. 使用对应 Agent / Skill 管理器提供的删除方式移除该 Skill。
2. 直接询问当前 Agent:

如何卸载 astronomer/agents#dag-factory?

如果没有统一的卸载命令,按 Agent 指引移除对应 Skill 文件即可。

常见问题

这个 Skill 需要本地安装 Apache Airflow 吗?

不一定。如果只是生成或修改配置,通常不强制要求本地有完整 Airflow。若需要实际运行或验证生成的 DAG,则需要可用的 Airflow 环境。

它可以替代 dag-factory 项目本身吗?

不能。这个 Skill 是围绕 dag-factory 使用的 Agent 能力,最终生成的配置仍由 dag-factory 和 Airflow 负责执行。

生成的内容会直接修改我的项目文件吗?

取决于授予 Agent 的权限。如果允许写文件,可能会直接修改。建议在 Git 仓库中使用,改动可控可回滚。

可以关闭 Shell 权限使用吗?

如果只需要生成或调整 YAML / DAG 内容,通常可以关闭自动执行 Shell,由你手动运行验证命令。

是否适合在生产环境直接使用?

建议把生成结果当作初稿,经过代码审查和测试后再进入生产。不要把未经检查的配置直接推到生产流程。

可以同时装到多个 Agent 吗?

通常可以,具体取决于各 Agent 的 Skill 管理方式。不同 Agent 之间互不影响。

注册/更新后需要重新安装吗?

多数情况下,Skill 更新通过对应 Agent 的 Skill 管理机制完成,不一定需要重新安装。以该 Skill 当前官方说明为准。

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
## 变更内容 * fix:运行 --plugin-dir 时加载 hooks,作者 @milton-li,见 https://github.com/astronomer/agents/pull/102 * 确保 airflow mcp 包高效使用 uvx 缓存,作者 @schnie,见 https://github.com/astronomer/agents/pull/100 * fix:从 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 * docs:在 README 中添加缺失的 skills,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/112 * 重构 skill hooks 并扁平化 analyzing-data 脚本,作者 @milton-li,见 https://github.com/astronomer/agents/pull/113 * docs:为 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:添加部署管理 agents,作者 @kh3dron,见 https://github.com/astronomer/agents/pull/121 * fix:为自签名证书添加 SSL 证书验证绕过,作者 @kaxil,见 https://github.com/astronomer/agents/pull/126 * 触发前自动取消暂停 DAG,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/127 * docs:澄清 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) - 血缘注解 - 最佳实践 - 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 * 添加血缘注解和 OpenLineage extractor 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 * docs:添加社区健康文件,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/80 * docs:添加 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 * fix:为 uvx af CLI 使用 @latest 后缀以防止陈旧版本问题,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/68 * fix:配置加载失败时警告而不是静默回退,作者 @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
暂无评论...