authoring-dags – Airflow DAG 编写 Skill

3周前更新 8 0 0 0

Skill 详细介绍 astronomer/agents#authoring-dags 是 Astronomer 官方 agents 仓库中面向 Apache Airflow 的一个 Skill,核心用途是帮助 AI Agent 按照规范编写、修改和审查 Airflow DAG(有向无环图)代码。Airflow 是当前最主流的开源数据编排...

Skill 安装

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

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

Skill 调研报告

Skill 详细介绍

astronomer/agents#authoring-dags 是 Astronomer 官方 agents 仓库中面向 Apache Airflow 的一个 Skill,核心用途是帮助 AI Agent 按照规范编写、修改和审查 Airflow DAG(有向无环图)代码。Airflow 是当前最主流的开源数据编排调度平台之一,DAG 是 Airflow 中最核心的代码单元,用来定义任务依赖、调度周期和任务执行逻辑。这个 Skill 做的事情,就是让 Agent 在写 DAG 时遵循 Airflow 的最佳实践,而不是生成一份能跑但风格混乱、容易踩坑的 DAG 文件。

它不是一个可以独立运行的程序,也不是 Airflow 插件、CLI 工具或部署工具。它本质上是一套面向 Airflow DAG 开发的指令与工作流集合:包含 DAG 文件结构约定、任务定义方式、依赖关系表达、调度配置写法,以及常见的反模式提醒。安装后,Agent 在处理 Airflow 相关任务时,会主动按照这套规范来组织代码,而不是每个文件都从零自由发挥。

主要能力方向包括:

– 按照标准结构创建新的 Airflow DAG 文件
– 定义 TaskFlow API 或传统 Operator 形式的任务
– 表达任务之间的依赖关系
– 配置调度周期、开始时间、重试策略、超时等 DAG 参数
– 审查已有 DAG 是否符合常见最佳实践
– 对 DAG 中的反模式给出修改建议

典型使用场景:

– 数据工程师用 Agent 快速起草一个每日跑批的 ETL DAG
– 把一段散乱的 DAG 代码交给 Agent 做重构和规范统一
– 在导入已有 Airflow 项目时,让 Agent 检查 DAG 写法是否存在常见隐患
– 用统一风格批量生成结构相似的 DAG 文件

适合的用户:使用 Apache Airflow 做数据编排的工程师、数据平台团队,以及希望在 Agent 辅助下保持 DAG 代码风格一致的开发者。

不适合的需求:这个 Skill 不负责 Airflow 集群部署、不负责调度器运维、不负责连接配置管理,也不能替代对 Airflow 本身的理解。它是代码层面的编写辅助,而不是运维工具。

需要区分的是,Skill 提供的是 DAG 编写规范与生成能力,Airflow 平台本身提供的是调度执行能力。Skill 生成的 DAG 最终能否运行,取决于用户的 Airflow 环境和依赖是否配置正确。

Skill 安全评估

总体判断:astronomer/agents#authoring-dags 属于偏开发辅助类型的 Skill,本身不涉及凭证读取、网络回传或系统级操作,风险主要集中在 Agent 生成的代码质量和文件改动范围上,而不是这个 Skill 会主动危害系统。

与安全相关的几个实际关注点:

– 来源可信度:该 Skill 来自 Astronomer 官方 agents 仓库。Astronomer 是 Apache Airflow 生态中的核心商业公司之一,也是 Airflow 的主要维护方之一。从来源权威性看,可信度相对较高。具体内容仍以仓库当前版本为准。
– 文件写入:DAG 编写通常意味着创建或修改项目中的 Python 文件。这是这个 Skill 的正常用途,但需要留意 Agent 可能在哪些目录下写入,是否会覆盖已有 DAG。
– 代码执行:该 Skill 关注的是编写 DAG,不必然要求 Agent 自动执行 DAG 或运行 Airflow CLI。是否执行测试、是否触发 DAG,取决于用户和 Agent 的权限配置。
– 网络访问:编写 DAG 本身通常不需要联网。如果 Agent 在过程中需要拉取依赖或访问 Airflow API,则属于 Agent 层行为,不是该 Skill 自身必需。
– 凭证与连接:Airflow 项目常涉及 Connection、Variable、Secret。Skill 生成 DAG 时如何引用这些凭证值得注意。如果让 Agent 生成包含明文密码、Token 的 DAG,属于高风险用法,应避免。凭证通过 Airflow 的 Connection 或 Secret Backend 引用更安全。
– Prompt Injection:如果用户把不可信的第三方 DAG 或文档整段喂给 Agent 处理,理论上存在被其中内容影响的风险。处理外部来源代码时需要保持警惕。
– 供应链风险:该 Skill 依赖仓库当前内容,如果使用第三方镜像或重新发布版本,内容可能被改动。建议使用官方来源。

降低风险的建议:

– 如果只需要 Agent 帮忙起草 DAG,可以关闭 Agent 自动执行 Shell 或自动运行 Python 的权限,由用户手动运行和测试。
– 不要让 Agent 在 DAG 中写入明文密码、API Key、Token,改为引用 Airflow Connection 或环境变量。
– 在已有项目中让 Agent 改动 DAG 前,先确认 Git 已提交或做好备份,便于对比和回滚。
– 审查 Agent 修改了哪些文件,尤其是与任务无关的文件是否被动过。

没有任何 Skill 可以简单判断为“绝对安全”。这里的关键是:这个 Skill 的正常用途是写 DAG 代码,只要把它的活动范围控制在这件事上,风险是可控的。

Skill 使用要求

一、Agent / 客户端

