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;
})
返回 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
另请参阅