Skip to content

客服和知识库 Agent 怎么选 | 从零理解如何构建 AI Agent

帮助你快速判断本章定位、前置要求与学习目标。

先给结论

客服知识库 Agent 的默认组合是:

text
RAG
  -> Citation
  -> Confidence Check
  -> Escalation
  -> Evaluation

不要先上复杂 Agent Framework。大多数客服知识库的问题,先把知识治理、引用和兜底做好就能解决。

它和普通 RAG 问答有什么不同

客服场景有三个额外要求:

text
答案必须稳定
  -> 同类问题不能每天说法不同

答案必须可追溯
  -> 运营能知道引用了哪条规则

答案必须能兜底
  -> 不能回答时要转人工或收集信息

所以客服知识库 Agent 的重点不是“模型更会聊天”,而是知识版本、拒答、转人工和运营闭环。

场景拆分

场景推荐原因
FAQ 问答RAG + 引用规则稳定,必须可追溯
产品文档问答RAG + version产品版本会变
订单状态查询Tool calling + 权限来自业务系统,不是知识库
售后政策判断RAG + 规则引用 + 低置信转人工风险高,容易产生承诺
投诉处理分类 + 转人工情绪和责任边界复杂
复杂流程办理Workflow + 审批需要状态和业务动作

客服系统里,知识问答和业务办理要分开。不要让同一个回答链路同时查知识、查订单、改状态。

技术架构

text
Intent Classifier
  -> FAQ / Policy RAG
  -> Order Tool
  -> Escalation Router
  -> Answer Composer
  -> Citation + Ticket Log

Intent Classifier 的作用不是炫技,而是把“查政策”“查订单”“投诉转人工”“信息不足追问”分开。不同意图走不同链路,质量才可控。

知识库要求

上线前至少要有:

  • 文档来源;
  • 文档版本;
  • 生效时间;
  • 负责人;
  • 适用范围;
  • 删除和更新流程;
  • 引用输出。

如果知识库自己都说不清哪条规则最新,模型也不可能稳定回答。

知识治理流程

客服知识库需要运营流程:

text
新增知识
  -> 审核
  -> 生效
  -> 索引
  -> 评测
  -> 线上反馈
  -> 更新或下线

RAG 只是读取知识,不能替代知识治理。没有负责人、版本、生效范围和下线机制,模型会把旧规则当新规则回答。

置信度不是一个分数

客服场景的低置信度来自多种原因:

原因处理
检索不到明确说资料不足,转人工
多文档冲突引用冲突并转人工
用户信息缺失追问必要字段
权限不足不透露内部信息
高风险诉求转人工

不要用一个相似度分数决定是否回答。要结合召回质量、文档版本、意图风险和用户信息完整度。

置信度评分的实际构成

一个可用的置信度判断,至少结合以下维度:

text
置信度 = f(
    top_chunk_score,       // 最高召回相似度
    chunk_count,           // 有效召回 chunk 数
    version_consistency,   // chunk 来自同一文档版本
    intent_risk,           // 当前意图风险等级
    user_info_completeness // 用户已提供信息完整度
)

实践中不需要复杂的数学公式,可以用分层判断:

text
if top_chunk_score < threshold_low:
    -> 拒答或转人工

if chunks 来自不同版本文档:
    -> 引用冲突,转人工

if intent_risk == "high":
    -> 强制转人工,无论召回质量

if 用户信息缺失必要字段:
    -> 追问,不生成答案

if top_chunk_score < threshold_mid and intent_risk == "medium":
    -> 低置信度回答 + 提示用户确认

门限值(threshold)需要基于评测集调整,不要使用固定值上线。

拒答和转人工

必须转人工的情况:

  • 检索不到资料;
  • 多份资料冲突;
  • 用户要求退款、投诉、法律承诺;
  • 涉及账号、订单、隐私;
  • 用户明确不接受当前答案;
  • 低置信度连续出现。

客服 Agent 不应该假装全能。可控拒答比编造答案更可靠。

多轮信息收集设计

客服场景经常需要多轮对话才能完成一个诉求。例如"申请退款"可能需要:订单号、购买时间、退款原因、联系方式。

信息收集的状态管理

text
用户发起诉求
  -> 意图识别(退款申请)
  -> 检查必要字段(订单号、原因)
  -> 字段缺失 -> 追问
  -> 字段收集完 -> 校验
  -> 校验通过 -> 执行或转人工

追问时要明确告知用户还需要什么,不要一次只追问一个字段而不说明为什么。

必填字段和可选字段

字段类型处理
必填字段缺失追问,不继续
可选字段缺失根据业务逻辑填默认值或跳过
字段格式错误提示格式要求并让用户重新输入
字段逻辑矛盾指出矛盾,要求用户确认

防止多轮失控

多轮收集要有终止条件:

  • 追问次数上限(例如 3 次追同一字段后转人工);
  • 用户表达不满或要求转人工时立即转;
  • 会话时间超限时自动转人工;
  • 关键字段收集完后不继续多余追问。

不要让用户感觉被反复盘问。追问频率和措辞都要符合客服语气。

转人工时要带什么上下文

转人工不是简单丢给人工客服。应该带上:

  • 用户原问题;
  • 已识别意图;
  • 已检索文档;
  • 引用片段;
  • 判断为低置信的原因;
  • 用户已提供的信息;
  • 建议人工确认的问题。

这样人工客服能接着处理,而不是从头问一遍。

评估指标

指标为什么重要
引用正确率用户和运营能查错
拒答正确率避免编造
转人工率反映知识缺口
首次解决率衡量业务价值
版本命中率避免新旧规则混用
用户修正率发现回答偏差

不要只看满意度。满意度可能掩盖错误但流畅的回答。

POC 样本

样本验证
标准 FAQ能命中正确知识并引用
同义问法能召回同一条规则
新旧政策冲突不混用版本
订单状态查询不走 RAG,走工具
投诉和退款转人工或高风险处理
资料缺失明确拒答,不编造
越权问题不泄露内部规则

客服知识库的 POC 必须包含“不能回答”的样本,否则上线后最容易翻车。

什么时候需要 Agent Framework

情况是否需要
FAQ 问答不需要
查订单状态通常不需要,tool calling 足够
多轮收集售后信息可以用轻量状态
跨系统办理售后流程需要 workflow
高风险退款审批需要 human-in-the-loop

客服 Agent 最常见的过度设计,是把 FAQ 问答也做成复杂多 Agent。先把知识质量和转人工做好。

最终判断

text
只问知识:RAG + 引用
查用户数据:Tool + 权限
办理业务:Workflow + 审批
资料不足:拒答或转人工

客服知识库 Agent 的目标不是“每问必答”,而是“该答的答准,不该答的不乱答”。