Перейти к основному содержимому

Результаты запуска

По результатам запуска видно, стала ли новая версия проекта лучше прежней и на каких кейсах процесс ошибается. По ним вы решаете, можно ли публиковать правку, и находите, что еще исправить.

Результаты одного теста собраны на странице теста, в истории его запусков. Прогоны всех тестов проекта собраны на вкладке Результаты: там их удобно разбирать вместе.

Оценка новой версии​

Чтобы понять, стала ли версия лучше, сравните ее запуск с прошлым запуском того же теста. Откройте тест на вкладке Тесты: на странице теста собрана история его запусков. Каждая строка — один запуск с датой и номером, версией проекта и показателями:

Страница теста: история запусков с Pass rate, средним и динамикой, раскрытый запуск с прогонами

Сравните показатели нового запуска с прошлым:

  • Pass rate — процент оценок, которые прошли проверку. Под ним указано, сколько оценок прошли проверку из общего числа, например 6 из 6. По Pass rate удобнее всего сравнивать запуски.
  • Динамика — изменение Pass rate в процентных пунктах по сравнению с предыдущим запуском. Если Pass rate вырос, новая версия чаще проходит проверки, а если упал — на части кейсов она отвечает хуже.
  • Среднее — средний балл судьи по LLM-проверкам. Оно показывает, что ответы стали хуже, даже если Pass rate не изменился: например, баллы снизились, но остались не ниже порога.
  • Прогонов — сколько прогонов в запуске, не считая архивных. В это число входят и прогоны, на которые процесс не ответил. Если судья не смог поставить часть оценок, под этим числом указано, сколько ошибок судьи в запуске.

Ответы LLM различаются от раза к разу, поэтому Pass rate может немного меняться и без правок. Чтобы сравнение было надежнее, задайте в тесте несколько повторов.

Пример: 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 упал или ниже, чем вы ожидали, найдите прогоны, которые не прошли проверку:

  1. На странице теста нажмите на стрелку в начале строки запуска. Откроется таблица прогонов: кейс и ответ, номер повтора, оценки по проверкам и время ответа.

  2. Найдите оценки, которые не прошли проверку:

    • у LLM-проверок — балл ниже порога, например 6/10 при пороге 7;
    • у проверки Соответствие JSON Schema — Не прошло;
    • у проверки Вызов инструментов — доля вызванных функций ниже порога, например ½ при пороге 100%.

    Такие оценки выделены красным. Чтобы узнать, к какой проверке относится оценка, наведите на нее курсор.

  3. Нажмите на прогон. Откроется панель Прогон.

Причина ошибки​

В панели прогона собрано все, что нужно, чтобы понять, почему ответ не прошел проверку:

Панель «Прогон»: вопрос, ответ агента, ожидаемый ответ и оценки с обоснованием судьи

Разбирайте прогон в таком порядке:

  1. Прочитайте Оценки. У LLM-проверок здесь обоснование судьи: оно объясняет, что не так с ответом. У проверок-правил — причина, по которой ответ не прошел, например Ответ не соответствует схеме. Чтобы посмотреть порог проверки, наведите курсор на оценку.

  2. Сравните Ответ агента — ответ процесса на вопрос из блока Запрос — с Ожидаемым ответом, то есть эталоном из кейса, если он задан.

  3. Если в кейсе задана JSON-схема или ожидаемые вызовы функций, посмотрите блок Ожидаемое поведение. В нем видно, какие из ожидаемых функций агент вызвал и соответствует ли ответ схеме. Если ответ не в формате JSON, в блоке написано Ответ не является JSON. Если ответ — JSON, но не соответствует схеме, раскройте Подробнее: там до пяти сообщений о нарушенных правилах схемы. Например, сообщение $: required property 'urgent' not found означает, что в ответе нет обязательного поля urgent:

    Блок «Ожидаемое поведение»: ответ не соответствует схеме, в разделе «Подробнее» — нарушенное правило
  4. Если причина по-прежнему неясна, откройте События — журнал выполнения прогона. В нем видно, как работали блоки процесса и на каком шаге возникла ошибка. Чтобы открыть журнал в разделе История запусков, нажмите рядом с заголовком Журнал:

    Блок «События» в панели прогона: кнопка рядом с заголовком «Журнал» открывает журнал в Истории запусков

