项目简介
Mastra是一个现代化的TypeScript框架,专为开发AI驱动的应用程序和智能体设计。它集成了模型路由、智能体、工作流、上下文管理、人机协作等核心功能,能够从原型快速迭代到生产级应用,并支持作为独立服务器部署或集成到现有前端/后端框架中。
主要功能点
- 模型路由: 通过统一接口连接超过40种LLM提供商(如OpenAI, Anthropic, Gemini)。
- 智能体 (Agents): 构建能够理解目标、选择工具、自主推理并迭代解决开放式任务的AI智能体。
- 工作流 (Workflows): 使用直观的图式工作流引擎,通过'.then()', '.branch()', '.parallel()'等操作编排复杂的、多步骤的业务流程。
- 上下文管理: 为智能体提供对话历史、从外部数据源(API、数据库、文件)检索信息,并支持工作记忆和语义记忆,确保智能体行为连贯。
- 人机协作 (Human-in-the-loop): 暂停智能体或工作流,等待用户输入或批准后继续执行。
- 工具集成 (Tools): 允许LLM调用外部功能,扩展AI应用的能力。
- 可观测性与评估: 内置评估和可观测性工具,帮助开发者持续监控、衡量和改进AI产品。
安装步骤
- 初始化项目: 推荐使用Mastra CLI进行快速开始。
按照提示选择项目类型和配置。npm create mastra@latest - 手动安装 (备选): 如果您希望手动设置,可以访问官方文档的安装指南获取详细步骤。
服务器配置 (用于MCP客户端)
Mastra服务器可以作为独立的后端运行,为MCP客户端提供服务。以下是一个MCP客户端可能需要的配置信息示例:
{ "server_name": "Mastra AI Server", "command": "npm", "args": ["start", "your-mastra-app.js"], "description": "连接到基于Mastra框架构建的AI服务后端。", "notes": "请将 'your-mastra-app.js' 替换为您的Mastra应用入口文件。确保您的Mastra应用已正确配置为监听来自MCP客户端的请求。" }
配置参数说明:
- 'server_name': 服务器在MCP客户端中显示的名称。
- 'command': 启动Mastra服务器的命令行指令。通常是 'node' 或 'npm'。
- 'args': 传递给 'command' 的参数列表。例如,'["start"]' 或 '["run", "dev"]'。
- 'description': 服务器的简要说明。
- 'notes': 针对用户的重要提示,例如如何找到正确的启动文件或确保服务器处于监听状态。
基本使用方法
Mastra的应用核心是定义和运行工作流 (Workflows) 和 智能体 (Agents)。
- 定义工作流或智能体: 在您的Mastra项目中,使用'createWorkflow'和'createStep'定义业务逻辑,或使用'Agent'类创建智能体。例如,一个简单的问答智能体:
// 假设您已配置好Mastra实例和LLM import { Agent, createTool, Mastra } from '@mastra/core'; import { z } from 'zod'; const searchTool = createTool({ id: 'webSearch', description: '在网络上搜索信息', inputSchema: z.object({ query: z.string() }), outputSchema: z.object({ results: z.array(z.string()) }), execute: async ({ context }) => { // 实际的搜索逻辑 return { results: ['搜索结果:${context.query} 的信息'] }; }, }); const myAgent = new Agent({ name: 'my-ai-assistant', instructions: '你是一个乐于助人的AI助手,可以回答问题并使用工具。', model: /* 配置您的LLM */, tools: { webSearch: searchTool }, }); // 在您的Mastra应用入口文件中注册智能体 const mastra = new Mastra({ agents: { 'my-ai-assistant': myAgent }, // ...其他配置 }); - 部署和运行: 根据您的部署需求,将Mastra应用作为Node.js服务、Next.js API路由或独立服务器部署。
- 通过客户端交互: 您的LLM客户端(或IDE扩展)可以通过JSON-RPC协议连接到Mastra服务器,并调用注册的智能体和工作流,获取上下文信息或执行工具。例如,一个客户端可以请求执行 'my-ai-assistant' 智能体来回答用户问题。
信息
分类
AI与计算