跳至主要內容

Agents 概覽

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 使用 'provider/model-name' 格式,並透過 Mastra 的模型路由器指定。

如要讓整個應用程式都可以使用 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 提供 Tool,以調用外部 API 或服務Tool
跨對話保留上下文和偏好設定記憶
傳回類型化物件,而非純文字結構化輸出
Human-in-the-loop:暫停執行並等候人工批准批准
建立多 Agent 網絡Supervisor Agent
註冊子 AgentTool
在生成前後攔截或轉換訊息Processor
確保 Agent 安全Guardrail
建立能修正自身工作的 AgentRubric scorer
根據請求上下文切換指令或模型動態設定
加入語音轉文字或文字轉語音語音
連接 Slack、Discord 或 TelegramChannel

多 Agent 系統
多 Agent 系統 的直接連結

多 Agent 系統會使用多個 Agent,解決對單一 Agent 而言範圍過廣或過於專門的任務。與其建立一個配備數十個 Tool 和冗長指令集的 Agent,你可以將職責分配給各個專注於特定工作的 Agent,再由協調 Agent 匯集結果。

請閱讀多 Agent 系統的概念概覽,了解如何運用 Mastra 實施不同模式。