Оценки и обоснования судьи платформа хранит, пока существует проект. Журналы событий хранятся 3,5 месяца, поэтому у более старых прогонов журнала нет.

Если процесс завершился с ошибкой до ответа, в панели прогона появится сообщение об ошибке, но прогон все равно оценивается. Если прогон испортил сбой внешнего сервиса или ошибка в кейсе, уберите его в архив: нажмите В архив в панели прогона.

Пример: почему агент не прошел проверку

Агент не прошел проверку Выполнение задачи на вопросе «Можно вернуть товар без чека?». Обоснование судьи говорит, что агент потребовал чек, хотя инструкция в кейсе разрешает возврат по номеру заказа. Чтобы исправить ошибку, добавьте правила возврата в промпт агента. Как убедиться, что правка помогла, читайте в разделе Проверка исправления.

Проверка исправления​

Исправление удобно проверять в два шага: сначала на кейсах, где агент ошибся, затем на всем тесте. Первый шаг быстрее и отправляет меньше запросов к LLM, а второй показывает, не сломала ли правка другие ответы.

Перепрогон кейсов с ошибками​

Перепрогон — новый запуск выбранных кейсов вне теста. Он покажет, исправлена ли ошибка, без запуска всего теста.

  1. На странице теста нажмите В «Результатах» в строке запуска. Откроется вкладка Результаты с прогонами этого запуска.

  2. Отметьте прогоны с нужными кейсами и на панели действий нажмите Перепрогнать кейсы:

    Вкладка «Результаты»: отмечены два прогона, на панели действий кнопка «Перепрогнать кейсы»
  3. В окне Перепрогнать кейсы в поле Версия сценария выберите, где пройдут кейсы:

    • На исходных версиях — каждый кейс пройдет на той же версии, что и его исходный прогон. Так вы проверите, повторяется ли ошибка;
    • На новой версии — все кейсы пройдут на версии, которую вы выберете, например на версии с исправлением.
    Окно «Перепрогнать кейсы»: версия сценария, число повторов, переключатель «Оценить теми же проверками» и сводка
  4. Укажите, сколько раз агент ответит на каждый кейс.

  5. Выберите, как оценить ответы:

    • оставьте включенным Оценить теми же проверками, чтобы каждый кейс оценили теми же проверками, судьей и порогом, что и его исходный прогон. Кейсы, у исходных прогонов которых нет основной оценки, останутся без оценки: их число указано в окне в строке без оценки. Если основной оценки нет ни у одного выбранного прогона, переключатель недоступен;
    • чтобы выбрать проверки самостоятельно, отключите Оценить теми же проверками. Проверки оценят ответы с текущими порогами.
  6. Нажмите Перепрогнать кейсы.

В перепрогоне действуют те же лимиты, что и в запуске теста: не больше 1 000 прогонов и 2 000 оценок. Если вы выбрали несколько повторов одного кейса, кейс войдет в перепрогон один раз. Вопрос, эталон и остальные поля кейса платформа берет из исходного прогона, даже если вы уже изменили кейс или удалили датасет.

Перепрогон не попадает в историю теста и не меняет его динамику. На вкладке Результаты в группировке По запускам он отмечен меткой перепрогон, а в столбце Тест у него написано вне теста · из #N, где N — номер исходного запуска. Если вы выбрали прогоны из разных запусков, в столбце написано вне теста.

Запуск всего теста​

Перепрогон проверяет только выбранные кейсы. Когда ошибки исправлены, запустите тест целиком: так вы увидите, не стали ли хуже ответы на другие кейсы.

  1. Убедитесь, что в истории теста есть запуск на версии до правки: с ним вы будете сравнивать. Если его нет, запустите тест на прежней версии.
  2. Запустите тест на версии с исправлением.
  3. Сравните Pass rate и среднее нового запуска и запуска до правки. Динамика сравнивает только с предыдущим запуском теста: если после запуска до правки были другие запуски, например прошлые попытки исправления, сравните Pass rate двух запусков самостоятельно.
  4. Если Pass rate снизился, найдите кейсы, которые перестали проходить проверку.

