Найти в Дзене

Какие ошибки и косяки допускает ИИ при вайб‑кодинге

Привет, друзья! Я Юлия, и в этом материале для канала «Юлия Мастер I Digital инженерия» разберу типичные ошибки, которые допускают ИИ‑модели при вайб‑кодинге — подходе, когда вы описываете задачу «на пальцах», а ИИ сам генерирует код. Многим кажется, что достаточно написать промт, нейросеть сама напишет рабочий код. При этом уметь программировать вовсе не обязательно. Однако на деле не всё так безоблачно и просто, как может показаться на первый взгляд. Разберём, почему так происходит и как с этим работать. Вайб‑кодинг (от англ. vibe coding, термин введён исследователем ИИ Андреем Карпатым в начале 2025 года) — подход к программированию, при котором разработчик формулирует задачу на естественном языке, а ИИ генерирует рабочий код. Звучит удобно, но именно здесь и начинаются проблемы. Разберём пять самых частых ошибок. 1. Неполнота кода ИИ может сгенерировать фрагмент, который выглядит рабочим, но не содержит важных частей: Пример: Запрос: «Сделай парсер HTML‑страницы на Python». ИИ выда
Оглавление

Привет, друзья! Я Юлия, и в этом материале для канала «Юлия Мастер I Digital инженерия» разберу типичные ошибки, которые допускают ИИ‑модели при вайб‑кодинге — подходе, когда вы описываете задачу «на пальцах», а ИИ сам генерирует код. Многим кажется, что достаточно написать промт, нейросеть сама напишет рабочий код. При этом уметь программировать вовсе не обязательно. Однако на деле не всё так безоблачно и просто, как может показаться на первый взгляд. Разберём, почему так происходит и как с этим работать.

Что такое вайб‑кодинг

Вайб‑кодинг (от англ. vibe coding, термин введён исследователем ИИ Андреем Карпатым в начале 2025 года) — подход к программированию, при котором разработчик формулирует задачу на естественном языке, а ИИ генерирует рабочий код.

Звучит удобно, но именно здесь и начинаются проблемы. Разберём пять самых частых ошибок.

Топ‑5 ошибок ИИ при вайб‑кодинге

1. Неполнота кода

ИИ может сгенерировать фрагмент, который выглядит рабочим, но не содержит важных частей:

  • не импортирует нужные библиотеки;
  • пропускает обработку исключений;
  • не закрывает файлы или соединения.

Пример:

Запрос: «Сделай парсер HTML‑страницы на Python».

ИИ выдаёт код без import requests или from bs4 import BeautifulSoup. В итоге скрипт не запустится.

Исправленный вариант с обработкой ошибок:

2. Логические ошибки и неверные алгоритмы

Модель может выбрать неоптимальный или просто ошибочный алгоритм, особенно если задача нетривиальна.

Пример: Вы просите «найти дубликаты в списке».

  • Неэффективное решение от ИИ (сложность O(n2)):
-2

Оптимальное решение (сложность O(n)):

-3

3. Уязвимости безопасности

ИИ не всегда учитывает безопасность. Он может:

  • использовать небезопасные функции;
  • не проверять входные данные;
  • оставлять «закомментированные» пароли или ключи в коде.

Пример небезопасного кода: загрузка файлов без проверки расширения может позволить загрузить скрипт с вредоносным кодом.

Безопасный вариант: проверка MIME‑типа и белого списка разрешённых расширений. Это соответствует рекомендациям OWASP Top 10.

4. Неактуальные или устаревшие решения

Языковые модели обучаются на данных до определённой даты. Поэтому:

  • могут предлагаться устаревшие библиотеки;
  • игнорироваться новые фичи языка;
  • использоваться deprecated‑методы.

Реальные примеры:

  • ИИ предлагает использовать urllib2 в Python 3 (устарел, нужно urllib.request).
  • Рекомендует jQuery.ajax() вместо fetch() или axios в веб‑разработке.

5. «Фантазии» и галлюцинации

Самая коварная ошибка. ИИ может:

  • придумать несуществующую функцию или метод;
  • сослаться на библиотеку, которой нет;
  • описать API, которого не существует.

Пример галлюцинации:

«Используй deep_optimize из пакета ai_magic для ускорения вычислений».

На PyPI такого пакета нет — код не скомпилируется.

