全面抛弃 Python?用 Mastra 与 Vercel AI SDK 直接 TypeScript 秒建商用级 Agent
大模型教程多半围绕 Python,但前端与全栈团队的主战场是 TypeScript。本文演示如何用 Mastra 与 Vercel AI SDK 在 Next.js 旁直接落地商用级 Agent,无需再维护一套 Python 虚拟环境。官方文档:Mastra 快速开始、AI SDK Agent 概览。相关:OpenClaw + Ollama 本地模型、没有 Mac 做 iOS 开发、Mac mini M4 大模型内存、Hermes Agent + Ollama。
披露说明:VpsGona 提供可选云 Mac 用于原生构建。Mastra 与 Vercel AI SDK 为独立项目。
国内团队常见痛点:npm 安装慢、需配置镜像;CI 只需 Node 20+ 即可与前端流水线统一,不必再为 Agent 单独维护 Python 镜像。
为何值得用 TypeScript 做 Agent
Agent 与 React UI 共用类型与工具链,可减少「后端 Python + 前端 TS」的双栈成本。Mastra 提供 Agent、工具、工作流、RAG、评测;Vercel AI SDK 6 的 ToolLoopAgent 用少量代码完成「模型 → 工具 → 再推理」循环。
可引用结论: Mastra 开发态 Studio 默认 localhost:4111;AI SDK 的 ToolLoopAgent 默认最多约 20 轮工具循环,生产环境务必用 stepCountIs(N) 限制。
Python 胶水栈 vs TypeScript 一体栈
| 维度 | 常见 Python Agent | Mastra + Vercel AI SDK |
|---|---|---|
| 维度 | 常见 Python Agent | Mastra + Vercel AI SDK |
| 运行时 | Python venv | Node {NODE_MIN}+(与 Next 一致) |
| 类型 | Pydantic 与前端割裂 | Zod 工具与 UI 共享 |
| 流式 UI | 自建 SSE | createAgentUIStreamResponse |
| 部署 | 容器为主 | Vercel / Node |
| 适合 | 数据科学/训练 | Web 全栈产品 |
选型建议: 以 Next.js 产品 为主选 TypeScript;仅当重度依赖 PyTorch 训练管线时再保留 Python。
Mastra 与 Vercel AI SDK 如何配合
Mastra: npm create mastra@latest 生成 src/mastra/,npm run dev 打开 Studio(端口 4111)。
AI SDK: 安装 ai、@ai-sdk/openai → 定义 ToolLoopAgent → 路由里 createAgentUIStreamResponse → 客户端 useChat。
可只用其一;或在 monorepo 用共享 Zod 定义工具,避免重复维护。
Mastra 上手(8 步)
- 准备 Node.js 20+ 与模型 API Key(如
OPENAI_API_KEY)。 npm create mastra@latest my-ts-agent cd my-ts-agent- 按向导选择模型提供商、示例 Agent、是否启用观测。
- 查看
src/mastra/index.ts、agents/、tools/。 - 配置
.env,勿提交密钥。 npm run dev,浏览器打开http://localhost:4111。- 修改 Agent 指令,参照示例新增 Zod 工具。
- 上线前配置 scorer、限制循环次数,按官方文档部署。
Next.js 集成 Vercel AI SDK(6 步)
- 已有 Next.js 15 + TypeScript 项目。
npm install ai @ai-sdk/openai zod- 新建
support-agent.ts,使用ToolLoopAgent与stopWhen: stepCountIs(12)。 app/api/chat/route.ts调用createAgentUIStreamResponse,设置maxDuration = 60。- 安装
@ai-sdk/react,页面使用useChat。 - 生产环境:限流、可观测性、危险工具加
needsApproval: true。
选型建议
- 独立 Agent 产品 + 工作流/评测: 首选 Mastra。
- 现有 SaaS 加一个 Agent 功能: 仅加 AI SDK 即可。
- 还要发 iOS: TS Agent 不能替代 Xcode,见 无 Mac 做 iOS。
- 只要本地模型: 见 OpenClaw + Ollama。
排错
工具循环停不下来
现象: 工具调用轮次过多、费用暴涨。
处理: 降低 stepCountIs 上限;优化工具描述;execute 返回明确错误。
Studio 无法访问 :4111
现象: npm run dev 失败。
处理: 确认 Node 版本、端口占用、.env 密钥。
常见问题
还要 Python 吗?
应用层不需要,Node 即可;训练管线可保留 Python。
Node 版本?
建议 Node 20+,开发与 CI 一致。
ToolLoopAgent 默认循环?
约 20 轮,请用 stepCountIs(N) 限制。
Mastra Studio 端口?
开发态多为 localhost:4111。
能用本地 Ollama 吗?
可通过 OpenAI 兼容端点;本地栈见 OpenClaw/Ollama 与 Hermes 指南。