E AI 评测 企业级质量体系
导航
章节 / 第二篇:理解被评系统

第 7 章:RAG 与知识链路评测

第 7 章:RAG 与知识链路评测

7.1 知识库更新了,为什么 Agent 还在回答过期政策

客服团队发布了新的退款政策。知识库后台显示文档已经上传,运营也确认内容正确。可是客服 Agent 在线上仍然回答过期政策。

这类问题不能简单归为“RAG 效果差”。RAG 是一条链路,错误可能发生在任何环节:

  • 文档上传了,但解析失败。
  • 文档解析了,但 Chunk 切分破坏了语义。
  • Chunk 已经生成,但索引没有刷新。
  • 索引刷新了,但 Query 没有召回正确片段。
  • 召回正确片段了,但 Rerank 排到了后面。
  • 正确片段进入上下文,但模型没有忠实使用。
  • 回答正确,但引用指向了错误条款。

RAG 评测的核心,是把“知识回答错了”拆成可诊断链路。

7.2 RAG 链路拆解

一个典型 RAG 链路包含八个环节。

图 7-1 RAG 链路评测点图

flowchart LR
  A["文档解析"] --> B["Chunk切分"]
  B --> C["Embedding/Index"]
  C --> D["Query改写"]
  D --> E["召回TopK"]
  E --> F["Rerank重排"]
  F --> G["上下文组装"]
  G --> H["生成与引用"]
环节 作用 常见失败
文档解析 将 PDF、网页、表格等转为可检索文本 表格丢失、标题层级丢失、乱码
Chunk 将文档切成检索单元 切散规则、混入无关内容、粒度过粗
Embedding / Index 建立向量或混合索引 索引未刷新、版本错配
Query 改写 将用户问题改成检索查询 丢失实体、过度改写、未扩展同义词
召回 找到候选知识片段 正确片段未进入 TopK
Rerank 对候选片段重排 正确片段被排低
上下文组装 将片段放入模型上下文 截断、顺序不当、证据污染
生成与引用 基于上下文回答并给出依据 不忠实、引用错位、无依据承诺

评测要能分别观察这些环节,而不是只看最终答案。

7.3 组件指标

RAG 指标可以分为检索侧、上下文侧和生成侧。

指标 所属环节 含义
Recall@K 召回 正确证据是否进入 TopK
MRR 召回 / 排序 正确证据排名是否靠前
Context Precision 上下文 放入上下文的信息是否相关
Context Recall 上下文 必要证据是否完整进入上下文
Faithfulness 生成 回答是否忠实于上下文
Answer Correctness 生成 回答是否满足业务正确性
Citation Accuracy 引用 引用是否支持答案
Coverage 知识库 关键业务规则是否被覆盖

客服 Agent 的退款政策评测不能只看 Answer Correctness。如果最终答错,需要知道是 Recall@K 失败、Context Recall 不足,还是 Faithfulness 失败。

7.4 RAG Case 的证据结构

一个 RAG Eval Case 至少应包含:

字段 说明
query 用户问题
scenario 业务场景
gold_evidence 期望召回的证据片段
expected_answer 期望行为或答案要点
retrieved_chunks 实际召回片段
context 进入模型的上下文
answer 模型最终回答
citation 回答引用
Rubric 评分规则
knowledge_version 知识库版本
index_version 索引版本

示例:

case_id: rag_refund_member_001
query: 我用了优惠券只退一件商品,积分会扣回吗?
scenario: 会员部分退款
gold_evidence:
  - refund_policy_member_points_v3#section_2
  - coupon_refund_allocation_v5#section_4
expected_answer:
  - 说明优惠券按商品分摊
  - 说明积分可能按实际保留金额调整
  - 无法确认订单明细时调用工具或转人工
knowledge_version: refund_kb_20260701
index_version: refund_index_20260701_02

有了 gold evidence,才能独立评价召回和生成。

7.4.1 Gold Evidence 的标注原则

Gold evidence 不是把参考答案写长一点,而是标出“支撑正确回答所必需的证据”。它决定了 RAG 评测能否从最终答案退回到知识链路。

