networkRoute()
Creates a network route handler for streaming network execution using the AI SDK format. This function registers an HTTP POST endpoint that accepts messages, executes an agent network, and streams the response back to the client in AI SDK-compatible format. Agent networks allow a routing agent to delegate tasks to other agents. You have to use it inside a custom API route.
Use handleNetworkStream() if you need a framework-agnostic handler.
Usage exampleDirect link to Usage example
This example shows how to set up a network route at the /network endpoint that uses an agent with the ID weatherAgent.
import { Mastra } from "@mastra/core";
import { networkRoute } from "@mastra/ai-sdk";
export const mastra = new Mastra({
server: {
apiRoutes: [
networkRoute({
path: "/network",
agent: "weatherAgent",
}),
],
},
});
You can also use dynamic agent routing based on an agentId. The URL /network/weatherAgent will resolve to the agent with the ID weatherAgent.
import { Mastra } from "@mastra/core";
import { networkRoute } from "@mastra/ai-sdk";
export const mastra = new Mastra({
server: {
apiRoutes: [
networkRoute({
path: "/network/:agentId",
}),
],
},
});
ParametersDirect link to Parameters
path:
agent?:
defaultOptions?:
Additional configurationDirect link to Additional configuration
You can use prepareSendMessagesRequest to customize the request sent to the network route, for example to pass additional configuration to the 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",
},
},
};
},
}),
});