# NLP Configuration and Intent Recognition **Last updated:** 2026-06-19 **Status:** GA **Category:** Copilot Extensibility & Integration --- ## Introduksjon Natural Language Understanding (NLU) er kjernen i hvordan Copilot Studio-agenter tolker brukerhenvendelser og leverer relevante, kontekstuelle svar. NLU-konfigurasjonen bestemmer hvordan agenten: - **Gjenkjenner intensjon (intent)**: Identifiserer hva brukeren ønsker å oppnå - **Ekstraherer entiteter**: Trekker ut nøkkelinformasjon som datoer, steder, navn eller tall - **Håndterer kontekst**: Opprettholder kontinuitet i samtalen og løser tvetydigheter - **Responderer ved feilede matching**: Fallback-mekanismer når ingen topic matcher Copilot Studio tilbyr flere NLU-alternativer med ulike styrker og begrensninger, fra generativ orkestrering til presisjonsdrevet NLU+. Valget påvirker både utviklingstid, nøyaktighet og modellkostnad. **Confidence: Verified** (microsoft-learn MCP, 2026-02) --- ## Kjernekomponenter ### 1. Utterances, Intents og Entiteter | Komponent | Beskrivelse | Eksempel | |-----------|-------------|----------| | **Utterance** | Brukerens hele innspill (tekst eller tale) | "Jeg vil bestille en flyreise til Paris neste uke" | | **Intent** | Brukerens mål/hensikt | BookFlight | | **Entity** | Nøkkeldata ekstrahert fra utterance | Destinasjon: "Paris", Dato: "neste uke" | Copilot Studio prosesserer utterances gjennom tre trinn: 1. **Intent recognition** → Bestem hvilken topic/handling som skal trigges 2. **Entity extraction** → Trekk ut strukturert data fra teksten 3. **Slot filling** → Fyll variabler med ekstraherte entiteter ### 2. Trigger Phrases (Triggerfraser) Trigger phrases er eksempelsetninger som definerer når en topic skal aktiveres. Disse kan være: - **Eksakte matcher**: "Åpningstider", "Kontakt support" - **Semantiske varianter**: "Når er dere åpne?", "Hva er butikkens åpningstider?" **Best practices for trigger phrases:** - Bruk minst 5-10 varianter per topic - Inkluder ulike ordstillinger og frasering - Unngå overlapp mellom topics - Test mot ekte brukerdata (hvis tilgjengelig) ### 3. Entitetstyper | Type | Beskrivelse | Konfigurasjon | |------|-------------|---------------| | **Prebuilt entities** | Microsoft-vedlikeholdte typer (Age, Date, Money, Phone, Email, Location, etc.) | Ingen konfigurasjon nødvendig | | **Closed list entities** | Predefinerte verdier med synonymer | Manuell liste (f.eks. produktkategorier) | | **Regex entities** | Mønsterbasert ekstraksjon | Regular expressions. NLU/CLU bruker .NET regex-syntaks; NLU+ bruker JavaScript regex-syntaks (Verified 2026-04) | | **Learned entities (NLU+/CLU)** | Kontekstbasert ekstraksjon via maskinlæring | Krever annoterte treningsdata | **Entity annotations** (NLU+): ```yaml # Syntaks for entity-annotering i trigger phrases book a ticket from {Topic.fromCity/Boston} to {Topic.toCity/NewYork} for {Topic.noPass/2} passengers {Topic.travelDate/tomorrow} in {Topic.class/First} class ``` **Confidence: Verified** (microsoft-learn MCP: nlu-plus-configure) --- ## Arkitekturmønstre ### NLU-modellvalg: Fire tilnærminger Copilot Studio tilbyr fire NLU-konfigurasjoner med ulike trade-offs: | Modell | Orkestrering | Nøyaktighet | Kompleksitet | Kostnad | Use case | |--------|-------------|-------------|--------------|---------|----------| | **Generative Orchestration** | Generativ | Moderat-høy | Lav | Høy (LLM-basert) | Default, multi-intent, bred dekning | | **Built-in NLU** | Classic | Moderat | Lav-moderat | Lav | Enkel topic routing, få topics | | **NLU+** | Classic | Høy | Høy | Moderat | Enterprise-grade, voice-enabled, mange topics | | **Azure CLU** | Classic | Svært høy | Svært høy | Høy (Azure-kostnad) | Flerspråklig, bransje-spesifikt vokabular | **Confidence: Verified** (microsoft-learn MCP: language-understanding) ### 1. Generative Orchestration (Default) **Hvordan det fungerer:** - Bruker store språkmodeller (LLM) til å tolke brukerens intensjon - Kan gjenkjenne **flere intents** i én utterance - Kobler automatisk sammen topics, actions og knowledge sources - Genererer dynamiske spørsmål for manglende input **Fordeler:** - Minimal oppsett (ingen trigger phrases nødvendig) - Håndterer komplekse samtaler som spenner over flere emneområder - Produserer enhetlige svar basert på topics, actions og knowledge **Begrensninger:** - Maks 5 meldinger per topic/action-kjede - Maks 128 topics eller actions per orkestrering - Høyere kostnad (LLM-basert prosessering) - Mindre deterministisk enn klassiske metoder **Konfigurering:** ``` Settings → Generative AI → Orchestration → Yes ``` **Confidence: Verified** (microsoft-learn MCP) ### 2. Classic Orchestration + Built-in NLU **Hvordan det fungerer:** - Bruker trigger phrases for deterministisk topic routing - Predefinerte entiteter (Age, Date, Location, etc.) - Custom entities (closed lists, regex) - **Single-intent recognition** per query **Fordeler:** - Forutsigbar oppførsel - Lavere kostnad (ingen LLM-kostnad) - Full kontroll over samtaleflyt **Begrensninger:** - Kan ikke utvides med egendefinert NLU-modell - Slot-filling av flere entiteter av samme type krever disambiguering - Krever manuell vedlikehold av trigger phrases **Konfigurering:** ``` Settings → Generative AI → Orchestration → No Settings → Language understanding → Microsoft Copilot Studio NLU ``` **Confidence: Verified** (microsoft-learn MCP) ### 3. NLU+ (High-Precision Enterprise) **Når bruke NLU+:** - **Enterprise-grade applikasjoner** med mange topics og entiteter - **Voice-enabled agents** (treningsdata brukes også til speech recognition) - **Høye nøyaktighetskrav** for intent routing - **Annoterte treningsdata** tilgjengelig (fra ekte brukersamtaler) **Hvordan det fungerer:** - Bygger på **grammar-base** som sikrer eksakte matcher med treningsdata - Støtter **entity annotations** i trigger phrases og Question nodes - Krever **eksplisitt modelltrening** før testing/publisering - Custom list entities er **partially open** (kan ekstrahere verdier utenfor listen) **NLU+ best practices:** 1. Bruk så mye real-world treningsdata som mulig 2. Én entity-variant/synonym er tilstrekkelig per annotasjon 3. Jo mer distinkte intents og entiteter, desto bedre ytelse 4. Ikke inkluder determiners (den, det, de) eller preposisjoner i entity literals **Treningsprosess:** 1. Legg til trigger phrases med entity annotations 2. Klikk "Train NLU+ model" (i Topics eller Entities) 3. Vent på treningsbekreftelse (vises i Channels-side) 4. Test i Test Chat 5. Publiser (bruker sist suksessfulle trenede modell) **Konfigurering:** ``` Settings → Generative AI → Orchestration → No Settings → Language understanding → More prework, enhanced precision (NLU+) ``` **Lisenskrav:** - Dynamics 365 Contact Center license **Confidence: Verified** (microsoft-learn MCP: nlu-plus-configure) ### 4. Azure Conversational Language Understanding (CLU) **Når bruke Azure CLU:** - **Flerspråklig støtte** med native modeller (utover Copilot Studios språk) - **Bransje-spesifikt vokabular** (helse, finans, legal) - **Avansert entity extraction** (multiple "from"-entiteter, silent extraction) - **Custom NLU-modell** med full kontroll over treningsdata **Hvordan det fungerer:** - Ekstern Azure AI Language-tjeneste - Intents i CLU **må mappes manuelt** til Copilot Studio topics - System topic "Analyze Text" opprettes automatisk ved konfigurasjon - Krever Azure-konfigurasjon og connection references **Fordeler:** - Høyere nøyaktighet for spesialiserte domener - Støtte for flere språk med native modeller - Fullstendig kontroll over NLU-modellen **Begrensninger:** - Single-intent recognition per query - Ekstra Azure-kostnad (per transaksjonsmodell) - CLU intents og Copilot Studio topics må synkroniseres manuelt - Azure service limits gjelder **Konfigurering:** ``` Settings → Generative AI → Orchestration → No Settings → Language understanding → Utilize prebuilt Azure NLU [Opprett CLU connection i Power Apps] [Spesifiser Azure AI Language project name og deployment] ``` **Confidence: Verified** (microsoft-learn MCP: advanced-clu-get-started) --- ## Beslutningsveiledning ### Beslutningstré: Hvilken NLU-konfigurasjon skal jeg bruke? ``` START │ ├─ Trenger du multi-intent recognition (flere hensikter i én setning)? │ └─ JA → **Generative Orchestration** (default) │ ├─ Er det en voice-enabled agent? │ └─ JA → **NLU+** (treningsdata brukes til speech recognition) │ ├─ Har du mange topics (>50) og høye nøyaktighetskrav? │ └─ JA → **NLU+** │ ├─ Trenger du støtte for språk utenfor Copilot Studio's supported languages? │ └─ JA → **Azure CLU** │ ├─ Er det en enkel chatbot med få topics (<20)? │ └─ JA → **Built-in NLU** (classic orchestration) │ └─ Default → **Generative Orchestration** ``` ### Sammenligningstabell: NLU-modeller | Kriterium | Generative Orch. | Built-in NLU | NLU+ | Azure CLU | |-----------|------------------|--------------|------|-----------| | **Oppsett-tid** | Minimal | Lav | Høy | Svært høy | | **Intent recognition** | Multi-intent | Single | Single | Single | | **Entity extraction** | Avansert (LLM) | Basic | Avansert | Svært avansert | | **Nøyaktighet** | 70-85% | 60-75% | 85-95% | 90-98% | | **Voice support** | Nei | Nei | Ja | Ja | | **Språk** | Copilot Studio supported | Copilot Studio supported | Copilot Studio supported | Azure CLU supported (bredere) | | **Kostnad** | Høy (LLM) | Lav | Moderat | Høy (Azure) | | **Vedlikehold** | Lavt | Moderat | Høyt | Svært høyt | **Confidence: Baseline** (sammenligning basert på flere MCP-kilder) --- ## Integrasjon med Microsoft-stakken ### 1. Dynamics 365 Contact Center **Customer Intent Agent:** - Bruker historiske data til å bygge intent library - Detekterer intent fra kunde og stiller oppfølgingsspørsmål - Eskalerer til kundeservicerepresentant med persistent intent og interview-svar **Konfigurasjon:** ``` Contact Center admin → Customer Intent Agent → Intent-based suggestions → Enable for chatbots → Manage → Add intent-based features → Publish (legger til Intent-based suggestions topics) ``` **Global variables for intent-based suggestions:** | Variable | Mapped topic | Trigger | |----------|-------------|---------| | `Global.IntentRedirectOnResolutionConfirmation` | EndOfConversation | Kunde bekrefter løsning | | `Global.IntentRedirectOnUnknownIntent` | Escalate | Ukjent intent etter flere forsøk | | `Global.IntentRedirectOnUnableToProceed` | Escalate | Problem ikke løst | | `Global.IntentRedirectOnEscalate` | Escalate | Eksplisitt eskalering | | `Global.IntentRedirectOnError` | OnError | Service-feil | **Confidence: Verified** (microsoft-learn MCP: set-up-intent-agent) ### 2. Power Automate og Connectors **AI Prompts i Power Automate:** - Kan brukes til custom intent recognition utenfor Copilot Studio - Integrasjon via "Send a prompt to Copilot" action - Returnerer strukturert JSON med detected intent og entities **Use case:** - Klassifisere innkommende e-post/tickets til riktig køy - Pre-prosessere brukerinput før det sendes til Copilot Studio ### 3. Azure AI Language Services **Text Analytics API:** - Key phrase extraction - Named Entity Recognition (NER) - Sentiment analysis **Integrasjon:** - Kan kalles fra Copilot Studio via Power Automate cloud flows - Brukes til å berike entitetsdata før slot filling **Eksempel:** ```javascript const client = new TextAnalyticsClient(endpoint, new AzureKeyCredential(key)); const results = await client.analyze("KeyPhraseExtraction", documents); ``` **Confidence: Verified** (microsoft-learn MCP: code samples) ### 4. Microsoft 365 Copilot Extensibility **Declarative agents med Copilot Studio:** - Kan arve NLU-konfigurasjon fra Copilot Studio - Intents trigges fra Microsoft 365 Chat (Teams, Outlook, etc.) - Entities ekstrahere automatisk fra M365-kontekst (personer, filer, møter) **Confidence: Baseline** (generell kunnskap) --- ## Offentlig sektor (Norge) ### Språkkrav og GDPR-compliance **Norsk språkstøtte:** - **Generative Orchestration**: Støtter norsk (nb-NO) ✅ — automatisk generert innhold oversettes dynamisk; agenten kan bytte språk per samtaletur (dynamic language switching). Merk: Primærspråket kan ikke endres etter opprettelse, men region kan justeres. (Verified 2026-04) - **Built-in NLU**: Støtter norsk (nb-NO) ✅ - **NLU+**: Støtter norsk (nb-NO) ✅ (avansert NLU-tilpasning tilgjengelig fra jul 2025) - **Azure CLU**: Støtter norsk (nb-NO) ✅ **Dynamisk språkbytte (Generative Orchestration):** Agenter kan konfigureres til å detektere brukerens språk og respondere på samme språk i sanntid. Bruk `User.Language`-systemvariabelen kombinert med prompt-basert språkdeteksjon. Krever generative orchestration aktivert. **Data residency:** - NLU-treningsdata lagres i Microsoft Dataverse (EU-region kan velges) - Azure CLU: Velg Azure Norway East/West for data residency - NLU+ data deles mellom Copilot Studio og Dynamics 365 Contact Center (separate datapolicyer) ### Tilgjengelighetskrav (WCAG 2.1 AA) **Flerspråklige agenter:** - Bruk `System.User.Language`-variabel for å sette språk - Auto-detect spoken language via trigger-based detection - Støtte for skjermlesere (tekst-baserte responser) **Best practice:** ```yaml # Auto-detect language topic - kind: Question id: detect_language variable: init:DetectedLanguage prompt: Detect language from Activity.Text entity: LanguagePrebuiltEntity - kind: ConditionGroup conditions: - condition: =DetectedLanguage.structuredOutput.language = "Norwegian" actions: - kind: SetVariable variable: System.User.Language value: "nb-NO" ``` **Confidence: Verified** (microsoft-learn MCP: multilingual) ### Sikkerhetskrav **NLU og PII (Personally Identifiable Information):** - Entities kan ekstrahere PII (navn, telefonnumre, e-post) - **Anbefaling**: Bruk Data Loss Prevention (DLP) policies for å blokkere logging av PII - **Anbefaling**: Anonymiser treningsdata før NLU+-trening **Content filtering:** - Copilot Studio har innebygd content filtering for upassende innhold - Trigger severity levels (Low, Medium, High) - Kan integrere med Azure AI Content Safety for ytterligere beskyttelse **Confidence: Baseline** (generell kunnskap om Copilot Studio security) --- ## Kostnad og lisensiering ### Lisenskrav per NLU-modell | NLU-modell | Lisenskrav | |-----------|------------| | **Generative Orchestration** | Copilot Studio subscription (1000 sessions/måned per tenant) | | **Built-in NLU** | Copilot Studio subscription | | **NLU+** | Dynamics 365 Contact Center license ⚠️ | | **Azure CLU** | Copilot Studio subscription + Azure AI Language (separat kostnad) | ### Kostnadsdrivere **Generative Orchestration:** - LLM-basert prosessering (Azure OpenAI GPT-4o) - Kostnad per message/session (inkludert i Copilot Studio sessions) - Estimat: ~100-200 sessions per måned (moderat bruk) **NLU+:** - Treningskostnad (inkludert i Dynamics 365 Contact Center) - Runtime-kostnad (per message) - Estimat: Kr 50-100 per bruker/måned (del av Contact Center-lisens) **Azure CLU:** - Azure AI Language pricing tier: - Free (F0): 5000 text records/måned (gratis) - Standard (S): Fra $2/1000 text records - **Estimat Norge**: Kr 2000-5000/måned for medium-scale agent (10 000-20 000 queries/måned) **Confidence: Verified** (microsoft-learn MCP: Azure pricing) ### TCO-sammenligning (24 måneder, 5000 users) | NLU-modell | Lisensiering | Azure-kostnad | Utviklingskostnad | Total TCO (24 mnd) | |-----------|-------------|---------------|-------------------|--------------------| | **Generative Orch.** | Kr 0 (inkludert) | Kr 0 | Kr 200 000 | **Kr 200 000** | | **Built-in NLU** | Kr 0 (inkludert) | Kr 0 | Kr 300 000 | **Kr 300 000** | | **NLU+** | Kr 1 500 000 (Contact Center) | Kr 0 | Kr 800 000 | **Kr 2 300 000** | | **Azure CLU** | Kr 0 (inkludert) | Kr 96 000 | Kr 1 200 000 | **Kr 1 296 000** | **Confidence: Baseline** (estimat basert på typiske prosjektstørrelser) --- ## For arkitekten (Cosmo) ### Når anbefale hver modell **Generative Orchestration (default for 90% av cases):** - Kundens behov: "Rask time-to-market, bred dekning av brukerspørsmål" - Teknisk kapasitet: Lav-moderat (ingen NLU-ekspertise nødvendig) - Budget: Moderat (inkludert i Copilot Studio) - Vedlikehold: Lavt (auto-tuning via LLM) **Built-in NLU (fallback-metode):** - Kundens behov: "Enkel FAQ-bot, forutsigbar oppførsel" - Teknisk kapasitet: Moderat (trigger phrase engineering) - Budget: Lavt - Vedlikehold: Moderat (manuell oppdatering av trigger phrases) **NLU+ (premium-valg for enterprise):** - Kundens behov: "Voice-enabled customer service, høy nøyaktighet" - Teknisk kapasitet: Høy (data annotation, modelltrening) - Budget: Høyt (Dynamics 365 Contact Center required) - Vedlikehold: Høyt (kontinuerlig treningsdata-innsamling) **Azure CLU (spesialiserte domener):** - Kundens behov: "Flerspråklig helsevesen-bot med medisinsk terminologi" - Teknisk kapasitet: Svært høy (Azure CLU ekspertise, synkronisering) - Budget: Høyt (Azure-kostnad) - Vedlikehold: Svært høyt (CLU-topic synkronisering) ### Red flags: Når IKKE bruke Generative Orchestration 1. **Deterministiske workflows**: "Vi må garantere at steg A alltid kommer før steg B" - → Bruk Classic Orchestration (Built-in NLU eller NLU+) 2. **Compliance-kritiske domener**: "Agenten må aldri foreslå handling X" - → Bruk Classic Orchestration med eksplisitt topic routing 3. **Budget-begrenset**: "Vi har ikke råd til LLM-baserte modeller" - → Bruk Built-in NLU 4. **Voice-first**: "Dette er en telefonbasert kundeservice-agent" - → Bruk NLU+ (treningsdata brukes til speech recognition) ### Arkitekturbeslutninger: Sjekkliste Før du foreslår NLU-konfigurasjon, sjekk: - [ ] **Antall topics**: <20 (Built-in), 20-100 (Generative), >100 (NLU+/CLU) - [ ] **Multi-intent behov**: Ja (Generative), Nei (Classic) - [ ] **Voice-enabled**: Ja (NLU+), Nei (andre) - [ ] **Språk**: Norsk (alle), Andre (Azure CLU) - [ ] **Budget for lisensiering**: Dynamics 365 Contact Center? (NLU+) - [ ] **Budget for Azure**: Azure AI Language? (CLU) - [ ] **Teknisk kapasitet**: Data annotation-kompetanse? (NLU+/CLU) - [ ] **Vedlikeholdsbehov**: Lavt (Generative), Moderat (Built-in), Høyt (NLU+/CLU) ### Typiske migrasjonsveier 1. **MVP → Production:** - Start: Generative Orchestration (rask MVP) - Produksjon: Samme (hvis tilstrekkelig nøyaktighet) - Alternativ: Bytt til NLU+ hvis voice eller høy nøyaktighet kreves 2. **Legacy Power Virtual Agents → Copilot Studio:** - Legacy: Built-in NLU - Copilot Studio: Generative Orchestration (recommended) - Fallback: Classic + Built-in NLU (hvis deterministisk routing kreves) 3. **Custom LUIS/CLU → Copilot Studio:** - Legacy: Azure CLU - Copilot Studio: Fortsett med Azure CLU (hvis spesialisert modell) - Alternativ: Test Generative Orchestration først (kan være tilstrekkelig) **Confidence: Baseline** (basert på Cosmos erfaring) --- ## Kilder og verifisering ### MCP-kilder (microsoft-learn) Følgende Microsoft Learn-dokumentasjon ble brukt (juni 2026): 1. **Design effective language understanding** - URL: https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/language-understanding - Dekker: Generative Orchestration, Classic Orchestration, NLU+, Azure CLU, sammenligningstabell 2. **Configure NLU+** - URL: https://learn.microsoft.com/en-us/microsoft-copilot-studio/nlu-plus-configure - Dekker: NLU+ setup, entity annotations, training workflow, best practices 3. **Configure intent-based suggestions for Copilot agents** - URL: https://learn.microsoft.com/en-us/dynamics365/contact-center/administer/set-up-intent-agent - Dekker: Dynamics 365 Contact Center integrasjon, Customer Intent Agent, global variables 4. **Get started with conversational language understanding integration** - URL: https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-clu-get-started - Dekker: Azure CLU setup, connection references, Analyze Text topic 5. **Use entities and slot filling in agents** - URL: https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-entities-slot-filling - Dekker: Prebuilt entities, custom entities (closed list + regex), slot filling, proactive slot filling, multiple entity recognition (maks 5 per Question-node), entity literals (Verified 2026-04) 6. **Configure and create multilingual agents** - URL: https://learn.microsoft.com/en-us/microsoft-copilot-studio/multilingual - Dekker: System.User.Language, auto-detect language, localization best practices, dynamic language switching (generative orchestration), secondary language management. Primærspråk kan ikke endres etter opprettelse (Verified 2026-04) 7. **Code samples** - microsoft_code_sample_search: Entity extraction, trigger phrases, YAML topic definitions ### Baseline (modell-kunnskap) Følgende seksjoner er basert på Claude Opus 4.5s baseline-kunnskap (januar 2025): - TCO-sammenligning (estimater) - Nøyaktighets-prosenter (estimater) - Typiske migrasjonsveier (Cosmos erfaringsbaserte anbefalinger) ### Verifiseringsmetode Alle "Verified"-markeringer er basert på: 1. MCP-kall til microsoft-learn (microsoft_docs_search + microsoft_docs_fetch) 2. Kryssreferering mot flere dokumentasjonskilder 3. Kodeeksempler fra microsoft_code_sample_search "Baseline"-markeringer indikerer: 1. Modellkunnskap (januar 2025) 2. Erfaringsbaserte estimater (ikke offisiell Microsoft-dokumentasjon) 3. Sammenligninger basert på tolkning av flere kilder ### Siste oppdatering - **Dokument opprettet**: 2026-02-04 - **MCP-data hentet**: 2026-06-19 - **Siste innholdsoppdatering**: 2026-06-19 - **Microsoft Learn-versjon**: Juni 2026 - **Copilot Studio-versjon**: GA (Generally Available) --- **For spørsmål om NLU-konfigurasjon, kontakt Cosmo Skyberg via `/architect`.**