006-4-Router
心智模型
路由(Router)模式通过一个分类步骤将用户输入导向一个或多个专业 Agent,这些 Agent 可并行执行,最后将结果合成为一个统一回复。路由有两种存在方式:无状态(每次请求独立分类)和有状态(包裹为工具由对话 Agent 调用以保持多轮记忆)。
二级标题及内容
-
【关键特征】Key characteristics 路由分解查询;可并行调用零个或多个专业 Agent;结果合成后再返回。
-
【使用时机】When to use 适用于有多个不同垂直领域(每个领域需独立 Agent)、需并行查询多个数据源、需合成统一回复的场景。
-
【基础实现】Basic implementation 单 Agent 路由用
Command(goto=agent_name);多 Agent 并行路由用Send向多个 Agent 扇出。 -
【无状态与有状态】Stateless vs. stateful
- 无状态:每次请求独立路由,无跨请求记忆。注意区分路由与子代理:路由是预处理步骤(通常单次 LLM 调用),子代理是维持对话的主 Agent 动态决策。
- 有状态:最简单的做法是将无状态路由包裹为工具,让对话 Agent 调用。对话 Agent 处理记忆,路由保持无状态。若需路由自身维护状态,需自定义历史管理,但通常建议用交接或子代理模式替代,因为跨 Agent 管理历史较复杂,可能影响对话流畅度。
最佳实践
- 优先用工具包裹实现有状态路由:避免直接管理多个并行 Agent 的跨轮历史,让对话 Agent 处理记忆,路由仅负责分类和调度。
- 并行路由用
Send:当查询需同时匹配多个领域时,用Send扇出到多个 Agent 并发执行,再合成结果。 - 明确路由与子代理的边界:路由适用于清晰的输入分类和轻量分发;子代理适用于需要灵活、对话感知的多步骤编排。