Agent evaluators

Important

Элементы, помеченные (предварительная версия) в этой статье, в настоящее время находятся в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.

Агенты ИИ — это мощные помощники по повышению производительности, которые могут создавать рабочие процессы для бизнес-потребностей. Однако наблюдаемость может быть проблемой из-за их сложных шаблонов взаимодействия. Вычислители агентов обеспечивают систематическое наблюдение за рабочими процессами агентов, измеряя качество, безопасность и производительность.

Рабочий процесс агента обычно включает в себя анализ намерений пользователей, вызов соответствующих инструментов и использование результатов средства для выполнения задач, таких как обновление базы данных или разработка отчета. Чтобы создать готовые к работе агентические приложения, необходимо оценить не только окончательные выходные данные, но и качество и эффективность каждого шага в рабочем процессе.

Foundry предоставляет встроенные вычислители агентов, которые выполняют такие функции, как модульные тесты для агентических систем, они принимают сообщения агента в качестве входных и выходных двоичных показателей Pass/Fail scores (или масштабируемые оценки, преобразованные в двоичные оценки на основе пороговых значений). Эти вычислители поддерживают две рекомендации по оценке агента:

  • Оценка системы — для изучения комплексных результатов агентической системы.
  • Оценка процесса — чтобы проверить пошаговое выполнение для достижения результатов.
Evaluator Best practice Use when Purpose Output
Завершение задачи (предварительная версия) System evaluation Оценка комплексного успеха задачи в автоматизации рабочих процессов, взаимодействий с целевым искусственным интеллектом или любого сценария, где полное завершение задачи является критически важным. Меры, если агент выполнил запрошенную задачу с приемлемым для использования доставкой, которая соответствует всем требованиям пользователя Binary: Pass/Fail
Соблюдение задач (предварительная версия) System evaluation Обеспечение того, чтобы агенты соблюдали системные инструкции, проверяя соответствие в регулируемых средах Меры, если действия агента соответствуют назначенным задачам в соответствии с правилами, процедурами и ограничениями политики на основе системного сообщения и предыдущих шагов. Binary: Pass/Fail
Эффективность навигации по задачам System evaluation Оптимизация рабочих процессов агента, сокращение ненужных шагов, проверка на соответствие известным оптимальным путям (требуется истина на основе) Измеряет, вызывает ли агент средство эффективно для выполнения задачи, сравнивая их с ожидаемыми последовательности инструментов. Binary: Pass/Fail
Разрешение намерений (предварительная версия) System evaluation Сценарии поддержки клиентов, диалоговые ИИ, системы часто задаваемых вопросов, в которых важно понимать намерение пользователя Определяет, правильно ли агент определяет намерение пользователя Двоичный файл: передача и сбой на основе порогового значения (1-5 шкалы)
Точность вызова средства Process evaluation Общая оценка качества вызова средства в системах агентов с интеграцией инструментов, взаимодействие API для выполнения задач Измеряет, выполнил ли агент правильный вызов средства с правильными параметрами для выполнения задачи. Двоичный файл: передача и сбой на основе порогового значения (1-5 шкалы)
Tool Selection Process evaluation Проверка качества выбора инструмента на платформах оркестрации, обеспечение эффективного использования инструментов без избыточности Измеряет, выбран ли агент правильные средства без выбора ненужных. Binary: Pass/Fail
Точность ввода средства Process evaluation Строгая проверка параметров средства в рабочих средах, тестах интеграции API, критических рабочих процессах, требующих правильности 100% параметров Меры, если все параметры вызова средства правильны в шести строгих критериях: заземление, соответствие типа, соответствие формата, обязательные параметры, не непредвиденные параметры и соответствие значений Binary: Pass/Fail
Использование выходных данных средства Process evaluation Проверка правильного использования ответов API, результатов запроса базы данных, выходных данных поиска в причинах и ответах агента Меры, если агент правильно понимал и использовал результаты вызова средства контекстно в его причинах и окончательном ответе Binary: Pass/Fail
Успех вызова средства Process evaluation Надежность средства мониторинга, обнаружение сбоев API, проблем времени ожидания или технических ошибок при выполнении средства Меры, если вызовы средства успешно выполнены или привели к техническим ошибкам или исключениям Binary: Pass/Fail

