Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:
1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
`Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
132 bokføres til R13b/R14.
Tre korreksjoner av premisser som sto i ordren og STATE:
«ca 320 produkt» -> 451 (case-sensitivt nett manglet 327 lowercase
TOC-ankre + 99 identifikatorer; sann nevner 1 638)
«169 headinger» -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
internt inkonsistent med sin egen topp-variant (204)
«417 matcher ingen
populasjon» -> 417 er cosmo-headinger utenfor kodefences; briefens
nevner var reell hele tiden
Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.
TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.
Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.
Verifisering (alle 7 kriterier fra ordren):
G1 persona på heading-linjer 401 -> 0
G2 døde fragmentlenker 1 -> 1 (pre-eksisterende, unntatt)
G3 produkt-forekomster 451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
de 3 kun-produkt-filene byte-identiske
nettet validert begge veier injisert persona feller G1; genitiv feller G1;
produkt-heading og de 3 filene passerer
hele diffen 802 heading-linjer + 654 TOC-linjer, ANNET = 0
linjeantall 728 lagt til = 728 slettet
suite 1120/1120 (1097 + 23 nye)
validate-plugin 250 PASS / 0 FAIL
stikkprøve 10 filer, alle 5 skills, inkl. de 3 mest
produkt-tunge (26/20/19) — kun heading+TOC
Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
20 KiB
Grounding Strategies for Declarative Agents
Last updated: 2026-06-19 Status: GA Category: Copilot Extensibility & Integration
Introduksjon
Grounding er kjernen i å gjøre declarative agents nyttige i en bedriftskontekst. Uten grounding er agenten begrenset til generell AI-kunnskap — med grounding kan den svare på spørsmål om din organisasjons data, dine prosjekter, og dine brukeres kontekst.
Grounding-strategien avgjør hvor agenten henter kunnskap fra, hvordan den filtrerer og prioriterer informasjon, og hvordan den balanserer generell kunnskap mot enterprise-data. Microsoft tilbyr et rikt sett med knowledge sources for declarative agents, fra SharePoint-innhold og Teams-meldinger til eksterne systemer via Copilot connectors og web search.
Denne guiden dekker arkitekturmønstre for grounding, beslutningskriterier for valg av knowledge sources, og praktiske hensyn for offentlig sektor i Norge.
Kjernekomponenter
Tilgjengelige Knowledge Sources
| Knowledge Source | Beskrivelse | Lisenskrav | Scoping (generativ modus) |
|---|---|---|---|
| SharePoint | Filer, mapper, sites i SharePoint Online | Microsoft 365 Copilot-lisens | 25 URLer (klassisk: 4) |
| Documents (opplastede filer) | Filer lastet opp direkte til agenten (lagres i Dataverse) | Microsoft 365 Copilot-lisens eller metered usage | Generativ: Ubegrenset; klassisk: begrenset av Dataverse-kvote |
| OneDrive | Brukerens OneDrive-innhold | Microsoft 365 Copilot-lisens | Ja (via manifest) |
| Copilot Connectors | Eksterne systemer (ServiceNow, Salesforce, etc.) via Microsoft Graph | Microsoft 365 Copilot-lisens | Ubegrenset (klassisk: 2) |
| Teams Messages | Chat-historikk, meeting transcripts, kanal-meldinger | Microsoft 365 Copilot-lisens | Opptil 5 chats |
| Teams Meetings | Meeting metadata, transkripsjon, meeting chats | Microsoft 365 Copilot-lisens | Opptil 5 meetings |
| Outlook Email | Brukerens mailbox (full eller delt) | Microsoft 365 Copilot-lisens | Ja (folder-basert) |
| People | Org chart, profiler, skills, samarbeidshistorikk | Microsoft 365 Copilot-lisens | Nei |
| Embedded Files | Opplastede filer (lagres i SharePoint Embedded) | Microsoft 365 Copilot-lisens eller metered usage | Nei |
| Web Search | Bing-indeksert offentlig innhold | Ingen lisenskrav | Alle offentlige sider (klassisk: 4 URLer) |
| Dataverse | Dynamics 365 / Power Apps-tabeller | Microsoft 365 Copilot-lisens eller metered usage | Ubegrenset (klassisk: 2 sources, 15 tabeller) |
Viktig om generativ modus (Verified): Copilot Studio med generativ orchestration støtter IKKE Bing Custom Search eller Azure OpenAI som knowledge sources i generative answers node. Disse må eksplisitt legges til i en generative answers-node i et topic (klassisk data-alternativ).'
Manifest-syntax for Knowledge Sources
SharePoint/OneDrive (JSON manifest):
{
"capabilities": [
{
"name": "OneDriveAndSharePoint",
"items_by_url": [
{
"url": "https://contoso.sharepoint.com/sites/ProjectX"
}
]
}
]
}
Copilot Connectors (JSON manifest):
{
"capabilities": [
{
"name": "GraphConnectors",
"connections": [
{
"connection_id": "ServiceNowIncidents"
}
]
}
]
}
Teams Messages (JSON manifest):
{
"capabilities": [
{
"name": "TeamsMessages",
"urls": [
"https://teams.microsoft.com/l/channel/...",
"https://teams.microsoft.com/l/chat/..."
]
}
]
}
Web Search (JSON manifest):
{
"capabilities": [
{
"name": "WebSearch",
"sites": [
{"url": "learn.microsoft.com"}
]
}
]
}
Email (JSON manifest):
{
"capabilities": [
{
"name": "Email",
"shared_mailbox": "support@contoso.com",
"folders": [
{"folder_id": "inbox"}
]
}
]
}
People Knowledge (JSON manifest):
{
"capabilities": [
{
"name": "People",
"include_related_content": true
}
]
}
Arkitekturmønstre
1. Single-Source Grounding (Mono-grounding)
Bruk når: Agenten har ett klart fokusområde (f.eks. HR-policies, prosjekt-dokumentasjon, CRM-data).
Eksempel:
- HR-agent: Kun grounded i SharePoint-site med HR-policyer
- Sales-agent: Kun grounded i Salesforce via Copilot connector
- Prosjekt-agent: Kun grounded i spesifikk Teams-kanal
Fordeler:
- Enkel å vedlikeholde
- Forutsigbare svar
- Rask retrieval (mindre search-scope)
Ulemper:
- Begrenset kontekst — kan ikke svare utenfor knowledge source
- Kan misse relevant info fra andre systemer
2. Multi-Source Grounding (Federated grounding)
Bruk når: Agenten trenger bredde — f.eks. en "prosjekt-assistent" som må kunne svare om dokumenter, chat-historikk, og CRM-data.
Eksempel:
- Prosjekt-agent: SharePoint site + Teams kanal + Azure DevOps connector
- Kundesupport-agent: Email folder + ServiceNow connector + FAQ-site
Fordeler:
- Bredere kontekst
- Mer nyttig for komplekse oppgaver
- Kan kryss-referere kilder
Ulemper:
- Tregere retrieval (flere API-kall)
- Risiko for "information overload" (agenten må velge riktig kilde)
- Vanskeligere å debugge
Best practices:
- Prioriter kilder via instructions (
"Prefer SharePoint policies over general knowledge") - Bruk scoping (f.eks. kun spesifikke SharePoint-mapper, ikke hele site)
- Test grundig med ulike spørsmål for å sikre at riktig kilde brukes
3. Layered Grounding (Fallback-strategi)
Bruk når: Du vil at agenten skal søke i prioritert rekkefølge — først intern kunnskap, deretter web.
Eksempel:
- Agent søker først i SharePoint → hvis ikke funnet, søk i Web Search
- Agent søker først i Dataverse → hvis ikke funnet, bruk general knowledge
Fordeler:
- Balanserer spesifisitet og bredde
- Reduserer "hallucinations" (prioriterer verifisert enterprise-data)
Ulemper:
- Krever nøye instructions for å styre fallback-logikk
- Kan gi tregt svar hvis første kilde er tom (må vente på timeout)
Implementering:
- Bruk
"Only use specified sources"i Agent Builder for å blokkere general knowledge - Kombiner med Web Search for fallback til public web
- Eller: Bruk instructions som
"If you cannot find the answer in SharePoint, clearly state 'Not found in internal docs' and do not guess."
4. Permission-Aware Grounding (User-scoped retrieval)
Bruk når: Agenten deler på tvers av organisasjonen, og ulike brukere skal kun se sine egne data.
Eksempel:
- SharePoint: Respekterer native permissions — bruker ser kun filer hen har tilgang til
- Email: Hver bruker ser kun sin egen mailbox (ikke delt mellom brukere)
- Teams: Respekterer channel/chat membership
Fordeler:
- Ingen risiko for data leakage
- Naturlig compliance med tilgangskontroll
Ulemper:
- Embedded files støtter ikke Information Barriers (IB) — alle med agenten kan se innhold
- Shared mailboxes krever eksplisitt SMTP-adresse i manifest
Best practices:
- Unngå embedded files hvis du har sensitive data og deler agenten bredt
- Bruk SharePoint/OneDrive for permission-aware grounding
- Test med ulike brukerroller for å verifisere tilgangskontroll
Beslutningsveiledning
Valg av Knowledge Source: Beslutningstabell
| Scenario | Anbefalt Knowledge Source | Begrunnelse |
|---|---|---|
| Statiske policies/docs (PDF, Word) | SharePoint (site/folder) | Strukturert, permission-aware, god search |
| Sanntidsdiskusjoner om prosjekt | Teams Messages (kanal/chat) | Fanger uformell kunnskap, kontekst fra meetings |
| Eksterne system (ServiceNow, Salesforce) | Copilot Connector | Direkte integrasjon med line-of-business data |
| Brukerens personlige arbeid | OneDrive + Email | User-scoped, ingen deling av data |
| Offentlig informasjon (nyheter, docs) | Web Search | Alltid oppdatert, ingen lisenskrav |
| CRM/Dynamics 365 data | Dataverse | Native integrasjon, supports custom tables |
| Opplastede filer (quick test) | Embedded Files | Rask prototyping, men ikke IB-støtte |
| Org chart og people lookup | People | Kontekst om kollegaer, skills, samarbeid |
Vanlige Feil (Anti-patterns)
| Feil | Konsekvens | Riktig tilnærming |
|---|---|---|
| Legge til hele SharePoint-tenant som kilde | Treg retrieval, irrelevant noise | Scope til spesifikke sites/folders |
| Bruke Embedded Files for sensitive docs | Brukere uten IB ser alt | Bruk SharePoint med native permissions |
| Ikke scope Teams-kunnskap | Agent søker i all chat-historikk (treghet) | Velg spesifikke 5 kanaler/chats |
| Bruke general knowledge for compliance-svar | Hallucinations, feil policy-tolkning | Sett "Only use specified sources" |
| Ikke teste med brukere uten Copilot-lisens | Agent feiler silent for dem | Valider lisenskrav i testing |
Røde Flagg (Når skal du ikke bruke grounding?)
- Når agenten skal gjøre noe, ikke svare på noe → Bruk actions/API plugins, ikke knowledge sources
- Når du vil cache statisk data → Overvei embedded files (eller hardkode i instructions hvis < 1000 tegn)
- Når kilde-data oppdateres oftest enn daglig → Web Search eller Dataverse (ikke SharePoint med treg re-indexing)
Integrasjon med Microsoft-stakken
SharePoint + Semantic Index (Anbefalt for GA-produksjon)
Hvis tenant har Microsoft 365 Copilot-lisens, aktiver Turn on Work IQ (semantic search; tidligere kalt «Tenant graph grounding») for:
- Støtte for SharePoint/connector-filer opptil 200 MB i generell bruk (PDF/PPTX/DOCX-filer støttes opptil 512 MB)
- Bedre retrieval-kvalitet (bruker Microsoft Search semantic index)
- Raskere søk i store SharePoint-sites
- Krever at agent bruker Authenticate with Microsoft (ikke andre auth-metoder)
- Aktivert som standard når makeren har en Microsoft 365 Copilot-lisens i samme tenant (Verified 2026-06)
Trade-off: Noe høyere latency for enkelte queries. Kan slås av per agent hvis kvaliteten er lavere enn forventet.
Innholdsstyring (Official sources): Kunnskapskilder kan merkes som "official source" — agenten indikerer dette i svar. Merk: Per april 2026 er official sources-funksjonen ikke kompatibel med generativ orchestration (krever klassisk modus). (Verified 2026-04)
Allow ungrounded responses (Verified 2026-04): Ny innstilling i Generative AI-settings. Når den er AV (default), blokkeres svar der agenten ikke brukte noen knowledge source eller tool i det gjeldende svaret. Gir strammere grounding, men kan blokkere follow-up-svar basert på samtalehistorikk.
Copilot Connectors vs Power Platform Connectors
| Egenskaper | Copilot Connectors | Power Platform Connectors |
|---|---|---|
| Indexering | Ja (til Microsoft Graph) | Nei (real-time API calls) |
| Permissions | Source-level permissions respektert | Maker/service account permissions |
| Grounding-støtte | Ja (native i declarative agents) | Ja (via custom API plugin) |
| Setup | Tenant admin må konfigurere | Maker kan sette opp selv |
Regel: Bruk Copilot Connectors for grounding, Power Platform Connectors for actions.
Dataverse Grounding
Kun støttet via Agents Toolkit (ikke Agent Builder i Microsoft 365 Copilot ennå per 2026-02).
Krav:
- Opprett
DVTableSearchskill i Dataverse - Spesifiser
host_name,skill, ogtablesi manifest - Krever Microsoft 365 Copilot-lisens eller metered usage
Offentlig sektor (Norge)
GDPR og Datasuverenitet
| Knowledge Source | Data Residency | GDPR-status | Schrems II-vurdering |
|---|---|---|---|
| SharePoint (EU tenant) | EU (Ireland/Netherlands) | ✅ GDPR-compliant | ✅ OK for offentlig sektor |
| OneDrive (EU tenant) | EU (Ireland/Netherlands) | ✅ GDPR-compliant | ✅ OK for offentlig sektor |
| Copilot Connectors | Avhenger av ekstern kilde | ⚠️ Må vurderes per connector | ⚠️ Sjekk DPA med vendor |
| Web Search (Bing) | USA (Bing service) | ⚠️ DPA gjelder ikke | ❌ Ikke for sensitive queries |
| Dataverse (EU tenant) | EU (Norway/West Europe) | ✅ GDPR-compliant | ✅ OK for offentlig sektor |
Kritisk forskjell: Web Search-queries sendes til Bing og er ikke dekket av Microsoft DPA for enterprise. For sensitive queries, ikke bruk Web Search. (Verified 2026-04: Bruk informasjon fra nettet bruker «Grounding with Bing Search»)
AI Act Compliance
Risikoklassifisering: Declarative agents er typisk begrenset risiko (Article 52: transparency obligations).
Grounding-relaterte krav:
- Dokumenter hvilke knowledge sources brukes → Anbefaling: Hold ADR per agent
- Brukere må informeres om at de snakker med AI → Microsoft håndterer dette i Copilot UX
- Source citations må være synlige → Copilot viser automatisk kildereferanser
Forvaltningsloven (§ 11b: Automatiserte avgjørelser)
Hvis agenten brukes til enkeltvedtak, må du:
- Dokumentere grounding-kilder (auditability)
- Sikre at mennesker kan overstyre agent-svar
- Teste for bias i retrieval (f.eks. hvis SharePoint-innhold har skjevheter)
Best practice: Bruk agenter for rådgivning, ikke automatiserte vedtak, i offentlig sektor.
Kostnad og lisensiering
Lisenskrav (Oppsummering)
| Feature | Microsoft 365 Copilot-lisens | Metered Usage | Ingen lisenskrav |
|---|---|---|---|
| SharePoint/OneDrive | ✅ Påkrevd | ❌ | ❌ |
| Copilot Connectors | ✅ Påkrevd | ❌ | ❌ |
| Teams Messages/Meetings | ✅ Påkrevd | ❌ | ❌ |
| ✅ Påkrevd | ❌ | ❌ | |
| People | ✅ Påkrevd | ❌ | ❌ |
| Embedded Files | ✅ Påkrevd | ✅ Alternativ | ❌ |
| Dataverse | ✅ Påkrevd | ✅ Alternativ | ❌ |
| Web Search | ❌ | ❌ | ✅ Ingen kostnader |
Kostnadsoptimalisering
- Start med Web Search + Embedded Files (ingen lisenskrav) for POC
- Bruk SharePoint over Embedded Files for produksjon (bedre permissions + search)
- Scope aggressivt → Færre filer/chats = raskere retrieval = lavere latency
- Unngå "all Teams chats" → Bruk scoped chats (max 5) for relevans
Work IQ (tidl. Tenant Graph Grounding): Kostnad vs. Ytelse
Work IQ (semantic search) krever minst én Microsoft 365 Copilot-lisens i tenant.
Trade-off:
- Kostnad: Microsoft 365 Copilot-lisens (ca. $30/user/month i USA, pris varierer)
- Gevinst: Bedre retrieval-kvalitet, støtte for større filer, semantic search
For offentlig sektor: Vurder pilot med 10-20 brukere (lisenskostnad ca. $300-600/mnd) før full rollout.
For arkitekten
Spørsmål å stille kunden
-
Datakilder:
- "Hvilke systemer inneholder kunnskapen agenten trenger?"
- "Er dataene strukturerte (SharePoint, Dataverse) eller ustrukturerte (Teams, Email)?"
- "Ligger dataene i Microsoft 365, eller eksterne systemer?"
-
Tilgangskontroll:
- "Skal alle brukere se samme data, eller user-scoped retrieval?"
- "Har dere Information Barriers (IB) aktivert i tenant?"
- "Er det sensitive data som ikke må deles på tvers?"
-
Lisenser:
- "Har brukerne Microsoft 365 Copilot-lisens?"
- "Hvis ikke, kan dere bruke metered usage for testing?"
- "Skal agenten fungere for brukere uten lisens?" (→ Bruk kun Web Search + Code Interpreter)
-
Datakvalitet:
- "Er SharePoint-innhold oppdatert og nøyaktig?"
- "Hvor ofte oppdateres kildene?" (→ Påvirker re-indexing delay)
- "Har dere mange duplikater eller utdaterte docs?" (→ Vurder cleanup før grounding)
-
Compliance:
- "Skal agenten brukes i GDPR-regulert kontekst?"
- "Kan dere bruke Bing Web Search, eller må alt være on-premises/EU?"
- "Kreves audit-logging av alle spørringer?" (→ Microsoft 365 audit log dekker dette)
Fallgruver å unngå
| Fallgruve | Hvorfor det feiler | Mitigering |
|---|---|---|
| Grounding i hele SharePoint tenant | Treg retrieval, irrelevante svar | Scope til site/folder-nivå |
| Bruke Embedded Files for produksjon | Ingen Information Barriers | Bruk SharePoint med native permissions |
| Ikke teste med brukere uten lisens | Agent feiler silent (ingen feilmelding til bruker) | Test med demo-bruker uten Copilot-lisens |
| Forvente sanntids-oppdateringer fra SharePoint | Re-indexing tar minutter til timer | Bruk Dataverse eller Web Search for real-time |
| Bruke all Teams chats som kilde | Treghet + irrelevant noise | Scope til max 5 spesifikke chats |
Anbefalinger per modenhetsnivå
Prototype/POC:
- Bruk Embedded Files + Web Search (ingen lisenskrav)
- Test med Agent Builder (low-code, rask iterasjon)
- Ikke bekymre deg for permissions ennå
Pilot (10-50 brukere):
- Migrer til SharePoint (permission-aware)
- Legg til Teams Messages (scope til 1-2 kanaler)
- Kjøp Microsoft 365 Copilot-lisenser for pilot-gruppe
- Aktiver Work IQ (semantic search) hvis tenant har lisens
Produksjon (> 100 brukere):
- Bruk Copilot Connectors for eksterne systemer
- Implementer layered grounding (SharePoint → Web fallback)
- Sett opp audit-logging (Microsoft Purview)
- Dokumenter grounding-strategi i ADR
Enterprise (> 1000 brukere):
- Vurder Dataverse for strukturert data (CRM, Power Apps)
- Implementer permission-aware grounding med Information Barriers
- Bruk Copilot Studio (ikke Agent Builder) for avansert orchestration
- Sett opp cost monitoring (per-agent usage tracking)
Kilder og verifisering
Microsoft Learn (Verified — MCP research 2026-04)
- Add knowledge sources to your declarative agent — Oversikt over alle knowledge sources
- Add knowledge sources in Agent Builder — UI-guide for Agent Builder
- Best practices for building declarative agents — Grounding-strategi-veiledning
- Declarative agent manifest v1.6 — JSON-syntax for knowledge sources
- Microsoft 365 Copilot connectors overview — Graph connectors for external data
- Copilot Studio: Add Copilot connectors as knowledge — Copilot Studio-spesifikk guide
- Copilot Studio: Knowledge sources summary — Inkludert Work IQ (tidl. Tenant graph grounding), Allow ungrounded responses, Web Search (Verified 2026-06)
- Data, privacy, and security for web search — Bing integration, GDPR, DPA
- Quotas and limits for Copilot Studio — File size, connector limits
Konfidensnivå per seksjon
| Seksjon | Konfidens | Kilde |
|---|---|---|
| Kjernekomponenter (tabell knowledge sources) | Verified | MCP: knowledge-sources, agent-builder-add-knowledge |
| Manifest-syntax (JSON examples) | Verified | MCP: declarative-agent-manifest-1.6, code samples |
| Arkitekturmønstre (mono-/multi-/layered) | Baseline | Utledet fra best practices docs + modellkunnskap |
| Permission-Aware Grounding | Verified | MCP: best practices, embedded files IB limitation |
| Beslutningstabell (valg av source) | Baseline | Syntetisert fra best practices + modellkunnskap |
| Offentlig sektor (GDPR, AI Act) | Baseline | Modellkunnskap (2025-01 cutoff) + MCP (data-privacy-security-web-search) |
| Kostnad og lisensiering | Verified | MCP: knowledge-sources (license requirements table) |
| Work IQ (tidl. Tenant Graph Grounding) | Verified | MCP: knowledge-copilot-studio#turn-on-work-iq |
Sist verifisert: 2026-06-19 Unike kilder: 9 Microsoft Learn-dokumenter