Loading...

文章背景图

Mastra:TypeScript 原生的 AI Agent 与工作流框架|部署与使用全指南

2026-10-27
0
- 字
- 分钟
|

Mastra:TypeScript 原生的 AI Agent 与工作流框架|部署与使用全指南

本文基于 Mastra 官方仓库 mastra-ai/mastra 撰写,核心包 @mastra/core 最新版本为 1.79.0(2026 年 10 月)。仓库约 29,000+ GitHub stars,主分支每日活跃更新(最近一次提交为 2026-10-26)。采用双许可:主体 Apache License 2.0,ee/ 目录为 Mastra Enterprise License(详见第十一章)。

Mastra 官方主视觉图

Mastra 是一个用 TypeScript 打造 AI 应用与 Agent 的全栈框架:模型路由(40+ 提供商)、Agent、图式工作流、记忆、RAG、评估(evals)、可观测性与本地开发服务器一应俱全,可以直接嵌入 React/Next.js/Node 应用,也可以作为独立 Server 部署到任意 Node.js 兼容环境。它由 Y Combinator W25 批次团队开发,让你从原型到生产全程使用一套现代 TypeScript 技术栈。

一、项目介绍与适用场景

Mastra 的核心思想是:把成熟的 AI 工程模式(Agent、workflow、RAG、memory、evals)做成 TypeScript 里"开箱即用"的组件,并用本地 dev server(mastra dev,内建 Studio 可视化界面)把"编写—调试—测试—部署"闭环跑通。

适用人群与场景:

人群

典型用法

TypeScript/Node 全栈工程师

在 Next.js、Vite+React、Express、Hono、Astro 等项目中内嵌 Agent 能力

AI 应用创业者

用 Agent + Workflow + Memory 快速做出客服、数据分析、内容自动化产品

需要确定性流程的团队

用 createWorkflow 编排多步骤流程(.then/.branch/.parallel),带人工审批(suspend/resume)

重视质量的团队

用 evals 与可观测性建立评测-迭代闭环

不适合的场景:

  • 需要 Python 生态(LangChain Python 生态库)的团队——Mastra 是 TypeScript 原生框架;

  • 纯推理批处理等不涉及 Agent/工作流的任务,直接调模型 SDK 更简单;

  • 极度排斥"框架"抽象、只想裸调模型 API 的小项目。

二、核心功能逐条拆解

  1. Model Routing 模型路由:通过统一接口接入 40+ 提供商(OpenAI、Anthropic、Gemini、Grok/xAI 等),Agent 的 model 直接写 'provider/model-name',切换模型不改业务代码,可用模型目录见 https://mastra.ai/models 。

  2. Agents:用 new Agent({ id, name, instructions, model, tools }) 定义自主 Agent;Agent 自主决定调用哪些工具、迭代多少轮,直到产出最终答案或满足停止条件。通过 agent.generate()(完整返回)或 agent.stream()(流式)调用。

  3. Workflows 图式工作流:createStep + createWorkflow 定义步骤与流程,支持 .then() 串联,以及 .branch()、.parallel()、.dowhile() 等控制流;步骤输入输出用 Zod schema 约束,可长期暂停(suspend)等待人工输入后再恢复。

  4. Human-in-the-loop:工作流可挂起(suspended 状态)等待用户输入或审批;借助 storage 记录执行快照,进程重启后仍可恢复现场。

  5. Memory 记忆:为 Agent 提供会话历史、线程(thread)、资源(resource)与工作记忆(working memory);可配置 LibSQL(本地文件库)、PostgreSQL、MongoDB、Upstash 等多种存储后端。

  6. RAG:从 API、数据库、文件等来源检索数据注入上下文,配套 vector store 与检索 API,构建知识问答类 Agent。

  7. MCP 支持:可以把 Mastra 项目中的 Agent、工具暴露为 Model Context Protocol Server,供 Claude、Cursor 等任意 MCP 客户端调用;也可在工具中接入外部 MCP Server。

  8. 可观测性(Observability):内置 traces、spans、metrics、logs 与 feedback 采集,便于追踪每次 Agent 调用;生产环境可路由到 ClickHouse/DuckDB 等 OLAP 后端。

  9. Evals 评估体系:对 Agent 输出打分、构建数据集(dataset)、跑实验(experiment)并对比不同模型/提示词的效果,形成"评测—迭代"闭环(官方提供完整的 build-an-eval-loop 指南)。

  10. Studio 本地可视化:mastra dev 启动本地开发服务器(Studio 界面),在浏览器中构建、测试、调试 Agent、Workflow 与工具,查看工具调用与响应细节。

  11. 多形态部署:mastra build 构建后可部署为独立 Server(内建 Hono 驱动)、集成进 Next.js/Astro 应用,或使用官方 deployer 一键部署到 Vercel、Netlify、Cloudflare;也可用 Mastra Cloud 平台托管。

  12. 框架集成:官方提供 Next.js、React+Vite、Astro、Express、SvelteKit、Hono 等集成指南,前端可搭配 Vercel AI SDK UI / CopilotKit 渲染对话界面。

