ms-ai-architect/skills/ms-ai-engineering/references/agent-orchestration/semantic-kernel-agents-implementation.md
Kjell Tore Guttormsen ddce43d8b2 feat(ms-ai-architect): Spor 1 — Port-1-substrat migrert på 4 ikke-advisor-skills (243 Source + 327 Type + 325 TOC + stale-verified poison fjernet) [skip-docs]
Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/
infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk
(fra første ## seksjon), advisor urørt (0 endringer).

To applier-fixes oppdaget under kjøring (TDD, RED→GREEN):
- insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer
  500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor
  scan-vinduet, applierens post-write-assertion fanget + restaurerte).
- normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i
  500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var
  ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent
  utvidelse av carve-out; kun stray metadata-linjer, aldri prosa.

test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet
(fila bærer nå Source). Suite 728/728 grønn.
2026-07-04 10:19:11 +02:00

504 lines
24 KiB
Markdown

# Semantic Kernel and Microsoft Agent Framework - Implementation Patterns
**Last updated:** 2026-06-18 | Verified: 2026-06-18
**Status:** GA — Microsoft Agent Framework 1.0 (3. apr 2026), orchestration patterns GA
**Category:** Agent Orchestration & Automation
**Type:** reference
**Source:** https://learn.microsoft.com/agent-framework/overview/agent-framework-overview
> **Produksjonsklart rammeverk (juni 2026):** Microsoft Agent Framework (MAF) 1.0 nådde GA 3. april 2026 og er det produksjonsklare, open-source rammeverket (.NET + Python) som Semantic Kernel og AutoGen har konvergert inn i. SK og AutoGen er nå i vedlikeholds-/migrasjonsmodus (migration guides finnes); ny utvikling bør bygge på MAF. De fem orkestreringsmønstrene — Sequential, Concurrent, Handoff, Group Chat og Magentic — er **stabile (GA)** i MAF 1.0 med streaming, checkpointing, human-in-the-loop og pause/resume.
---
## Innhold
- [Introduksjon](#introduksjon)
- [Kjernekomponenter](#kjernekomponenter)
- [Arkitekturmønstre](#arkitekturmønstre)
- [Beslutningsveiledning](#beslutningsveiledning)
- [Integrasjon med Microsoft-stacken](#integrasjon-med-microsoft-stacken)
- [Offentlig sektor (Norge)](#offentlig-sektor-norge)
- [Kostnad og Lisensiering](#kostnad-og-lisensiering)
- [For arkitekten (Cosmo)](#for-arkitekten-cosmo)
- [Kilder og verifisering](#kilder-og-verifisering)
## Introduksjon
Semantic Kernel Agent Framework og Microsoft Agent Framework representerer neste generasjon av agentic AI-utvikling på Microsoft-stacken. Semantic Kernel Agent Framework bygger på det etablerte Semantic Kernel-økosystemet og utvider det med multi-agent orchestration patterns, mens Microsoft Agent Framework forener kapabilitetene fra Semantic Kernel og AutoGen i ett unified framework.
Begge frameworks deler samme grunnleggende filosofi: agenter er autonome enheter som kan resonnere, kalle funksjoner, samarbeide med andre agenter, og tilpasse seg dynamisk til komplekse scenarier. De bruker function calling som primær planleggingsmekanisme, der moderne LLM-modeller iterativt velger og utfører funksjoner for å løse oppgaver.
**Semantic Kernel Agent Framework** gir fem hovedagent-typer (ChatCompletionAgent, OpenAIAssistantAgent, AzureAIAgent, OpenAIResponsesAgent, CopilotStudioAgent) og fem orchestration patterns (Concurrent, Sequential, Handoff, Group Chat, Magentic). **Microsoft Agent Framework** bygger videre på dette og legger til enterprise-grade features som OpenTelemetry observability, Microsoft Entra-integrasjon, og standarder som Agent-to-Agent (A2A) protocol og Model Context Protocol (MCP).
Nøkkelforskjellen: Semantic Kernel bruker `Kernel`-objektet som sentral orkestreringsenhet, mens Microsoft Agent Framework bruker `IChatClient` wrapped av `ChatClientAgent` for mer fleksibel provider-integrasjon.
## Kjernekomponenter
### Agent-typer i Semantic Kernel
| Agent Type | Use Case | State Management | Function Calling |
|------------|----------|------------------|------------------|
| **ChatCompletionAgent** | Generell-purpose conversational agents | Lokal (ChatHistory) | Må aktiveres eksplisitt (`FunctionChoiceBehavior.Auto()`) |
| **OpenAIAssistantAgent** | OpenAI Assistants API-baserte agenter | Serverside (OpenAI) | Alltid aktivert |
| **AzureAIAgent** | Azure AI Agent Service-baserte agenter | Serverside (Azure) | Matcher AzureAIAgentThread |
| **OpenAIResponsesAgent** | Structured responses via Responses API | Lokal/Serverside | Konfigurerbar |
| **CopilotStudioAgent** | Copilot Studio agent-integrasjon | Copilot Studio | Via Copilot Studio |
### Plugins og Function Calling
Plugins er grunnlaget for agent-kapabiliteter. De defineres med `[KernelFunction]`-attributtet og registreres på Kernel-objektet:
```csharp
public class OrderPlugin {
[KernelFunction("check_order_status")]
[Description("Gets the current status of an order")]
public string CheckOrderStatus(string orderId)
=> $"Order {orderId} is shipped.";
}
// Registrer plugin på agenten
ChatCompletionAgent agent = new() {
Name = "OrderAgent",
Instructions = "You help customers with order inquiries.",
Kernel = kernel,
Arguments = new KernelArguments(
new OpenAIPromptExecutionSettings() {
FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()
})
};
agent.Kernel.Plugins.AddFromType<OrderPlugin>();
```
**Function calling loop:**
1. LLM får chat history + function schemas
2. LLM bestemmer om den skal svare eller kalle en funksjon
3. Hvis funksjonskall: parse funksjonsnavn og parametere
4. Utfør funksjonen
5. Returner resultatet til LLM
6. Repeter til oppgaven er løst eller brukeren trengs
Semantic Kernel automatiserer hele denne loopen når `FunctionChoiceBehavior.Auto()` er aktivert.
### Agent Thread og Conversation State
`AgentThread` abstraherer conversation state management:
- **Stateful agents** (AzureAIAgent, OpenAIAssistantAgent): State lagres i tjenesten, tilgang via ID
- **Stateless agents** (ChatCompletionAgent): Chat history sendes med hver invokasjon
- **Type matching**: Stateful agents krever matching thread-type (f.eks. `AzureAIAgent` + `AzureAIAgentThread`)
```python
# ChatCompletionAgent med lokal state
from semantic_kernel.agents import ChatCompletionAgent, ChatHistoryAgentThread
agent = ChatCompletionAgent(
service=AzureChatCompletion(),
instructions="You are a helpful assistant.",
plugins=[MyPlugin()]
)
thread = ChatHistoryAgentThread() # Lokal state
async for message in agent.invoke(user_message, thread):
print(message.content)
```
### Orchestration Patterns (Semantic Kernel)
| Pattern | Koordinering | Typisk bruk | Status |
|---------|-------------|-------------|--------|
| **Concurrent** | Broadcast til alle, samle resultater uavhengig | Parallell analyse, ensemble decision making | GA i MAF 1.0 (3. apr 2026) |
| **Sequential** | Pass resultat fra én agent til neste i sekvens | Pipelines, multi-stage processing | GA i MAF 1.0 (3. apr 2026) |
| **Handoff** | Dynamisk overføring basert på kontekst/regler | Escalation, expert handoff | GA i MAF 1.0 (3. apr 2026) |
| **Group Chat** | Alle agenter i gruppe, koordinert av manager | Collaborative problem solving, brainstorming | GA i MAF 1.0 (3. apr 2026) |
| **Magentic** | Planner-based manager koordinerer team | Komplekse, generalist multi-agent tasks | GA i MAF 1.0 (3. apr 2026) |
**Unified interface**: Alle orchestration patterns har samme konstruksjons- og invokasjonsmønster.
### Microsoft Agent Framework Additions
Microsoft Agent Framework bygger på Semantic Kernel og tilbyr:
- **Multi-agent orchestration**: Sequential, Concurrent, Group Chat, Handoff, Magentic
- **Cloud/provider flexibility**: Cloud-agnostisk (containers, on-prem, multi-cloud) og provider-agnostisk (OpenAI, Microsoft Foundry)
- **Enterprise features**: OpenTelemetry, Microsoft Entra, Responsible AI (prompt injection protection, task adherence monitoring)
- **Standards-based interoperability**: A2A protocol, Model Context Protocol (MCP)
**Hovedforskjell fra Semantic Kernel**: Bruker `IChatClient` (Microsoft.Extensions.AI) i stedet for `Kernel`-objektet.
```csharp
// Microsoft Agent Framework approach
var chatClient = new AzureOpenAIClient(endpoint, credential).AsChatClient(modelId);
var chatClientAgent = new ChatClientAgent(chatClient, name: "Assistant");
// Semantic Kernel approach
var kernel = Kernel.CreateBuilder()
.AddAzureOpenAIChatCompletion(modelId, endpoint, apiKey)
.Build();
var agent = new ChatCompletionAgent() { Kernel = kernel };
```
## Arkitekturmønstre
### 1. Single Agent med Function Calling
**Bruk når**: Oppgaven kan løses av én spesialisert agent med tilgang til plugins.
**Fordeler**:
- Enkel arkitektur
- Lav latency (ingen koordinering mellom agenter)
- Lett å debugge
**Ulemper**:
- Begrenset til én agents kompetanseområde
- Kan ikke håndtere komplekse, multi-domene oppgaver
```python
from semantic_kernel.agents import ChatCompletionAgent
from semantic_kernel.connectors.ai import FunctionChoiceBehavior
agent = ChatCompletionAgent(
service=AzureChatCompletion(),
instructions="You are a GitHub repository assistant.",
plugins=[GitHubPlugin()],
function_choice_behavior=FunctionChoiceBehavior.Auto()
)
thread = ChatHistoryAgentThread()
async for message in agent.invoke("What issues are open?", thread):
print(message.content)
```
### 2. Sequential Orchestration
**Bruk når**: Oppgaven er en tydelig pipeline der hver agent bygger på resultatet fra forrige.
**Fordeler**:
- Forutsigbar flyt
- Lett å resonnere om
- God for step-by-step workflows
**Ulemper**:
- Blokkerende (agent 2 venter på agent 1)
- Kan ikke håndtere sideveier eller branching
**Eksempel**: Document processing pipeline (Extract → Analyze → Summarize → Translate)
### 3. Group Chat med Magentic Manager
**Bruk når**: Oppgaven er kompleks, åpen, og krever dynamisk samarbeid mellom spesialiserte agenter.
**Fordeler**:
- Fleksibel koordinering
- Manager kan re-plane basert på fremgang
- Human-in-the-loop plan review støttes
**Ulemper**:
- Høyere latency (planning overhead)
- Manager må være kraftig modell (gpt-4o, o1)
- Kan stall hvis agenter ikke gjør fremgang
```python
from agent_framework import MagenticBuilder
workflow = (
MagenticBuilder()
.participants([researcher_agent, coder_agent, reviewer_agent])
.with_manager(
agent=manager_agent,
max_round_count=10,
max_stall_count=3,
max_reset_count=2
)
.with_plan_review() # Enable HITL
.build()
)
async for event in workflow.run(task="Research and implement feature X"):
if event.type == "RequestInfoEvent":
# Handle plan review request
response = await get_human_approval(event.data)
await workflow.respond(response)
```
### 4. Handoff Pattern
**Bruk når**: Agenter er organisert i mesh-topologi og kan dynamisk overføre kontroll uten sentral manager.
**Fordeler**:
- Desentralisert (ingen single point of failure)
- Agenter bestemmer selv når de hander off
- God for escalation-scenarier
**Ulemper**:
- Kan være vanskeligere å resonnere om flyt
- Krever tydelige handoff-regler i agent instructions
**Eksempel**: Customer support (TriageAgent → OrderStatusAgent | ReturnAgent | RefundAgent)
## Beslutningsveiledning
### Velg Agent Type
```
Trenger du OpenAI Assistants API features (code interpreter, retrieval)?
├─ Ja → OpenAIAssistantAgent
└─ Nei → Trenger du Azure AI Agent Service (persistent threads, storage)?
├─ Ja → AzureAIAgent
└─ Nei → Trenger du Copilot Studio integrasjon?
├─ Ja → CopilotStudioAgent
└─ Nei → ChatCompletionAgent (mest fleksibel)
```
### Velg Orchestration Pattern
**Foer du velger multi-agent pattern:** Evaluer om scenariet faktisk krever det. Hvert kompleksitetsnivaa introduserer koordinerings-overhead, latens og kostnad. Bruk laveste kompleksitetsnivaa som tilfredsstillende loser problemet:
1. **Direct model call** — klassifisering, oppsummering, oversettelse (ingen agent)
2. **Single agent med tools** — varierte spoerringsmaal innen ett domene (ofte riktig default)
3. **Multi-agent orchestration** — cross-domain, ulike sikkerhetsbegrensninger, eller oppgaver som drar nytte av parallell spesialisering
| Scenario | Anbefalt Pattern | Hvorfor |
|----------|------------------|---------|
| Uavhengige subtasks | Concurrent | Parallell utførelse, redusert total tid |
| Lineær pipeline | Sequential | Forutsigbar, enkel flyt |
| Ukjent løsningsvei | Magentic | Dynamisk planning, iterativ refinement |
| Samarbeid uten planning | Group Chat | Enklere enn Magentic, fortsatt fleksibel |
| Triage/escalation | Handoff | Desentralisert, agent-drevet routing |
### Vanlige feil
| Feil | Konsekvens | Fix |
|------|------------|-----|
| Glemmer å aktivere `FunctionChoiceBehavior.Auto()` | Agent kaller aldri plugins | Legg til i `Arguments` ved agent-opprettelse |
| Bruker feil thread-type med stateful agent | Runtime exception | Match thread-type til agent-type (AzureAIAgent + AzureAIAgentThread) |
| For mange plugins på én agent | Token overflow, dårlig function selection | Split agenter etter domene, bruk orchestration |
| Mangler `[Description]` på functions | LLM velger feil funksjon | Alltid beskriv funksjonens formål tydelig |
| Bruker Group Chat når Sequential ville fungert | Unødvendig overhead | Vurder om oppgaven faktisk trenger dynamisk koordinering |
### Røde flagg
- **Agent kaller samme funksjon i loop**: Manglende progress tracking eller dårlig instruction prompt
- **Manager i Magentic staller umiddelbart**: Agenter mangler capabilities til oppgaven, eller task er for vag
- **Function calling returnerer "Unable to find function"**: Plugin ikke registrert på Kernel, eller function name mismatch
- **Chat history vokser uhåndterlig**: Mangler conversation summarization eller token management
## Integrasjon med Microsoft-stacken
### Microsoft Foundry
Semantic Kernel-agenter kan bruke Microsoft Foundry-deployments via Azure OpenAI connector:
```csharp
builder.AddAzureOpenAIChatCompletion(
deploymentName: "gpt-4o",
endpoint: "https://<resource>.openai.azure.com",
credentials: new AzureCliCredential()
);
```
AzureAIAgent integrerer direkte med Azure AI Agent Service for persistent threads og storage.
### Copilot Studio
CopilotStudioAgent lar Semantic Kernel-kode kommunisere med Copilot Studio-bygde agenter:
```csharp
var copilotAgent = new CopilotStudioAgent() {
Name = "CopilotStudioBot",
CopilotStudioEndpoint = "https://<endpoint>",
// State management via Copilot Studio
};
```
**Use case**: Wrap Copilot Studio-agent i større multi-agent workflow.
### Microsoft 365 Agents SDK
Microsoft 365 Agents SDK bruker Semantic Kernel eller Agent Framework som orchestrator:
- Agents SDK gir `TurnContext` og `TurnState` for channel-integrasjon (Teams, M365 Copilot)
- Semantic Kernel `Kernel`-objekt registreres som singleton i `Program.cs`
- Agent Framework bruker `IChatClient` wrapper i stedet
**Deployment**: Agents kan deployes til Microsoft Teams, M365 Copilot, eller egne channels.
### Power Platform
Semantic Kernel kan integreres med Power Platform via:
- **Power Automate**: Custom connectors som kaller Semantic Kernel-backends
- **AI Builder**: Prompt-baserte modeller kan wrappes som Semantic Kernel plugins
- **Dataverse**: Lagre agent conversation state i Dataverse
## Offentlig sektor (Norge)
### GDPR og Datasuverenitet
**Utfordring**: Chat history og function call logs inneholder ofte persondata.
**Mitigering**:
- **ChatCompletionAgent**: Chat history lagres lokalt — full kontroll over data residency
- **OpenAIAssistantAgent/AzureAIAgent**: State lagres i tjenesten — verifiser at Azure-region er EU (West Europe, North Europe)
- **Logging**: Bruk Azure Monitor i norsk region, aktiver data residency-garantier
- **PII filtering**: Implementer pre-processing hooks som anonymiserer/pseudonymiserer PII før sending til LLM
### AI Act Compliance
**Høyrisiko AI-systemer** (f.eks. helse, politi): Krever human oversight, logging, bias-testing.
**Semantic Kernel-tilpasninger**:
- **Human-in-the-loop**: Bruk `with_plan_review()` i Magentic for å kreve menneskelig godkjenning av planer
- **Audit logging**: Log alle function calls og agent decisions til tamper-proof storage (Azure Immutable Storage)
- **Bias testing**: Test agenter mot representative datasett fra norsk kontekst
### Forvaltningsloven og Utredningsinstruksen
**Krav**: Beslutninger må kunne etterprøves og begrunnes.
**Semantic Kernel-tilpasninger**:
- **Explainability**: Logg hele ChatHistory med function calls for full transparency
- **Decision tracing**: Bruk metadata-felter i `ChatMessageContent` for å tagge beslutningspunkter
- **Versjonering**: Versjonshåndter agent instructions og plugin code for å kunne gjenskape beslutninger
### Schrems II og Cloud Act
**Risiko**: Data lagret i US-baserte cloud-tjenester kan potensielt tilgjengeliggjøres for amerikanske myndigheter.
**Mitigering**:
- **Azure EU regions**: Bruk West Europe/North Europe for alle Semantic Kernel-relaterte ressurser
- **ChatCompletionAgent over stateful agents**: Reduserer avhengighet av US-baserte tjenester (OpenAI Assistants API)
- **On-prem LLMs**: For ekstremt sensitive data, kjør open-source modeller (Phi, Llama) on-prem med Semantic Kernel
## Kostnad og Lisensiering
### Prismodell
| Komponent | Kostnad | Enhet |
|-----------|---------|-------|
| **Azure OpenAI (GPT-4o)** | ~0.60 USD per 1M input tokens, ~1.80 USD per 1M output tokens | Token |
| **Azure AI Agent Service** | ~0.002 USD per agent session + storage | Session + GB |
| **OpenAI Assistants API** | ~0.03 USD per assistant/day + token costs | Day + Token |
| **Semantic Kernel SDK** | Gratis (open source) | - |
| **Microsoft Agent Framework** | Gratis (open source) | - |
### Kostnadsoptimalisering
**1. Token management**:
```csharp
// Bruk smaller context window når mulig
var settings = new OpenAIPromptExecutionSettings() {
MaxTokens = 500, // Begrens output
FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(
autoInvoke: true,
options: new() {
AllowConcurrentInvocation = true // Parallel function calling → fewer turns
}
)
};
```
**2. Velg billigere modeller for enkle agenter**:
- **Manager i Magentic**: GPT-4o (trenger reasoning)
- **Specialist agents**: GPT-4o-mini (40% billigere, ofte tilstrekkelig)
**3. Caching** (Azure OpenAI):
- Bruk system message caching for agent instructions (redusert input token cost)
**4. Kernel cloning** (Semantic Kernel):
```csharp
// IKKE opprett ny Kernel for hver agent
Kernel agentKernel = sharedKernel.Clone(); // Rebruk AI service connections
```
**5. Batch processing**:
- Grupper uavhengige oppgaver og bruk Concurrent orchestration (fewer total LLM calls)
### Lisensiering
**Semantic Kernel**: MIT License (ingen restriksjon på kommersiell bruk)
**Microsoft Agent Framework**: MIT License
**Azure OpenAI**: Krever Azure-abonnement, ingen per-agent lisensavgift
**OpenAI API**: Per-token pricing, ingen agent-lisens
**Offentlig sektor**: Ingen spesielle lisensbegrensninger, men vurder data residency-krav ved valg av AI service (Azure OpenAI vs. OpenAI).
## For arkitekten (Cosmo)
### Spørsmål å stille kunden
1. **Kompleksitetsnivå**: Er oppgaven løsbar av én agent, eller kreves samarbeid mellom spesialiserte agenter?
2. **State management**: Trenger dere persistent conversation state på tvers av sesjoner, eller er in-memory tilstrekkelig?
3. **Data residency**: Har dere krav om at chat history og agent state må lagres i EU?
4. **Human oversight**: Må menneskelige beslutningstagere godkjenne agent-planer før utførelse?
5. **Integrasjon**: Skal agentene integreres med eksisterende Microsoft 365-kanaler (Teams, Copilot)?
6. **Volum**: Hvor mange samtidige agentsesjoner forventer dere? (påvirker valg av Azure-tier og caching-strategi)
7. **Compliance**: Er dette et høyrisiko AI-system som faller under AI Act? Krever dere full audit trail?
8. **Existing plugins**: Har dere eksisterende Semantic Kernel plugins, eller starter dere fra scratch?
### Fallgruver
| Fallgruve | Konsekvens | Forebygging |
|-----------|------------|-------------|
| Over-engineering med orchestration | Høy latency, kostnad | Start med single agent, utvid til orchestration kun hvis nødvendig |
| Under-engineering agent instructions | Agent kaller feil funksjoner | Bruk templates, test med few-shot examples |
| Manglende error handling i plugins | Agent får "function failed" uten context | Wrap plugin methods med try-catch, returner descriptive error messages |
| Ikke versjonshåndtere agent definitions | Kan ikke gjenskape historiske beslutninger | Versjonshåndter instructions og plugin code i git |
| Blande stateful og stateless agents | Thread type mismatch, runtime errors | Cluster agenter etter state management pattern |
### Anbefalinger per modenhetsnivå
**Beginner** (aldri brukt Semantic Kernel):
- Start med **ChatCompletionAgent** og én enkel plugin
- Bruk **automatic function calling** (`FunctionChoiceBehavior.Auto()`)
- Unngå orchestration inntil du mestrer single-agent patterns
- Bruk OpenAI Playground for å teste function calling-prompts før implementasjon
**Intermediate** (erfaring med Semantic Kernel, nye på agenter):
- Eksperimenter med **Sequential orchestration** for pipelines
- Implementer **ChatHistoryAgentThread** for conversation management
- Utforsk **AzureAIAgent** for persistent threads
- Legg til OpenTelemetry for å spore function calls og agent decisions
**Advanced** (building production multi-agent systems):
- Bruk **Magentic orchestration** med human-in-the-loop for komplekse workflows
- Implementer **Microsoft Agent Framework** for enterprise features (Entra, observability)
- Bygg custom managers for spesialiserte orchestration patterns
- Integrer med Microsoft Foundry evaluations for kvalitetstesting av agenter
**Enterprise** (large-scale deployment):
- Vurder **Microsoft Agent Framework** over Semantic Kernel for standardized observability
- Implementer **multi-region deployment** for data residency compliance
- Bygg internal plugin marketplace for å dele reusable capabilities
- Etabler governance-prosess for agent instruction review (AI Act compliance)
## Kilder og verifisering
### Microsoft Learn-dokumentasjon (Verified via MCP)
1. [Semantic Kernel Agent Orchestration](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-orchestration/) — Confidence: Verified (2026-02)
2. [Agent Architecture Overview](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-architecture) — Confidence: Verified (2026-02)
3. [Configuring Agents with Plugins](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-functions) — Confidence: Verified (2026-02)
4. [Planning and Function Calling](https://learn.microsoft.com/en-us/semantic-kernel/concepts/planning) — Confidence: Verified (2026-02)
5. [Microsoft Agent Framework Overview](https://learn.microsoft.com/en-us/agent-framework/overview/agent-framework-overview) — Confidence: Verified (2026-02)
6. [Magentic Orchestration Pattern](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/orchestrations/magentic) — Confidence: Verified (2026-02)
7. [Microsoft 365 Agents SDK - Semantic Kernel Integration](https://learn.microsoft.com/en-us/microsoft-365/agents-sdk/using-semantic-kernel-agent-framework) — Confidence: Verified (2026-02)
8. [AI Agent Orchestration Patterns (Azure Architecture)](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/ai-agent-design-patterns) — Confidence: Verified (oppdatert 2026-04: start med riktig kompleksitetsnivaa — direct model call, single agent med tools, multi-agent; guidance om naar multi-agent er hensiktsmessig)
### Kodeeksempler (Verified via MCP Code Search)
9. [ChatCompletionAgent with GitHub Plugin](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/examples/example-chat-agent) — C# sample, Confidence: Verified (2026-02)
10. [Function Calling Loop Implementation](https://learn.microsoft.com/en-us/semantic-kernel/concepts/planning#using-automatic-function-calling) — Multi-language samples, Confidence: Verified (2026-02)
11. [Handoff Pattern Example](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-orchestration/handoff) — Customer support scenario, Confidence: Verified (2026-02)
### Konfidensgradering per seksjon
| Seksjon | Konfidensnivå | Kilde |
|---------|---------------|-------|
| Agent-typer | Verified | Microsoft Learn API reference |
| Orchestration patterns | Verified | Semantic Kernel docs + Agent Framework docs |
| Function calling loop | Verified | Planning docs + code samples |
| Microsoft Agent Framework additions | Verified | Agent Framework docs |
| Kostnadsmodell | Baseline | Azure pricing calculator (feb 2026) |
| Offentlig sektor compliance | Baseline | Generell AI Act/GDPR-kunnskap + Azure compliance docs |
| Integration patterns | Verified | Microsoft 365 Agents SDK docs |
**Totalt**: 11 unike kilder fra Microsoft Learn, 10/11 verifisert via MCP (feb 2026).