Сомнительные результаты​

Иногда показатели запуска искажает не процесс, а что-то другое: судья не смог поставить оценку, ответ испортил сбой внешнего сервиса или вы не уверены в оценках судьи. Разберите такие прогоны, прежде чем делать выводы о версии.

Ошибка судьи​

Если судья не смог поставить оценку, вместо нее стоит метка Ошибка судьи. Такая оценка не входит в Pass rate: ошибка его не снижает, но запуск оценен не полностью. Чтобы узнать причину, откройте панель прогона и наведите курсор на метку:

СообщениеПричинаЧто делать
Модель-судья недоступнаИнтеграция судьи удалена, или провайдер модели не отвечает либо вернул ошибку. У моделей с прямым доступом эта ошибка возникает и тогда, когда исчерпан лимит запросов или на счете у провайдера не хватает денег.Проверьте в разделе Интеграции, что интеграция судьи на месте. Если модель подключена с прямым доступом, проверьте счет и лимиты у провайдера.
Закончилась квота у модели-судьиНа балансе аккаунта не хватает J-токенов. Ошибка бывает у моделей, подключенных через Just AI.Пополните баланс J-токенов.
Судья не ответил вовремяМодель не ответила за 60 секунд.Оцените прогон еще раз позже. Если ошибка повторяется, возьмите судьей более быструю модель.
Судья вернул ответ, который не удалось разобратьМодель вернула пустой ответ или ответ без балла и обоснования в нужном формате.Возьмите судьей другую модель, например рекомендуемую в карточке проверки.
Судья не смог оценить прогонЛюбая другая ошибка, например истек срок действия учетных данных интеграции судьи или произошел сбой на стороне платформы.Проверьте срок действия учетных данных и оцените прогон еще раз. Если ошибка повторяется, обратитесь в техническую поддержку.
Нет данных о вызовах инструментов: прогон сделан до обновления платформы или канал их не передалПроверка Вызов инструментов не получила данных о том, какие функции вызвал агент. Так бывает, если процесс не ответил за 90 секунд или диалог прервался из-за сбоя, а также у прогонов, сделанных до того, как платформа начала собирать вызовы функций.Перепрогоните кейсы или запустите тест еще раз.
JSON-схема кейса некорректна — исправьте ее в датасетеПлатформа не смогла проверить ответ по схеме из кейса. Например, схема ссылается на внешний адрес.Исправьте схему в датасете и запустите тест с исправленным кейсом. Если в тесте включен переключатель Фиксировать датасеты, для этого создайте новый тест или скопируйте этот.

Если причина в судье, например модель не ответила вовремя, перезапустите оценку тем же судьей с тем же порогом:

  • чтобы перезапустить оценку одного прогона, нажмите рядом с ошибкой в строке прогона;
  • чтобы перезапустить оценку нескольких прогонов, на вкладке Результаты отметьте их и на панели действий нажмите Перезапустить оценку;
  • чтобы перезапустить оценку всех прогонов запуска с ошибкой судьи, на странице теста раскройте запуск и нажмите Ошибки судьи N.

Особенности перезапуска:

  • Новый запуск не создается. Новая оценка заменяет ошибку и остается основной или дополнительной, как и прежняя.
  • При ошибках Нет данных о вызовах инструментов и JSON-схема кейса некорректна перезапуск не поможет: их причина в прогоне или кейсе, а не в судье. Что делать в этих случаях, смотрите в таблице.
  • Если ошибка повторяется, возьмите другую модель-судью, например модель, которую платформа рекомендует в карточке проверки. Чтобы оценить ею эти же ответы, поставьте дополнительную оценку. Чтобы она оценивала следующие запуски, скопируйте тест с другим судьей.

Испорченный прогон​

Если ответ испортил не процесс, а сбой внешнего сервиса или ошибка в кейсе, уберите прогон в архив. Архивный прогон не входит в Pass rate, среднее и динамику. Платформа сразу пересчитывает показатели запуска, даже если запуск был давно.

Убрать прогон в архив можно в нескольких местах:

  • на вкладке Результаты — нажмите в строке прогона или отметьте несколько прогонов и на панели действий нажмите В архив;
  • на странице теста — раскройте запуск и нажмите в строке прогона;
  • в панели прогона — нажмите В архив.

