ktg-plugin-marketplace/plugins/ms-ai-architect/skills/ms-ai-engineering/references/rag-architecture/self-reflective-rag.md
Kjell Tore Guttormsen 6a7632146e feat(ms-ai-architect): add plugin to open marketplace (v1.5.0 baseline)
Initial addition of ms-ai-architect plugin to the open-source marketplace.
Private content excluded: orchestrator/ (Linear tooling), docs/utredning/
(client investigation), generated test reports and PDF export script.
skill-gen tooling moved from orchestrator/ to scripts/skill-gen/.

Security scan: WARNING (risk 20/100) — no secrets, no injection found.
False positive fixed: added gitleaks:allow to Python variable reference
in output-validation-grounding-verification.md line 109.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 17:17:17 +02:00

11 KiB

Self-Reflective RAG — Selvevaluerende retrieval

Last updated: 2026-02 Status: GA (Azure AI Foundry evaluators), Preview (agentic retrieval) Category: RAG Architecture & Semantic Search


Introduksjon

Self-Reflective RAG er en arkitektur der systemet evaluerer og raffinerer sine egne retrieval-beslutninger i en iterativ loop. I tradisjonell RAG aksepteres retrieved chunks ukritisk — selv når de er irrelevante eller utilstrekkelige. Self-reflective RAG innfører en evalueringsmekanisme som scorer retrieved dokumenter og trigger re-retrieval, query-reformulering eller fallback-strategier ved lav confidence.

To fremtredende forskningsbidrag definerer feltet: CRAG (Corrective RAG) bruker en lightweight evaluator som returnerer confidence-grader (Correct/Incorrect/Ambiguous) for å trigge korrektive handlinger, og Self-RAG der modellen kritiserer og verifiserer sine egne outputs under generering.

Azure AI Foundry tilbyr innebygde evaluatorer for RAG quality assessment (groundedness, relevance, coherence — alle 1-5 skala) som kan integreres i en feedback loop. Azure AI Search agentic retrieval (preview) forbedrer retrieval-relevans med opptil 40% gjennom LLM-assistert query planning.


Kjernekomponenter

CRAG-arkitektur

Komponent Beskrivelse Handling
Retrieval Evaluator Scorer retrieved dokumenter Confidence: Correct / Incorrect / Ambiguous
Correct (høy confidence) Dokumenter er relevante Gå direkte til generering
Ambiguous (middels) Delvis relevante Decompose-then-recompose: filtrer irrelevant innhold
Incorrect (lav confidence) Dokumenter er irrelevante Re-retrieve med reformulert query eller web search fallback

Azure AI Foundry evaluatorer

Evaluator Type Scoring Bruksområde
Retrieval Prosess 1-5 Likert Query-context relevans (uten ground truth)
Groundedness System 1-5 Likert Response alignment med context (precision)
Groundedness Pro System Binary Strikt consistency via Azure AI Content Safety
Relevance System 1-5 Likert Response adresserer query fullstendig
Response Completeness System 1-5 Likert Response dekker all kritisk info (recall)
Document Retrieval Prosess NDCG, XDCG Krever ground truth labels

Self-reflective loop

Query → Initial Retrieval → Evaluering
  ├─ Score ≥ threshold → Generer svar → Groundedness-check
  │   ├─ Grounded → Returner svar
  │   └─ Ikke grounded → Re-generate med justert prompt
  └─ Score < threshold → Query reformulering → Re-retrieval → Evaluering

Arkitekturmønstre

Mønster 1: CRAG med Azure AI Foundry evaluators

Arkitektur: Query → Azure AI Search → Retrieval Evaluator → [Correct: Generate] / [Ambiguous: Filter + Generate] / [Incorrect: Reformulate + Re-retrieve]

Implementering:

from azure.ai.evaluation import RetrievalEvaluator, GroundednessEvaluator

retrieval_eval = RetrievalEvaluator(model_config=model_config, threshold=3)
groundedness_eval = GroundednessEvaluator(model_config=model_config, threshold=3)

