Mastra 是什么?给 TypeScript 队伍的 Agent「后端框架」,28K 星的开源横向平台(基础篇)
导语
TypeScript 这两年的戏码一直在重演:先是 Next.js 把 React 生态卷成「只用这一个框架」,现在轮到 AI Agent。你打开 GitHub 的 TypeScript 排行榜,前排除了 Vercel AI SDK,就是今天要聊的 Mastra——截至写稿 28.1K 星、2800+ fork,官方给自己的定位是「现代 TypeScript 的 AI 应用与 Agent 框架」。
一句话:如果 Vercel AI SDK 是「给 Agent 的 HTTP 工具包」,那 Mastra 更像「给 Agent 的后端框架」——它帮你把 Agent、工具、工作流、记忆、评测、可观测性这些散件,像搭 Express 一样组织成一个能维护、能测试、能上生产的工程。
项目介绍
Mastra 由同名团队维护,纯 TypeScript 写成,主打「框架化」而不是「低代码」——你要写代码,但不用从零搓轮子。它的核心四件套:
- Agents:给 Agent 一个带 LLM、工具、短期记忆的「躯壳」,跑起来就是个能调用函数的实体;
- Workflows:有状态的步骤机,把 Agent 编排成确定性的流水线,失败能重试、能接人类审批;
- 存储与检索:内建向量库和 RAG 切片,不用自己再接一套;
- 可观测性:原生接 OpenTelemetry,每步推理、每个 tool 调用都能拉到监控里,出 bug 不用靠猜。
它能跑在 Node 本地,也能租进 Next.js/Express/Hono,还可以后端无头跑成纯 API 服务。模型侧不锁厂商——OpenAI、Claude、本地推理、各家中转都能换着接,很适合已经在跑私有化部署的兄弟。对一门心思搞 Agent、又讨厌 Python 生态的 TS 团队,这就是个「在舒服区里干活」的选择。
还有个被低估的点:版本化记忆。Agent 的短期记忆、长期检索库都是结构化管理,跨会话的状态不会像裸调 API 那样一重启就蒸发,这在做客服、做个人助理这类要记住上下文的场景里是真刚需。
上手
装好依赖后,定义一个带工具的 Agent 就三五行:用 defineAgent 声明模型和系统提示,再挂一个查天气的函数,Agent 自己就能决定什么时候调它。起个 Mastra dev 打开 playground,把 prompt 扔进去看推理轨迹——哪步调了工具、返回了什么,全部可视。
路由侧更简单:registerAPI 把 Agent 暴露成 HTTP 端点,前端直接 POST 交互,跟写接口一样自然。从零到能跑,一个下午足够。
想再复杂点,就用 Workflow 把两步串成流水线:第一步 Agent 抓数据,第二步交给另一个 Agent 总结,最后写到数据库或发通知。步骤之间有状态、可控重试,回滚有依据,这就是它跟「拿 prompt 硬怼」的分水岭。
实话
Mastra 很香,但别神话它。三个现实:
- 它还很年轻。28K 星看着猛,可生态厚度比不上 LangChain/LlamaIndex 这种长老级;冷门场景要自己踩坑、翻 issue。
- 跟 Vercel AI SDK 容易混。两者同处 TS 圈、定位又像,选型时先想清楚:你是要「轻量工具库」还是「要框架管住整个应用」——前者 Vercel,后者 Mastra。
- 小项目别杀鸡用牛刀。就调几个 prompt 的场景,裸 OpenAI SDK 够用;上了复杂多步工作流、需要回滚和监控,Mastra 的价值才真正兑现。
一句话总结:TS 栈、想自托管、要可观测性、项目开始变复杂——这四个条件对上两三个,Mastra 就值得你花一个周末试一把。想要对比视角,可以翻翻我写的 Vercel AI SDK 基础篇;更多 Agent 平台横向折腾,在我的主站 godsun.pro 持续更新。
by 数码罗记 · godsun.pro