DeFi

Первая крупная ошибка из-за кода, написанного ИИ: анализ и уроки на будущее

DeFi
Our first outage from LLM-written code

История первого серьезного сбоя на сервисе sketch. dev, вызванного кодом, написанным с помощью больших языковых моделей.

В современном мире программирования искусственный интеллект и большие языковые модели (LLM) уверенно входят в повседневную разработку. Их потенциал значительно ускоряет процесс написания кода, сокращает рутинные задачи и может помогать решать сложные проблемы. Однако вместе с новыми возможностями появляются и неожиданные вызовы, как это продемонстрировал недавний случай на популярной платформе sketch.dev, где использование кода, сгенерированного LLM, привело к серии серьезных сбоев в работе сервиса. Инцидент произошел 15 июля 2025 года и вызвал несколько мини-аварий, впоследствии оказавшихся чем-то большим.

Вначале казалось, что новая версия продукта стабильна, но спустя некоторое время CPU сервера неожиданно начал увеличивать нагрузку, что постепенно привело к загрузке системы и замедлению работы всего сервиса до практически неприемлемого уровня. После детального анализа производительности и ресурсов стало понятно, что причина катастрофы кроется в работе базы данных. Были выявлены чрезвычайно сложные SQL-запросы, которые выполняли множественные полные сканирования таблиц. В обычных условиях такие операции сильно нагружают сервер базы данных, особенно если таблицы объемные и индексация недостаточна. Гипотеза была проста – нагрузка достигла критического уровня, при котором база данных перестала справляться, что и вызвало замедление всего сервиса.

Команда разработчиков приняла решение отредактировать SQL запросы, направив их на оптимизацию и снижение нагрузки. Нововведения были быстро внедрены, и система показала кратковременную стабильность. Однако спустя некоторое время снова началась аналогичная проблема – сначала резкий рост нагрузки на процессор, а затем системный тормоз. Причина проблемы стала понятна после тщательного мониторинга и обмена мнениями: её запускал специфический путь выполнения кода, который в свою очередь зависел от активности одного пользователя – CEO компании. Чтобы предотвратить дальнейшие сбои, при перезапуске системы руководство временно заблокировало доступ CEO к сервису.

Дальнейшее изучение позволило выстроить полную картину происходящего. Общий анализ показал, что проблема не была связана напрямую с базой данных, хотя там и наблюдалась конкуренция процессов. Вместо этого ключевой фактор – недавно переработанный код, который был перемещен из одного файла в другой. Эта модификация стала роковой. Сложность в том, что эта часть программы была переписана и отрефакторена с помощью искусственного интеллекта – языковой модели, которая производила изменения на основе полученного контекста, а затем изменения проверялись людьми.

Написанный и внедренный ИИ код имел небольшую, но критическую ошибку, которая изменила логику работы цикла для обработки запросов к API Github со следующего: Ранее в оригинальном коде при обнаружении ошибки во время получения репозиториев выполнялся выход из цикла с помощью команды break. Это означало, что в случае ошибки запросов дальнейшая обработка останавливалась, предотвращая излишнюю нагрузку. В новом варианте, созданном ИИ, команда break была изменена на continue, что по логике означало, что в случае ошибки программа должна была просто пропустить текущий шаг и продолжить цикл. Однако из-за этого изменения возникла бесконечная петля, которая постоянно повторялась при ошибках, не позволяя системе перейти к обработке других задач. Именно эта некорректная логика вызвала бесконечные SQL-запросы к базе и, как следствие, рост нагрузки на процессор.

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

Технически ИИ агент в данном случае попытался угадать, как исправить код локально, но сработал конфликт между механизмом транскрипции изменений и локальным прогнозированием текста. Локальное предсказание победило и внесло ошибку, которую разработчики не заметили при ревью. Таким образом, ошибка всего лишь один неверный символ или слово изменила работу всего приложение. Осознав эту уязвимость, команда sketch.dev оперативно внедрила принципиально новый механизм работы с патчами.

Теперь их агент LLM может использовать буфер обмена, который позволяет копировать код целиком, без риска потерять важные детали. Кроме того, внедряется автоматическое выравнивание отступов, особенно актуальное для языков с чувствительностью к форматированию, например Python. Хотя опыт использования новых инструментов все еще в начальной стадии, первые результаты демонстрируют серьезное улучшение качества автоматически сгенерированного кода. Очень важным в будущем станет развитие систем контроля изменений на уровне частей кода, а не только целых файлов, как сейчас это делает Git. Некоторые специалисты предлагают добавить возможность отслеживания и проверки изменений между несмежными фрагментами кода, что позволило бы предотвращать подобные ошибки при больших рефакторингах.

