跳至主要內容

Agent.getMetadata()

.getMetadata() 方法會擷取為 Agent 設定的中繼資料;如設定值為函式,則會先解析。你可以使用中繼資料在用戶端分類 Agent,毋須將該資料編碼至 Agent ID 或名稱中。

使用範例
使用範例 的直接連結

await agent.getMetadata()

參數
參數 的直接連結

options?:

{ requestContext?: RequestContext }
= {}
包含請求情境的選用設定物件。
{ requestContext?: RequestContext }

requestContext?:

RequestContext
傳送至動態中繼資料函式的 Request Context。中繼資料為靜態時會忽略此值。

傳回值
傳回值 的直接連結

metadata:

Record<string, unknown> | Promise<Record<string, unknown>>
為 Agent 設定的中繼資料;如未設定中繼資料,則為 undefined。如中繼資料定義為函式,可以直接傳回,亦可以是解析後傳回中繼資料的 promise。

進階使用範例
進階使用範例 的直接連結

靜態中繼資料:

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

export const supportAgent = new Agent({
id: 'support-agent',
name: 'Support Agent',
instructions: 'You help customers with support requests.',
model: 'openai/gpt-5.6-sol',
metadata: { type: 'support' },
})

const metadata = supportAgent.getMetadata()

從請求情境解析的動態中繼資料:

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

export const supportAgent = new Agent({
id: 'support-agent',
name: 'Support Agent',
instructions: 'You help customers with support requests.',
model: 'openai/gpt-5.6-sol',
metadata: ({ requestContext }) => ({
type: 'support',
tenant: requestContext.get('tenant'),
}),
})

const metadata = await supportAgent.getMetadata({ requestContext })