Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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:
- пример завершения Task (предварительная версия)
- пример соответствия Task
- пример эффективности навигации Task
- пример разрешения Intent
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."}]}
]
}