Данный инцидент становится не просто локальной проблемой одной команды, а наглядным кейсом для всей индустрии разработки программного обеспечения, которая все больше интегрирует ИИ в свои процессы. История skethc.dev напоминает, что несмотря на мощь и удобство больших языковых моделей, контроль качества и тщательное тестирование остаются незаменимыми элементами. Более того, ситуация подчеркивает, что идеальное взаимодействие между человеком и ИИ пока еще требует совершенствования инструментов ревью, отчетности и обнаружения изменений. Если до недавнего времени ошибки в коде появлялись лишь по невнимательности, то сейчас добавились риски, связанные с особенностями генерации программного текста из нейросетей.

Важно понимать, что ИИ не является абсолютно безошибочным разработчиком. Он может не только принести много пользы, но и привести к значительным конфузам, если не контролировать результат. Этот опыт показывает важность синергии человеческого профессионализма и технологий ИИ – каждый из них должен дополнять другой, а не заменять. Через призму инцидента на sketch.dev становятся понятны перспективы развития современных coding-агентов и необходимость постоянного улучшения процессов доставки кода, аудита изменений и мониторинга в реальном времени.

Автоматическая торговля на криптовалютных биржах Покупайте и продавайте криптовалюты по лучшим курсам Privatejetfinder.com (RU)

Далее
Robotaxis are powered by human drivers as it launches ride-hailing in Bay Area
Понедельник, 17 Ноябрь 2025 Tesla Robotaxi в Бэй-Эриа: Почему за рулём всё ещё человек и что это значит для будущего автономных перевозок

Обзор запуска сервиса Tesla Robotaxi в Бэй-Эриа, его особенностей с участием водителей, а также анализ текущего состояния автономных технологий и вызовов, с которыми сталкивается компания на пути к настоящему беспилотному такси.

New ultrasound imaging to map drug delivery into the brain
Понедельник, 17 Ноябрь 2025 Революционные ультразвуковые технологии для точной доставки лекарств в мозг

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

Andrew Tate's "The Real World" is stealing my software (2022)
Понедельник, 17 Ноябрь 2025 Конфликт вокруг Andrew Tate и его проекта The Real World: Кража открытого программного обеспечения Revolt

Анализ ситуации с использованием программного обеспечения Revolt в проекте The Real World, связи с лицензионными нарушениями и этическими принципами разработчиков на фоне растущего онлайн-бизнеса Андрева Тейта.

Model Context Protocol, Product Demos, and the New App Store
Понедельник, 17 Ноябрь 2025 Протокол Model Context, демонстрации продуктов и новый App Store: революция в интерфейсах и интеграциях

Изучение потенциала протокола Model Context для создания новых типов приложений и интерактивных интерфейсов, а также влияние этой технологии на будущее цифрового ПО и магазинов приложений.

Playwright users–wants design-partner to shape an AI tool that tames flaky tests
Понедельник, 17 Ноябрь 2025 Как Playwright и ИИ помогают побороть нестабильные тесты в автоматизации

Устранение нестабильности тестов в автоматизации — вызов для разработчиков. Новая AI-технология для Playwright предлагает инновационные решения для выявления и анализа флейки-тестов, позволяя ускорить процесс отладки и повысить качество программного обеспечения.

3 Key Headwinds Facing USDC
Понедельник, 17 Ноябрь 2025 Три ключевых вызова, с которыми сталкивается стабильная монета USDC

Обзор основных препятствий и вызовов, стоящих перед одной из крупнейших стабильных криптовалют USDC на пути к массовому принятию и развитию в современном финансовом мире.

Welltower (WELL) Jumps on Impressive Earnings, Optimistic Outlook
Понедельник, 17 Ноябрь 2025 Welltower (WELL): Впечатляющий рост прибыли и оптимистичный прогноз на 2025 год

Welltower (WELL) демонстрирует значительный рост финансовых показателей во втором квартале 2025 года, повышая прогнозы на оставшуюся часть года благодаря устойчивому увеличению доходов и расширению чистой прибыли. Компания продолжает укреплять свои позиции в секторе недвижимости с акцентом на здравоохранение и жилую недвижимость для пожилых, что привлекает внимание инвесторов и способствует росту цены акций.