ms-ai-architect/skills/ms-ai-engineering/references/agent-orchestration/agent-feedback-and-learning-loops.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

14 KiB

Agent Feedback and Continuous Learning Loops

Last updated: 2026-02 Status: GA / Preview (continuous evaluation) Category: Agent Orchestration & Automation Type: reference


Innhold

Introduksjon

AI-agenter i produksjon er ikke statiske systemer -- de krever kontinuerlig forbedring basert på reell brukerinteraksjon og ytelsesdata. Feedback-loops er mekanismene som fanger opp signaler fra brukere, evaluatorer og systemmetrikker, og kanaliserer disse tilbake til agentens konfigurasjon, prompts og underliggende modeller. Uten strukturerte feedback-loops degraderer agentytelse over tid ettersom brukerforventninger, datakilder og forretningsregler endres.

Microsoft tilbyr en integrert plattform for kontinuerlig evaluering og forbedring av agenter gjennom Microsoft Foundry, Application Insights og Semantic Kernel. Foundry-plattformen støtter automatisert kvalitetsevaluering i produksjon med innebygde evaluatorer for relevans, koherens og sikkerhet. Kombinert med eksplisitt brukerfeedback (thumbs up/down) og implisitte signaler (avbrutte samtaler, oppfølgingsspørsmål) skaper dette en lukket forbedringssyklus.

For norsk offentlig sektor er feedback-loops kritisk for å sikre at AI-agenter forblir i tråd med Forvaltningslovens krav til forsvarlig saksbehandling og Digitaliseringsdirektoratets prinsipper for ansvarlig AI. Systematisk innsamling av tilbakemeldinger dokumenterer også at organisasjonen aktivt overvåker og forbedrer sine AI-systemer -- et krav under EU AI Act.

Kjernekomponenter

Komponent Formål Teknologi
Continuous Evaluation Automatisk kvalitetsmåling i produksjon Microsoft Foundry Evaluators
User Feedback Collection Eksplisitt og implisitt tilbakemelding Application Insights, custom telemetry
Agent Monitoring Ytelsesovervåking og drift-deteksjon Azure Monitor, Foundry Control Plane
Evaluation Catalog Sentralisert evaluatorbibliotek Microsoft Foundry evaluator catalog
Reward Modeling Scoring av agentresponser for forbedring Custom evaluators, RLHF-pipelines
Retraining Pipeline Automatisert modelloppgradering Azure ML Pipelines, MLflow

Human Feedback Collection

Eksplisitt feedback

Eksplisitt feedback er direkte brukerhandlinger som thumbs up/down, rating-skalaer eller fritekstkommentarer. Microsoft Foundry og Copilot Studio har innebygd støtte for å samle denne typen data.

# Logge brukerfeedback til MLflow med trace_id
import mlflow

# Etter at agenten har svart og bruker gir feedback
mlflow.log_feedback(
    trace_id=response.trace_id,
    span_id=response.span_id,
    feedback={
        "rating": "positive",  # eller "negative"
        "comment": "Svaret var relevant og nøyaktig",
        "category": "accuracy"
    }
)

Implisitt feedback

Implisitte signaler fanges opp uten eksplisitt brukerhandling:

Signal Indikator Tolkning
Oppfølgingsspørsmål Bruker stiller relatert spørsmål Mulig ufullstendig svar
Samtalebrudd Bruker forlater uten handling Lav tilfredshet
Reformulering Bruker stiller samme spørsmål annerledes Agenten misforstod
Tid brukt Lang tid mellom spørsmål og handling Bruker evaluerer svar kritisk
Kopiering av svar Bruker kopierer agentens tekst Svar var nyttig

Feedback-innsamling i Copilot Studio

# Copilot Studio agent konfigureres med:
# 1. Aktiver "User Satisfaction" i agent-innstillinger
# 2. Koble til Application Insights
# 3. Definer egendefinerte metrikker i analytics-dashboardet

Continuous Evaluation med Microsoft Foundry

Microsoft Foundry tilbyr automatisert kvalitetsevaluering av agenter i produksjon. Evaluatorer kjører kontinuerlig mot produksjonstrafikk og rapporterer resultater til Application Insights.

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
    AgentEvaluationRequest,
    EvaluatorIds,
    AgentEvaluationSamplingConfiguration
)
from azure.identity import DefaultAzureCredential