# Steg 1: Initial retrieval
results = search_client.search(query, vector_queries=[...], top=5)
context = "\n".join([r["chunk"] for r in results])

# Steg 2: Evaluer retrieval-kvalitet
retrieval_score = retrieval_eval(query=query, context=context)

if retrieval_score["retrieval"] >= 4:  # Correct
    response = generate_response(query, context)
elif retrieval_score["retrieval"] >= 2:  # Ambiguous
    filtered = filter_relevant_passages(context, query)
    response = generate_response(query, filtered)
else:  # Incorrect
    reformulated = reformulate_query(query)
    new_results = search_client.search(reformulated, ...)
    response = generate_response(reformulated, new_results)

# Steg 3: Groundedness-check
grounded = groundedness_eval(
    query=query, context=context, response=response
)
if grounded["groundedness_result"] == "fail":
    response = regenerate_with_stricter_prompt(query, context)

Fordeler:

  • Managed evaluators — ingen custom modelltrening
  • Integrert med Azure AI Foundry observability
  • Støtter reasoning-modeller (o-series) med is_reasoning_model=True

Anbefalt for: Produksjonssystemer der svarkvalitet er kritisk.

Mønster 2: Iterativ query refinement med Semantic Kernel

Arkitektur: Agent med OnDemandFunctionCalling → Søk → Evaluer → Reformuler → Søk igjen

