先记住这个答案
路由工作流先做一次分类,再根据类别将输入送入不同专用处理流程;固定链式则让所有输入依次经过同一组步骤。路由适合类别明显、分类准确率高、各路径需要不同提示或工具的复杂任务,能避免优化一类输入时损害另一类表现;固定链式适合可被稳定分解为固定子任务的场景,通过分步和程序化检查换取更高准确率。
- 路由先分类再分流,链式强制顺序
- 分类不可靠时路由会放大错误
- 路由适合类别清晰且路径差异大的任务
两种工作流的控制流差异
固定链式工作流把任务拆成固定顺序的步骤,每个LLM调用接收上一步结果,中间可加程序化gate检查。它对所有输入一视同仁,代码路径由开发者预先定死,比如先写大纲再写全文,若大纲不合格就重写。
路由工作流则先执行一次分类调用或传统分类器,再把输入导向不同后续路径。分类本身可以使用较小模型,后续则各自配备专门提示词和工具。因此路由牺牲一次延迟换取更聚焦的处理,而链式通过让每一步更简单来换取准确性。
客服工单分流的具体条件
假设输入是用户工单文本,类别有‘账号恢复’‘退款申请’‘技术故障’,分别需要读数据库、访问支付系统、查看日志。我们设定需要控制:分类准确率需达到95%以上,否则退款走错路径会拿不到必要信息。路由函数先用一个大模型分类,设定置信度低于0.8时落入人工或通用回复流程。
结果:高置信度工单被送到专用提示和工具链,退款流程知道去查订单而不是日志;分类不确定的工单则走默认链式——先收集信息再给模板答复。这种混合结构减少了路由误分类的影响,同时保留了两个工作流的优点。
何时路由会失效并应退回链式
当类别间重叠严重、难以分离时,路由分类器会把同类输入错误分配,后续专用路径接收了错误上下文后产生更差输出。比如‘技术故障’和‘账号恢复’常常同时出现,单靠文本分类难以划界。此时路由的分离关注优势会被分错代价抵消。
另一失效点是维护成本:每个分支都要独立提示、工具和评估。若多数输入无论走哪条路径都要执行大量公共步骤,固定链式加一个条件检查往往更简单。工程判断标准是:路由只在各路径需要不同模型、工具或提示且分类可靠时引入,否则用统一链式加分支判断即可。
容易答错的地方
- 认为路由一定比链式效果好
- 实际上路由增加了分类依赖,若分类不准确,错误会传播到后续所有步骤。对于输入分布稳定、所有输入都要做相似转换的任务,链式更可预测。Anthropic提醒应先从单次LLM调用开始,只在分类能准确完成时才加路由。
- 把路由与自动化agent混为一谈
- 路由是预定义代码路径上的静态分类决策,模型不决定下一步如何演进;agent则由模型动态控制自己的流程。路由中分类后接的仍是固定子流程,没有循环和自主工具选择,因此不能替代需要灵活规划的agent。
面试官还会怎么问?
路由分类的准确率要达到多高才值得使用?
没有固定阈值,但需要由下游收益衡量。若分错会让专用路径做出危险动作(如退款),应提高置信度门槛并把低置信度转入人工。通常可用混淆矩阵评估每类错误成本,期望成本低于统一链式时才采用路由。
在LangGraph中如何实现路由和链式?
链式用顺序连接的节点即可,每个节点返回状态。路由则用条件边,路由函数读状态返回目标节点名,框架按返回值跳转。但LangGraph本身是图标准,区分路由主要看你是否在输入上做分类再分流,而不是把分叉点无条件边。
如果输入类别持续增加,路由与链式该如何扩展?
路由需要为每个新类别维护独立提示和工具链,类别过多会导致维护和评估成本膨胀。实践中可以把少数高发类别走路由,把低发或难分输入统一交给一个具备工具调用的agent流程处理。
参考资料
示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。