Как проверить навыки ИИ-агента и не сойти с ума от галлюцинаций

16 Jul, 2026
1,095
🔱 65
👥 3

Разработка ИИ-агентов сегодня напоминает «Дикий Запад». Мы пишем системные промпты, подключаем инструменты и надеемся, что модель не начнет нести чепуху или бесконечно зацикливаться на вызове одной и той же функции. Но как только проект выходит за рамки протокола «потыкать в чате», встает вопрос: как это тестировать? Как понять, что после замены GPT-4 на Claude 3.5 Sonnet агент стал умнее, а не просто вежливее?

Инженеры из Microsoft выложили в опенсорс waza — легковесный CLI-инструмент на Go, который пытается навести порядок в хаосе оценки скиллов ИИ. Это не огромный фреймворк с кучей зависимостей, а прагматичная утилита для создания бенчмарков, сравнения моделей и проверки того, вписывается ли описание вашего навыка в лимиты токенов.

В чем проблема обычных тестов

Традиционный юнит-тестинг плохо ложится на LLM. Модель может выдать правильный ответ разными словами, а может идеально соблюсти синтаксис, но полностью провалить бизнес-логику. В waza решили пойти по пути «оценки навыков» (skills).

Вы описываете, что должен уметь агент, создаете набор задач (tasks) и прогоняете их через разные модели. На выходе получается не просто «прошло/не прошло», а детальный отчет с метриками, транскриптами сессий и даже сравнением стоимости в токенах.

Первые шаги с инструментом

Инструмент устанавливается одной командой через curl, но если вы предпочитаете собирать из исходников, то Go 1.26+ сделает все за пару минут. После установки команда waza init создаст структуру проекта.

Реклама

Интересно, что авторы разделили понятия «скилл» и «оценка». Скиллы живут в своей папке, а тесты (evals) — в своей. Это удобно, если вы хотите гонять одни и те же тесты против разных версий одного навыка.

waza init my-project
waza new skill code-explainer

После этого у вас появится файл SKILL.md. Это сердце системы. В нем вы описываете на человеческом языке, для чего нужен этот навык и как его активировать. Waza умеет анализировать этот файл и подсказывать, не слишком ли он раздутый.

Три фишки, которые экономят время

1. Автоматическая генерация тестов

Вместо того чтобы вручную выдумывать JSON-файлы с тестами, можно использовать команду waza new task from-prompt. Вы просто пишете промпт, а waza прогоняет его через модель, записывает результат, смотрит, какие инструменты вызывались, и сама собирает YAML-файл задачи. Останется только подправить ожидаемые значения.

2. LLM-as-a-Judge

Waza поддерживает разные типы «грейдеров» (graders). Есть простые: проверка текста по регуляркам или поиск файлов. Но самое интересное — это prompt грейдер. Инструмент отправляет результат работы агента другой, более мощной модели (например, GPT-4o), чтобы та оценила качество ответа по заданному рубрикатору.

3. Битва моделей

Если вы сомневаетесь, стоит ли переплачивать за дорогую модель, поможет команда compare. Вы запускаете оценку на двух разных инстансах, сохраняете результаты в JSON и просите waza их сравнить.

waza compare results-gpt4.json results-sonnet.json

Вы получите таблицу, где наглядно видно: где одна модель справилась лучше, а где обе начали галлюцинировать.

Практическая польза в CI/CD

Microsoft позиционирует waza как часть пайплайна разработки. Если вы работаете в команде, то отчеты о тестах можно автоматически выгружать в Azure Blob Storage. В GitHub Actions это выглядит логично: пришел пулл-реквест с изменениями в логике агента — запустился waza run, результаты упали в облако, а в комментарии к PR появилась сводная таблица с изменениями точности.

Кстати, про токены. В контекстных окнах моделей место не бесконечное. У waza есть встроенный профилировщик токенов. Он не просто считает их количество, а предупреждает, если описание навыка становится слишком сложным или если в нем нет четких инструкций по рабочему процессу (workflow steps).

Кому это пригодится

Проект выглядит «свежим», и документация местами заставляет лезть в исходники internal-пакетов, но база у него крепкая. Код на Go работает быстро, бинарники весят мало.

Waza точно зайдет тем, кто:

  • Устал вручную проверять ответы чат-бота после каждого изменения промпта.
  • Хочет объективно сравнить локальные модели (через Ollama или подобные) с облачными API.
  • Следит за бюджетом и пытается оптимизировать количество токенов в системных инструкциях.

Это не волшебная палочка, которая сама напишет за вас идеального агента, но это отличный «штангенциркуль», чтобы измерить то, что раньше измерялось только на глаз.

С чего начать изучение

Если интересно пощупать инструмент в деле, рекомендую заглянуть в папку examples/code-explainer в репозитории. Там лежит готовый пример навыка, который объясняет код, со всеми конфигами и фикстурами. Это самый быстрый способ понять логику YAML-спецификаций waza без чтения длинных гайдов.

Инструмент активно развивается (часто выходят обновления версии 0.2x.x), так что стоит следить за релизами. Текущая миграция с Python на Go явно пошла проекту на пользу в плане производительности и удобства распространения.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.