跳转到主要内容

概述

MastraAgent 封装了一个 Mastra Agent(来自 @mastra/core)并为 @ag-kit/server 流式传输 AG-UI 兼容的事件。提供一个 runnableFactory 函数,在调用时构造并返回一个 Mastra Agent。 主要功能:
  • 运行任何使用 @mastra/core 创建的 Mastra Agent
  • 流式传输 BaseEvent 类型(文本块、工具调用/结果)
  • 将客户端提供的工具从 agent.run(…) 转发到 Mastra

安装

pnpm add @ag-kit/agents @ag-kit/adapter-mastra @mastra/core @ai-sdk/openai-compatible @mastra/memory @mastra/libsql

导出

所有导出都可从 @ag-kit/adapter-mastra 获得: 导出:
  • MastraAgent – 用于 Mastra 集成的主要 agent 类

快速开始

import { MastraAgent } from "@ag-kit/adapter-mastra";
import { Agent } from "@mastra/core/agent";
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

function createAgenticChatAgent(): Agent {
  const openaiCompatible = createOpenAICompatible({
    name: "custom",
    baseURL: process.env.OPENAI_BASE_URL!,
    apiKey: process.env.OPENAI_API_KEY!,
    includeUsage: true,
  });
  return new Agent({
    name: "agentic-chat-agent",
    description: "A helpful AI assistant",
    model: openaiCompatible(process.env.OPENAI_MODEL!),
    instructions: "You are a helpful assistant.",
  });
}

export const agent = new MastraAgent({
  runnableFactory: () => createAgenticChatAgent(),
  name: "mastra-agent",
  description: "Mastra-backed agent",
});

服务器集成

import { run } from "@ag-kit/server";
import { agent } from "./agent";

run({ createAgent: () => ({ agent }) });

API

class MastraAgent

new MastraAgent(config: AgentConfig & {
  runnableFactory: () => Agent;
})
name
string
agent 的唯一标识符。
description
string
agent 的可读描述。
runnableFactory
() => Agent
必填
返回 Mastra Agent 实例的工厂函数。它将在运行时被调用以创建可运行对象。

方法

run()
run(input: RunAgentInput): Observable<BaseEvent>
执行底层 Mastra agent 并从 @ag-ui/client 发出 BaseEvent 值。
  • input – 包含 messages、runId、threadId、tools 等的 RunAgentInput
  • 返回 – Observable<BaseEvent>
注意:事件类型和语义与 LangGraph Agent 参考一致。

示例

  • Agentic chat (TS): 项目路径 typescript-sdk/packages/examples/agents/mastra/agentic-chat
  • Human-in-the-loop 工作流 (TS): 项目路径 typescript-sdk/packages/examples/agents/mastra/human-in-the-loop

另请参阅