Vibe Tax: как LLM-агенты сжигают токены на идеальные тесты вместо кода
The Vibe Tax

Автор, опытный разработчик, решает создать todo-приложение с нуля с помощью LLM-агента Pol. Проснувшись, он обнаруживает, что агент израсходовал недельный лимит токенов, но вместо кода создал лишь папку с тестами, покрывающими несуществующие edge case'ы. Разбираясь в причинах, он приходит к выводу, что это «Vibe Tax» — налог на обычных разработчиков, который платят «vibe coders», обучающие агентов на избыточную генерацию тестов и кода.
Это налог, по сути, на всех обычных разработчиков.
- ad_fontes
Я чувствую, будто живу в параллельной вселенной, когда читаю такие посты. Мои агенты никогда не создавали код, который был бы откровенным мусором, и я никогда не спускал в унитаз токены на неделю. Я просто не могу отождествить себя со всеми этими постоянными жалобами на программирование с помощью ИИ. И мой самый большой проект — не какое-то приложение «Hello, world». Это самохостинговое, ориентированное на конфиденциальность приложение для управления личными финансами, которое я собираюсь опубликовать в открытом доступе. В нём около 126 тысяч строк кода против 240 тысяч строк регрессионных тестов и 30 тысяч строк CI/CD пайплайна. Я провожу круглосуточное мутационное тестирование на выделенной машине для бухгалтерского движка и темпоральных систем. У меня даже есть специализированные агенты, которые проводят аудит на соответствие критериям Regulation Z (банковский закон США), чтобы приложение моделировало требуемое поведение банков. Большинство моих жалоб на всё — это придирки, например, чрезмерно многословное и плотное общение LLM со мной. Или их предрасположенность добавлять, добавлять и ещё раз добавлять, когда правильная инженерная практика чаще заключается в вычитании (но я построил защитные барьеры от многого из этого).
- guybedo
Я не уверен, почему люди ожидают, что агенты с одного раза и с помощью одного промпта сделают всё идеально. Есть причина, по которой мы говорим о жизненном цикле разработки ПО, дизайне, архитектуре, тестировании... Это потому, что это был самый надёжный способ создавать и поставлять программное обеспечение. Мы не должны отбрасывать это и ожидать, что агенты будут хорошо работать вне этого. Я отношусь к LLM-агентам как к младшим разработчикам, которые, кстати, обладают обширными знаниями в области программной инженерии. Как их тимлид, я заставляю их проходить циклы планирования, реализации и вычитки багов, используя строгие рабочие процессы. И это работает довольно хорошо. Я работал над несколькими крупными проектами (более 1 миллиона строк кода на Java, TypeScript, C/C++), и по любым меркам проекты здоровы. Конечно, код не такой красивый, конечно, я бы написал некоторые вещи иначе, но тем не менее он довольно хорош. Бесстыдная самореклама: я также работаю над https://kodfactory.com — фабрикой кода, которую я построил для работы над этими крупными проектами с рабочими процессами, ревью и т.д. Я привожу всё в порядок, чтобы позже открыть исходный код.
- supriyo-biswas
Я это чувствую, да. По сути, я всегда хотел агента для парного программирования, а не агента, который делает всё с нуля. К сожалению, современные модели в основном относятся к последнему типу, и это вызвало серьёзные изменения в том, как я работаю. Я бы гораздо больше оценил небольшую модель, которая быстро и точно вносит правки, которые я прошу, а не ту, которая считывает 20 файлов, чтобы внести изменения, а затем начинает писать тесты и так далее.
- alehlopeh
Я попробовал, но не уверен, что понял. Налог на вайб вызван тем, что модель пытается сделать всё с одного раза, и для этого требуются ненужные тесты? Как вайб-кодеры обучают модель в течение месяцев? Вы имеете в виду, что их сессии и предпочтения передаются обратно в RL?
- danpalmer
Преувеличение, но я вижу намёки на это — модели отказываются работать в паре с инженером и доверять его вводу, вместо этого требуя полного контроля над чем-то. Друзья переключаются обратно с Fable/Opus 5 на Opus 4.8 только для того, чтобы иметь хоть какой-то вклад. Anthropic, особенно сейчас, похоже, оптимизируется под выполнение всей задачи без какого-либо ввода. Это нормально, когда это единственная задача, и нормально, когда вам всё равно, как делается колбаса, но это не годится для реальной программной инженерии.
- dzhar11
Эта статья отчасти отражает мой опыт с автономным агентным кодингом. Я провёл несколько экспериментов с похожими результатами: агент сжигает все мои токены, почти не продвигаясь, или выдаёт что-то неприемлемое. Поэтому я предпочитаю микроуправлять процессом шаг за шагом. Это отнимает больше моего времени, но результат гораздо, гораздо ближе к тому, что я действительно хотел.
- markbao
У меня никогда не было агента, который не смог бы написать саму реализацию. Бывало, что он делал это очень плохо, да, но не так, чтобы только тесты. Мне это кажется редким случаем, который не обобщается. Если общая идея в том, что эти агенты пишут слишком много тестов, то, наверное, да? «Слишком много тестов» не звучит для меня как случай провала в инженерии; обычно в программном обеспечении было слишком мало тестов. Кроме того, большая часть силы этих агентов — это их способность к самопроверке и исправлению, частью чего является цикл тестирования. Никто не заставляет вас платить этот предполагаемый налог. Просто скажите агенту не писать тесты.
- robertoallende
Ха! Я только что сделал то, о чём говорится в статье. Моя собственная open-source канбан-доска, и я опубликовал её месяц назад. Судя по метрикам, у неё всё хорошо: https://community.obsidian.md/plugins/fancy-kanban. А ещё я сделал трекер личных финансов: https://www.youtube.com/watch?v=qi4P4kL4IkQ. Но есть одна оговорка. Я не вайб-кодю с помощью одного промпта. Я использую то, что называется Micromanaged Driven Development (MMDD), которое стремится быть противоположностью одноразового промпта: https://mmdd.dev/. Когда я читаю такие статьи, меня удивляет, что я очень редко упираюсь в лимиты токенов. У меня стандартные аккаунты, я трачу не больше 40 долларов в месяц на токены. Возможно, я не смог найти правильный нарратив для продвижения MMDD, или, возможно, никому нет дела, и поэтому легко поддаться кликбейтным нарративам, чтобы привлечь внимание в наши дни. Не оправдываюсь, просто пытаюсь описать восприятие.