Agent evaluators (förhandsvisning) (klassisk)

Visar för närvarande:Foundry-portalversion - (klassisk)Växla till version för den nya Foundry-portalen

Note

Microsoft Foundry SDK för utvärdering och Foundry-portalen är i offentlig förhandsversion, men API:erna är allmänt tillgängliga för utvärdering av modell och datauppsättning (agentutvärderingen finns kvar i offentlig förhandsversion). Azure AI Evaluation SDK och utvärderare markerade (förhandsversion) i den här artikeln finns för närvarande i offentlig förhandsversion överallt.

Agenter är kraftfulla produktivitetsassistenter. De planerar, fattar beslut och utför handlingar. Agenter resonerar vanligtvis igenom användarens avsikter i samtal, väljer rätt verktyg för att tillfredsställa användarens önskemål och slutför uppgifter enligt instruktioner. Microsoft Foundry stöder dessa agentspecifika utvärderare för agentiska arbetsflöden:

Utvärdering av Azure AI-agenter

Agenter sänder meddelanden, och att tillhandahålla indata kräver vanligtvis att man tolkar dessa meddelanden för att extrahera relevant information. Om du bygger agenter med Azure AI Agent Service erbjuder tjänsten en inbyggd integration för utvärdering som direkt tar deras agentmeddelanden. Som exempel, se Utvärdera AI-agenter.

Utöver IntentResolution, ToolCallAccuracy, och TaskAdherence, som är specifika för agentiska arbetsflöden, kan du bedöma andra kvalitets- och säkerhetsaspekter av dessa arbetsflöden med hjälp av en omfattande uppsättning inbyggda utvärderare. Foundry stöder denna lista över utvärderare för Azure AI-agentmeddelanden från vår omvandlare:

  • Kvalitet: IntentResolution, ToolCallAccuracy, TaskAdherence, , Relevance, Coherenceoch Fluency
  • Säkerhet: CodeVulnerabilities, Violence, Self-harm, Sexual, HateUnfairness, , IndirectAttackoch ProtectedMaterials

Denna artikel innehåller exempel på IntentResolution, ToolCallAccuracy, och TaskAdherence. För exempel på andra utvärderare med Azure AI-agentmeddelanden, se evaluating Azure AI-agenter.

Modellkonfiguration för AI-assisterade utvärderare

Som referens i följande kodbitar använder AI-assisterade utvärderare en modellkonfiguration för den stora språkmodell-domaren (LLM-judge):

import os
from azure.ai.evaluation import AzureOpenAIModelConfiguration
from dotenv import load_dotenv
load_dotenv()

model_config = AzureOpenAIModelConfiguration(
    azure_endpoint=os.environ["AZURE_ENDPOINT"],
    api_key=os.environ.get("AZURE_API_KEY"),
    azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
    api_version=os.environ.get("AZURE_API_VERSION"),
)

Stöd för utvärderarmodeller

Azure AI Agent Service stöder AzureOpenAI eller OpenAI resonemangsmodeller och icke-resonerande modeller för LLM-domaren beroende på utvärderarna:

Evaluators Resonerande modeller som domare (exempel: o-seriemodeller från Azure OpenAI / OpenAI) Icke-resonerande modeller som domare (exempel: gpt-4.1 eller gpt-4o) To enable
IntentResolution, TaskAdherence, ToolCallAccuracy, ResponseCompleteness, Coherence, Fluency, , Similarity, Groundedness, , RetrievalRelevance Supported Supported Sätt den extra parametern is_reasoning_model=True när du initierar utvärderare
Other evaluators Not Supported Supported --

För komplex utvärdering som kräver förfinat resonemang, använd en stark resonemangsmodell som 4.1-mini med en balans mellan resonemangsprestanda och kostnadseffektivitet.

Intent resolution

IntentResolutionEvaluator mäter hur väl systemet identifierar och förstår en användares begäran. Denna förståelse inkluderar hur väl den avgränsar användarens avsikt, ställer frågor för att förtydliga och påminner slutanvändarna om dess kapacitetsomfattning. En högre poäng indikerar bättre identifiering av användaravsikt.

