系统需精准识别“我的订单还没发货,能查一下吗?”为query_order意图并路由至订单知识库,依赖dify中问题分类器配置、上下文记忆增强、if/else路径分发及兜底机制,辅以调试验证优化。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当用户在客服对话中输入“我的订单还没发货,能查一下吗?”,系统必须立刻识别出这是订单查询意图,并自动路由到订单知识库而非售后或产品使用知识库——这依赖于Dify中意图分类与路由的精准协同配置,而不是靠人工关键词匹配或模糊检索。
配置问题分类节点定义意图类别
进入工作流编辑器 → 点击「+ 添加节点」→ 选择「Question Classifier(问题分类器)」节点。
在节点设置面板中,点击「添加分类」,为每个业务意图创建一个明确类别。例如:query_order、return_goods、complaint、product_usage。每个类别必须配一条【不可省略的中文描述】,如“query_order:用户询问订单状态、物流信息或下单结果,含‘发货’‘到哪了’‘查订单’等表述”。
避免使用模糊词如“相关问题”“其他咨询”。描述越具体,LLM分类越稳定;若描述写成“关于订单的问题”,模型可能把“怎么取消订单”也归入此类,导致后续路由错误。
用上下文增强多轮对话中的意图稳定性
在问题分类节点高级设置中,开启「Memory」开关,并将「Memory Window」设为3。这会让节点自动提取最近三轮对话历史(含用户和机器人发言)作为推理依据。
比如用户先问“这个耳机怎么连蓝牙?”,再问“那我昨天下的单呢?”,没有上下文时模型易误判为“产品使用”类;启用记忆后,它能结合前序提问识别出当前是切换意图,仍准确归为query_order。
注意:【Memory Window超过5会显著增加token消耗,且可能引入无关噪声】,医疗或法律类高精度场景建议保持3~4轮即可。
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
通过IF/ELSE节点实现意图驱动的路径分发
第一步:将问题分类节点的输出变量 class_name 拖入IF/ELSE节点的条件表达式框,输入 {{$input.class_name == "query_order"}}。
第二步:为该条件绑定目标分支,例如连接至「订单知识库检索」节点;再新增一条条件 {{$input.class_name == "return_goods"}},指向「退货流程生成」节点。
第三步:务必添加兜底分支——条件设为 true,目标设为「默认客服转接」节点。Dify按顺序匹配条件,一旦前面所有条件都不满足,就会落入此分支,防止流程中断。
这一步不能跳过。若未设兜底,当用户输入“你们老板电话多少”这类超纲问题时,整个工作流会卡死无响应,用户得不到任何反馈。
验证分类效果并定位误判根因
点击工作流右上角「调试与预览」→ 在输入框中粘贴典型用户语句,如“东西坏了能换吗?”→ 查看问题分类节点输出的 class_name 和 confidence_score。
如果返回的是 return_goods 但 confidence_score 低于0.65,说明分类依据薄弱,需回到分类描述中补充关键词,例如在 return_goods 描述末尾加上“包含‘换货’‘坏了’‘不能用了’等强信号词”。
直接修改分类描述后无需重新发布,调试窗口实时生效,可立即重试验证。










