AI 博客

Mastra、LangGraph.js、VoltAgent 与 AI SDK——标签页关掉之后,这趟运行活在哪里

四个领先的 TypeScript 智能体框架在工具循环上几乎完全一致,分歧只落在一件决定你架构的事上:HTTP 请求结束之后,这趟运行活在哪里。这一根轴替你选了数据库、部署方式和退出成本——而 AI SDK 自己的疑难解答页(用户按下「停止」与标签页被关掉无法区分)正是这根轴才是真轴的最干净证明。

作者 智能体 AI 维基 28 分钟读完

靠读工具调用 API 去挑一个 TypeScript 智能体框架,你几乎学不到任何东西,因为这四家在这件事上是一致的:带类型的工具、一个循环、流式、MCP。它们真正替你做掉的决定是:当 HTTP 请求结束时,一趟跑到一半的运行会怎么样——用户关掉了标签页、无服务器函数撞上了上限、你发了一次版。这是一根轴,它替你选了数据库,也选了部署目标;而在这一页上,它是日后最贵的一次反悔。

先看全貌

四者截至 2026 年 9 月 20 日均为在维护状态;版本与日期两列取自当天的 npm registry。

项目最新稳定版许可证请求结束后运行活在哪
AI SDK(ai) 7.0.107——2026-09-18 Apache 2.0 哪里都不活,除非你另加一个持久化运行时
Mastra(@mastra/core) 1.67.0——2026-09-15 核心 Apache 2.0,EE 目录为源码可见 它自家存储里的一份快照
LangGraph.js(@langchain/langgraph) 1.4.16——2026-09-18 MIT 每个 superstep 一个检查点,落在你自己的库里
VoltAgent(@voltagent/core) 2.10.0——2026-08-27 MIT 一个被挂起的工作流,加上持久化记忆
Stable npm releases in the 90 days to 20 September 2026 Horizontal bar chart. The ai package published 230 stable releases in the period, at-mastra-slash-core 26, at-langchain-slash-langgraph 13, and at-voltagent-slash-core 5. Counted from published version timestamps in the npm registry. Stable npm releases, 22 June – 20 September 2026 0 60 120 180 240 ai 230 @mastra/core 26 @langchain/langgraph 13 @voltagent/core 5 Source: published version timestamps, npm registry, 20 September 2026
截至 2026 年 9 月 20 日的 90 天内发布的稳定版数量,取自 npm registry。这是一份「锁版本与升级」的预算,不是质量评分。

在进入功能对比之前,这张图是最值得先记住的一个数字。AI SDK 大约每天发两个半稳定版;VoltAgent 大约每两周发一个。两者都没错——它们只是与你的 lockfile 签了不同的合同。跑得这么快的库,你应该藏在自己的一层薄封装后面去消费;跑得慢的库,你可能得等它处理你提的那个 issue。

Where each TypeScript agent framework leans A matrix of four frameworks against five axes: durable run state, built-in memory, built-in evals, first-party observability, and how much runtime you must adopt. The AI SDK is weak on durability, memory, evals and observability but adopts almost no runtime; Mastra is strong on all four capability axes and adopts the most runtime; LangGraph.js is strong on durability and memory, weak on evals and observability, with a light runtime; VoltAgent is medium to strong throughout with its observability console as its strongest axis. Where each one leans Durable run state Memory Evals Observability Runtime to adopt ai Bring your own Messages only None DevTools + OTel Almost none @mastra/core Snapshots Built in First class Built in The whole stack @langchain/langgraph Checkpoints Short + long term Separate product Via LangSmith A table in your DB @voltagent/core Suspend / resume Durable adapters In the console VoltOps, self-host Core + console Strong Medium Weak or external In the last column, "strong" means you adopt less — it is a cost axis, not a capability axis.
各自把重心压在哪里。最右一列,正是前四列被买下时所付的代价。

AI SDK——最好的原语,而且刻意不做运行时

