Решительность, прозрачность и точность станут новой валютой агентов искусственного интеллекта, которые заработают право стать нашими делегатами, пишет на портале The New Stack Тоффер Уинслоу, генеральный директор компании Diffblue.
Многое изменилось в мире разработки ПО с тех пор, как в начале века я работал менеджером по продуктам в компании Empirix, занимавшейся веб-тестированием и мониторингом (была приобретена Oracle в 2006 г.). Но многое осталось прежним: давление, требующее более быстрого внедрения инноваций при одновременном снижении затрат, остается неумолимым.
Для разработчиков новейшие рабочие процессы с использованием ИИ-агентов выходят за рамки возможностей ИИ-помощников и трансформируют определение требований, генерацию кода, модульное тестирование и все остальные этапы цикла разработки ПО (SDLC). Внедрение этих инструментов может сократить трудозатраты и позволить командам разработчиков достичь новых уровней скорости и качества. В то же время ни один продукт не подходит для решения всех задач в SDLC.
За последние два года такие крупные помощники по работе с кодом на основе больших языковых моделей (LLM), как Copilot, завоевали огромную аудиторию, не говоря уже о значительной части расходов на ИТ среди первых последователей. Когда технологические лидеры начинают оценивать отдачу от своих инвестиций в LLM, отзывы оказываются неоднозначными. Некоторые пользователи отмечают нетривиальное повышение производительности. Но реальных отчетов о подлинных преобразованиях мало, и они варьируются в зависимости от уровня квалификации, причем улучшения для более опытных разработчиков особенно не впечатляют. Осознание этого факта заставляет многие компании более взвешенно подходить к потребностям в ИИ-инструментах, и они все чаще рассматривают подход на основе лучших в своем классе продуктов, включающий специализированные инструменты, где это оправдано.
Поскольку Gartner объявила агентный ИИ номером один в списке 10 стратегических технологических трендов 2025 г., вы можете быть уверены, что маркетинговые отделы всех компаний-разработчиков ПО лихорадочно пытаются поймать волну, даже если все, что они могут предложить, — это куча макросов Excel. Это же агенты, верно? Неверно. Давайте уточним.
ИИ-помощники против ИИ-агентов
Когда речь идет об ИИ, применяемом для написания кода, основное различие между помощниками и агентами аналогично различию между сотрудничеством и делегированием. Несмотря на то, что оба способа работы могут принести пользу, если их применить к подходящей задаче, это совершенно разный опыт с разными требованиями к ресурсам. Самое главное, что возможности создания ценности от полного делегирования больших объемов работы надежному, компетентному, автономному агенту будут превосходить возможности сотрудничества с ИИ-помощниками.
ИИ-помощники полезны для решения различных повседневных задач кодинга, предлагая поддержку и информацию в режиме реального времени. Эти инструменты предназначены для сотрудничества с разработчиками, они предоставляют предложения по ходу написания кода, легко интегрируются в популярные интегрированные среды разработки (IDE) и предлагают функции, улучшающие опыт написания кода. Среди основных сценариев использования ИИ-помощников в разработке — завершение кода, обнаружение ошибок, поиск документации и предложения по рефакторингу.
ИИ-агенты могут автоматизировать сложные процессы и принимать высокоуровневые решения практически без участия человека, революционизируя управление и реализацию проектов. Созданные для выполнения сложных задач без вмешательства человека, агенты ИИ делают еще один шаг вперед в автоматизации и позволяют полностью делегировать полномочия.
Однако, как и в аналоговом мире, делегирование работает только в том случае, если агент компетентен и заслуживает доверия.
Практический пример
Давайте рассмотрим реальный пример, иллюстрирующий различия между ИИ-помощниками и агентами, и при этом прольем яркий свет на то, что значит сотрудничать, а не делегировать.
Возьмем модульные тесты. Ненавидимые всеми разработчиками, модульные тесты по-прежнему считаются основой эффективного режима обеспечения качества ПО. Их написание может занимать от четверти до трети цикла кодирования, и эти усилия обычно рассматриваются как «черная» работа. Сокращение времени, затрачиваемого на разработку модульных тестов, конечно привлекает, и многие разработчики, имеющие доступ к помощникам по кодированию на базе LLM, по понятным причинам хотят перепоручить эту задачу им. Работает ли это на практике?
Ответ: иногда. Но в некоторых случаях это может привести к впечатляющему провалу.
Исследователи Diffblue взяли три Open Source-проекта, представляющие собой реальные приложения, и использовали помощника по кодированию на основе LLM (GitHub Copilot) для генерации модульных тестов для них. В результате они пришли к следующим трем наблюдениям:
- Это лучше, чем статус-кво. Согласно эмпирическому правилу, на создание надежного модульного теста уходит примерно 15 минут ручной разработки. Конечно, все зависит от квалификации разработчика и сложности тестируемого кода, но 15 минут на тест — это разумная оценка. Сотрудничая с Copilot, исследователи разрабатывали тест каждые 26 секунд. На первый взгляд, это значительное повышение производительности. Возьмем на заметку.
- Это все еще реальная работа. Сотрудничество с Copilot потребовало от нашего разработчика/исследователя постоянного участия в итеративном, интерактивном, полностью контролируемом процессе. После того как инструмент генерировал тесты на уровне методов или классов, их нужно было оценить, выполнить, откорректировать, перепроверить и, в конце концов, принять как пользователю.
- Но и здесь не все гладко. Исследование показало, что в зависимости от проекта от 30 до 45% сгенерированных LLM модульных тестов не компилировались и/или не проходили. В результате пользователю приходилось исправлять их вручную, и таким образом он снова оказывался втянут в работу, которой стремился избежать.
При решении одной и той же задачи эффективный агент может дать совершенно разные результаты. В частности, использование агента для написания модульных тестов в этих трех Open Source-проектах дало совершенно иной опыт и результат.
- Во-первых, разработчик мог действительно делегировать задачу создания полного набора модульных тестов для каждого проекта. Он направлял агента в соответствующие репозитории, говорил «Go» и позволял ему заниматься своими делами в течение нескольких часов. Не было необходимости взаимодействовать с агентом или постоянно следить за его результатами. Вместо этого у разработчика появлялось свободное время для работы над другими приоритетами.
- Во-вторых, результат работы агента был как количественно, так и качественно лучше. Благодаря используемой технологии генеративного ИИ (обучение с подкреплением в сочетании со статическим анализом и динамическим выполнением кода), каждый созданный тест гарантированно компилировался и проходил, что избавляло от необходимости утомительно возиться с тестами, чтобы заставить их работать, которая была определяющей частью опыта с Copilot. Качество тестов было выше, и средние показатели мутационного тестирования составили 68% против 63%.
- В-третьих, общее количество строк кода, покрытых тестами, созданными агентом, в четыре раза превысило количество строк кода, покрытых тестами, созданными разработчиком с помощью Copilot, когда обоим подходам было отведено одинаковое количество времени. Но преимущество агента в производительности вырастает до
26-кратного, если учесть, что он будет работать круглосуточно каждый день в году, в то время как от разработчика можно ожидать только шести часов работы в день, отпусков и больничных. Это огромное преимущество в производительности даже не учитывает того, что многие разработчики, вероятно, уволились бы, если бы их попросили не делать ничего, кроме написания юнит-тестов каждый день.
Заключение
Помощники по кодированию на основе LLM — это огромная инновация с широким спектром полезных приложений. Однако в некоторых сценариях они имеют ряд существенных ограничений. Неточности, а иногда и откровенные ошибки LLM могут быть смягчены постоянным участием разработчиков в анализе и настройке результатов. Когда целью является полная автоматизация широкого спектра задач, модель помощника не может масштабироваться. Именно в этом случае делегирование полномочий агентам может принести преобразующую пользу, и эта польза будет полностью реализована только в том случае, если результаты работы агента будут неизменно заслуживать доверия. Решительность, прозрачность и точность станут новой валютой агентов, которые заработают право стать нашими делегатами.