跳至主要內容

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