networkRoute()
Les réseaux d’Agents sont obsolètes et seront supprimés dans une prochaine version. Utilisez plutôt des Agents superviseurs avec agent.stream() ou agent.generate(). Consultez le guide de migration pour effectuer la mise à niveau.
Crée un gestionnaire de route de réseau qui diffuse l’exécution d’un réseau au format AI SDK. Cette fonction enregistre un point de terminaison HTTP POST qui accepte des messages, exécute un réseau d’Agents et diffuse la réponse au client dans un format compatible avec AI SDK. Les réseaux d’Agents permettent à un Agent de routage de déléguer des tâches à d’autres Agents. Vous devez l’utiliser dans une route d’API personnalisée.
Utilisez handleNetworkStream() si vous avez besoin d’un gestionnaire indépendant du framework.
networkRoute() conserve le comportement par défaut existant d’AI SDK v5. Si votre application est typée pour AI SDK v6, transmettez version: 'v6'.
Exemple d’utilisationLien direct vers Exemple d’utilisation
Cet exemple montre comment configurer, sur le point de terminaison /network, une route de réseau qui utilise un Agent dont l’ID est weatherAgent.
import { Mastra } from '@mastra/core'
import { networkRoute } from '@mastra/ai-sdk'
export const mastra = new Mastra({
server: {
apiRoutes: [
networkRoute({
path: '/network',
agent: 'weatherAgent',
}),
],
},
})
Vous pouvez également utiliser un routage d’Agent défini au moment de l’exécution et fondé sur un agentId. L’URL /network/weatherAgent est alors résolue vers l’Agent dont l’ID est weatherAgent.
import { Mastra } from '@mastra/core'
import { networkRoute } from '@mastra/ai-sdk'
export const mastra = new Mastra({
server: {
apiRoutes: [
networkRoute({
path: '/network/:agentId',
}),
],
},
})
ParamètresLien direct vers Paramètres
version?:
'v5' pour conserver le comportement par défaut existant. Transmettez 'v6' lorsque votre application est typée pour les assistants de réponse d’AI SDK v6.path:
/network ou /network/:agentId). Incluez :agentId pour un routage dynamique de l’Agent.agent?:
:agentId.agentVersion?:
{ versionId: '<id>' } pour cibler une version exacte, ou { status: 'draft' } / { status: 'published' } pour la déterminer selon son statut. Lorsque la route est appelée, les paramètres de requête ?versionId=<id> ou ?status=draft|published sont prioritaires sur cette valeur statique. Nécessite la configuration de l’Editor.defaultOptions?:
Configuration supplémentaireLien direct vers Configuration supplémentaire
Vous pouvez utiliser prepareSendMessagesRequest pour personnaliser la requête envoyée à la route de réseau, par exemple afin de transmettre une configuration supplémentaire à l’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',
},
},
}
},
}),
})