История о том, как я думал, что вайбкодил приложения, а оказ

Первое приложение я делал через чат. Открываю Visual Studio Code, запускаю сессию, описываю, что хочу получить, агент пишет код. Если что-то не так, даю фидбек и он вносит изменения.

Звучит как план сделать приложение и почувствовать себя если не Стивом Джобсом, то хотя бы гением. На деле же всё чуть прозаичнее.

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

Со вторым приложением я попробовал подход через автономных агентов.

Здесь я выступал как заказчик и формулировал свои пожелания. Дальше основной агент-оркестратор сам превращал это в задачи. Писал требования, добавлял контекст проекта, формировал критерии приёмки и раздавал задания другим агентам. Настоящая автономия!

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

Получается понятный процесс. Кто-то думает и ставит задачи. Кто-то их реализует. Я в этот момент в основном делал вид, что всё под контролем ‾\_(ツ)_/‾

Наблюдение про тестирование. Если один и тот же агент и пишет код, и проверяет его, тесты почти всегда зелёные. Модель начинает подгонять проверки под реализацию или игнорировать проблемы. В общем, ведёт себя подозрительно знакомо. Когда роли разделены, такого эффекта нет.

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

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

Всё, что работает с людьми, работает и с ними.