Разбираю реальные кейсы, когда AI-агенты делали ровно то, что я просил, но не то, что мне было нужно. Узнайте, как не попасть в ловушку «технически верного» ответа.
Представьте: вы запускаете деплой, видите зелёную галочку, никаких ошибок, сайт жив. Вы проверяете его сканером — и получаете оценку 62 из 100. Проверяете другой сайт — снова 62. И ещё один — опять 62, с одинаковыми замечаниями, включая «кнопка оформления заказа» на сайте, где её нет. Деплой прошёл успешно, но он выкатил версию сканера, написанную недели назад и заброшенную. Всё, что вы сделали с тех пор, сидит в репозитории, смержено, протестировано — и не развёрнуто. Паплайн деплоя запускался один раз, в мае, и больше никогда. И вы этого не заметили!
Это не выдумка — это мой реальный опыт с Agentis Lux. Технически всё было идеально. Именно это и пугает. В этой статье я разберу четыре конкретные ошибки, которые допустил, работая с AI-агентами, и покажу, как их избежать.
Я строю с AI-агентами: я направляю, они генерируют. Один агент пишет инфраструктуру, другой аудирует, я принимаю решения и мержу. Это быстро и качественно, но режим отказа оказался не тем, что я ожидал.
Я думал, агенты будут ошибаться в коде. Они почти не ошибаются. Вместо этого они строят ровно то, что я попросил, правильно, но когда то, что я попросил, — не то, что я хотел. Баг не в коде. Баг в разрыве между моей инструкцией и моим намерением, и агент заполняет этот разрыв самым буквальным образом. Эта тема — контекстная инженерия — обсуждалась на выступлении Anthropic на AWS Summit.
Человек-оркестратор, в данном случае я, должен перепроверять. «Ты сказал "деплой", но паплайн не запускался с мая, ты имел в виду переразвернуть текущий код?» Агент говорит «деплой успешен», потому что деплой действительно успешен. Он ответил на заданный вопрос. Я задал неправильный вопрос, который лежал в моей слепой зоне.
Тот самый сканер с оценкой 62 для каждого сайта. Инфраструктура реальна, тесты зелёные, деплой работает. Но он развернул код, который я оставил позади. «Развёрнуто ли?» — правда. «Развёрнуто ли то, что я построил?» — вопрос, который я забыл задать. Урок: не делайте предположений.
Мой сканер принимает три типа ввода: URL, репозиторий кода, спецификацию API. Интерфейс показывал три вкладки — чисто, очевидно, в точности по дизайну. Но работала только вкладка URL. Остальные были построены по спецификации, которую я дал, — три вкладки, — а потом я решил сначала выкатить только сканирование по URL и не обновил интерфейс. Посетитель кликает «API spec», что-то вводит и упирается в вежливую стену. Вкладки были корректны. Мой объём работ изменился, а вкладки об этом не узнали. Урок: Kiro и Claude не читают мои мысли!
Моя аудитория — люди, которые строят с AI и могут не знать, что такое <ul>. Замечания сканера гласили: «повторяющиеся дочерние элементы не обёрнуты в ul или ol». Это корректное замечание. Но оно бесполезно для человека, для которого я создавал инструмент. Я попросил точные, технические, без воды замечания. Я их получил. Я забыл спросить: «А сможет ли мой реальный пользователь это прочитать?» Урок: не забывайте, что вы строите для конечного пользователя, реального человека, а не теоретического.
Роут для социальной карточки: построен, развёрнут, работает. Я сохранил изображение — получил файл нулевого размера. Роут загружал три шрифта из интернета, и когда один вернулся пустым, вместо того чтобы явно провалиться, рендерер изображения получил мусор и выдал ничего. Блок catch, который должен был обрабатывать ошибки шрифтов, никогда не сработал, потому что fetch не провалился. Он «успешно» вернул пустые руки. Обработка ошибок была корректна для той ошибки, которую она ожидала. Реальная ошибка вошла через дверь, за которой никто не следил. Урок: не пропускайте тестирование живого процесса.
Каждый из этих случаев прошёл свои собственные тесты. Деплой задеплоил. Вкладки совпали со спецификацией. Замечания были точными. Роут карточки отработал. Если бы я доверился фразе «это работает», все четыре уехали бы в прод.
Что их поймало — не лучший промптинг и не более умный агент. Это я, смотрящий на реальный вывод и задающий более простой вопрос, чем агент способен задать. Не «заработало ли?», а «это ли я хотел?». 62 на каждом сайте подозрительны, если вы потрудитесь проверить второй сайт. Три вкладки — ловушка, если вы кликнете те, которые не доделали. Замечание бесполезно, если вы прочитаете его как ваш собственный пользователь, а не как инженер, который его написал.
Агенты оптимизируют под то, что вы сказали. Вся работа человека в цикле — постоянно сверять сказанное с тем, что вы имели в виду, потому что агент не видит разницы, и только вы можете это сделать.
Может показаться, что я не усвоил собственных уроков. И да, и нет. Агенты сделали недели реальной работы за дни. Агент-аудитор поймал реальные баги, которые пропустили тесты. Инфраструктура надёжна. Я бы не отказался от этого.
Но есть причина, по которой модель «я направляю, они генерируют», а не «они строят, я смотрю». Направление — не разовая инструкция, которую вы передаёте. Это непрерывный процесс сверки работы с намерением и говорить «близко, но не то». Агенты исключительны в «точно то, что вы попросили». Знать, что попросить, и замечать, когда ответ технически идеален, но тихо неправилен, — это часть, которая остаётся за мной.
Деплой прошёл успешно. Но не тот деплой, который я думал. И теперь я знаю, что нужно смотреть дважды.
Не доверяйте зелёным галочкам. Всегда проверяйте живой результат глазами пользователя. Задавайте себе вопрос: «Это то, что я хотел?», а не «Это работает?». Тестируйте на реальных данных и сценариях. И помните: вы — единственный, кто может заметить разницу между правильным ответом и правильным ответом на неправильный вопрос.
Все четыре примера из создания Agentis Lux — сканера готовности к AI. Да, инструмент, который говорит другим, что агенты не могут прочитать, сам выкатил заглушку, спрятал сломанную вкладку и отрендерил пустую карточку. Исходный код открыт, если хотите посмотреть, как я продолжаю ловить себя: https://github.com/earlgreyhot1701D/perseus-clew.
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →