KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update. 74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av de faktatunge gruppene + tester). Hovedendringer (faktuelle korreksjoner + currency): - Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup). - APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i rag-caching-optimization hadde retningen baklengs — invertert til korrekt. - Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV grounding (references + activity), IKKE syntetiserte svar. Answer synthesis, ikke-minimal reasoning effort (LLM query planning) og multi-turn messages forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking. - Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus 4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA), Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview; A2A GA (apr 2026). - Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/ steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool + Hosted browser + bring-your-own-machine. - Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil), 2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac, chunking). - Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent calls the flow"; App Service innebygd MCP (preview) lagt til. - M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni); "Tenant graph grounding" -> "Work IQ". - Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01). - Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices -> ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den presenteres som go-forward. Gateway-topologi-tabell-feil rettet. - Alle 74 Last updated -> 2026-06-19. Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret, ingen resync. validate 239 PASS, kb-integrity 115/115 (262 orphan-warnings uendret), gitleaks clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
11 KiB
Hierarchical RAG Patterns — Multi-nivå retrieval
Last updated: 2026-06-19 | Verified: MCP 2026-06-19 Status: GA (index projections), Preview (agentic retrieval) Category: RAG Architecture & Semantic Search
Introduksjon
Hierarchical RAG organiserer kunnskap i multi-nivå strukturer i stedet for flat chunk-indeksering. Ved å etablere relasjoner mellom parent-dokumenter, seksjoner og chunks muliggjøres en «zoom inn/ut»-mekanisme der søk starter bredt (dokumentnivå) og driller ned til relevante segmenter.
Azure AI Search implementerer hierarkisk RAG gjennom index projections som håndterer one-to-many relasjoner mellom kildedokumenter og chunks. Document Intelligence Layout skill bevarer dokumentstruktur (headings, avsnitt) som muliggjør hierarkisk navigasjon.
Forskning (2025-2026) viser at hierarkisk retrieval gir 47% høyere Hit@1 og opptil 250x reduksjon i token-kostnad sammenlignet med flat retrieval, fordi søkeområdet reduseres gjennom coarse-to-fine filtrering.
Kjernekomponenter
Parent-child relasjoner i Azure AI Search
Azure AI Search tilbyr tre arkitekturmønstre for parent-child indeksering:
| Mønster | Beskrivelse | Brukstilfelle |
|---|---|---|
| Single index, repeating parent fields | Parent-metadata repeteres per chunk | Standard RAG, enkel query-logikk (anbefalt) |
| Single index, mixed document shapes | Parents og chunks co-eksisterer | Fulldokument-søk + chunk-søk i én indeks |
| Separate parent-child indexes | Dedikert parent-index + child-index | Enterprise med strikt separasjon, compliance |
Index projection-konfigurasjon
{
"indexProjections": {
"selectors": [
{
"targetIndexName": "my_consolidated_index",
"parentKeyFieldName": "parent_id",
"sourceContext": "/document/pages/*",
"mappings": [
{ "name": "chunk", "source": "/document/pages/*" },
{ "name": "chunk_vector", "source": "/document/pages/*/chunk_vector" },
{ "name": "title", "source": "/document/title" }
]
}
],
"parameters": {
"projectionMode": "skipIndexingParentDocuments"
}
}
}
Nøkkelparametere:
| Parameter | Verdier | Beskrivelse |
|---|---|---|
projectionMode |
skipIndexingParentDocuments / includeIndexingParentDocuments |
Kun chunks eller begge |
parentKeyFieldName |
parent_id, text_parent_id |
Felt som kobler chunk → parent |
sourceContext |
/document/pages/* |
Enrichment path for granularitet |
Automatisk chunk-ID generering
Azure AI Search genererer chunk-IDer basert på parent-ID:
- Parent:
aa1b22c33 - Chunk 1:
aa1b22c33_pages_0 - Chunk 2:
aa1b22c33_pages_1
Hash-komponenten endres ved parent-oppdatering → sikrer change tracking.
Arkitekturmønstre
Mønster 1: Single index med parent-metadata (anbefalt)
Arkitektur: Data source → Indexer → Document Layout → Text Split → Embedding → Index projections (parent fields repeteres per chunk)
Index-schema:
{
"fields": [
{ "name": "chunk_id", "type": "Edm.String", "key": true },
{ "name": "parent_id", "type": "Edm.String", "filterable": true },
{ "name": "chunk", "type": "Edm.String", "searchable": true },
{ "name": "chunk_vector", "type": "Collection(Edm.Single)" },
{ "name": "title", "type": "Edm.String", "filterable": true },
{ "name": "section_heading", "type": "Edm.String", "filterable": true },
{ "name": "page_number", "type": "Edm.Int32", "filterable": true }
]
}
Fordeler:
- Enklest å implementere og vedlikeholde
- Én query gir chunks med full parent-kontekst
- Metadata-filtrering (tittel, seksjon) for hierarkisk drill-down
Anbefalt for: 80% av RAG-løsninger, spesielt ved enkel dokumentstruktur.
Mønster 2: Multi-resolution retrieval med lookup-queries
Arkitektur: Child index (chunks) + Parent index (summaries/metadata) → Vector search på child → Lookup til parent
Implementering:
# Steg 1: Hent relevante chunks
child_results = child_client.search(
vector_queries=[VectorQuery(vector=query_embedding, k=5)],
select=["chunk_id", "parent_id", "chunk"]
)
# Steg 2: Lookup parent-dokumenter
parent_ids = {r["parent_id"] for r in child_results}
parent_docs = parent_client.search(
filter=f"parent_id in ({','.join(parent_ids)})",
select=["parent_id", "title", "summary"]
)
# Steg 3: Assembler kontekst
context = []
for chunk in child_results:
parent = next(p for p in parent_docs if p["parent_id"] == chunk["parent_id"])
context.append({
"chunk": chunk["chunk"],
"source": parent["title"],
"summary": parent["summary"]
})
Fordeler:
- «Zoom ut» fra chunk til fullt dokument
- Parent-summary gir LLM bedre kontekstuell forståelse
- Sporbarhet for citation og audit
Anbefalt for: Enterprise RAG med krav til kildehenvisning og compliance.
Mønster 3: Retrieval cascade (Summary → Section → Chunk)
Arkitektur: Tre indeksnivåer med progressiv filtrering:
Nivå 1: Document summaries → Velg relevante dokumenter (top-10)
Nivå 2: Section headings → Velg relevante seksjoner (top-20)
Nivå 3: Chunks → Hent detaljerte segmenter (top-5)
Fordeler:
- Drastisk reduksjon av søkerom (10-100x)
- Minimerer «lost in the middle»-problemet
- Opptil 250x reduksjon i token-kostnad
Ulemper:
- Tre separate søkeoperasjoner (økt latency)
- Kompleks indeksstruktur
- Krever generering av summaries per dokument/seksjon
Anbefalt for: Store dokumentsamlinger (>100K docs) der flat søk gir dårlig precision.
Beslutningsveiledning
Beslutningstabell
| Scenario | Volum | Anbefalt mønster |
|---|---|---|
| Standard RAG | <50K docs | Mønster 1 (single index, parent fields) |
| Krav til citation/sporbarhet | Alle | Mønster 2 (lookup queries) |
| Stort volum, lav precision | >100K docs | Mønster 3 (retrieval cascade) |
| Compliance/audit | Alle | Mønster 2 med dataDeletionDetectionPolicy |
Vanlige feil
| Feil | Konsekvens | Løsning |
|---|---|---|
| Ingen parent-child mapping | Kan ikke spore chunk → kildedokument | Bruk index projections med parentKeyFieldName |
Ignorerer dataDeletionDetectionPolicy |
GDPR right to erasure brytes | Konfigurer cascade deletion på data source |
| Flat index for >100K docs | Dårlig precision, høy token-kostnad | Vurder retrieval cascade |
| Manglende metadata (section, page) | Ingen mulighet for hierarkisk filtrering | Legg til section_heading og page_number |
Integrasjon med Microsoft-stakken
| Tjeneste | Integrasjonspunkt |
|---|---|
| Azure AI Search | Index projections, parent-child mapping, lookup queries |
| Azure AI Document Intelligence | Document Layout skill med markdownHeaderDepth: "h3" |
| Azure Content Understanding | Semantisk chunking med kryssende sider |
| Azure OpenAI | Summary-generering for retrieval cascade |
| Semantic Kernel | TextSearchProvider med namespace-filtrering |
| Azure Cosmos DB | Alternativ parent-child storage med hierarkisk query |
Document Layout skill for hierarkisk chunking
Anbefaling (2026-06): For nye skillsets anbefaler Microsoft nå Azure Content Understanding-skill (
#Microsoft.Skills.Util.ContentUnderstandingSkill) i stedet for Document Layout-skill — den samler semantisk chunking, AI-genererte bildebeskrivelser og forbedret tabelluttrekk i én skill. Document Layout-skill (under) er fortsatt støttet og dokumentert for eksisterende pipelines.
{
"@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
"context": "/document",
"outputMode": "oneToMany",
"markdownHeaderDepth": "h3",
"inputs": [{"name": "file_data", "source": "/document/file_data"}],
"outputs": [{"name": "markdown_document", "targetName": "markdownDocument"}]
}
Output: Markdown med # H1, ## H2, ### H3 som bevarer hierarkisk dokumentstruktur.
Offentlig sektor (Norge)
Dataplassering
- Azure AI Search: Norway East — hierarkisk indeks forblir i Norge
- Document Intelligence: West Europe — dokument-parsing i EU
Relevante vurderinger
| Krav | Implikasjon |
|---|---|
| Forvaltningsloven | Chunks må spores til kildedokument — krev parent-child mapping |
| GDPR Art. 17 | Sletting av kildedokument MÅ kaskadere til alle chunks |
| AI Act | Hierarkisk sporbarhet støtter forklarbarhetskrav |
| Arkivloven | Parent-index bevarer dokumentkontekst for arkivformål |
Kostnad og lisensiering
Kostnadskomponenter
| Komponent | Kostnad | Notat |
|---|---|---|
| Index projections | Inkludert i AI Search | Ingen ekstra kostnad |
| Document Layout skill | ~$0.01-0.05/side | Document Intelligence-prising |
| Summary-generering (cascade) | GPT-4o per dokument | ~$0.01-0.05/dokument |
| Ekstra indekslagring (parent-felter) | Per GB | ~20-30% økning ved repeterte felter |
Optimaliseringstips
- Bruk
projectionMode: skipIndexingParentDocumentsfor å unngå dobbelt lagring - Generer summaries off-peak for å minimere compute-kostnad
- Sett
stored: falsepå vektorfelt for å spare lagringsplassn
For arkitekten (Cosmo)
Spørsmål å stille kunden
- "Trenger brukerne å se hvilke dokumenter et svar kommer fra?" — Hvis ja, krev parent-child mapping
- "Hvor mange dokumenter er i samlingen?" — >100K → vurder cascade
- "Er det compliance-krav til sletting (GDPR)?" — Krev cascade deletion
- "Har dokumentene tydelig struktur (headings, kapitler)?" — Bruk Document Layout skill
- "Hva er akseptabel query-latency?" — Cascade = 2-3x latency
Fallgruver
- Over-engineering for småskala: Single index med parent fields er nok for <50K docs
- Glemmer deletion policy: GDPR-brudd hvis chunks overlever parent-sletting
- Cascade uten summaries: Første nivå i cascade trenger AI-genererte summaries for å fungere
Anbefalinger per modenhetsnivå
| Modenhet | Anbefaling |
|---|---|
| Prototyp | Single index med parent_id felt. Ingen cascade. |
| Pilot | Index projections med parent fields + Document Layout. |
| Produksjon | Mønster 2 (lookup queries) + cascade deletion policy. |
| Enterprise | Retrieval cascade + AI-summaries + automated quality evaluation. |
Kilder og verifisering
| Kilde | Konfidens | URL |
|---|---|---|
| Define index projections (Azure AI Search) | Verified | learn.microsoft.com |
| Chunk and vectorize by document layout | Verified | learn.microsoft.com |
| RAG and generative AI (Azure AI Search) | Verified | learn.microsoft.com |
| Model complex data types | Verified | learn.microsoft.com |
| Hierarchical RAG research | Baseline | emergentmind.com |