Скилловик

Практическая статья

Как тестировать Agent Skill: trigger-тесты, evals и доказательства

Хороший тест отдельно проверяет выбор навыка и качество результата, сравнивает одинаковые задачи с skill и без него и сохраняет доказательства каждого assertion.

Две параллельные дорожки теста Agent Skill сходятся в проверяемой таблице результатов

Что именно нужно тестировать в Agent Skill?

Проверяйте два независимых слоя: triggering — выбрал ли агент нужный skill, и output quality — улучшил ли он результат. Навык может отлично работать при ручном запуске, но не выбираться автоматически, или выбираться без пользы.

СлойГлавный вопрос
DiscoveryВидит ли клиент правильную версию skill?
TriggeringВыбирается ли skill на целевых и не выбирается на чужих запросах?
ExecutionВыполняются ли инструкции и scripts без скрытой ошибки?
OutcomeПроходит ли результат наблюдаемые критерии?

Если skill вообще не виден или не запускается, сначала пройдите пошаговую диагностику.

Как составить первые eval-кейсы?

Начните с двух-трёх реальных задач. Для каждой сохраните prompt, входные файлы и человеческое описание успешного результата; добавляйте assertions после первого прогона, когда увидите фактический выход.

  • Используйте естественные формулировки из работы, а не ключевые слова description.
  • Меняйте уровень детализации, стиль и порядок вводных.
  • Подкладывайте обезличенные, но реалистичные файлы.
  • Фиксируйте версию skill, модели, клиента и окружения.
  • Не подгоняйте один тест под случайный удачный ответ.

Официальная методика Agent Skills предлагает хранить кейсы в `evals/evals.json`. Это удобный формат, но важнее воспроизводимость и полные входы, чем конкретное имя файла.

Какие trigger-тесты нужны?

Добавьте прямые позитивные запросы, близкие отрицательные и пограничные случаи. Сильный negative test использует похожую лексику, но требует другого процесса — именно он показывает, насколько точно работает description.

ТипОжидание
ПозитивныйSkill выбирается и загружает правильную версию
Близкий негативныйПохожая задача выполняется без этого skill
ПограничныйАгент уточняет вход, а не угадывает
Явный вызовИзолирует discovery от автоматического выбора

Для настройки коротких метаданных используйте формулу description в SKILL.md.

Зачем сравнивать with-skill и without-skill?

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

  • Запускайте сравнение в изолированных сессиях.
  • Используйте одинаковые входы, модель и настройки.
  • Не показывайте baseline результат второй конфигурации.
  • Повторяйте нестабильные кейсы несколько раз.
  • Считайте не только pass rate, но и стоимость успешной задачи.

Для продуктового решения свяжите evals с общей методикой оценки эффективности Agent Skill.

Как написать хорошие assertions?

Assertion должен быть наблюдаемым и связанным с задачей: файл существует, JSON валиден, строк ровно N, обязательные разделы заполнены. Формулировки «ответ хороший» или точное совпадение всей фразы слишком слабы.

Слабая проверкаПроверяемая замена
Отчёт качественныйЕсть три рекомендации с источником и следующим действием
Формат правильныйФайл проходит JSON Schema
Ответ выглядит красивоЗаголовок, подписи и единицы измерения присутствуют
Текст совпал с образцомСмысловые поля заполнены, формулировка может отличаться

Механические условия проверяйте script. Стиль, полезность и уместность оставляйте человеческому ревью либо слепому сравнению по заранее заданной рубрике.

Какие доказательства сохранять?

Для каждого assertion записывайте PASS или FAIL и ссылку на конкретный артефакт, строку, размер или измерение. Сводный процент без evidence не помогает понять, что исправлять.

  • Исходный prompt и входные файлы.
  • Фактически загруженная версия skill.
  • Полный результат и созданные артефакты.
  • Assertion, решение и конкретное evidence.
  • Время, токены и число повторных попыток.
  • Комментарий человека по качествам, которые трудно автоматизировать.

Для детерминированного подтверждения результата можно добавить validator и evidence.

Как улучшать skill по результатам evals?

Исправляйте повторяющийся корень ошибки, а не конкретную формулировку одного кейса. После изменения запускайте весь набор в новой итерации и сравнивайте pass rate, разброс, время и токены.

  1. 1. Сгруппируйте сбои

    Отделите trigger, инструкцию, script, окружение и неверный assertion.

  2. 2. Сделайте одно изменение

    Уточните границу, добавьте пример или упростите лишний шаг.

  3. 3. Перезапустите весь набор

    Локальная победа не должна сломать соседние кейсы.

  4. 4. Сравните с baseline

    Проверьте, сохранился ли реальный вклад skill.

  5. 5. Проведите human review

    Assertions не покрывают неожиданные дефекты и общий смысл.

Какой тестовый гейт нужен перед выпуском?

Выпускайте версию, когда целевые запросы стабильно активируют skill, близкие негативные не активируют его, обязательные assertions проходят с evidence, baseline сравнение показывает полезный вклад, а человек проверил реальные артефакты.

  • Версии модели, клиента, skill и fixtures зафиксированы.
  • Positive, negative и boundary кейсы пройдены.
  • With-skill сравнивается с without-skill.
  • Каждый PASS имеет доказательство.
  • Время и токены не скрыты.
  • Есть regression-набор для следующего обновления.
  • Результат проверен человеком на реальной полезности.

Автоматическую часть гейта подключите к CI-проверке Agent Skills.

Обсудить evals для Agent Skill

Источники

  1. Evaluating skill output qualityAgent Skills; проверено
  2. Optimizing skill descriptionsAgent Skills; проверено
  3. Agent Skills specificationAgent Skills; проверено
  4. Build skillsOpenAI; проверено
  5. Adding agent skills for GitHub CopilotGitHub; проверено