跳至主要內容

networkRoute()

已棄用

Agent 網路已棄用,並將在未來版本中移除。請改用監督 Agent 搭配 agent.stream()agent.generate()。請參閱遷移指南進行升級。

建立網路路由處理器,使用 AI SDK 格式串流網路執行作業。此函式會註冊一個 HTTP POST 端點,用來接收訊息、執行 Agent 網路,並以 AI SDK 相容格式將回應串流傳回使用者端。Agent 網路可讓路由 Agent 將任務委派給其他 Agent。你必須在自訂 API 路由中使用此函式。

如果需要與框架無關的處理器,請使用 handleNetworkStream()

networkRoute() 會保留現有的 AI SDK v5/預設行為。如果你的應用程式使用 AI SDK v6 型別,請傳入 version: 'v6'

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

以下範例說明如何在 /network 端點設定網路路由,並使用 ID 為 weatherAgent 的 Agent。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { networkRoute } from '@mastra/ai-sdk'

export const mastra = new Mastra({
server: {
apiRoutes: [
networkRoute({
path: '/network',
agent: 'weatherAgent',
}),
],
},
})

你也可以根據 agentId 使用執行階段定義的 Agent 路由。URL /network/weatherAgent 會解析為 ID 是 weatherAgent 的 Agent。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { networkRoute } from '@mastra/ai-sdk'

export const mastra = new Mastra({
server: {
apiRoutes: [
networkRoute({
path: '/network/:agentId',
}),
],
},
})

參數
「參數」的直接連結

version?:

'v5' | 'v6'
= 'v5'
選擇要輸出的 AI SDK 串流契約。省略此參數或傳入 'v5',即可使用現有的預設行為。當你的應用程式使用 AI SDK v6 回應輔助函式的型別時,請傳入 'v6'

path:

string
= '/network/:agentId'
路由路徑(例如 /network/network/:agentId)。若要使用動態 Agent 路由,請加入 :agentId

agent?:

string
此網路路由所使用的路由 Agent ID。如果路徑未包含 :agentId,則此參數為必要參數。

agentVersion?:

{ versionId: string } | { status?: 'draft' | 'published' }
選擇特定 Agent 版本。傳入 { versionId: '<id>' } 可指定確切版本;傳入 { status: 'draft' }{ status: 'published' } 則可依狀態解析。呼叫路由時,查詢參數 ?versionId=<id>?status=draft|published 的優先順序高於這個靜態值。必須設定 Editor

defaultOptions?:

AgentExecutionOptions
傳遞至 Agent 執行作業的預設選項。其中可包含指示、記憶體設定、maxSteps,以及其他執行設定。

其他設定
「其他設定」的直接連結

你可以使用 prepareSendMessagesRequest 自訂傳送至網路路由的請求,例如將其他設定傳遞給 Agent:

const { error, status, sendMessage, messages, regenerate, stop } = useChat({
transport: new DefaultChatTransport({
api: 'http://localhost:4111/network',
prepareSendMessagesRequest({ messages }) {
return {
body: {
messages,
// Pass memory config
memory: {
thread: 'user-1',
resource: 'user-1',
},
},
}
},
}),
})