Почему так происходит

  1. Нечёткое ТЗ. Чем расплывчатее запрос, тем выше шанс ошибки.
  2. Ограниченная память модели. ИИ «помнит» только контекст диалога и данные из обучения.
  3. Статистическая природа генерации. Модель выбирает наиболее вероятные токены, а не всегда правильные.
  4. Отсутствие реального тестирования. ИИ не запускает код, чтобы проверить его работоспособность.
  5. Ограниченная осведомлённость о контексте проекта. ИИ не знает специфики вашей кодовой базы, соглашений по стилю и т. д.

Как минимизировать ошибки

1. Формулируйте запросы точнее

Вместо:

«Напиши код для веб‑скрапинга»

Пишите, как пример:

Напиши на Python 3.11 скрипт для парсинга всех заголовков <h1> с сайта example.com. Используй библиотеки requests>=2.31 и beautifulsoup4>=4.12.

Требования к коду:

  1. Обработай следующие исключения: ConnectionError, Timeout, HTTPError, RequestException. В случае ошибки выведи сообщение в консоль и верни пустой список.
  2. Укажи таймаут 10 секунд для HTTP‑запроса.
  3. Убедись, что текст заголовков корректно декодируется (учти возможную нестандартную кодировку страницы).
  4. Верни список строк с текстом из <h1>. Если заголовков нет, верни пустой список.
  5. Добавь комментарии к ключевым блокам кода (импорты, запрос, парсинг, обработка ошибок).
  6. В конце скрипта добавь пример вызова функции с выводом результата в консоль.

Дополнительно предоставь содержимое файла requirements.txt отдельно после кода.

Здесь отдельно добавлю, что даже написание точного и технически грамотного промта вовсе не гарантирует вам правильного ответа. Я проводила такие эксперименты: писала один и тот же промт для одной и той же нейросети, но с разных устройств. И код получался совершенно разным, причем подчас он получался настолько нелепым, что проще было самой написать код с нуля. То же касается и одного и того же промта, помещенного в разные нейросети. Конечно, в моей практике есть немало кейсов, где вайб-кодинг увенчался успехом. Но у меня до сих пор нет статистики по четкой закономерности, от каких именно критериев зависит правильность написания кода. Такое впечатление, что иногда ИИ зависит от фаз Луны, ретроградного Меркурия и иных астрологических прогнозов:))).

Ладно, вернемся к рекомендациям по минимизированию ошибок.

2. Просите добавить комментарии

Добавьте в запрос:

«Добавь комментарии к каждому блоку кода, объясняя, что он делает».

Это поможет понять логику и быстрее найти ошибку.

3. Проверяйте импорты и зависимости

Всегда убедитесь, что все библиотеки указаны и совместимы. Проверьте их актуальность на PyPI или npm.

4. Тестируйте код поэтапно

Запускайте сгенерированный код небольшими блоками. Так вы локализуете ошибку быстрее.

5. Используйте линтеры и анализаторы

Инструменты подсветят потенциальные проблемы:

  • Python: pylint, flake8, mypy;
  • JavaScript: eslint, prettier;
  • универсальные: SonarQube, CodeQL.

Они найдут:

  • неиспользуемые переменные;
  • небезопасные вызовы;
  • устаревшие методы.

6. Обновляйте промты

Если код не работает, уточните запрос:

«В предыдущем коде ошибка ImportError: No module named 'bs4'. Исправь: добавь импорт from bs4 import BeautifulSoup и укажи в комментариях, что требуется установка beautifulsoup4».

7. Комбинируйте ИИ и экспертизу

Воспринимайте ИИ как помощника, а не замену инженеру. Ваш опыт — главный фильтр качества.

Вывод

Вайб‑кодинг экономит время, но требует бдительности. ИИ — мощный инструмент, но он не застрахован от ошибок: от простых опечаток до критических уязвимостей. И самое главное: ИИ не заменит знаний инженеров и опытных программистов! По крайней мере в том, что касается написания хорошего кода.

Золотое правило: всегда проверяйте, тестируйте и адаптируйте сгенерированный код под свои задачи. Экспериментируйте с вайб‑кодингом, но всегда проверяйте результат. Ваш опыт — главный фильтр качества! Относитесь к ИИ как к помощнику, но не воспринимайте его как замену программиста.

А какие ошибки ИИ в коде встречались вам? Делитесь в комментариях — обсудим!

До новых встреч на канале «Юлия Мастер I Digital инженерия»!