ИИ-журнал

Разбор отличий и сбоев оплачивает владелец, поэтому должно быть видно, за что именно он платит. ИИ-журнал показывает три вещи: какие задачи выполнил ИИ, сколько они стоили и почему какая-то задача вообще не была запущена. Заодно он отвечает на главный вопрос — «а мы точно не платим на каждом прогоне?».

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

Таблица задач

Каждый запрос к ИИ — одна строка. В ней видно тип задачи, её состояние, цель (какой снимок, сборка или тест), время и задержку, израсходованные токены — отдельно входные и выходные — и стоимость. У задач, где ИИ оценивал важность, рядом стоит его уверенность в ответе.

Типы задач в журнале такие:

  • Классификация отличия — понять, что это: ошибка, шум или намеренное изменение.
  • Разбор сборки и пояснение сборки — собрать падения в группы и объяснить их словами.
  • Разбор группы сбоев — уточнить причину внутри уже собранной группы.
  • Генерация покрытия — предложить тест для непокрытого места.
  • Починка теста — подготовить изменение файла теста.
  • Разбор замечания, предложение действия, правка правила или действия — работа по экранам и замечаниям.

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

Итоги и бюджеты

Над таблицей — сводка: общий расход, разбивка по типам задач, средняя задержка и доля сборок, на которых ИИ вообще вызывался. Отдельная полезная цифра — расход на один найденный дефект: считаются только дефекты, подтверждённые человеком из групп сбоев. Так видно реальную цену пользы, а не просто счёт за токены.

У бюджета есть лестница состояний, и она честно называет своё положение:

  • Израсходовано меньше половины — всё в порядке.
  • Израсходовано от половины до 80 % — предупреждение.
  • Израсходовано от 80 до 100 % — критично, пора смотреть расход.
  • Лимит превышен — новые задачи ИИ отклоняются, пока не изменят пределы.

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

Инструменты модели

Отдельной строкой показана работа внешних инструментов, которыми пользуется модель: сколько было вызовов, сколько описаний инструментов ей передали и сколько ответов она получила. Это накладные расходы, которые обычно не видны: описания инструментов тоже занимают место во входных данных и стоят денег. Если они начинают перевешивать саму задачу, это заметно здесь, а не в общем счёте.

Почему отказано

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

  • Потолок токенов на задачу исчерпан.
  • Бюджет починок этого теста исчерпан с его последнего успешного прогона.
  • Бюджет починок этой сборки исчерпан.
  • В проекте уже идёт другая кампания починки.
  • Ошибка повторяется — предыдущая починка уже пробовала её исправить.
  • Визуальный ИИ выключен для этого проекта.

Каждый отказ остаётся в журнале с причиной — он не исчезает молча. По нему видно, стоит ли поднимать пределы или дело в том, что агент и правда не нужен.

Дальше: как понять, какие места приложения не защищены тестами, — в разделе Покрытие.

← Оглавление документации