Dela via


Agentutvärderingar (förhandsversion)

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 kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Agenter är kraftfulla produktivitetsassistenter. De kan planera, fatta beslut och utföra åtgärder. Agenter resonerar vanligtvis först genom användarinsikter i konversationer, väljer rätt verktyg för att anropa och uppfylla användarbegäranden och utför olika uppgifter enligt deras instruktioner. Azure AI Foundry stöder för närvarande dessa agentspecifika utvärderare för agentiska arbetsflöden:

Utvärdera Azure AI-agenter

Agenter genererar meddelanden. Att tillhandahålla indata kräver vanligtvis parsning av meddelanden och extrahera relevant information. Om du skapar agenter som använder Azure AI Agent Service tillhandahåller tjänsten intern integrering för utvärdering som direkt tar deras agentmeddelanden. Ett exempel finns i Utvärdera AI-agenter.

IntentResolutionFörutom , ToolCallAccuracyoch TaskAdherence som är specifika för agentiska arbetsflöden, kan du även utvärdera andra kvalitets- och säkerhetsaspekter i dina agentiska arbetsflöden med hjälp av en omfattande uppsättning inbyggda utvärderare. Azure AI Foundry stöder den här listan över utvärderare för Azure AI-agentmeddelanden från vår konverterare:

  • Kvalitet: IntentResolution, ToolCallAccuracy, TaskAdherence, Relevance, , CoherenceFluency
  • Säkerhet: CodeVulnerabilities, Violence, Self-harm, Sexual, HateUnfairness, , IndirectAttackProtectedMaterials

Den här artikeln visar exempel på IntentResolution, ToolCallAccuracyoch TaskAdherence. Exempel på hur du använder andra utvärderare med Azure AI-agentmeddelanden finns i utvärdera Azure AI-agenter.

Modellkonfiguration för AI-assisterade utvärderare

Som referens i följande kodfragment använder DE AI-assisterade utvärderarna en modellkonfiguration för den stora språkmodelldomaren (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ärderingsmodeller

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

Evaluators Resonemangsmodeller som domare (exempel: o-seriemodeller från Azure OpenAI/OpenAI) Icke-resonemangsmodeller som Domare (exempel: gpt-4.1 eller gpt-4o) Så här aktiverar du
IntentResolution, TaskAdherence, ToolCallAccuracy, ResponseCompleteness, Coherence, Fluency, , Similarity, Groundedness, , RetrievalRelevance Supported Supported Ange ytterligare parameter is_reasoning_model=True för att initiera utvärderare
Andra utvärderare Stöds inte Supported --

För komplex utvärdering som kräver förfinade resonemang rekommenderar vi en stark resonemangsmodell som 4.1-mini med en balans mellan resonemangsprestanda och kostnadseffektivitet.

Avsiktsmatchning

IntentResolutionEvaluator mäter hur väl systemet identifierar och förstår en användares begäran. Den här förståelsen omfattar hur väl den omfattar användarens avsikt, ställer frågor för att klargöra och påminner slutanvändarna om dess omfattning av funktioner. Högre poäng innebär bättre identifiering av användar avsikt.

Exempel på avsiktsmatchning

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."
)

Utdata för avsiktsmatchning

Den numeriska poängen är på en Likert-skala (heltal 1 till 5). En högre poäng är bättre. Med tanke på ett numeriskt tröskelvärde (standardvärdet 3) skickar utvärderaren även ett pass om poängen >= tröskelvärdet eller misslyckas på annat sätt. Med hjälp av orsaken och andra fält kan du förstå varför poängen är hög eller låg.

{
    "intent_resolution": 5.0,
    "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.",
    "additional_details": {
        "conversation_has_intent": True,
        "agent_perceived_intent": "inquire about opening hours",
        "actual_user_intent": "find out the opening hours of the Eiffel Tower",
        "correct_intent_detected": True,
        "intent_resolved": True
    }
}

