Настройка тестов в Copilot Studio Kit

Тестирование крайне важно для того, чтобы ваши пользовательские агенты в Copilot Studio Kit отвечали и действовали так, как ожидается. В этой статье объясняется, как создавать и проверять различные типы тестов и управлять ими, включая многоходовые сценарии, выполнение массовых операций в Excel и дублирование тестовых наборов.

Типы тестов

Вы можете создавать различные типы тестов для проверки ваших агентов.

Тип теста Description
Совпадение ответа Это самый простой тип теста. Он сравнивает ответ агента с ожидаемым ответом с помощью выбранного оператора сравнения.
По умолчанию используется точное совпадение («равно»). Другие доступные операторы сравнения: «Не равно», «Содержит», «Не содержит», «Начинается с», «Не начинается с», «Заканчивается на» и «Не заканчивается на».
Вложения (например, адаптивные карточки) Сравнивается JSON-ответ с вложениями агента с ожидаемым JSON-ответом с вложениями (весь массив вложений).
По умолчанию используется точное совпадение («равно»). Другие доступные операторы сравнения: «Не равно», «Содержит», «Не содержит». Специальный оператор сравнения «Проверка ИИ» использует языковые модели для проверки вложения на основе инструкций по проверке, предоставленных разработчиком, аналогично генеративным ответам.
Сопоставление темы Доступно только при активации обогащения Dataverse (Обогащение расшифровками разговоров).
Когда этап обогащения Dataverse завершен, этот тест сравнивает ожидаемое имя темы и имя активированной темы. Тестирование совпадения тем также поддерживает сопоставление нескольких тем с пользовательскими агентами, у которых включена генеративная оркестрация. При сопоставлении нескольких тем темы разделяются запятыми; например: «Тема1,Тема 2».
Генеративные ответы Доступно только если настроено обогащение AI Builder (анализ генеративных ответов).
Использует большую языковую модель для оценки того, насколько сгенерированный ИИ ответ близок к образцу ответа или соответствует инструкциям по проверке.
Когда обогащение с помощью приложение Azure Insights настроено, можно также тестировать отрицательные тесты, такие как модерация или отсутствие результатов поиска. Подробнее см. Использование рубрик в тестах.
Многоходовый Включает один или несколько тестовых случаев других типов, таких как совпадение ответов, вложения, тематическое совпадение и генеративные ответы. Все дочерние тесты в многоходовом тесте выполняются в одном и том же контексте разговора в заданном порядке. Используйте многоходовые тесты для сквозного тестирования сценария и для тестирования пользовательских агентов с генеративной оркестрацией. Подробнее см. в разделе Многоходовое тестирование.
Валидация плана Позволяет разработчику убедиться, что динамический план пользовательского агента включает ожидаемые инструменты. Этот тип тестирования предназначен для пользовательских агентов Copilot Studio с поддержкой генеративной оркестрации. Подробнее см. в разделе Тестирование проверки плана.

Создание нового тестового набора

Используйте тестовые наборы для объединения нескольких тестов. При запуске тестов выберите тестовый набор, чтобы запустить все тесты, входящие в него.

  1. Откройте приложение Copilot Studio Kit.
  2. Перейдите в Тестовые наборы.
  3. Создайте новую запись тестового набора агента.
  4. Введите Имя.
  5. Выберите Сохранить.

Создание нового теста

После создания тестового набора в него можно добавить тесты. Во вложенной сетке «Тесты» выберите + Создать тест агента.

Снимок экрана интерфейса создания теста агента в Copilot Studio Kit с выделенной кнопкой «Создать тест агента».

В следующей таблице приводится описание полей.

