Agent evaluators

Important

Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller har begränsade funktioner. Mer information finns i Supplemental Terms of Use for Microsoft Azure Previews.

AI-agenter är kraftfulla produktivitetsassistenter som kan skapa arbetsflöden för affärsbehov. Observerbarhet kan dock vara en utmaning på grund av deras komplexa interaktionsmönster. Agentutvärderingar ger systematisk observerbarhet i agentiska arbetsflöden genom att mäta kvalitet, säkerhet och prestanda.

Ett agentarbetsflöde innebär vanligtvis att man resonerar med hjälp av användar avsikter, anropar relevanta verktyg och använder verktygsresultat för att slutföra uppgifter som att uppdatera en databas eller utarbeta en rapport. För att skapa produktionsklara agentiska program måste du utvärdera inte bara de slutliga utdata, utan även kvaliteten och effektiviteten för varje steg i arbetsflödet.

Foundry tillhandahåller inbyggda agentutvärderingar som fungerar som enhetstester för agentiska system – de tar agentmeddelanden som indata- och utdatabinärt Pass/Fail-poäng (eller skalade poäng konverterade till binära poäng baserat på tröskelvärden). Dessa utvärderare stöder två metodtips för agentutvärdering:

  • Systemutvärdering – för att undersöka resultatet från slutpunkt till slutpunkt för det agentiska systemet.
  • Processutvärdering – för att verifiera den stegvisa körningen för att uppnå resultatet.
Evaluator Best practice Use when Purpose Output
Slutförd aktivitet (förhandsversion) System evaluation Utvärdera lyckade uppgifter från slutpunkt till slutpunkt i arbetsflödesautomation, målinriktade AI-interaktioner eller alla scenarier där slutförande av fullständiga uppgifter är kritiskt Mått om agenten slutförde den begärda uppgiften med en användbar slutprodukt som uppfyller alla användarkrav Binary: Pass/Fail
Uppgiftsefterlevnad (förhandsversion) System evaluation Se till att agenter följer systeminstruktioner och verifierar efterlevnad i reglerade miljöer Mäter om agentens åtgärder följer dess tilldelade uppgifter enligt regler, procedurer och principbegränsningar, baserat på dess systemmeddelande och tidigare steg Binary: Pass/Fail
Aktivitetsnavigeringseffektivitet System evaluation Optimera agentarbetsflöden, minska onödiga steg, validera mot kända optimala sökvägar (kräver grundsanning) Mäter om agenten gjorde verktygsanrop effektivt för att slutföra en uppgift genom att jämföra dem med förväntade verktygssekvenser Binary: Pass/Fail
Avsiktsmatchning (förhandsversion) System evaluation Kundsupportscenarier, konversations-AI, vanliga frågor och svar-system där det är viktigt att förstå användar avsikter Mäter om agenten identifierar användarens avsikt korrekt Binärt: Pass/Fail baserat på tröskelvärde (skala 1–5)
Noggrannhet för verktygsanrop Process evaluation Övergripande verktyg anropar kvalitetsbedömning i agentsystem med verktygsintegrering, API-interaktioner för att slutföra sina uppgifter Mäter om agenten gjorde rätt verktygsanrop med rätt parametrar för att slutföra uppgiften Binärt: Pass/Fail baserat på tröskelvärde (skala 1–5)
Tool Selection Process evaluation Validering av valkvalitet för verktyg i orkestreringsplattformar, vilket säkerställer effektiv användning av verktyg utan redundans Mäter om agenten valde rätt verktyg utan att välja onödiga verktyg Binary: Pass/Fail
Precision för verktygsinmatning Process evaluation Strikt validering av verktygsparametrar i produktionsmiljöer, API-integreringstester, kritiska arbetsflöden som kräver 100% parametern är korrekt Mått om alla parametrar för verktygsanrop är korrekta i sex strikta kriterier: grund, typefterlevnad, formatefterlevnad, obligatoriska parametrar, inga oväntade parametrar och värde lämplighet Binary: Pass/Fail
Verktygsutdataanvändning Process evaluation Validera korrekt användning av API-svar, databasfrågeresultat, sökutdata i agentens resonemang och svar Mått om agenten förstod korrekt och använde verktyget anropar resultat kontextuellt i sitt resonemang och slutliga svar Binary: Pass/Fail
Verktygsanrop lyckades Process evaluation Övervaka verktygets tillförlitlighet, identifiera API-fel, timeout-problem eller tekniska fel vid verktygskörning Mått om verktygsanrop lyckades eller resulterade i tekniska fel eller undantag Binary: Pass/Fail

