Self-RAG / CRAG:Agentic Retrieval 与纠错检索
Self-RAG 和 CRAG 的共同贡献:
Self-RAG / CRAG / Agentic Retrieval 解读
面向对象: AI PM / AI BA / AI Architect / RAG Product Owner / EvalOps。 核心问题: RAG 不是固定流程。系统需要判断什么时候检索、检索结果是否可信、是否需要纠错、是否应该拒答或转人工。 学习目标: 能把 Self-RAG 和 CRAG 的思想迁移到企业 RAG、政策助手、AML/KYC Copilot 和金融零售知识系统。
Source Anchors
| Source | Link | 用途 |
|---|---|---|
| Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection | https://arxiv.org/abs/2310.11511 | 理解 retrieve/generate/critique 的自反式 RAG |
| Corrective Retrieval Augmented Generation | https://arxiv.org/abs/2401.15884 | 理解检索质量判断、纠错检索和 fallback |
| Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks | https://arxiv.org/abs/2005.11401 | RAG 基础 |
| RAGAS | https://arxiv.org/abs/2309.15217 | 评估 faithfulness、answer relevancy、context precision / recall |
Self-RAG 和 CRAG 的共同贡献:
RAG 系统不能假设检索永远正确。它必须对“是否需要检索、检索是否足够、答案是否被证据支持”做显式判断。
1. 传统 RAG 的固定流程
基础 RAG 常见流程:
Question -> Retrieve top-k chunks -> Put chunks into prompt -> Generate answer
问题:
| 问题 | 结果 |
|---|---|
| 不该检索时也检索 | 噪音进入上下文 |
| 应该检索但没有检索 | 模型靠记忆编 |
| 检索结果过期 | 回答看似有引用但事实错误 |
| top-k 命中但不完整 | 回答缺关键条件 |
| chunk 权限错误 | 泄露内部信息 |
| 检索冲突未处理 | 模型混合多个版本 |
| 没有拒答机制 | 证据不足仍输出 |
Self-RAG / CRAG 把 RAG 从 pipeline 变成受控决策系统。
2. Self-RAG 的核心思想
Self-RAG 引入 reflection / critique token 或类似机制,让模型对过程做判断:
| 判断 | 问题 |
|---|---|
| Retrieve? | 这个问题需要外部知识吗? |
| IsRel | 检索内容和问题相关吗? |
| IsSup | 答案是否被证据支持? |
| IsUse | 输出对用户是否有帮助? |
迁移到企业系统,不一定要训练模型产生特殊 token,也可以用模块化方式实现:
Query
-> Retrieval Need Classifier
-> Retriever
-> Context Quality Evaluator
-> Answer Generator
-> Grounding / Usefulness Critic
-> Final Answer / Retry / Refuse / Escalate
3. CRAG 的核心思想
CRAG 关注“检索错了怎么办”。
典型流程:
Query -> Retrieve -> Retrieval Evaluator
-> Correct if weak
-> Web / external search or alternate retriever
-> Refine knowledge
-> Generate
企业版 CRAG 不一定使用开放 Web。金融零售通常应使用:
- alternate policy index。
- authoritative document source。
- knowledge owner confirmation。
- latest policy API。
- case management record。
- manual escalation。
关键是:
当检索质量低时,系统必须有纠错路径,而不是把低质量 context 直接塞给模型。
4. Agentic Retrieval 参考架构
User Task
-> Intent / Risk Classifier
-> Retrieval Need Decision
-> Query Rewrite / Multi-query / HyDE
-> Retrieval Router
-> Policy Index
-> Product Docs
-> Case Records
-> Transaction Evidence
-> External Approved Source
-> Context Quality Gate
-> Conflict / Freshness / Permission Check
-> Answer Generator
-> Critic
-> Final / Retry / Refuse / Escalate
-> Eval + Trace
Retrieval Router
| Query type | Source |
|---|---|
| KYC checklist | policy index + region metadata |
| AML typology | compliance knowledge base |
| Customer dispute | case record + payment network rules |
| Product fee | product disclosure + fee schedule |
| Credit rationale | credit policy + application data |
Context Quality Gate
| Check | 通过标准 |
|---|---|
| Relevance | context answers the actual question |
| Authority | source is approved |
| Freshness | policy version is active |
| Permission | user may access this source |
| Completeness | mandatory evidence fields covered |
| Consistency | no unresolved conflict |
| Citation support | every material claim has source |
5. PM 视角: RAG 产品不能只看答案
AI PM 要把 RAG 的产品承诺写清楚:
| Product question | Good PM decision |
|---|---|
| 用户何时需要引用? | 高风险/政策/客户影响任务必须引用 |
| 找不到答案时怎么办? | refuse + ask for missing info + escalation |
| 检索结果冲突怎么办? | show conflict + prefer authoritative source + human review |
| 成本怎么控制? | retrieval routing + risk-tiered retries |
| 用户如何反馈错误? | mark bad source / bad answer / outdated policy |
| 采用指标是什么? | citation acceptance、override、time saved、case completeness |
Anti-pattern
| 反模式 | 问题 |
|---|---|
| top-k 越大越好 | 噪音增加,冲突增加 |
| 有引用就可信 | 引用可能不支持回答 |
| 只看 answer accuracy | 检索、权限、freshness、conflict 都可能失败 |
| 全部 fallback 到 base model | 高风险场景会增加幻觉 |
6. BA 视角: Requirements-to-Retrieval Decisions
BA 需要把业务规则写成检索决策和质量门禁。
示例: KYC Policy Assistant
| Requirement | Retrieval / Critique rule |
|---|---|
| 系统必须按地区回答 KYC 要求 | query 必须包含 region metadata |
| 系统不得使用过期政策 | freshness gate blocks inactive version |
| 系统找不到政策时不得猜测 | context quality fail -> refuse/escalate |
| 系统应指出缺失材料 | completeness check against checklist |
| 系统应处理政策冲突 | conflict detector + human review |
BA 产物:
- source authority hierarchy。
- region/product/customer metadata map。
- no-answer scenario list。
- conflict resolution rule。
- permission test cases。
- expected citation behavior。
7. 架构师视角: 从 RAG Pipeline 到 Retrieval Control Plane
关键组件
| Component | Responsibility |
|---|---|
| Retrieval need classifier | 判断是否检索 |
| Query planner | rewrite / decompose / route |
| Retriever registry | 管理 index、source、owner、SLO |
| Context evaluator | relevance、freshness、authority、permission |
| Answer critic | groundedness、completeness、safety |
| Retry controller | 触发 alternate retrieval |
| Refusal/escalation service | 证据不足时安全退出 |
| Trace store | 保存 retrieval and critique evidence |
ADR 取舍
| Decision | Option A | Option B | 反转条件 |
|---|---|---|---|
| fixed top-k vs adaptive retrieval | 简单稳定 | 更适合复杂任务 | 查询复杂度高时用 adaptive |
| single index vs routed indexes | 易维护 | 权限和领域更清晰 | 多业务域必须 routed |
| LLM critic vs rule critic | 灵活 | 稳定可解释 | 高风险规则先行,LLM 辅助 |
| retry vs refuse | 提升覆盖 | 控制风险 | 证据不足且高风险时 refuse |
8. EvalOps 设计
Self-RAG / CRAG 的评测要覆盖每一个判断点。
| Eval | 样例指标 |
|---|---|
| Retrieval need | should_retrieve accuracy |
| Query routing | correct source family |
| Retrieval quality | recall@k、context precision、source freshness |
| Context critique | relevance/freshness/permission detection |
| Corrective retrieval | weak retrieval recovery rate |
| Grounding | supported claim ratio |
| Refusal | no-answer precision / over-refusal |
| Human usefulness | reviewer accept / edit / override |
Financial Retail Golden Set
| Case type | 必须覆盖 |
|---|---|
| policy exists | 正确引用 |
| policy missing | 拒答 |
| outdated policy | 阻断 |
| permission mismatch | 不泄露 |
| conflicting policy | 标注冲突 |
| ambiguous region | 追问 |
| customer-impacting advice | 人工复核 |
| prompt injection in source | 忽略恶意指令 |
9. 与 GraphRAG / Memory / Agent 的关系
Self-RAG / CRAG 是 control logic,不限定检索介质。
| 能力 | 如何结合 |
|---|---|
| GraphRAG | context evaluator 增加 entity/path/community support |
| Memory | retrieval need 先区分 persistent memory vs authoritative source |
| Agent tools | weak retrieval 可触发 read-only tool,而不是直接生成 |
| MCP | retriever 作为 tool contract 暴露,带权限和 audit |
| Human oversight | context fail / conflict / high risk -> HITL |
10. 金融零售场景
AML Copilot
检索源:
- typology library。
- case history。
- transaction evidence。
- SAR writing guidance。
- sanctions/PEP watchlist metadata。
纠错路径:
- typology mismatch -> alternate typology retrieval。
- missing KYC -> request investigator input。
- conflicting evidence -> escalation。
Credit Policy Assistant
关键规则:
- 不使用 base model 记忆解释政策。
- 所有 policy claim 必须有 active source。
- adverse action / eligibility 相关内容必须 human review。
Customer Service Copilot
关键规则:
- 费用、利率、承诺类回答必须引用。
- 找不到有效政策时不得安抚式编造。
- 产品销售建议需要合规话术和 suitability boundary。
11. 作品集输出
| Artifact | 内容 |
|---|---|
| Retrieval Decision Matrix | 哪些问题要检索、路由到哪里 |
| Context Quality Gate Spec | relevance、freshness、authority、permission、completeness |
| CRAG Retry ADR | weak context 时如何 retry / alternate / refuse |
| RAG Eval Dataset Card | policy exists/missing/outdated/conflict/permission/injection |
| Trace Evidence Template | 保存 query、sources、scores、critic result、final action |
12. 面试表达
30 秒版本
Self-RAG 和 CRAG 的核心是让 RAG 系统自己判断是否需要检索、检索质量是否足够、答案是否被证据支持,以及失败时是否重试、拒答或升级。企业 RAG 不能只是 top-k 加 prompt,它需要 retrieval control plane。
2 分钟版本
传统 RAG 假设检索结果可用,但金融场景里 source authority、freshness、permission、conflict 和 completeness 都会失败。Self-RAG 用 retrieve/generate/critique 的思想让系统显式判断是否检索和答案是否有支持;CRAG 进一步强调检索弱时要纠错。我的架构会包括 retrieval need classifier、query planner、retrieval router、context quality evaluator、answer critic、retry controller、refusal/escalation 和 trace store。比如 KYC 助手必须按地区和客户类型检索 active policy,过期政策或权限不匹配要阻断,冲突政策要转人工,不能靠 base model 猜。
CTO 深挖
我会把 retrieval control plane 做成可观测组件: 每次回答记录 source、version、permission filter、context score、critic result、retry path 和 final disposition。这样才能做 regression、incident triage 和 audit。
PM 深挖
产品上我要定义 no-answer UX、conflict UX、source feedback 和 reviewer override。RAG 的成功不只是 answer accuracy,还包括 citation support、source freshness、permission safety、human acceptance 和业务 cycle time。
13. 复习问题
- Self-RAG 解决了传统 RAG 的哪几个假设问题?
- CRAG 的“corrective”在企业环境中可以有哪些实现?
- Retrieval need classifier 应该如何设计?
- Context quality gate 包含哪些维度?
- 为什么有引用不等于 grounded?
- 金融 KYC / AML 场景中哪些情况必须拒答或转人工?
- 如何把 RAG critique 结果变成 audit evidence?