项目简介

Mastra是一个现代化的TypeScript框架,专为开发AI驱动的应用程序和智能体设计。它集成了模型路由、智能体、工作流、上下文管理、人机协作等核心功能,能够从原型快速迭代到生产级应用,并支持作为独立服务器部署或集成到现有前端/后端框架中。

主要功能点

  • 模型路由: 通过统一接口连接超过40种LLM提供商(如OpenAI, Anthropic, Gemini)。
  • 智能体 (Agents): 构建能够理解目标、选择工具、自主推理并迭代解决开放式任务的AI智能体。
  • 工作流 (Workflows): 使用直观的图式工作流引擎,通过'.then()', '.branch()', '.parallel()'等操作编排复杂的、多步骤的业务流程。
  • 上下文管理: 为智能体提供对话历史、从外部数据源(API、数据库、文件)检索信息,并支持工作记忆和语义记忆,确保智能体行为连贯。
  • 人机协作 (Human-in-the-loop): 暂停智能体或工作流,等待用户输入或批准后继续执行。
  • 工具集成 (Tools): 允许LLM调用外部功能,扩展AI应用的能力。
  • 可观测性与评估: 内置评估和可观测性工具,帮助开发者持续监控、衡量和改进AI产品。

安装步骤

  1. 初始化项目: 推荐使用Mastra CLI进行快速开始。
    npm create mastra@latest
    按照提示选择项目类型和配置。
  2. 手动安装 (备选): 如果您希望手动设置,可以访问官方文档的安装指南获取详细步骤。

服务器配置 (用于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)

  1. 定义工作流或智能体: 在您的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 },
      // ...其他配置
    });
  2. 部署和运行: 根据您的部署需求,将Mastra应用作为Node.js服务、Next.js API路由或独立服务器部署。
  3. 通过客户端交互: 您的LLM客户端(或IDE扩展)可以通过JSON-RPC协议连接到Mastra服务器,并调用注册的智能体和工作流,获取上下文信息或执行工具。例如,一个客户端可以请求执行 'my-ai-assistant' 智能体来回答用户问题。

信息

分类

AI与计算