Как не стать вайбкодером

Как не стать вайбкодером

Вайбкодинг, термин Андрея Карпати из OpenAI. Описываешь нейросети, что хочешь, она генерирует код. Не думаешь, не проектируешь, не читаешь результат, просто «вайбишь». Для прототипа на хакатоне нормально. Для продукта, который приносит деньги, катастрофа.

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

Почему вайбкодинг ломается

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

В энтерпрайзе десятки сервисов, сотни тысяч строк, годы компромиссов. Ни одна модель не удержит это в окне контекста. А чем больше туда запихиваешь, тем хуже качество. Модель начинает путать детали и уверенно выдавать ерунду.

И главное: нейросеть никогда не скажет «я не знаю». Всегда даст ответ. Даже если он полная чушь.

Главный принцип: не кормить агенту весь проект

В серьёзных продуктах сложность это не код, а взаимосвязи между сервисами, неявные контракты, побочные эффекты.

Решение: декомпозиция. Берёшь задачу, разбиваешь до уровня одного модуля. Агент получает только релевантные файлы, нужные интерфейсы, конкретные требования. Всё остальное для него не существует. Это снижает когнитивную нагрузку, не для человека, а для модели.

Шесть приёмов, которые ограничивают ошибки

Жёсткие правила в промпте. Какой стек, какие паттерны запрещены, какие библиотеки использовать. Не рекомендации, ограничения. Без этого агент каждый раз изобретает свой подход.

Контекстные файлы вместо всего репозитория. Краткое описание модуля, сигнатуры соседних сервисов, примеры кода. Как вводная для нового разработчика, только для агента это ещё критичнее, у него физический лимит на объём текста.

Примеры вместо инструкций. Вместо двух страниц «как писать эндпоинт у нас», один хороший эндпоинт и задание «сделай аналогично». Модель копирует структуру, именование, обработку ошибок, всё, что словами описывать долго.

Автоматические проверки. Линтеры, тесты, статический анализ, страховка от галлюцинаций. Код агента проходит тот же CI/CD, автоматическая сборка и проверка, что и код человека. Лучше всего, когда агент сам видит результаты и правит ошибки.

Ограничение зоны действия. Агент работает в своей ветке, не трогает конфигурацию базы, не пушит в main. Создаёт пулл реквест, дальше решает человек.

Обязательное ревью. Код от нейросети, черновик. Смотреть на безопасность, N+1 запросы, совместимость с существующими контрактами. Серьёзнее, чем за стажёром, стажёр хотя бы помнит контекст.

Где выигрыш, а где риск

Работает: рутинный код, CRUD, бойлерплейт, маппинг, генерация тестов, предварительный анализ пулл реквестов.

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

Итого

Разница между вайбкодером и инженером с LLM в контроле. Вайбкодер надеется, что нейросеть разберётся. Инженер знает, что не разберётся, и выстраивает процесс так, чтобы это было не важно.

Декомпозиция, жёсткие правила, автопроверки, ревью, это не тормозит скорость. Это и есть скорость, просто взрослая.

Начать дискуссию