RAG Query Router 适合解决什么问题?
简化版
Query Router 在多知识库、多检索器或“无需检索/需工具”并存时,选择查询路径,避免所有请求广播到所有后端。它可按意图、实体、语言、时效和风险路由到 BM25、向量、SQL、Web 或人工;必须支持多路、回退和低置信处理,不能让一次错误分类把真证据永久挡掉。
详细版
先定义互斥/可组合的 route schema 和每条路线能力,规则处理显式实体与权限,轻量分类器/LLM 处理语义意图。路由输出 {routes, confidence, filters, reason},高置信走单路,歧义并行 2~3 路后融合,低置信走通用检索或澄清。权限过滤在路由前后都不能放宽。
评测除 route accuracy 外,还要看 oracle route coverage、端到端 evidence Recall、零结果恢复、P95 和成本。建立混合意图、短查询、错别字、跨域和时效问题切片;记录候选路线与最终命中,定期从“路由错但其他路有答案”的反事实日志补训练集。
query -> 权限/实体规则 -> 意图路由
├─ lexical/vector KB
├─ SQL/业务工具
├─ Web/实时源
└─ no-retrieval / clarify
完整版教学
一、什么时候需要 Router
单一小知识库直接混合检索即可,引入路由只增加故障点。当系统有多个领域库、结构化数据库、实时 Web、代码索引和无需检索的闲聊时,全广播成本高、噪声大,Router 才有价值。
路由目标不是漂亮地给问题分类,而是选择最可能找到可用证据的执行计划。最终衡量应是答案和成本,而非单独追求意图标签准确率。
二、路线怎样定义才可执行
每条 route 需要数据范围、支持查询、时效、权限、延迟和回退。类别太粗无优化价值,太细则标注困难且容易误路由。路线可以多选,因为“对比内部价格与市场价格”同时需要内部数据库和 Web。
| Route | 适用 | 不适用 |
|---|---|---|
| lexical | 编号、专名、错误码 | 大幅改写语义 |
| vector | 自然语言、概念匹配 | 严格范围条件 |
| SQL/tool | 精确实时业务数据 | 开放解释文本 |
| Web | 最新外部信息 | 私有内部政策 |
| no_retrieval | 改写、闲聊 | 需要事实依据 |
记忆钩子:Router 不是决定“答案是什么”,而是决定“到哪里、用什么方式找证据”。
三、规则、分类器与 LLM 如何分工
明确产品号、URL、文件类型和命令可用规则,快速可解释;统计分类器适合稳定意图;LLM 处理开放语言和多意图,但成本高且可能生成不存在 route。组合通常是硬规则优先,再用模型,输出受 enum/schema 限制。
{"routes":["internal_policy","sql_orders"],
"confidence":0.78,
"filters":{"product":"mobile"},
"needs_clarification":false}
路由器不得生成租户权限,filters 需服务端校验。不存在的路线直接拒绝,不做字符串动态调用。
四、错误路由为何代价很大
单路 hard routing 能省成本,但选错后召回上限为零。Soft routing 取 Top-2/3 路并行,提高覆盖却增加延迟。可以按置信度和风险动态决定:高置信单路,边界多路,低置信通用混合或提问。
假设单路平均 100ms、错误率 8%,双路 160ms、错误率 2%。只对 20% 低置信请求双路,平均约 112ms,却能修复大部分错误,是常见折中。实际需要用反事实 route 评测。
五、路由与检索失败如何闭环
选中路线零结果,不一定无答案。可检查 query 是否过严,再触发备用 lexical/vector、相邻领域或澄清。回退顺序必须配置化,并设置最大跳数,防循环和成本失控。高风险实时数据不能退到过期静态库假装回答。
Trace 保存初始 routes、每路候选、回退原因和最终证据。离线可重放到所有允许路线,判断“如果选另一条是否找到真值”,这形成 Router 的 hard negatives。
六、多路结果怎样融合
多路原始分数不可直接比较,使用 RRF 或统一 reranker。文档附 route/source,去重同一内容。结构化工具结果可能权威高但格式不同,可先转成带 schema 的 evidence,而不是与文本向量分数硬相加。
冲突时按权威、时间和适用范围处理,不能因为某路返回快就获胜。Router 可以提供先验权重,但最终回答仍需引用具体证据。
七、如何评测 Router
标注每个 query 的可接受 route 集,而非唯一标签;有时多个路径都能找到答案。测 top-1 route accuracy、top-k coverage、端到端 evidence hit、答案、延迟与调用成本。还要报告 low-confidence coverage 和回退成功率。
例如 top-1 route 准确 88%,top-2 覆盖 97%,但端到端证据命中只有 80%,说明各 route 内检索还有问题。若 oracle route 下也低,就不应继续调分类器。分层指标避免把所有失败归给 Router。
八、常见误区与追问
- 误区:领域分类准确率高,RAG 就会好。 route 内检索、融合和生成仍可能失败。
- 误区:每个查询只能选一条路线。 多意图和歧义查询需要 soft routing。
- 误区:低置信时随便选最大类。 应走通用回退或澄清,并限制成本。
- 追问:何时不需要 Router? 数据源少、混合检索成本可接受且路由错误代价更高时。
- 追问:路由零结果怎么办? 触发受控备用路线、放宽软过滤或询问用户,硬权限不放宽。
- 追问:如何防 LLM 发明 route? 枚举 schema、服务端 allowlist 和未知值拒绝。
九、加强记忆
Query Router 可记成“分路线、看置信、多路兜底、失败回退、端到端评”。只有多数据源差异足够大时才引入;规则处理硬实体,模型处理开放意图;低置信不硬赌,允许并行和澄清。最终以证据命中、答案、延迟和成本判断,而不是让路由分类分数喧宾夺主。