它是什么

一层与厂商无关的模型接口,加上 TypeScript 生态多数人用来渲染的流式 UI 层,月下载量两千万以上。版本 6 加入了像样的 Agent 抽象、工具执行审批、DevTools 与完整的 MCP 支持,把大家原本手搓的那部分补齐了。版本 7 是当前版。

那道缝

以上一切都发生在一次请求内部。SDK 自己的疑难解答文档给出了本页上对这个问题最锋利的一句表述:在启用可恢复流的情况下,客户端的 abort 会被当成断连,于是调用 stop() 并不会停止生成——它会重新连回去。关掉标签页和按下「停止」在线缆上产生的字节是一样的,SDK 分不出来;于是文档教你另建一个停止端点,去持久化已生成的部分、取消正在进行的工作、清掉活跃流。

这不是什么该觉得难堪的 bug;这就是往一个「以请求为作用域」的设计里加持久化时会发生的事。Vercel 给出的答案是把循环搬到持久化运行时上:AI SDK 7 的 WorkflowAgent——Workflow SDK 中 DurableAgent 的继任者——把每一次工具调用变成可重试的工作流步骤,并带上工具审批与 OpenTelemetry。它管用;而这也意味着,对 AI SDK 最诚实的描述是:一层模型与 UI 库,在你接受第二个产品之后才成为智能体框架。

Mastra——一体化的那一套,也是许可证需要细读的那一个

它是什么

TypeScript 世界里最完整的单一厂商答案:智能体、带 .then() / .branch() / .parallel() 的图式工作流构建器、记忆、RAG、跨数十家厂商的模型路由、作为一等原语的评测,以及一套可观测性 UI。它在 2026 年 1 月到达 1.0,GitHub 上 28.2k 星,融资累计约 3500 万美元(含一轮 2200 万美元的 A 轮)——这在这里只有一层相关性:一个背后挂着托管产品的框架,对「你的状态放在哪」是有商业利益的。

那道缝

Mastra 的持久化是一份快照。把工作流挂起——等人工审批或等一个外部事件——它就会写下一条记录,内含 run id、输入、每一步的状态、挂起与恢复的载荷以及最终输出,存进默认为 libSQL、也可换成 Postgres 或 Upstash 的存储里。智能体记忆共用同一套存储。由此带来的设计后果很舒服,值得直说:你能拿到持久化的智能体,而不必接受一个工作流引擎——因为 Mastra 本身就是那个工作流引擎。

下决心之前要查两件事。第一,许可证并非清一色 Apache 2.0——企业版目录是源码可见的,用于生产需要授权,所以在某个能力变成承重结构之前,先搞清它落在哪一侧。第二,让它用起来舒服的那种整合度,也让它成为四者中最难离开的一个:你的评测、trace、记忆模式与工作流定义,全都长在它的词汇表里。这正是本站在退出一个托管智能体运行时里推敲过的那笔经典交易——而它对「开源框架 + 云产品」的适用程度,一点不比对闭源产品低。

LangGraph.js——持久化模型本身就是产品

它是什么

一个低层编排库:状态图、条件边,以及一个在每个 superstep 都持久化状态的 checkpointer——正因如此,「中断并恢复」、时间回溯与人在环中的状态编辑是自然掉出来的,而不是外挂上去的。checkpointer 覆盖内存、SQLite、Postgres、Redis 与 MongoDB。Python 版与 JavaScript 版都在 2025 年 10 月进入 1.0 GA。

那道缝

没有缝,而这正是重点——持久化不是你加的一层,它就是执行模型。代价付在别处。图逼着你在还不知道控制流长什么样之前就先把它写明确;而 JS 版所在生态的重心在 Python:langgraphjs 仓库 3.3k 星,而它的 Python 同胞要大一个数量级,你将来会搜到的集成、示例与文章也多半先落在 Python 那边。核心原语是对齐的;周围的引力不是。

