Prefect 是什么?2.4万星的持久化工作流引擎,吞下 Dagster 后想包下 Agent 平台三层(基础篇)

Prefect 是什么?2.4万星的持久化工作流引擎,吞下 Dagster 后想包下 Agent 平台三层(基础篇)

聊 Agent 平台的时候,我有个判断标准:谁在吹「一站式」,谁的产品线反而最乱。

Dify 塞了工作流、知识库、模型管理、插件市场;n8n 塞了 400 多个集成;Zapier 一边推 Agent 一边把 API 平台单独拆出来卖。功能都堆得很满,但你真上线跑一周就会发现,Agent 任务和普通数据任务根本不是一回事。

前者会自己决定下一步调哪个工具、在那儿卡住重试、写到一半失败要回滚;后者老老实实按 DAG 跑完就完。这两种负载塞进同一个引擎里,怎么搞都是拧巴。

Prefect 最近干的事,正好印证了这个判断——它没继续往上加功能,而是往下补了一层,然后把同层最强的对手买下来了。

Prefect 是什么

一句话:Prefect 是用纯 Python 写的持久化工作流引擎。

关键在「持久化」三个字。传统 Airflow 是静态 DAG,你得在代码里写死任务依赖;Prefect 你直接写普通 Python 函数,加个装饰器就是一次可观测、可重试、可缓存、可回填的任务:

from prefect import flow, task

@task(retries=3, retry_delay_seconds=10)
def fetch_orders(day: str):
    return db.query("select * from orders where day = ?", day)

@flow(log_prints=True)
def daily_etl(day: str):
    fetch_orders(day)

就这几行。没有 DAG 声明文件,任务图是运行时动态生成的——这也是它比 Airflow 轻的原因之一。

我拉了 2026 年 10 月 5 日的实际数据:

  • GitHub 23,966 星,Apache-2.0,2018 年 6 月建仓,最后一次推送是 10 月 3 日,还在活跃开发
  • PyPI 月下载 684 万,日均 15.4 万
  • 母公司 Prefect 上一整年财报是盈利的

这个下载量在编排类工具里不算炸裂,但考虑到它只是「AI Agent 的地基」而不是门面项目,这个数字挺合理。

2026 年 7 月:它把 Dagster 买了

这是今年编排圈最大的新闻之一。

2026 年 7 月 13 日,Prefect 创始人兼 CEO Jeremiah Lowin 发了公开信,宣布收购 Dagster Labs。两个项目都在 2018 年成立,是同一条赛道上缠了八年的对手——Dagster 走「声明你该有哪些数据资产」,Prefect 走「让执行本身动态且持久」。

收购后 Dagster 保持独立品牌、保持开源协议、部分团队并入 Prefect。CEO 在信里给了个我觉得挺诚实的定位:

Dagster 定义产出,Prefect 执行工作,FastMCP 管访问。

加上 FastMCP(2.7 万星,PyPI 月下载 5310 万),Prefect 手里现在是三个独立产品线,对应 Agent 平台的三件事:产出是什么、工作怎么跑、能碰什么。

Prefect 三层 Agent 平台架构:Dagster 资产层、Prefect 执行层、FastMCP 接入层
Prefect 吞下 Dagster 之后的自家三层:产出、执行、访问。2026 年 10 月 5 日实测数据。

上手:十分钟把它跑起来

前置条件就一个:Python 3.10+。

pip install prefect
prefect server start        # 起本地 UI,默认 4200 端口

然后把上面那段 @flow / @task 代码存成 demo.py,直接 python demo.py 跑。跑完打开 UI,你会看到这次 flow 的每个 task、耗时、重试次数、缓存命中,全是自动记的。

想接定时任务,加个部署就行:

prefect deploy demo.py:daily_etl -n daily-etl

我的实操建议就两条:

第一,先自托管,别急着上 Cloud。 prefect server start 本地就能跑,SQLite 后端零配置。等你真需要多节点调度和团队权限再迁 Cloud,代码一行不用改——官方明确说 Cloud 和自托管共用同一个核心引擎。

第二,如果你的 Agent 要跑超过几分钟,别用普通 task。 Prefect 有专门的 background task 类型,支持流式返回和持久化轮询。这也是它和普通编排框架的分水岭:FastAPI 里 async def 进程一重启就没了,Prefect 里的任务有状态可以恢复。

说点实话

一、它是基础设施,不是 Agent 框架。

这点必须讲明白,不然容易踩坑。Prefect 自己不做 Agent 决策,它不给你「多智能体协作」「工具自动选择」这些东西。它的角色更像高速公路:Agent 在上面跑,但转向和踩油门是你自己的代码决定的。

真要开箱即用的多 Agent 编排,Prefect 自己的方案是 ControlFlow(构建在 Prefect 之上)。但说实话,ControlFlow 的社区体量和你在别处见过的 AutoGen、CrewAI 不是一个量级,属于「能用,但别指望有现成的踩坑经验帖」。

二、对比 Airflow,它省事;对比 Temporal,它弱。

Airflow 的老毛病是「用 Python 写任务,却要用非 Python 的方式描述任务」,Prefect 把这个割裂砍掉了,这是它最明显的胜利。但 Temporal 那种「崩溃恢复 + 严格幂等」的模型 Prefect 是没有的——Prefect 的恢复靠的是幂等性和缓存,不是分布式日志重放。

任务跑几分钟到几小时,Prefect 舒服。跑几天、要精确 exactly-once、涉及资金账务,Temporal 才是那个领域的答案。

三、三件套一起上,容易贪多。

Dagster 和 Prefect 的关系,官方原话是「互补多于竞争,很多组织两个都需要」。这话没错,但反过来说:个人开发者或者小团队,先只用 Prefect 一个。数据口径真吵起来了,再考虑 Dagster。FastMCP 倒是可以早点上——MCP 生态它基本是事实标准了。

三层怎么选(实测数据)

项目 Stars PyPI 月下载 定位
Prefect 23,966 684 万 执行层:持久化工作流
FastMCP 27,970 5310 万 接入层:MCP 服务框架
Dagster 16,234 786 万 产出层:数据资产定义

拿这张表对照你的需求:

  • 只是想让 Agent 连上你的工具和数据库 → 直接上 FastMCP
  • Agent 任务会跑几小时甚至几天,中间要重试和恢复 → 上 Prefect
  • 团队天天在吵「这个指标到底怎么算」 → 先上 Dagster

顺带一句:FastMCP 的 PyPI 月下载 5310 万,是 Prefect 的近 78 倍。这说明一个残酷的事实——大部分人只在做「让 Agent 能用上工具」这一件事,真正愿意去扛持久化执行复杂度的团队是少数。

这也是我认为 Prefect 这步收购走对了的原因:Agent 平台往深了做,一定会撞上「任务跑不完」的墙,而墙后面站着的正是它。

想自己动手跑一遍的话,我之前写过一篇 n8n 是什么,那篇偏「可视化自动化」,跟今天这篇「纯代码的持久化引擎」路子完全不同,可以对着看。

顺带说一句我的选型习惯:不管选哪个 Agent 平台,先把最脏的那个 API 用手工 curl 打通,再上平台。平台会帮你省事,也会帮你掩盖问题——让你到上线那天才发现,脏活儿一个没少。


by 数码罗记 · godsun.pro

本文数据核实于 2026 年 10 月 5 日,Stars 与 PyPI 下载量均为当日实时抓取。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注