Соблазн при баге — вставить агенту сообщение об ошибке и попросить «почини». Иногда срабатывает, чаще — агент правдоподобно правит не то, маскирует симптом или ломает соседнее. Отладка с агентом работает, когда идёт системно, теми же шагами, что и хорошая отладка вообще, — просто агент выполняет их быстрее.

Сначала воспроизвести, потом чинить

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

  • Соберите с агентом точные шаги, при которых баг проявляется, и данные, на которых он возникает.
  • В идеале — падающий тест, который воспроизводит проблему. Это золото: теперь у агента (и у вас) есть objective-критерий «починено = тест зелёный».

Пока баг не воспроизводится стабильно, любая «починка» — гадание. Плавающий баг так и говорите агенту: «воспроизводится примерно в одном случае из трёх» — это меняет подход.

Гипотеза и локализация — по коду

Дальше — не «почини», а «найди причину». Просите агента рассуждать и опираться на код:

  • «Где формируется это значение и почему тут оно неверное?»
  • «Проследи путь этих данных от входа до места ошибки».
  • «Какие есть гипотезы, почему падает именно так, и как каждую проверить?»

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

Чинить причину, а не симптом

Найдя причину, добивайтесь минимальной правки, которая устраняет её, а не обходного костыля, который прячет симптом. Частые анти-паттерны, за которыми стоит следить:

  • заглушка, гасящая ошибку, вместо исправления того, что её вызвало;
  • «на всякий случай» правка в пяти местах, когда причина в одном;
  • подгонка под конкретный случай вместо исправления общей логики.

Хорошая правка объяснима: понятно, почему она чинит баг.

Проверить, что ушло и ничего не сломалось

Починка не закончена, пока не проверено двумя вопросами:

  1. Баг ушёл? Прогоните тот самый воспроизводящий тест/шаги — теперь должно быть чисто.
  2. Не сломалось ли рядом? Прогоните остальные тесты. Правка могла задеть соседнее — это регресс, и агент про него сам не вспомнит.

Это часть общей приёмки результата ИИ: исправление — такой же результат, который проверяется, а не принимается на веру.

Что это значит на практике

Отладка с агентом — это дисциплина, а не заклинание «почини». Продукт-инженер ведёт агента по шагам: стабильно воспроизвести (лучше тестом) → найти причину по коду → минимально исправить причину → проверить, что баг ушёл и регресса нет. Агент даёт скорость на каждом шаге, но порядок и суждение — за человеком; иначе получаешь быстро сделанную не-починку.

Дальше

Когда код написан и починен, его качество закрепляют: ревью и тестирование кода, а затем — настройка агента, чтобы часть этих проверок он делал сам.