Евалы (тесты) для скилов✦
Что такое евалы для скила✦
Евал — это, по сути, юнит-тест скила: набор кейсов, где у каждого есть
задача (prompt) и ассерты по ожидаемому результату. В нашем опыте (доклад
о скилах) это описывали ровно так — «по факту это тесты скила». Официальный
skill-creator от Anthropic хранит их в evals/evals.json: поля prompt,
expected_output и assertions. Сами ассерты должны быть объективно
проверяемыми и иметь понятные имена, чтобы их было легко читать в отчёте.
Пример из доклада: задача «купи кофе в зёрнах» → ассерты вида «задача создана в нужном списке», «тело содержит „купить“», «не использован посторонний список», «тег проставлен правильно». Это совпадает с общим определением евала у Anthropic: «дать ИИ вход и применить логику оценки (grading) к его выводу», где грейдинг часто строится на юнит-тестах/ассертах.
Две проверки: корректность и польза✦
Докладчик подчёркивает, что проверок именно две:
- Прогон проверяет, правильно ли агент выполняет задачи (соответствие ассертам).
- Ключевая особенность — прогон двух независимых агентов: со скилом и без скила на одном наборе кейсов. Строится бенчмарк-табличка с 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 без скила». Противоречия тут нет: это более строгая
форма той же идеи — мерить, а не угадывать.