Om du skapar agenter utanför Azure AI Foundry Agent Service accepterar den här utvärderaren ett schema som är typiskt för agentmeddelanden. En exempelanteckningsbok finns i Avsiktsmatchning.

Anropsnoggrannhet för verktyg

ToolCallAccuracyEvaluator mäter noggrannheten och effektiviteten för verktygsanrop som görs av en agent i en körning. Den ger 1-5 poäng baserat på:

  • Relevansen och användbarheten för verktyget som anropas
  • Korrekthet för parametrar som används i verktygsanrop
  • Antalet saknade eller överdrivna anrop

Stöd för utvärdering av verktygsanrop

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

  • Filsökning
  • Azure AI-sökning
  • Grundläggning i Bing
  • Anpassad Bing-sökning
  • SharePoint Grundläggning
  • Kodtolkare
  • Infrastrukturdataagent
  • OpenAPI
  • Funktionsverktyg (användardefinierade verktyg)

Om ett verktyg som inte stöds används i agentkörningen skickar utvärderaren ett pass och en orsak till att utvärdering av de anropade verktygen inte stöds. Den här metoden gör det enkelt att filtrera bort dessa fall. Vi rekommenderar att du omsluter verktyg som inte stöds som användardefinierade verktyg för att aktivera utvärdering.

Exempel på noggrannhet för verktygsanrop

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."
                            }
                        }
                    }
                }
    ]
)

Utdata för verktygsanropsnoggrannhet

Den numeriska poängen är på en Likert-skala (heltal 1 till 5). En högre poäng är bättre. Med tanke på ett numeriskt tröskelvärde (standardvärdet 3) skickar utvärderaren även ett pass om poängen >= tröskelvärdet eller misslyckas på annat sätt. Använd fälten för orsaks- och verktygsanropsinformation 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": 1.0,
                "tool_call_errors": 0,
                "tool_success_result": "pass"
            }
        ],
        "excess_tool_calls": {
            "total": 0,
            "details": []
        },
        "missing_tool_calls": {
            "total": 0,
            "details": []
        }
    }
}

Om du skapar agenter utanför Azure AI Agent Service accepterar den här utvärderaren ett schema som är typiskt för agentmeddelanden. En exempelanteckningsbok finns i Verktygsanropsnoggrannhet.

Uppgiftsefterlevnad

I olika uppgiftsorienterade AI-system, till exempel agentsystem, är det viktigt att utvärdera om agenten håller sig på rätt spår för att slutföra en uppgift i stället för att utföra ineffektiva eller out-of-scope-steg. TaskAdherenceEvaluator mäter hur väl en agents svar följer deras tilldelade uppgifter, enligt deras uppgiftsinstruktion och tillgängliga verktyg. Uppgiftsinstruktionen extraheras från systemmeddelandet och användarfrågan. Högre poäng innebär bättre efterlevnad av systeminstruktionen för att lösa uppgiften.

Exempel på aktivitetsefterlevnad

from azure.ai.evaluation import TaskAdherenceEvaluator

task_adherence = TaskAdherenceEvaluator(model_config=model_config, threshold=3)
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."                         
)

Utdata för aktivitetsefterlevnad

Den numeriska poängen är på en Likert-skala (heltal 1 till 5). En högre poäng är bättre. Med tanke på ett numeriskt tröskelvärde (standardvärdet 3) skickar utvärderaren även ett pass om poängen >= tröskelvärdet eller misslyckas på annat sätt. Använd orsaksfältet för att förstå varför poängen är hög eller låg.

{
   "task_adherence": 2.0,
    "task_adherence_result": "fail",
    "task_adherence_threshold": 3,
    "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 skapar agenter utanför Azure AI Agent Service accepterar den här utvärderaren ett schema som är typiskt för agentmeddelanden. En exempelanteckningsbok finns i Aktivitetsefterlevnad.