feat: Authority Router — Advisor collection-agnostisch, KB-2026.1 live #46
Reference in New Issue
Block a user
Delete Branch "feat/authority-router"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Was & Warum
Der gemessene #61-Slice-Gewinn (+28 Treffer, CB-100: 53→81, 0 Regr) kam bisher nicht beim Advisor an:
advisor-rag.tsfan-outete selbst über eine feste Liste expliziter Collections und umging damit das #61-Scope-Routing (das nur den Default-Pfad routet); die hochwertige Slicekb_2026_1_buildwar für den Advisor unerreichbar (zusätzlichbp_compliance_rechtauf dev = 404). Dieser Authority Router zieht den Collection-Fan-out aus dem Advisor in die Retriever-Schicht — der Advisor wird collection-agnostisch und der Gewinn landet im echten Produktpfad.Änderung
LegalRAGClient.Retrieve()+ EndpointPOST /sdk/v1/rag/retrieve {query, top_k}(authority_router.go, Handler, Route). Fan-outet server-seitig über die Broad-Authority-Base (RAG_ROUTER_COLLECTIONS, Default = die 6 historischen Advisor-Collections) + die Slice beiinKBScope, merged + dedup, sortiert nach dem Authority-Score (rerankByAuthorityläuft je Collection insearchInternal), top-K. Index-Warmup vor dem nebenläufigen Fan-out → keintextIndexEnsured-Map-Race.advisor-rag.tsruft EINMAL/retrievestatt 6-fach explizite Collections.COMPLIANCE_COLLECTIONS/searchCollectionentfernt → Advisor collection-agnostisch (VertragCompiler→Collections→Retriever→Advisor).Validierung
dedupResults(max-Score).Retrieve(), lokales bge-m3, CB-100-Stichprobe stride 5): OLD-hit 11/20 → NEW-hit 15/20, GAIN 4 (alle DS-Guidance: WP248+WP243, GL07 ×2, TDDDG), REGR 0 — reproduziert den +28/0-Regr durch den Produktionscode-Pfad.go build/vet/gofmtgrün; TS-Tests auf den Single-/retrieve-Call angepasst.Rollback / Sicherheit
Additiv: neuer Endpoint,
/search(explizite Collections) unverändert für andere Consumer.RAG_KB_SCOPE_ROUTING=false→ Router fällt auf die Broad-Base ohne Slice zurück (= bisheriges Advisor-Verhalten). Deploy ändert den Live-Advisor-Pfad (admin + ai-sdk) → Post-Deploy-Verify: DP-Frage am dev-Advisor liefert jetzt WP248/Guidance.🤖 Generated with Claude Code
Der Advisor fan-outete bisher selbst ueber eine feste Liste expliziter Collections (advisor-rag.ts) und umging damit das #61-Scope-Routing (das nur den Default-Pfad routet) → der gemessene +28-Retrieval-Gewinn (CB-100: 53→81, 0 Regr) kam nie beim Antwort-LLM an. Dieser Router zieht den Fan-out in die Retriever-Schicht: - SDK: LegalRAGClient.Retrieve() + POST /sdk/v1/rag/retrieve {query, top_k} — fan-outet server-seitig ueber die Broad-Authority-Base + die KB-2026.1-Slice bei inKBScope, merge+dedup, sortiert nach Authority-Score (rerankByAuthority je Collection), top-K. Index-Warmup vor dem nebenlaeufigen Fan-out (Map-Race-frei). Per-Env via RAG_ROUTER_COLLECTIONS. - admin: advisor-rag.ts ruft EINMAL /retrieve statt 6-fach expliziter Collections. Advisor ist collection-agnostisch (Vertrag Compiler→Collections→Retriever→Advisor); COMPLIANCE_COLLECTIONS/searchCollection entfernt. Validierung: Go-Unit (Router-Selektion, dedup); e2e gegen dev-Qdrant (echter Retrieve(), CB-100-Stichprobe stride 5): OLD-hit 11/20 → NEW-hit 15/20, GAIN 4 (alle DS-Guidance), REGR 0 — reproduziert den +28/0-Regr durch den Produktionscode. TS-Tests auf den Single-/retrieve-Call angepasst. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>