feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command

Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-08 08:58:35 +02:00
commit baa2d0220b
488 changed files with 213221 additions and 0 deletions

View file

@ -0,0 +1,451 @@
# 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