migrating-airflow-2-to-3 – Airflow 2 迁移至 3 Skill

3周前更新 8 0 0 0

migrating-airflow-2-to-3 是指导 AI Agent 将 Airflow 2 的 DAG、Operator 与配置迁移到 Airflow 3 的升级型 Skill,适合需要把现有数据管道代码平滑迁移到新版平台的开发者。

Skill 安装

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

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

Skill 调研报告

Skill 详细介绍

astronomer/agents#migrating-airflow-2-to-3 是 Astronomer 官方 agents 仓库中提供的一个迁移辅助 Skill,名称对应 Airflow 2 到 Airflow 3 的版本迁移。它本身不是一个独立运行的软件,也不是 Airflow 本体,而是一套面向 AI Agent 的指令 / 工作流集合,目标是帮助用户在把已有 Airflow 2 项目升级到 Airflow 3 时,减少人工比对的成本。

它的核心用途可以概括为:让 Agent 依据 Airflow 3 的迁移规则,读懂现有 Airflow 2 代码库,指出需要改动的地方,并给出可参考的迁移方案。安装后,Agent 相当于增加了一项“Airflow 2 → 3 迁移助手”的能力,而不是增加一个 Airflow 运行环境。

主要解决的问题

  • Airflow 3 存在较多破坏性变更,DAG、Operator、导入路径、调度方式、执行器与部分配置可能需要调整。
  • 人工逐文件核对迁移点耗时且容易遗漏。
  • 迁移过程中需要区分“必须改”和“可以保留”的部分,避免过度重构。
  • 需要把迁移改动落到具体代码,而不只是给出一份泛泛的升级清单。

典型任务

  • 扫描现有 Airflow 2 代码库,定位与 Airflow 3 不兼容的写法。
  • 给出具体文件、具体行的迁移建议或改动方案。
  • 处理导入路径、依赖引用、DAG 定义方式等常见迁移点。
  • 在迁移过程中保持原有业务逻辑尽量不变,降低回归风险。
  • 配合代码审查,作为迁移改动的辅助工具,而不是替代人工判断。

适合的使用者

  • 正在或计划把生产 / 测试环境中的 Airflow 2 升级到 Airflow 3 的数据工程师。
  • 维护较多历史 DAG、需要批量迁移的团队。
  • 已经使用 AI Agent 写代码,希望把迁移这类重复性工作交给 Agent 辅助的开发者。

不适合的需求

  • 想直接一键完成整套升级、无需人工确认的场景。迁移涉及生产调度逻辑,仍需要人工审查每一次改动。
  • 想用它替代 Airflow 官方升级文档。该 Skill 是辅助工具,最终仍应以 Airflow 官方迁移说明为准。
  • 完全没有 Airflow 经验、只是第一次接触 Airflow 的用户。

需要明确:该 Skill 属于提示词 / 工作流 / 指令集性质,而不是一个可独立执行的迁移程序。它提供的迁移建议是否准确,取决于 Agent 自身能力、所加载的 Skill 内容以及项目实际情况。涉及生产环境的迁移,务必人工复核。

Skill 安全评估

总体判断:该 Skill 来源于 Astronomer 官方 agents 仓库,来源可信度较高,本身属于迁移辅助指令,不涉及窃取凭证或上传代码等可疑行为。主要风险不在于 Skill 本身,而在于它引导 Agent 对真实 Airflow 代码库做改动时可能带来的副作用。

来源可信度

  • 来自 Astronomer 官方 agents 仓库,属于 Airflow 生态内的官方 / 一手来源,相比第三方同名仓库更可信。
  • 仍建议通过 LemonAIKit 页面提供的安装指令或官方渠道获取,避免从不明来源复制剪贴。