System evaluation

Systemutvärderingen undersöker kvaliteten på det slutliga resultatet av ditt agentiska arbetsflöde. Dessa utvärderare gäller för enskilda agenter och, i system med flera agenter, för huvudorkestratorn eller den slutliga agenten som ansvarar för slutförande av uppgifter:

  • Slutförd uppgift – slutförde agenten den begärda aktiviteten?
  • Uppgiftsefterlevnad – följde agenten reglerna och begränsningarna i sina instruktioner?
  • Aktivitetsnavigeringseffektivitet – utförde agenten de förväntade stegen effektivt?
  • Avsiktsmatchning – Identifierade och åtgärdade agenten användarens avsikter korrekt?

Mer specifikt för textutdata från agenter kan du även använda RAG-kvalitetsutvärderingar som Relevance och Groundedness som tar agentiska indata för att utvärdera den slutliga svarskvaliteten.

Examples:

Process evaluation

Processutvärderingen undersöker kvaliteten och effektiviteten i varje steg i ditt agentiska arbetsflöde. Dessa utvärderare fokuserar på de verktygsanrop som körs i ett system för att utföra uppgifter:

  • Noggrannhet för verktygsanrop – gjorde agenten rätt verktygsanrop med rätt parametrar utan redundans?
  • Val av verktyg – Valde agenten rätt och nödvändiga verktyg?
  • Precision för indata för verktyg – angav agenten rätt parametrar för verktygsanrop?
  • Verktygsutdataanvändning – Har agenten korrekt använt verktygets anrop resulterar i dess resonemang och slutliga svar?
  • Lyckat verktygsanrop – lyckades verktygets anrop utan tekniska fel?

Examples:

Stöd för modell och verktyg

För AI-assisterade utvärderare kan du använda Azure OpenAI- eller OpenAI-reasoningsmodeller och icke-resonemangsmodeller för LLM-domaren. För komplex utvärdering som kräver förfinade resonemang rekommenderar gpt-5-mini vi för dess balans mellan prestanda, kostnad och effektivitet.

Supported tools

Agentutvärderingar stöder följande verktyg:

  • File Search
  • Funktionsverktyg (användardefinierade verktyg)
  • MCP
  • Knowledge-based MCP

Följande verktyg har för närvarande begränsat stöd. Undvik att använda tool_call_accuracy, tool input accuracy, tool_output_utilization, tool_call_successeller groundedness utvärderare om agentkonversationen innehåller anrop till dessa verktyg:

  • Azure AI-sökning
  • Bing Grounding
  • Anpassad Bing-sökning
  • SharePoint Grounding
  • Code Interpreter
  • Fabric dataagent
  • Web Search

Använda agentutvärderingar

Agentutvärderingar utvärderar hur väl AI-agenter utför uppgifter, följer instruktioner och använder verktyg effektivt. Varje utvärderare kräver specifika datamappningar och parametrar:

Evaluator Required inputs Required parameters
Slutförd aktivitet (förhandsversion) query, response deployment_name
Uppgiftsefterlevnad (förhandsversion) query, response deployment_name
Avsiktsmatchning (förhandsversion) query, response deployment_name
Noggrannhet för verktygsanrop (query, response, tool_definitions) ELLER (query, tool_calls, tool_definitions) deployment_name
Tool Selection (query, response, tool_definitions) ELLER (query, tool_calls, tool_definitions) deployment_name
Precision för verktygsinmatning query, , responsetool_definitions deployment_name
Verktygsutdataanvändning query, , responsetool_definitions deployment_name
Verktygsanrop lyckades response deployment_name
Aktivitetsnavigeringseffektivitet actions, expected_actions (none)

Example input

