networkRoute()
已弃用
Agent network 已弃用,并将在未来版本中移除。请改用搭配 agent.stream() 或 agent.generate() 的 supervisor Agent。升级方法请参阅迁移指南。
创建使用 AI SDK 格式流式传输 network 执行的路由处理程序。此函数会注册一个 HTTP POST endpoint,用于接收消息、执行 Agent network,并以 AI SDK 兼容格式将响应流式传回客户端。Agent network 允许路由 Agent 将任务委派给其他 Agent。必须在自定义 API 路由中使用它。
如果需要与框架无关的处理程序,请使用 handleNetworkStream()。
networkRoute() 保留现有的 AI SDK v5 默认行为。如果应用使用 AI SDK v6 类型,请传入 version: 'v6'。
使用示例使用示例的直接链接
此示例展示如何在 /network endpoint 设置 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 stream 协议。省略此项或传入
'v5' 可使用现有默认行为;当应用使用 AI SDK v6 response helper 的类型时,传入 'v6'。path:
string
= '/network/:agentId'
路由路径(例如
/network 或 /network/:agentId)。包含 :agentId 可启用动态 Agent 路由。agent?:
string
此 network 路由所用路由 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 自定义发送到 network 路由的请求,例如向 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',
},
},
}
},
}),
})