- Дата публикации
Microsoft добавила API для автоматической проверки агентов в Copilot Studio
Что нового
Microsoft расширила систему оценки агентов в Microsoft Copilot Studio и вынесла её в отдельные REST API. Теперь то, что раньше жило только в интерфейсе Copilot Studio, можно запускать программно:
- Evaluation API (Maker Evaluation API) — набор REST‑эндпоинтов для работы с тестами агентов.
- Можно:
- списком получать тестовые наборы (test sets), настроенные для конкретного агента;
- запускать тестовый набор на агенте по API;
- проверять статус запущенной оценки (асинхронный запуск);
- забирать детальные результаты с оценками по каждому тест-кейсу;
- получать историю всех прогонов для отчётности и сравнения.
- Те же действия доступны в виде сертифицированного коннектора Microsoft Copilot Studio в Power Automate.
- По умолчанию API прогоняет тесты по черновой (неопубликованной) версии агента, но можно явно указать запуск по опубликованной.
- Оценка может идти анонимно или от имени конкретного подключённого пользователя через
mcsConnectionId, что даёт доступ к защищённым источникам знаний и действиям. - Для одного агента можно запустить только один прогон одновременно — при попытке параллельного запуска API вернёт HTTP 422.
API уже доступны в Power Platform и работают через стандартный Power Platform API с делегированными правами MakerOperations.Read и MakerOperations.ReadWrite.
Как это работает
Механика простая: Trigger → Poll → Get Results.
-
Тестовые наборы (test sets)
- В Copilot Studio вы заранее создаёте тестовые наборы: это коллекции диалогов и ожидаемых ответов.
- Через API можно:
- получить список всех наборов для конкретного агента;
- запросить полное описание одного набора по его ID.
-
Запуск оценки агента
- Вы отправляете
POSTна эндпоинт запуска тестового набора. - В теле запроса указываете:
RunOnPublishedBot—trueилиfalse(по умолчаниюfalse, то есть тест идёт по черновику);mcsConnectionId— ID подключения Microsoft Copilot Studio (если пустая строка — запуск анонимный);evaluationRunName— произвольное имя прогона для дашбордов и логов.
- В ответ приходит ID прогона (
testRunId).
- Вы отправляете
-
Асинхронное выполнение
- Оценка идёт асинхронно, поэтому вы не ждёте её окончания в одном запросе.
- Вы периодически опрашиваете статус по
testRunId.
-
Получение результатов
- Когда прогон завершён, тот же эндпоинт статуса возвращает:
- общий статус (успех, ошибка, в процессе);
- итоговый скоринг;
- детальные результаты по каждому тест-кейсу.
- Когда прогон завершён, тот же эндпоинт статуса возвращает:
-
История и аналитика
- Отдельный эндпоинт возвращает список всех прошлых прогонов с тем же форматом данных.
- Это можно использовать для построения дашбордов, трендов качества и автоматических решений «публиковать / не публиковать».
-
Контекст пользователя через mcsConnectionId
- Если агент опирается на:
- аутентифицированные коннекторы,
- действия (actions), требующие авторизации,
- закрытые источники знаний,
то без
mcsConnectionIdрезультаты будут искажены: агент не увидит эти ресурсы.
- Передавая
mcsConnectionId, вы запускаете оценку в контексте конкретного пользователя Power Platform, и агент получает доступ к тем же данным и инструментам, что и в реальной работе.
- Если агент опирается на:
-
Ограничение на одновременные прогоны
- Если вы отправляете запрос на запуск, пока для того же агента уже идёт оценка, API вернёт HTTP 422.
- Это важно учитывать при интеграции в CI/CD и массовых проверках.
Технически API — это обычные HTTP‑эндпоинты Power Platform, так что вы можете вызывать их из любого клиента: curl, Python‑скрипты, Azure DevOps, GitHub Actions или своего бэкенда.
Что это значит для вас
Когда это полезно
1. CI/CD для агентов Copilot Studio
Если вы храните исходники агента в репозитории и работаете через pull request’ы, теперь можно добавить реальную проверку качества в пайплайн:
- при каждом PR или merge в
main:- запускать Evaluation API;
- ждать завершения прогона;
- по результату автоматически проваливать сборку, если качество просело относительно базового уровня.
Это снижает риск, что после обновления логики агент начнёт отвечать хуже, а вы узнаете об этом только от пользователей.
2. Автоматическая проверка после обновления знаний
Многое, что влияет на ответы агента, живёт вне Copilot Studio:
- обновился файл в библиотеке документов;
- в SharePoint поменяли базу знаний;
- в Dataverse изменились записи, влияющие на поведение.
Через Power Automate и коннектор Microsoft Copilot Studio вы можете:
- подписаться на события в SharePoint, Dataverse или файловом хранилище;
- при срабатывании триггера запускать прогон тестового набора через Evaluation API;
- отправлять результаты в Microsoft Teams, почту или в свою систему мониторинга.
Так вы контролируете не только код агента, но и качество его ответов после изменений в данных.
3. Встроенная проверка в свои инструменты и CoE‑дашборды
Если у вас есть внутренний центр компетенций по Copilot Studio или собственные админ‑панели, Evaluation API можно встроить прямо туда:
- дашборд, который показывает качество десятков агентов и их динамику;
- скрипт, который проверяет: «каждый новый агент должен пройти тесты до публикации»;
- кастомный workflow согласования, где публикация агента возможна только после успешной оценки.
API даёт полный контроль: вы сами решаете, когда запускать тесты, какие пороги считать допустимыми и что делать при провале.
Когда лучше не использовать
- Если вы разрабатываете один небольшой агент в одиночку и запускаете тесты раз в неделю руками, вам, скорее всего, достаточно интерфейса Copilot Studio без автоматизации.
- Если у вас нет формализованных тестовых сценариев, API не спасёт — сначала нужно описать тесты в Copilot Studio, а уже потом автоматизировать их запуск.
- Если инфраструктура построена вне Microsoft 365 / Power Platform и вы не хотите тянуть Power Platform API в свой стек, интеграция потребует дополнительной настройки авторизации и прав.
Доступность и ограничения
- Evaluation API — часть Power Platform. Для работы нужны:
- доступ к Microsoft Copilot Studio;
- доступ к Azure Portal для настройки прав приложения;
- разрешения
MakerOperations.ReadиMakerOperations.ReadWriteдля Power Platform API.
- Формально сервисы Power Platform и Copilot Studio могут быть ограничены для пользователей из России в зависимости от корпоративной подписки и политики Microsoft. В ряде случаев потребуется VPN и корпоративный аккаунт Microsoft 365.
Если вы уже используете Copilot Studio в рабочем тенанте, никаких дополнительных лицензий для базового сценария API в тексте не упоминается — всё завязано на существующую инфраструктуру Power Platform.
Место на рынке
Evaluation API решает очень конкретную задачу: автоматизированное тестирование и контроль качества агентов именно в Copilot Studio.
Сравнивать его напрямую с GPT‑4o, Claude 3 или другими LLM‑платформами некорректно: это не модель и не конкурирующий продукт, а инфраструктурный слой вокруг уже существующей среды Microsoft.
По позиционированию это ближе к:
- встроенным eval‑инструментам в платформах вроде Azure AI Studio;
- CI/CD‑интеграциям для чат‑ботов в специализированных платформах.
Но здесь есть чёткий фокус:
- тесная интеграция с Power Platform и Microsoft 365;
- прямое встраивание в Azure DevOps, GitHub Actions, Power Automate;
- работа именно с агентами Microsoft Copilot Studio.
Если ваша инфраструктура уже крутится вокруг Microsoft, этот подход логично дополняет экосистему. Если вы строите всё вокруг других вендоров, Evaluation API — аргумент в пользу Copilot Studio, но не самостоятельный продукт.
Установка / Как запустить
Ниже — ключевые шаги и готовые запросы, которые можно сразу использовать в Postman, curl или любом HTTP‑клиенте.
1. Настройка прав для приложения в Azure
- Перейдите на https://portal.azure.com
- Откройте App Registrations.
- Найдите своё приложение.
- Перейдите в раздел API permissions.
- Нажмите Add a permission.
- Выберите APIs my organization uses.
- Найдите
Power Platform API. - Выберите Delegated permissions.
- Разверните CopilotStudio.
- Отметьте
MakerOperations.ReadиMakerOperations.ReadWrite. - Нажмите Add Permissions.
После этого ваше приложение сможет вызывать Maker Evaluation API.
2. Эндпоинт: получить список тестовых наборов
Запрос:
GET https://api.powerplatform.com/copilotstudio/environments/{yourEnvironment}/bots/{replaceWithYourCdsBotId}/api/makerevaluation/testsets?api-version=1
Что вернёт:
- массив тестовых наборов, связанных с агентом.
- каждый элемент — описание test set с его ID, который нужен для следующих шагов.
3. Эндпоинт: получить конкретный тестовый набор
Когда у вас есть yourTestSetId, можно запросить полную конфигурацию набора.
Запрос:
GET https://api.powerplatform.com/copilotstudio/environments/{yourEnvironment}/bots/{replaceWithYourCdsBotId}/api/makerevaluation/testsets/{yourTestSetId}?api-version=1
Что вернёт:
- структуру тестового набора: сценарии, ожидаемые ответы, настройки.
4. Эндпоинт: запустить оценку для тестового набора
Этот запрос запускает прогон тестов для агента.
Запрос:
POST https://api.powerplatform.com/copilotstudio/environments/{yourEnvironment}/bots/{replaceWithYourCdsBotId}/api/makerevaluation/testsets/{yourTestSetId}/run?api-version=1
Content-Type: application/json
{
"RunOnPublishedBot": {boolean value},
"mcsConnectionId": "{yourMCSConnectionId}",
"evaluationRunName": "{yourEvaluationRunName}"
}
Пояснения к полям:
RunOnPublishedBot— опциональныйboolean. Если не указать, по умолчаниюfalse, то есть тест идёт по черновой версии агента. Еслиtrue— по опубликованной.mcsConnectionId— строка. Если передать пустую строку, прогон будет анонимным, без доступа к защищённым источникам и аутентифицированным коннекторам.evaluationRunName— опциональное имя прогона.
Как получить mcsConnectionId:
- Перейдите на https://make.powerautomate.com
- Откройте Connections в боковом меню.
- Найдите нужное подключение Microsoft Copilot Studio.
- Откройте его и скопируйте ID подключения из URL.
Пример URL:
https://make.powerautomate.com/environments/Default-00000000-0000-0000-0000-000000000000/connections/shared_microsoftcopilotstudio/shared-microsoftcopi-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/details
Здесь часть shared-microsoftcopi-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx — это и есть mcsConnectionId.
Важно: если вы попытаетесь запустить ещё один прогон для того же агента, пока предыдущий не завершился, API вернёт HTTP 422.
5. Эндпоинт: статус и результаты прогона
После запуска вы получаете yourTestRunId. По нему можно узнать статус и забрать результаты.
Запрос:
GET https://api.powerplatform.com/copilotstudio/environments/{yourEnvironment}/bots/{yourCdsBotId}/api/makerevaluation/testruns/{yourTestRunId}?api-version=1
Что вернёт:
- текущий статус прогона;
- после завершения — итоговый скор и детальные результаты по каждому тесту.
6. Эндпоинт: список прошлых прогонов
Для отчётности и трендов можно получить историю всех запусков.
Запрос:
GET https://api.powerplatform.com/copilotstudio/environments/{yourEnvironment}/bots/{yourCdsBotId}/api/makerevaluation/testruns?api-version=1
Что вернёт:
- массив объектов прогона, каждый в том же формате, что и одиночный запрос по
testruns/{yourTestRunId}.
Как использовать это на практике
-
Сделайте первый прогон вручную через API:
- выберите один тестовый набор в Copilot Studio;
- вызовите
GET testsets, найдите его ID; - запустите
POST .../runс понятнымevaluationRunName; - заберите результаты и зафиксируйте базовый уровень качества.
-
Включите API в CI/CD:
- добавьте шаг в Azure DevOps или GitHub Actions:
- запуск прогона;
- ожидание завершения через периодический
GET testruns/{id}; - проверка скоров и остановка пайплайна при падении качества.
- добавьте шаг в Azure DevOps или GitHub Actions:
-
Соберите простой дашборд:
- раз в день или при каждом релизе забирайте историю
GET testruns; - складывайте результаты в базу или Power BI;
- отслеживайте, как меняется качество агента по мере релизов.
- раз в день или при каждом релизе забирайте историю
-
Автоматизируйте реакции на изменения данных:
- через Power Automate слушайте обновления в SharePoint или Dataverse;
- при изменении — запускайте Evaluation API;
- отправляйте отчёты в Teams или почту.
Если вы серьёзно относитесь к качеству агентов в Microsoft Copilot Studio, эти API превращают разовые ручные проверки в нормальную инженерную практику: постоянные тесты, метрики и автоматические решения по релизу.