Testdatauppsättningen ska innehålla de fält som refereras till i dina datamappningar. Båda fälten accepterar enkla strängar eller konversationsmatriser:

{"query": "What's the weather in Seattle?", "response": "The weather in Seattle is rainy, 14°C."}
{"query": "Book a flight to Paris for next Monday", "response": "I've booked your flight to Paris departing next Monday at 9:00 AM."}

Om du vill ha mer komplexa agentinteraktioner med verktygsanrop använder du konversationsmatrisformatet. Det här formatet följer OpenAI-meddelandeschemat (se Agentmeddelandeschema). Systemmeddelandet är valfritt men användbart för utvärderare som utvärderar agentbeteende mot instruktioner, inklusive task_adherence, task_completion, tool_call_accuracy, tool_selection, tool_input_accuracyoch tool_output_utilizationgroundedness:

{
    "query": [
        {"role": "system", "content": "You are a travel booking agent."},
        {"role": "user", "content": "Book a flight to Paris for next Monday"}
    ],
    "response": [
        {"role": "assistant", "content": [{"type": "tool_call", "name": "search_flights", "arguments": {"destination": "Paris", "date": "next Monday"}}]},
        {"role": "tool", "content": [{"type": "tool_result", "tool_result": {"flight": "AF123", "time": "9:00 AM"}}]},
        {"role": "assistant", "content": "I've booked flight AF123 to Paris departing next Monday at 9:00 AM."}
    ]
}

Format för verktygsdefinitioner

Fältet tool_definitions beskriver de verktyg som är tillgängliga för agenten. Den följer openAI-funktionsanropsschemat – en lista över verktygsobjekt, där varje objekt innehåller en type (alltid "function") och en function beskrivning:

[
  {
    "type": "function",
    "function": {
      "name": "search_flights",
      "description": "Search for available flights to a destination on a given date.",
      "parameters": {
        "type": "object",
        "properties": {
          "destination": { "type": "string", "description": "The destination city." },
          "date": { "type": "string", "description": "The travel date in YYYY-MM-DD format." }
        },
        "required": ["destination", "date"]
      }
    }
  }
]

Inkludera den tool_definitions här listan som fält i testdatauppsättningen tillsammans med query och response.

Configuration example

Syntax för datamappning:

  • {{item.field_name}} refererar till fält från testdatauppsättningen (till exempel {{item.query}}).
  • {{sample.output_items}} refererar till agentens strukturerade utdata, inklusive verktygsanrop och resultat. Använd detta för utvärderare som behöver fullständig interaktionskontext (task_adherence, , tool_call_accuracytool_selection, tool_input_accuracy, tool_output_utilization).
  • {{sample.output_text}} refererar till agentens oformaterade textsvar. Använd detta för utvärderare som förväntar sig ett strängsvar (till exempel coherence, violence).

Här är ett exempel på en konfiguration för uppgiftsefterlevnad:

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "task_adherence",
        "evaluator_name": "builtin.task_adherence",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
]

Mer information om hur du kör utvärderingar och konfiguration av datakällor finns i Köra utvärderingar från SDK :t.

Example output

Agentutvärderingar returnerar resultat för pass/fail med resonemang. Nyckelutdatafält:

{
    "type": "azure_ai_evaluator",
    "name": "Task Adherence",
    "metric": "task_adherence",
    "label": "pass",
    "reason": "Agent followed system instructions correctly",
    "threshold": 3,
    "passed": true
}

För utvärderare som använder en 1–5-skala före tröskelvärdet (till exempel intent_resolution och tool_call_accuracy) innehåller utdata ett numeriskt score fält tillsammans med resultatet för pass/fail:

{
    "type": "azure_ai_evaluator",
    "name": "Intent Resolution",
    "metric": "intent_resolution",
    "label": "pass",
    "score": 4,
    "reason": "Agent correctly identified the user's intent to book a flight to Paris",
    "threshold": 3,
    "passed": true
}

Aktivitetsnavigeringseffektivitet

Aktivitetsnavigeringseffektivitet mäter om agenten vidtog en optimal sekvens med åtgärder genom att jämföra med en förväntad sekvens (grundsanning). Använd den här utvärderaren för arbetsflödesoptimering och regressionstestning.