System evaluation

Оценка системы проверяет качество конечного результата рабочего процесса агента. Эти вычислители применимы к отдельным агентам и в системах с несколькими агентами к основному оркестратору или окончательному агенту, ответственному за завершение задачи:

  • Завершение задачи — полностью ли агент выполнил запрошенную задачу?
  • Соблюдение задач. Выполнил ли агент правила и ограничения в своих инструкциях?
  • Эффективность навигации по задачам — эффективно ли агент выполнил ожидаемые шаги?
  • Разрешение намерений. Правильно ли агент определяет намерения пользователя и адресует их?

В частности, для текстовых выходных данных от агентов можно также применять оценщики качества RAG, такие как Relevance и Groundedness которые принимают агентические входные данные для оценки окончательного качества отклика.

Examples:

Process evaluation

Оценка процесса проверяет качество и эффективность каждого шага в агентическом рабочем процессе. Эти вычислители сосредоточены на вызовах инструментов, выполняемых в системе для выполнения задач:

  • Точность вызова средства. Правильно ли агент вызывает правильные средства с правильными параметрами без избыточности?
  • Выбор инструмента. Правильно ли выбран агент и необходимые средства?
  • Точность ввода средства. Правильно ли агент предоставил правильные параметры для вызовов инструментов?
  • Использование выходных данных средства. Правильно ли агент использовал вызов средства, приводит к его выводу и окончательному ответу?
  • Успешное выполнение вызова средства— успешно ли выполнение вызовов средства без технических ошибок?

Examples:

  • пример точности вызова Tool
  • пример выбора
  • пример точности ввода Tool
  • пример использования выходных данных Tool
  • пример успешного вызова Tool

Поддержка моделей и инструментов

Для оценщиков с поддержкой ИИ можно использовать Azure OpenAI или OpenAI reasoning моделей и неразумных моделей для судьи LLM. Для комплексной оценки, требующей уточненной причины, мы рекомендуем gpt-5-mini для ее баланса производительности, затрат и эффективности.

Supported tools

Вычислители агентов поддерживают следующие средства:

  • File Search
  • Средство функций (определяемые пользователем средства)
  • MCP
  • Knowledge-based MCP

В настоящее время следующие средства имеют ограниченную поддержку. Избегайте использования tool_call_accuracy, или tool input accuracytool_output_utilizationtool_call_successgroundedness вычислителей, если беседа агента включает вызовы к этим средствам:

  • Поиск с использованием ИИ Azure
  • Bing Grounding
  • Пользовательский поиск Bing
  • SharePoint Grounding
  • Code Interpreter
  • Агент данных Fabric
  • Web Search

Использование средств оценки агентов

Вычислители агентов оценивают, насколько хорошо агенты ИИ выполняют задачи, следуйте инструкциям и эффективно используйте средства. Каждому вычислителю требуются определенные сопоставления данных и параметры:

Evaluator Required inputs Required parameters
Завершение задачи (предварительная версия) query, response deployment_name
Соблюдение задач (предварительная версия) query, response deployment_name
Разрешение намерений (предварительная версия) query, response deployment_name
Точность вызова средства (, query) responseИЛИ (tool_definitionsquery, tool_calls, tool_definitions) deployment_name
Tool Selection (, query) responseИЛИ (tool_definitionsquery, tool_calls, tool_definitions) deployment_name
Точность ввода средства query, , responsetool_definitions deployment_name
Использование выходных данных средства query, , responsetool_definitions deployment_name
Успех вызова средства response deployment_name
Эффективность навигации по задачам actions, expected_actions (none)

