Диалоги с кодом: Как разработчики взаимодействуют с AI-помощниками

Автор: Денис Аветисян


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

🚀 Квантовые новости

Подключайся к потоку квантовых мемов, теорий и откровений из параллельной вселенной.
Только сингулярные инсайты — никакой скуки.

Присоединиться к каналу
В апреле 2026 года сформирован датасет SWE-chat, насчитывающий 2,7 миллиона зафиксированных взаимодействий между разработчиками и инструментами кодирования, собранных из более чем 200 публичных репозиториев GitHub посредством открытого инструмента Entire.io, автоматически регистрирующего сеансы и связывающего их с коммитами кода на уровне строк, включая более 63 000 запросов пользователей и 355 000 вызовов инструментов.
В апреле 2026 года сформирован датасет SWE-chat, насчитывающий 2,7 миллиона зафиксированных взаимодействий между разработчиками и инструментами кодирования, собранных из более чем 200 публичных репозиториев GitHub посредством открытого инструмента Entire.io, автоматически регистрирующего сеансы и связывающего их с коммитами кода на уровне строк, включая более 63 000 запросов пользователей и 355 000 вызовов инструментов.

Представлен масштабный набор данных SWE-chat, содержащий записи взаимодействия разработчиков с AI-агентами, который позволяет оценить эффективность и выявить типичные ошибки в интерактивном кодировании.

Несмотря на стремительное развитие ИИ-агентов для кодирования, эмпирических данных о реальных сценариях их использования и эффективности в практической разработке программного обеспечения крайне мало. В настоящей работе представлена база данных ‘SWE-chat: Coding Agent Interactions From Real Users in the Wild’ — первая крупномасштабная коллекция сессий взаимодействия с ИИ-агентами, собранная непосредственно от разработчиков в процессе их работы. Анализ данных показал, что паттерны использования агентов поляризованы: в одних случаях они генерируют практически весь код, в других — разработчики пишут его самостоятельно, а эффективность агентов в естественных условиях остается невысокой. Какие факторы определяют успех или неудачу в коллаборации человека и ИИ при разработке программного обеспечения и как можно оптимизировать взаимодействие для повышения продуктивности?


Поток и Судьба: Оценка Поведения Кодирующих Агентов

Появление интеллектуальных помощников для программирования, основанных на искусственном интеллекте, требует разработки надёжных методов для оценки их возможностей и выявления ограничений. Эти агенты, способные генерировать и модифицировать код, быстро становятся неотъемлемой частью процесса разработки программного обеспечения. Однако, для эффективного использования и дальнейшего совершенствования таких инструментов необходимо тщательно изучать их поведение в различных сценариях, выявлять типичные ошибки и оценивать надёжность генерируемого кода. Понимание сильных и слабых сторон этих агентов критически важно для обеспечения качества программного обеспечения и повышения продуктивности разработчиков. Без всестороннего анализа их возможностей, интеграция AI-помощников в процесс разработки может привести к непредсказуемым последствиям и снижению надёжности конечного продукта.

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

Для всестороннего анализа поведения кодирующих агентов необходимы обширные данные, отражающие реальные сценарии взаимодействия. В этом контексте, набор данных SWE-chat представляет собой ценный ресурс, содержащий детальную запись более 2.7 миллионов событий, зафиксированных в более чем 200 публичных репозиториях GitHub. Этот массивный объем данных охватывает полные сессии взаимодействия кодирующих агентов, позволяя исследователям изучать их возможности и ограничения в контексте реальных проектов. Благодаря детальному протоколированию каждого шага, SWE-chat открывает возможности для глубокого анализа логики работы агентов, выявления закономерностей в их поведении и, в конечном итоге, для улучшения их производительности и надежности. Доступность такого набора данных значительно ускоряет прогресс в области искусственного интеллекта и автоматизации разработки программного обеспечения.

Анализ использования кодирующих агентов в реальных условиях на основе данных <span class="katex-eq" data-katex-display="false">SWE-chat</span> выявил закономерности использования и причины сбоев среди разработчиков открытого исходного кода, активно использующих публичные репозитории и предоставляющих данные о сессиях.
Анализ использования кодирующих агентов в реальных условиях на основе данных SWE-chat выявил закономерности использования и причины сбоев среди разработчиков открытого исходного кода, активно использующих публичные репозитории и предоставляющих данные о сессиях.

Автоматизированное Прозрение: Аннотации на Основе Больших Языковых Моделей

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