文件读写与代码修改

  • 迁移辅助几乎必然涉及读取现有 DAG、配置、依赖文件。
  • 如果放开 Agent 的自动写入 / 自动执行权限,Agent 可能直接修改项目文件。
  • 建议操作前先提交或备份代码,把迁移改动放在独立分支上进行,方便对比与回滚。
  • 如果只想先看建议、不想改文件,可以只给 Agent 读取权限,由用户自己手动应用改动。

Shell 权限

  • 如果 Agent 需要运行 Airflow 相关命令或测试迁移结果,会用到 Shell 权限。
  • Shell 权限本身不是问题,但建议限定在工作目录内,避免执行删除、覆盖等破坏性命令。
  • 生产环境的迁移验证,建议先在隔离环境执行。

网络与依赖

  • 如果安装或验证过程需要拉取 Airflow 3 相关依赖,会涉及网络访问。
  • 依赖来源应以 PyPI 或官方渠道为准,避免使用不明镜像。

凭证与敏感信息

  • 迁移过程中 Agent 可能读取 Airflow 配置,其中可能包含连接串、密钥等敏感信息。
  • 如果项目里存在明文凭证,建议先清理或替换为环境变量,再交给 Agent 处理。
  • 不要把生产凭证明文放进交给 Agent 的上下文中。

Prompt Injection 风险

  • 如果 Agent 读取的代码或文档中包含诱导性内容,理论上存在被误导的可能。
  • 对 Agent 给出的迁移改动,仍应以人工审查为准。

降低风险的做法:先在 Git 分支或代码副本上操作;关闭不必要的自动执行权限;把生产凭证与迁移代码分离;迁移结果人工复核后再合入主分支。

Skill 使用要求

一、Agent / 客户端

该 Skill 来自 Astronomer 官方 agents 仓库,主要面向支持 Skills / 自定义指令加载机制的 AI Agent。官方未公布完整的第三方 Agent 兼容列表,因此无法逐一确认所有客户端的官方支持情况。

一般来说:

  • Claude Code 这类支持 Skill / 指令加载的 Agent,通常更适合使用。
  • Codex、Cursor、Trae、OpenClaw、WorkBuddy 等主流 AI Agent,在支持自定义 Skill 或类似指令加载机制时,通常也可以尝试。
  • 不同 Agent 的 Skill 加载方式、上下文长度、文件读写与执行权限不同,实际可用程度会有差异,具体以对应 Agent 当前版本为准。

判断优先级建议:如果该 Skill 的加载结构与某个 Agent 的 Skill 机制匹配,可直接使用;否则可让 Agent 读取 Skill 内容并按提示执行。

二、运行环境 / 依赖

项目 要求
Agent 支持 Skill / 自定义指令加载的 AI Agent,Claude Code 优先
Python 迁移对象是 Airflow 项目,实际验证通常需要 Python 与 Airflow 环境
Airflow 需要有 Airflow 2 代码库;验证迁移结果通常需要可运行 Airflow 3 的环境
Git 建议使用,便于分支隔离与回滚
网络 安装或校验依赖时需要

官方没有明确给出必须的 Python / Airflow 具体版本号,因此不要假设某个固定版本。实际以你项目使用的 Airflow 版本和目标 Airflow 3 版本为准。

三、权限

  • 文件读取:必需,用于读取现有 DAG、配置、依赖。
  • 文件写入:可选,若希望 Agent 直接改代码则需要;只想看建议时可以关闭。
  • Shell:可选,用于运行验证命令;可关闭后由用户手动执行。
  • 网络:安装 / 校验依赖时可选需要。
  • Git:建议具备,用于隔离与回滚。

四、账号 / API Key

  • 该 Skill 本身不要求额外的账号或 API Key。
  • 若迁移后的 Airflow 项目需要连接外部服务,相关凭证属于项目自身需求,与该 Skill 无关。
  • 如果使用托管型 Agent 服务,是否需要账号取决于该 Agent 平台,而不是这个 Skill。

