airflow – 数据管道工作流编排 Skill

3周前更新 8 0 0 0

Astronomer 的 airflow 技能用于指导 AI Agent 编写、调试和运行 Apache Airflow 数据管道,适合构建、调度和排查 DAG 与任务流程的数据工程场景。

Skill 安装

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

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

Skill 调研报告

Skill 详细介绍

astronomer/agents#airflow 是 Astronomer 官方 agents 仓库中提供的一个 Airflow 专项 Skill。它的作用是让 AI Agent 在处理 Apache Airflow 相关任务时,具备更贴近 Airflow 官方实践的知识与操作能力,而不是把 Airflow 当成一个泛泛的 Python 调度库来对待。

它不是一个可以独立运行的软件,也不是一套 Airflow 发行版或托管服务。它本身是给 AI Agent 加载的一组技能说明、工作规范与操作指引。真正执行 Airflow 任务的是你本地的 Airflow 环境,或你指定的 Airflow 部署。Skill 负责的是让 Agent 在生成 DAG、检查算子用法、排查调度问题、调整连接与变量时,遵循 Airflow 的实际约定。

核心能力方向

  • 编写与修改 Airflow DAG,包括任务依赖、调度周期、重试策略等常见结构。
  • 使用 Airflow 算子、装饰器任务流、TaskFlow API 等官方推荐写法。
  • 处理连接(Connection)、变量(Variable)、XCom、池(Pool)等 Airflow 概念。
  • 排查常见 Airflow 运行问题,例如 DAG 未加载、任务卡住、调度延迟、依赖冲突。
  • 结合 Airflow 的 provider 生态,处理不同系统之间的数据流转任务。

典型使用场景

  • 数据工程团队需要快速生成规范、可维护的 Airflow DAG。
  • 已有 DAG 需要重构、补测试、补文档或做代码审查。
  • 升级 Airflow 版本时需要评估 DAG 兼容性。
  • 排查生产 Airflow 中调度失败、任务重试异常等问题。

不适合的需求

  • 把它当成 Airflow 集群部署工具。它不负责安装 Airflow、不负责部署调度器或 worker。
  • 把它当成 Airflow 托管平台。它不提供任何云端运行环境。
  • 用它替代 Airflow 官方文档。它提供的是 Agent 工作方式,最终仍需以官方文档为准。

需要区别清楚:Skill 本身只提供“Agent 如何做 Airflow 任务”的能力,而真正的调度、执行、日志、监控,全部由你使用的 Airflow 环境提供。两者不属于同一个层次。

Skill 安全评估

从来源看,astronomer/agents 属于 Astronomer 官方组织下的仓库,Astronomer 是 Airflow 生态中的主要商业公司之一,也是 Airflow 社区的重要贡献方。来源可信度相对较高,这一点是安全评估的重要基础。

但来源可信不等于零风险。真正需要关注的是这个 Skill 可能让 Agent 对 Airflow 相关文件、配置、连接信息产生的操作。

需要重点关注的风险点

  • 文件读写:Airflow 任务通常涉及 DAG 文件、配置文件、变量文件。如果 Agent 自动写入或覆盖这些文件,可能影响正在运行的调度。
  • Shell 权限:如果 Agent 被允许执行 Airflow CLI,例如触发 DAG、清理任务、修改变量,就具备了对生产调度产生影响的能力。
  • 连接凭证:Airflow Connection 中往往包含数据库密码、API Key、云平台凭证。Skill 在处理连接相关任务时,可能接触到这些敏感信息。
  • 网络访问:如果 Agent 访问 Airflow Web UI 或 REST API,可能触发任务、修改配置,范围取决于所给权限。
  • Prompt Injection:DAG 代码、日志、配置文件里如果存在外部可控内容,可能被 Agent 当成指令执行。