Под Pass rate запуска появится метка исключено N из M: N прогонов из M в архиве. Если в архив ушли все прогоны запуска, показателей у запуска нет.

Чтобы вернуть прогоны и снова учесть их в показателях:

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

Пока по прогону идет запуск или оценка, убрать его в архив нельзя. Если вы уберете в архив тест, вместе с ним в архив уйдут все его прогоны.

Оценка другим судьей​

Если вы сомневаетесь в оценках судьи, оцените те же ответы другой моделью-судьей или проверкой, которой нет в тесте. Так же можно оценить прогоны теста, который запускали без оценки.

Оценки, которые ставит запуск теста или перепрогон, — основные: по ним платформа считает Pass rate, среднее и динамику. Оценки, которые вы ставите готовым прогонам позже, — дополнительные. Они видны рядом с основными, но показатели не меняют, поэтому сравнение запусков не испортят.

  1. На вкладке Результаты отметьте прогоны в таблице. Чтобы выбрать все прогоны под фильтрами, а не только на текущей странице таблицы, отметьте все строки и нажмите Выбрать все N под фильтрами в первой строке таблицы, где N — число прогонов под фильтрами. С быстрым фильтром Ошибка судьи после этого кнопки Оценить на панели нет: такие прогоны отмечайте на странице таблицы.
  2. На панели действий с выбранными прогонами нажмите Оценить.
  3. В окне Оценить выбранные прогоны выберите проверки и модель-судью для каждой LLM-проверки.
  4. Нажмите Оценить.

Проверки оценят ответы с текущими порогами, а не с теми, что сохранены в тесте. Архивные прогоны и прогоны, по которым еще идет запуск или оценка, платформа пропустит.

В таблице дополнительные оценки обозначены меткой +N доп. рядом с основной оценкой прогона, а в панели прогона — меткой доп.

Прогоны нескольких тестов​

На вкладке Результаты раздела Тестирование качества собраны прогоны всех тестов проекта. Она нужна, когда истории одного теста мало: например, чтобы разобрать вместе прогоны разных тестов и версий, перепрогнать или оценить выбранные прогоны или показать коллеге выборку.

Вкладка «Результаты»: фильтры, быстрые фильтры и таблица прогонов в группировке «По прогонам»

Чтобы перейти сюда к прогонам одного запуска, нажмите В «Результатах» в строке запуска на странице теста:

Строка запуска на странице теста с кнопкой «В «Результатах»»

Вкладка откроется с фильтром по этому запуску.

Таблица показывает прогоны в одной из двух группировок:

  • По прогонам — строка на каждый прогон: кейс, тест, версия, запуск, номер повтора, время ответа и оценки. Эта группировка открывается по умолчанию.
  • По запускам — строка на каждый запуск: Pass rate, среднее, динамика и число прогонов. Чтобы увидеть прогоны запуска, нажмите на стрелку в начале строки.

Над таблицей можно отобрать прогоны по тесту, датасету, версии сценария, проверке, запуску и периоду, а также найти кейс по тексту вопроса. По умолчанию таблица показывает прогоны за последние 7 дней.

В группировке По прогонам есть быстрые фильтры:

  • Без оценки — прогоны, у которых нет ни одной оценки;
  • Ошибка судьи — прогоны, у которых есть оценка с ошибкой судьи;
  • В архиве — архивные прогоны. Без этого фильтра таблица их не показывает.

Фильтры и группировка сохраняются в адресе страницы. Чтобы показать коллеге ту же выборку, отправьте ссылку на страницу.

Одно действие с выбранными прогонами — оценка, перепрогон, архивация или скачивание — может охватить не больше 20 000 прогонов. Если выбрано больше, платформа не выполнит действие: сузьте выборку фильтрами.

Выгрузка в файл​

Чтобы разобрать прогоны вне платформы или передать их коллегам, нажмите Скачать над таблицей. Если вы отметили прогоны, платформа скачает их, а если нет — все прогоны под текущими фильтрами.

Платформа скачает JSON-файл с прогонами и всеми их оценками — основными и дополнительными.