networkRoute()
建立網絡路由處理程式,使用 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',
},
},
}
},
}),
})