跳到主要内容

Agent 概览

Agent 使用 LLM 和 Tool 解决开放式任务。它们会推理目标,并决定使用哪些 Tool。它们会保留对话记忆并持续迭代,直到模型给出最终答案或满足可选的停止条件。

Agent 会生成结构化响应,你可以在 UI 中渲染这些响应或以编程方式处理。你可以直接使用 Agent,也可以将其组合到 Workflow 或多 Agent 系统中。

何时使用 Agent
何时使用 Agent的直接链接

当任务是开放式的,且无法预先确定具体步骤时,请使用 Agent。Agent 会决定调用哪些 Tool、循环多少次以及何时停止。你只需提供目标和约束,无需定义每个步骤。对于控制流明确、预先确定的多步骤流程,请改用 Workflow

📹 观看视频

观看 Mastra Agent 快速入门,快速了解如何创建和测试 Mastra Agent。

快速开始
快速开始的直接链接

@mastra/core 实例化 Agent 类并提供必填属性,以创建 Agent:

src/mastra/agents/test-agent.ts
import { Agent } from '@mastra/core/agent'

export const testAgent = new Agent({
id: 'test-agent',
name: 'Test Agent',
instructions: 'You are a helpful assistant.',
model: 'openai/gpt-5.6-sol',
})

instructions 定义 Agent 的行为、个性和能力。它们是系统级提示词,用于确立 Agent 的核心身份和专长。model 使用 Mastra 的模型路由器,以 'provider/model-name' 格式指定。

要让整个应用都能使用该 Agent,请将其注册到 Mastra 实例(通常位于 src/mastra/index.ts)中:

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { testAgent } from './agents/test-agent'

export const mastra = new Mastra({
agents: { testAgent },
})

注册后,可以从 Workflow、Tool 或其他 Agent 调用它,并可访问内存、日志和可观测性功能等共享资源。

有关可用属性和配置的更多信息,请参阅 Agent 参考

提示

使用 Studio 通过不同消息测试 Agent,检查 Tool 调用和响应,并调试 Agent 行为。

使用 Agent
使用 Agent的直接链接

注册后,使用 mastra.getAgentById() 获取 Agent。调用 .generate() 获得完整响应,或调用 .stream() 实时传输 token。你可以从 Workflow 步骤ToolMastra Client、路由处理程序、服务器适配器或命令行调用 Agent。请参阅指南,了解如何在所选框架中使用 Agent。

从 Mastra 实例引用 Agent 时,请使用 mastra.getAgentById(),以确保它能访问实例级存储、日志和 Agent 注册表等共享服务。直接导入的 Agent 仍可使用自己的本地配置运行,但无法访问这些共享服务。

在所有 Tool 调用和步骤完成后返回完整响应。结果包括 texttoolCallstoolResultssteps 和 token usage 统计信息。

有关响应结构(包括 Tool 调用和 Tool 结果的 payload),请参阅 Agent.generate() 参考

const agent = mastra.getAgentById('test-agent')
const response = await agent.generate('Help me organize my day')
console.log(response.text)

扩展 Agent
扩展 Agent的直接链接

Agent 运行后,可使用下表找到接下来要执行的操作所对应的页面:

目标从这里开始
为 Agent 提供调用外部 API 或服务的 ToolTool
跨对话保留上下文和偏好Memory
返回类型化对象,而不是纯文本结构化输出
人机协同:暂停执行并等待人工批准批准
构建多 Agent 网络Supervisor Agent
注册子 AgentTool
在生成前后拦截或转换消息Processor
保障 Agent 安全Guardrail
构建能够纠正自身工作的 AgentRubric scorer
根据请求上下文切换指令或模型动态配置
添加语音转文本或文本转语音语音
连接 Slack、Discord 或 TelegramChannel

多 Agent 系统
多 Agent 系统的直接链接

多 Agent 系统使用多个 Agent 解决对单个 Agent 而言过于宽泛或专业化的任务。你无需构建一个包含数十个 Tool 和冗长指令集的 Agent,而是可以将职责拆分给各个专用 Agent,再由协调者汇总结果。

阅读多 Agent 系统概念概览,了解如何在 Mastra 中应用不同模式。