Implementering (C#):

var options = new TextSearchProviderOptions
{
    SearchTime = RagBehavior.OnDemandFunctionCalling,
    Top = 5,
    PluginFunctionName = "SearchKnowledge"
};

ChatCompletionAgent agent = new()
{
    Name = "ReflectiveAssistant",
    Instructions = """
    Before answering, search for relevant information.
    After retrieving results, assess if they are sufficient.
    If not, reformulate your search query and try again.
    Maximum 3 search attempts per question.
    Always cite your sources.
    """,
    Kernel = kernel,
    UseImmutableKernel = true
};

Fordeler:

  • Agent styrer iterativ loop naturlig via instruksjoner
  • Fleksibel — kan tilpasses domene-spesifikke evalueringskriterier
  • Integrert med Semantic Kernel ecosystem

Anbefalt for: Code-first teams som vil ha full kontroll over refleksjon-logikken.

Mønster 3: Parameter sweep-optimalisering

Arkitektur: Systematisk testing av retrieval-parametere mot golden metrics

Prosess:

  1. Definer golden metrics (XDCG, Fidelity, NDCG)
  2. Opprett ground truth labels (human eller LLM-basert)
  3. Kjør parameter sweep over re-ranker thresholds, target indices, knowledge sources
  4. Velg optimal konfigurasjon basert på groundedness + relevance scores

Azure AI Foundry-støtte:

Metric Formål
Max Relevance N Maks relevans-score i top-k chunks
XDCG Resultatkvalitet innenfor top-k dokumenter
Fidelity Hvor nøyaktig retrieval matcher ground truth

Anbefalt for: Enterprise-teams med ground truth-data og kapasitet til systematisk evaluering.


Beslutningsveiledning

Beslutningstabell

Scenario Anbefalt mønster Begrunnelse
Kritisk svarkvalitet (helse, jus) Mønster 1 (CRAG + evaluators) Systematisk kvalitetssikring
Code-first team Mønster 2 (SK iterativ) Full kontroll, fleksibelt
Ground truth tilgjengelig Mønster 3 (parameter sweep) Kvantitativ optimalisering
Kostnadsbevisst Mønster 2 med max 2 iterasjoner Begrens LLM-kall

Vanlige feil

Feil Konsekvens Løsning
Uendelig refleksjon-loop Høy kostnad, timeout Sett maks iterasjoner (2-3)
Threshold for lav Alle retrievals trigges som «incorrect» Start med threshold=3, kaliber
Kun groundedness uten relevance Grounded men irrelevante svar Kombiner groundedness + relevance
Ingen baseline-metrics Umulig å vite om refleksjon hjelper Mål metrics FØR og ETTER

Røde flagg

  • Self-reflective RAG for enkle FAQ-systemer (overkill)
  • Ingen logging av evaluator-scorer over tid
  • Refleksjon uten mål (ingen metrics å optimalisere mot)
  • Groundedness Pro i produksjon uten fallback (avhengig av Content Safety API)

Integrasjon med Microsoft-stakken

Tjeneste Integrasjonspunkt
Azure AI Foundry Innebygde evaluatorer (Groundedness, Relevance, Retrieval)
Azure AI Search Retrieval backend + agentic retrieval (preview)
Semantic Kernel OnDemandFunctionCalling for iterativ retrieval
Azure OpenAI GPT-4o for evaluering og generering
Application Insights Logging av evaluator-scorer, iterasjoner, latency
Azure AI Content Safety Groundedness Pro (binary consistency check)

Offentlig sektor (Norge)

Dataplassering

  • Azure AI Foundry evaluators: Kjøres via Azure OpenAI (Sweden Central) — data i EU/EØS
  • Azure AI Content Safety: Sjekk regional tilgjengelighet for Groundedness Pro

Relevante vurderinger

Krav Implikasjon
AI Act Self-reflective mekanismer støtter krav om robusthet og pålitelighet
Forvaltningsloven Evaluator-logger dokumenterer beslutningsgrunnlag
GDPR Evaluator-kall behandler brukerdata — databehandleravtale
NSM Grading-krav → on-premises evaluering for gradert info

Kostnad og lisensiering

Kostnadskomponenter

Komponent Kostnad per query Notat
Initial retrieval ~0.5 NOK Standard search + embedding
Retrieval evaluator (GPT-4o) ~0.3 NOK LLM-basert scoring
Groundedness evaluator ~0.3 NOK LLM-basert scoring
Re-retrieval (ved feil) ~0.5 NOK Trigges i ~20-30% av queries
Gjennomsnittlig total ~1.5-2.5 NOK vs. ~1 NOK for standard RAG

ROI-vurdering

Hvis self-reflective RAG reduserer feilaktige svar fra 15% til 5%:

  • Kostnad: +50-150% per query
  • Gevinst: 10% færre feilaktige svar → redusert manuell korreksjon, høyere tillit

For arkitekten (Cosmo)

Spørsmål å stille kunden

  1. "Hva er konsekvensen av feil svar?" — Høy konsekvens (helse, jus) → self-reflective RAG
  2. "Har dere ground truth-data?" — Ja → parameter sweep, nei → LLM-basert evaluering
  3. "Hva er akseptabel ekstra latency?" — Self-reflection = 1-3 ekstra LLM-kall
  4. "Trenger dere audit trail for beslutninger?" — Evaluator-logger dekker dette
  5. "Har dere kapasitet til å kalibrere thresholds?" — Krever iterativ tuning

Fallgruver

  • Evaluator som gospel: LLM-baserte evaluatorer har selv feilrate — bruk som signal, ikke absolutthet
  • Over-refleksjon: Mer enn 3 iterasjoner gir sjelden bedre svar, men øker kostnad drastisk
  • Glemmer menneske-i-loopen: Self-reflective er ikke det samme som feilfri

Anbefalinger per modenhetsnivå

Modenhet Anbefaling
Prototyp Standard RAG. Mål baseline groundedness og relevance.
Pilot Legg til Groundedness evaluator post-generation. Logg scores.
Produksjon CRAG-mønster med retrieval + groundedness evaluering. Max 2 iterasjoner.
Enterprise Full parameter sweep + automated threshold-kalibrering + A/B-testing.

Kilder og verifisering

Kilde Konfidens URL
RAG Evaluators (Azure AI Foundry) Verified learn.microsoft.com
RAG LLM Evaluation Phase Verified learn.microsoft.com
Semantic Kernel Agent RAG Verified learn.microsoft.com
Corrective RAG (CRAG) paper Verified arxiv.org
Evaluating RAG Agents (MS Tech Community) Verified techcommunity.microsoft.com
Azure AI Search agentic retrieval (40% improvement) Baseline infoq.com