三、全套官方链接

资源

地址

GitHub 仓库

https://github.com/mastra-ai/mastra

官网

https://mastra.ai

官方文档

https://mastra.ai/docs

安装指南

https://mastra.ai/docs/getting-started/installation

Agent 文档

https://mastra.ai/docs/agents/overview

Workflow 文档

https://mastra.ai/docs/workflows/overview

Storage 文档

https://mastra.ai/docs/storage

部署文档

https://mastra.ai/docs/deployment/overview

模型目录

https://mastra.ai/models

模板库

https://mastra.ai/templates

免费课程

https://mastra.ai/course

Discord 社区

https://discord.gg/mastra-ai

npm(core 包)

https://www.npmjs.com/package/@mastra/core

License 说明

https://github.com/mastra-ai/mastra/blob/main/LICENSE.md

官方未提供单独的"在线 Demo"站点;官方 YouTube 频道(https://youtube.com/@mastra-ai )与平台演示视频可作为可视化参考。

四、硬件与环境前置要求

项目

要求

说明

操作系统

Linux / macOS / Windows(WSL2 或原生)

开发环境三平台均可;生产建议 Linux

Node.js

v22.13.0 或更高(官方部署文档明确要求)

也可用 Bun / Deno 运行时;Cloudflare Workers 支持

包管理器

npm / pnpm / Yarn / Bun 任选

npm create mastra@latest 默认演示用 npm

CPU / 内存

开发:2 核 / 4 GB 起;生产:按流量 2 核 4 GB 起

本地 Studio + dev server 消耗很小

GPU

无

模型推理在云端提供商完成

磁盘

< 1 GB(node_modules 为主);LibSQL 本地库另计

持久化存储建议单独规划磁盘

网络

访问所选模型提供商 API(api.openai.com 等)

企业内网需配置出网代理

账号

所用模型提供商的 API Key(如 OPENAI_API_KEY、ANTHROPIC_API_KEY、XAI_API_KEY)

使用 Mastra Cloud 托管时另需其平台账号

可选

Docker(容器化部署);PostgreSQL / LibSQL(生产存储)

本地开发用 LibSQL 文件库即可,无需数据库服务器

五、多平台部署步骤

5.1 Windows

# 1. 安装 Node.js 22.13+(winget 或官网安装包)
winget install OpenJS.NodeJS.LTS

# 2. 创建 Mastra 项目
npm create mastra@latest

# 3. 按交互提示输入项目名与模型提供商(openai / anthropic / google / xai)

# 4. 进入项目并启动 dev server
cd my-mastra-app
npm run dev
# 打开 http://localhost:4111 使用 Studio

5.2 macOS / Linux

# 1. Node 22.13+(nvm 示例)
nvm install 22 && nvm use 22

# 2. 推荐方式:脚手架创建项目(会安装 Mastra skills、按需初始化 Git)
npm create mastra@latest
# pnpm / Yarn / Bun 同理:pnpm create mastra@latest 等
# 也可直接指定提供商:npm create mastra@latest my-app -- --llm openai

# 3. 进入项目并启动
cd my-mastra-app
npm run dev

5.3 手动集成到已有项目

# 在既有 Node/TS 项目中安装核心包
npm install @mastra/core @mastra/libsql
npm install -D mastra          # mastra CLI(dev/build/deploy 命令)
npm install zod                # schema 定义

按官方约定把代码放在 src/mastra/ 下(index.ts 导出 Mastra 实例),然后:

npx mastra dev    # 本地开发服务器 + Studio(默认 http://localhost:4111)
npx mastra build  # 生产构建

5.4 Docker 部署(独立 Server)

官方提供 mastra build 产出可部署的 Node Server(内建 Hono),容器化方式如下(官方部署文档模式):

FROM node:22-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build       # 内部执行 mastra build
EXPOSE 4111
CMD ["node", ".mastra/output/index.mjs"]

具体构建产物路径与启动入口以 mastra build 的官方输出与 https://mastra.ai/docs/deployment/mastra-server 为准。

docker build -t my-mastra-app .
docker run -d -p 4111:4111 --env-file .env --name mastra-app my-mastra-app

5.5 部署到云平台

# Vercel(官方内置 deployer)
npx mastra deploy vercel
# Cloudflare
npx mastra deploy cloudflare
# Netlify
npx mastra deploy netlify

官方还支持 AWS(Bedrock AgentCore、EC2、Lambda)、Azure App Services、DigitalOcean、Kubernetes(含 Helm)、Render、Neon、Inngest(workflow runner)、Temporal 等,集成指南见 https://mastra.ai/integrations 。注意:云 Serverless 平台部署时必须配置持久化 storage(见第六章),默认内存存储重启即丢。

5.6 源码运行仓库本身(参与开发)

git clone https://github.com/mastra-ai/mastra.git
cd mastra
# 参考仓库 DEVELOPMENT.md 安装依赖并运行测试

Mastra 的 PR 仅限协作者提交,普通贡献者通过高质量 issue 参与即可。

六、配置文件全部参数解释

Mastra 的"配置"主要是 TypeScript 代码中的 Mastra 实例与环境变量,没有单一 YAML/JSON 配置文件。

6.1 Mastra 实例关键配置

配置项

默认值

说明

agents

无

注册 Agent,如 { testAgent },之后用 mastra.getAgentById('testAgent') 获取(推荐,享受共享服务与类型推断)

workflows

无

注册 Workflow,之后 mastra.getWorkflow('testWorkflow')

storage

内存存储(进程退出即丢)

持久化层:memory、workflow 快照、observability、evals、schedules 等域的数据

memory(Agent 级)

未配置

在 Agent 上挂 new Memory({ storage }),仅覆盖该 Agent 的记忆数据

logger

默认日志器

日志配置

observability

未配置

追踪/指标采集配置,可路由到专用后端

6.2 存储后端参数

后端

安装包

关键参数

适用

LibSQL(本地文件)

@mastra/libsql

url: 'file:./mastra.db'

本地开发首选,无需数据库服务器

PostgreSQL

@mastra/pg

connectionString: process.env.DATABASE_URL

生产推荐

其他

@mastra/* 对应包

见各 provider 文档

MongoDB、Upstash、ClickHouse、Cloudflare D1/KV、DuckDB、DynamoDB 等 20+

本地开发与 mastra dev 共用同一个库文件时,官方建议使用绝对路径(相对路径会因各进程工作目录不同而错开)。

6.3 环境变量

环境变量

必填

说明

OPENAI_API_KEY

用 OpenAI 时必填

OpenAI 平台 API Key

ANTHROPIC_API_KEY

用 Anthropic 时必填

Claude 系列模型 Key

XAI_API_KEY

用 Grok 时必填

xAI 提供商 Key

GOOGLE_GENERATIVE_AI_API_KEY

用 Gemini 时必填

Google 提供商 Key

DATABASE_URL

生产推荐

PostgreSQL 连接串(配合 @mastra/pg)

MASTRA_*(平台相关)

用 Mastra Cloud 时

以官方 Mastra Cloud 文档为准

Ollama 本地模型

用 Ollama 时

按官方模型路由文档配置本地端点(如 http://localhost:11434 ),无需云端 Key

6.4 完整示例:src/mastra/index.ts(带注释)

import { Mastra } from '@mastra/core'
import { LibSQLStore } from '@mastra/libsql'
import { testAgent } from './agents/test-agent'
import { testWorkflow } from './workflows/test-workflow'

export const mastra = new Mastra({
  // 注册 Agent 与 Workflow
  agents: { testAgent },
  workflows: { testWorkflow },

  // 持久化存储:本地用 LibSQL 文件库;生产换 PostgresStore
  // 注意:与 mastra dev 同库时使用绝对路径
  storage: new LibSQLStore({
    id: 'mastra-storage',
    url: 'file:/absolute/path/to/your/project/mastra.db',
  }),
})

生产环境(PostgreSQL):

import { PostgresStore } from '@mastra/pg'

export const mastra = new Mastra({
  storage: new PostgresStore({
    id: 'mastra-storage',
    connectionString: process.env.DATABASE_URL,
  }),
  // ...agents / workflows
})

还可使用 MastraCompositeStore 按"域"分流存储:例如默认走 LibSQL、workflows 域走 PostgreSQL、observability 域走 ClickHouse(见官方 composite storage 文档)。

七、启动、后台常驻、开机自启、改端口

7.1 前台启动

npm run dev          # 开发模式,启动 mastra dev(Studio 默认 http://localhost:4111)
npx mastra build     # 生产构建
npm run start        # 启动构建产物(以项目 package.json 实际脚本为准)

7.2 systemd 常驻 + 开机自启(Linux 生产)

# /etc/systemd/system/mastra-app.service
[Unit]
Description=Mastra App Server
After=network-online.target

[Service]
Type=simple
User=deploy
WorkingDirectory=/opt/mastra-app
EnvironmentFile=/opt/mastra-app/.env
ExecStart=/usr/bin/node .mastra/output/index.mjs
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mastra-app
journalctl -u mastra-app -f

7.3 Supervisor / PM2

# PM2(Node 生态常用)
npm install -g pm2
pm2 start .mastra/output/index.mjs --name mastra-app
pm2 startup && pm2 save      # 开机自启

7.4 Windows

原生开发用 npm run dev 即可;常驻可用"任务计划程序"设置开机运行,或用 NSSM 将 Node 进程包装为 Windows 服务;生产建议 WSL2 + systemd(同 7.2)。

7.5 Docker Compose 自启

services:
  mastra-app:
    build: .
    restart: unless-stopped
    ports:
      - "4111:4111"
    env_file: .env
  postgres:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata:

7.6 改端口与反向代理

mastra dev 默认端口为 4111(Studio 访问地址 http://localhost:4111 ),端口参数以 npx mastra dev --help 的官方输出为准。生产 Server 的端口由部署环境(如 PORT)控制,反代示例:

server {
  listen 443 ssl;
  server_name mastra.example.com;
  location / {
    proxy_pass http://127.0.0.1:4111;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;      # 支持流式/WebSocket
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
  }
}

八、功能实操教程

8.1 定义并测试第一个 Agent

src/mastra/agents/test-agent.ts:

import { Agent } from '@mastra/core/agent'

export const testAgent = new Agent({
  id: 'test-agent',
  name: 'Test Agent',
  instructions: 'You are a helpful assistant.',
  model: 'openai/gpt-4o',   // 格式:'provider/model-name',模型目录见 mastra.ai/models
})

注册后在代码中调用:

const agent = mastra.getAgentById('test-agent')
const response = await agent.generate('Help me organize my day')
console.log(response.text)

或在 Studio(http://localhost:4111 )中直接对话测试,并查看工具调用与响应详情。

8.2 接入不同模型提供商

// Anthropic(需 ANTHROPIC_API_KEY)
model: 'anthropic/claude-sonnet-4-5'
// Grok / xAI(需 XAI_API_KEY)
model: 'xai/grok-3'
// Ollama 本地模型(无需云端 Key,按模型路由文档配置本地端点)
// Google Gemini(需 GOOGLE_GENERATIVE_AI_API_KEY)
model: 'google/gemini-2.5-pro'

'provider/model-name' 由 Mastra model router 解析,换模型只改这一行。

8.3 创建 Workflow(createStep + createWorkflow)

import { createWorkflow, createStep } from '@mastra/core/workflows'
import { z } from 'zod'

const step1 = createStep({
  id: 'step-1',
  inputSchema: z.object({ message: z.string() }),
  outputSchema: z.object({ formatted: z.string() }),
  execute: async ({ inputData }) => ({
    formatted: inputData.message.toUpperCase(),
  }),
})

export const testWorkflow = createWorkflow({
  id: 'test-workflow',
  inputSchema: z.object({ message: z.string() }),
  outputSchema: z.object({ output: z.string() }),
})
  .then(step1)     // 串联;还可用 .branch()/.parallel()/.dowhile() 等控制流
  .commit()        // 结束定义

// 运行
const run = await testWorkflow.createRun()
const result = await run.start({ inputData: { message: 'Hello world' } })
if (result.status === 'success') console.log(result.result)

8.4 持久化 Memory(LibSQL → Postgres)

// 本地:LibSQL 文件库
import { LibSQLStore } from '@mastra/libsql'
storage: new LibSQLStore({ id: 's', url: 'file:./mastra.db' })

// 生产:PostgreSQL
import { PostgresStore } from '@mastra/pg'
storage: new PostgresStore({ id: 's', connectionString: process.env.DATABASE_URL })

配置后 Agent 的消息历史、线程与工作记忆在重启后依然保留,Studio 也能跨会话查看状态。

8.5 给 Agent 加工具

import { createTool } from '@mastra/core/tools'
import { z } from 'zod'

const weatherTool = createTool({
  id: 'get-weather',
  description: 'Get current weather for a city',
  inputSchema: z.object({ city: z.string() }),
  outputSchema: z.object({ temp: z.number() }),
  execute: async ({ inputData }) => ({ temp: 25 }),   // 替换为真实 API 调用
})

// 在 Agent 中挂载
new Agent({ id: 'a', name: 'A', instructions: '...', model: 'openai/gpt-4o', tools: { weatherTool } })

Agent 会在需要时自主调用该工具;工具内部也可以调用其他 Agent(Agents-as-tools)。

8.6 用 Evals 建立评测闭环

在 Mastra 平台/Studio 中:创建数据集 → 运行实验 → 对比模型表现。官方 eval-loop 指南的典型流程:

  1. 把生产 trace 添加进 dataset(见下图 1);

  2. 发起实验(run experiment),指定模型与评分器(见下图 2);

  3. 查看实验结果与判定原因(见下图 3);

  4. 横向对比不同模型实验的得分(见下图 4),据此换模型或改提示词。

把生产 trace 添加到评测数据集(官方文档截图)
发起评测实验的对话框(官方文档截图)
实验结果列表(官方文档截图)
不同模型实验得分对比(官方文档截图)

8.7 Client SDK 调用(前后端分离)

前端/其他服务可通过 Mastra Client 调用已注册的 Agent 与 Workflow(见官方 @mastra/client-js 文档),或在 Next.js route handler 中直接 mastra.getAgentById('x').generate(...),配合 Vercel AI SDK UI 流式渲染对话。

九、全套报错故障排查

#

现象

原因

解决

1

mastra dev 启动报 Node 版本错误

Node < 22.13.0

升级 Node(nvm install 22),官方要求 v22.13.0+

2

SyntaxError: Cannot use import statement outside a module

项目未按 ESM/TS 配置

使用 npm create mastra@latest 生成的模板 tsconfig/package.json;不要把 src/mastra 代码放进 CommonJS 环境

3

模型调用返回 401 Unauthorized

API Key 缺失/错误,或 .env 未加载

检查 OPENAI_API_KEY 等变量;确认 dotenv 已加载;Key 在提供商控制台重新生成

4

模型调用 403/429

无权限或限流

检查账号配额与计费;更换模型或降低并发

5

model: 'openai/xxx' 报模型不存在

模型名拼写错误或提供商不支持

以 https://mastra.ai/models 目录中的准确 ID 为准

6

Studio 打不开 / 端口占用

4111 被其他进程占用

释放端口或按 mastra dev --help 修改端口参数

7

重启后对话记忆丢失

使用了默认内存存储

配置 LibSQL/Postgres 持久化 storage(见 8.4)

8

mastra dev 与应用进程看不到同一份数据

LibSQL 相对路径按各自工作目录解析

改用绝对路径 file:/abs/path/mastra.db(官方明确建议)

9

Workflow suspend 后无法恢复

无持久化存储,快照丢失

必须配置 storage 才能跨重启挂起/恢复;Cloudflare/Vercel 等 serverless 环境尤其需要

10

npm create mastra 卡在安装

网络问题/镜像源慢

切换 npm registry 镜像或使用代理

11

Cloudflare 部署后运行报错

使用了 Node 专属 API 或无持久化

按官方 Cloudflare 集成指南适配(使用 D1/KV 等托管存储)

12

Vercel Serverless 冷启动慢/超时

函数内存与时长限制

提高函数配置;长任务改用独立 Server 部署或 Inngest workflow runner

13

pnpm monorepo 下找不到 src/mastra

工作区路径配置问题

参考官方 monorepo 部署文档调整目录与构建配置

14

工具不被 Agent 调用

工具描述不清晰或未注册到 Agent

补充 description;确认 tools 挂载在对应 Agent 上;在 Studio 中调试

15

内存占用持续升高

长对话上下文累积 / 默认存储不支持多进程

生产使用 Postgres 等外部存储并多进程部署;控制记忆窗口

16

mastra build 失败

TS 类型错误或 schema 不匹配

按报错修复 Zod schema 与类型;本地先 tsc --noEmit 自查

17

evals 结果与线上表现不一致

数据集覆盖不足

从生产 trace 持续补充 dataset(见 8.6),建立回归评测

18

Ollama 本地模型连不上

端点未启动或未配置

先 ollama serve,并按官方模型路由文档配置本地 provider 端点

十、升级、回滚与卸载

10.1 版本查看

npm ls @mastra/core mastra
npx mastra --version       # CLI 版本(以官方命令输出为准)

10.2 升级

# 升级核心包与 CLI
npm install @mastra/core@latest @mastra/libsql@latest
npm install -D mastra@latest

# 脚手架项目可用官方文档指引的 npx 命令更新依赖
npx npm-check-updates -u '@mastra/*' && npm install

升级后运行本地测试并在 Studio 中回归验证 Agent/Workflow 行为。

10.3 回滚到指定版本

npm install @mastra/core@1.78.0    # 回到指定版本
git checkout <上一个正常 tag/commit> # 项目代码配合回滚

生产部署建议锁定 package-lock.json 并在 CI 中固定版本,回滚即重新部署上一个构建产物。

10.4 完整卸载清单

# 1. 卸载 npm 依赖
npm uninstall @mastra/core @mastra/libsql mastra

# 2. 删除项目
rm -rf my-mastra-app

# 3. 清理本地数据
rm -f mastra.db            # LibSQL 本地库
docker compose down -v     # 若使用 Docker Compose,含 Postgres 卷

# 4. 清理环境变量与全局工具
# 从 .env / 系统环境中移除 OPENAI_API_KEY、DATABASE_URL 等
npm uninstall -g pm2       # 若安装了 PM2

十一、商用许可与合规风险提示

  • 双许可结构(以仓库 LICENSE.md 为准):仓库绝大部分代码采用 Apache License 2.0(Copyright (c) 2025 Kepler Software, Inc.),可自由商用、修改与分发,义务为保留版权与 NOTICE;任何名为 ee/ 的目录(如 packages/core/src/auth/ee/、@mastra/core/auth/ee、agent-builder ee/ 等)为 Mastra Enterprise License 的 source-available 代码——开发与测试可免费使用,生产使用需购买有效的企业许可。商用前务必核对你用到的模块是否位于 ee/ 目录。

  • 商标:"Mastra" 名称与 Logo 归 Kepler Software, Inc. 所有,二次分发产品不得使用官方品牌背书。

  • 模型 API 费用:Mastra 本身开源免费,但所有模型调用按 OpenAI/Anthropic/xAI/Google 等提供商的定价计费;evals 与高并发生产会显著放大 token 成本,建议设置用量告警。Mastra Cloud(托管 Server/Studio/可观测性)为平台付费服务,以官方定价为准。

  • 数据隐私与出网:Agent 调用会把 prompt 与上下文发送给你选择的模型提供商;可观测性数据(traces/logs)若启用云端采集,也会离开本机。涉及个人数据或行业合规(GDPR、金融、医疗)时,评估数据流向,必要时自建 Ollama 本地模型与自托管存储(Postgres 等)。

  • 生产环境风险:默认内存存储仅适合开发;生产必须配置持久化 storage 并启用备份。Agent 的自主行为(写邮件、删数据)应在 instructions 与工具权限上做护栏,配合 Human-in-the-loop(suspend/resume)对高风险写操作做人工审批。ee/ 目录的企业特性在未取得许可的情况下用于生产可能构成许可违约,部署前请逐项确认。

附录:命令速查

# ===== 初始化 =====
npm create mastra@latest                 # 脚手架创建项目
npm create mastra@latest my-app -- --llm openai   # 指定提供商
npm install @mastra/core @mastra/libsql  # 手动集成
npm install -D mastra zod

# ===== 开发 =====
npm run dev                              # 启动 mastra dev(Studio: http://localhost:4111)
npx mastra build                         # 生产构建
npx mastra deploy vercel                 # 部署到 Vercel(cloudflare / netlify 同理)

# ===== 调用 =====
# agent.generate('...') / agent.stream('...')        # 直接调用 Agent
# workflow.createRun() → run.start({ inputData })     # 运行 Workflow
# mastra.getAgentById('id') / mastra.getWorkflow('id')

# ===== 存储 =====
# 本地:LibSQLStore({ url: 'file:./mastra.db' })(与 dev 共用时用绝对路径)
# 生产:PostgresStore({ connectionString: process.env.DATABASE_URL })

# ===== 运维 =====
npm ls @mastra/core                      # 查看版本
npm install @mastra/core@latest          # 升级
npm install @mastra/core@1.78.0          # 回滚
docker compose up -d                     # 容器化部署(restart: unless-stopped 自启)

评论交流

文章目录