核心摘要
当证据必须保留在不同所有权或控制域中,并且检索需要在权限、时间与成本约束下动态调整时,分布式 Agentic RAG 才有价值。它不是简单地“增加 Agent”。生产设计要把模型驱动的 Proposal Plane 与确定性 Control Plane 分开,保留 Claim 到 Source 的证据关系,限制扇出,并与强单轮和固定工作流基线比较新增复杂度是否值得。
先区分两类研究问题
2026 年的两个预印本代表不同方向:
| 系统 | 研究问题 | 核心机制 | 重要边界 |
|---|---|---|---|
| SCOUT-RAG | 如何在成本和隐私约束下跨独立数据域执行 Graph-RAG? | Domain Relevance、域内 Seed、Local/Depth 与 Cross-domain/Breadth Refinement | 结果来自论文自己的多域实验设置 |
| A-RAG | 模型能否通过选择不同粒度接口改善检索? | Keyword Search、Semantic Search、Chunk Read 与迭代 Agent Loop | 结果受所选 QA 数据集、模型、Prompt 和预算限制 |
SCOUT-RAG 是分布式 Graph-RAG;A-RAG 是分层检索接口,本身不等于分布式域架构。不能把两篇论文的结果合并成一个“Agentic RAG 提升比例”。
原始 RAG 工作把参数化生成与外部非参数化记忆组合起来。Agentic Control 增加了是否检索、去哪里检索以及如何检索的决策,但没有消除语料、检索指标、Provenance 和答案评测。
什么时候确实需要分布式
以下所有权或运维边界可能要求数据域保持独立:
- 不同业务团队维护自己的索引与删除流程;
- 法律或数据地域策略不允许集中原始数据;
- 代码仓库、工单、客户记录和公开来源使用不同授权模型;
- 每个来源有独立的可用性和新鲜度契约;
- 中央图谱会造成无法接受的同步成本或故障半径。
不要因为架构图看起来可扩展就分布式化。单一所有者、单一语料的任务通常更适合词法、稠密或混合中央索引,更容易评测,也更不容易发生跨域泄露。
参考架构
模型提出动作,控制面持有 Domain Catalog、Credential、逐域过滤、时间与 Token 预算、并发、取消和停止条件。
使用 Evidence Envelope
不要把原始片段拼成匿名 Context String。每个结果都应携带 Evidence Envelope:
{
"evidence_id": "policy-a:doc-17:chunk-4",
"domain": "policy-a",
"source_revision": "rev-31",
"retrieved_at": "request-time",
"subject_scope": "tenant-a/member",
"content_digest": "sha256:...",
"text": "bounded excerpt",
"supports": ["claim-return-window"],
"expires_at": "policy-defined"
}
Envelope 支持去重、引用、陈旧 Revision 检测、删除传播和 Claim 支撑解释。模型生成摘要不能替代原始 Source。
用确定性 Gate 路由数据域
模型可以排序候选域,但 Executor 必须拒绝未授权或超预算 Proposal。下面的 Go 程序应用可信 Grant 和 Cost Budget:
package main
import "fmt"
type Domain struct {
Name string
Cost int
Authorized bool
}
func selectDomains(ranked []Domain, budget int) ([]string, int) {
selected := make([]string, 0, len(ranked))
spent := 0
for _, domain := range ranked {
if !domain.Authorized || domain.Cost <= 0 {
continue
}
if spent+domain.Cost > budget {
continue
}
selected = append(selected, domain.Name)
spent += domain.Cost
}
return selected, spent
}
func main() {
proposals := []Domain{
{Name: "policy", Cost: 2, Authorized: true},
{Name: "customer-private", Cost: 1, Authorized: false},
{Name: "product", Cost: 3, Authorized: true},
{Name: "web", Cost: 4, Authorized: true},
}
selected, spent := selectDomains(proposals, 5)
fmt.Printf("selected=%v spent=%d remaining=%d\n", selected, spent, 5-spent)
}
预期输出:
selected=[policy product] spent=5 remaining=0
生产系统必须根据已认证 Subject、Tenant、Purpose、Object Scope、数据地域和当前 Policy 计算 Authorized,不能接受模型或检索文档给出的该字段。
为检索循环定义终态
每次检索都应返回类型化结果:
| Outcome | 含义 | 后续动作 |
|---|---|---|
evidence_found |
获得带来源的可用证据 | 校验并更新 Claim Coverage |
no_match |
域查询成功但无证据 | 有预算时尝试其他允许策略 |
access_denied |
调用方无权查询域或对象 | 禁止扩大 Scope 重试 |
rate_limited |
临时容量限制 | Deadline 允许时有界退避 |
source_stale |
Revision 或新鲜度不满足 | 刷新或拒答 |
timeout_unknown |
执行结果未知 | 有副作用时先 Reconcile |
invalid_result |
Schema、大小或来源校验失败 | 隔离结果并记录失败 |
必要 Claim 获得充分证据、预算或 Deadline 耗尽、授权域全部用尽,或者重复动作不再增加证据时应停止。模型自报的 Confidence 不能单独决定终止。
明确定义部分失败
并行 Fan-out 可能降低中位延迟,同时增加尾延迟和故障组合。必须定义:
- 最大并发 Domain 数与逐域 Deadline;
- 缺少某个 Domain 是否使答案不完整;
- 争议 Claim 的最低 Source Diversity;
- 冲突处理与 Authority 规则;
- 证据足够后的 Cancellation;
- 带 Jitter 的有界 Retry;
- Partial Answer 与 Abstention 文案;
- 与返回时序无关的确定性排序。
合规域暂时不可用,不代表“没有相关政策”。没有检索到证据与存在反证是两种不同结果。
与强基线比较
基准至少包括:
- 不检索;
- 单轮词法检索;
- 单轮稠密或混合检索;
- 确定性多步骤 Workflow;
- 待评估的 Agentic 或分布式系统。
分层衡量:
| 层级 | 指标 |
|---|---|
| Domain Routing | 授权域召回、不必要 Fan-out、拒绝调用率 |
| Retrieval | Recall@k、nDCG、单位预算 Evidence Recall |
| Evidence | Provenance 完整度、Citation Precision/Recall、矛盾覆盖 |
| Answer | 任务正确性、Supported Claim Rate、Abstention 质量 |
| Operations | p50/p95/p99 延迟、调用、Token、Byte、故障、每个合格答案成本 |
| Security | 跨 Tenant 泄露、Injection 成功、SSRF 尝试、Policy Bypass |
| Recovery | Cancellation、Retry 重复、陈旧来源处理、Replay 确定性 |
TREC RAG Track 分开评估 Retrieval 与端到端 RAG,并公开 Corpus、Topic 和 Baseline。其 2026 Agent-first Track 说明自适应检索是活跃评测问题,不证明某一种架构最好。
在论文边界内理解结果
SCOUT-RAG 报告了 89 个多域查询,在覆盖不同国家域的构造环境中对比质量与成本。结论只描述该实现、数据、模型、Prompt、Baseline 与 Time Budget。
A-RAG 在选定多跳和领域 QA 数据集上评估 Keyword、Semantic 与 Chunk Interface。论文也指出 Vanilla Retrieval 仍是强基线,并提供 Failure Analysis。这个结论很重要:研究结果不能代替生产 Workload 证据。
复现任一系统时,应记录 Preprint Version、Code Commit、Dataset、Model、Prompt、Index、Budget 与 Evaluator。
安全与数据治理
分布式检索会扩大信任面:
- 检索前按 Tenant 和 Object 过滤,而不是全局最近邻后再过滤;
- 每个 Domain 使用 Scope 受限的 Credential;
- 把文档、图节点、摘要和 Tool Result 视为不可信内容;
- Allowlist 外部目的地并验证 Redirect,降低 SSRF 风险;
- 限制 Byte、Token、Node、Depth、Breadth 与保留证据;
- 把纠错和删除传播到 Index、Cache、Trace 与 Evaluation Set;
- 日志脱敏,并将运营 Metadata 与内容分离;
- 高影响决策或写操作保留人工批准。
不能因为某个 Domain 返回一段要求访问其他数据源的 Prompt,就扩大 Agent 的权限。
采用顺序
- 定义真正需要跨域证据的 Query Slice;
- 建立强中央或固定 Workflow 基线;
- 发布每个 Domain 的身份、授权、新鲜度、Schema 与延迟契约;
- 先实现确定性路由,再增加模型路由;
- 让 Agent Proposal 运行在 Shadow Mode;
- 比较 Evidence Recall、合格答案质量、尾延迟与成本;
- 测试拒绝域、陈旧来源、Injection、Timeout 与 Cancellation;
- 对一个低风险 Slice 灰度,并保留即时 Fallback;
- 只有新增 Domain 改善合格结果时才扩大。
常见问题
什么是分布式 Agentic RAG?
它允许模型跨独立控制的证据域提出自适应检索动作,同时由可信控制面执行权限、预算、证据、终止和审计。
SCOUT-RAG 与 A-RAG 是同一个系统吗?
不是。SCOUT-RAG 面向分布式 Graph-RAG;A-RAG 研究分层检索接口,两者的数据与结论必须分开。
团队何时应该使用分布式 RAG?
当所有权、Policy、Residency、Freshness 或 Operations 要求独立 Domain 时使用。简单单语料问题不应在没有收益证据时增加分布式复杂度。
模型能选择任意数据域吗?
它可以提出排序,但 Executor 必须在每次调用前,把 Proposal 与当前授权和预算取交集。
最重要的评测原则是什么?
与强简单基线比较,并衡量 Claim-level Evidence、有害失败、尾部成本和拒绝访问,而不是只评价答案是否流畅。