智能客服是 RAG 最典型的落地场景之一。用户带着具体问题而来,期望得到准确、快速、有上下文的回答,而机器人需要在复杂多变的对话中保持连贯,同时确保自己不胡说、能兜底。一个成熟的智能客服系统通常由三个核心能力构成:多轮对话管理、知识库检索和人工无缝兜底。
25.4.1 多轮对话:让机器人记住“前面说了什么”
真实客服很少一轮就结束,用户常会追问、补充或切换话题。多轮对话管理的目标,是让机器人理解当前问题在整段对话中的位置,而不是孤立地对待每一句提问。
实现要点:
- 对话历史维护:将最近的数轮对话(用户问题 + 系统回答)作为上下文,在每次调用 LLM 时一并提交。通常会限制窗口长度,比如保留最近 6~8 轮,防止 token 超限。
- 关键信息抽取与填充:对于需要多步确认的任务(如查询订单需手机号和订单号),可以用槽位填充机制,将用户上一轮提供的信息保存下来,补充到当前轮的提示中。
- 话题切换与消歧:用户说完“换一个产品呢?”,系统需要根据对话历史把“换”替换为上一轮提及的产品类别,或者主动问“您想查询哪个产品?”。
真实示例:
用户:我的订单怎么还没到?
机器人:请提供您的订单编号,我帮您查一下。
用户:JD20240508001
机器人:该订单已于5月10日签收,签收人:张先生。您是否未收到?
用户:不是我本人签的。
机器人:根据后台记录,包裹由物业代收。建议您先联系物业确认。如需退货,我可以帮您发起申请。
机器人通过多轮交互,逐步缩小问题范围,而不是一次性给出一大段可能不相关的说明。
25.4.2 知识库:回答“理”从何来
客服场景中,绝大部分固定答案都来自已有文档:退换货政策、保修条款、产品参数、活动规则等。这正是 RAG 的用武之地。
集成方式:
- 文档分片与索引:将客服常用资料(政策、FAQ、产品说明)切分后存入向量数据库。可对标题、摘要、正文分别建索引,提高检索命中率。
- 检索策略调优:
- 使用多路召回:关键词检索(BM25)与向量语义检索结合,应对精确术语查询和模糊语义查询。
- 对于短查询(如“退货几天到账?”),可自动补充上下文词,提高召回率。
- 设置相似度阈值,低于该阈值时判定为未知问题,避免强行回答。
- 答案生成控制:提示词中明确要求“根据提供资料生成回答,并在末尾用【来源:xxx】标注出处”。知识库的回答可附带链接,用户点击即可查看原文。
实际效果:
当用户咨询“7天无理由退货从哪天开始算?”,系统检索到《售后政策》中的精确条款,回答:“自签收商品次日起计算 7 个自然日,期间可以申请无理由退货【来源:退换货政策第 2.3 条】”。既回答了问题,又给了用户自行核查的依据。
25.4.3 人工兜底:在机器“不确定”时平稳交接
即使知识库覆盖得再全,也总有意料之外的问题:情绪激动的用户、极端个案、需要权限操作的情况等。人工兜底机制是保障体验和风险控制的最后防线。
触发人工的典型规则:
- 低置信度问题:当检索相似度低于预设值,或 LLM 连续两次表示“无法回答”,自动转人工。
- 敏感话题或负面情绪:检测到投诉、退款威胁、辱骂等关键词,或情感分析为强烈负面时,直接转接。
- 用户主动请求:识别“转人工”“找人工客服”“叫你们经理”等意图。
- 特定操作要求:修改订单、取消付款、提供个人敏感信息等需要权限的操作,强制转接人工。
交接流程设计:
- 会话摘要传递:转接时,将已产生对话生成一段结构化摘要(用户问题、已提供信息、尝试过的解决步骤、当前焦点),随转接请求一起发给人工客服,避免用户重复描述。
- 响应及时:机器人转接后立即告知预计等待时间,或提供留言功能。
- 可回扶:人工处理结束后,可选择将新产生的解决方案写回知识库草稿,审批后下次机器人可自动应答,形成闭环。
实现示例(示意框架):
def should_handoff(user_input, confidence, sentiment):
if sentiment < -0.5:
return True, "检测到负面情绪"
if confidence < 0.7:
return True, "回答置信度不足"
if any(kw in user_input for kw in ["转人工", "投诉"]):
return True, "用户明确要求"
return False, None
25.4.4 三者协同的全景
一次典型的对话流转可能是这样:
- 知识库驱动回答:机器人根据知识库回答一般性咨询。
- 多轮补充信息:若问题模糊,机器人主动追问,维护对话历史。
- 兜底触发转接:当机器人认为自己无法妥善处理时,生成对话摘要,通知用户并转接人工。
- 回到知识库:人工解决后,系统记录典型案例,丰富知识库,使机器人逐渐覆盖更多长尾场景。
这套组合让智能客服既不完全依赖冷冰冰的检索,也不把压力全抛给大模型的一次性回答,更不会在遇到难题时“死撑”或崩溃。它实现了在可控成本下,提供越来越好的自助服务,同时守住用户体验与业务风险的下限,是当前智能客服系统被广泛采纳的实用框架。