# Grounding Strategies for Declarative Agents **Last updated:** 2026-02 **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-støtte | |-----------------|-------------|------------|----------------| | **SharePoint** | Filer, mapper, sites i SharePoint Online | Microsoft 365 Copilot-lisens | Ja (site/folder/file) | | **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 | Ja (attributt-basert) | | **Teams Messages** | Chat-historikk, meeting transcripts, kanal-meldinger | Microsoft 365 Copilot-lisens | Ja (opptil 5 chats) | | **Teams Meetings** | Meeting metadata, transkripsjon, meeting chats | Microsoft 365 Copilot-lisens | Ja (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 | Ja (opptil 4 URLer) | | **Dataverse** | Dynamics 365 / Power Apps-tabeller | Microsoft 365 Copilot-lisens eller metered usage | Ja (tabell-basert) | ### Manifest-syntax for Knowledge Sources **SharePoint/OneDrive (JSON manifest):** ```json { "capabilities": [ { "name": "OneDriveAndSharePoint", "items_by_url": [ { "url": "https://contoso.sharepoint.com/sites/ProjectX" } ] } ] } ``` **Copilot Connectors (JSON manifest):** ```json { "capabilities": [ { "name": "GraphConnectors", "connections": [ { "connection_id": "ServiceNowIncidents" } ] } ] } ``` **Teams Messages (JSON manifest):** ```json { "capabilities": [ { "name": "TeamsMessages", "urls": [ "https://teams.microsoft.com/l/channel/...", "https://teams.microsoft.com/l/chat/..." ] } ] } ``` **Web Search (JSON manifest):** ```json { "capabilities": [ { "name": "WebSearch", "sites": [ {"url": "learn.microsoft.com"} ] } ] } ``` **Email (JSON manifest):** ```json { "capabilities": [ { "name": "Email", "shared_mailbox": "support@contoso.com", "folders": [ {"folder_id": "inbox"} ] } ] } ``` **People Knowledge (JSON manifest):** ```json { "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 **Tenant graph grounding with semantic search** for: - Støtte for filer opptil **200 MB** (standard: 512 MB for PDF/PPTX/DOCX) - Bedre retrieval-kvalitet (bruker Microsoft Graph semantic index) - Raskere søk i store SharePoint-sites **Trade-off:** Noe høyere latency for enkelte queries. ### 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 `DVTableSearch` skill i Dataverse - Spesifiser `host_name`, `skill`, og `tables` i 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**. ### 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 | ❌ | ❌ | | Email | ✅ Påkrevd | ❌ | ❌ | | People | ✅ Påkrevd | ❌ | ❌ | | Embedded Files | ✅ Påkrevd | ✅ Alternativ | ❌ | | Dataverse | ✅ Påkrevd | ✅ Alternativ | ❌ | | Web Search | ❌ | ❌ | ✅ Ingen kostnader | ### Kostnadsoptimalisering 1. **Start med Web Search + Embedded Files** (ingen lisenskrav) for POC 2. **Bruk SharePoint over Embedded Files** for produksjon (bedre permissions + search) 3. **Scope aggressivt** → Færre filer/chats = raskere retrieval = lavere latency 4. **Unngå "all Teams chats"** → Bruk scoped chats (max 5) for relevans ### Tenant Graph Grounding: Kostnad vs. Ytelse Tenant graph grounding 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 (Cosmo) ### Spørsmål å stille kunden 1. **Datakilder:** - "Hvilke systemer inneholder kunnskapen agenten trenger?" - "Er dataene strukturerte (SharePoint, Dataverse) eller ustrukturerte (Teams, Email)?" - "Ligger dataene i Microsoft 365, eller eksterne systemer?" 2. **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?" 3. **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) 4. **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) 5. **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 **Tenant graph grounding** 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-02) - [Add knowledge sources to your declarative agent](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/knowledge-sources) — Oversikt over alle knowledge sources - [Add knowledge sources in Agent Builder](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/agent-builder-add-knowledge) — UI-guide for Agent Builder - [Best practices for building declarative agents](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/declarative-agent-best-practices) — Grounding-strategi-veiledning - [Declarative agent manifest v1.6](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/declarative-agent-manifest-1.6) — JSON-syntax for knowledge sources - [Microsoft 365 Copilot connectors overview](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/overview-copilot-connector) — Graph connectors for external data - [Copilot Studio: Add Copilot connectors as knowledge](https://learn.microsoft.com/en-us/microsoft-copilot-studio/knowledge-copilot-connectors) — Copilot Studio-spesifikk guide - [Copilot Studio: Knowledge sources summary](https://learn.microsoft.com/en-us/microsoft-copilot-studio/knowledge-copilot-studio) — Inkludert Tenant graph grounding - [Data, privacy, and security for web search](https://learn.microsoft.com/en-us/microsoft-copilot-studio/data-privacy-security-web-search) — Bing integration, GDPR, DPA - [Quotas and limits for Copilot Studio](https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-quotas) — 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) | | Tenant Graph Grounding | **Verified** | MCP: knowledge-copilot-studio#tenant-graph-grounding | **Sist verifisert:** 2026-02-04 **MCP-kall:** 6 (3 search, 2 fetch, 1 code sample search) **Unike kilder:** 9 Microsoft Learn-dokumenter