Программирование с использованием больших языковых моделей (LLM) уже перестало быть просто красивой демонстрацией возможностей искусственного интеллекта. Сегодня, благодаря агентам, LLM могут не просто генерировать код, а напрямую взаимодействовать с окружающей средой, исправлять ошибки, тестировать решения и даже «думать» на несколько шагов вперёд. В своей статье Дэвид Кроушоу подробно делится личным опытом программирования с агентами, и этот опыт заставляет задуматься о том, как может выглядеть будущее индустрии программирования.
🧠 Что такое «агент» и зачем он нужен программисту?
В самом простом виде агент — это несложная программная структура, которая позволяет LLM вызывать внешние инструменты и получать от них обратную связь. Говоря языком программиста, агент выглядит примерно так:
for _ in range(steps):
result = call_llm(prompt)
execute_tool(result)
update_prompt(result)
Да, это просто цикл с вызовом LLM и внешних команд. Однако именно это взаимодействие превращает обычную языковую модель из «умного попугая» в настоящего программиста-помощника.
На практике это означает, что агент способен:
🔧 Запускать компиляторы и исправлять синтаксические ошибки.
🔍 Искать документацию в интернете и интегрировать найденную информацию.
🧪 Запускать тесты и вносить изменения в код по результатам тестирования.
🗃️ Работать с большими проектами, анализируя только релевантные части кода.
🎯 Агенты в реальной жизни: опыт Дэвида Кроушоу
Автор приводит яркие примеры того, как использование агентов изменило его ежедневную работу:
1️⃣ Авторизация GitHub App
Дэвиду потребовалось реализовать аутентификацию для GitHub-приложения. Вместо нескольких дней разработки, он потратил всего несколько часов, дав агенту простое задание и несколько уточняющих комментариев:
- Агент самостоятельно реализовал OAuth-аутентификацию.
- 🔒 Правда, изначально он допустил серьёзную уязвимость, позволяющую пользователям видеть репозитории, к которым у них не было доступа. Однако агент быстро исправил её после замечания автора.
- ⚡️ Затем возникла проблема производительности, так как агент неправильно понял первоначальные условия. Дэвид дал короткую подсказку, и агент переделал код на оптимальное использование токенов авторизации.
В результате задача, которая обычно занимала бы неделю, была выполнена за день, причём большую часть этого времени автор занимался совершенно другими делами (например, уборкой комнаты детей 😉).
2️⃣ Работа с JSON в SQL
Другой пример — необычный подход к хранению данных в базе: одна реальная колонка (JSON-объект), все остальные колонки — вычисляемые из этого JSON. Изначально агент путался и генерировал противоречивый код. Решение было простым — короткая комментарий-инструкция на самом верху схемы, которая моментально улучшила качество работы агента.
🔮 Личное мнение: почему агенты — это революция в программировании?
На мой взгляд, появление агентов знаменует начало совершенно новой эпохи в разработке программного обеспечения. Вот почему я вижу это так:
- 🧩 Больше творчества, меньше рутины:
Агенты берут на себя монотонную работу, освобождая программиста для задач, требующих творческого мышления. - 🚦 Короткий цикл обратной связи:
Агент быстро получает отклик от инструментов и исправляет ошибки гораздо оперативнее человека. - 💡 Расширенные возможности:
Программист может параллельно запускать несколько агентов, решающих разные задачи. Например, один агент улучшает интерфейс, второй разбирается с логикой авторизации, а третий — оптимизирует производительность.
Однако есть и обратная сторона медали:
- ⏳ Высокое время исполнения:
Агентам может потребоваться несколько минут на выполнение задачи, которая человеку кажется простой. Пока это компенсируется параллельной работой. - 💰 Стоимость:
Пока что использование продвинутых агентов требует значительных вычислительных ресурсов, что может привести к высоким затратам. Тем не менее, эти расходы будут снижаться со временем, по мере совершенствования оборудования.
📌 Что дальше?
Автор упоминает, что сейчас агенты используются в основном локально — на компьютере разработчика. Однако будущее, вероятно, будет связано с контейнеризацией:
📦 Разработка в контейнерах:
Запуск агентов в изолированных контейнерах позволит одновременно выполнять несколько задач, параллельно решать множество мелких и крупных проблем без риска навредить основной среде разработки.
🖥️ Будущее IDE:
IDE может трансформироваться в среду для совместной работы человека и агентов, где программист будет играть роль «дирижёра» множества интеллектуальных помощников, работающих над разными частями проекта.
🔐 Безопасность и контроль:
Необходимо будет решать вопросы защиты от ошибок и нежелательных действий агентов (например, случайное выполнение команд, которые могут навредить продакшн-системам).
✨ Заключение
Мы стоим на пороге новой революции, где программирование становится симбиозом человеческого творчества и автоматизированных агентов. Уже сегодня можно с уверенностью сказать, что агенты изменят не только методы разработки, но и то, как мы мыслим о программировании и взаимодействии с технологиями.
Задача каждого разработчика — не бояться новых инструментов, а научиться эффективно использовать их для решения задач, которые раньше казались неподъёмными.
🔗 Полезные ссылки: