Agent 应用开发会员账号
知识目录选择核心方向与细分内容

SYSTEMATIC LEARNING / 分层专题

RAG 的证据流与故障定位

追踪同一条证据在召回、排序、上下文和回答中的变化,理解每一步为什么可能丢失答案。

学习目标:能够依据必要证据定位首个失效阶段,并比较不同修复的条件与代价。

内容核对 2026-10-04 · 每层有独立讲解、任务与检查

按这个知识点的熟悉程度选择起点。当前层:资深 · 解释取舍。完成任务后可以继续下一层;阅读与自检不自动代表掌握。

本层学习目录

先补齐必要概念

适合:需要设计企业知识问答的质量体系。

召回
从资料库找出可能相关的候选,不表示它们最终进入模型输入。
重排
重新排列候选的优先级,影响有限上下文中先放哪些材料。
必要证据
足以支持本问题结论的材料集合,可能同时需要正文和例外条款。
证据支持
结论是否被实际材料及适用条件支持;有引用链接也可能没有支持。

原理怎样一步步成立?

  1. 确认资料

    原始资料存在、有效且有权使用。

  2. 召回与排序

    记录候选标识及排名。

  3. 组装上下文

    保留必要材料、条件与来源标识。

  4. 生成与核对

    检查每项结论及拒答是否符合证据。

资深 · 解释取舍

在证据充分、权限与拒答之间取舍

本层目标:能定义证据契约,并设计分阶段指标与拒答标准。

从答案契约向前推导

先规定每个结论需要哪些来源、版本和条件,再决定如何解析、切块、检索与组装。合同例外条款、表格标题和代码调用关系的证据结构不同,不应只靠统一字符长度决定所有切块。核心是能找回完整支持并定位出处。

将权限和质量放在同一信息流

未经授权的材料不能进入候选、缓存或引用回读路径。相关性排序不承担认证责任。来源访问、派生摘要与缓存需要跟随权限和版本变化。证据不充分时,允许部分回答或拒答,并明确缺少什么;不能把“总能给出完整回答”作为唯一成功标准。

用分层评测比较设计

资料覆盖、必要证据召回、排序、组装、结论支持和拒答分别评估。开放式内容可引入人工或校准后的裁判,但权限等硬约束独立判定。阈值由业务风险与样本决定,本课不提供一个通用“正确率达到多少即可上线”的数字。

运行实验,观察反例

固定证据标识列表的管线诊断;不执行向量检索、真实重排、语言模型或语义裁判。

Python 3.10+ · 默认运行只使用标准库 · 在你的电脑运行

  1. 核对 necessary evidence 的两块材料
  2. 运行上下文缺失反例
  3. 分别改变候选与回答支持条件
下载 rag_evidence.py ↓
python3 rag_evidence.py
查看本入口脚本
"""Trace evidence survival through fixed lists; no search or LLM is executed."""
import json


def diagnose(required, candidates, ranked, context, supported_claims):
    if not required.issubset(set(candidates)):
        return "retrieval"
    if not required.issubset(set(ranked)):
        return "ranking"
    if not required.issubset(set(context)):
        return "context"
    if not supported_claims:
        return "generation"
    return "supported"


def demo():
    required = {"policy-current", "policy-exception"}
    candidates = ["old-policy", "policy-current", "policy-exception"]
    ranked = ["policy-current", "policy-exception", "old-policy"]
    stage = diagnose(required, candidates, ranked, ranked[:1], True)
    fixed = diagnose(required, candidates, ranked, ranked[:2], True)
    assert stage == "context" and fixed == "supported"
    return dict(first_failure=stage, fixed_evidence_check=fixed,
                generation_still_needs_review=True)


if __name__ == "__main__":
    print(json.dumps(demo(), sort_keys=True))

本地运行的预期输出

{"first_failure": "context", "fixed_evidence_check": "supported", "generation_still_needs_review": true}
  • 定位最早证据缺口
  • 集合检查与语义检查分开
  • 最终修复需核对真实结论
查看运行环境、输出和校验记录 →

本层验收任务

为企业退款问答定义证据与拒答契约,加入旧政策、预售例外和无权限三个样本。

完成后逐条核对

  • 结论绑定来源、版本及适用条件
  • 无权限材料不流入模型或引用
  • 区分部分回答、拒答与证据充分的完整回答

保存自己的过程、代码与结果。这里提供验收要求,暂不自动评分或保存课程掌握状态。

收起答案,检查理解

引用了有效链接,为什么仍可能应该拒答?

延伸原理与知识练习

遇到不熟悉的原理,先阅读实现、连续追问和迁移案例,再独立说明前提与边界。作答与笔记保存到原有账号记录。

本专题的全部关联解析与练习(4 道)

依据与验证范围

原理依据来自公开资料;数字、案例和任务是本站教学设计。离线实验验证本页注明的范围,学习效果仍需通过独立任务与反馈判断。