ms-ai-architect/skills/ms-ai-advisor/references/copilot-extensibility/copilot-orchestration-multi-agent.md
Kjell Tore Guttormsen 03d596e4ec docs(ms-ai-architect): KB-refresh tema-b — Foundry-navnesveip «Azure AI Foundry»→«Microsoft Foundry» (233 filer)
Verifisert mot offisiell MS-doc (juni 2026): «Microsoft Foundry» er det
gjeldende produkt-/portalnavnet; «Foundry (classic)» = gamle «Azure AI Foundry»
(/azure/foundry/ vs /azure/foundry-classic/). Premiss bekreftet før sveip.

Multi-regel, IKKE naiv s/Azure AI Foundry/Microsoft Foundry/ — MS dropper
«Azure AI» (legger IKKE til «Microsoft») for to produktvarianter:
- «Azure AI Foundry Agent[ Service|s]» → «Foundry Agent Service/Agents» (MS-form)
- «Azure AI Foundry Models» → «Foundry Models» (i «Azure OpenAI in Foundry Models»)
- «Azure AI Foundry SDK» → «Microsoft Foundry SDK» (operatør-valg)
- «Azure AI Foundry portal/project» + generisk → «Microsoft Foundry»
- Pre-eksisterende «Microsoft Foundry Models» (4) normalisert → «Foundry Models»

Bevart: «Azure OpenAI», «Azure AI Inference SDK», «Azure AI Search»,
«Azure AI Services», kode-IDer. Historisk ref «(tidligere Azure AI Foundry)»
i model-catalog-2026.md beskyttet via lookbehind. URL /azure/ai-foundry/→
/azure/foundry/ kun i owasp-llm-top10 (KB-ref); docs/-filer deferred.

Scope: skills (inkl. 3 SKILL.md) + commands + agents + README + CLAUDE.
Ekskludert: docs/ (interne), playground/+tests/ fixtures (testdata),
CHANGELOG.md (historisk logg), STATE.md (gitignored).

3 SKILL.md endret (advisor/engineering/security) → judge-cache teknisk
invalidert for disse, men scorer uendret: advisor 91, eng/gov/infra/sec 96
(alle ≥90). validate 239/0. 0 «Azure AI Foundry» igjen (utenom bevart ref).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 21:00:27 +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)
- Microsoft 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å
### Foundry Agents
Connected agents kan koble til Microsoft 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) + Microsoft 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.