project_client = AIProjectClient(
    credential=DefaultAzureCredential(),
    endpoint=os.environ["PROJECT_ENDPOINT"]
)

# Definer evaluatorer
evaluators = {
    "Relevance": {"Id": EvaluatorIds.Relevance.value},
    "Fluency": {"Id": EvaluatorIds.Fluency.value},
    "Coherence": {"Id": EvaluatorIds.Coherence.value},
    "Groundedness": {"Id": EvaluatorIds.Groundedness.value},
}

# Konfigurer sampling
sampling_config = AgentEvaluationSamplingConfiguration(
    sampling_percent=10,  # Evaluer 10% av produksjonstrafikk
    max_request_rate_per_hour=500
)

# Start kontinuerlig evaluering
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(
        thread=thread.id,
        run=run.id,
        evaluators=evaluators,
        sampling_configuration=sampling_config,
        app_insights_connection_string=connection_string,
    )
)

Evaluator-kategorier

Kategori Evaluatorer Formål
Kvalitet Relevance, Fluency, Coherence Språklig og innholdsmessig kvalitet
Groundedness Groundedness Svar forankret i kildedokumenter
Sikkerhet Violence, SelfHarm, HateFairness Innholdssikkerhet og ansvarlig AI
Agent-spesifikk ToolCallAccuracy, IntentResolution Agent-spesifikk ytelse

Performance Monitoring og Drift-deteksjon

Foundry Control Plane

Microsoft Foundry Control Plane gir unified oversikt over agentflåten:

# Overvåk agentytelse via Azure Monitor
# KQL-spørring for å identifisere ytelses-degradering

# AppInsights KQL
requests
| where timestamp > ago(7d)
| where name contains "agent-evaluation"
| summarize
    avg_relevance = avg(todouble(customDimensions["relevance_score"])),
    avg_groundedness = avg(todouble(customDimensions["groundedness_score"])),
    avg_latency = avg(duration)
    by bin(timestamp, 1h)
| where avg_relevance < 0.7 or avg_groundedness < 0.6
| order by timestamp desc

Drift-deteksjon

Drift i agentsystemer kan oppstå av flere årsaker:

Drift-type Årsak Deteksjonsmetode
Data drift Endrede brukerforespørsler Distribusjon av input-embeddings over tid
Concept drift Endrede forretningsregler Groundedness-score faller
Model drift Modelloppgradering fra leverandør A/B-testing av modellversjoner
Knowledge drift Utdatert kunnskapsbase Relevance-score på RAG-queries
# Eksempel: Drift-varsling med Azure Monitor Alerts
from azure.monitor.opentelemetry import configure_azure_monitor

# Konfigurer varsling når kvalitetsmetrikker faller under terskel
alert_rule = {
    "name": "agent-quality-degradation",
    "condition": {
        "metric_name": "agent.evaluation.relevance",
        "operator": "LessThan",
        "threshold": 0.65,
        "window_size": "PT1H"
    },
    "action": {
        "action_group": "ai-ops-team",
        "severity": 2
    }
}

Retraining og Continuous Improvement

Closed-loop forbedringssyklus

┌─────────────────────────────────────────────────────┐
│  1. IDENTIFY  →  Monitoring + feedback avdekker      │
│                  kvalitetsproblemer                   │
│                                                      │
│  2. EXPORT    →  Problematiske eksempler eksporteres  │
│                  til evaluation dataset               │
│                                                      │
│  3. DIAGNOSE  →  MLflow trace-analyse identifiserer   │
│                  rotårsak                             │
│                                                      │
│  4. IMPROVE   →  Prompt-justering, RAG-oppdatering,   │
│                  eller modellbytte                    │
│                                                      │
│  5. VALIDATE  →  Test mot utvidet evalueringssett     │
│                                                      │
│  6. DEPLOY    →  Gradvis utrulling med A/B-testing    │
│                                                      │
│  7. MONITOR   →  Fortsett kontinuerlig evaluering     │
└─────────────────────────────────────────────────────┘

Retraining Triggers

Trigger Terskel Handling
Relevance-score under 0.65 > 24 timer sammenhengende Prompt-revisjon + RAG-oppdatering
Groundedness under 0.60 > 8 timer Kunnskapsbase-oppdatering
Bruker-feedback < 3.5/5 Over 100 interaksjoner Full agent-gjennomgang
Nye temaer ikke dekket > 20% av forespørsler Utvid kunnskapskilder
Sikkerhetsevaluator-flagg Enhver forekomst Umiddelbar prompt-hardening

