Перейти к содержанию

Евалы (тесты) для скилов

Что такое евалы для скила

Евал — это, по сути, юнит-тест скила: набор кейсов, где у каждого есть задача (prompt) и ассерты по ожидаемому результату. В нашем опыте (доклад о скилах) это описывали ровно так — «по факту это тесты скила». Официальный skill-creator от Anthropic хранит их в evals/evals.json: поля prompt, expected_output и assertions. Сами ассерты должны быть объективно проверяемыми и иметь понятные имена, чтобы их было легко читать в отчёте.

Пример из доклада: задача «купи кофе в зёрнах» → ассерты вида «задача создана в нужном списке», «тело содержит „купить“», «не использован посторонний список», «тег проставлен правильно». Это совпадает с общим определением евала у Anthropic: «дать ИИ вход и применить логику оценки (grading) к его выводу», где грейдинг часто строится на юнит-тестах/ассертах.

Две проверки: корректность и польза

Докладчик подчёркивает, что проверок именно две:

  1. Прогон проверяет, правильно ли агент выполняет задачи (соответствие ассертам).
  2. Ключевая особенность — прогон двух независимых агентов: со скилом и без скила на одном наборе кейсов. Строится бенчмарк-табличка с pass rate. В живом демо это дало наглядную картину: со скилом — 100% прохождения, без скила — ~42%.

Зачем вторая проверка: она показывает, приносит ли скил реальную пользу относительно baseline, и какую информацию модель и так знает. На кейсах, где агент действует одинаково со скилом и без него, эта информация в скиле лишняя — общеизвестное можно убрать. Это и есть ответ на частый вопрос «не дублирую ли я то, что модель и так умеет».

Как запускать (нюансы команды)

skill-creator сам ведёт по циклу «черновик → прогон → ревью → улучшение → повтор»: для каждого кейса он спавнит двух сабагентов в один заход — одного со скилом, другого без (baseline), — а затем сводит benchmark.json с pass_rate, временем и токенами (mean ± stddev и дельта). Результаты раскладываются по итерациям (iteration-1, iteration-2, …) — то есть история прогонов сохраняется.

Важный практический нюанс от докладчика: тестируемый скил кладите в отдельную папку, а не в дефолтную папку автозагрузки skills — иначе он подхватится автоматически и «прогон без скила» окажется нечестным.

Итерации через фидбэк

В eval-viewer проходишь по каждому кейсу, смотришь, что было на выходе, и оставляешь фидбэк прямо по результату («не согласен — делай так-то»). Так скил итеративно доводится. Обзорная статья Anthropic про Agent Skills описывает доводку мягче — как наблюдение за реальными сценариями и итерации по ним; наш опыт и сам skill-creator идут дальше, добавляя формальный бенчмарк «со скилом vs без скила». Противоречия тут нет: это более строгая форма той же идеи — мерить, а не угадывать.

Источники