Экспериментальный фреймворк Debug2Fix из Microsoft Research оснастил ИИ-агента полноценными инструментами отладчика — брейкпоинтами, пошаговой навигацией и evaluate expression. На задачах из датасетов GitBug-Java и SWE-Bench-Live такой агент справлялся на 20% лучше, чем агент без этих инструментов. Команда плагина Veai для IntelliJ пошла тем же путём и добавила в свой ассистент Debug Agent на базе XDebugger API от JetBrains.

Поводом для сравнительного теста стал реальный баг в open-source-проекте jsoup — issue от 17 декабря 2025 года. Дата выбрана намеренно: свежее issue не попало в обучающие данные моделей, поэтому агенты не могли «вспомнить» готовый ответ. Фикс оказался простым, что позволило однозначно оценить, нашёл ли агент правильную причину.

Во всех трёх запусках использовалась одна модель — Claude Sonnet 4.6. Claude Code без специализированного инструментария потратил 8 минут. Cursor в режиме Debug Mode в среднем находил причину за 6 минут: агент формулировал гипотезы, расставлял вызовы логгера по формализованному шаблону и получал структурированный JSON с логами. Veai справился примерно за 4 минуты — агент ставил брейкпоинты, двигался по коду и вычислял выражения прямо в сессии, не дожидаясь завершения очередного цикла.

На баге из jsoup (issue от 17 декабря 2025 года) Veai нашёл причину за ~4 минуты, Cursor — за ~6, Claude Code без спецоснастки — за 8.

Разница в скорости объясняется архитектурой подхода. При логировании система остаётся чёрным ящиком: чтобы проверить или отбросить гипотезу, нужно дождаться нового запуска. Evaluate expression позволяет агенту получить ответ немедленно — прямо в точке останова. Именно этот инструмент авторы называют самым мощным: агенту несложно составить сложное выражение, тогда как разработчик делает это вручную и тратит время. Показательный эпизод: DeepSeek v3 в read-only-окружении, где запись кода была запрещена, воспроизвёл нужный тест целиком через evaluate expression.

По качеству стратегии Cursor выглядит предпочтительнее для слабых моделей. Формализованное логгирование с явной привязкой каждого вызова к конкретной гипотезе служит внешней «памятью» — агент реже сбивается с пути. Авторы проверили это на Cursor Free с Auto-моделью: результат оказался сопоставим с Sonnet. Veai в большей степени опирается на собственные рассуждения модели, что ускоряет работу топовых LLM, но увеличивает риск потери нити при длинном плане из девяти шагов с разнородными инструментами.

Помимо автономной отладки, авторы описывают два дополнительных сценария. Первый — интерактивная помощь при дебаге: агент отвечает на вопросы о состоянии программы на естественном языке и сам строит нужные выражения. Второй — сбор данных из исполнения для генерации модульных тестов на реальных данных, извлечённых из интеграционных. Команда упоминает, что для последней задачи уже разрабатывала отдельный формальный пайплайн.

Следующий шаг для Veai — упростить и формализовать процесс автономной отладки с помощью субагентов, чтобы снизить зависимость от качества конкретной модели. Пока в номинации «стратегия» авторы честно отдают победу Cursor.