跳至主要內容

Agent.getMetadata()

.getMetadata() 方法會取得為 Agent 設定的 metadata;若設定為函式,也會解析函式。您可以使用 metadata 在 client 中將 Agent 分類,而不必把這項資料編碼進 Agent ID 或名稱。

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

await agent.getMetadata()

參數
「參數」的直接連結

options?:

{ requestContext?: RequestContext }
= {}
包含 request context 的選用設定物件。
{ requestContext?: RequestContext }

requestContext?:

RequestContext
傳給動態 metadata 函式的 Request Context。metadata 為靜態值時會忽略此參數。

回傳值
「回傳值」的直接連結

metadata:

Record<string, unknown> | Promise<Record<string, unknown>>
為 Agent 設定的 metadata;若未設定則為 undefined。可能直接回傳;若 metadata 定義為函式,則回傳解析為 metadata 的 promise。

延伸使用範例
「延伸使用範例」的直接連結

靜態 metadata:

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()

從 request context 解析的動態 metadata:

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 })