Partager via


Évaluateurs d’agent (préversion)

Important

Les éléments marqués (aperçu) dans cet article sont actuellement en aperçu public. Cette version préliminaire est fournie sans contrat de niveau de service, et nous la déconseillons pour les charges de travail en production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure.

Les agents sont des assistants de productivité puissants. Ils peuvent planifier, prendre des décisions et exécuter des actions. Les agents sont généralement la première raison par le biais d’intentions utilisateur dans les conversations, sélectionnez les outils appropriés pour appeler et satisfaire les demandes de l’utilisateur, et effectuez différentes tâches en fonction de leurs instructions.

Évaluation des agents Azure AI

Les agents émettent des messages et fournissent les entrées ci-dessus nécessitent généralement l’analyse des messages et l’extraction des informations pertinentes. Si vous créez des agents à l’aide d’Azure AI Agent Service, nous fournissons une intégration native pour l’évaluation qui accepte directement leurs messages d’agent. Pour plus d’informations, consultez un exemple de bout en bout d’évaluation des agents dans azure AI Agent Service.

IntentResolutionEn outre, ToolCallAccuracyspécifique TaskAdherence aux flux de travail agentiques, vous pouvez également évaluer d’autres aspects de qualité et de sécurité de vos flux de travail agentiques, en tirant parti d’une suite complète d’évaluateurs intégrés. Nous prenons en charge cette liste d’évaluateurs pour les messages de l’agent Azure AI à partir de notre convertisseur :

  • Qualité : IntentResolution, , ToolCallAccuracy, TaskAdherenceRelevance, Coherence,Fluency
  • Sécurité : CodeVulnerabilities, ViolenceSelf-harmSexualHateUnfairnessIndirectAttack, . ProtectedMaterials

Nous allons montrer des exemples de IntentResolution, ToolCallAccuracyTaskAdherence ici. Consultez d’autres exemples d’évaluation des agents Azure AI pour d’autres évaluateurs avec la prise en charge des messages de l’agent Azure AI.

Configuration du modèle pour les évaluateurs assistés par l’IA

Pour référence dans les extraits de code suivants, les évaluateurs assistés par l’IA utilisent une configuration de modèle pour le juge LLM :

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

Conseil / Astuce

Nous vous recommandons d’utiliser o3-mini pour un équilibre des capacités de raisonnement et de l’efficacité des coûts.

Résolution d’intention

IntentResolutionEvaluator mesure la façon dont le système identifie et comprend la demande d’un utilisateur, y compris la portée de l’intention de l’utilisateur, pose des questions de clarification et rappelle aux utilisateurs finaux son étendue de fonctionnalités. Un score plus élevé signifie une meilleure identification de l’intention de l’utilisateur.

Exemple de résolution d’intention

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

Sortie de résolution d’intention

Le score numérique sur une échelle likert (entier 1 à 5) et un score plus élevé est préférable. Compte tenu d’un seuil numérique (par défaut à 3), nous exéclons également « pass » si le score >= seuil ou « fail » sinon. L’utilisation de la raison et des champs supplémentaires peut vous aider à comprendre pourquoi le score est élevé ou faible.

{
    "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
    }
}



Si vous créez des agents en dehors d’Azure AI Agent Serice, cet évaluateur accepte un schéma classique pour les messages d’agent. Pour plus d’informations, consultez notre exemple de notebook pour la résolution d’intentions.

Précision des appels de l’outil

ToolCallAccuracyEvaluator mesure la capacité d’un agent à sélectionner les outils appropriés, extraire et traiter les paramètres corrects des étapes précédentes du flux de travail agentique. Il détecte si chaque appel d’outil effectué est exact (binaire) et signale les scores moyens, qui peuvent être interprétés comme un taux de transmission entre les appels d’outil effectués.

Remarque

ToolCallAccuracyEvaluator prend uniquement en charge l’évaluation de l’outil de fonction d’Azure AI Agent, mais ne prend pas en charge l’évaluation intégrée de l’outil. Les messages de l’agent doivent avoir au moins un outil de fonction appelé pour être évalué.

Exemple de précision de l’appel d’outil

from azure.ai.evaluation import ToolCallAccuracyEvaluator

tool_call_accuracy = ToolCallAccuracyEvaluator(model_config=model_config, threshold=3)
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."
                            }
                        }
                    }
                }
    ]
)

Sortie de précision de l’appel de l’outil

Le score numérique (taux de transmission des appels d’outils corrects) est de 0 à 1 et un score plus élevé est meilleur. Compte tenu d’un seuil numérique (par défaut à 3), nous exéclons également « pass » si le score >= seuil ou « fail » sinon. L’utilisation des champs de détails des appels de raison et d’outil peut vous aider à comprendre pourquoi le score est élevé ou faible.

{
    "tool_call_accuracy": 1.0,
    "tool_call_accuracy_result": "pass",
    "tool_call_accuracy_threshold": 0.8,
    "per_tool_call_details": [
        {
            "tool_call_accurate": True,
            "tool_call_accurate_reason": "The input Data should get a Score of 1 because the TOOL CALL is directly relevant to the user's question about the weather in Seattle, includes appropriate parameters that match the TOOL DEFINITION, and the parameter values are correct and relevant to the user's query.",
            "tool_call_id": "call_CUdbkBfvVBla2YP3p24uhElJ"
        }
    ]
}

Si vous créez des agents en dehors d’Azure AI Agent Service, cet évaluateur accepte un schéma classique pour les messages d’agent. Pour plus d’informations, consultez notre exemple de notebook pour la précision des appels d’outil.

Adhésion aux tâches

Dans différents systèmes IA orientés tâches tels que les systèmes agentiques, il est important d’évaluer si l’agent est resté sur le point d’effectuer une tâche donnée au lieu d’effectuer des étapes inefficaces ou hors portée. TaskAdherenceEvaluator mesure la conformité de la réponse d’un agent à ses tâches affectées, en fonction de son instruction de tâche (extraite des requêtes système et utilisateur) et des outils disponibles. Un score plus élevé signifie une meilleure adhésion à l’instruction système pour résoudre la tâche donnée.

Exemple d’adhésion aux tâches

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

Sortie de l’adhésion aux tâches

Le score numérique sur une échelle likert (entier 1 à 5) et un score plus élevé est préférable. Compte tenu d’un seuil numérique (par défaut à 3), nous exéclons également « pass » si le score >= seuil ou « fail » sinon. L’utilisation du champ motif peut vous aider à comprendre pourquoi le score est élevé ou faible.

{
   "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."
}

Si vous créez des agents en dehors d’Azure AI Agent Service, cet évaluateur accepte un schéma classique pour les messages d’agent. Pour plus d’informations, consultez notre exemple de notebook pour l’adhésion aux tâches.