什么时候选它:当你的控制流确实是一张带环与审批的图、当已有一个说 LangGraph 的 Python 服务作为事实源、或者当你想要持久化却不想接受任何人的运行时——一个 checkpointer 不过是你本就在跑的数据库里的一张表。至于「推理图底下什么时候需要一个持久化运行时」,更深的处理在持久化执行:LangGraph 加 Temporal。

VoltAgent——框架是它较小的那一半

它是什么

一个 MIT 许可的核心:带类型的智能体、工具、记忆、一个支持挂起/恢复的声明式工作流引擎、持久化记忆适配器与可恢复流——外加 VoltOps,一个提供 trace、仪表盘、记忆检视、评测套件与提示管理的控制台,可托管亦可自部署。10.6k 星,是这里社区最小、也最年轻的一个:@voltagent/core 今年进入 2.x,3.0 在预发布中。

那道缝

VoltAgent 押的是:智能体工作中昂贵的部分不是那个循环,而是看清循环内部;而你不该为此再买一家可观测性厂商。如果你本来就要在框架旁边立一套 tracing 产品,那么从一个依赖里同时拿到两者是实打实的节省,也确实少接很多线——替代方案的横评在Langfuse、LangSmith、Phoenix 与 Braintrust。

另一边的砝码是那张节奏图。九十天五个稳定版,对比 Mastra 的 26 个、AI SDK 的 230 个,这是一个维护面更小的项目的轮廓——如果你锁版本,请把它读作稳定;如果你在一个什么都没发的星期里撞上厂商侧的 bug,请把它读作你自己得打补丁。它也是四者中价值最集中于第一方控制台的那个,因此该问的那句诚实问题是退出问题:如果 VoltOps 消失了,你手里还剩多少智能体?

把那根轴摆在一起看

What survives the end of the HTTP request Four rows, one per framework, cut by a vertical line marking the end of the HTTP request. To the left, every framework runs the same loop of model call and tool call. To the right, the AI SDK has nothing unless a durable runtime is added, LangGraph.js has a checkpoint per superstep in the developer's own database, Mastra has a snapshot in its managed storage, and VoltAgent has a suspended workflow plus durable memory. What survives the end of the HTTP request inside the request after it ends ai model call → tool call → repeat nothing — unless you add a durable runtime @langchain/langgraph model call → tool call → repeat a checkpoint per superstep, in your database @mastra/core model call → tool call → repeat a run snapshot in storage it manages @voltagent/core model call → tool call → repeat a suspended workflow plus durable memory Whatever survives, resuming it re-enters your tools — idempotency is still yours to write
同一趟运行,在请求结束的那一刻被切开。右半边剩下的东西,就是这整篇对比。

把四者放在一起读,它们就不再像竞品了。AI SDK 默认什么都不持久化,把持久化推给一个配套运行时,这让它的核心保持很小,也让它的上手曲线最平缓;LangGraph.js 按 superstep 持久化到你本来就拥有的数据库里,这是最可移植的答案,也是对「控制流该怎么写」最有主张的一个;Mastra 把快照存进它托管的存储,这让每行代码买到的能力最多,也让最多的东西集中在一家厂商的词汇表里;VoltAgent 持久化工作流挂起与记忆,然后把差异化预算花在控制台上,而不是花在循环上。

同样的排序也出现在记忆上。四者中有三个自带带适配器与模式的记忆子系统;AI SDK 只带消息状态,其余要你自备——这正是 AI SDK 团队最后会去拼装别家已经包含的那些东西的原因,也是拼装完之后你手里其实是一个更差版本的 Mastra 的原因。要判断这笔交易对你划不划算,合适的去处是记忆层横评。

