M6-L1.1M6-L1.2M6-L1.3案例概览:辅导 / 客服 RAG
一句话: 辅导或客服助手基于课程资料、FAQ、政策和历史问答来回答问题,为每个答案标注出处;资料没有覆盖的问题会如实说明,该转人工时就转人工。
一家教育机构其实已经拥有学生和客户需要的答案。它们散落在课程讲义、FAQ 页面、退款政策、招生手册和多年来的客服工单里。问题是没人能很快找到。学生每周都在问同样的二十个问题,客服不断粘贴同样的回复。新员工和老员工给出的答案不一样,因为他们找到的文档不一样。
这项工作是给已有的知识装一个对话式入口。助手不做决定、不改任何记录、不执行任何操作。它只负责找到正确的段落,并据此回答。
为什么这是最简单的原型
Section titled “为什么这是最简单的原型”它排在阶梯第一级是有原因的。问题本身的三个特征让它保持简单:
- 答案已经写在文档里。 系统的工作是检索,而不是对实时数据做推理。
- 不写回任何东西。 助手只读,所以答错了虽然尴尬,但可以挽回。
- 每个答案都能自带证据。 有了引用,读者几秒钟就能核对出处。
三点都成立时,只用 RAG 就够了。知道什么时候停下来,才是这一课的重点。如果把它包装成多 agent 团队,只会多出交接、延迟和新的失败方式,而不会让任何一个答案更正确。
学生 / 客户 │ 提问 ▼UI / Puffo / n8n ──► 检索段落 ──► 带引用的回答 ▲ │ │ ├─ 资料覆盖? → 回答 + 出处知识库 ◄── 导入 │ ├─ 未覆盖 → "资料里没有" + 转给相关人员(课程资料、FAQ、政策、 │ └─ 敏感话题 → 升级转人工 历史问答,带日期) │ 更新通道(新 FAQ 替换旧 FAQ)| 组件 | 职责 | 没有它会出什么问题 |
|---|---|---|
| 导入(Ingestion) | 把文档切成可检索的段落,保留出处、章节和日期 | 表格和 PDF 被切成无意义的碎片 |
| 检索(Retrieval) | 找到真正能回答问题的几个段落 | 模型根据错误的段落流畅作答 |
| 基于来源的回答 | 只根据检索到的段落回答并标注引用 | 模型用训练数据填补空白 |
| 未知 / 拒答 | 检索不到合适内容时说”资料没有覆盖这个问题” | 助手开始猜,而且猜得很自信 |
| 升级转人工 | 把退款、投诉和涉及个人的问题转给人 | 助手自己编造政策 |
| 更新通道 | 政策变化时替换过期段落 | 去年的退款规则排在今年的前面 |
真正的难点在哪里
Section titled “真正的难点在哪里”架构一屏就能画完,工作量集中在五个地方:
- 导入质量。 幻灯片、扫描版 PDF 和表格都需要小心处理。丢了标题的文本块也就丢了含义。Anthropic 的 Contextual Retrieval 方法会在建索引前,给每个文本块加一句说明它在原文中位置的描述。
- 检索质量。 RAG 系统里大多数”幻觉”其实是检索失败:模型忠实地总结了错误的段落。
- 基于来源(Grounding)。 答案必须限制在检索到的文本之内。引用让这一点可以核查,读者和自动化评测都能核查。
- 未知与拒答行为。 “我不知道,可以找这位同事”是正确答案,它需要自己的测试用例。
- 知识新鲜度。 FAQ 改了,旧版本就必须不能再被检索到。过期知识是最常见的无声失败,因为错误答案看起来和正确答案一样自信。加一道新鲜度检查:每个段落都带来源日期,被取代的文档要删除,而不仅仅是排得靠后。
- “多几个 agent 会更好。” 每多一个 agent 就多一次可能丢失上下文的交接。一步检索加一步回答能解决问题,就到此为止。
- “RAG 能消除幻觉。” 它只是转移了风险。模型仍可能超出来源作答,或引用错误的来源。引用和评测让风险变得可见。
- “拒答就是失败。” 对于知识库之外的问题,拒答并转人工才是成功。
- “文档上传一次就够了。” 知识会过期。更新通道是产品的一部分,不是事后补丁。
客户希望用五个协作 agent 来搭客服助手,你怎么回应?
先问每个 agent 负责的是什么、而这件事为什么一步”检索并回答”做不到。如果答案已经存在于文档中、助手也不执行任何操作,那么一步带引用、拒答和升级的 RAG 更简单、更快,也更容易评测。只有出现独立职责时(例如对账户进行操作,或需要独立审核),agent 才值得引入。
用户反馈助手给出的是旧的退款政策。你先查哪里?
先查知识库,而不是 prompt。确认旧政策文档是否仍在索引里,新政策是否以更晚的日期导入了。然后修好更新通道,让被取代的文档被删除,再加一个测试用例:询问退款问题并检查引用来源的日期。
怎么衡量助手是否达到上线标准?
用真实的历史问题建一个评测集,其中包括资料没有覆盖的问题。衡量答案正确率、引用正确率(被引用的段落是否真的支持答案)、对超范围问题的拒答率,以及升级转人工的频率。上线阈值要在调优之前和客户商定。
- 文章:Introducing Contextual Retrieval(Anthropic)
- 文档:Citations(Claude 文档)
- 文档:Reduce hallucinations(Claude 文档)
- 文章:Your AI Product Needs Evals(Hamel Husain)
- 代码:Claude Cookbook,客服与 RAG 示例(Anthropic)
- 课程:Generative AI for Beginners,RAG 一课(Microsoft)
- 文章:Building effective agents(Anthropic)
Syllabus 行:M6-L1.1、M6-L1.2、M6-L1.3