内容纲要
当系统要处理多种类型的任务时,单一线性流程会又慢又不准。路由(Routing)通过对输入做意图识别与条件分支,把请求动态分发给最合适的工具、子智能体或提示链,既提升准确率也增强扩展性。本文给出落地方法、实现清单与常见坑位,适合构建多场景、多工具的智能体系统。
TL;DR
- 核心:根据上下文与意图选择“路径”,让专业任务交给专业模块。
- 方法:LLM 路由、向量路由、规则路由、机器学习路由,各有优劣。
- 组合:先路由后执行提示链;或在提示链中间节点使用路由。
- 关键:定义清晰的路由选项、兜底策略、可观测性与回放。
- 扩展:新增能力只需添加新路由目标,系统随需扩容。
- 边界:简单场景不必上路由;当输入类型明显多样时优先路由。
是什么:让系统“选对路”的机制
路由(Routing)让智能体根据输入和上下文,动态选择最合适的处理路径。常见关系:
- 与提示链:提示链负责按步骤执行;路由决定走哪条链
- 与并行化:可对多个路由候选进行并行评估后再决策
基本流程:
用户输入 → 意图识别/分类 → 路由决策 → 分发到专业处理单元/提示链 → 执行结果
示意图:
读图要点:把“识别→分发→执行”拆开,便于扩展新路径与定位错误。
为什么:线性流程无法应对多样输入
- 单一路径很难覆盖多类型请求,易出现“用错工具”的情况
- 让擅长检索的去检索,让擅长下单的去下单,实现“各司其职”
- 通过路由抽象,系统能“插拔式”扩展新处理单元
对比结论:
- 线性流程 → 简单但僵硬;
- 路由系统 → 动态适应、模块化、可扩展。
怎么做:实现清单与落地要点
1)定义路由选项(职责不重叠)
- 列清楚每个目标模块“能做什么、不做什么”
- 给出样例输入与“验收条件”,避免边界模糊
2)选择路由方法(四选一或混合)
| 方法 | 原理 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| LLM 路由 | 提示引导模型输出“目标标签” | 灵活、理解复杂语境 | 成本/延迟较高 | 语义复杂/新颖输入 |
| 向量路由 | 语义向量与候选路径相似度 | 快、鲁棒性好 | 需预构建向量库 | 语义相似判定 |
| 规则路由 | if-else/关键字/正则 | 速度快、确定性强 | 灵活性低 | 模式稳定、规则明确 |
| 机器学习路由 | 训练分类器 | 快、可解释性可控 | 需标注数据 | 有历史数据的场景 |
实践建议:
- 先规则,后向量,再 LLM;有数据后引入 ML 分类提升上限
- 可做级联:规则快速过滤 → 向量候选 → LLM 最终裁决
3)兜底与回退
- 无法分类 → 触发澄清提问或默认安全路径
- 路由错误 → 支持“重新路由”,并记录错误样本
4)可观测性
- 记录:输入、决策分数、所选路径、执行结果、耗时与成本
- 回放:可重现同一请求在当时被如何分发,便于 A/B 与治理
5)组合提示链
- “路由选择哪条提示链”,提示链执行具体任务
- 在长链中间使用路由,动态决定后续步骤(如“是否需要补充检索”)
场景范式
1)人机交互系统
用户查询 → 意图分析 → 路由决策
├─ 查信息 → 检索工具
├─ 下订单 → 交易系统
├─ 技术支持 → 故障排除/转人工
└─ 意图不明 → 澄清子智能体
价值:响应更专业、体验更好。
2)数据处理流水线
数据输入 → 内容/格式分类 → 路由到对应流程
├─ 销售线索 → CRM/销售流程
├─ 技术问题 → 支持流程
├─ 紧急事项 → 升级处理
└─ JSON/CSV → 数据转换
价值:自动分发,降低人工成本。
3)多智能体协作
任务 → 高层调度器 → 分派给专业智能体
├─ 搜索 → 搜索Agent
├─ 总结 → 总结Agent
└─ 分析 → 分析Agent
价值:发挥各Agent所长。
对比与取舍:方法选型建议
- 复杂语义/冷启动 → LLM 路由
- 语义相近度判断、需低延迟 → 向量路由
- 规则明确、可快速上线 → 规则路由
- 有数据、追求规模化 → ML 路由
组合方式:规则→向量→LLM 的级联,常见且实用。
常见错误与排错
- 路由选项职责重叠 → 先梳理边界与样例,再落地
- 没有兜底策略 → 一旦“无法分类”就卡死;加澄清与默认路径
- 不记录决策过程 → 无法优化;必须保留日志与回放
- 过度依赖单一方法 → 结合规则/向量/LLM/ML 的级联更稳
- 不与提示链配合 → 只路由不编排,效果有限;组合更佳
FAQ
- 问:路由会增加时延吗?
答:取决于方法。规则/向量几乎无感,LLM 路由会增加 100–500ms;可缓存常见请求的路由结果。 - 问:如何评估路由准确性?
答:建立测试集与混淆矩阵,目标准确率 >95%;同时跟踪业务指标(转化、一次通过率)。 - 问:路由和提示链如何协同?
答:路由选链,链做事;链中也能用路由(条件分支)。 - 问:如何避免误路由?
答:设置置信度阈值;低于阈值走澄清或人工审阅。
延伸阅读与引用
- LangGraph 文档:https://langchain-ai.github.io/langgraph/
- LangChain RunnableBranch(路由):https://python.langchain.com/docs/expression_language/how_to/routing
- Google ADK 文档:https://google.github.io/adk-docs/
- LangGraph 条件边:https://www.langchain.com/langgraph
总结
路由让系统“把事交给对的人”:以清晰的职责划分、合适的决策方法与完善的兜底策略,实现对多样输入的自适应处理。与提示链和并行化协同后,你能在“准、稳、快”之间取得更好的平衡,并为后续迭代预留充足的扩展空间。