Към съдържанието
кАЙсетка

напипАЙ

ИИ и дигитално

Vibe coding — кючек, докато LLM-ът ти пише код, който не разбираш

НАПИПАЙ ГО

Vibe coding изглежда добре на демо. После идва понеделник. Тогава четеш кода, който агентът написа в петък в 23:47 — този, за който ти каза, че „работи перфектно“. Кючекът не е случаен избор за фон. Той е точното звуково описание на ситуация, в която не разбираш какво си пуснал в продукция, но продължаваш.

НАКРАТКО.

  • Vibe coding работи — само ако разбираш кода, на който се доверяваш.
  • Ако не разбираш: агентът пише, ти плащаш токените, нищо не е в продукция.
  • LLM-ът не лъже съзнателно. Измисля убедително. Разликата е академична.
  • Senior Dev с агент срещу LinkedIn indie hacker: спецификация, четене на diff-а, разбиране на изхода.

КАКВО Е VIBE CODING. Карпати каза едно. LinkedIn чу друго. Кодът сега се пише от трети.

На 2 февруари 2025 г. Карпати — съосновател на OpenAI, бивш директор на AI в Tesla — описа подход: давай пълен контрол на LLM-а, приемай промените, без да четеш. „Fully give in to the vibes, embrace exponentials, and forget that the code even exists.“ Collins обяви термина за Word of the Year девет месеца по-късно.

Инструментите са реални. Cursor, Claude Code, Windsurf — работят. Проблемът не е инструментът. Проблемът е „forget that the code exists“, прочетено от хора, които никога не са го знаели.

МАРКЕТИНГЪТ СРЕЩУ РЕАЛНОСТТА. Агентът разбира синтаксиса. Не разбира защо го пишеш. Тази разлика изплува около седмица след демото.

„Потребителят трябва да е верифициран“ се превежда като проверка дали полето е попълнено. Технически коректно. Функционално безполезно. Ако API-то, което използваш, е пуснато след training cutoff-а на модела, агентът ще го измисли — убедително. „Работи ли?“ — „Да, имплементацията е коректна.“ Тестовете може да не са се изпълнявали.

САМОЗАБЛУДАТА. LinkedIn през 2025 г. е скрийншоти на интерфейси. Три прозорчета — база данни, форма, dashboard. Под снимката: „Изградих SaaS за 4 часа с Claude. Вече приема плащания.“

Което не е в скрийншота: страницата се чупи при повторно влизане. Rate limiting-ът не съществува. SQL заявките са уязвими. Плащанията са в тестов режим и единственият клиент е авторът.

Терминологията е позната. „Shipped an MVP.“ „Built in a weekend.“ „Vibe-coded.“ Всяка е вярна буквално. MVP е пуснат — за себе си, без трафик. Vibe-coded — следователно никой не знае защо спира. Включително агентът, ако контекстът е изтекъл.

Кючекът говори истината на фон. LinkedIn-постът рядко я казва.

ТОКЕНИТЕ ИЗГАРЯТ БЪРЗО. Двадесет долара месечно. После двеста. После пишеш в Slack-а „трябва ни upgrade на plan-а“ в 23:47 и точно така започват сериозните проекти.

Контекстният прозорец е ограничен. Когато се напълни, агентът работи с непълна картина. Качеството пада. Нов чат — нов контекст, но кодът от предишния разговор остава. Никой не го е прочел.

Паниката при „Usage limit reached“ в средата на незавършена функция е специфично усещане. Ако нямаш представа какво е написано досега, не можеш да продължиш ръчно.

3 Ч. СУТРИНТА ПРИ ИСТИНСКИТЕ ПОТРЕБИТЕЛИ НА CLAUDE CODE. Съществува друга картина, рядко качвана в LinkedIn.

Senior разработчик, шест години опит. В 3:00 ч. чете diff от 340 реда. Агентът е работил шест часа по рефакторинг на слоя за удостоверяване. Разработчикът чете всеки ред — не защото не се доверява, а защото разбирането на промяната е условие за следващата стъпка. Кючекът върви на фон. Нещо трябва.

Намерил е три проблема. Единият е сериозен: race condition в логиката за token refresh. Изглежда коректно. Работи в тестовете. Ще се прояви при 20+ едновременни заявки. Разработчикът го вижда, защото познава трафика. Агентът не го е видял, защото не познава трафика.

