Когда ИИ-помощник в кодинге упёрся рогом: отладочная одиссея
Когда AI-помощник по коду не может выбрать один вариант
Если вы пробовали свежие AI-инструменты для кодинга, то наверняка сталкивались с этим. Задаёте простой вопрос. AI уверенно начинает разбирать проблему. А потом вдруг останавливается. Передумывает. Меняет подход. И снова.
Это не значит, что AI глупый. Скорее, он размышляет вслух, без цензуры. Зрелище забавное, но оно показывает, как мы создаём инструменты для эпохи AI.
Феномен нерешительного Copilot
Недавно разработчики, использующие Claude Opus в GitHub Copilot, описали типичный случай. Один чинил баг в GoAWK — интерпретаторе AWK на Go. Программа выводила "0\n0\n" вместо нужного "x 1\n" для конкретного AWK-скрипта.
AI мгновенно нашёл корень: специальные переменные вроде NR сохранялись как обычные int в Go, теряя строковое представление.
А вот с фиксом началось шоу. За минуты AI выдал семь идей. И переключался между ними 25 раз. Постоянно сомневался и переосмысливал.
Семь идей, которые растянулись на 25
AI пробовал такие варианты:
- Вариант A: Хранить строковое представление для специальных переменных.
- Вариант B: Перевести их в value types.
- Вариант C: Сохранять строковые переопределения при присвоении.
- Вариант D: Починить только ForIn opcode.
- Вариант E: Добавить боковое поле для исходных значений.
- Вариант F: Изменить только lineNum и fileLineNum на value types.
- Вариант G: Ввести map для переопределений value types.
Особенно круто звучал его "внутренний диалог": "На самом деле проще всего...", "Стоп, но проблема в том...", "Нет, первая идея была верной...".
Почему AI так колеблется
Всё просто. Модели вроде Claude учат видеть нюансы и множество углов. Они распознают, что проблема может иметь несколько хороших решений. Здесь так и было — половина вариантов сработала бы.
Но без чётких критериев вроде "минимум рефакторинга" или "сохрани совместимость" AI просто крутится в цикле. Он не тупит, а слишком старательно копает. Только зря.
Чем всё закончилось
Несмотря на метания, AI чаще всего (11 из 26) выбирал вариант B. Разработчик его и применил — перевёл специальные переменные в value types. И это сработало идеально.
Вот где сила AI: он диагностировал быстрее ручного дебаггинга, нашёл лучший фикс (пусть и не с первого раза), разобрал edge cases и дал готовый код.
Советы разработчикам с AI
Работая с Claude, ChatGPT или Copilot, учитывайте:
AI круто диагностирует, но решает хуже. Если он твердит "Но на самом деле...", значит, шарит по вариантам. Это плюс — видите альтернативы.
Ставьте рамки сразу. Не "как починить баг?", а "как починить с минимумом правок?" или "самое простое изменение?".
Делайте из него партнёра по мозговому штурму. Ценность в размышлениях, а не в первом коде. Нерешительность — сигнал копнуть глубже в его идеи.
Что ждёт разработку с AI
В NameOcean на Vibe Hosting мы думаем, как вплести AI в workflow. Не чтобы он решал за вас, а чтобы исследовал опции, а вы выбирали.
Скоро появятся системы, ранжирующие решения по контексту проекта. Представьте: "B — топ, потому что вписывается в вашу архитектуру". Без бесконечных петель.
Итог
Нерешительный AI не сломан. Он просто думает вслух без жёстких рамок. Посмотрите, что он сделал: быстро нашёл проблему, перечислил варианты, выделил лучший.
Будущее — не в идеально решительных AI. А в тех, что глубоко роют, объясняют логику и оставляют финал людям.
В следующий раз, когда помощник засомневается, не злись. Он именно то и делает: смотрит на задачу с разных сторон.