ms-ai-architect/skills/ms-ai-engineering/references/rag-architecture/self-reflective-rag.md
Kjell Tore Guttormsen ddce43d8b2 feat(ms-ai-architect): Spor 1 — Port-1-substrat migrert på 4 ikke-advisor-skills (243 Source + 327 Type + 325 TOC + stale-verified poison fjernet) [skip-docs]
Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/
infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk
(fra første ## seksjon), advisor urørt (0 endringer).

To applier-fixes oppdaget under kjøring (TDD, RED→GREEN):
- insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer
  500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor
  scan-vinduet, applierens post-write-assertion fanget + restaurerte).
- normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i
  500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var
  ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent
  utvidelse av carve-out; kun stray metadata-linjer, aldri prosa.

test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet
(fila bærer nå Source). Suite 728/728 grønn.
2026-07-04 10:19:11 +02:00

12 KiB

Self-Reflective RAG — Selvevaluerende retrieval

Last updated: 2026-06-24 Status: GA (Microsoft Foundry evaluators), Preview (agentic retrieval) Category: RAG Architecture & Semantic Search Type: reference Source: https://learn.microsoft.com/azure/foundry/concepts/evaluation-evaluators/rag-evaluators


Innhold

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.

Microsoft 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

Microsoft 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 Microsoft 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 Microsoft 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

Microsoft 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
Microsoft 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

  • Microsoft 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 (Microsoft 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