{
    "type": "azure_ai_evaluator",
    "name": "task_navigation_efficiency",
    "evaluator_name": "builtin.task_navigation_efficiency",
    "initialization_parameters": {
        "matching_mode": "exact_match"  # Options: "exact_match", "in_order_match", "any_order_match"
    },
    "data_mapping": {
        "actions": "{{item.actions}}",
        "expected_actions": "{{item.expected_actions}}"
    },
}

Matching modes:

Mode Description
exact_match Agentens bana måste matcha den grundläggande sanningen exakt (ordning och innehåll)
in_order_match Alla mark sanningssteg måste visas i agentens bana i rätt ordning (extra steg tillåts)
any_order_match Alla mark sanningssteg måste visas i agentens bana, ordning spelar ingen roll (extra steg tillåts)

Actions format:

Fältet actions tar en lista över meddelandeobjekt som följer OpenAI-meddelandeschemat. Varje meddelande representerar ett steg som agenten tog under konversationen:

actions = [
    {
        "role": "assistant",
        "content": [
            {"type": "function_call", "name": "call_tool_A", "arguments": "{\"param\": \"value\"}"}
        ]
    },
    {
        "role": "assistant",
        "content": [
            {"type": "function_call", "name": "call_tool_B", "arguments": "{}"}
        ]
    },
]

Note

Fälten actions och expected_actions använder olika format. actions kräver openAI-ordlistor för meddelandeschema (som representerar agentens faktiska beteende), medan expected_actions en enkel lista med verktygsnamn används (som representerar den grundläggande sanningen).

Format för förväntade åtgärder:

expected_actions Kan vara en enkel lista över förväntade steg:

expected_actions = ["identify_tools_to_call", "call_tool_A", "call_tool_B", "response_synthesis"]

Eller en tuppeln med verktygsnamn och parametrar för mer detaljerad validering:

expected_actions = (
    ["func_name1", "func_name2"],
    {
        "func_name1": {"param_key": "param_value"},
        "func_name2": {"param_key": "param_value"},
    }
)

Output:

Returnerar ett binärt resultat för pass/fail plus precision, träffsäkerhet och F1-poäng:

{
    "type": "azure_ai_evaluator",
    "name": "task_navigation_efficiency",
    "passed": true,
    "details": {
        "precision_score": 0.85,
        "recall_score": 1.0,
        "f1_score": 0.92
    }
}

Agentmeddelandeschema

När du använder konversationsmatrisformatet query och response följer openAI-meddelandestrukturen:

  • fråga: Innehåller konversationshistoriken som leder fram till användarens begäran. Inkludera systemmeddelandet för att tillhandahålla kontext för utvärderare som utvärderar agentbeteende mot instruktioner.
  • svar: Innehåller agentens svar, inklusive eventuella verktygsanrop och deras resultat.

Message schema:

[
  {
    "role": "system" | "user" | "assistant" | "tool",
    "content": "string" | [                // string or array of content items
      {
        "type": "text" | "tool_call" | "tool_result",
        "text": "string",                  // if type == text
        "tool_call_id": "string",          // if type == tool_call
        "name": "string",                  // tool name if type == tool_call
        "arguments": { ... },              // tool args if type == tool_call
        "tool_result": { ... }             // result if type == tool_result
      }
    ]
  }
]

Role types:

Role Description
system Agentinstruktioner (valfritt, placerat i början av frågan)
user Användarmeddelanden och begäranden
assistant Agentsvar, inklusive verktygsanrop
tool Resultat av verktygskörning

Example:

{
  "query": [
    {"role": "system", "content": "You are a weather assistant."},
    {"role": "user", "content": [{"type": "text", "text": "What's the weather in Seattle?"}]}
  ],
  "response": [
    {"role": "assistant", "content": [{"type": "tool_call", "tool_call_id": "call_123", "name": "get_weather", "arguments": {"city": "Seattle"}}]},
    {"role": "tool", "content": [{"type": "tool_result", "tool_result": {"temp": "62°F", "condition": "Cloudy"}}]},
    {"role": "assistant", "content": [{"type": "text", "text": "It's currently 62°F and cloudy in Seattle."}]}
  ]
}