关键特征
- Router 会分解查询
- 零个或多个专门代理会被并行调用
- 结果会被综合成连贯响应
何时使用
当你有不同垂直领域(彼此独立且各自需要专属代理的知识领域)、需要并行查询多个来源,并希望将结果综合为合并响应时,请使用 router 模式。基本实现
Router 会对查询分类,并将其定向到合适的代理。单代理路由请使用Command,并行扇出到多个代理请使用 Send。
- 单个代理
- 多个代理(并行)
使用
Command 路由到单个专门代理:教程:使用路由构建多源知识库
构建一个并行查询 GitHub、Notion 和 Slack 的 router,然后将结果综合为连贯答案。涵盖状态定义、专门代理、使用
Send 进行并行执行,以及结果综合。无状态与有状态
两种方法:- 无状态 router 独立处理每个请求
- 有状态 router 跨请求维护对话历史
无状态
每个请求都会被独立路由,调用之间没有记忆。对于多轮对话,请参阅有状态 router。有状态
对于多轮对话,需要跨调用维护上下文。工具封装
最简单的方法是将无状态 router 封装为对话代理可调用的工具。对话代理处理记忆和上下文,router 保持无状态。这避免了在多个并行代理之间管理对话历史的复杂性。完整持久化
如果需要 router 本身维护状态,请使用持久化来存储消息历史。路由到代理时,从状态中获取先前消息,并选择性地将它们包含在代理上下文中,这是 context engineering 的一个控制手段。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