降风险建议

  • 只让 Skill 生成和审查 DAG 代码时,关闭 Agent 自动执行 Airflow CLI 与 Shell 的能力,由你手动执行。
  • 不要把生产 Airflow 的连接密码、API Key 直接粘进对话,必要时使用占位符或本地未提交的配置文件。
  • 在生产环境操作前,先在开发或测试 Airflow 实例上验证生成的 DAG。
  • 对 Skill 生成的 Airflow CLI 命令逐条确认,不要直接无条件执行。
  • 如果 Skill 需要读取现有 DAG 目录,尽量限制在项目目录内,避免暴露无关文件。

目前没有公开信息表明该 Skill 存在已知安全事件。但同样,也没有公开的独立全面安全审计结论。使用时应按“来源可信、仍需按权限控制”的方式对待,而不是当作完全无风险的组件。

Skill 使用要求

一、Agent / 客户端

该 Skill 来自 Astronomer 官方 agents 仓库,属于面向 AI Agent 的技能集合,主要面向支持 Skill 机制或自定义指令加载的 Agent 环境。Claude Code 是常见的使用场景之一,因为 Claude Code 对 Skill / 自定义指令体系支持较完整。

官方没有公布完整的第三方 Agent 兼容列表。从 Agent Skill 的通用工作方式看,在支持 Skills、自定义 Skill 或类似指令加载机制的环境中,通常也可以尝试在 Codex、Cursor、Trae、OpenClaw、WorkBuddy 等主流 AI Agent 中使用。不同 Agent 的 Skill 加载方式、目录结构和权限模型可能不同,兼容程度以对应 Agent 当前版本为准。

二、运行环境 / 依赖

Skill 本身对运行环境没有硬性依赖。真正需要具备的是 Airflow 相关环境,因为 Skill 产出的 DAG、命令、排查结论,都需要在 Airflow 中落地验证。

项目 要求
Agent 支持 Skill 机制的 Agent,Claude Code 优先,其他兼容 Agent 可尝试
Apache Airflow 需要一个可用的 Airflow 环境(本地、Docker 或托管),用于验证生成结果
Python Airflow 本身依赖 Python,具体版本以你使用的 Airflow 版本要求为准
Git 可选,用于管理 DAG 代码版本
网络 可选,取决于是否访问 Airflow Web UI 或 REST API

Skill 本身不要求特定的 Node.js、Python 或操作系统版本。如果你的任务涉及具体 Provider 包,版本要求以对应 Airflow Provider 官方说明为准。

三、权限

  • 文件读取:通常需要,用于读取现有 DAG、配置、变量。
  • 文件写入:可选,仅在需要生成或修改 DAG 文件时开启。
  • Shell:可选,仅在需要执行 Airflow CLI 时开启,建议默认关闭。
  • 网络:可选,仅在需要访问 Airflow Web UI 或 REST API 时开启。
  • GitHub:可选,仅在需要读写仓库中的 DAG 代码时开启。

四、账号 / API Key

Skill 本身不需要账号或 API Key。是否需要凭证取决于你的任务:

  • 只生成、审查 DAG 代码:不需要 Airflow 凭证。
  • 需要访问 Airflow 实例或 REST API:需要对应的 Airflow 连接信息和认证信息。
  • 需要访问外部系统(如云平台、数据库):凭证由你自行提供,Skill 不代为保管。

最小使用条件

  • 一个支持 Skill 机制的 AI Agent。
  • 一个可用的 Airflow 环境,用于验证生成结果。
  • 按任务需要决定是否开放 Shell、网络、文件写入权限。

Skill 安装、使用与卸载教程

一、安装

可以直接复制本页面提供的 Skill 安装指令,粘贴到对应 Agent 或终端中执行。LemonAIKit 的 Skill 详情页已经提供了对应的安装命令,不需要再手动执行一长串 git clone 或目录复制操作。

如果用户不确定自己的 Agent 如何安装 Skill,可以直接向当前 AI Agent 提问,让 Agent 根据它自身的 Skill 加载和管理机制给出安装方式,例如:

如何安装 astronomer/agents#airflow?

如何在 Claude Code 中安装 astronomer/agents#airflow?

如何在 Cursor 中安装 astronomer/agents#airflow?

如果当前 Skill 存在特殊官方安装条件,建议以 astronomer/agents 仓库中的原始说明为准,不要仅凭第三方教程操作。

