路由式智能体工作流实践-智能客服
路由式智能体工作流实践-智能客服
路由式智能体工作流实践 智能客服 路由式智能体工作流实践 智能客服 Modified November 9, 2025 Code block Plain Text 请为以下订单咨询提供专业回复:用户信息:···{{ sys.user name }} (用户名: {{ sys.user id }})···用户咨询: ···{{ llm.structured output.cleaned text }}···历史对话记忆: ···{{ context history }}···请运用您的专业订单管理知识,结合用户信息提供准确的订单服务信息。 4.9 无分类处理节点 • 节点类型 :回答 (Answer) • 功能描述 :处理无法准确分类的问题或非客服相关的咨询,提供标准化的引导回复。 • 输入 : ◦ 来自条件分支路由节点的false分支(其他情况) • 输出 : ◦ answer (string): "我还不理解你的意思,请换个问题再试一下。" • 触发条件 : ◦ 当用户咨询无法匹配到四个专业分类时 ◦ 当意图识别置信度过低时 ◦ 当问题不属于客服处理范围时 4.9 信息整合处理节点 • 节点类型 :代码执行 (Code) • 代码语言 :Python3 • 功能描述 :整合各专业处理通道的回复结果,进行格式化处理和标准化输出。 • 输入变量 : ◦ presale response (string): 售前咨询专家的回复内容 ◦ aftersale response (string): 售后服务专家的回复内容 ◦ complaint response (string): 投诉处理专家的回复内容 ◦ order response (string): 订单服务专家的回复内容 • 输出变量 : ◦ final response (string): 格式化的最终客服回复 ◦ response type (string): 响应类型标识 • 代码实现 : Code block Plain Text import jsonimport datetimedef main(presale response: str = "", aftersale response: str = "", complaint response: str = "", order response: str = "") dict: """ Dify代码节点主函数:整合各专业分支的响应结果 """ 确定活跃的响应分支 active response = None response type = "" if presale response: active response = presale response response type = "presale" elif aftersale response: active response = aftersale response response type = "aftersale" elif complaint response: active response = complaint response response type = "complaint" elif order response: active response = order response response type = "order" if not active response: return { "final response": "系统暂时无法处理您的请求,请稍后重试。", "response type": "error" } 格式标准化 standardized response = standardize format(active response, response type) 返回整合结果 return { "final response": standardized response, "response type": response type }def standardize format(response, response type): """ 格式标准化处理 """ 根据不同类型添加标准化前缀 prefixes = { "presale": "【售前咨询】", "aftersale": "【售后服务】", "complaint": "【投诉处理】", "order": "【订单服务】" } prefix = prefixes.get(response type, "【客服回复】") 确保回复格式一致 if isinstance(response, dict): content = response.get('content', str(response)) else: content = str(response) standardized = f"{prefix} {content}" 添加结尾礼貌用语 if not any(ending in content for ending in ['谢谢', '感谢', '祝好']): standardized += "\n\n感谢您的咨询,如有其他问题请随时联系我们!" return standardized 4.10 记忆整合节点 • 节点类型 :LLM • 模型配置 :豆包 (Doubao Seed 1.6 flash) • 功能描述 :对整个会话过程进行记忆提取和语义理解,为会话历史管理提供结构化信息,确保历史上下文的质量和可用性。 • 输入 : ◦ final response (string): 来自信息整合处理节点的最终回复内容 ◦ sys.query (string): 用户原始问题内容 ◦ structured output (object): 来自意图识别分析器的结构化分析结果 • 输出 : ◦ text (string): 结构化的会话记忆摘要,包含关键信息提取和语义理解结果 • 主要功能 : ◦ 会话信息提取 :从当前会话中提取关键的问题类型、处理结果、用户需求等信息 ◦ 语义理解 :对会话内容进行深度语义分析,理解用户意图和问题本质 ◦ 记忆结构化 :将会话信息转换为结构化的记忆格式,便于后续检索和利用 ◦ 上下文关联 :建立当前会话与历史会话的关联关系,增强上下文连贯性 • 应用价值 : ◦ 为后续对话提供有价值的历史上下文参考 ◦ 支持个性化服务的持续改进 ◦ 便于客服质量分析和服务优化 ◦ 增强多轮对话的连续性和一致性 • 提示词详情 : • 系统提示词 Code block Plain Text Context(上下文)你是一位专业的客服对话记忆整合助手,负责将客户咨询和系统回复的关键信息进行提炼总结,为后续的客服对话提供简洁有用的历史上下文参考。 Objective(目标)将当前客服对话的核心信息提炼成一行简洁的记忆总结,包含问题分类、核心问题和处理结果要点。 Style(风格)简洁明了、要点突出、结构化表达。采用标准化的格式,确保信息的一致性和可读性。 Tone(语调)客观专业、简洁高效。以事实为准,避免主观判断,专注于关键信息的准确记录。 Audience(受众)后续对话的AI客服系统和客服管理人员,需要快速了解历史对话的核心内容。 Response(响应格式)请严格按照以下JSON格式输出记忆总结:{ "summary": "[问题类型] 对话概要:[原始问题→澄清过程→解决方案]的完整流程总结", "original query": "客户最初提出的原始问题", "clarified query": "经过澄清后的明确问题表述", "context history": "相关历史对话的关键信息摘要", "current response": "本次系统回复的核心内容和解决方案"}要求:1. summary字段控制在200字以内,体现完整的对话演进过程2. original query保留客户最初问题的原始表述3. clarified query记录澄清后的准确问题理解4. context history简要概括相关历史对话的关键信息5. current response提炼当前回复的核心解决方案和要点6. 问题类型使用标准分类(售前咨询/售后服务/投诉处理/订单查询/技术支持) • 用户提示词 Code block Plain Text 请根据以下完整的客服对话信息生成记忆总结: 客户原始问题 :{{ sys.query }} 问题澄清后 :{{ 问题澄清节点.clarified query }} 历史对话记录 :{{ sys.conversation id }} 问题分类结果 :{{ 意图识别分析器.structured output.intent category }} 当前系统回复 :{{ 信息整合处理.final response }}请按照指定的JSON格式输出记忆总结,确保完整记录对话演进过程和核心解决方案。 4.11 变量赋值节点 • 节点类型 :变量赋值器 (Assigner) • 版本 :v2 • 功能描述 :将记忆整合节点生成的结构化会话摘要追加到会话变量 context history 中,确保对话历史的持续积累。 • 输入 : ◦ text (string): 来自记忆整合节点的会话记忆摘要 • 输出 : ◦ 更新会话变量 context history ,将新的记忆信息追加到历史记录数组中 • 配置详情 : ◦ 操作类型 :append (追加模式) ◦ 写入模式 :over write (覆盖写入) ◦ 目标变量 :conversation.context history ◦ 输入类型 :variable (变量输入) ◦ 数据源 :记忆整合节点的text输出 • 工作机制 : ◦ 数据收集 :接收记忆整合节点处理后的结构化会话信息 ◦ 格式验证 :确保输入数据符合预期的格式要求 ◦ 追加操作 :将新的会话记忆追加到 context history 数组的末尾 ◦ 状态更新 :更新会话变量状态,确保后续对话可以访问完整的历史上下文 • 数据流转 : Code block Plain Text 记忆整合节点.text → 变量赋值节点 → conversation.context history.append() 4.12 最终回复节点 • 节点类型 :回答 (Answer) • 功能描述 :输出经过信息整合处理节点处理后的最终客服回复结果。 • 输入 : ◦ final response (string): 来自信息整合处理节点的格式化回复内容 • 输出 : ◦ 完整的、经过标准化处理的专业化客服回复,包含分类标识和礼貌用语,可直接发送给用户 5. 测试Case 5.1 测试场景设计 本测试案例基于电商购物场景设计,涵盖智能客服路由系统的五个核心处理分支。 测试Case 1:售前咨询场景 客户信息模拟: 张经理,北京创新科技有限公司技术总监,公司规模150人,主要从事软件开发业务。这是首次接触我们的产品,公司正在寻找适合的企业级办公设备。预算范围在10 50万元之间,倾向于批量采购方案,重点关注办公效率、团队协作和成本控制。目前公司使用传统的办公设备,效率较低,希望引入专业的智能办公设备提升团队工作效率。 对话指令: Code block Plain Text 用户:您好,我想了解一下贵公司的企业级智能办公设备。我们公司有150人左右的团队,主要做软件开发项目,希望能找到适合的办公设备。请问你们的产品有哪些功能模块?价格大概是多少?是否支持批量采购? 测试Case 2:售后服务场景 客户信息模拟: 李工程师,个人用户,高级会员,2024年1月10日购买智能办公设备个人版,产品已激活使用。之前曾遇到连接问题,通过客服支持已解决。目前正在使用设备管理个人办公,对产品功能基本满意。最近遇到数据同步问题,影响正常工作进度,希望尽快获得技术支持解决。 对话指令: Code block Plain Text 用户:我在使用智能办公设备时遇到了问题。昨天开始,设备一直提示"数据同步失败",我重启了设备和电脑,但问题还是存在。现在无法查看最新的办公数据,这影响了我的工作。请问这是什么原因?怎么解决? 测试Case 3:投诉处理场景 客户信息模拟: 王女士,个人用户,普通会员,2024年1月5日购买智能办公设备基础版,支付金额299元,产品已激活。购买时宣传支持团队协作功能,但实际使用后发现该功能缺失。曾于1月8日提交投诉工单,客服承诺一周内解决,但至今无进展。对产品功能不符宣传表示强烈不满,要求退款并给出合理解释。 对话指令: Code block Plain Text 用户:我对你们的服务非常不满意!购买时宣传说支持团队协作功能,但实际使用后发现根本没有这个功能。客服之前说会解决,但一周过去了还是没有任何进展。我要求退款,并且希望你们给出合理的解释和补偿方案。如果这次还不能解决,我会向消费者协会投诉。 测试Case 4:订单查询场景 客户信息模拟: 陈先生,个人用户,新注册用户,2024年1月14日通过淘宝购买项目管理软件专业版,支付金额599元。订单状态显示待激活,付款成功后未收到激活邮件。这是首次购买我们的产品,对产品功能和服务流程不熟悉,希望了解订单处理进度和激活时间。 对话指令: Code block Plain Text 用户:我上周五下的订单现在什么状态?订单号是ORD20240114001,购买的是项目管理软件专业版。当时付款成功了,但一直没有收到激活邮件,也不知道什么时候能开始使用。请帮我查一下订单状态和激活进度。 测试Case 5:无分类处理场景 客户信息模拟: 4.9 无分类处理节点 • 节点类型 :回答 (Answer) • 功能描述 :处理无法准确分类的问题或非客服相关的咨询,提供标准化的引导回复。 • 输入 : ◦ 来自条件分支路由节点的false分支(其他情况) ◦ 来自条件分支路由节点的false分支(其他情况) • 输出 : ◦ answer (string): "我还不理解你的意思,请换个问题再试一下。" ◦ answer (string): "我还不理解你的意思,请换个问题再试一下。" • 触发条件 : ◦ 当用户咨询无法匹配到四个专业分类时 ◦ 当意图识别置信度过低时 ◦ 当问题不属于客服处理范围时 ◦ 当用户咨询无法匹配到四个专业分类时 ◦ 当意图识别置信度过低时 ◦ 当问题不属于客服处理范围时 4.9 信息整合处理节点 • 节点类型 :代码执行 (Code) • 代码语言 :Python3 • 功能描述 :整合各专业处理通道的回复结果,进行格式化处理和标准化输出。 • 输入变量 : ◦ presale response (string): 售前咨询专家的回复内容 ◦ aftersale response (string): 售后服务专家的回复内容 ◦ complaint response (string): 投诉处理专家的回复内容 ◦ order response (string): 订单服务专家的回复内容 ◦ presale response (string): 售前咨询专家的回复内容 ◦ aftersale response (string): 售后服务专家的回复内容 ◦ complaint response (string): 投诉处理专家的回复内容 ◦ order response (string): 订单服务专家的回复内容 • 输出变量 : ◦ final response (string): 格式化的最终客服回复 ◦ response type (string): 响应类型标识 ◦ final response (string): 格式化的最终客服回复 ◦ response type (string): 响应类型标识 • 代码实现 : 4.10 记忆整合节点 • 节点类型 :LLM • 模型配置 :豆包 (Doubao Seed 1.6 flash) • 功能描述 :对整个会话过程进行记忆提取和语义理解,为会话历史管理提供结构化信息,确保历史上下文的质量和可用性。 • 输入 : ◦ final response (string): 来自信息整合处理节点的最终回复内容 ◦ sys.query (string): 用户原始问题内容 ◦ structured output (object): 来自意图识别分析器的结构化分析结果 ◦ final response (string): 来自信息整合处理节点的最终回复内容 ◦ sys.query (string): 用户原始问题内容 ◦ structured output (object): 来自意图识别分析器的结构化分析结果 • 输出 : ◦ text (string): 结构化的会话记忆摘要,包含关键信息提取和语义理解结果 ◦ text (string): 结构化的会话记忆摘要,包含关键信息提取和语义理解结果 • 主要功能 : ◦ 会话信息提取 :从当前会话中提取关键的问题类型、处理结果、用户需求等信息 ◦ 语义理解 :对会话内容进行深度语义分析,理解用户意图和问题本质 ◦ 记忆结构化 :将会话信息转换为结构化的记忆格式,便于后续检索和利用 ◦ 上下文关联 :建立当前会话与历史会话的关联关系,增强上下文连贯性 ◦ 会话信息提取 :从当前会话中提取关键的问题类型、处理结果、用户需求等信息 ◦ 语义理解 :对会话内容进行深度语义分析,理解用户意图和问题本质 ◦ 记忆结构化 :将会话信息转换为结构化的记忆格式,便于后续检索和利用 ◦ 上下文关联 :建立当前会话与历史会话的关联关系,增强上下文连贯性 • 应用价值 : ◦ 为后续对话提供有价值的历史上下文参考 ◦ 支持个性化服务的持续改进 ◦ 便于客服质量分析和服务优化 ◦ 增强多轮对话的连续性和一致性 ◦ 为后续对话提供有价值的历史上下文参考 ◦ 支持个性化服务的持续改进 ◦ 便于客服质量分析和服务优化 ◦ 增强多轮对话的连续性和一致性 • 提示词详情 : • 系统提示词 • 用户提示词 4.11 变量赋值节点 • 节点类型 :变量赋值器 (Assigner) • 版本 :v2 • 功能描述 :将记忆整合节点生成的结构化会话摘要追加到会话变量 context history 中,确保对话历史的持续积累。 • 输入 : ◦ text (string): 来自记忆整合节点的会话记忆摘要 ◦ text (string): 来自记忆整合节点的会话记忆摘要 • 输出 : ◦ 更新会话变量 context history ,将新的记忆信息追加到历史记录数组中 ◦ 更新会话变量 context history ,将新的记忆信息追加到历史记录数组中 • 配置详情 : ◦ 操作类型 :append (追加模式) ◦ 写入模式 :over write (覆盖写入) ◦ 目标变量 :conversation.context history ◦ 输入类型 :variable (变量输入) ◦ 数据源 :记忆整合节点的text输出 ◦ 操作类型 :append (追加模式) ◦ 写入模式 :over write (覆盖写入) ◦ 目标变量 :conversation.context history ◦ 输入类型 :variable (变量输入) ◦ 数据源 :记忆整合节点的text输出 • 工作机制 : ◦ 数据收集 :接收记忆整合节点处理后的结构化会话信息 ◦ 格式验证 :确保输入数据符合预期的格式要求 ◦ 追加操作 :将新的会话记忆追加到 context history 数组的末尾 ◦ 状态更新 :更新会话变量状态,确保后续对话可以访问完整的历史上下文 ◦ 数据收集 :接收记忆整合节点处理后的结构化会话信息 ◦ 格式验证 :确保输入数据符合预期的格式要求 ◦ 追加操作 :将新的会话记忆追加到 context history 数组的末尾 ◦ 状态更新 :更新会话变量状态,确保后续对话可以访问完整的历史上下文 • 数据流转 : 4.12 最终回复节点 • 节点类型 :回答 (Answer) • 功能描述 :输出经过信息整合处理节点处理后的最终客服回复结果。 • 输入 : ◦ final response (string): 来自信息整合处理节点的格式化回复内容 ◦ final response (string): 来自信息整合处理节点的格式化回复内容 • 输出 : ◦ 完整的、经过标准化处理的专业化客服回复,包含分类标识和礼貌用语,可直接发送给用户 ◦ 完整的、经过标准化处理的专业化客服回复,包含分类标识和礼貌用语,可直接发送给用户 5. 测试Case 5.1 测试场景设计 本测试案例基于电商购物场景设计,涵盖智能客服路由系统的五个核心处理分支。 测试Case 1:售前咨询场景 客户信息模拟: 张经理,北京创新科技有限公司技术总监,公司规模150人,主要从事软件开发业务。这是首次接触我们的产品,公司正在寻找适合的企业级办公设备。预算范围在10 50万元之间,倾向于批量采购方案,重点关注办公效率、团队协作和成本控制。目前公司使用传统的办公设备,效率较低,希望引入专业的智能办公设备提升团队工作效率。 对话指令: 测试Case 2:售后服务场景 客户信息模拟: 李工程师,个人用户,高级会员,2024年1月10日购买智能办公设备个人版,产品已激活使用。之前曾遇到连接问题,通过客服支持已解决。目前正在使用设备管理个人办公,对产品功能基本满意。最近遇到数据同步问题,影响正常工作进度,希望尽快获得技术支持解决。 对话指令: 测试Case 3:投诉处理场景 客户信息模拟: 王女士,个人用户,普通会员,2024年1月5日购买智能办公设备基础版,支付金额299元,产品已激活。购买时宣传支持团队协作功能,但实际使用后发现该功能缺失。曾于1月8日提交投诉工单,客服承诺一周内解决,但至今无进展。对产品功能不符宣传表示强烈不满,要求退款并给出合理解释。 对话指令: 测试Case 4:订单查询场景 客户信息模拟: 陈先生,个人用户,新注册用户,2024年1月14日通过淘宝购买项目管理软件专业版,支付金额599元。订单状态显示待激活,付款成功后未收到激活邮件。这是首次购买我们的产品,对产品功能和服务流程不熟悉,希望了解订单处理进度和激活时间。 对话指令: 测试Case 5:无分类处理场景 客户信息模拟: 刘先生,访客用户,未注册账号,2024年1月15日首次访问网站,浏览了首页和产品介绍页面。对项目管理软件产品有一定兴趣,但尚未深入了解具体功能。目前处于产品了解阶段,可能对产品功能、价格等信息感兴趣,但当前咨询内容与客服业务无关。 对话指令: 🔗 原文链接: https://mp.weixin.qq.com/s/DqFwAFCg... https://mp.weixin.qq.com/s/DqFwAFCg... 原创 蓝衣剑客 蓝衣剑客AI2025年10月22日 14:37 上海 You don't have permission to access this synced block. Please log in and try again. Log In 1. Case背景 1.1 痛点分析 在现代客户服务体系中,传统的客服模式面临着多重挑战。首先是响应效率问题,人工客服需要时间理解客户问题并转接到相应部门,导致客户等待时间过长,影响服务体验。其次是专业化处理困难,不同类型的客户问题需要不同领域的专业知识,单一客服人员难以同时精通所有业务领域。最后是成本控制压力,高质量的人工客服成本持续上升,而客户服务需求却呈现24小时全天候的特点,传统模式难以平衡成本与服务质量。 1.2 核心需求 我们需要构建一个智能客服路由系统,能够自动识别客户问题的类型和意图,并将其准确分发到相应的专业处理模块。这个系统需要具备四个核心能力:精准的意图识别能力,能够理解客户问题的真实需求;智能的路由分发机制,能够将问题准确分类到对应的处理通道;专业化的问题处理能力,不同类型的问题由相应的专业模块负责;统一的服务标准,确保不同路由下的服务质量一致性。 2. 会话变量配置 2.1 会话变量说明 系统配置了一个重要的会话变量用于维护对话的连续性和上下文信息。 • 变量名称 : context history • 变量类型 :数组 (array[string]) • 功能描述 :存储历史对话的上下文信息,确保系统能够理解和记录整个对话过程的关键信息 • 初始值 :空数组 [] • 更新方式 :追加模式 (append) • 应用场景 : ◦ 记录每轮对话的关键信息和处理结果 ◦ 为后续对话提供历史上下文参考 ◦ 支持多轮对话的连续性处理 ◦ 提升个性化服务质量 ◦ 记录每轮对话的关键信息和处理结果 ◦ 为后续对话提供历史上下文参考 ◦ 支持多轮对话的连续性处理 ◦ 提升个性化服务质量 2.2 变量生命周期 context history 变量在每次对话结束后,通过记忆整合节点进行语义提取和结构化处理,然后通过变量赋值节点将处理结果追加到历史记录中。这种设计确保了对话历史的持续积累和有效利用,为提供更加个性化和连贯的客服体验奠定了基础。 3. 工作流设计 3.1 核心功能概述 智能客服路由系统采用"智能识别+专业分发"的设计理念。系统的核心功能包括:意图识别引擎能够准确理解客户问题的类型和紧急程度;智能路由分发器根据识别结果将问题分配到最合适的处理专家;专业化处理模块针对不同类型的问题提供专业化的解决方案;服务质量监控机制确保各路由下的服务标准一致性。 3.2 工作流程逻辑 客服路由流程分为七个关键阶段。第一阶段是数据预处理,使用GPT 4o模型对用户输入进行文本清洗、信息提取和结构化处理。第二阶段是意图识别,系统使用GPT 4o模型分析预处理后的问题内容,准确识别用户的真实意图并输出结构化分析结果。第三阶段是智能分类路由,基于意图识别结果进行条件判断,将问题精确分类到售前咨询、售后服务、投诉处理、订单查询四个专业处理通道,或者路由到无分类处理分支。第四阶段是专业处理,四个专家节点均使用豆包模型提供专业化的问题解决方案。第五阶段是信息整合处理,通过Python代码节点对各专家回复进行整合、格式化和质量检查。第六阶段是记忆整合,使用豆包模型对整个会话过程进行记忆提取和语义理解,为会话历史管理提供结构化信息。第七阶段是变量赋值,将记忆整合的结果追加到会话变量中,确保历史上下文信息的持续性和可追溯性,最终输出标准化的客服回复。 4. 工作流节点详解 4.1 开始节点 • 节点类型 :开始 • 功能描述 :作为整个智能客服路由系统的入口,负责收集用户档案信息,为后续的数据预处理和意图识别提供用户上下文。 • 输入变量 : ◦ user profile (paragraph): 用户档案信息,最大长度48000字符,包含用户基本信息、历史记录、偏好设置等 ◦ user profile (paragraph): 用户档案信息,最大长度48000字符,包含用户基本信息、历史记录、偏好设置等 • 输出 : ◦ user profile (object): 将用户档案信息传递给数据预处理节点 ◦ 同时接收系统查询变量 sys.query 作为用户问题内容 ◦ user profile (object): 将用户档案信息传递给数据预处理节点 ◦ 同时接收系统查询变量 sys.query 作为用户问题内容 4.2 数据预处理节点 • 节点类型 :LLM • 模型配置 :GPT 4o (OpenAI) • 功能描述 :对用户的原始咨询输入进行专业的预处理,包括文本清洗、信息提取、上下文整合,输出结构化数据。 • 输入 : ◦ sys.query (string): 用户原始问题内容 ◦ user profile (object): 从开始节点传入的用户档案信息 ◦ sys.query (string): 用户原始问题内容 ◦ user profile (object): 从开始节点传入的用户档案信息 • 输出 : ◦ structured output (object): 结构化的用户数据,包含清洗后文本、用户上下文、元数据、实体信息等 ◦ structured output (object): 结构化的用户数据,包含清洗后文本、用户上下文、元数据、实体信息等 • 结构化输出Schema : • 提示词详情 : • 系统提示词 • 用户提示词 4.3 意图识别分析器 • 节点类型 :L