ms-ai-architect/skills/ms-ai-advisor/references/copilot-extensibility/copilot-orchestration-multi-agent.md
Kjell Tore Guttormsen 070141f06b chore(ms-ai-architect): refresh KB medium-bucket — 74 files [skip-docs]
KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update.
74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert
til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med
disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av
de faktatunge gruppene + tester).

Hovedendringer (faktuelle korreksjoner + currency):
- Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic
  m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i
  tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup).
- APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i
  rag-caching-optimization hadde retningen baklengs — invertert til korrekt.
- Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot
  agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV
  grounding (references + activity), IKKE syntetiserte svar. Answer synthesis,
  ikke-minimal reasoning effort (LLM query planning) og multi-turn messages
  forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele
  kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking.
- Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus
  4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA),
  Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview;
  A2A GA (apr 2026).
- Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status
  (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/
  steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool
  + Hosted browser + bring-your-own-machine.
- Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil),
  2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac,
  chunking).
- Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent
  calls the flow"; App Service innebygd MCP (preview) lagt til.
- M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni);
  "Tenant graph grounding" -> "Work IQ".
- Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales
  (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01).
- Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices ->
  ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den
  presenteres som go-forward. Gateway-topologi-tabell-feil rettet.
- Alle 74 Last updated -> 2026-06-19.

Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret,
ingen resync. validate 239 PASS, kb-integrity 115/115 (262 orphan-warnings
uendret), gitleaks clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 14:02:18 +02:00

466 lines
19 KiB
Markdown

