Сегодня многие смотрят на AI-агентов как на «разработчиков в коробке»: дал задачу — получил готовое решение. На практике всё работает не совсем так.
Да, современные LLM и агентные инструменты умеют быстро производить много кода. Но есть проблема: количество сгенерированного кода ещё не означает качество инженерного решения. Модель может уверенно пойти в неверную сторону, выбрать чрезмерно сложную архитектуру, начать строить лишнюю инфраструктуру или решать задачу окольным путём. Именно поэтому работа с AI-агентом во многом напоминает code review. 
Если вы хорошо умеете ревьюить код, особенно на уровне архитектуры и структуры решения, то, скорее всего, вы будете эффективно использовать и AI-агентов.
Почему? Потому что основная ценность при работе с агентом — не в том, чтобы исправлять каждую строчку после него, а в том, чтобы регулярно задавать вопрос:
«Он вообще решает задачу правильным способом?»
Это намного важнее, чем спорить о названии функции, порядке условий или выборе между .reduce() и .map().filter().
Где AI-агенты ошибаются чаще всего
AI-инструменты часто делают одно и то же: они выбирают слишком тяжёлое решение там, где достаточно простого:
агент пытается реверс-инжинирить фронтенд и вытаскивать данные обходным способом, хотя эти данные уже доступны напрямую в более удобном виде;
агент хочет строить полноценную инфраструктуру фоновых задач, очередей и polling-механизмов там, где достаточно обычного неблокирующего запроса с клиента;
агент охотно наращивает сложность, если его не остановить вовремя.
Это очень похоже на ситуацию с неопытным, но энергичным разработчиком: он может вложить много усилий в реализацию первой пришедшей в голову идеи, не задаваясь вопросом, является ли она вообще хорошей. Работа AI-агента похожа на работу с мотивированными junior-разработчиками — только без гарантии, что со временем у них появится зрелое инженерное суждение. 
Почему «vibe coding» упирается в потолок
Отсюда вытекает и критика чистого «vibe coding». Если человек не умеет заметить, что модель ушла не туда, он довольно быстро оказывается в ловушке:
тратится время;
тратятся токены;
растёт сложность кодовой базы;
ухудшается способность агента дальше в ней ориентироваться.
Когда таких ошибок становится несколько подряд, проект начинает вязнуть.
Решение становится всё менее управляемым, и в какой-то момент агент уже не помогает, а только ускоряет накопление хаоса.
Плохой code review и плохая работа с AI — это одно и то же
Одна из самых частых ошибок в code review — смотреть только на тот код, который уже написан, и почти не думать о коде, который вообще можно было не писать.
Есть ревьюеры, которые:
внимательно проходят diff построчно;
находят мелкие шероховатости;
предлагают переименования;
спорят о стиле; но почти не задают вопрос:
«А это вообще должно быть реализовано именно здесь и именно так?»
С AI-агентами такой подход особенно вреден. Если вы сосредоточены только на косметике, вы упускаете более важное:
агент может уверенно строить архитектурный тупик
Лучший review — структурный
Он учитывает контекст за пределами текущего diff’а:
можно ли переиспользовать уже существующую систему;
можно ли взять данные из более правильного источника;
можно ли упростить решение;
можно ли вообще обойтись без новой подсистемы.
Хороший ревьюер не просто шлифует реализацию, а сокращает объём лишнего решения. И это именно тот навык, который делает человека сильным оператором AI-агентов.
Какие типы ревьюеров хуже работают с AI:
Придирчивый построчный ревьюер
Такой человек:
бесконечно правит мелочи;
просит заменить один вызов другим;
спорит о форме записи;
но может пропустить фундаментальную ошибку в подходе.
С AI это превращается в постоянную микрокоррекцию: агент снова и снова генерирует код, а человек бесконечно полирует уже ошибочно выбранное направление.
Ревьюер-«штамп»
Такой человек слишком доверяет результату:
«ну вроде сгенерировалось»;
«тесты зелёные»;
«выглядит правдоподобно».
С коллегами высокого уровня это ещё иногда работает. Но с junior-разработчиками — уже хуже. С AI-агентами — ещё хуже, потому что уверенность модели и корректность решения не одно и то же. 
Что значит «хорошо уметь пользоваться AI»
Хорошая модель взаимодействия сегодня — не «полностью автономный AI-сотрудник», а скорее centaur chess для разработки: сильный инженер + компьютерный помощник. И в этой связке человек ценен не скоростью печати и не способностью написать цикл. Его ценность — в инженерном суждении:
Распознать плохую архитектуру
Остановить усложнение
Выбрать более простой путь
Держать систему в здравом состоянии
Практический вывод
Если вы хотите лучше использовать Claude Code, Codex, Copilot и подобные инструменты, прокачивайте не только prompt engineering, но и навыки хорошего code review:
оценку архитектуры;
чувство соразмерности решения;
умение переиспользовать существующие механизмы;
умение замечать, где задача решается слишком сложно;
привычку спрашивать:
«А нельзя ли проще?»
Именно это сегодня отличает человека, который просто «запускает AI», от человека, который действительно получает от него инженерную пользу.
Комментарии (6)

kuza2000
03.03.2026 04:16Никогда не пытаюсь написать "промпт". Просто обсуждаю задачу с агентом в форме диалога, потом прошу написать план, задать вопросы. После этого корректирую план, отвечаю на вопросы. Когда все устраивает, разрешаю реализацию. С топовыми сетями типа опуса 4.6 получается идеальная реализация и работает почти всегда сразу, без отладки. С агентами похуже нужно больше направлять его и больше детализировать план, но тоже получаю хороший результат, только с большими усилиями.
Самое важное - ревьюить план, а не код. В коде ошибается очень редко, а в плане - да, может пойти не по тому пути. В этом я согласен с автором статьи.

ToniDoni
03.03.2026 04:16А вы пробовали написать хороший reviewer.md и ревьюить тоже иишкой, раз уж взялись за систематизацию знаний о ревью?

wanhelsing Автор
03.03.2026 04:16написать хороший reviewer.md
У меня пока такой (для Claude):
---name: my.code-reviewdescription: Perform a code reviewdisable-model-invocation: true---Perform a code review of the last commit in this branch. Flag unused/dead code, duplication, public methods that should be private, mutation of input parameters, missing readonly annotations, common code smells. it('test description') - 'test description' should correspond to the tested functionality. Check if any new code could be replaced with existing Fabric.js built-in functions or third-party geometric 2D libraries (think thoroughly, search the web). Check if vector operations could be replaced with Fabric.js util.* methods. Check every new method and make sure there are no existing methods that do the same thing.тулза для 2D рисования
Zoolander
Я в agents.md записал - сначала создаём файл задачи с описанием, анализом существующего кода и пишем два варианта решения - одно предельно KISS с минимальными правками, второе по уму
И знаете, ни разу не было, чтобы он в Kiss варианте предложил какой-то ООП головного мозга. Часто, особенно с багами, в первом варианте он дает реально решения в несколько строчек
Пользуйтесь.
Ps это уже не гворя о том, что оба варианта я с ним обсуждаю, прежде чем разрешить работать.
wanhelsing Автор
Интересный подход. Я сначала его пытаю в Plan Mode, и только когда всё устроит - нажимаю принять все правки без обсуждений.
kuza2000
Мне что-то Plan Mode не зашёл. Но план использую всегда, просто прошу агента написать план и задать вопросы.