В мире разработки ИИ существует парадокс: чем больше инструментов для автоматизации создаётся, тем больше рутины остаётся у самих разработчиков. Отчёты, анализ данных, повторяющиеся задачи – всё это никуда не исчезает, даже если работаешь в одной из самых передовых команд индустрии.
Именно с этой ситуацией столкнулся один из инженеров команды GitHub Copilot Applied Science. Его задача – улучшать GitHub Copilot, инструмент для написания кода с помощью ИИ. Часть этой работы оказалась довольно механической. Тогда он решил: если я занимаюсь агентами, почему бы не поручить агенту то, что отнимает моё время?
Что такое «агент» в данном контексте
Прежде чем продолжить, стоит пояснить один термин. В контексте ИИ агент – это не просто чат-бот, отвечающий на вопросы. Это система, которая умеет действовать: запускать код, обращаться к файлам, выполнять последовательность шагов, проверять результаты и при необходимости корректировать их. Проще говоря, агент – это ИИ, которому можно дать задачу, а не только вопрос.
В разработке сегодня набирает популярность подход, который называют разработка, управляемая агентами (agent-driven development). Идея в том, что вместо ручного написания каждой строки кода разработчик описывает задачу, а агент берёт на себя значительную часть её реализации.
Агент, который создавал агента
В описываемом случае автор использовал инструменты кодирования с участием ИИ – в частности, возможности GitHub Copilot в режиме агента – для написания собственных скриптов и небольших автоматизированных систем. Эти системы, в свою очередь, взяли на себя часть его повседневных рабочих задач.
Это звучит немного рекурсивно – и это действительно так. Агент помогает написать агента, который автоматизирует работу человека, создающего агентов. Но именно этот опыт оказался особенно показательным, так как автор наблюдал за процессом изнутри и мог чётко видеть, где ИИ справляется хорошо, а где нет.
Чему учит практическая работа с ИИ-агентом
Один из главных выводов – качество задачи важнее качества подсказки. Многие думают, что главное в работе с ИИ – правильно сформулировать запрос. Это важно, но ещё важнее – правильно разбить задачу. Если задача слишком размытая или слишком большая, агент начинает «фантазировать» или делает что-то похожее на нужное, но не совсем то.
Когда задача хорошо структурирована – с чёткими входными данными, ожидаемым результатом и понятными ограничениями – агент работает значительно лучше. Это, кстати, справедливо и для обычных сотрудников. Просто с ИИ это становится особенно очевидным, потому что он не будет переспрашивать так, как это сделал бы человек.
Итерация – не ошибка, а особенность
Второй важный урок связан с ожиданиями. Работа с ИИ-агентом – это не «написал запрос – получил готовый продукт». Это итеративный процесс: попробовал, посмотрел на результат, уточнил задачу, попробовал снова.
В каком-то смысле это похоже на работу с джуниор-разработчиком, у которого очень высокая скорость, но которому нужно давать чёткие указания и проверять результат. Автор отмечает, что начал относиться к взаимодействию с агентом как к совместной работе, а не как к выдаче команд. Это изменило и подход, и результат.
Когда агент справляется, а когда нет
Есть задачи, с которыми ИИ-агенты справляются очень уверенно: написать шаблонный код, обработать данные по заданным правилам, сгенерировать документацию, выполнить последовательность однотипных операций. Здесь выигрыш по времени реальный и ощутимый.
Но есть области, где агент пока ненадёжен. Это задачи с размытыми критериями успеха, ситуации, где нужно принять неочевидное решение с учётом контекста, который нигде не записан. Или случаи, когда ошибка в середине цепочки действий тихо «продолжает распространяться» – и результат выглядит правдоподобно, но оказывается неверным.
Именно поэтому контроль результата остаётся за человеком. Автоматизация не отменяет проверку – она просто сдвигает акцент с «делать» на «проверять и направлять».
Что это значит для работающих с кодом
Опыт, описанный в этом случае, интересен не как история успеха конкретного инженера, а как иллюстрация более широкого сдвига в том, как вообще строится разработка.
Инструменты вроде GitHub Copilot уже довольно давно помогают писать код построчно. Но сейчас акцент смещается в сторону более автономной работы: агент может взять задачу, написать код, запустить тесты, исправить ошибки – и вернуть готовый результат. Человек при этом выступает скорее в роли постановщика задач и рецензента, чем исполнителя.
Это меняет не только инструменты, но и ключевые навыки. Умение чётко формулировать задачу, декомпозировать сложную проблему, задавать правильные вопросы и критически оценивать результат – всё это становится важнее, чем просто знание синтаксиса конкретного языка.
Открытые вопросы
Конечно, не всё так гладко, и сам автор это признаёт. Пока непонятно, насколько хорошо такой подход масштабируется на более крупные и сложные проекты. Агент, который отлично справляется с небольшой автономной задачей, может столкнуться с трудностями в большой кодовой базе с многолетней историей и сложными зависимостями.
Остаётся и вопрос о качестве кода, который генерирует агент: он может работать правильно, но быть трудночитаемым или сложным в поддержке. Это не всегда проблема прямо сейчас – но может стать ею через год, когда кто-то другой будет разбираться в этом коде.
Наконец, есть более широкий вопрос о том, как меняется роль разработчика. Если агент берёт на себя всё больше рутинного кодирования, то что остаётся человеку? Судя по описанному опыту – самое сложное: понимать контекст, принимать решения в условиях неопределённости и нести ответственность за результат.
Это, пожалуй, и есть главный вывод: ИИ-агенты не заменяют мышление. Они освобождают от части рутины – чтобы мышления стало больше.