# M365 Copilot Plugins - Ecosystem and Distribution **Last updated:** 2026-04 | Verified: MCP 2026-04-10 **Status:** GA **Category:** Copilot Extensibility & Integration --- ## Introduksjon Microsoft 365 Copilot plugins (også kalt "agents") opererer innenfor et omfattende økosystem som spenner over hele Microsoft 365-plattformen. Plugins er ikke bare isolerte tillegg, men integrerte komponenter som kan nå over 350 millioner daglige brukere på tvers av Teams, Outlook, Word, Excel, PowerPoint og Microsoft 365 Copilot-appen. Det sentrale prinsippet er **"write once, run anywhere"** — utviklere bygger én gang og plugins distribueres automatisk på tvers av alle Microsoft 365 host-applikasjoner. Microsoft 365 Copilot orkestrerer integrasjon av plugins med sine eksisterende ferdigheter og kunnskapsbase, uten at utviklere må integrere direkte med individuelle Microsoft 365-apper. Plugins pakkes, distribueres og administreres gjennom en **unified app model** som bruker samme manifest-skjema og pakkeformat som Teams-apper, Outlook Add-ins og SharePoint Framework-løsninger. Dette gir enhetlig distribusjon via Microsoft 365 admin center, Teams admin center og Microsoft Commercial Marketplace (Partner Center). ## Kjernekomponenter ### 1. App Package (Pakkeformat) M365 Copilot plugins distribueres som en `.zip`-fil som inneholder: | Komponent | Fil | Krav | |-----------|-----|------| | **App manifest** | `manifest.json` | Beskriver konfigurasjon, capabilities, ressurser og attributter | | **Color icon** | `color.png` | 192x192 px, full-color ikon (120x120 px safe region) | | **Outline icon** | `outline.png` | 32x32 px, hvit med transparent bakgrunn (kreves for validering) | | **Declarative agent** | `declarativeAgent.json` | (Valgfri) Agent-definisjon med instruksjoner og actions | | **API plugin** | `plugin.json` | (Valgfri) API-capabilities og OpenAPI-referanse | | **Localization files** | `en.json`, `nb.json` etc. | (Valgfri) Språkfiler for internasjonalisering | **Eksempel: App manifest (forenklet)** ```json { "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.26/MicrosoftTeams.schema.json", "manifestVersion": "1.26" // Verified 2026-04: v1.26 er seneste GA (april 2026), "version": "1.0.0", "id": "00000000-0000-0000-0000-000000000000", "developer": { "name": "Northwind Traders", "websiteUrl": "https://www.example.com", "privacyUrl": "https://www.example.com/privacy", "termsOfUseUrl": "https://www.example.com/terms" }, "name": { "short": "Northwind Inventory", "full": "Northwind Inventory App" }, "description": { "short": "Find and update product inventory", "full": "Northwind Inventory is the ultimate tool for managing your product inventory..." }, "icons": { "color": "color.png", "outline": "outline.png" }, "accentColor": "#3690E9", "copilotAgents": { "declarativeAgents": [ { "id": "agent1", "file": "declarativeAgent.json" } ] } } ``` ### 2. Plugin-typer og tilgjengelighet | Plugin-type | Microsoft 365-produkter | Ekstra tilgjengelighet | |-------------|------------------------|------------------------| | **Copilot connectors** | M365 Copilot, Power Automate, Power Apps, Azure Logic Apps | Microsoft Search, Context IQ (Outlook/web) | | **Microsoft 365 Copilot connectors** (Graph) | M365 Copilot, Microsoft Search | M365 Copilot app (microsoft365.com) | | **Declarative agents** | M365 Copilot, Teams, Outlook, Word, Excel, PowerPoint | M365 Copilot app | | **Custom engine agents** | M365 Copilot, Teams | M365 Copilot app | ### 3. In-context vs. Immersive Experience | Opplevelse | Beskrivelse | Brukerinteraksjon | |------------|-------------|-------------------| | **In-context** | Plugin tilgjengelig i eksisterende Copilot Chat-kontekst | Brukere `@`-mention plugin i Teams-chat eller Word-dokument | | **Immersive** | Full plugin-opplevelse i M365 Copilot-appen | 1:1 samtale med plugin, skreddersydd til dens capabilities | Declarative agents støtter begge moduser. Actions (API plugins) er kun tilgjengelig in-context og må legges til en declarative agent. ## Arkitekturmønstre ### Mønster 1: Declarative Agent med API Plugin (Anbefalt) **Fordeler:** - Low-code / no-code tilnærming - Rask time-to-market - Microsoft 365 Copilot håndterer orchestration - Automatisk tilgjengelighet på tvers av M365-apper **Ulemper:** - Begrenset til forhåndsdefinerte capabilities - Mindre kontroll over conversation flow - Avhengig av Microsofts orchestration-logikk **Bruksområder:** - LOB-applikasjoner med REST API - Enterprise data-integration - Standardiserte workflows **Arkitektur:** ``` App Manifest (manifest.json) ├─> Declarative Agent (declarativeAgent.json) │ ├─> Instructions (system prompt) │ ├─> Conversation starters │ ├─> Capabilities (WebSearch, OneDrive, CodeInterpreter) │ └─> Actions │ └─> API Plugin (plugin.json) │ ├─> OpenAPI definition │ └─> Authentication config └─> Icons (color.png, outline.png) ``` ### Mønster 2: Custom Engine Agent (Bot Framework) **Fordeler:** - Full kontroll over conversational AI - Egendefinert reasoning og orchestration - Integrasjon med eksisterende bot-infrastruktur - Avanserte dialog management-capabilities **Ulemper:** - Høyere utviklingskompleksitet - Krever hosting-infrastruktur - Mer vedlikeholdskrevende - Må implementere egen sikkerhet og compliance **Bruksområder:** - Komplekse multi-turn samtaler - Domene-spesifikk reasoning - Legacy bot migration - Spesialiserte LLM-workflows **Arkitektur:** ``` App Manifest (manifest.json) ├─> Bot registration (Azure Bot Service) │ ├─> Bot endpoint (HTTPS) │ ├─> Messaging endpoint │ └─> Authentication (OAuth 2.0) ├─> copilotAgents.customEngineAgents │ └─> Bot ID reference └─> Bot Framework SDK (C#, TypeScript, Python) ``` ### Mønster 3: Graph Connector for Microsoft 365 Copilot **Fordeler:** - Indeksering av ekstern data i Microsoft Graph - Automatisk grounding i Copilot - Ingen custom code nødvendig (low-code) - Security-trimmed search results **Ulemper:** - Kun data retrieval (ikke actions) - Krever crawling-infrastruktur - Schema mapping-overhead - Latency i indeksering **Bruksområder:** - Enterprise document repositories - Tredjepartssystemer med bulk data - Knowledge bases og wikis - CRM/ERP-data grounding ## Beslutningsveiledning ### Når velge hvilken plugin-type? | Scenario | Anbefalt type | Begrunnelse | |----------|--------------|-------------| | Integrasjon med REST API | Declarative agent + API plugin | Rask utvikling, ingen hosting, auto-orchestration | | Kompleks dialog management | Custom engine agent | Full kontroll over conversation flow | | Ekstern dataindeksering | Graph connector | Automatisk grounding uten custom code | | Teams bot migration | Custom engine agent | Gjenbruk eksisterende bot-kode | | Low-code requirement | Declarative agent i Copilot Studio | Grafisk designer, ingen kode | ### Vanlige feil | Feil | Konsekvens | Løsning | |------|------------|---------| | API plugin uten declarative agent | Plugin fungerer ikke i M365 Copilot | API plugins må wrappes i declarative agent | | Manglende beskrivelser i manifest | Dårlig LLM skill-selection | Inkluder detaljerte `shortDescription` og `longDescription` | | Ikon-feil (feil størrelse) | Validering feiler i Partner Center | Color: 192x192px, Outline: 32x32px | | Hardkodet localhost i produksjon | Plugin feiler utenfor dev-miljø | Bruk miljøvariabler for URLs | | Manglende Responsible AI-compliance | Avvist i store submission | Test med RAI validation checks før innsending | ### Røde flagg - **Secrets i manifest:** Aldri inkluder API keys eller secrets i `manifest.json` — bruk Azure Key Vault eller miljøvariabler - **Overly broad permissions:** Be kun om nødvendige Microsoft Graph-permissions — overly broad scope gir compliance-problemer - **Ingen error handling:** Plugin må håndtere API-feil gracefully — Copilot viser feilmeldinger til brukere - **Manglende localization:** Plugins uten lokalisering har dårlig user experience i internasjonale org ## Integrasjon med Microsoft-stakken ### 1. Microsoft 365 Admin Center **Rolle:** Sentral hub for plugin-administrasjon i enterprise | Funksjon | Beskrivelse | |----------|-------------| | **Integrated Apps** | Godkjenn, deploy og administrer plugins på org-nivå | | **App governance** | Kontroller hvilke plugins er enabled per bruker/gruppe | | **Usage analytics** | Overvåk plugin-bruk og performance | | **Policy enforcement** | Implementer data loss prevention (DLP) policies | **Workflow:** 1. Admin mottar plugin submission fra ISV eller LOB-utvikler 2. Review permissions og compliance status 3. Approve/reject via Integrated Apps-seksjonen 4. Assign til security groups eller organization-wide 5. Plugin blir tilgjengelig i M365 Copilot, Teams, Outlook etc. ### 2. Teams Admin Center **Rolle:** Kontroll av Teams-spesifikke plugin-capabilities | Funksjon | Beskrivelse | |----------|-------------| | **App permission policies** | Definer hvilke plugins som er tillatt per bruker-gruppe | | **App setup policies** | Pin plugins til Teams-appen for spesifikke brukere | | **App centric management** | GA (fra 2025) — forenklet org-wide app-management | | **Custom app upload** | Sideload plugins til organisasjonens app catalog | ### 3. Microsoft Partner Center (Microsoft 365 and Copilot Program) **Rolle:** Distribusjon til Microsoft Commercial Marketplace **Sertifiseringskrav (viktige "Must fix"-krav):** - [Microsoft Commercial Marketplace certification policies](https://learn.microsoft.com/legal/marketplace/certification-policies) - [Microsoft 365 store validation guidelines for agents](https://learn.microsoft.com/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines) - [Responsible AI validation checks](https://learn.microsoft.com/microsoft-365-copilot/extensibility/rai-validation) - (Valgfri) [Microsoft 365 App Compliance Program certification](https://learn.microsoft.com/microsoft-365-app-certification/docs/certification) **Tekniske minstekrav (Must fix — ISV store submission):** | Krav | Verdi | |------|-------| | **Manifest-versjon** | 1.13 eller nyere (seneste GA: v1.26, april 2026) (Verified 2026-04) | | **Responstid** | ≤9 sek (99%), ≤5 sek (75%), ≤2 sek (50%) | | **Tilgjengelighet** | 99.9% uptime | | **TLS** | 1.2 eller høyere (alle serverkall) | | **Prompt starters** | Minst 3 (declarative og custom engine agents) | | **Navn-konsistens** | `name` i manifest.json, declarativeAgent.json og plugin.json MÅ være identiske | | **Screenshot** | Minst 1 relatert til M365 Copilot-funksjonalitet | | **Action disclosure** | Bruker MÅ bekrefte konsekvente operasjoner (Create/Update/Delete) | | **MCP-servere** | `enable_dynamic_discovery` og `enable_dynamic_client_registration` MÅ settes til false | **Distribusjonsflyt:** 1. ISV registrerer seg i Partner Center 2. Laster opp app package (.zip med manifest + icons) 3. Microsoft validerer plugin (teknisk + RAI + compliance) 4. Ved godkjenning → publisert i Microsoft AppSource 5. IT-admins enabler plugin i Microsoft 365 admin center 6. Plugin vises i App Store (M365 Copilot, Teams, Outlook etc.) ### 4. Utviklerverktøy | Verktøy | Type | Bruksområde | |---------|------|-------------| | **Microsoft 365 Agents Toolkit** | Pro-code (VS Code / Visual Studio) | Declarative agents, custom engine agents, debugging | | **Copilot Studio** | Low-code (web app / Teams app) | Grafisk designer for agents og actions | | **Copilot Developer Mode** | Testing | Debug plugin selection og orchestration | | **TypeSpec** | Pro-code | Type-safe API plugin definitions | ## Offentlig sektor (Norge) ### GDPR og AI Act | Krav | Implikasjon for M365 Copilot Plugins | |------|--------------------------------------| | **GDPR Art. 5** (Data minimization) | Plugins må kun be om nødvendige Microsoft Graph-permissions. Overly broad scope er non-compliant. | | **GDPR Art. 32** (Security of processing) | Plugins må implementere encryption at rest/transit. Azure Key Vault anbefales for secrets. | | **EU AI Act** (Transparency) | Plugins klassifisert som "high-risk AI" må dokumentere decision-making-logikk. | | **AI Act Art. 52** (Transparency obligations) | Brukere må informeres om at de samhandler med AI. M365 Copilot håndterer dette, men custom engine agents må selv implementere. | ### Schrems II og datasuverenitet **Utfordring:** EU Court of Justice-avgjørelsen (Schrems II) krever at persondata ikke overføres til USA uten adequate safeguards. **Løsning for norske org:** - **EU Data Boundary:** Microsoft 365 Copilot respekterer EU Data Boundary — data processing skjer i EU-regionen hvis konfigurert - **Azure Norway regions:** Host custom engine agents i Norway East / Norway West for full datasuverenitet - **Graph Connectors:** Indeksert data i Graph lagres i tenant region (EU for norske org) **Checklist:** - [ ] Verifiser at tenant er konfigurert med EU Data Boundary - [ ] Custom engine agents deployed i Azure Norway regions - [ ] API plugin endpoints hosted i EU/EEA - [ ] Data Processing Agreement (DPA) på plass med Microsoft - [ ] Sub-processor list reviewed (tredjepartstjenester) ### Forvaltningsloven § 11 (automatiserte avgjørelser) Hvis plugin brukes til å fatte avgjørelser som påvirker individers rettigheter: - **§ 11a:** Varsling om automatisert saksbehandling - **§ 11b:** Rett til manuell vurdering hvis ønskelig - **§ 11c:** Krav til transparens i beslutningsgrunnlag **Anbefaling:** Declarative agents bør dokumentere hvilke data-kilder og API calls som brukes i decision-making. ## Kostnad og lisensiering ### Lisenskrav for plugin-bruk | Plugin-type | Lisenskrav (brukere) | Lisenskrav (utviklere) | |-------------|---------------------|------------------------| | **Declarative agents** | M365 Copilot license ELLER metered usage tenant | Microsoft 365 Copilot developer license (testing) | | **Custom engine agents** | M365 Copilot license ELLER metered usage tenant | Microsoft 365 Copilot developer license | | **Graph connectors** | Ingen Copilot-lisens påkrevd (men anbefalt) | Graph API permissions | | **API plugins** | M365 Copilot license (må brukes i declarative agent) | Microsoft 365 Copilot developer license | **Viktig:** - Noen agent capabilities kun tilgjengelig for tenants med **metered usage** eller brukere med **M365 Copilot license** - **Developer licenses:** Gratis for testing, men krever production licenses for deployment ### Kostnadsmodell for distribusjon | Distribusjonsmetode | Kostnad | Bemerkninger | |---------------------|---------|--------------| | **Sideload (personal use)** | Gratis | Kun for testing/utvikling | | **Organizational catalog** | Gratis | Intern distribusjon (LOB apps) | | **Microsoft Commercial Marketplace** | **$99 USD per year** (Partner Center membership) + **Revenue share** (hvis paid app) | ISV-lisens, Microsoft tar 20% revenue share | ### Optimaliseringstips 1. **Start med organizational catalog:** Test intern før Commercial Marketplace submission 2. **Bruk metered usage tenants for testing:** Unngå å kjøpe Copilot-lisenser for alle testbrukere 3. **Leverage Graph connector for read-only scenarios:** Billigere enn custom engine agents (ingen hosting cost) 4. **Microsoft 365 Agents Toolkit over Copilot Studio:** Toolkit er gratis, Copilot Studio krever Power Platform-lisens for produksjon ## For arkitekten (Cosmo) ### Spørsmål å stille kunden 1. **Hvem er målgruppen for plugin?** - Intern (LOB) eller ekstern (ISV)? - Antall brukere? (påvirker distribusjonsmetode) 2. **Hvilken data skal plugin tilgang til?** - Ekstern API (REST) → Declarative agent + API plugin - Microsoft Graph data → Graph connector - Egendefinert conversational logic → Custom engine agent 3. **Hva er customer's modenhetsnivå på AI/Copilot?** - **Early adopter:** Start med declarative agent (rask POC) - **Mature org:** Vurder custom engine agent for kontroll 4. **Finnes det compliance-krav?** - GDPR, AI Act, Forvaltningsloven? - Data residency requirements (Norge/EU)? 5. **Hva er distribusjonskanalen?** - Intern → Organizational catalog (gratis) - Ekstern → Microsoft Commercial Marketplace (Partner Center) 6. **Skal plugin utføre actions eller kun retrieval?** - Actions → API plugin (mutating operations) - Retrieval → Graph connector (read-only, indeksert data) 7. **Finnes det eksisterende bot-infrastruktur?** - Ja → Vurder custom engine agent (gjenbruk) - Nei → Start med declarative agent 8. **Hva er tidslinje og budsjett?** - Kort tidslinje + lite budsjett → Declarative agent (low-code) - Lengre tidslinje + høyere budsjett → Custom engine agent (full kontroll) ### Fallgruver å unngå 1. **Overly complex manifest:** - Hold manifest minimal — ikke inkluder unødvendige capabilities - LLM-orchestrator blir forvirret av for mange valg 2. **Manglende plugin description quality:** - Dårlige beskrivelser → plugin velges sjelden av orchestrator - Test med Copilot Developer Mode for å se selection rate 3. **Ignoring Responsible AI validation:** - RAI checks kjører automatisk ved sideload/publish - Plugins med problematic content blir avvist 4. **Sideloading uten plan for production distribution:** - Sideload er kun for testing — ikke production-ready - Plan for organizational catalog eller Marketplace early 5. **Hard dependencies on preview features:** - Preview manifest versions (`devPreview`) ikke tillatt i production - Bruk GA manifest versioner (`1.18` eller senere) 6. **Neglisjering av icon design:** - Ikoner er første inntrykk for brukere i App Store - Følg [design guidelines](https://learn.microsoft.com/microsoft-365-copilot/extensibility/agent-icon-management) 7. **Manglende error handling i API plugins:** - API failures vises direkte til brukere - Implementer graceful degradation 8. **Ingen testing med real users:** - LLM orchestration er non-deterministic - Test med ulike prompt-formuleringer og user personas ### Anbefalinger per modenhetsnivå | Modenhetsnivå | Anbefaling | Reasoning | |---------------|------------|-----------| | **Pilot (PoC)** | Declarative agent i Copilot Studio | Raskeste time-to-value, ingen kode, grafisk designer | | **Production (LOB)** | Declarative agent med API plugin (M365 Agents Toolkit) | Balance mellom kontroll og utviklingshastighet | | **Advanced (Enterprise)** | Custom engine agent (Bot Framework) | Full kontroll, custom reasoning, egendefinert orchestration | | **ISV (Marketplace)** | Declarative agent + Commercial Marketplace submission | Skalerbart, Responsible AI-compliant, global distribusjon | **Best practice for alle nivåer:** - Start med sideload (testing) - Promoter til organizational catalog (intern pilot) - Vurder Commercial Marketplace (ekstern distribusjon) hvis relevant ## Kilder og verifisering | Seksjon | Kilde | Konfidensnivå | |---------|-------|---------------| | **Ecosystem Overview** | [Copilot extensibility in the Microsoft 365 ecosystem](https://learn.microsoft.com/microsoft-365-copilot/extensibility/ecosystem) | ✅ Verified (MCP) | | **App Package Structure** | [Agents are apps for Microsoft 365](https://learn.microsoft.com/microsoft-365-copilot/extensibility/agents-are-apps) | ✅ Verified (MCP) | | **Distribution Methods** | [Publish agents for Microsoft 365 Copilot](https://learn.microsoft.com/microsoft-365-copilot/extensibility/publish) | ✅ Verified (MCP) | | **Manifest Schema** | [Microsoft 365 app manifest schema reference](https://learn.microsoft.com/microsoft-365/extensibility/schema) — seneste GA: v1.26 (april 2026) | ✅ Verified (MCP 2026-04) | | **Plugin Types** | [Adopt, extend and build Copilot experiences](https://learn.microsoft.com/copilot/roadmap/overview) | ✅ Verified (MCP) | | **Teams Admin Center** | [Manage apps in Teams admin center](https://learn.microsoft.com/microsoftteams/manage-apps) | ✅ Verified (MCP) | | **Partner Center** | [Microsoft 365 and Copilot program](https://learn.microsoft.com/partner-center/marketplace/why-publish) | ✅ Verified (MCP) | | **GDPR Compliance** | EU GDPR Articles 5, 32 | ⚠️ Baseline (legal text) | | **Schrems II** | CJEU Case C-311/18 | ⚠️ Baseline (legal text) | | **AI Act** | EU AI Act Articles 52, Annex III | ⚠️ Baseline (legal text) | | **Forvaltningsloven** | Forvaltningsloven §§ 11a-11c (Norge) | ⚠️ Baseline (legal text) | | **Licensing** | [Microsoft 365 Copilot developer licenses](https://learn.microsoft.com/microsoft-365-copilot/extensibility/prerequisites) | ✅ Verified (MCP) | **Konfidensnivå-definisjon:** - ✅ **Verified:** Hentet direkte fra Microsoft Learn via MCP (oppdatert per januar 2026) - ⚠️ **Baseline:** Basert på modellkunnskap (legal/regulatory tekster, ikke Microsoft-dokumentasjon) **Siste oppdatering av Microsoft-dokumentasjon:** April 2026 (reflektert i MCP-kall 2026-04-10) — Manifest v1.26 GA