メインコンテンツへ移動

networkRoute()

非推奨

Agent network は非推奨であり、今後のリリースで削除される予定です。代わりに、agent.stream() または agent.generate() とともに supervisor agents を使用してください。アップグレード方法については、移行ガイドを参照してください。

AI SDK 形式を使用してネットワーク実行をストリーミングするためのネットワークルートハンドラーを作成します。この関数は、メッセージを受け取り、Agent network を実行し、AI SDK 互換形式でレスポンスをクライアントにストリーミングする HTTP POST エンドポイントを登録します。Agent network では、ルーティング Agent が他の Agent にタスクを委譲できます。カスタム API ルート内で使用する必要があります。

フレームワークに依存しないハンドラーが必要な場合は、handleNetworkStream() を使用してください。

networkRoute() では、既存の AI SDK v5 のデフォルト動作が維持されます。アプリが AI SDK v6 に対して型付けされている場合は、version: 'v6' を渡してください。

使用例
使用例への直接リンク

次の例では、ID が weatherAgent の Agent を使用するネットワークルートを /network エンドポイントに設定します。

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 の実行に渡すデフォルトオプション。instructions、Memory 設定、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',
},
},
}
},
}),
})