跳转至

证据聚合(Evidence Aggregation)

本页系统化 Eagle-RAG 语义层检索中的证据聚合概念:多源召回的 chunk 如何收敛为连贯、去冗、可排序的证据集,供生成消费。这是 多向量检索 的下游 —— 多向量负责检索期多空间扇出,证据聚合负责检索后的证据收敛;也是 Citationware RAG 的上游 —— 聚合后的证据集是引文的物质基础。

定位

本页是概念正本。现有原语已实现(RRF 融合 / 结构去重 / 候选注入 / 合并重排),但属于「rank-fusion + 结构去重」层级,语义聚合。语义层缺口见 §5 Roadmap


1. 概念定义

Evidence aggregation(证据聚合)= 把从多个来源(多 collection、多模态、图扩展)召回的、可能重复或重叠的 chunk,收敛为:

  1. 去冗 —— 折叠重复 / 近重复证据;
  2. 可排序 —— 按相关性给出统一排序;
  3. 连贯 —— 供生成阶段以有限上下文窗口消费的紧凑证据集。

Eagle-RAG 现有的证据聚合发生在 RetrieverOrchestrator.retrieve()eagle_rag/router/rerank_fusion.py 之间,是 多向量扇出 之后、生成 之前的中间层。


2. 现有原语(已实现)

原语 函数 行为
RRF 跨计划融合 merge_rrf (rerank_fusion.py L37) CollectionQueryPlan 结果按 1/(k+rank) 加权融合;空结果集不贡献幻影排名(G8)
跨 collection 去重 dedupe_cross_collection (rerank_fusion.py L65) source_chunk_id(document_id, path) 折叠重复逻辑 chunk,保留高排名者(G32),记 rrf_dedupe 审计
候选注入 inject_supplement_candidates (rerank_fusion.py L96) 保证 supplement top 命中进入重排池
合并后重排 rerank_merged (rerank_fusion.py L143) RerankPolicy:domain→RERANK_MERGED hook;general→qwen3-rerank;none→截断

编排入口

RetrieverOrchestrator.retrieve()eagle_rag/plugins/retriever_orchestrator.py L77):

每计划 ANN
  → 可选分路 RERANK(Tier-1 空间内)
  → merge_rrf(L177)            # 跨空间 rank 融合
  → dedupe_cross_collection(L180)  # 结构去重
  → 可选 RRF_POST_MERGE hook(L190)  # 域插件候选注入
  → rerank_merged(L200)         # 合并后重排
  → 按 source_chunk_id / (document_id, path) 去重

3. 与插件 hook 的关系

证据聚合的每一步都对插件开放扩展点(hook 一览见 插件架构):

Hook 触发时机 对证据聚合的作用
RETRIEVE_SUPPLEMENT ANN 之后、RRF 之前(L166) 域插件补充召回(如基于实体的精确命中),保证关键证据进入融合池
RRF_POST_MERGE merge_rrf 之后、rerank_merged 之前(L190) 域插件在 RRF 结果上注入额外候选(如规则强提权的 chunk)
RERANK_MERGED rerank_merged 内部 域插件用域专用 cross-encoder 对合并后证据重排

dedupe_cross_collection 在折叠时记 rrf_dedupe 审计事件(PluginAudit),可在 GET /health/pluginsrecent_decisions 追踪去重强度(见 Agent 可观测性 Layer 4)。


4. 证据聚合 vs 单纯排序

明确边界 —— 现有机制是 rank-fusion + 结构去重语义聚合:

维度 现有能力 语义聚合(理想)
去重依据 结构 id(source_chunk_id / (doc_id, path) 语义相似度(近重复 chunk 即使 id 不同也能折叠)
证据组织 扁平排序列表 按子话题分组 / 聚类
冲突处理 无(多份冲突证据并列) 冲突检测与消解 / 标注
置信度 保留 retrieval score,无聚合置信 跨证据聚合的答案级置信
压缩 长证据摘要压缩

5. Roadmap(未实现)

以下均为未实现的设计缺口,非当前能力

  • 语义相似度去重dedupe_cross_collection 当前仅按结构 id 折叠。可增 dedupe_mode="semantic",用轻量 embedding(或复用 query encoder)计算 chunk 间相似度,折叠 cos > 阈值的近重复。潜在扩展点:dedupe_cross_collectionsemantic_threshold 参数 + 新 EVIDENCE_DEDUPE hook。
  • 证据分组 / 聚类:把 top_n 证据按子话题聚类,生成阶段可按组组织答案。潜在扩展点:新 EVIDENCE_GROUP hook,输出 list[EvidenceGroup] 供 prompt 构建消费。
  • 跨证据冲突消解:检测多份证据对同一事实的矛盾陈述,标注或择优。潜在扩展点:RERANK_MERGED 后增冲突检测 hook。
  • 聚合置信度:把多证据的 retrieval score 聚合为答案级置信(如 max / mean / 加权),供 Citationware RAG 的 abstain 决策与 Agent 可观测性 的质量指标消费。
  • 证据摘要压缩:长证据集超 token 预算时做摘要压缩而非简单截断。

6. 与生成 / 引文的衔接

聚合后的 top_n 证据经 EagleMultimodalQueryEngine._prepare_generation 进入 VLM prompt(见 生成 §3.3),同时经 text_sources_from_nodes / _image_source 构造为 sources 列表返回前端。证据的「排序」直接决定 VLM 看到的上下文与 Citationware RAG[n] 引文顺序。


7. 参考