最小使用条件

  1. 一个支持 Skill / 自定义指令加载的 AI Agent。
  2. 一份可读的 Airflow 2 代码库。
  3. 建议具备 Git 环境,用于分支隔离。

Skill 安装、使用与卸载教程

一、安装

可以直接复制本页面提供的 Skill 安装指令,粘贴到对应 Agent 或终端执行。LemonAIKit 已经在 Skill 详情页给出对应安装指令,这里不再重复完整安装命令。

如果不知道自己的 Agent 该如何安装,可以直接向当前 AI Agent 提问,让它根据自己的 Skill 加载 / 管理机制给出步骤:

如何安装 astronomer/agents#migrating-airflow-2-to-3?

如何在 Claude Code 中安装 astronomer/agents#migrating-airflow-2-to-3?

如何在 Cursor 中安装 astronomer/agents#migrating-airflow-2-to-3?

如果该 Skill 存在额外的官方安装前提(例如需要先加载所属仓库 / 插件集),以 Astronomer 官方说明为准,不要自行拼接安装命令。

二、安装后如何使用

安装后,该 Skill 一般会在处理 Airflow 迁移相关任务时被触发。也可以在提问时显式点名,让 Agent 使用该 Skill。

适合交给它的任务类型:

  • 分析现有 Airflow 2 代码库与 Airflow 3 的不兼容点。
  • 给出具体文件的迁移改动建议。
  • 按模块分批推进迁移,并保持业务逻辑不变。

向 Agent 描述需求时,建议说清楚:Airflow 版本、目标版本、代码路径、是否允许直接改文件、是否允许运行命令。

自然语言使用示例:

使用 migrating-airflow-2-to-3,帮我检查这个 Airflow 2 项目的 DAG 目录,列出需要改到 Airflow 3 的地方。

使用 migrating-airflow-2-to-3,按文件给出迁移建议,先不要修改代码,只输出改动清单。

使用 migrating-airflow-2-to-3,把 dags/ 目录下的 Operator 写法迁移到 Airflow 3,改完列出每个文件的变更点。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式可能不同。通常可以:

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

如何卸载 astronomer/agents#migrating-airflow-2-to-3?

如果没有统一卸载命令,直接让当前 Agent 移除对应的 Skill 目录或条目通常更稳妥。官方未提供统一卸载命令时,不要自行编造。

常见问题

这个 Skill 会自动把 Airflow 2 升级到 Airflow 3 吗?

不会。它提供迁移辅助能力,具体改动仍需 Agent 执行、用户审查。生产迁移建议人工复核后再合入。

安装后 Agent 没有识别到 Skill 怎么办?

先确认安装指令已成功执行、Skill 目录存在且结构正确,再确认当前 Agent 是否支持该加载机制。可以询问当前 Agent“是否已加载 migrating-airflow-2-to-3”,让它自行排查。

它会直接修改我的代码吗?

取决于你授予 Agent 的权限。若只给读取权限,它只输出建议;若允许文件写入,它可能直接改代码。建议在 Git 分支上操作,便于对比与回滚。

可以只让它给迁移建议、不执行 Shell 命令吗?

可以。关闭 Agent 的自动执行权限,让它在分析后输出改动清单,由你手动执行安装、测试等命令。

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

该 Skill 本身不强制特定网络环境,但安装和验证 Airflow 3 依赖时可能需要访问 PyPI 等源。若下载不畅,可考虑使用可用的镜像源,具体以你所在环境为准。

迁移结果准确吗,可以直接上生产吗?

不能仅依赖 Skill 输出直接上生产。它降低人工比对成本,但 Airflow 3 迁移涉及调度、执行器、依赖等多方面变化,最终应以 Airflow 官方迁移文档为准并配合完整测试。

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 配置中有由旧 `af instance discover astro` 铸造的 deployment 令牌,它们继续工作。你可以不管它们,或重新运行 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
## 变更内容 * 修复远程 deployments 的 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) - 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 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
暂无评论...