Mastra 详解:TypeScript 优先的 AI Agent 框架
Mastra 是什么、Gatsby 团队如何打造 TypeScript 原生 Agent 框架,以及它对 JS/TS 开发者在 2026 年构建 Agent 的意义。
TL;DR — Mastra 是 Gatsby.js 团队打造的开源 TypeScript Agent 框架,YC 投了 $13M。它把 agents、workflows、tools、RAG、memory、evals 和 telemetry 作为一等 TypeScript 原语提供——全部原生类型化。如果你是 JS/TS 开发者,受够了 Python 优先的 Agent 框架,Mastra 是真正适配你技术栈的答案。
为什么需要 TypeScript Agent 框架
大多数 Agent 框架 Python 优先。LangChain、CrewAI、AutoGen、OpenHands——全是 Python。如果你在建 Web 应用(大多数产品是的),后端大概是 Node.js/Bun/Deno,前端 React/Next.js,工具链 npm。加一个 Python Agent 服务意味着:
- 单独的运行时要部署和监控
- 语言边界的数据传递(JSON 序列化开销)
- 两套包管理器、两套测试框架、两套 CI 配置
- 前端团队没法参与 Agent 逻辑
Mastra 消除这个摩擦。同语言、同类型、同工具链、同部署。Agent 逻辑和你的 API 路由放一起。
我有一年时间在一个 TypeScript 产品旁边跑 Python Agent 服务,那种摩擦是千刀万剐式的:一个所谓共享的类型包其实就是手抄的 interface、语言边界上一个序列化 bug 吃掉我一天、两条 CI 流水线各崩各的。把 Agent 挪进同一个 TS 代码库并没让它变聪明——它让整件事从两个项目变成一个项目,而这件事的分量比我预想的重。
Mastra 是什么
Mastra 是一个 TypeScript 框架,把生产级 Agent 所需的一切打包成一个有主见的包:
| 原语 | 做什么 |
|---|---|
| Agents | 带工具和记忆的自主 LLM actor |
| Workflows | 带分支和状态的多步编排 |
| Tools | Agent 可调用的类型化函数定义 |
| RAG | 文档导入、embedding、检索流水线 |
| Memory | 对话历史和长期知识 |
| Evals | Agent 输出的自动质量评估 |
| Telemetry | trace、成本、延迟监控 |
关键数据:
| 指标 | 数值 |
|---|---|
| GitHub stars | 22K+ |
| OpenRank(2026年5月) | 120.53 |
| 活跃贡献者 | 93 |
| npm 周下载量 | 300,000+ |
| 融资 | $13M(YC W25) |
| 创建者 | Gatsby.js 团队 |
| 许可证 | Apache 2.0 |
有主见的设计
Mastra 在 LangChain 灵活的地方有主见。这是刻意的 trade-off。它不给你 50 种配置 retriever 的方式,而是给一条集成好的路径和好的默认值。
import { Agent } from '@mastra/core';
const codeReviewer = new Agent({
name: 'code-reviewer',
model: 'anthropic:claude-sonnet-4',
instructions: `You review pull requests for correctness,
security issues, and performance problems.`,
tools: [readFile, analyzeComplexity, checkDependencies],
memory: { type: 'window', size: 20 },
});
const result = await codeReviewer.run({
input: 'Review this PR diff: ...',
});
一切有类型。tools 有类型化 input/output schema。Agent.run() 返回类型化响应。IDE 从头到尾给你自动补全。没有 any,没有运行时惊喜。
模型路由:1000+ 模型,一个接口
Mastra 包含统一模型路由,连接任何 LLM 供应商:
const agent = new Agent({
model: 'openai:gpt-4o', // 或
// model: 'anthropic:claude-sonnet-4', // 或
// model: 'google:gemini-2.0-flash', // 或
// model: 'ollama:llama3.3', // 本地
});
底层用 Vercel AI SDK 的模型抽象,通过一致接口访问 1000+ 模型。本地用 Ollama 开发,GPT-4o-mini 测试,Claude 部署——同样的 Agent 代码。
工作流:超越简单循环
import { Workflow, Step } from '@mastra/core';
const prReviewWorkflow = new Workflow({
name: 'pr-review',
steps: [
new Step({
id: 'fetch-diff',
execute: async (ctx) => {
const diff = await fetchGitHubDiff(ctx.input.prUrl);
return { diff };
},
}),
new Step({
id: 'review',
execute: async (ctx) => {
return await codeReviewer.run({
input: `Review:\n${ctx.steps['fetch-diff'].output.diff}`,
});
},
}),
new Step({
id: 'post-comment',
execute: async (ctx) => {
await postGitHubComment(ctx.input.prUrl, ctx.steps['review'].output);
},
}),
],
});
工作流支持分支、并行执行、重试和条件逻辑。是 LangGraph 有状态图的 TypeScript 等价物——但用原生 TS 类型而不是 Python TypedDict。
横向对比
| 维度 | Mastra | LangGraph | CrewAI |
|---|---|---|---|
| 语言 | TypeScript | Python(+ JS) | Python |
| 类型 | 完整原生 TS 类型 | TypedDict | Pydantic |
| 框架集成 | Next.js, Express, Hono | FastAPI, Flask | 独立 |
| Agent 范式 | 单 Agent + 工作流 | 图状态机 | 角色制 crew |
| 内置 RAG | ✅ | 通过 LangChain | 通过工具 |
| 内置 Evals | ✅ | 通过 LangSmith | 手动 |
| 成熟度 | 6 个月(v1.0 2026年1月) | 2+ 年 | 1.5 年 |
| 社区 | 快速增长(22K stars) | 最大(105K+) | 中等(45K+) |
选 Mastra:技术栈是 TypeScript/JavaScript;想要开箱即用的全套(不想拼装);在意跨 Agent 代码的类型安全;部署在 Vercel、Cloudflare Workers 或 Node.js。
选 LangGraph:需要最经验证的选项和最大社区;团队 Python 优先;需要最高级的有状态编排功能。
服务器集成
Mastra 不需要自己的服务器——跑在你现有的里面:
// Next.js API route
import { codeReviewer } from '@/agents/code-reviewer';
export async function POST(req: Request) {
const { prUrl } = await req.json();
const review = await codeReviewer.run({ input: `Review PR: ${prUrl}` });
return Response.json(review);
}
这是对全栈 TS 团队相比 Python 框架的杀手优势。Agent 只是你应用里的另一个模块——同样的部署、监控、错误处理。
Gatsby 基因
Mastra 团队的背景很重要。他们建了 Gatsby.js——最成功的开发者体验导向框架之一。这个 DNA 体现在 Mastra 设计中:
- 优秀的开发者体验(自动补全、错误信息、文档)
- 约定优于配置(合理默认值,需要时有逃生舱)
- 插件架构(扩展不 fork)
- 关注”成功之坑”——让正确的事容易做,错误的事难做
和 LangChain 的方式(最大灵活性,自己拼装)不同,更接近 Rails 或 Next.js 的感觉:有主见、高产出、文档好。
FAQ
Mastra 生产就绪了吗?
v1.0,300K+ 周下载量。标准 Agent 工作负载生产就绪。生态比 LangChain 年轻,第三方集成少些。但核心功能(agents、tools、workflows、RAG)稳固。
能用自托管模型吗?
可以。任何 OpenAI 兼容端点——指向 vLLM、SGLang 或 Ollama。模型路由处理转换。
Mastra 怎么处理代码执行/沙箱?
不内置沙箱。Agent 需要执行代码时,通过 tool 定义对接沙箱服务(SandBase、E2B、Modal)。Agent 调 tool,tool 在沙箱跑代码,结果返回。
支持 Cloudflare Workers / edge 吗?
部分支持。简单 agent 和 tool 能跑在 edge runtime。有数据库状态的重工作流需要 Node.js 或服务器环境。团队在改进 edge 支持。
记忆怎么工作?
窗口缓冲(最近 N 条消息)内置。长期记忆连向量存储(Pinecone、Qdrant、Elasticsearch)通过 RAG 原语。记忆按 Agent 隔离,跨对话持久化。
核心要点
- Mastra 是 Gatsby 团队的 TypeScript 优先 Agent 框架,YC $13M 背书。技术栈是 JS/TS 的话,它是 Python 优先替代品的自然选择。
- 把 agents、workflows、tools、RAG、memory、evals、telemetry 打包成一个类型化包——无需组装。
- 模型路由通过一个接口连 1000+ 模型。本地开发,部署到任何供应商。
- 对比 LangGraph:更年轻但增长快,对 TS 团队 DX 更好,复杂边界场景验证少些。
- 跑在你现有的 Node.js/Next.js/Hono 应用里——不用单独部署服务。