标注时应遵守四个原则。

第一,证据要足够具体。不要只标注文档 ID,而要标到章节、条款、表格行或政策片段。否则 Recall@K 看似通过,实际进入上下文的可能只是同一文档中的无关内容。

第二,证据要包含适用条件。退款政策中的“7 天无理由”如果没有商品品类、拆封状态、活动规则和生效时间,就不足以支撑复杂回答。

第三,证据要区分必要证据和补充证据。必要证据缺失会导致回答不可靠,补充证据可以改善解释质量但不一定阻断发布。

第四,证据要记录版本和时间。客服政策、会员权益、促销规则都可能变化。没有有效期,评测系统无法判断模型引用的是当前规则还是历史规则。

证据类型 作用 例子
必要证据 支撑核心结论 部分退款时优惠券按商品分摊
条件证据 限定适用范围 仅适用于未超过签收 7 天的订单
反例证据 防止过度概括 拆封耳机不适用无理由退货
时效证据 判断规则是否有效 政策自 2026-07-01 起生效
审批证据 决定是否转人工 高金额退款需人工审批

好的 gold evidence 能让 RAG 评测回答三个问题:正确知识是否存在,是否被召回,是否被忠实使用。

7.5 文档解析与 Chunk 评测

很多 RAG 问题发生在检索前。

政策文档经常包含表格、脚注、适用条件和例外条款。如果解析后丢失结构,后续检索再强也很难召回正确知识。

文档解析评测应检查:

  • 标题层级是否保留。
  • 表格是否转成可理解文本。
  • 条件和例外是否与主规则绑定。
  • 生效时间是否保留。
  • 附件、脚注和链接是否处理。

Chunk 评测应检查:

问题 影响
Chunk 过短 条件和结论分离
Chunk 过长 检索噪声增加
边界错误 例外条款与主规则断开
缺少元数据 无法按业务线、时间和版本过滤

客服退款政策中,“优惠券分摊规则”和“会员积分扣回规则”如果被切到不同无关联 Chunk,模型就可能只看到其中一半。

7.6 召回与排序评测

召回评测的基本问题是:正确证据是否被找到。

对于每个 Query,应检查:

  • 正确证据是否进入 Top1、Top3、Top5、Top10。
  • 正确证据排名是否稳定。
  • 无关片段是否挤占上下文。
  • Query 改写是否保留关键实体。
  • 过滤条件是否错误排除了正确文档。

Rerank 评测关注:正确片段是否被排到足够靠前的位置。

问题 可能修复方向
正确片段未召回 Query 改写、Embedding、混合检索、索引
正确片段召回但排名低 Rerank、业务特征、相似度策略
无关片段很多 过滤、元数据、负样本、Query 路由
新政策无法召回 索引刷新、版本切换、文档同步

召回和排序要和知识库版本绑定。否则团队无法判断是策略问题还是数据版本问题。

7.7 上下文组装与生成忠实性

正确 Chunk 被召回,不代表最终回答正确。

上下文组装可能出现:

  • 正确片段被截断。
  • 正确片段位置太靠后。
  • 多个片段互相冲突。
  • 缺少生效时间和适用条件。
  • 用户问题中的关键实体没有和证据对齐。

生成阶段则关注模型是否忠实使用上下文。

评测可以设计两个对照:

  1. 给模型正确上下文,看它是否能回答正确。
  2. 给模型含干扰证据的上下文,看它是否能拒绝错误片段。

如果正确上下文下仍答错,问题更可能在生成忠实性、Prompt 约束或模型能力。如果上下文没有正确证据,问题更可能在 RAG 前链路。

7.8 引用评测

引用不是装饰。企业场景中,引用是可审计证据。

引用评测要判断:

维度 问题
存在性 回答是否给出引用
准确性 引用片段是否支持答案
完整性 关键结论是否都有证据
粒度 引用是否足够具体
时效性 引用是否来自有效版本

客服 Agent 如果回答“积分会扣回”,引用却指向物流退货时效,这种回答不能通过忠实性评测。

7.9 知识库版本与血缘