二、安装后如何使用

安装后,Agent 会在识别到 Airflow 相关任务时加载该 Skill,或者在用户明确点名时使用。最自然的触发方式是在需求里直接说明任务对象是 Airflow DAG、Airflow 算子、Airflow 调度等,让 Agent 知道该走 Airflow 的实践路线。

适合交给这个 Skill 的任务类型:

  • 生成新的 Airflow DAG。
  • 检查或重构已有 DAG。
  • 排查 Airflow 调度、依赖、重试问题。
  • 处理 Connection、Variable、XCom 等 Airflow 概念。
  • 结合具体 Provider 编写数据流转任务。

自然语言使用示例:

用 Airflow Skill,帮我把这段 Python 数据清洗脚本改成一个每小时调度的 DAG。

用 Airflow Skill,帮我检查这个 DAG 里任务依赖和重试策略有没有问题。

用 Airflow Skill,帮我排查为什么这个 DAG 每天凌晨的调度总是延迟十几分钟。

描述需求时,建议同时提供:Airflow 版本、涉及的 Provider 包、是否使用 TaskFlow API、当前 DAG 的关键片段。这些信息比笼统说“帮我写个 DAG”能显著提升结果质量。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式不同,卸载方式也不完全一样。一般来说可以采用两种方式:

  • 使用对应 Agent 或 Skill 管理器提供的删除 / 禁用方式,移除该 Skill。
  • 直接询问当前 Agent:“如何卸载 astronomer/agents#airflow?”由 Agent 根据它自己的机制给出移除方法。

如果没有统一的卸载命令,直接询问当前 Agent 是最稳妥的方式。删除 Skill 只会影响 Agent 对该 Skill 的加载,不会影响你已有的 Airflow 环境、DAG 代码或 Airflow 部署。

常见问题

安装后 Agent 没有识别这个 Skill,可能是什么原因?

常见原因有三类:Skill 安装目录不符合当前 Agent 的约定;Agent 需要重启或重新加载才会扫描到新 Skill;Skill 元数据文件没有被正确放置。建议先确认安装位置,再重启 Agent,最后用明确点名 Airflow 的需求测试是否触发。

这个 Skill 会修改我已有的 Airflow DAG 吗?

是否修改取决于你给的权限和指令。如果只让 Skill 分析或给出建议,它通常只输出文本,不会改动文件。如果允许文件写入或 Shell,它有可能直接修改 DAG 文件。建议在生产目录上关闭自动写入,先让 Skill 输出方案,再由你确认后应用。

可以同时安装到多个 Agent 吗?

可以。Skill 只是文件,不绑定单一 Agent。只要对应 Agent 支持 Skill 机制,就可以分别安装到 Claude Code、Cursor、Codex 等环境中。不同 Agent 的加载方式和生效条件不同,但相互不影响。

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

取决于你使用的 Agent 和 Skill 管理方式。有的 Agent 采用引用仓库的方式,更新后重新拉取即可;有的采用复制文件的方式,需要手动替换。建议以对应 Agent 当前的 Skill 管理说明为准。

中国大陆使用有网络要求吗?

Skill 本身是本地文件,不依赖特定网络环境。但如果你的任务需要访问 Airflow Web UI、云平台 API 或境外服务,网络可达性会影响实际效果。生成和审查 DAG 代码这类纯本地任务通常不受影响。

它和直接让 Agent 写 Airflow 代码有什么区别?

区别在于知识边界和写法规范。普通 Agent 可能把 Airflow 当成普通 Python 库,产出不符合 Airflow 最新实践。Airflow Skill 让 Agent 在 Airflow 语境下作答,更贴近官方推荐的 DAG 结构、算子用法和调度模式。但最终仍需用 Airflow 官方文档核对关键细节。

可以只让 Skill 输出方案、不自动执行吗?

可以。这是比较推荐的使用方式。关闭 Agent 自动执行 Shell 与文件写入的权限,只让 Skill 生成 DAG 代码、排查思路和修改建议,由你手动落地。这样既保留 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
暂无评论...