RAG Routing — Eén API, Meerdere Architecturen
RAG Routing
Eén API-endpoint. Tien ondersteunde retrieval-architecturen. De router leert van uw historische queryverkeer en stuurt elke nieuwe vraag naar de backend die er het meest waarschijnlijk correct op kan antwoorden — tegen de laagste kosten die nog steeds aan uw kwaliteitsdrempel voldoen.
De drie architecturen, conceptueel
De meeste productie-RAG-systemen leveren één retrieval-architectuur en noemen het klaar. Wij leveren een router die kiest tussen architectonisch verschillende stacks — de juiste keuze is zelden dezelfde voor elke vraag in uw corpus.
→ stuff context
→ generate
Het best voor
Opzoeken van enkele feiten, FAQ-achtige vragen, "wat is X?"-vragen over corpora met platte chunks.
→ Reciprocal Rank Fusion
→ cross-encoder reranker
→ generate
Het best voor
Queries waarbij lexicale en semantische signalen het oneens zijn — codes, namen, afkortingen, technische terminologie, foutmeldingen.
at ingest → agent walks tree
→ opens / reads sections
→ generate
Het best voor
Multi-hop lezen van lange gestructureerde documenten — juridische contracten, financiële 10-Ks, technische PDF's waarbij context over niet-aangrenzende secties verspreid is.
Hoe de router daadwerkelijk beslist
De meeste gepubliceerde RAG-routers classificeren de query vooraf op complexiteit. De onze niet. Wij gebruiken geleerde routing: elke succesvolle query wordt opgeslagen samen met de backend die hem heeft beantwoord, en nieuwe queries worden gematcht tegen die historie op basis van embedding-similariteit.
Het opzoek-algoritme — wat er bij elke query draait
- Hash de vraag met SHA-256, ingekort tot een sleutel van 16 tekens, en controleer de routing-store per klant in Cloudflare KV op een eerdere exacte match. Als de vraag al eerder is beantwoord, wordt deze onmiddellijk doorgestuurd naar de backend die het de vorige keer het beste deed.
- Bij een miss wordt de vraag geëmbed en cosinus-doorzocht tegen de gecachte index van historische vraag-embeddings. Als de similariteit van de naaste buur groter is dan 0.88, wordt doorgestuurd naar de bijbehorende backend.
- Als er geen match boven de drempel is, valt het systeem terug op de standaard-backend van de klant voor dat corpus.
- Nadat het antwoord is gegenereerd, wordt de tupel (vraaghash, backend, kwaliteitsscore) teruggeschreven naar de routing-historie per klant, ter voeding van toekomstige opzoekingen.
De tien backends waartussen we vandaag routen
De router stuurt door naar één van tien benoemde backends. Drie ervan zijn "Tier 3-vormig" (hiërarchisch of grafiek-versterkt); de andere zijn pure vector-engines die we behandelen als Tier 1 met andere operationele afwegingen.
Tier 2 (BM25 + dense fusion + cross-encoder reranker) is vandaag beschikbaar in ons workflow-canvas als composable node. De auto-router pakt dit als volgende op zodra de routing-data per corpus dit rechtvaardigt.
API-oppervlak — één endpoint, audit-grade transparantie
De router is onzichtbaar voor uw caller. Eén request-vorm; het antwoord bevat de routing-beslissing, zodat u kunt auditen welke backend heeft geantwoord (en waarom).
# Eén endpoint. De router beslist welke backend gebruikt wordt.
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"
}'
# Response — chunks die de agent nodig heeft om het antwoord te onderbouwen.
{
"items": [
{
"content": "Section 7.3 is superseded by …",
"metadata": { "doc": "amendment-2024.pdf", "section": "II.4.b" },
"score": 0.91
}
/* … */
],
"routing": {
"backend": "pageindex", // doorgestuurd naar tier-3 page-index
"match_source": "learned-history", // arena · auto-fix · of fallback
"similarity": 0.92, // ≥ 0.88 drempel
"ttl_remaining":"23d 14h" // versheidsvenster voor herbenchmark
}
}
De routing-metadata wordt momenteel intern gelogd en zichtbaar gemaakt via het audit-spoor. Inline-respons-aflevering wordt gedurende Q3 2026 uitgerold.
Hoe dit verschilt van bestaande routers
RAG-routing is geen nieuw idee — academische routers zoals Adaptive-RAG en Probing-RAG classificeren queries al op complexiteit. Het onderscheidende is dat Divinci routeert tussen architectonisch verschillende retrieval-stacks, geleerd van uw eigen verkeer, achter één managed endpoint.
| Aanbieding | Waar tussen wordt geroute | Routing-as | Managed? |
|---|---|---|---|
| Divinci RAG Routing | 10 backends (PageIndex, RAPTOR, LightRAG, neo4j, 6 vector-engines) | Architectuur · geleerd uit historie | Ja — één endpoint |
| LlamaIndex RouterRetriever | BYO retrievers | LLM/Pydantic-selector | Nee — bibliotheek die u zelf samenstelt |
| Adaptive-RAG (Jeong et al.) | no-retrieval / single-step / iteratief | Diepte · query-complexiteitsclassificatie | Onderzoek |
| Cloudflare AI Search (ex-AutoRAG) | Eén hybride pipeline | Geen routing | Ja |
| AWS Bedrock Knowledge Bases | Eén hybride pipeline | Geen routing | Ja |
| Azure AI Search Agentic Retrieval | Hybride + aparte agentische modus | Gebruiker kiest modus handmatig | Ja |
| VectifyAI PageIndex | Eén architectuur (hiërarchische traversal) | Geen routing | OSS standalone |
De eerlijke zwakte in onze pitch: per-query RAG-routing als concept is niet nieuw. We hebben routing niet uitgevonden. Het echte onderscheid is de combinatie van (a) routen tussen architectonisch verschillende stacks in plaats van diepte-varianten, (b) PageIndex- / RAPTOR- / LightRAG-achtige hiërarchische traversal als first-class backend in plaats van een apart product, en (c) één managed endpoint in plaats van een bibliotheek die u zelf samenstelt en beheert.
Hoe routing-voorkeuren worden gevoed
Uw routing-model is niet voorgetraind — het leert van uw verkeer. Drie signalen voeden de routing-historie-store.
- Arena-selectie. Stuur een query door RAG Arena over meerdere backends, scoor de varianten naast elkaar, kies de winnaar. Het paar (vraag, winnende-backend) belandt in de routing-store.
- Auto-fix-uitvoer. Wanneer onze auto-fix vergelijkende retrievals uitvoert op representatieve queries tijdens ingestie of geplande audits, wordt de best presterende backend per query naar dezelfde store geschreven.
- Productiefeedback. Succesvolle queries (die boven uw kwaliteitsdrempel scoorden via onze online evaluatie-gate — zie de regressietestpost) schrijven hun paar (vraaghash, backend) op request-time terug in de routing-store, met een TTL van 30 dagen, zodat het routing-model fris blijft naarmate uw corpus evolueert.
Wanneer dit het meest uitmaakt
Een homogeen corpus met uniforme queryvormen heeft hier weinig baat bij — kies handmatig één backend en u bent klaar. De wedge ligt bij gemengde corpora en gemengde queryvormen.
Een juridisch team dat zowel "wat is de definitie van overmacht in ons standaardcontract?" stelt (Tier 1, sub-300 ms) als "in onze 47 leverancierscontracten, welke hebben niet-standaard opzeggingsclausules en wat zijn de patronen?" (Tier 3, page-index-traversal van meerdere seconden) wil niet één backend kiezen. Ze willen dat de eenvoudige vraag snel en goedkoop terugkomt, en dat de diepe vraag correct terugkomt zelfs als die meer kost — zonder twee stacks te hoeven beheren.
Dat is de situatie waarin één managed endpoint dat routeert tussen architectonisch verschillende backends zijn investering waard maakt. Als uw verkeer uniform is, heeft u dit niet nodig. Als uw verkeer gemengd is — wat de meeste echte enterprise-corpora zijn — wel.
Verdere lectuur en gerelateerde producten
De architectuur-deep-dive leeft in onze blogpost The Future of RAG Systems: Beyond Simple Document Retrieval. De arena die stap 1 hierboven aandrijft staat op RAG Arena & Dynamic Routing. Routing-beslissingen worden audit-verankerd via hetzelfde release-manifest-patroon dat we over het hele platform gebruiken — zie Validating and Releasing Custom LMs in Regulated Fields. En als u wilt weten hoe we de kwaliteit van retrieval online evalueren (het signaal dat stap 3 hierboven voedt), is de regressietestpost de plek om te beginnen.