RAG 评测必须记录知识链路版本。

版本字段 说明
document_version 业务文档版本
parser_version 解析器版本
chunk_strategy Chunk 策略
embedding_model Embedding 模型
index_version 索引版本
retriever_version 召回策略版本
reranker_version 重排模型或规则版本
prompt_version 生成 Prompt 版本

没有这些信息,RAG 分数变化无法解释。客服政策更新后回答仍错,到底是文档没进库、索引没刷新,还是召回策略没命中,必须靠版本血缘判断。

7.9.1 知识冲突与时效治理

企业知识库很少是干净的单一事实源。真实系统中经常同时存在客服 SOP、法务条款、运营活动规则、商品品类例外、历史公告和临时补充说明。RAG 评测必须处理知识冲突。

常见冲突包括:

冲突类型 示例 评测要求
新旧政策冲突 新政策写 7 天,旧政策写 15 天 必须识别生效时间和版本
通用与例外冲突 通用可退,耳机拆封不可无理由退 必须优先使用适用条件更具体的证据
渠道规则冲突 App 与线下门店规则不同 必须结合用户渠道和订单来源
活动规则冲突 大促券和普通券退款规则不同 必须检索活动规则而非只看退款总则
人工审批冲突 政策允许退,但金额超过自动化上限 必须触发人工审批

因此,RAG Case 不应只包含 query 和 answer,还应包含适用上下文:用户身份、订单渠道、商品品类、活动类型、时间点、金额等级和审批边界。没有这些条件,评估器会把“看似正确的通用回答”误判为通过。

知识治理的核心不是让模型自己判断所有冲突,而是在知识链路中提供可判定的元数据:生效时间、失效时间、业务线、优先级、适用范围、审批要求和数据 Owner。评测则要验证这些元数据是否被召回、进入上下文并影响最终回答。

7.10 交付物一:RAG 链路失效模式与指标表

链路环节 失效模式 指标
文档解析 表格、标题、条件丢失 解析完整率、结构保留率
Chunk 规则切散、噪声混入 Chunk 完整性、边界正确率
索引 文档未入库、版本错配 索引覆盖率、版本一致性
召回 正确证据未进入 TopK Recall@K
Rerank 正确证据排名低 MRR、NDCG
上下文 截断、污染、缺条件 Context Recall / Precision
生成 不忠实、无依据承诺 Faithfulness、Correctness
引用 引用不支持答案 Citation Accuracy

这张表用于把 RAG 错误定位到具体链路。

7.11 交付物二:RAG Eval Case Schema

case_id:
scenario:
query:
query_metadata:
  user_type:
  channel:
  business_line:
gold_evidence:
  - document_id:
    section_id:
    text:
    effective_time:
expected_behavior:
retrieved_chunks:
context:
answer:
citations:
versions:
  document_version:
  index_version:
  embedding_model:
  retriever_version:
  reranker_version:
  prompt_version:
metrics:
  recall_at_k:
  mrr:
  faithfulness:
  answer_correctness:
  citation_accuracy:
rubric:

Schema 的核心是把证据、上下文、答案和版本放在同一个 Case 中,支持后续归因。

7.12 常见误区

7.12.1 只看最终答案

最终答案错了,不能说明是检索错还是生成错。必须保留中间证据。

7.12.2 没有 gold evidence

没有标准证据,就无法评价召回质量。

7.12.3 忽略知识版本

政策类问题必须记录知识版本和生效时间,否则评测结论不可解释。

7.12.4 把引用当成可信保证

模型给出引用,不代表引用支持答案。引用本身也要评测。

7.13 本章小结

RAG 评测的关键,是把知识回答错误拆解到文档解析、Chunk、索引、召回、排序、上下文、生成和引用各环节。

客服 Agent 回答过期政策时,团队不能只看最终回答,而要追踪正确证据是否存在、是否入索引、是否召回、是否进入上下文,以及模型是否忠实使用。

下一章,我们将评测范围从知识链路扩展到工具调用、记忆管理和工作流编排,完成 Agent 系统的全组件评测框架。