Example input

Тестовый набор данных должен содержать поля, на которые ссылаются сопоставления данных. Оба поля принимают простые строки или массивы бесед:

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

Для более сложных взаимодействий агента с вызовами инструментов используйте формат массива бесед. Этот формат соответствует схеме сообщений OpenAI (см. схему сообщения агента). Системное сообщение является необязательным, но полезно для оценщиков, которые оценивают поведение агента в отношении инструкций, включая task_adherence, , task_completiontool_call_accuracytool_selectiontool_input_accuracytool_output_utilizationи:groundedness

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

Формат определений инструментов

В tool_definitions поле описываются средства, доступные агенту. Он следует схеме вызова функции OpenAI — список объектов инструментов, где каждый объект содержит ( type всегда "function") и function дескриптор:

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

Включите этот список в качестве tool_definitions поля в тестовый набор данных вместе с query ним response.

Configuration example

Синтаксис сопоставления данных:

  • {{item.field_name}} ссылается на поля из тестового набора данных (например, {{item.query}}).
  • {{sample.output_items}} ссылается на структурированные выходные данные агента, включая вызовы и результаты средства. Используйте это для вычислителей, которым требуется полный контекст взаимодействия (task_adherence, , tool_call_accuracy, tool_selectiontool_input_accuracy). tool_output_utilization
  • {{sample.output_text}} ссылается на обычный текстовый ответ агента. Используйте это для вычислителей, ожидающих строковый ответ (например, coherence, violence).

Ниже приведен пример конфигурации для соблюдения задач:

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}}",
        },
    },
]

Дополнительные сведения о выполнении вычислений и настройке источников данных см. в статье о выполнении вычислений из пакета SDK .

Example output

Вычислители агентов возвращают результаты pass/Fail с обоснованием. Ключевые поля выходных данных:

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

Для вычислителей, использующих шкалу 1–5 перед пороговым значением (например intent_resolution , и tool_call_accuracy), выходные данные включают числовое score поле вместе с результатом 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
}

Эффективность навигации по задачам

Эффективность навигации по задачам измеряет, принял ли агент оптимальную последовательность действий, сравнивая с ожидаемой последовательностью (земная истина). Используйте этот средство оценки для оптимизации рабочего процесса и тестирования регрессии.

{
    "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 Траектория агента должна точно соответствовать земле (порядок и содержимое)
in_order_match Все наземные шаги истины должны отображаться в траектории агента в правильном порядке (дополнительные шаги разрешены)
any_order_match Все наземные шаги истины должны отображаться в траектории агента, порядок не имеет значения (дополнительные шаги разрешены)

Actions format:

Поле actions принимает список объектов сообщений, которые следуют схеме сообщения OpenAI. Каждое сообщение представляет шаг, который агент сделал во время беседы:

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

actions Поля expected_actions используют различные форматы. actions требуется словари схемы сообщений OpenAI (представляющие фактическое поведение агента), в то время как expected_actions используется простой список имен инструментов (представляющий истину на земле).

Формат ожидаемых действий:

Это expected_actions может быть простой список ожидаемых шагов:

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

Или кортеж с именами инструментов и параметрами для более подробной проверки:

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

Output:

Возвращает двоичный результат передачи и сбоя, а также точность, отзыв и оценки F1:

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

Схема сообщения агента

При использовании формата query массива бесед и response следуйте структуре сообщений OpenAI:

  • запрос. Содержит журнал бесед, ведущий к запросу пользователя. Включите системное сообщение для предоставления контекста для оценщиков, которые оценивают поведение агента в отношении инструкций.
  • ответ. Содержит ответ агента, включая вызовы инструментов и их результаты.

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 Инструкции агента (необязательно, помещенные в начало запроса)
user Сообщения и запросы пользователей
assistant Ответы агента, включая вызовы инструментов
tool Результаты выполнения средства

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