Автоматическая аннотация на основе больших языковых моделей (LLM) обеспечивает масштабируемое решение для анализа данных чатов поддержки. Процесс включает в себя классификацию сессий по намерению запроса пользователя, оценке успешности решения проблемы и выявлению случаев негативной реакции или несогласия со стороны пользователя (user pushback). Эта автоматизация позволяет обрабатывать большие объемы данных, недоступные для ручной разметки, и выявлять закономерности в поведении пользователей и работе агентов поддержки, что является ключевым для улучшения качества обслуживания.

Автоматизированная обработка данных чатов SWE позволяет проводить масштабный анализ эффективности работы агентов и выявлять закономерности взаимодействия с пользователями. Этот процесс выявляет ключевые области для улучшения качества обслуживания и позволяет отслеживать изменения в структуре данных. В частности, доля сессий, классифицированных как «оценка атмосферы» (vibe coding), увеличилась до 40% от общего объема датасета, что вдвое превышает показатели, зафиксированные на начальном этапе сбора данных.

Анализ взаимодействия пользователя со SWE-chat-агентом показывает распределение количества реплик в сессии, частоту вызовов инструментов агентом на каждом шаге и топ-15 типов файлов, с которыми взаимодействовал агент.
Анализ взаимодействия пользователя со SWE-chat-агентом показывает распределение количества реплик в сессии, частоту вызовов инструментов агентом на каждом шаге и топ-15 типов файлов, с которыми взаимодействовал агент.

Подтверждение Качества: Оценка с Учетом Человеческого Фактора

Для создания эталонного набора данных (так называемого “золотого стандарта”) для аннотаций, необходимо привлечение экспертов-аннотаторов. Они независимо друг от друга выполняют разметку репрезентативной выборки данных из SWE-chat. Независимость разметки критически важна для обеспечения объективности и минимизации систематических ошибок. Выборка должна быть достаточно большой, чтобы обеспечить статистическую значимость результатов оценки качества автоматических аннотаций. Процесс предполагает, что каждый аннотатор выполняет разметку, не имея доступа к аннотациям других экспертов, что гарантирует непредвзятость и позволяет выявить потенциальные расхождения в интерпретации данных.

Для оценки точности аннотаций, выполненных языковой моделью (LLM), проводится сравнение с набором данных, размеченным людьми-экспертами. В качестве метрики для оценки используется показатель согласованности между аннотаторами (Human-Human Inter-Annotator Agreement), который позволяет количественно оценить степень совпадения между LLM и экспертами, а также между самими экспертами. Высокий уровень согласованности указывает на надежность автоматизированного конвейера аннотирования и позволяет уверенно использовать его для анализа больших объемов данных. Этот подход обеспечивает объективную оценку качества, поскольку он основан на сравнении с эталонным набором данных, размеченным людьми.

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

Результаты показывают высокую степень согласованности аннотаций, выполненных большой языковой моделью (LLM), с эталонными аннотациями, созданными экспертами-людьми.
Результаты показывают высокую степень согласованности аннотаций, выполненных большой языковой моделью (LLM), с эталонными аннотациями, созданными экспертами-людьми.

Характеры Кодирования: Поток и Сотрудничество

Набор данных SWE-chat предоставляет уникальную возможность разграничить два принципиально разных стиля кодирования: “кодирование в потоке” (vibe coding), где агент самостоятельно генерирует большую часть кода, и совместное кодирование, подразумевающее разделение вклада между человеком и агентом. Анализ этих стилей позволяет выявить закономерности в степени автономии агента, уровне человеческого контроля и, в конечном итоге, успешности сессии разработки. Разделение на эти категории открывает путь к более глубокому пониманию того, как агенты взаимодействуют с разработчиками и как оптимизировать этот процесс для достижения максимальной продуктивности. Использование SWE-chat позволяет впервые количественно оценить вклад каждого участника и выявить оптимальные стратегии взаимодействия.

Анализ различных стилей кодирования, в частности, индивидуального (“vibe coding”), где агент генерирует основную часть кода, и совместного, демонстрирует отчетливые закономерности в уровне автономности агента, степени участия человека и, в конечном итоге, успешности сессии. Исследования показали, что код, созданный агентом в рамках индивидуального стиля, оказывается в два раза менее эффективным по сравнению с кодом, написанным в процессе совместной работы (измеряется количеством токенов на 100 строк зафиксированного кода). Эта разница подчеркивает важность взаимодействия человека и агента для достижения оптимальной производительности и указывает на необходимость адаптации поведения агента в зависимости от конкретных задач разработки, с целью максимизации продуктивности разработчика.

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

