在人工智能技术日新月异的当下,AI 应用如雨后春笋般不断涌现。然而,构建这类应用往往面临诸多挑战,如不同的模型整合、智能交互逻辑的设计、RAG 的设计等,从零开始构建往往需要耗费不少成本。Mastra,作为一个快速开发构建 AI 应用的框架,为开发者们提供了新的解决方案。
简介
Mastra 是一个用于快速构建 AI 应用的 TypeScript 框架,代码仓库位于
https://github.com/mastra-ai/mastra 。其旨在为开发者提供构建 AI 应用所需的基础组件,助力快速搭建各类 AI 应用及功能。
Mastra 包含以下主要的特色功能和模块:
- 大语言模型 LLM:Mastra 借助 Vercel AI SDK,为开发者提供统一接口,可与 OpenAI、Anthropic、Google Gemini 等众多大语言模型供应商交互,开发者能灵活选择模型、供应商以及是否采用流式响应
- 智能体 Agent:在 Mastra 中,智能体为大语言模型提供工具、工作流和同步数据。智能体可以调用你自己的函数或第三方集成的 API,并访问你自己构建的知识库。
- 工具 Tool:Mastra 的工具是带有类型的函数,由代理或工作流执行,内置集成访问和参数验证功能。每个工具都有用来定义输入的模式、实现逻辑的执行函数,以及访问已配置集成的能力。
- 工作流 Workflow:Mastra 的工作流是基于图的状态机,支持循环、逻辑分支、用户输入等待、其他工作流的嵌入、错误处理、重试、解析等复杂功能。工作流既可以通过代码构建,也能使用可视化编辑器操作,并且每个工作流步骤都内置 OpenTelemetry 进行跟踪。
- 检索增强生成 RAG:RAG 是一种采用特定查询技术的 ETL(提取、转换、加载)管道,这些技术包括分块、嵌入和向量搜索。
- 集成 Integration:在 Mastra 中,可以把第三方服务自动生成的、类型安全的 API 客户端,用作智能体的工具,或在工作流中使用。
- 评估 Eval:Mastra 提供了自动评估指标,使用模型评分以及基于规则和统计的方法,来评估大语言模型的输出,每次评估都会返回一个 0 到 1 之间的标准化分数,可进行记录和比较,也支持开发者自定义。
使用
开始使用 Mastra 前,首先需要确保环境有 Node.js v20.0+,并拥有 LLM 提供者所提供的 API Key,如 OpenAI, Anthropic 和 Google Gemini 等。
Mastra 最简单的使用方法,使使用 create-mastra 包,这个命令行工具能快速开始构建 Mastra 应用。使用 npx 安装运行:
1 | npx create-mastra@latest |
运行后,会出现以下的安装提示:
1 | What do you want to name your project? my-mastra-app |
在完成了配置项的选择后,create-mastra 会完成项目的设置,安装依赖并配置所选择的组件和 LLM 提供者。LLM API Key 可以配置在 .env 文件中:
1 | OPENAI_API_KEY=<your-openai-key> |
create-mastra 也支持直接使用命令行选项运行:
1 | npx create-mastra@latest --components agents,tools --llm openai --example |
除了 create-mastra 工具外,Mastra 也支持手动安装。首先创建一个文件夹:
1 | mkdir hello-mastra |
然后,初始化一个 TypeScript 项目,并安装 mastra/core 依赖:
1 | npm init -y |
完成 LLM API Key 的配置后,首先创建一个工具 Tool:
1 | mkdir -p src/mastra/tools && touch src/mastra/tools/weather-tool.ts |
然后往其中添加工具的代码:
1 | export const weatherTool = createTool({ |
创建完工具后,创建一个 Agent:
1 | mkdir -p src/mastra/agents && touch src/mastra/agents/weather.ts |
填写以下代码:
1 | import { openai } from "@ai-sdk/openai"; |
在其中提供了这个 Agent 的任务,和使用的模型。最后进行 Agent 的注册:
1 | import { Mastra } from "@mastra/core"; |
总结
Mastra 作为一个开源的 TypeScript 框架,为 AI 应用开发带来了极大的便利。其整合了多种关键功能,降低了开发门槛,提升了开发效率,无论是对经验丰富的开发者,还是刚涉足 AI 领域的新手,都具有很高的价值。
Mastra 能在诸多 AI 应用开发领域中得到应用,加速 AI 应用构建。在智能客服领域,利用其代理功能和工作流机制,能打造出高效、智能的客服机器人,快速响应用户问题并提供准确解答;在智能写作辅助方面,借助 RAG 功能,为写作工具提供丰富的知识支持,帮助创作者生成更优质的内容;在数据分析与处理领域,通过调用正好各类工具和集成第三方服务,能实现数据的自动化处理和分析。