Результаты запуска
По результатам запуска видно, стала ли новая версия проекта лучше прежней и на каких кейсах процесс ошибается. По ним вы решаете, можно ли публиковать правку, и находите, что еще исправить.
Результаты одного теста собраны на странице теста, в истории его запусков. Прогоны всех тестов проекта собраны на вкладке Результаты: там их удобно разбирать вместе.
Оценка новой версии
Чтобы понять, стала ли версия лучше, сравните ее запуск с прошлым запуском того же теста. Откройте тест на вкладке Тесты: на странице теста собрана история его запусков. Каждая строка — один запуск с датой и номером, версией проекта и показателями:
Сравните показатели нового запуска с прошлым:
- Pass rate — процент оценок, которые прошли проверку. Под ним указано, сколько оценок прошли проверку из общего числа, например 6 из 6. По Pass rate удобнее всего сравнивать запуски.
- Динамика — изменение Pass rate в процентных пунктах по сравнению с предыдущим запуском. Если Pass rate вырос, новая версия чаще проходит проверки, а если упал — на части кейсов она отвечает хуже.
- Среднее — средний балл судьи по LLM-проверкам. Оно показывает, что ответы стали хуже, даже если Pass rate не изменился: например, баллы снизились, но остались не ниже порога.
- Прогонов — сколько прогонов в запуске, не считая архивных. В это число входят и прогоны, на которые процесс не ответил. Если судья не смог поставить часть оценок, под этим числом указано, сколько ошибок судьи в запуске.
Ответы LLM различаются от раза к разу, поэтому Pass rate может немного меняться и без правок. Чтобы сравнение было надежнее, задайте в тесте несколько повторов.
После правки промпта Pass rate агента упал с 90% до 75%. Показатель Динамика отобразит снижение на 15 процентных пунктов. Это значит, что на части кейсов новая версия отвечает хуже. Вы можете найти эти кейсы и исправить ошибки.
Как считаются показатели
Показатели учитывают не все оценки запуска. Например, если судья не смог поставить 2 оценки из 10, Pass rate считается по остальным 8. Правила расчета:
- Ответ проходит проверку, если результат достигает порога проверки. У проверки Соответствие JSON Schema порога нет: ответ проходит ее, если соответствует схеме.
- Pass rate и среднее считаются только по основным оценкам — тем, что поставил запуск. Дополнительные оценки на них не влияют.
- Проверки-правила входят в Pass rate, но не в среднее: среднее считается только по баллам LLM-проверок.
- Динамика показывает разницу с предыдущим по времени запуском этого теста, у которого есть Pass rate, а не со строкой выше. Чтобы увидеть версию, с которой идет сравнение, наведите курсор на значение динамики. Если между запусками есть запуски без Pass rate, например запуски без оценки или убранные в архив целиком, рядом указан номер запуска для сравнения: к #N. Самый ранний запуск с Pass rate сравнивать не с чем, поэтому вместо динамики у него стоит первый замер.
- Ошибки судьи и архивные прогоны в Pass rate не входят. Если часть прогонов запуска в архиве, под Pass rate указано исключено N из M: N прогонов из M, которые были в запуске, убраны в архив и в расчет не вошли.
- Если процесс ничего не ответил или завершился с ошибкой до ответа, прогон все равно получает оценки: LLM-проверки ставят пустому ответу 0, а Соответствие JSON Schema — Не прошло. Исключение — Вызов инструментов: если процесс не ответил за 90 секунд или диалог прервался из-за сбоя, вместо оценки будет ошибка судьи.
Поиск ошибок
Если Pass rate упал или ниже, чем вы ожидали, найдите прогоны, которые не прошли проверку:
-
На странице теста нажмите на стрелку в начале строки запуска. Откроется таблица прогонов: кейс и ответ, номер повтора, оценки по проверкам и время ответа.
-
Найдите оценки, которые не прошли проверку:
- у LLM-проверок — балл ниже порога, например 6/10 при пороге 7;
- у проверки Соответствие JSON Schema — Не прошло;
- у проверки Вызов инструментов — доля вызванных функций ниже порога, например ½ при пороге 100%.
Такие оценки выделены красным. Чтобы узнать, к какой проверке относится оценка, наведите на нее курсор.
-
Нажмите на прогон. Откроется панель Прогон.
Причина ошибки
В панели прогона собрано все, что нужно, чтобы понять, почему ответ не прошел проверку:
Разбирайте прогон в таком порядке:
-
Прочитайте Оценки. У LLM-проверок здесь обоснование судьи: оно объясняет, что не так с ответом. У проверок-правил — причина, по которой ответ не прошел, например Ответ не соответствует схеме. Чтобы посмотреть порог проверки, наведите курсор на оценку.
-
Сравните Ответ агента — ответ процесса на вопрос из блока Запрос — с Ожидаемым ответом, то есть эталоном из кейса, если он задан.
-
Если в кейсе задана JSON-схема или ожидаемые вызовы функций, посмотрите блок Ожидаемое поведение. В нем видно, какие из ожидаемых функций агент вызвал и соответствует ли ответ схеме. Если ответ не в формате JSON, в блоке написано Ответ не является JSON. Если ответ — JSON, но не соответствует схеме, раскройте Подробнее: там до пяти сообщений о нарушенных правилах схемы. Например, сообщение
$: required property 'urgent' not foundозначает, что в ответе нет обязательного поляurgent:
-
Если причина по-прежнему неясна, откройте События — журнал выполнения прогона. В нем видно, как работали блоки процесса и на каком шаге возникла ошибка. Чтобы открыть журнал в разделе История запусков, нажмите рядом с заголовком Журнал:
Оценки и обоснования судьи платформа хранит, пока существует проект. Журналы событий хранятся 3,5 месяца, поэтому у более старых прогонов журнала нет.
Если процесс завершился с ошибкой до ответа, в панели прогона появится сообщение об ошибке, но прогон все равно оценивается. Если прогон испортил сбой внешнего сервиса или ошибка в кейсе, уберите его в архив: нажмите В архив в панели прогона.
Агент не прошел проверку Выполнение задачи на вопросе «Можно вернуть товар без чека?». Обоснование судьи говорит, что агент потребовал чек, хотя инструкция в кейсе разрешает возврат по номеру заказа. Чтобы исправить ошибку, добавьте правила возврата в промпт агента. Как убедиться, что правка помогла, читайте в разделе Проверка исправления.
Проверка исправления
Исправление удобно проверять в два шага: сначала на кейсах, где агент ошибся, затем на всем тесте. Первый шаг быстрее и отправляет меньше запросов к LLM, а второй показывает, не сломала ли правка другие ответы.
Перепрогон кейсов с ошибками
Перепрогон — новый запуск выбранных кейсов вне теста. Он покажет, исправлена ли ошибка, без запуска всего теста.
-
На странице теста нажмите В «Результатах» в строке запуска. Откроется вкладка Результаты с прогонами этого запуска.
-
Отметьте прогоны с нужными кейсами и на панели действий нажмите Перепрогнать кейсы:
-
В окне Перепрогнать кейсы в поле Версия сценария выберите, где пройдут кейсы:
- На исходных версиях — каждый кейс пройдет на той же версии, что и его исходный прогон. Так вы проверите, повторяется ли ошибка;
- На новой версии — все кейсы пройдут на версии, которую вы выберете, например на версии с исправлением.
-
Укажите, сколько раз агент ответит на каждый кейс.
-
Выберите, как оценить ответы:
- оставьте включенным Оценить теми же проверками, чтобы каждый кейс оценили теми же проверками, судьей и порогом, что и его исходный прогон. Кейсы, у исходных прогонов которых нет основной оценки, останутся без оценки: их число указано в окне в строке без оценки. Если основной оценки нет ни у одного выбранного прогона, переключатель недоступен;
- чтобы выбрать проверки самостоятельно, отключите Оценить теми же проверками. Проверки оценят ответы с текущими порогами.
-
Нажмите Перепрогнать кейсы.
В перепрогоне действуют те же лимиты, что и в запуске теста: не больше 1 000 прогонов и 2 000 оценок. Если вы выбрали несколько повторов одного кейса, кейс войдет в перепрогон один раз. Вопрос, эталон и остальные поля кейса платформа берет из исходного прогона, даже если вы уже изменили кейс или удалили датасет.
Перепрогон не попадает в историю теста и не меняет его динамику. На вкладке Результаты в группировке По запускам он отмечен меткой перепрогон, а в столбце Тест у него написано вне теста · из #N, где N — номер исходного запуска. Если вы выбрали прогоны из разных запусков, в столбце написано вне теста.
Запуск всего теста
Перепрогон проверяет только выбранные кейсы. Когда ошибки исправлены, запустите тест целиком: так вы увидите, не стали ли хуже ответы на другие кейсы.
- Убедитесь, что в истории теста есть запуск на версии до правки: с ним вы будете сравнивать. Если его нет, запустите тест на прежней версии.
- Запустите тест на версии с исправлением.
- Сравните Pass rate и среднее нового запуска и запуска до правки. Динамика сравнивает только с предыдущим запуском теста: если после запуска до правки были другие запуски, например прошлые попытки исправления, сравните Pass rate двух запусков самостоятельно.
- Если Pass rate снизился, найдите кейсы, которые перестали проходить проверку.
Сомнительные результаты
Иногда показатели запуска искажает не процесс, а что-то другое: судья не смог поставить оценку, ответ испортил сбой внешнего сервиса или вы не уверены в оценках судьи. Разберите такие прогоны, прежде чем делать выводы о версии.
Ошибка судьи
Если судья не смог поставить оценку, вместо нее стоит метка Ошибка судьи. Такая оценка не входит в Pass rate: ошибка его не снижает, но запуск оценен не полностью. Чтобы узнать причину, откройте панель прогона и наведите курсор на метку:
| Сообщение | Причина | Что делать |
|---|---|---|
| Модель-судья недоступна | Интеграция судьи удалена, или провайдер модели не отвечает либо вернул ошибку. У моделей с прямым доступом эта ошибка возникает и тогда, когда исчерпан лимит запросов или на счете у провайдера не хватает денег. | Проверьте в разделе Интеграции, что интеграция судьи на месте. Если модель подключена с прямым доступом, проверьте счет и лимиты у провайдера. |
| Закончилась квота у модели-судьи | На балансе аккаунта не хватает J-токенов. Ошибка бывает у моделей, подключенных через Just AI. | Пополните баланс J-токенов. |
| Судья не ответил вовремя | Модель не ответила за 60 секунд. | Оцените прогон еще раз позже. Если ошибка повторяется, возьмите судьей более быструю модель. |
| Судья вернул ответ, который не удалось разобрать | Модель вернула пустой ответ или ответ без балла и обоснования в нужном формате. | Возьмите судьей другую модель, например рекомендуемую в карточке проверки. |
| Судья не смог оценить прогон | Любая другая ошибка, например истек срок действия учетных данных интеграции судьи или произошел сбой на стороне платформы. | Проверьте срок действия учетных данных и оцените прогон еще раз. Если ошибка повторяется, обратитесь в техническую поддержку. |
| Нет данных о вызовах инструментов: прогон сделан до обновления платформы или канал их не передал | Проверка Вызов инструментов не получила данных о том, какие функции вызвал агент. Так бывает, если процесс не ответил за 90 секунд или диалог прервался из-за сбоя, а также у прогонов, сделанных до того, как платформа начала собирать вызовы функций. | Перепрогоните кейсы или запустите тест еще раз. |
| JSON-схема кейса некорректна — исправьте ее в датасете | Платформа не смогла проверить ответ по схеме из кейса. Например, схема ссылается на внешний адрес. | Исправьте схему в датасете и запустите тест с исправленным кейсом. Если в тесте включен переключатель Фиксировать датасеты, для этого создайте новый тест или скопируйте этот. |
Если причина в судье, например модель не ответила вовремя, перезапустите оценку тем же судьей с тем же порогом:
- чтобы перезапустить оценку одного прогона, нажмите рядом с ошибкой в строке прогона;
- чтобы перезапустить оценку нескольких прогонов, на вкладке Результаты отметьте их и на панели действий нажмите Перезапустить оценку;
- чтобы перезапустить оценку всех прогонов запуска с ошибкой судьи, на странице теста раскройте запуск и нажмите Ошибки судьи N.
Особенности перезапуска:
- Новый запуск не создается. Новая оценка заменяет ошибку и остается основной или дополнительной, как и прежняя.
- При ошибках Нет данных о вызовах инструментов и JSON-схема кейса некорректна перезапуск не поможет: их причина в прогоне или кейсе, а не в судье. Что делать в этих случаях, смотрите в таблице.
- Если ошибка повторяется, возьмите другую модель-судью, например модель, которую платформа рекомендует в карточке проверки. Чтобы оценить ею эти же ответы, поставьте дополнительную оценку. Чтобы она оценивала следующие запуски, скопируйте тест с другим судьей.
Испорченный прогон
Если ответ испортил не процесс, а сбой внешнего сервиса или ошибка в кейсе, уберите прогон в архив. Архивный прогон не входит в Pass rate, среднее и динамику. Платформа сразу пересчитывает показатели запуска, даже если запуск был давно.
Убрать прогон в архив можно в нескольких местах:
- на вкладке Результаты — нажмите в строке прогона или отметьте несколько прогонов и на панели действий нажмите В архив;
- на странице теста — раскройте запуск и нажмите в строке прогона;
- в панели прогона — нажмите В архив.
Под Pass rate запуска появится метка исключено N из M: N прогонов из M в архиве. Если в архив ушли все прогоны запуска, показателей у запуска нет.
Чтобы вернуть прогоны и снова учесть их в показателях:
- сразу после архивации — нажмите Вернуть в уведомлении. Этой кнопки нет, если вы выбирали все прогоны под фильтрами: тогда верните их через фильтр В архиве;
- в любое время — на вкладке Результаты включите быстрый фильтр В архиве, отметьте прогоны и на панели действий нажмите Вернуть.
Пока по прогону идет запуск или оценка, убрать его в архив нельзя. Если вы уберете в архив тест, вместе с ним в архив уйдут все его прогоны.
Оценка другим судьей
Если вы сомневаетесь в оценках судьи, оцените те же ответы другой моделью-судьей или проверкой, которой нет в тесте. Так же можно оценить прогоны теста, который запускали без оценки.
Оценки, которые ставит запуск теста или перепрогон, — основные: по ним платформа считает Pass rate, среднее и динамику. Оценки, которые вы ставите готовым прогонам позже, — дополнительные. Они видны рядом с основными, но показатели не меняют, поэтому сравнение запусков не испортят.
- На вкладке Результаты отметьте прогоны в таблице. Чтобы выбрать все прогоны под фильтрами, а не только на текущей странице таблицы, отметьте все строки и нажмите Выбрать все N под фильтрами в первой строке таблицы, где N — число прогонов под фильтрами. С быстрым фильтром Ошибка судьи после этого кнопки Оценить на панели нет: такие прогоны отмечайте на странице таблицы.
- На панели действий с выбранными прогонами нажмите Оценить.
- В окне Оценить выбранные прогоны выберите проверки и модель-судью для каждой LLM-проверки.
- Нажмите Оценить.
Проверки оценят ответы с текущими порогами, а не с теми, что сохранены в тесте. Архивные прогоны и прогоны, по которым еще идет запуск или оценка, платформа пропустит.
В таблице дополнительные оценки обозначены меткой +N доп. рядом с основной оценкой прогона, а в панели прогона — меткой доп.
Прогоны нескольких тестов
На вкладке Результаты раздела Тестирование качества собраны прогоны всех тестов проекта. Она нужна, когда истории одного теста мало: например, чтобы разобрать вместе прогоны разных тестов и версий, перепрогнать или оценить выбранные прогоны или показать коллеге выборку.
Чтобы перейти сюда к прогонам одного запуска, нажмите В «Результатах» в строке запуска на странице теста:
Вкладка откроется с фильтром по этому запуску.
Таблица показывает прогоны в одной из двух группировок:
- По прогонам — строка на каждый прогон: кейс, тест, версия, запуск, номер повтора, время ответа и оценки. Эта группировка открывается по умолчанию.
- По запускам — строка на каждый запуск: Pass rate, среднее, динамика и число прогонов. Чтобы увидеть прогоны запуска, нажмите на стрелку в начале строки.
Над таблицей можно отобрать прогоны по тесту, датасету, версии сценария, проверке, запуску и периоду, а также найти кейс по тексту вопроса. По умолчанию таблица показывает прогоны за последние 7 дней.
В группировке По прогонам есть быстрые фильтры:
- Без оценки — прогоны, у которых нет ни одной оценки;
- Ошибка судьи — прогоны, у которых есть оценка с ошибкой судьи;
- В архиве — архивные прогоны. Без этого фильтра таблица их не показывает.
Фильтры и группировка сохраняются в адресе страницы. Чтобы показать коллеге ту же выборку, отправьте ссылку на страницу.
Одно действие с выбранными прогонами — оценка, перепрогон, архивация или скачивание — может охватить не больше 20 000 прогонов. Если выбрано больше, платформа не выполнит действие: сузьте выборку фильтрами.
Выгрузка в файл
Чтобы разобрать прогоны вне платформы или передать их коллегам, нажмите Скачать над таблицей. Если вы отметили прогоны, платформа скачает их, а если нет — все прогоны под текущими фильтрами.
Платформа скачает JSON-файл с прогонами и всеми их оценками — основными и дополнительными.