Figure 5:Vibe coding in the wild.% of agent-authored code, structured into three coding modes:human-only(0% agent-authored code),collaborative(0-99%), andvibe coding(≥\geq99%).
Figure 5:Vibe coding in the wild.% of agent-authored code, structured into three coding modes:human-only(0% agent-authored code),collaborative(0-99%), andvibe coding(≥\geq99%).

Проактивное Обнаружение Уязвимостей с Помощью Статического Анализа

Набор данных SWE-chat, в сочетании с инструментами статического анализа, такими как Semgrep, открывает возможности для автоматизированного поиска уязвимостей в коде. Этот подход позволяет анализировать исходный код на предмет потенциальных ошибок и слабых мест без необходимости его фактического запуска. Автоматизация процесса выявления уязвимостей существенно повышает эффективность и снижает риски, связанные с ручным анализом, особенно в крупных проектах. Инструменты статического анализа способны обнаруживать широкий спектр проблем, включая SQL-инъекции, межсайтовый скриптинг (XSS) и переполнения буфера, что позволяет разработчикам оперативно устранять недостатки и повышать безопасность программного обеспечения.

Анализ кода, генерируемого автоматизированными системами разработки, позволяет выявлять потенциальные уязвимости в безопасности на ранних стадиях, до внедрения в производственную среду. Исследования показывают, что сессии «vibe coding», использующие такие системы, приводят к появлению в девять раз больше уязвимостей на каждую строку кода по сравнению с кодом, написанным человеком. Этот значительный показатель подчеркивает необходимость тщательной проверки и автоматизированного анализа кода, создаваемого с помощью искусственного интеллекта, для обеспечения высокого уровня безопасности разрабатываемого программного обеспечения и предотвращения потенциальных атак.

Внедрение проактивного подхода к обеспечению безопасности, основанного на датасете SWE-chat и инструментах отслеживания сессий, таких как Entire.io, знаменует собой существенный прогресс в разработке программного обеспечения. Этот метод позволяет выявлять потенциальные уязвимости на ранних этапах жизненного цикла разработки, до их попадания в производственную среду. В отличие от традиционных реактивных стратегий, где уязвимости обнаруживаются уже после развертывания, данный подход обеспечивает превентивную защиту, снижая риски и затраты на исправление ошибок. Благодаря возможности автоматизированного анализа кода и отслеживания процесса разработки, командам предоставляется возможность оперативно реагировать на возникающие угрозы и повышать общий уровень безопасности программных продуктов.

Анализ распределения внедренных уязвимостей по идентификаторам правил Semgrep показал преобладание определенных типов уязвимостей, определяемых наиболее часто активируемыми правилами.
Анализ распределения внедренных уязвимостей по идентификаторам правил Semgrep показал преобладание определенных типов уязвимостей, определяемых наиболее часто активируемыми правилами.

Исследование, представленное в данной работе, демонстрирует, что взаимодействие человека и агента при разработке программного обеспечения — это не просто обмен командами, а сложный процесс, напоминающий выращивание сада. Как и в саду, где необходимо учитывать множество факторов для здорового роста растений, так и в разработке программного обеспечения необходимо учитывать нюансы взаимодействия для достижения оптимальной эффективности. Андрей Колмогоров однажды заметил: «Математика — это искусство говорить правду». В контексте данной работы, «правда» заключается в том, что реальные взаимодействия разработчиков с ИИ-помощниками выявляют закономерности в типах задач, эффективности и способах преодоления ошибок. Анализ набора данных SWE-chat подтверждает, что устойчивость системы не в изоляции компонентов, а в способности агента и человека прощать ошибки друг друга и совместно адаптироваться к возникающим вызовам.

Что Дальше?

Представленный анализ взаимодействий человека и агента, запечатленных в наборе данных SWE-chat, обнажает закономерности, но не устраняет фундаментальную неопределенность. Архитектура подобных систем — это способ откладывать хаос, а не побеждать его. Наблюдаемые паттерны задач и режимов отказа — это лишь выжившие, а не гарантия успеха в будущем. Следующим шагом видится не столько оптимизация существующих алгоритмов, сколько глубокое понимание природы ошибок, возникающих в процессе совместного творчества человека и машины.

Порядок — это кеш между двумя сбоями. Набор данных SWE-chat демонстрирует, что эффективность взаимодействия зависит не только от технических возможностей агента, но и от способности человека адаптироваться к его ограничениям. Будущие исследования должны сосредоточиться на изучении когнитивных процессов, происходящих при совместном программировании, и на разработке инструментов, облегчающих эту адаптацию.

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


Оригинал статьи: https://arxiv.org/pdf/2604.20779.pdf

Связаться с автором: https://www.linkedin.com/in/avetisyan/

Смотрите также:

2026-04-24 01:21