Agent 日报

Mastra 详解:TypeScript 优先的 AI Agent 框架

Cover image for 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带分支和状态的多步编排
ToolsAgent 可调用的类型化函数定义
RAG文档导入、embedding、检索流水线
Memory对话历史和长期知识
EvalsAgent 输出的自动质量评估
Telemetrytrace、成本、延迟监控

关键数据:

指标数值
GitHub stars22K+
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。

横向对比

维度MastraLangGraphCrewAI
语言TypeScriptPython(+ JS)Python
类型完整原生 TS 类型TypedDictPydantic
框架集成Next.js, Express, HonoFastAPI, 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 兼容端点——指向 vLLMSGLang 或 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 应用里——不用单独部署服务。

猜你喜欢