# Multi-Agent Orchestration in Copilot
**Last updated:** 2026-06-19 | Verified: MCP 2026-06-19
**Status:** Generally Available (GA)
**Category:** Copilot Extensibility & Integration
---
## Introduksjon
Multi-agent orchestration i Microsoft-økosystemet handler om å bygge komplekse AI-systemer ved å komponere flere spesialiserte agenter som samarbeider for å løse brukeroppgaver. Denne tilnærmingen erstatter monolittiske chatbots med modulære, skalerbare arkitekturer hvor hver agent har sitt eget domene, verktøy og kunnskapskilder.
Microsofts tilnærming til multi-agent orchestration støttes på tvers av tre hovedplattformer: **Copilot Studio** (low-code), **Microsoft Agent Framework** (pro-code), og **Microsoft 365 Copilot** (enterprise integration). Alle bruker generative orchestration powered by large language models for å automatisk koble sammen agenter, topics, tools og knowledge sources uten å kreve forhåndsdefinerte trigger phrases.
Multi-agent systemer gir fordeler som bedre modularity, domene-separasjon, enklere vedlikehold, og mulighet til å gjenbruke spesialiserte agenter på tvers av flere hovedagenter. De muliggjør også granulær governance og access control per agent, noe som er kritisk for enterprise-scenarier.
## Kjernekomponenter
### Agent-typer i Copilot Studio
| Type | Beskrivelse | Context Sharing | Brukstilfeller |
|------|-------------|-----------------|----------------|
| **Inline agents** (child agents) | Små, gjenbrukbare workflows innenfor samme agent. Ofte implementert som topics. | Deler context med hovedagent | Enkle sub-tasks, hjelpefunksjoner (f.eks. tekstoversettelse) |
| **Connected agents** | Separate agenter med egen orchestration, tools og knowledge | Konversasjonshistorikk sendes automatisk (kan deaktiveres) | Komplekse domener, ulike tilgangskontroller, gjenbruk på tvers av hovedagenter |
### Generative Orchestration (Copilot Studio)
Når generative orchestration er aktivert, bruker agenten store språkmodeller til å:
1. **Automatisk velge ressurser**: Identifiserer hvilke topics, tools, agenter og knowledge sources som skal brukes basert på beskrivelser (ikke trigger phrases)
2. **Multi-intent håndtering**: Kan håndtere forespørsler med flere intensjoner i én user message
3. **Automatisk parameter-utfylling**: Ekstraher kontekst fra samtalen for å fylle inn manglende input-parametere
4. **Chaining**: Kaller flere agenter/tools i sekvens og sammenstiller svar automatisk
**Nøkkelfaktorer for agent-seleksjon:**
- Description (viktigst)
- Navn på agent/topic/tool
- Input/output parametere og deres beskrivelser
**Avanserte kontrollmuligheter (generativ modus):**
- **Avbryte plan**: Bruk **"End all topics"**-node i et topic for å kansellere gjenværende steg i orchestratorens plan
- **Samtalehistorikk**: Agenter bruker nylig samtalehistorikk som kontekst. For å nullstille: bruk **"Clear variable values"**-node med alternativet "Conversation history for the current session"
- **Topic-triggere**: `AI response generated` (agenten genererer svar) og `Plan complete` (alle planlagte steg utført) gir finkornet kontroll
### Agent-komponenter (Microsoft Agent Framework)
For pro-code utvikling tilbyr Agent Framework:
| Komponent | Beskrivelse |
|-----------|-------------|
| **HandoffBuilder** | Bygger workflows hvor agenter kan overføre samtaler til hverandre med eksplisitte routing rules |
| **GroupChatBuilder** | Koordinerer multi-agent samarbeid gjennom group chat med orchestrator-agent |
| **ConcurrentBuilder** | Kjører flere agenter parallelt (fan-out/fan-in pattern) |
| **SequentialPipeline** | Chain av agenter som kjører i sekvens |
### Agent Connectivity (Copilot Studio)
Copilot Studio støtter forbindelse til eksterne agenter via:
- Copilot Studio agents (samme environment)
- Azure AI Foundry agents
- Microsoft Fabric Data agents
- Microsoft 365 Agents SDK agents
- Agent2Agent (A2A) protocol (cross-platform)
## Arkitekturmønstre
### Mønster 1: Triage + Specialist (Handoff)
**Beskrivelse:** En hovedagent (triage) router brukerforespørsler til spesialiserte agenter basert på domene.
```
User → Triage Agent → [Math Tutor | History Tutor | Billing Agent]
(kan returnere til Triage)
```
**Fordeler:**
- Tydelig domene-separasjon
- Spesialistene kan ha egne verktøy og kunnskapskilder
- Enklere å vedlikeholde og teste hver spesialist
**Ulemper:**
- Overhead ved context switching
- Krever nøye beskrivelser for at triage kan route korrekt
- Lengre responstid sammenlignet med inline-løsning
**Når bruke:**
- Subtasken er kompleks nok til å ha egen suite av tools/knowledge
- Krever ulike governance rules eller tilgangskontroller
- Agenten skal gjenbrukes i mange hovedagenter
**Copilot Studio implementering:**
```yaml
# Parent agent configuration
- Add connected agent: "Billing Specialist"
Description: "Handles all billing inquiries including invoices,
payments, refunds, and subscription management."
Pass conversation history: Yes
```
### Mønster 2: Concurrent Fan-Out/Fan-In
**Beskrivelse:** Flere agenter kjører parallelt på samme input, resultatene aggregeres.
```
User Input → [Researcher | Marketer | Legal Reviewer] → Aggregation → Output
```
**Fordeler:**
- Raskere responstid (parallell prosessering)
- Hver agent gir sitt perspektiv på samme data
- Godt egnet for review-workflows
**Ulemper:**
- Kompleksitet i aggregering av resultater
- Alle agenter må kunne jobbe med samme input
- Ressurskrevende (flere LLM-kall samtidig)
**Når bruke:**
- Content review fra ulike perspektiver (legal, marketing, technical)
- Multi-language translation
- Data analysis fra ulike vinkler
**Microsoft Agent Framework (Python):**
```python
from agent_framework import ConcurrentBuilder
workflow = ConcurrentBuilder().participants([
researcher,
marketer,
legal_reviewer
]).build()
result = await workflow.run("Analyze this product launch plan")
```
### Mønster 3: Sequential Pipeline
**Beskrivelse:** Agenter kjører i sekvens, hvor output fra én agent blir input til neste.
```
User → Research Agent → Writer Agent → Review Agent → Final Output
```
**Fordeler:**
- Strukturert, forutsigbar flyt
- Enkel debugging (kan inspisere output mellom steg)
- Hver agent bygger på forrige agents arbeid
**Ulemper:**
- Lengre total responstid
- Feil tidlig i pipeline kan spre seg nedover
- Vanskeligere å håndtere branching logic
**Når bruke:**
- Content creation pipelines
- Data processing med validering mellom steg
- Multi-stage approval workflows
**Microsoft Agent Framework (C#):**
```csharp
var workflow = AgentWorkflowBuilder
.CreateSequentialPipeline(researchAgent, writerAgent, reviewerAgent)
.Build();
var result = await workflow.RunAsync("Write an article about AI safety");
```
## Beslutningsveiledning
### Når skal du splitte til separate agenter?
| Kriterium | Inline (topic) | Connected Agent |
|-----------|----------------|-----------------|
| Kompleksitet | Enkel sub-task | Egen suite av tools/knowledge |
| Governance | Same tilgangskontroller | Ulike access controls |
| Gjenbruk | Brukes kun av én hovedagent | Gjenbrukes i mange hovedagenter |
| Domene | Del av samme domene | Forskjellig domene |
| Vedlikehold | Kan vedlikeholdes inline | Krever separat lifecycle |
**Tommelfingerregel:** Start med én agent og topics. Splitt kun når du ser et klart behov for modularity eller governance-grense.
### Vanlige feil
| Feil | Konsekvens | Løsning |
|------|-----------|---------|
| **Over-segmentering** | Mange små agenter gir overhead | Konsolider agenter som ikke har tydelig governance/domene-grense |
| **Vage beskrivelser** | Orchestrator velger feil agent | Skriv spesifikke, unike beskrivelser med nøkkelord |
| **Manglende data handoff-planlegging** | Connected agent mangler kontekst | Definer eksplisitt hvilke parametere som skal sendes |
| **Glemt audit logging** | Vanskelig å tracke hva connected agents gjør | Korreler parent/child sessions via telemetri identifiers |
| **Overlappende agent-beskrivelser** | Orchestrator kaller flere agenter unødvendig | Test grundig og revider overlappende beskrivelser |
### Røde flagg
⚠️ **Security:** Connected agent har tilgang hovedagent ikke har (f.eks. slette records) → Krev eksplisitt user consent eller approval workflow
⚠️ **Context limit:** Konversasjonshistorikk er begrenset → Viktig informasjon må inkluderes i transcript ved jevne intervaller
⚠️ **Disambiguation:** Med generative orchestration disambigueres ikke automatisk mellom lignende topics → Test grundig eller deaktiver "Multiple Topics Matched" system topic
⚠️ **Custom entities:** Tools/topics støtter ikke custom entities (closed lists, regex) som input → Bruk Question node i topic
## Integrasjon med Microsoft-stakken
### Copilot Studio ↔ Microsoft 365 Copilot
**Scenario:** Utvid M365 Copilot med organisasjonens egne agenter.
- Agenter bygget i Copilot Studio kan publiseres som **declarative agents** i M365 Copilot
- M365 Copilot bruker sin egen orchestrator, men agent kan ha egne instructions, knowledge og actions
- Governance håndteres via **Microsoft 365 admin center** (enable/disable/assign/block agents) under **Agents**-seksjonen i Copilot Control System
- Agent pinning: Microsoft-pinned, admin-pinned, user-pinned
- **AI Admin**-rollen gir dedikert, lavprivilegert administratortilgang for agent-styring (anbefalt fremfor Global Admin)
**Agent-typer som kan administreres (Verified):**
- **Publisert av org**: Predefinerte instruksjoner og actions — må gjennom admin approval
- **Delt av bruker**: Opprettet via Copilot Studio eller Agent Builder
- **Microsoft-agenter**: Innebygd i M365-tjenester (Researcher, Analyst etc.)
- **Eksterne partner-agenter**: Fra ISV-er
- **Frontier agents** (eksperimentelle):
- **App Builder agent**: Kan bygge Power Apps via Copilot
- **Workflows agent**: Lager flows i Copilot — lagres i default environment
**Microsoft Agent 365** er den nye kontrollplanen for alle AI-agenter (uavhengig av hvor de er bygd), tilgjengelig via M365 admin center.
**Nøkkel-policy:**
- Agents arver M365 Copilots security, privacy og compliance
- Data forblir innenfor Microsoft 365 service boundary
- Conditional Access og MFA via Microsoft Entra ID
### Agent Framework ↔ Semantic Kernel
**Integrasjon:**
- Agent Framework agents kan wrappas som Semantic Kernel plugins
- Workflows kan konverteres til `AIAgent` med `.AsAgent()` extension method
- Semantic Kernel kan orkestrere Agent Framework workflows via `CopilotStudioAgent` client
**Use case:**
```python
from semantic_kernel.agents import CopilotStudioAgent
agent = CopilotStudioAgent(
client=client,
name="CustomAgent",
instructions="You help answer custom questions."
)
```
### Power Platform Integration
- **Agent flows** (Copilot Studio) vs. **cloud flows** (Power Automate):
- Agent flows: Optimalisert for business processes, AI-driven automation
- Cloud flows: Generelle automation-scenarier, kan kombineres med agent flows
- **Connectors:** Agent flows kan bruke Power Automate connector library
- **Environment governance:** DLP, role-based access, auditing på environment-nivå
### Azure AI Foundry Agents
Connected agents kan koble til Azure AI Foundry agents, som gir:
- Custom language models
- Advanced RAG capabilities
- Prompt flow orchestration
## Offentlig sektor (Norge)
### GDPR & Datasuverenitet
**Vurderingspunkter:**
- **Data residency:** Hvor lagres agent-konversasjoner? (Microsoft 365 tenant-region)
- **Cross-border data transfer:** Connected agents på tvers av environments → sjekk at begge er i EU-region
- **Treatyansvar:** Definer data processing agreements for hver connected agent som håndterer persondata
**Praksis:**
- Dokumenter dataflyt mellom agenter i DPIA
- Bruk Microsoft Purview for å oppdage, beskytte og governe data i agent-interaksjoner
- Aktiver audit logging for alle connected agent-kall
### AI Act & Transparency
**Krav:**
- Brukere skal informeres om at de interagerer med AI
- Brukere skal forstå når én agent delegerer til en annen
**Implementering i Copilot Studio:**
```yaml
# Conversation Start system topic
- Message: "Hei! Jeg er en AI-assistent som kan koble deg til
spesialiserte agenter for fakturering, teknisk support
og ordrehåndtering."
```
**Audit:**
- Log alle agent handoffs med timestamps og user consent
- Separate transcripts per connected agent (korreler via session ID)
### Forvaltningsloven § 11 (veiledningsplikt)
**Relevans:** Offentlige virksomheter har plikt til å veilede brukere.
**Multi-agent implementering:**
- **Triage agent:** Hjelper bruker å finne riktig spesialist-agent
- **Fallback til human:** Hvis ingen agent kan hjelpe, eskaler til saksbehandler
- **Transparent routing:** Vis bruker hvilken agent de snakker med
**Eksempel:**
```
Triage: "Jeg ser du har spørsmål om barnetrygd.
Jeg kobler deg til vår spesialist for dette. [Barnetrygd-agent aktiveres]"
```
## Kostnad og lisensiering
### Kostnadsmodeller
| Plattform | Prismodell | Kostnadsdrivere |
|-----------|-----------|-----------------|
| **Copilot Studio** | Consumption-based (messages) | Antall meldinger, generative actions |
| **M365 Copilot** | Per-user license | M365 Copilot license (ca. $30/user/month) |
| **Agent Framework** | Azure consumption | Azure OpenAI API calls, Azure Functions runtime |
### Multi-agent kostnadshensyn
**Connected agents øker kostnad:**
- Hver agent-call = separate LLM-kall
- Konversasjonshistorikk sendes ved hver handoff (større context window)
- Parallelle agenter (concurrent) = multiple LLM-kall samtidig
**Optimaliseringsstrategier:**
1. **Deaktiver conversation history** når connected agent ikke trenger det:
```
Pass conversation history: No
```
2. **Bruk inline agents** (topics) for enkle sub-tasks → ingen ekstra LLM-kall
3. **Limit autonomous turns** (Agent Framework):
```python
.with_autonomous_mode(
agents=[triage_agent],
turn_limits={triage_agent.name: 3}
)
```
4. **Cache knowledge sources** → redusert re-indexing cost
5. **Monitor telemetry** → identifiser agenter som kalles unødvendig
### Lisenskrav (M365 Copilot agents)
| Funksjon | Lisenskrav |
|----------|-----------|
| Bruke M365 Copilot med agenter | M365 Copilot license |
| Bygge declarative agents | Copilot Studio eller Teams Toolkit (dev) |
| Administrere agents | M365 admin (gratis med tenant) |
| Custom engine agents | Azure subscription for hosting |
## For arkitekten (Cosmo)
### Spørsmål å stille kunden
1. **Domene-separasjon:**
- Hvilke forretningsdomener skal agenten dekke? (f.eks. HR, IT, salg)
- Har disse domenene ulike datakilder eller tilgangskontroller?
2. **Gjenbruk:**
- Skal noen av disse funksjonene brukes av flere hovedagenter?
- Planlegger dere flere agent-prosjekter fremover?
3. **Governance:**
- Trenger ulike deler av systemet ulike godkjenningsprosesser?
- Har dere behov for separate audit logs per domene?
4. **Performance:**
- Hva er akseptabel responstid? (sequential vs. concurrent)
- Hvor kritisk er kostnadskontroll? (inline vs. connected)
5. **Brukeropplevelse:**
- Skal brukere informeres når de "flyttes" til en annen agent?
- Trenger dere transparent routing for compliance?
6. **Lifecycle:**
- Hvem eier vedlikehold av ulike agenter? (samme team vs. separate teams)
- Har dere etablert CI/CD for agent deployment?
7. **Security:**
- Skal connected agents ha høyere privilegier enn hovedagent?
- Kreves user consent før sensitive operasjoner?
8. **Datahåndtering:**
- Hvor sensitiv er konteksten som sendes mellom agenter?
- Må dere logge eller anonymisere data ved agent handoffs?
### Fallgruber å unngå
| Fallgruve | Impact | Forebygging |
|-----------|--------|------------|
| **Premature decomposition** | Overhead uten gevinst | Start med én agent, splitt når behov oppstår |
| **Poor description quality** | Feil agent-seleksjon | Bruk nøkkelord, spesifiser hva agent *ikke* gjør |
| **Security bypass via handoff** | Uautoriserte operasjoner | Audit alle connected agent-kall, krev consent for sensitive actions |
| **Context loss** | Connected agent mangler info | Test conversation history handoff, vurder explicit parameter passing |
| **Insufficient testing** | Orchestrator kaller feil agenter | Test med realistiske multi-intent queries |
| **No correlation in telemetry** | Vanskelig debugging | Korreler parent/child sessions med identifiers |
### Anbefalinger per modenhetsnivå
#### Nivå 1: Starter (proof-of-concept)
- **Bruk:** Inline agents (topics) kun
- **Plattform:** Copilot Studio low-code
- **Fokus:** Lær generative orchestration med topics først
- **Unngå:** Connected agents (for tidlig kompleksitet)
#### Nivå 2: Voksende (pilot i produksjon)
- **Bruk:** 1-2 connected agents for tydelige domener
- **Plattform:** Copilot Studio + Power Automate
- **Fokus:** Etabler governance for agent handoffs, audit logging
- **Best practice:** Dokumenter beskrivelser i versjonskontroll
#### Nivå 3: Moden (enterprise-scale)
- **Bruk:** Multi-agent arkitektur med triage + spesialist-agenter
- **Plattform:** Agent Framework (pro-code) + Azure AI Foundry
- **Fokus:** CI/CD for agents, telemetri-korrelering, cost optimization
- **Advanced patterns:** Concurrent workflows, approval workflows, A2A protocol for cross-platform
#### Nivå 4: Innovativ (cutting-edge)
- **Bruk:** Autonomous multi-agent systems med self-coordination
- **Plattform:** Agent Framework + custom orchestrators
- **Fokus:** Agent-to-agent protocols, dynamic agent composition
- **Research:** Agent swarms, emergent collaboration
## Kilder og verifisering
### Microsoft Learn URLs (MCP-verifisert)
1. **Multi-agent patterns:**
https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/multi-agent-patterns
(Verified: 2026-06-19)
2. **Generative orchestration:**
https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-generative-actions
(Verified: 2026-04)
3. **Agents for M365 Copilot:**
https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/agents-overview
(Verified: 2026-04)
4. **Agent Framework Handoff:**
https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/orchestrations/handoff
(Verified: 2026-04)
5. **Agent governance (M365 admin):**
https://learn.microsoft.com/en-us/microsoft-365/admin/manage/manage-copilot-agents-integrated-apps
(Verified: 2026-06-19)
6. **Agent security & compliance:**
https://learn.microsoft.com/en-us/copilot/microsoft-365/agent-essentials/agent-essentials-overview
(Verified: 2026-04)
### Konfidensnivå per seksjon
| Seksjon | Konfidens | Kilde |
|---------|-----------|-------|
| Kjernekomponenter | **Verified** | MCP: microsoft_docs_fetch (multi-agent-patterns, generative-actions) |
| Arkitekturmønstre | **Verified** | MCP: microsoft_code_sample_search (handoff, concurrent patterns) |
| Integrasjon M365 | **Verified** | MCP: microsoft_docs_search (agents-overview, admin-guide) |
| Kostnad | **Baseline** | Modellkunnskap (prismodeller kan endre seg) |
| Offentlig sektor (Norge) | **Baseline** | Generell compliance-kunnskap (verifiser lokale regler) |
| Best practices | **Verified** | MCP: microsoft_docs_fetch (multi-agent-patterns guidance) |
**Anbefaling:** For produksjonsbeslutninger, verifiser alltid kostnad og compliance mot siste Microsoft-dokumentasjon og lokale juridiske rådgivere.