What happens when the client disappears mid-run Four columns, one per framework, against three questions: does the run continue, does partial output survive, and can a deliberate Stop be told apart from a dropped connection. The AI SDK continues only with resumable streams and cannot distinguish Stop from a disconnect without a separate endpoint; LangGraph.js, Mastra and VoltAgent continue from persisted state, and in all four the distinction between Stop and disconnect is something the application must signal. The client goes away mid-run ai langgraph mastra voltagent Run continues? Only if resumable Yes, from checkpoint Yes, from snapshot Yes, if suspended Partial output survives? You persist it In the checkpoint In the snapshot Resumable stream Stop ≠ disconnect? Needs a stop endpoint App must signal App must signal App must signal No transport tells you whether a human meant it — cancellation is an application-level fact
客户端在运行中途消失。三个结果、四种答案,而其中只有一个是由你的框架单独决定的。

有一条告诫对四者一视同仁:没有哪一个能单凭自己让一个长跑的智能体可以安全地重新部署。检查点或快照恢复的是状态;它并不保证一个已经发出去的工具调用不会在恢复时再发一次。那是一份你要在工具边界上写下来的幂等合同,也是团队真金白银栽跟头的那道缝——见幂等与重试与持久化状态与可恢复性。

什么时候选哪个

情形选因为要当心
聊天 UI、流式、一次请求内跑完 只用 AI SDK 能跑起来的最小那个;流式手感最好 一旦加上可恢复流,「停止」与掉线就分不开了
长跑、审批、活得比一次请求久的任务 Mastra,或 AI SDK + WorkflowAgent 「挂起」是一等状态,而不是一条异常路径 Mastra 的 EE 目录;Vercel 的运行时是第二个依赖
控制流确实是显式的图,或已有 Python 事实源 LangGraph.js 检查点落在你自己的数据库里;可移植 生态引力先照顾 Python
否则你本来就要单独买 tracing 与评测 VoltAgent 控制台自带、可自部署、核心 MIT 发版节奏最慢;价值集中在 VoltOps

在比 API 之前,先写下你的智能体将来会跑的最长那个任务,以及如果进程在中途死掉、有哪些事必须仍然成立。如果答案是「用户重试一次」,那就拿 AI SDK,别往下读了。如果答案里出现了一个不能重复的副作用、或一个必须点头的人,那你要买的是一个持久化模型——框架这个问题在它的下游。

常见问题

2026 年,多数团队该从哪个 TypeScript 智能体框架起步?

AI SDK,除非你的运行会活得比一次请求久。它是最小的依赖,它握着流式这一端,而其他几家都与它互通。等你发现自己在手写检查点表的时候,再转去 Mastra 或 LangGraph.js。

Vercel AI SDK 算不算一个智能体框架?

从版本 6 起它有了 Agent 抽象、工具审批与 MCP 支持,所以对「一次请求内的智能体」而言算。对持久、可恢复、长跑的智能体,它依赖一个配套运行时——AI SDK 7 的 WorkflowAgent 跑在 Workflow SDK 上——那是你要额外采纳并运维的第二个产品。

LangGraph.js 与 Python 版 LangGraph 对齐了吗?

核心原语——状态图、条件边、checkpointer、流式、人在环中——是对齐的,两者都在 2025 年 10 月进入 1.0 GA。没对齐的是引力:JS 仓库的星数小一个数量级,集成与示例也往往先落在 Python 那边。

Mastra 是完全开源的吗?

核心是 Apache 2.0,但仓库是双许可:企业版目录为源码可见,用于生产需要授权。在往上盖东西之前,先确认你要用的能力落在哪一侧。

相比「一个框架加一家 tracing 厂商」,VoltAgent 多给了什么?

一个依赖而不是两个,以及一套你可以自部署的控制台。如果你本来就打算买可观测性,那接线上的节省是实在的。代价是更小的社区,以及四者中最慢的发版节奏。

有了检查点,我的智能体就能安全重新部署了吗?

不能。它恢复的是状态;它并不会让一个已经发出去的工具调用在恢复时变得幂等。无论你选四者中的哪一个,这份合同都长在你的工具边界上。

延伸阅读

本站条目:

项目来源: