跳到主要内容
非官方简体中文翻译,内容版权归 Mastra 所有,遵循 Apache-2.0 许可。

Agents

Agent 使用 LLM 和工具来解决开放式任务。它们会围绕目标进行推理,并决定使用哪些工具。配置记忆后,它们可以保留对话历史。它们会持续迭代,直到模型输出最终答案或满足可选的停止条件。

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

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

当任务属于开放式、且步骤无法预先确定时,请使用 Agent。Agent 会决定调用哪些工具、循环多少次以及何时停止。你只需提供目标和约束,而无需定义每个步骤。对于步骤固定、具有明确控制流的多步流程,请改用 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、工具或其他 Agent 都可以调用它,并且它可以访问记忆、日志和可观测性等共享资源。

访问 Agent 参考文档,了解更多可用属性和配置。

提示

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

使用 Agent Builder 通过浏览器创建和管理完整存储的 Agent,而无需在 TypeScript 中定义。

使用你的 Agent
使用你的 Agent的直接链接

注册后,使用 mastra.getAgentById() 获取 Agent。调用 .generate() 获得完整响应,或调用 .stream() 实时输出 token。你可以从 Workflow 步骤、工具、Mastra Client、路由处理器、服务端适配器或命令行调用 Agent。请参阅集成,在你的应用框架中使用 Agent。

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

在所有工具调用和步骤完成后返回完整响应。结果包含 text、toolCalls、toolResults、steps 和 token usage 统计。

查看 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 或服务工具
在多次对话之间保留上下文和偏好记忆
返回类型化对象而不是纯文本结构化输出
human-in-the-loop:暂停执行并等待人工批准human-in-the-loop
构建多 Agent 网络Supervisor Agent
注册子 Agent工具
在生成前后拦截或转换消息处理器
保护 Agent 安全护栏
构建能够自我修正的 AgentRubric Scorer
根据请求上下文切换 instructions 或模型动态配置
添加语音转文字或文字转语音语音
连接 Slack、Discord 或 Telegram渠道

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

多 Agent 系统使用多个 Agent 来解决单个 Agent 过于宽泛或过于专业化的任务。与其构建一个拥有数十个工具和冗长指令集的 Agent,不如将职责拆分给多个专注的 Agent,并由协调者汇总结果。

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

On this page