跳至主要內容

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