RAG 路由 — 一个 API,多种架构
RAG 路由
一个 API 端点。十种受支持的检索架构。路由器从您的历史查询流量中学习,并将每个新问题分派到最有可能正确回答它的后端——以仍能通过您质量基线的最低成本完成。
三种架构,从概念上看
大多数生产级 RAG 系统只发布一种检索架构,就此收工。我们发布的是一个能够在架构上截然不同的技术栈之间进行选择的路由器——对您语料库中的每个查询而言,正确选择很少是同一个。
→ stuff context
→ generate
最适合
单一事实查找、FAQ 形式的查询,以及在扁平切块语料库上"X 是什么?"类型的问题。
→ Reciprocal Rank Fusion
→ cross-encoder reranker
→ generate
最适合
词法信号与语义信号产生分歧的查询——代码、名称、首字母缩略词、技术词汇、错误字符串。
at ingest → agent walks tree
→ opens / reads sections
→ generate
最适合
对长篇结构化文档的多跳阅读——法律合同、财务 10-K、上下文跨越非相邻章节的技术 PDF。
路由器实际上是如何决策的
大多数已发表的 RAG 路由器会预先按复杂度对查询进行分类。我们的不会。我们采用学习式路由:每个成功的查询都会与回答它的后端一起存储,新查询通过 embedding 相似度与该历史进行匹配。
查找算法——每次查询都会运行
- 对问题进行哈希,使用 SHA-256 截断为 16 字符的键,并在 Cloudflare KV 中按客户检查路由存储是否存在完全相同的先前匹配。如果之前已回答过,立即分派到上次表现最好的后端。
- 未命中时,对问题进行 embedding,并对历史问题 embedding 的缓存索引进行余弦搜索。如果最近邻的相似度超过 0.88,则分派到其关联的后端。
- 如果没有匹配项超过阈值,则回退到客户为该语料库设置的默认后端。
- 答案渲染完成后,(问题哈希、后端、质量分数)三元组将被写回该客户的路由历史存储,为后续查找播种。
我们今天在十种后端之间路由
路由器会分派到十个命名后端之一。其中三个是"Tier 3 形态"(层级或图增强);其余是纯向量引擎,我们视为具有不同运维取舍的 Tier 1。
Tier 2(BM25 + 稠密融合 + cross-encoder 重排)今天作为可组合节点在我们的工作流画布中上线。当按语料库的路由数据证明合理时,自动路由器将接下来对其支持。
API 表层——一个端点,审计级透明度
路由器对调用方是不可见的。一种请求形态;响应中包含路由决策,方便您审计是哪个后端回答(以及为什么)。
# 一个端点。路由器决定使用哪个后端。
curl -X POST https://api.divinci.app/v1/rag/query \
-H "Authorization: Bearer $DIVINCI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "What clauses in the 2024 amendment override section 7.3?",
"corpus": "legal-contracts-q4"
}'
# 响应——智能体用于支撑答案的文本块。
{
"items": [
{
"content": "Section 7.3 is superseded by …",
"metadata": { "doc": "amendment-2024.pdf", "section": "II.4.b" },
"score": 0.91
}
/* … */
],
"routing": {
"backend": "pageindex", // 分派至 tier-3 page-index
"match_source": "learned-history", // arena · auto-fix · 或 fallback
"similarity": 0.92, // ≥ 0.88 阈值
"ttl_remaining":"23d 14h" // 重新基准评估前的新鲜度窗口
}
}
目前 routing 元数据在内部记录,并通过审计轨迹对外暴露。内联响应交付将在 2026 年第三季度逐步推出。
与现有路由器的差异
RAG 路由并非新想法——Adaptive-RAG 和 Probing-RAG 这类学术路由器已经按复杂度对查询进行分类。差异之处在于 Divinci 在架构上截然不同的检索栈之间路由,从您自身的流量中学习,并置于单个托管端点之后。
| 方案 | 在什么之间路由 | 路由轴 | 是否托管? |
|---|---|---|---|
| Divinci RAG Routing | 10 个后端(PageIndex、RAPTOR、LightRAG、neo4j、6 个向量引擎) | 架构 · 从历史中学习 | 是——单一端点 |
| LlamaIndex RouterRetriever | 自带检索器 | LLM/Pydantic 选择器 | 否——需自行组装的库 |
| Adaptive-RAG (Jeong et al.) | 无检索 / 单步 / 迭代 | 深度 · 查询复杂度分类器 | 研究项目 |
| Cloudflare AI Search(前 AutoRAG) | 一条混合流水线 | 无路由 | 是 |
| AWS Bedrock Knowledge Bases | 一条混合流水线 | 无路由 | 是 |
| Azure AI Search Agentic Retrieval | 混合 + 单独的智能体模式 | 用户手动选择模式 | 是 |
| VectifyAI PageIndex | 单一架构(层级遍历) | 无路由 | 开源独立项目 |
我们叙述中的诚实弱点:按查询进行 RAG 路由作为一个概念并不新鲜。我们没有发明路由。真正的差异在于以下三点的组合:(a)在架构上截然不同的栈之间路由,而非深度变体;(b)将 PageIndex / RAPTOR / LightRAG 风格的层级遍历作为一等后端纳入,而非单独的产品;(c)一个托管端点,而非一个需要您自己组装并运维的库。
路由偏好是如何被播种的
您的路由模型不是预训练的——它从您的流量中学习。三种信号会写入路由历史存储。
- Arena 选择。通过 RAG Arena 在多个后端之间运行某个查询,对各变体并排打分,挑出获胜者。(问题、获胜后端)对将进入路由存储。
- Auto-fix 输出。当我们的 auto-fix 在摄取或定期审计期间对代表性查询运行对比检索时,每个查询表现最好的后端会被写入同一存储。
- 生产反馈。成功的查询(即通过我们的在线评估闸门得分高于您质量阈值的查询——参见回归测试文章)在请求时将其(问题哈希、后端)对写回路由存储,TTL 为 30 天,确保路由模型随语料库演进保持新鲜。
这项能力在什么时候最重要
查询形态统一的同质语料库收益有限——手动选一个后端就够了。真正的契入点在于混合语料库与混合查询形态。
一个法律团队既会问"我们标准合同中不可抗力的定义是什么?"(Tier 1,sub-300 ms),又会问"在我们 47 份供应商合同中,哪些有非标准的终止条款,模式是什么?"(Tier 3,多秒级 page-index 遍历),他们不想只选一个后端。他们希望简单问题快速且廉价地返回,深度问题即使代价更高也能正确返回——而无需运维两套栈。
这正是一个跨架构差异化后端进行路由的托管端点真正发挥价值的场景。如果您的流量是统一的,您并不需要它。如果您的流量是混合的——大多数真实企业语料库都是——那您需要它。
更深入的阅读与相关产品
架构深度解析见我们的博客文章 The Future of RAG Systems: Beyond Simple Document Retrieval。驱动上述第 1 步的竞技场位于 RAG Arena & Dynamic Routing。路由决策通过我们整个平台所用的同一种发布清单模式进行审计锚定——参见 Validating and Releasing Custom LMs in Regulated Fields。如果您想了解我们如何在线评估检索质量(即驱动上述第 3 步的信号),回归测试文章是起点。