12 июня 2026 г.
Дайте кодинг-агенту ошибку и отойдите в сторону
Главная разница между полезным кодинг-агентом и бесящим — обычно не модель. А то, замкнули ли вы петлю. Агент, который пишет код и останавливается, — гадает. Агент, который запускает код, читает настоящую ошибку и пробует снова, пока тесты не пройдут, — в другой лиге: доля исправлений переваливает за 90% за пару итераций. Агент может починить только то, что видит, так что самое мощное, что вы можете сделать, — дать ему глаза. Вот ровно как.
Если вы пользовались кодинг-агентами, вы знаете два очень разных опыта. Иногда агент ощущается магией; иногда уверенно выдаёт сломанный код, и вы тратите на починку больше, чем сэкономили. Люди предполагают, что разница в модели — умнее справилась бы лучше. Обычно дело вообще не в модели. Дело в том, дали ли агенту увидеть, что случилось, когда его код запустился.
Это самая мощная привычка в агентном кодинге, и она почти неловко проста: дайте агенту запустить код, покажите ему настоящую ошибку и дайте попробовать снова. Когда вы замыкаете эту петлю, цифры сильно двигаются. Исследования восстановления после ошибок находят, что подача провального стек-трейса обратно в контекст агента и итерация, пока тесты не пройдут, поднимают долю исправлений до 90-х за пару попыток, — а одна система самокоррекции сама решила 88% целого класса runtime-ошибок. Агент не поумнел. Он получил возможность посмотреть на провал.
Агент может починить только то, что видит
Вот вся идея в одну строку, от тех, кто строит эти воркфлоу: если агент не видит ошибку, он не может её починить — если он не видит вывод тестов, он даже не знает, что что-то сломано. Агент, который пишет код и останавливается, делает эквивалент написания эссе с закрытыми глазами, которое ни разу не перечитал. Конечно, он неправ половину времени; у него нет обратной связи.
Человек-разработчик так не работает. Вы пишете что-то, запускаете, читаете трейсбэк, говорите «а, null на строке 42» и чините. Эта петля запусти-прочитай-почини — и есть бо́льшая часть того, что программирование собой представляет. Агент, делающий только первый шаг — написать, — упускает часть, где работа становится правильной. Дайте ему петлю — и он начинает вести себя как разработчик, а не как автодополнение.
Хорошая обратная связь против шума
Одна тонкость, которую стоит сделать верно: не вся обратная связь по ошибкам равна. «Тесты упали» говорит агенту почти ничего. Конкретная, действенная версия — «Expected 200, got 401» с номером строки и стек-трейсом — говорит ему ровно, за чем гнаться. Расплывчатые провалы дают расплывчатые догадки; точные провалы дают точные исправления. Так что когда подключаете петлю, передавайте настоящий вывод: полный трейсбэк, номера строк, точное упавшее утверждение. Не суммируйте ошибку для агента — деталь и есть сигнал.
Как это реально сделать
Это не теория, и ничего навороченного не нужно. Хорошие агентные инструменты — Claude Code, Codex, Cursor и другие — уже умеют запускать тесты, читать провалы и чинить в одной петле. Ваша задача — убедиться, что они это делают:
- Дайте ему исполнять, а не только писать. Дайте агенту способ самому запустить код или тесты. Агент без возможности что-либо запустить — вечно гадает.
- Сделайте тесты целью, а не пожеланием. «Сделай, чтобы прошло» — это цель, с которой агент может сверяться. Без теста петле не на чем замыкаться — поэтому собственное «работает» агента ничего не стоит, а проходящий тест стоит.
- Кормите его сырым провалом. Полный стек-трейс, номера строк, упавшее утверждение — не вашим пересказом.
- Дайте ему итерировать, но ограничьте. Пара попыток до зелёного — оптимум; безграничная петля просто жжёт токены. Два-три круга чинят большинство.
- Скажите ему проверять свою работу. Впишите «прогони тесты и подтверди, что они проходят, прежде чем закончить» в постоянные инструкции проекта, чтобы агент перестал объявлять победу до проверки.
Вот и весь рецепт: исполни, покажи настоящую ошибку, крути до зелёного, остановись.
Суть
Инстинкт, когда агент пишет плохой код, — тянуться к модели побольше. Обычно дешевле и эффективнее перестать заставлять его работать вслепую. Кодинг-агент без обратной связи — гадает; тот же агент, который может запустить свой код и прочитать настоящую ошибку, — отлаживает, а отладка — это там, откуда берётся правильный код. Это тот же урок, что и надёжность не из сырого интеллекта: выигрыш не в более умном мозге, а в замкнутой петле.
Так что прежде чем что-то апгрейдить, задайте простейший вопрос: видит ли мой агент, что происходит, когда его код запускается? Если нет — это ваш баг, а не модели. Дайте ему ошибку, дайте крутить до зелёных тестов и отойдите в сторону. Это самый дешёвый апгрейд, что вы когда-либо сделаете, и тот, что превращает бесящего агента в полезного.
Комментарии
Пока нет комментариев
Войдите, чтобы участвовать в разговоре.
Будьте первым, кто оставит мысль.