Implementeringsmønstre

Pattern 1: Prompt Refinement Loop

from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion

# Versjonskontrollert prompt-forbedring
PROMPT_VERSIONS = {
    "v1.0": "Du er en hjelpsom assistent for ...",
    "v1.1": "Du er en presis assistent som alltid refererer til kilder ...",
    "v1.2": "Du er en presis assistent. Svar alltid med kildehenvisning. ..."
}

kernel = Kernel()
kernel.add_service(AzureChatCompletion(
    deployment_name="gpt-4o",
    endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_key=os.environ["AZURE_OPENAI_KEY"]
))

# A/B-testing av prompt-versjoner
async def evaluate_prompt_version(version: str, test_queries: list):
    results = []
    for query in test_queries:
        response = await kernel.invoke_prompt(
            PROMPT_VERSIONS[version],
            input_vars={"query": query}
        )
        results.append(response)
    return results

Pattern 2: RAG Quality Feedback Loop

# Samle feedback spesifikt på RAG-retrievals
class RAGFeedbackCollector:
    def __init__(self, app_insights_client):
        self.client = app_insights_client

    def log_retrieval_quality(
        self,
        query: str,
        retrieved_docs: list,
        agent_response: str,
        user_rating: int,
        groundedness_score: float
    ):
        self.client.track_event(
            "rag_retrieval_feedback",
            properties={
                "query": query,
                "doc_count": len(retrieved_docs),
                "doc_sources": [d.source for d in retrieved_docs],
                "user_rating": user_rating,
                "groundedness": groundedness_score,
                "needs_review": groundedness_score < 0.6
            }
        )

Norsk offentlig sektor

Krav fra rammeverk

Rammeverk Krav Implementering
EU AI Act Art. 9 Risikostyringssystem med kontinuerlig overvåking Continuous evaluation + alerting
Forvaltningsloven Forsvarlig saksbehandling, dokumentasjonsplikt Audit trail for alle agentbeslutninger
NSM Grunnprinsipper Overvåking og hendelseshåndtering Azure Monitor + Sentinel-integrasjon
Digdir AI-prinsipper Transparens og etterprøvbarhet Feedback-data lagret i henhold til arkivloven

Personvern-hensyn

  • Feedback som inneholder personopplysninger må behandles i henhold til personvernforordningen (GDPR)
  • Anonymiser brukerdata før bruk i retraining-pipelines
  • Implementer dataminimering -- samle kun feedback nødvendig for kvalitetsforbedring
  • Sett retensjonspolicies: Slett detaljert feedback etter 12 måneder, behold aggregerte metrikker

Beslutningsrammeverk

Scenario Anbefaling Begrunnelse
Ny agent i produksjon Start med 100% evaluering, reduser til 10% etter baseline Etabler kvalitetsbaseline raskt
Stabil agent med lav risiko 5-10% sampling med ukentlig gjennomgang Kostnadseffektiv overvåking
Høyrisiko-agent (saksbehandling) 100% evaluering + manuell review-sample Regulatorisk krav og høy konsekvens
Agent med fallende kvalitet Øk til 50% sampling + aktivér alle evaluatorer Rask diagnose av rotårsak
Post-modellbytte 100% evaluering i 7 dager Verifiser at ny modell opprettholder kvalitet

For Cosmo

  • Continuous evaluation er ikke valgfritt -- det er en forutsetning for produksjonsdeployment. Implementer Microsoft Foundry evaluatorer fra dag 1 med sampling tilpasset risikoprofilen.
  • Closed-loop feedback er gullstandarden: identifiser problemer via monitoring, diagnostiser med MLflow traces, forbedre prompts/RAG, valider med evalueringssett, og deploy gradvis.
  • Drift-deteksjon er spesielt viktig for agenter som bruker RAG -- kunnskapsbaser blir utdaterte, og groundedness-score er den beste indikatoren på dette.
  • Norsk offentlig sektor krever at feedback-systemer respekterer GDPR og arkivloven -- anonymiser brukerdata og sett klare retensjonspolicies.
  • Anbefal alltid versjonskontrollerte prompts med MLflow Prompt Registry -- dette muliggjør rollback og sammenligning av promptversjoner over tid.