Имя столбца Обязательное Description
Имя Да Задайте имя теста. Это имя может быть идентификатором внутренней ссылки, например, TST-001.
Тестовый набор агента Да Родительский тестовый набор для данного теста.
Тип теста Да Один из доступных типов тестов.
Отправить событие startConversation нет Если включено, агент получает событие startConversation, поэтому он заранее запускает разговор, после чего отправляется тестовое высказывание. Эта настройка обычно требуется, когда в теме Начало разговора есть логика, которая должна выполниться до ответа на пользовательское или тестовое высказывание.
Ожидаемая позиция ответного сообщения нет Не задавайте значение, если не уверены. Эта опция позволяет выбрать конкретный ответ агента, когда он отправляет несколько сообщений. Например, если агент сначала говорит «Здравствуйте», а затем «Чем могу помочь?», и вы хотите протестировать второе сообщение, установите значение 1. Нумерация начинается с нуля, поэтому первое сообщение имеет индекс 0, второй ответ — 1 и так далее.
Тестовая реплика Да Сообщение, которые вы хотите отправить агенту как часть теста.
Ожидаемый ответ Зависит от ситуации Обязательно для тестов типа соответствия ответа. Ожидаемый ответ от агента. Для теста генеративных ответов укажите пример ответа или собственные инструкции по проверке для большой языковой модели.
Внешние переменные JSON нет JSON-запись для любого внешнего или контекстного значения, которое вы хотите передать агенту в рамках теста. Например: { "Language": "fr" }
Количество секунд до получения ответа нет Количество секунд ожидания перед оценкой ответа от бота. В большинстве случаев это значение можно оставить пустым, но это полезно в ситуациях, когда агент вызывает API, и ответ может занять больше времени, чем обычно.
Ожидаемый результат генеративного ответа Зависит от ситуации Обязательно для тестов типа генеративного ответа. Должен быть либо Ответ дан, либо Ответ не дан. Когда включено обогащение с помощью приложение Azure Insights, вы можете выбрать Модерировано или Нет результатов поиска.
Ожидаемое название темы Зависит от ситуации Обязательно для тестов типа соответствия темы. Название темы, которая должна быть активирована. Сопоставление нескольких тем поддерживается для пользовательских агентов с активированной генеративной оркестрацией. Для сопоставления нескольких тем используйте список, разделенный запятыми; например: «Тема1,Тема2». Не добавляйте лишних пробелов. Сопоставление нескольких тем гарантирует, что ожидаемые темы содержатся в плане.
Ожидаемый JSON вложений Зависит от ситуации Обязательно для типа теста с вложениями (адаптивные карточки и т. д.). Полный JSON-массив вложений, который вы ожидаете от ответа агента.
Ожидаемые инструменты Зависит от ситуации Обязательно для тестов типа проверки плана. Список ожидаемых инструментов (инструменты, действия и подключенные агенты), указанных через запятую. Не добавляйте лишних пробелов. Порядок не имеет значения. Пример: «Погода,Изменение климата»
Порог прохождения (%) Зависит от ситуации Обязательно для тестов типа проверки плана. Процент ожидаемых инструментов, которые должны быть в динамическом плане, чтобы тест был пройден. Если процент равен 100, все ожидаемые инструменты должны присутствовать в динамическом плане, чтобы тест считался пройденным. Дополнительные инструменты в динамическом плане не влияют на результат теста.

Многоходовое тестирование

Для типа теста с несколькими ходами можно указать один или несколько дочерних тестов обычных типов. Каждый дочерний тест имеет порядок и критичность. Порядок выполнения определяет последовательность выполнения в рамках одного и того же контекста разговора (в пределах многоходового тестового случая). Критичность определяет, требуется ли успешное выполнение дочернего тестового случая для продолжения выполнения многоходового теста.

Снимок экрана настройки многоходового теста в Copilot Studio Kit.

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

Снимок экрана результатов многоходового теста в Copilot Studio Kit.

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

Тестирование для проверки плана

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

При определении теста проверки плана вы указываете:

  • Тестовое высказывание
  • Список ожидаемых инструментов, разделенных запятыми, для включения в динамический план
  • Порог прохождения, показывающий, какое отклонение от списка допустимо

Этот тест использует расшифровки разговоров и анализируется после завершения теста как процедура обогащения данных.

Обратите внимание на следующее:

  • Ожидаемые инструменты: можно включить инструменты, действия и связанные агенты в список, разделенный запятыми. Лишние пробелы не допускаются, порядок не имеет значения.

  • Порог прохождения (%): порог прохождения указывает долю ожидаемых инструментов, которые должны быть включены в динамический план, чтобы тест считался успешным.

Проверка плана — это детерминированный тест: он вычисляет отклонение фактических инструментов от ожидаемых и сравнивает его с порогом прохождения. Если отклонение находится в пределах порога, тест считается пройденным; в противном случае тест не пройдет.

Снимок экрана типа теста «Проверка плана» в Copilot Studio Kit.

Подробнее см. в разделе: Оркестрация поведения агентов с помощью генеративного ИИ.

Использование Excel для пакетного создания или обновления тестов

После создания тестового набора используйте Excel для пакетного создания или обновления тестов.

  1. В записи тестового набора переключите вид вложенной сетки с Тесты на Представление экспорта/импорта.
  2. Выберите Экспорт тестов агента в Excel Online.
  3. Добавляйте и изменяйте тесты по мере необходимости.
  4. Выберите Сохранить.

Если вы импортируете многоходовые дочерние тестовые случаи, сначала необходимо создать или импортировать родительский многоходовый тест. Затем импортируйте дочерние тестовые случаи.

Узнайте больше об импорте и экспорте Excel в приложениях Power Apps на основе модели.

Дублирование тестов и тестовых наборов

Можно дублировать как тестовые наборы, так и отдельные тесты.

  • Чтобы дублировать отдельный тестовый случай, откройте запись теста агента и выберите Дублировать тестовый случай. Это действие полезно при создании вариантов тестового случая, например, при изменении места, времени или количества.

  • Чтобы дублировать весь тестовый набор, откройте запись тестового набора и выберите Дублировать тестовый набор в строке команд. Это действие создает копию тестового набора и всех его дочерних тестов.

Далее