feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command
Add /ultraresearch-local for structured research combining local codebase analysis with external knowledge via parallel agent swarms. Produces research briefs with triangulation, confidence ratings, and source quality assessment. New command: /ultraresearch-local with modes --quick, --local, --external, --fg. New agents: research-orchestrator (opus), docs-researcher, community-researcher, security-researcher, contrarian-researcher, gemini-bridge (all sonnet). New template: research-brief-template.md. Integration: --research flag in /ultraplan-local accepts pre-built research briefs (up to 3), enriches the interview and exploration phases. Planning orchestrator cross-references brief findings during synthesis. Design principle: Context Engineering — right information to right agent at right time. Research briefs are structured artifacts in the pipeline: ultraresearch → brief → ultraplan --research → plan → ultraexecute. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
baa2d0220b
488 changed files with 213221 additions and 0 deletions
|
|
@ -0,0 +1,631 @@
|
|||
# Foundry Workflows — Visuell Multi-Agent Orkestrering
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Status:** Public Preview (announced MS Ignite november 2025)
|
||||
**Category:** Agent Orchestration & Automation
|
||||
|
||||
---
|
||||
|
||||
## Introduksjon
|
||||
|
||||
Foundry Workflows er den visuelle orkestreringsdesigneren i Microsoft Foundry (Azure AI Foundry) for å bygge, teste og deploye multi-agent-prosesser uten å skrive orkestreringslogikk for hånd. Annonsert i Public Preview på Microsoft Ignite november 2025, er Workflows bygget på toppen av **Microsoft Agent Framework** og tilbyr en drag-and-drop-kanvas kombinert med YAML-definisjon for team som vil ha en visuell designopplevelse med pro-code-flukt.
|
||||
|
||||
Den kritiske innsikten er at Foundry Workflows løser et annet problem enn enkelt-agenter: der én agent håndterer ett fokusert problem, koordinerer en Workflow flere spesialiserte agenter, branching-logikk, datatransformasjoner og menneskelige godkjenningstrinn i en **repeterbar, versjonert og observerbar prosess**. Dette er produksjonsnivå-automatisering — ikke prototyping.
|
||||
|
||||
Workflows er ett av tre agenttyper i Foundry:
|
||||
- **Prompt-based**: Enkelt-agent med instruksjoner og verktøy
|
||||
- **Workflow**: Sekvenser og orkestrering av agenter (denne filen)
|
||||
- **Hosted (preview)**: Containeriserte agenter med egendefinert kode
|
||||
|
||||
---
|
||||
|
||||
## Visuell Designer
|
||||
|
||||
### Drag-and-Drop Kanvas
|
||||
|
||||
Foundry Workflows tilbyr en nettleserbasert visuell designer tilgjengelig direkte i Foundry Portal:
|
||||
|
||||
| Funksjonalitet | Beskrivelse |
|
||||
|---------------|-------------|
|
||||
| **Drag-and-drop** | Legg til og flytt noder på en kanvas uten kode |
|
||||
| **Kanter (edges)** | Koble noder med piler for å definere dataflyt og sekvens |
|
||||
| **Livevisualisering** | Noder lyser opp i sanntid under kjøring — se hvilken agent som er aktiv nå |
|
||||
| **Tospannsvisning** | Bytt mellom visuell kanvas og YAML-redigering — endringer synkroniseres automatisk |
|
||||
| **Notater** | Legg til forklarende tekst direkte på kanvaset for dokumentasjon og kontekst |
|
||||
| **Maler** | Start fra Sequential, Human-in-the-loop, eller Group chat-mal |
|
||||
| **Versionslogg** | Klikk på versjonsdropdown for å navigere mellom lagrede versjoner |
|
||||
|
||||
### Toveis YAML/Visuell-synkronisering
|
||||
|
||||
Et sentralt designprinsipp er at visuell og YAML-representasjon alltid er i sync:
|
||||
|
||||
```yaml
|
||||
# Eksempel: Sequential workflow (YAML-visning)
|
||||
kind: Sequential
|
||||
name: document-review-workflow
|
||||
agents:
|
||||
- name: extractor-agent
|
||||
agentId: agent-extractor-001
|
||||
outputVariable: Local.extractedData
|
||||
- name: reviewer-agent
|
||||
agentId: agent-reviewer-002
|
||||
input: =Local.extractedData
|
||||
- name: approver-agent
|
||||
agentId: agent-approver-003
|
||||
input: =Local.reviewResult
|
||||
```
|
||||
|
||||
Endringer i YAML-visning reflekteres umiddelbart i kanvaset — og vice versa. Dette gjør det mulig for forretningsbrukere å jobbe visuelt mens utviklere jobber i YAML eller VS Code.
|
||||
|
||||
---
|
||||
|
||||
## Node-typer
|
||||
|
||||
Noder er byggesteinene i en Workflow. Hver node utfører én spesifikk handling.
|
||||
|
||||
### Oversikt over node-typer
|
||||
|
||||
| Node-type | Kategori | Formål |
|
||||
|-----------|----------|--------|
|
||||
| **Invoke agent** | Agent | Kall en Foundry-agent og bruk output videre |
|
||||
| **If/else** | Logic | Branching basert på betingelse (Power Fx) |
|
||||
| **Go to** | Logic | Hopp til en annen node (loop-kontroll) |
|
||||
| **For each** | Logic | Iterer over en liste eller tabell |
|
||||
| **Set variable** | Data transformation | Tilordne verdi til lokal variabel |
|
||||
| **Parse value** | Data transformation | Tolk/transformer data (f.eks. JSON-parsing) |
|
||||
| **Send message** | Basic chat | Send tekst til brukeren |
|
||||
| **Ask a question** | Basic chat / Human-in-the-loop | Spør brukeren og vent på svar |
|
||||
|
||||
### Detaljer: Agent-noden
|
||||
|
||||
Agentnode lar deg kalle enhver eksisterende Foundry-agent fra prosjektet ditt, eller opprette en ny agent direkte fra kanvaset:
|
||||
|
||||
```yaml
|
||||
# Agent-node med strukturert JSON-output
|
||||
- kind: InvokeAgent
|
||||
id: classify_document
|
||||
agentId: agent-classifier-001
|
||||
input: =Local.uploadedDocument
|
||||
outputVariable: Local.classificationResult
|
||||
responseFormat:
|
||||
type: json_schema
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
category: { type: string }
|
||||
confidence: { type: number }
|
||||
requiresHumanReview: { type: boolean }
|
||||
required: [category, confidence, requiresHumanReview]
|
||||
```
|
||||
|
||||
### Detaljer: Human-in-the-loop-noden
|
||||
|
||||
Human-in-the-loop er et førsteklasses konsept i Foundry Workflows. Workflowen **pauser** ved noden og venter på menneskelig input eller godkjenning før den fortsetter:
|
||||
|
||||
```yaml
|
||||
- kind: AskQuestion
|
||||
id: request_approval
|
||||
activity:
|
||||
text: =Concat("Klassifisering: ", Local.classificationResult.category,
|
||||
". Confidence: ", Text(Local.classificationResult.confidence, "0%"),
|
||||
". Godkjenner du dette?")
|
||||
outputVariable: Local.humanApproval
|
||||
|
||||
- kind: IfElse
|
||||
id: check_approval
|
||||
condition: =Lower(Local.humanApproval) = "ja"
|
||||
truePath: proceed_node
|
||||
falsePath: escalation_node
|
||||
```
|
||||
|
||||
**Godkjennings-mønster** (approval workflow):
|
||||
```yaml
|
||||
- kind: AskQuestion
|
||||
id: manager_approval
|
||||
activity:
|
||||
text: "Dokument krever godkjenning. Skriv 'godkjenn' eller 'avvis':"
|
||||
outputVariable: Local.decision
|
||||
|
||||
- kind: IfElse
|
||||
id: route_decision
|
||||
condition: =Local.decision = "godkjenn"
|
||||
truePath: publish_agent
|
||||
falsePath: return_for_revision
|
||||
```
|
||||
|
||||
### Detaljer: Loop-noden (For each)
|
||||
|
||||
```yaml
|
||||
- kind: ForEach
|
||||
id: process_each_document
|
||||
collection: =Local.documentList
|
||||
itemVariable: Local.currentDoc
|
||||
body:
|
||||
- kind: InvokeAgent
|
||||
id: process_doc
|
||||
agentId: agent-processor-001
|
||||
input: =Local.currentDoc
|
||||
outputVariable: Local.processedDoc
|
||||
- kind: SetVariable
|
||||
id: append_result
|
||||
variable: Local.results
|
||||
value: =Concat(Local.results, Local.processedDoc, "\n")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Orkestreringsmønstre (Maler)
|
||||
|
||||
Foundry tilbyr tre startmaler inspirert av Microsoft Agent Framework:
|
||||
|
||||
| Mønster | Beskrivelse | Typisk brukstilfelle |
|
||||
|---------|-------------|----------------------|
|
||||
| **Sequential** | Resultat fra én agent sendes direkte til neste i fast rekkefølge | Dokumentprosessering, flertrinns-analyse, innholdspipelines |
|
||||
| **Human-in-the-loop** | Workflowen pauser og venter på brukerinput eller godkjenning | Godkjenningsprosesser, compliance-sjekk, vedtak som krever menneskelig oversikt |
|
||||
| **Group chat** | Kontroll sendes dynamisk mellom agenter basert på kontekst og regler | Eskalering, eksperthandoff, dynamiske arbeidsflyter |
|
||||
|
||||
---
|
||||
|
||||
## Feilhåndtering
|
||||
|
||||
Foundry Workflows har innebygd feilhåndteringsmekanikk, primært via Power Fx betingelseslogikk og workflow-strukturering. Full retry-policy konfigurasjon er foreløpig mer moden i pro-code/YAML-tilnærminger.
|
||||
|
||||
### Praktisk feilhåndtering med Power Fx
|
||||
|
||||
```yaml
|
||||
# Sjekk om agent-output er gyldig før neste steg
|
||||
- kind: IfElse
|
||||
id: validate_output
|
||||
condition: =IsBlank(Local.agentResult) Or IsError(Local.agentResult)
|
||||
truePath: error_handler_node
|
||||
falsePath: next_step_node
|
||||
|
||||
# Feilhåndterings-node
|
||||
- kind: SendActivity
|
||||
id: error_handler_node
|
||||
activity:
|
||||
text: =Concat("Feil i prosessering. Melding: ", Local.lastError,
|
||||
". Sak eskalert til manuell behandling.")
|
||||
```
|
||||
|
||||
### Timeout-håndtering
|
||||
|
||||
Fra offisiell dokumentasjon (troubleshooting): komplekse workflows kan timeout dersom eksterne tjenester ikke svarer innenfor forventet tid. Anbefalt mønster:
|
||||
|
||||
| Problem | Mitigering |
|
||||
|---------|------------|
|
||||
| Workflow timer ut | Bryt komplekse workflows i mindre segmenter |
|
||||
| Agent svarer ikke | Sjekk at agentens modell og verktøy er konfigurert korrekt |
|
||||
| Uventet output | Valider JSON-schema på agent-noder; bruk `IfError()` i Power Fx |
|
||||
|
||||
### Retry (via Microsoft Agent Framework / YAML)
|
||||
|
||||
For pro-code-tilnærming med Agent Framework YAML:
|
||||
```yaml
|
||||
- kind: InvokeAgent
|
||||
id: resilient_agent_call
|
||||
agentId: agent-001
|
||||
retryPolicy:
|
||||
maxRetries: 3
|
||||
retryDelay: PT5S # ISO 8601 duration: 5 sekunder
|
||||
retryOn: [Timeout, ServiceUnavailable]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Power Fx for Betingelser og Datatransformasjon
|
||||
|
||||
Power Fx er Microsofts lavkodespråk (Excel-lignende formler) brukt i Foundry Workflows for å drive logikk og datamanipulasjon.
|
||||
|
||||
### Variabelscoping
|
||||
|
||||
| Prefiks | Scope | Eksempel |
|
||||
|---------|-------|---------|
|
||||
| `Local.` | Lokal til workflowen | `Local.documentCategory` |
|
||||
| `System.` | Systemvariabler (bruker, samtale, tid) | `System.User.Language` |
|
||||
|
||||
### Nyttige formler
|
||||
|
||||
```
|
||||
# Strengmanipulasjon
|
||||
Upper(Local.Var01) -- Konverter til store bokstaver
|
||||
Concat("Hei, ", Local.userName) -- Strengkonkatenering
|
||||
Len(Local.responseText) -- Lengde
|
||||
|
||||
# Betingelser
|
||||
If(Local.score > 0.8, "godkjent", "avvist")
|
||||
IsBlank(Local.agentResult) -- Sjekk om variabel er tom
|
||||
IsError(Local.result) -- Sjekk om forrige steg feilet
|
||||
|
||||
# Dato/tid
|
||||
Text(Now(), "yyyy-MM-dd") -- Formater dato
|
||||
DateDiff(Local.startDate, Now(), Days) -- Beregn antall dager
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integrasjon med Foundry Agent Service og MCP
|
||||
|
||||
### Foundry Agent Service
|
||||
|
||||
Foundry Workflows er bygget direkte inn i Foundry Agent Service — ikke et separat produkt. Workflows er et agenttype på linje med prompt-based og hosted agenter, og deler:
|
||||
|
||||
- **Identitets- og RBAC-modell**: Workflows bruker prosjektidentitet under utvikling og egen Agent Identity etter publisering
|
||||
- **Verktøykatalog**: Alle verktøy som er tilgjengelige for enkelt-agenter (Code Interpreter, Bing Search, Azure AI Search, Key Vault, MCP-servere) er tilgjengelige i agent-noder inni workflows
|
||||
- **Livssyklus**: Workflows følger samme Develop → Test → Evaluate → Publish → Monitor-livssyklus som enkelt-agenter
|
||||
|
||||
### MCP-verktøy i Workflows
|
||||
|
||||
Agent-noder i Workflows støtter MCP-tilkoblinger på linje med enkelt-agenter:
|
||||
|
||||
```yaml
|
||||
# Agent-node med MCP-verktøy (konfigurert på selve agenten)
|
||||
- kind: InvokeAgent
|
||||
id: research_step
|
||||
agentId: agent-researcher-mcp
|
||||
# Agenten er konfigurert med MCP-server (f.eks. microsoft-learn, sharepoint)
|
||||
input: =Local.researchQuery
|
||||
outputVariable: Local.researchFindings
|
||||
```
|
||||
|
||||
**Foundry MCP Server** (preview) eksponerer Foundry selv som et MCP-endepunkt — agenter og workflows kan dermed orkestreres fra MCP-kompatible klienter uten å skrive backend-kode.
|
||||
|
||||
---
|
||||
|
||||
## Foundry Workflows vs. Logic Apps vs. Power Automate
|
||||
|
||||
Dette er den mest stilte arkitekturspørsmålet. Velg basert på hvem som eier prosessen og hva slags intelligens som kreves.
|
||||
|
||||
### Sammenligningstabellen
|
||||
|
||||
| Dimensjon | Foundry Workflows | Azure Logic Apps | Power Automate |
|
||||
|-----------|-------------------|-----------------|----------------|
|
||||
| **Primær målgruppe** | AI-ingeniører, løsningsarkitekter, operasjonsteam | IT-profesjonelle, enterprise-integrasjonsteam | Forretningsbrukere, Microsoft 365-brukere |
|
||||
| **Kjernekonsept** | Orkestrering av AI-agenter | Enterprise-integrasjon (iPaaS) | Menneskesentrisk automatisering |
|
||||
| **Intelligens** | Innebygd — agent-noder tar egne beslutninger | Ingen innebygd LLM — kaller Azure AI som ekstern connector | AI Builder for enkle scenarier |
|
||||
| **Triggers** | Chat-basert (brukerinput), API-kall | 1400+ triggere (HTTP, Events, Schedule, Queues, SaaS) | Microsoft 365-hendelser, skjemainnsending, godkjenning |
|
||||
| **Tilkoblinger** | Foundry-agenter, MCP-verktøy, Azure-tjenester | 400+ enterprise-koblinger (SAP, Salesforce, AS2, EDI) | Microsoft 365, SharePoint, Teams, Dynamics |
|
||||
| **Variabelmodell** | Power Fx, JSON-schema | Expressions (JSON-paths, ARM-funksjoner) | Power Fx |
|
||||
| **Feilhåndtering** | Betingelseslogikk, agent-resiliens | Retry-policies, error scopes, dead-letter | Kjøre mislykket gren, parallell gren |
|
||||
| **Overvåking** | Agent Monitoring Dashboard, OpenTelemetry traces | Azure Monitor, Logic App Run History | Power Platform Admin Center |
|
||||
| **Prising** | Inkludert i Foundry Agent Service (token-basert) | Consumption (per execution) eller Standard (fast) | Per-bruker-lisens (Microsoft 365 inkl.) |
|
||||
| **Datasuverenitet** | Azure-regioner (Norway East støttet) | Azure-regioner, on-premises gateway | Power Platform-regioner |
|
||||
|
||||
### Beslutningsguide: Velg riktig orkestrator
|
||||
|
||||
```
|
||||
Trenger prosessen AI-agenter som tar beslutninger?
|
||||
├─ Nei → Vurder Logic Apps eller Power Automate
|
||||
│ └─ Er det forretningsbrukere som skal eie og kjøre prosessen?
|
||||
│ ├─ Ja → Power Automate (Microsoft 365-kontekst)
|
||||
│ └─ Nei → Logic Apps (enterprise-integrasjon, høy volum)
|
||||
└─ Ja → Foundry Workflows
|
||||
└─ Er det enkelt scenarier med én agent?
|
||||
├─ Ja → Vurder Foundry single agent (enklere)
|
||||
└─ Nei → Foundry Workflows (multi-agent, branching, HITL)
|
||||
```
|
||||
|
||||
### Hybridmønster (anbefalt for enterprise)
|
||||
|
||||
For norsk offentlig sektor er hybridmønsteret vanligst:
|
||||
|
||||
- **Logic Apps**: Trigger fra eksisterende systemer (sak-system, e-post, skjema), integrasjoner mot fagsystemer (SAP, Dynamics), scheduling
|
||||
- **Foundry Workflows**: AI-analyse, klassifisering, sammendrag, beslutningsstøtte
|
||||
- **Power Automate**: Menneskelige godkjenningstrinn, Teams-varsler, Microsoft 365-oppgaver
|
||||
|
||||
```
|
||||
Fagsystem → Logic Apps (trigger + datafetch) → Foundry Workflow (AI-analyse)
|
||||
→ Logic Apps (skriv resultat tilbake) → Power Automate (varsle saksbehandler)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Deployment: API-endepunkter, Versjonering og A/B-testing
|
||||
|
||||
### Publisering som API-endepunkt
|
||||
|
||||
Workflows publiseres som **Agent Applications** — selvstendige Azure-ressurser med stabile API-endepunkter:
|
||||
|
||||
```bash
|
||||
# Verifiser at workflow er publisert
|
||||
curl -X POST \
|
||||
"https://<foundry-resource>.services.ai.azure.com/api/projects/<project>/applications/<app>/protocols/openai/responses?api-version=2025-11-15-preview" \
|
||||
-H "Authorization: Bearer <access-token>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"input": "Start dokumentgjennomgang for saksnummer 2025-1234"}'
|
||||
```
|
||||
|
||||
**RBAC for publiserte endepunkter**: Klienter som kaller endepunktet må ha `Azure AI User`-rollen på Agent Application-ressursen.
|
||||
|
||||
### Versjonering
|
||||
|
||||
Foundry Workflows har et immutabelt versjonssystem:
|
||||
|
||||
| Versjonsprinsipp | Detalj |
|
||||
|-----------------|--------|
|
||||
| **Immutable versions** | Hvert lagring oppretter en ny versjon. Eksisterende versjoner kan ikke endres |
|
||||
| **Draft state** | Usavede endringer kan testes i playground, men mistes ved navigering |
|
||||
| **Version history** | Alle versjoner er listet i versjonsdropdown; naviger til hvilken som helst |
|
||||
| **Rollback** | Deploy en tidligere versjon ved å publisere den på nytt |
|
||||
| **Version comparison** | Sammenlign konfigurasjoner, chat-output og YAML mellom versjoner |
|
||||
| **Code reference** | Referanse til agent i kode: `<agent_name>:<version>` |
|
||||
|
||||
### A/B-testing (begrenset)
|
||||
|
||||
Per februar 2026 er A/B-testing av workflows begrenset: all trafikk rutes til én aktiv deployment. For å eksperimentere:
|
||||
|
||||
1. Opprett en parallell Agent Application for B-varianten
|
||||
2. Split trafikk manuelt i lag foran (API Management, Logic Apps, eller custom router)
|
||||
3. Sammenlign metrics i Agent Monitoring Dashboard
|
||||
|
||||
Microsofts roadmap indikerer at trafikkdeling mellom deployments planlegges som funksjon.
|
||||
|
||||
---
|
||||
|
||||
## Overvåking: Tracing, Tokenbruk og Latensmetrikker
|
||||
|
||||
### Agent Monitoring Dashboard
|
||||
|
||||
Foundry tilbyr et dedikert Agent Monitoring Dashboard tilgjengelig fra **Monitor**-fanen på enhver agent eller workflow:
|
||||
|
||||
| Metrikk | Beskrivelse | Terskelverdi å kjenne til |
|
||||
|---------|-------------|--------------------------|
|
||||
| **Token usage** | Prompt + completion tokens per agent-kall i tidsvindu | Høy tokenbruk kan indikere verbose prompts |
|
||||
| **Latency** | End-to-end responstid per workflow-kjøring | >10 sekunder kan indikere modell-throttling |
|
||||
| **Run success rate** | Andel kjøringer som fullføres uten feil | <95% bør undersøkes |
|
||||
| **Error rate** | Antall mislykkede node-kjøringer | Bør nærme seg 0 i produksjon |
|
||||
| **Evaluation metrics** | Scores fra evaluators (korrekthet, sikkerhet, relevans) | Varierer per evaluator |
|
||||
|
||||
### Tracing (OpenTelemetry)
|
||||
|
||||
Foundry bruker OpenTelemetry med egne semantiske konvensjoner for multi-agent observability:
|
||||
|
||||
| Span-type | Formål |
|
||||
|-----------|--------|
|
||||
| `execute_task` | Overordnet task-planlegging og event-propagering |
|
||||
| `agent_to_agent_interaction` | Sporing av kommunikasjon mellom agenter |
|
||||
| `agent.state.management` | Context og minnehåndtering |
|
||||
| `agent_planning` | Agentens interne planleggingssteg |
|
||||
| `execute_tool` | Verktøy-kall med input/output |
|
||||
|
||||
**Granular tracing** av en Workflow-kjøring viser:
|
||||
- Hvert agent-kall med input og output
|
||||
- Variabeltilordninger og verdier
|
||||
- Hvilken branch som ble tatt i if/else-noder
|
||||
- Latens per node
|
||||
- Token-forbruk per LLM-kall
|
||||
|
||||
### Continuous Evaluation
|
||||
|
||||
```python
|
||||
# Sett opp kontinuerlig evaluering av workflow
|
||||
from azure.ai.projects import AIProjectClient
|
||||
|
||||
client = AIProjectClient(endpoint=project_endpoint, credential=credential)
|
||||
|
||||
# Konfigurer evaluator på workflow-kjøringer
|
||||
evaluation_config = {
|
||||
"evaluators": {
|
||||
"relevance": {"type": "relevance"},
|
||||
"groundedness": {"type": "groundedness"},
|
||||
"safety": {"type": "safety"}
|
||||
},
|
||||
"samplingRate": 0.1 # Evaluer 10% av produksjonskjøringer
|
||||
}
|
||||
```
|
||||
|
||||
### Integration med Azure Monitor og Application Insights
|
||||
|
||||
```
|
||||
Foundry Workflows → OpenTelemetry traces → Application Insights
|
||||
→ Azure Monitor (platform metrics)
|
||||
→ Log Analytics Workspace
|
||||
→ KQL-spørringer og alerter
|
||||
```
|
||||
|
||||
**KQL-eksempel — oppdag workflows med høy feilrate:**
|
||||
```kusto
|
||||
traces
|
||||
| where customDimensions["workflow_name"] == "dokumentgodkjenning-workflow"
|
||||
| where timestamp > ago(24h)
|
||||
| summarize SuccessCount = countif(resultCode == "200"),
|
||||
FailureCount = countif(resultCode != "200")
|
||||
by bin(timestamp, 1h)
|
||||
| extend SuccessRate = round(100.0 * SuccessCount / (SuccessCount + FailureCount), 1)
|
||||
| where SuccessRate < 95
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Norsk offentlig sektor
|
||||
|
||||
### Visuell styring og revisjonsspor
|
||||
|
||||
Foundry Workflows' visuelle designer gir offentlig sektor-organisasjoner en unik fordel: **prosessen er synlig og forklarbar** — ikke skjult i kode. Dette adresserer flere krav:
|
||||
|
||||
| Krav | Hvordan Foundry Workflows møter det |
|
||||
|------|-------------------------------------|
|
||||
| **Innsyn i automatiserte prosesser** | Visuell kanvas kan vises for revisorer og tilsynsmyndigheter |
|
||||
| **Dokumentasjon** | YAML-definisjon er versionskontrollert og lesbar — fungerer som prosessdokumentasjon |
|
||||
| **Forvaltningsloven § 11a** | Human-in-the-loop-noder sikrer at saksbehandler godkjenner vedtak |
|
||||
| **AI Act transparenskrav** | Hvert steg er sporbart via OpenTelemetry; agent-identitet er deklarert |
|
||||
| **GDPR — sporbarhet** | `Conversation.Id` og trace-IDer kobler brukeraktivitet til loggoppføringer |
|
||||
| **Schrems II** | Deploy til `norwayeast` region; persondata forlater ikke EØS |
|
||||
|
||||
### Automatiserte vedtak og forvaltningsloven
|
||||
|
||||
**Kritisk**: Workflows som bidrar til vedtaksprosesser i norsk forvaltning må:
|
||||
|
||||
1. **Ha human-in-the-loop** for alle vedtak som påvirker rettighetsstatus (§ 11a)
|
||||
2. **Logge beslutningsgrunnlaget** — bruk variabellagring og tracing til å bevare agentens resonnement
|
||||
3. **Versjonere prosessen** — Foundry Workflows' immutable versioning gir sporbarhet over tid
|
||||
4. **DPIA** — Workflows som behandler personopplysninger krever PVK (personvernkonsekvensvurdering)
|
||||
|
||||
```yaml
|
||||
# Obligatorisk HITL-mønster for offentlig sektor-vedtak
|
||||
- kind: InvokeAgent
|
||||
id: analyse_soknad
|
||||
agentId: agent-soknad-analyser
|
||||
outputVariable: Local.analyseResultat
|
||||
|
||||
- kind: AskQuestion
|
||||
id: saksbehandler_godkjenning
|
||||
activity:
|
||||
text: =Concat("AI-analyse: ", Local.analyseResultat.anbefaling,
|
||||
" (confidence: ", Text(Local.analyseResultat.confidence, "0%"), ")",
|
||||
"\nGrunnlag: ", Local.analyseResultat.begrunnelse,
|
||||
"\n\nGodkjenner du denne anbefalingen? (ja/nei/endre)")
|
||||
outputVariable: Local.saksbehandlerBeslutning
|
||||
|
||||
- kind: SetVariable
|
||||
id: log_beslutning
|
||||
variable: Local.revisionslogg
|
||||
value: =Concat("Vedtak: ", Local.saksbehandlerBeslutning,
|
||||
" | Tid: ", Text(Now(), "yyyy-MM-dd HH:mm"),
|
||||
" | Saksbehandler: ", System.User.DisplayName,
|
||||
" | AI-anbefaling: ", Local.analyseResultat.anbefaling)
|
||||
```
|
||||
|
||||
### NSM og dataminimering
|
||||
|
||||
- Bruk `IsBlank()` og `ParseJSON()` til å filtrere bort unødvendige persondata mellom noder
|
||||
- Ikke mellomlagre sensitive data som workflow-variabler utover det som trengs for neste steg
|
||||
- Konfigurer Azure Monitor-oppbevaring i henhold til virksomhetens sletteplan
|
||||
|
||||
---
|
||||
|
||||
## For Cosmo: Beslutningsveiledning
|
||||
|
||||
### Spørsmål å stille kunden
|
||||
|
||||
1. **Trenger prosessen mer enn én agent?**
|
||||
- Nei → Foundry enkelt-agent (enklere, billigere)
|
||||
- Ja → Foundry Workflows
|
||||
|
||||
2. **Er det saksbehandlere som skal godkjenne underveis?**
|
||||
- Ja → Human-in-the-loop-mønster i Foundry Workflows
|
||||
- Nei → Vurder fullt automatisert workflow eller Logic Apps
|
||||
|
||||
3. **Er prosessen godt definert (sekvens av steg)?**
|
||||
- Ja → Sequential workflow (mal)
|
||||
- Nei, dynamisk → Group chat-mønster eller enkelt-agent med verktøy
|
||||
|
||||
4. **Hvem skal vedlikeholde prosessen?**
|
||||
- Forretningsteam (lav teknisk kompetanse) → Visuell designer i Foundry Workflows
|
||||
- Utviklerteam → YAML + VS Code + CI/CD-integrasjon
|
||||
- Blandet → Foundry Workflows (begge tilnærminger i ett verktøy)
|
||||
|
||||
5. **Trenger prosessen triggers fra eksisterende systemer?**
|
||||
- Sak-system, e-post, filopprettelse → Logic Apps trigger → Foundry Workflow (hybrid)
|
||||
- Chat/Teams → Copilot Studio → Foundry Workflow
|
||||
|
||||
6. **Hva er compliance-kravene?**
|
||||
- Forvaltningsloven → HITL obligatorisk, logging av beslutningsgrunnlag
|
||||
- GDPR → Databehandleravtale med Microsoft, Norway East-region, DPIA
|
||||
- NSM grunnprinsipper → Minste privilegium, audit logging, MFA
|
||||
|
||||
7. **Er det behov for A/B-testing av ulike prosessdefinisjoner?**
|
||||
- Ja, kritisk → Vurder Logic Apps eller custom routing (mer fleksibelt nå)
|
||||
- Ja, enkelt → Manuell splitt via to Agent Applications
|
||||
|
||||
### Kompetansekrav
|
||||
|
||||
| Rolle | Foundry Workflows-kompetanse | Tid til produktivitet |
|
||||
|-------|-----------------------------|-----------------------|
|
||||
| Forretningsanalytiker | Visuell designer, Human-in-the-loop, Power Fx grunnleggende | 1-2 dager |
|
||||
| Løsningsarkitekt | Node-typer, orkestreringsmønstre, deployment, integrasjon | 3-5 dager |
|
||||
| AI-ingeniør | YAML-editing, VS Code-integrasjon, Agent Framework, CI/CD | 1 uke |
|
||||
| DevOps | Publisering, RBAC, monitoring, alerting | 2-3 dager |
|
||||
|
||||
### Fallgruver
|
||||
|
||||
| Fallgruve | Konsekvens | Mitigering |
|
||||
|-----------|------------|-----------|
|
||||
| **Bruke Workflow for enkelt scenarier** | Unødvendig kompleksitet og overhead | En agent med verktøy er tilstrekkelig for de fleste enkelt-oppgaver |
|
||||
| **Ingen HITL der det kreves** | Compliance-brudd (Forvaltningsloven) | Design HITL inn fra dag én for vedtaksprosesser |
|
||||
| **For lange workflow-kjøringer** | Timeout, dårlig UX | Del opp i delprosesser; bruk asynkron orkestrering for lang-levende tasks |
|
||||
| **Ukontrollerte persondata i variabler** | GDPR-risiko | Filtrer og minimer data mellom noder; bruk Key Vault for sensitiv info |
|
||||
| **Ingen versjonskontroll av YAML** | Kan ikke rollbacke ved feil | Eksporter YAML til Git-repo som del av CI/CD-pipeline |
|
||||
| **Avhengighet av visuell designer uten backup** | Vendor lock-in i UI | Alltid vedlikehold YAML som autoritativ kilde; bruk VS Code |
|
||||
|
||||
### Modenhetsnivåer
|
||||
|
||||
#### Nivå 1: Utforsking (0-1 måned)
|
||||
- Bygg en 2-3 agent Sequential workflow via visuell designer
|
||||
- Test Human-in-the-loop-malen
|
||||
- Evaluer tracing i Agent Monitoring Dashboard
|
||||
|
||||
**Success metric**: Første Workflow publisert og testet med reell brukerinput
|
||||
|
||||
#### Nivå 2: Pilot (1-3 måneder)
|
||||
- Én faktisk forretningsprosess i Foundry Workflows
|
||||
- YAML eksportert til Git for versjonskontroll
|
||||
- Continuous evaluation konfigurert (10% sampling)
|
||||
- Logging til Azure Monitor konfigurert
|
||||
|
||||
**Success metric**: Workflow kjører i produksjon, <5% feilrate, audit trail komplett
|
||||
|
||||
#### Nivå 3: Skalering (3-12 måneder)
|
||||
- Multiple workflows per team/domene
|
||||
- CI/CD-pipeline for YAML-deploy
|
||||
- Hybrid med Logic Apps for triggere fra fagsystemer
|
||||
- Custom evaluators for domene-spesifikke kvalitetsmetrikker
|
||||
- DPIA gjennomført og oppdatert
|
||||
|
||||
**Success metric**: Driftsavhengig prosess automatisert, sporbar, og godkjent av revisjon
|
||||
|
||||
---
|
||||
|
||||
## Kilder og verifisering
|
||||
|
||||
### Microsoft Learn (Verified)
|
||||
|
||||
1. **Build a workflow in Microsoft Foundry**
|
||||
- https://learn.microsoft.com/azure/ai-foundry/agents/concepts/workflow?view=foundry
|
||||
- Confidence: **Verified** (offisiell workflow-guide, Foundry new portal)
|
||||
|
||||
2. **Agent development lifecycle**
|
||||
- https://learn.microsoft.com/azure/ai-foundry/agents/concepts/development-lifecycle?view=foundry
|
||||
- Confidence: **Verified** (versjonering, publisering, livssyklus, januar 2025)
|
||||
|
||||
3. **Publish and share agents in Microsoft Foundry**
|
||||
- https://learn.microsoft.com/azure/ai-foundry/agents/how-to/publish-agent?view=foundry
|
||||
- Confidence: **Verified** (Agent Application deployment, API-kall, RBAC)
|
||||
|
||||
4. **Monitor agents with the Agent Monitoring Dashboard**
|
||||
- https://learn.microsoft.com/azure/ai-foundry/observability/how-to/how-to-monitor-agents-dashboard?view=foundry
|
||||
- Confidence: **Verified** (token usage, latency, success rate, evaluators)
|
||||
|
||||
5. **Declarative Workflows — Overview (Agent Framework)**
|
||||
- https://learn.microsoft.com/agent-framework/workflows/declarative
|
||||
- Confidence: **Verified** (YAML patterns, looping, HITL, error handling)
|
||||
|
||||
6. **Human-in-the-Loop Workflows**
|
||||
- https://learn.microsoft.com/agent-framework/workflows/human-in-the-loop
|
||||
- Confidence: **Verified** (HITL-mønster, pause og resume, compliance)
|
||||
|
||||
7. **Transparency Note for Azure Agent Service**
|
||||
- https://learn.microsoft.com/azure/ai-foundry/responsible-ai/agents/transparency-note?view=foundry-classic
|
||||
- Confidence: **Verified** (Foundry Workflows capabilities, visioning, governance)
|
||||
|
||||
### Microsoft Dev Blog (Verified)
|
||||
|
||||
8. **Introducing Multi-Agent Workflows in Foundry Agent Service**
|
||||
- https://devblogs.microsoft.com/foundry/introducing-multi-agent-workflows-in-foundry-agent-service/
|
||||
- Confidence: **Verified** (MS Ignite november 2025 announcement, feature liste, customer quotes)
|
||||
|
||||
### Confidence per seksjon
|
||||
|
||||
| Seksjon | Confidence | Kilde |
|
||||
|---------|-----------|-------|
|
||||
| Visuell designer og node-typer | Verified | MS Learn workflow-guide |
|
||||
| Orkestreringsmønstre | Verified | MS Learn + Agent Framework docs |
|
||||
| Feilhåndtering | Baseline | MS Learn troubleshooting + Agent Framework YAML |
|
||||
| Foundry vs Logic Apps vs Power Automate | Baseline | MS Learn + community analysis |
|
||||
| Deployment og versjonering | Verified | MS Learn publish-agent guide |
|
||||
| Monitoring og tracing | Verified | MS Learn monitoring dashboard + OpenTelemetry docs |
|
||||
| Norsk offentlig sektor | Baseline | LLM-kunnskap + NO compliance praksis |
|
||||
| Kostnadsestimater | Ikke inkludert | Se cost-estimation KB for priser |
|
||||
|
||||
**Total sources cited**: 8 unike URL-er fra MCP-research og Tavily
|
||||
**MCP calls**: 4 (2x docs_search, 2x docs_fetch)
|
||||
Loading…
Add table
Add a link
Reference in a new issue