该 Skill 来自 Astronomer 的 agents 仓库,属于面向 AI 编程 Agent 的 Skill 形式。官方没有公开完整的第三方 Agent 兼容列表。从 Agent Skill 的一般加载方式看,在支持 Skills、自定义指令或类似机制的环境中通常可以尝试使用,包括 Claude Code、Codex、Cursor、Trae、OpenClaw、WorkBuddy 等。不同 Agent 的 Skill 加载机制和兼容程度可能不同,具体以对应 Agent 当前版本为准。官方主要面向的场景是配合编程 Agent 使用,因此代码编辑能力较强的 Agent 会更适合。

二、运行环境 / 依赖

| 项目 | 要求 |
|—|—|
| Agent | 支持自定义 Skill 的编程 Agent,Claude Code 等可优先尝试 |
| Python | 生成的 DAG 文件需要 Python 环境运行,官方未明确版本,按 Airflow 自身要求为准 |
| Airflow | 若要运行或验证 DAG,需要可用的 Airflow 环境 |
| 网络 | 编写 DAG 通常不需要;安装 Skill 时需要能访问对应来源 |

Skill 本身是否强依赖某个具体 Python 或 Airflow 版本,官方资料未明确说明,建议以仓库当前内容和 Airflow 官方文档为准。

三、权限

– 文件读取:必需,用于读取项目中的 DAG 和配置。
– 文件写入:通常必需,用于创建或修改 DAG 文件。
– Shell:可选。仅在需要运行 Python、Airflow CLI 或测试时才需要。
– 网络:可选。编写 DAG 一般不需要。
– Git:可选,建议开启以便对比改动。

四、账号 / API Key

该 Skill 本身不要求账号或 API Key。但使用它会接触到的 Airflow 项目通常涉及 Connection、Variable、Secret 等凭证。这类凭证属于 Airflow 项目层面,不属于 Skill 本身。配置 DAG 时建议通过 Airflow 的 Connection、环境变量或 Secret Backend 引用,而不是写进 DAG 代码。

最小使用条件

– 一个支持自定义 Skill 的编程 Agent
– 可以读写 DAG 代码所在目录
– 如需运行验证,需要可用 Airflow 环境

Skill 安装、使用与卸载教程

一、安装

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

如果用户不清楚自己的 Agent 如何安装,可以直接向当前 AI Agent 提问,让 Agent 根据自身的 Skill 加载与管理机制给出安装步骤,例如:

如何安装 astronomer/agents#authoring-dags?

如何在 Claude Code 中安装 astronomer/agents#authoring-dags?

如何在 Cursor 中安装 astronomer/agents#authoring-dags?

如果当前 Skill 存在官方特殊安装条件,以官方仓库说明为准。

二、安装后如何使用

安装后,在涉及 Airflow DAG 编写、修改或审查的任务中自然描述需求即可。Agent 识别到与 DAG 相关时,会按该 Skill 的规范来组织代码。

适合的自然语言示例:

用 authoring-dags,帮我写一个每天凌晨两点运行的 Airflow DAG,先从 S3 拉数据,再跑 Python 清洗,最后写入仓库。

用 authoring-dags,帮我审查这个 DAG 文件里有没有常见的写法问题。

用 authoring-dags,把这份散乱的 DAG 代码按规范重写一遍,保持功能不变。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式不同。通常可以通过对应 Agent 或 Skill 管理器提供的删除方式移除该 Skill,或直接询问当前 Agent:

如何卸载 astronomer/agents#authoring-dags?

如果没有统一的卸载命令,询问当前 Agent 如何移除通常更稳妥,不要手动到不确定的目录删除文件,以免误删其他 Skill。

常见问题

1. 安装后 Agent 没识别到这个 Skill 怎么办?

先确认安装指令执行成功、没有报错,再确认当前 Agent 是否支持自定义 Skill 以及是否需要重启或重新加载。可以让 Agent 列出当前已加载的 Skill,检查是否包含 authoring-dags。如果仍不识别,询问当前 Agent 该 Skill 的加载机制。

2. 这个 Skill 会直接修改我已有的 DAG 文件吗?

只有在用户要求修改、重构或审查已有 DAG 时,Agent 才可能写入文件。如果只是问答或生成新文件,一般不会动已有内容。建议在让 Agent 改动已有项目前,先用 Git 提交一次,方便对比和回滚。

3. 可以让 Agent 自动运行生成的 DAG 吗?

是否自动运行取决于 Agent 的 Shell 权限与用户设置。出于安全和排查便利考虑,可以只让 Skill 生成 DAG 代码,由用户手动运行和验证,避免 Agent 直接触发生产任务。

4. 生成的 DAG 能直接用在生产环境吗?

这个 Skill 帮助按规范编写 DAG,但生产可用性还取决于依赖、连接配置、权限、资源与调度策略。建议经过测试环境和代码审查后再上生产,不要直接把 Agent 生成的 DAG 不加检查投入运行。

5. 中国大陆使用是否有网络要求?

编写 DAG 一般不需要联网,但安装 Skill 时需要能访问对应来源。如果安装源在境外、访问受限,可能需要配置合适的网络代理或镜像,具体以用户环境和仓库说明为准。

6. 可以同时装到多个 Agent 里吗?

通常可以。不同 Agent 的 Skill 目录相互独立,同一 Skill 可以分别安装到多个 Agent 中。各自的加载和更新相互独立,更新后是否需要重新安装,取决于对应 Agent 的管理方式。

7. Skill 更新后需要重新安装吗?

取决于 Agent 与来源的管理方式。如果 Skill 是通过仓库拉取并缓存的,可能需要重新拉取或更新。可以直接询问当前 Agent 如何更新该 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)。修复了一个幻觉,即模型传递 `--airflow-version 3.1.0`,尽管 CLI 默认使用最新版。 ## 安装 ``` 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:添加 deployment 管理 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
暂无评论...