Exempel på avsiktslösning

from azure.ai.evaluation import IntentResolutionEvaluator

intent_resolution = IntentResolutionEvaluator(model_config=model_config, threshold=3)
intent_resolution(
    query="What are the opening hours of the Eiffel Tower?",
    response="Opening hours of the Eiffel Tower are 9:00 AM to 11:00 PM."
)

Avsiktsupplösningsutdata

Den numeriska poängen använder en Likert-skala (heltal 1 till 5), där en högre poäng är bättre. Givet en numerisk tröskel (standardvärdet är 3) ger utvärderaren godkänt resultat om poängen är högre än eller lika med tröskeln, eller underkänns annars. Att använda Reason och andra fält kan hjälpa dig att förstå varför poängen är hög eller låg.

{
    "intent_resolution": 5,
    "intent_resolution_result": "pass",
    "intent_resolution_threshold": 3,
    "intent_resolution_reason": "The response provides the opening hours of the Eiffel Tower clearly and accurately, directly addressing the user's query. It includes specific times, which fully resolves the user's request for information about the opening hours.",
}

Om du bygger agenter utanför Foundry Agent Service accepterar denna utvärderare ett schema typiskt för agentmeddelanden. För att utforska en exempelanteckningsbok, se Intention Resolution.

Verktygsanropsnoggrannhet

ToolCallAccuracyEvaluator mäter noggrannheten och effektiviteten i verktygssamtal som en agent gör under en runda. Den ger ett betyg från 1 till 5 baserat på:

  • Verktygets relevans och hjälpsamhet
  • Korrektheten hos parametrarna som används i verktygsanrop
  • Antalet missade eller överdrivna samtal

Stöd för utvärdering av verktygsanrop

ToolCallAccuracyEvaluator stöder utvärdering i Agent Service för följande verktyg:

  • File Search
  • Azure AI-sökning
  • Bing Grounding
  • Anpassad Bing-sökning
  • SharePoint Grounding
  • Code Interpreter
  • Fabric dataagent
  • OpenAPI
  • Funktionsverktyg (användardefinierade verktyg)

Om ett verktyg som inte stöds används i agentkörningen ger utvärderaren en godkänd rapport och förklarar att utvärdering av verktygen inte stöds. Detta tillvägagångssätt gör det enkelt att sålla bort dessa fall. Vi rekommenderar att du paketerar icke-stödda verktyg som användardefinierade verktyg för att möjliggöra utvärdering.

Exempel på noggrannhet i verktygssamtal

from azure.ai.evaluation import ToolCallAccuracyEvaluator

tool_call_accuracy = ToolCallAccuracyEvaluator(model_config=model_config, threshold=3)

# provide the agent response with tool calls 
tool_call_accuracy(
    query="What timezone corresponds to 41.8781,-87.6298?",
    response=[
    {
        "createdAt": "2025-04-25T23:55:52Z",
        "run_id": "run_DmnhUGqYd1vCBolcjjODVitB",
        "role": "assistant",
        "content": [
            {
                "type": "tool_call",
                "tool_call_id": "call_qi2ug31JqzDuLy7zF5uiMbGU",
                "name": "azure_maps_timezone",
                "arguments": {
                    "lat": 41.878100000000003,
                    "lon": -87.629800000000003
                }
            }
        ]
    },    
    {
        "createdAt": "2025-04-25T23:55:54Z",
        "run_id": "run_DmnhUGqYd1vCBolcjjODVitB",
        "tool_call_id": "call_qi2ug31JqzDuLy7zF5uiMbGU",
        "role": "tool",
        "content": [
            {
                "type": "tool_result",
                "tool_result": {
                    "ianaId": "America/Chicago",
                    "utcOffset": None,
                    "abbreviation": None,
                    "isDaylightSavingTime": None
                }
            }
        ]
    },
    {
        "createdAt": "2025-04-25T23:55:55Z",
        "run_id": "run_DmnhUGqYd1vCBolcjjODVitB",
        "role": "assistant",
        "content": [
            {
                "type": "text",
                "text": "The timezone for the coordinates 41.8781, -87.6298 is America/Chicago."
            }
        ]
    }
    ],   
    tool_definitions=[
                {
                    "name": "azure_maps_timezone",
                    "description": "local time zone information for a given latitude and longitude.",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "lat": {
                                "type": "float",
                                "description": "The latitude of the location."
                            },
                            "lon": {
                                "type": "float",
                                "description": "The longitude of the location."
                            }
                        }
                    }
                }
    ]
)

