Добавить в корзинуПозвонить
Найти в Дзене
Охота на математику

От вайбкодинга к агентам CS

Вайбкодинг работает на задачах, которые уже сотни тысяч раз решены и присутствуют в обучающей выборке. Туду-лист, лендинг с формой обратной связи, блог на статическом генераторе, корзина интернет-магазина — эти программы имеют жёстко заданный паттерн. Агент не изобретает архитектуру, а воспроизводит наиболее вероятную последовательность токенов. Почему это приводит к успеху. Агент не делает синтаксических ошибок. Скорость генерации на порядок выше ручного кодинга. Результат выглядит рабочим и часто действительно работает в рамках ожидаемого сценария. Разработчик без глубоких знаний CS получает готовый продукт за часы, а не за дни. Этот успех порождает уверенность. Если агент справился с туду и лендингом, значит метод работает. Значит, можно масштабировать подход на более сложные задачи. Логика кажется безупречной: инструмент, эффективный на малом масштабе, должен быть эффективен и на большом. Мотивированный успехом, разработчик берётся за уникальный проект. У него нет аналогов в обучаю
Оглавление

Диалектика вайбкодинга: от успеха на типовых задачах к краху на уникальных проектах

Тезис: успех вайбкодинга на растиражированных программах

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

Почему это приводит к успеху. Агент не делает синтаксических ошибок. Скорость генерации на порядок выше ручного кодинга. Результат выглядит рабочим и часто действительно работает в рамках ожидаемого сценария. Разработчик без глубоких знаний CS получает готовый продукт за часы, а не за дни.

Этот успех порождает уверенность. Если агент справился с туду и лендингом, значит метод работает. Значит, можно масштабировать подход на более сложные задачи. Логика кажется безупречной: инструмент, эффективный на малом масштабе, должен быть эффективен и на большом.

Антитезис: перенос на уникальные проекты и первая неудача

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

В этот момент вайбкодинг начинает разрушаться. Перечислим конкретные точки отказа.

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

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

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

Агент не различает случайную сложность от сущностной. Он одинаково уверенно генерирует костыль и правильное решение, потому что для него это просто паттерны токенов. Без CS-мышления программист не может отличить одно от другого.

Итог первой неудачи: код есть, но он не работает в production. Или работает, но падает под нагрузкой. Или его невозможно изменить, не сломав что-то ещё. Разработчик тратит больше времени на отладку сгенерированного кода, чем потратил бы на написание своего.

Синтез: возврат к CS как условие работы с уникальной сложностью

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

Переход к синтезу выглядит так. Программист с CS-мышлением продолжает использовать агентов, но иначе. Он не поручает агенту проектировать архитектуру. Он проектирует её сам, используя знание теории сложности, типов, параллелизма, композиции. Агенту он делегирует реализацию внутри жёстко заданных границ.

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

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

Вывод

Успех вайбкодинга на туду и лендингах — указание на его природу. Он воспроизводит уже решённые задачи. Мотивация переходить к уникальным проектам логична, но без CS она ведёт к провалу. Не потому что вайбкодинг плох, а потому что уникальная сложность требует мышления, которое не сводится к предсказанию следующего токена.

CS в этом контексте — не альтернатива агентам, а условие их эффективного применения на границе известного и нового.