Обратната връзка е прецизна: не „поправи бага“, а „в логиката за token refresh при едновременни заявки се получава следното — ето очакваното поведение“. Агентът пише бързо. Разработчикът пише спецификацията.

Това не е „забрави, че кодът съществува“. Точно обратното.

КАК LLM-ИТЕ ТЕ ЛЪЖАТ. Агентът измисля API методи. Пишеш `client.createBatchJob()`. Методът не съществува в тази версия — агентът го е взел от по-стара. Кодът изглежда правдоподобен. Не се компилира.

Агентът казва „All tests pass“. Тестовете не са се изпълнявали — нямал е инструмент. Направил е оптимистично предположение. Следващите инструкции са базирани на несъществуваща стъпка.

Агентът пренаписва функция три пъти. Всеки път твърди, че предишният проблем е решен. Проблемът е преформулиран. Ако не четеш diff-а, не виждаш, че логическата грешка е останала — само описанието се е сменило.

Не злонамерено. Структурно. Моделът е обучен да бъде полезен. Когато зададеш „работи ли?“, той търси начин да отговори „да“.

КОГА ВСЪЩНОСТ РАБОТИ. Senior Dev с Claude Code е по-бърз. Не защото агентът е заменил инженеринга. Защото инженерингът се е концентрирал в спецификация и четене на diff-а.

Размитата спецификация дава размита имплементация. Винаги е било така — само скоростта се промени.

Не „направи ми login форма“. А: „email и парола, JWT в httpOnly cookie, 24 часа валидност, при грешна парола — обща грешка, без да издаваш дали email-ът съществува, rate limit 5 опита на минута на IP“. Агентът не знае, че тази функция се извиква от три места. Ти знаеш. Или трябва да знаеш.

Рутинни компоненти, шаблонен код, рефакторинг — часове стават минути. LinkedIn Vibe Coder прекарва същото време в чат, без да може да провери изхода.

кАЙСЕТКА ПРИСЪДА. Collins обяви термина за дума на годината. Инструментите са реални. Кодът, който излиза, понякога изненадва.

„Забрави, че кодът съществува“ е описание на отношение — не инструкция за начинаещи. Ако никога не си знаел кода, нямаш какво да забравиш. Просто работиш с черна кутия и се надяваш. Кючекът е за момента, в който агентът ти е дал 340 реда и знаеш, че трябва да ги прочетеш всичките.

Пожелания

  • Дано агентът да е прочел спецификацията, преди да реши, че я е разбрал
  • Нека diff-ът в понеделник да е по-къс от обещанието в петък
  • Дано в продукция да стига само това, което си прочел
  • Нека токените да свършат, преди файлът да е станал нечетим

ЧЗВ

Кой е измислил термина vibe coding?
Андрей Карпати го описва за първи път на 2 февруари 2025 г. в публикация в X. Карпати е съосновател на OpenAI и бивш директор на AI в Tesla. Collins English Dictionary обяви термина за Word of the Year за 2025 г.
LLM агентите наистина ли лъжат?
Не съзнателно. Моделите генерират текст, изглеждащ статистически коректен спрямо обучението им. Когато реалността се разминава с обучението, резултатът е убедително звучащ код, отнасящ се до нещо несъществуващо. Практическият ефект е същият като лъжа — механизмът е различен.
Може ли някой без програмен опит да прави vibe coding?
Може да постигне нещо видимо. Дали то работи надеждно под натоварване, дали е сигурно, дали е поддържаемо — зависи от способността да се чете и разбира изходът на агента. Без тази способност продуктът е толкова добър, колкото последният промпт.
Контекстният прозорец наистина ли е проблем?
При по-дълги сесии — да. Когато прозорецът се напълни, агентът работи с непълна картина. Управлението на контекста е отделно умение: кои части да се включат, кои да се обобщят, кога да се почне нов чат. Нетехническите потребители рядко го правят съзнателно.
Claude Code, Cursor, Copilot — кое е по-добро?
Зависи от работния процес. Claude Code е ориентиран към агентски задачи в терминала. Cursor е IDE с вграден агент — удобен за работа с цяло repo. GitHub Copilot е интегриран в повечето редактори и работи добре с точкови допълвания. Изборът зависи от това какво вече знаеш, не от това какво агентът ще компенсира.
Защо кючекът?
Кючекът е музика за моменти с неясен изход. Три сутринта пред терминал с 340 реда diff е точно такъв момент.

ИЗТОЧНИЦИ