# alternatively, provide the tool calls directly without the full agent response
tool_call_accuracy(
    query="How is the weather in Seattle?",
    tool_calls=[{
                    "type": "tool_call",
                    "tool_call_id": "call_CUdbkBfvVBla2YP3p24uhElJ",
                    "name": "fetch_weather",
                    "arguments": {
                        "location": "Seattle"
                    }
                }],
    tool_definitions=[{
                    "id": "fetch_weather",
                    "name": "fetch_weather",
                    "description": "Fetches the weather information for the specified location.",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "location": {
                                "type": "string",
                                "description": "The location to fetch weather for."
                            }
                        }
                    }
                }
    ]
)

Resultatets noggrannhet i verktygssamtal

Den numeriska poängen är på en Likert-skala (heltal 1 till 5). Ett högre resultat är bättre. Givet en numerisk tröskel (standard 3) ger utvärderaren också godkänt om poängen >= tröskel, eller underkänt annars. Använd motiv- och verktygsanropsfälten för att förstå varför poängen är hög eller låg.

{
    "tool_call_accuracy": 5,
    "tool_call_accuracy_result": "pass",
    "tool_call_accuracy_threshold": 3,
    "details": {
        "tool_calls_made_by_agent": 1,
        "correct_tool_calls_made_by_agent": 1,
        "per_tool_call_details": [
            {
                "tool_name": "fetch_weather",
                "total_calls_required": 1,
                "correct_calls_made_by_agent": 1,
                "correct_tool_percentage": 100%,
                "tool_call_errors": 0,
                "tool_call_success_result": "pass"
            }
        ],
        "excess_tool_calls": {
            "total": 0,
            "details": []
        },
        "missing_tool_calls": {
            "total": 0,
            "details": []
        }
    }
}

Om du bygger agenter utanför Azure AI Agent Service accepterar denna utvärderare ett schema typiskt för agentmeddelanden. För ett exempel på anteckningsbok, se Tool Call Accuracy.

Task adherence

I olika uppgiftsorienterade AI-system, såsom agentiska system, är det viktigt att bedöma om agenten håller sig på rätt spår för att slutföra en uppgift istället för att göra ineffektiva eller utanför omfattningen. TaskAdherenceEvaluator Mäter hur väl en agents respons följer deras tilldelade uppgifter, enligt deras uppgiftsinstruktioner och tillgängliga verktyg. Uppgiftsinstruktionen extraheras från systemmeddelandet och användarfrågan. Ett högre poäng indikerar bättre följsamhet till systeminstruktionen för att lösa uppgiften.

Exempel på uppgiftsföljsamhet

from azure.ai.evaluation import TaskAdherenceEvaluator

task_adherence = TaskAdherenceEvaluator(model_config=model_config)
task_adherence(
        query="What are the best practices for maintaining a healthy rose garden during the summer?",
        response="Make sure to water your roses regularly and trim them occasionally."                         
)

Uppgiftsföljningsresultat

Utvärderaren ger resultat om det är godkänt eller underkänt annars. Använd anledningsfältet för att förstå resonemanget bakom poängen

{
    "task_adherence_result": "fail",
    "task_adherence_reason": "The response partially addresses the query by mentioning relevant practices but lacks critical details and depth, making it insufficient for a comprehensive understanding of maintaining a rose garden in summer."
}

Om du bygger agenter utanför Azure AI Agent Service accepterar denna utvärderare ett schema som är typiskt för agentmeddelanden. För ett exempel på anteckningsbok, se Uppgiftsföljsamhet.