Волобуев Петр | Технологический радарВолобуев Петр | Технологический радар

AI-агенты в процессе разработки

aiagentsproductivityworkflow
Использую

Перешёл к постоянному использованию агентов типа Claude в реальном процессе разработки. За месяц смог в одно лицо закрыть бэклог, висящий по одному legacy проекту, который оставался не закрытым уже 2 года и постоянно откладывался из-за нехватки ресурсов и низкого приоритета. Также по 2 проектам средствами агента провел рефактор, вследствие чего из кодовой базы ушел мусор (неиспользуемые атавизмы), увеличилась скорость ответов на тяжелые запросы, а также сократилось время сборок. А также стартовал полностью новое приложение, организовал все среды, обвязку и довел до полностью функционирующей первой фичи MVP.

Как это выглядит на практике:

  • Декомпозиция задач делегируется частично агенту — формулирую цель и ограничения, агент предлагает шаги, я корректирую
  • Рутина на агенте — рефакторинги по проекту, генерация бойлерплейта, навигация по незнакомым кускам кода, написание тестов по образцу.
  • Проектные правила в CLAUDE.md — фиксирую договорённости и жёсткие ограничения в репозитории, чтобы агент работал в рамках принятых решений
  • Память и контекст — подключение LSP, дизайн и архитектурные скилы, конвенции-скилы, регулярные отчеты и жесткий пайплайн разработки по git.

Что изменилось в работе:

  • больше времени уходит на постановку и ревью, меньше на механический ввод кода
  • порог входа в новый репозиторий/стек заметно ниже — агент закрывает разведку
  • сильнее ощущается ценность чистой архитектуры и понятных названий: и человеку, и агенту проще

В adopt — рекомендую как стандартный инструмент в своей практике, при условии что разработчик умеет ставить задачи и критично проверять результат. Подчеркну что проверять за моделью обязательно! Она способна ошибаться из-за невнимательности!

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

Пробую

Пробую использовать Claude в активных проектах.

ИИ-агенты для разработки явно вышли на новый уровень. Теперь есть правила и скилы и агенту не надо в каждом промпте напоминать как работать с твоим проектом. Я протестировал claude как на уже активном проекте, так и на паре полностью новых setup-ах.

Работает очень хорошо. Есть множество инструментов для экономии токенов, удобная система лимитов. С ходу выявленные плюсы

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

Минусы тоже есть:

  • верстка по-прежнему выходит с огрехами, приходится проходить напильником самому. Но все равно большую часть рутины он осиливает и если дать ему хорошо сделанный макет в figma и задать в проекте базу на tailwind, например, то получается четко.
  • если просто давать задания на написание кода может делать ошибки связанности или используемой версии языка. Но они нивелируются, если дать доступ LSP целевого языка и если дать организовать обратную реакцию агенту (билды, тесты, запускаемые среды). Если есть обратная связь, то агент исправляет собственные ошибки
  • дебаг самого себя может тратить много токенов, если экономить, то надо агенту подсказывать пути решения
  • концептуально на будущее он плохо прогнозирует, если его не попросить. Как результат, он начинает в новых сессиях задач исправлять и переписывать то, что написал в предыдущих, что также ведет к перерасходу токенов. Если спланировать архитектуру и концепцию заранее и записать ее в документы и скилы, то это получается нивелировать.

Вывод

Инструмент созрел. Это реально помогает делать настолько больше работы, что кажется теперь в одного ты можешь за неделю сделать столько же сколько раньше делал всей командой 2 недели или даже месяц.

По сути как в обработку материалов пришли станки с ЧПУ, в программирование пришли ИИ агенты и они с нами навсегда.

Пробую

Пробую использовать Cursor в активных проектах, но в ограниченном кол-ве.

Выявленные плюсы

  • Способен написать работающий код
  • Способен проверять себя и даже запускать тесты
  • Отлично справляется с написанием юнит тестов, особенно если дать ему спеки или даже набор user-story.

Выявленные минусы

  • Постоянно приходится повторяться и ограничивать контекст, чтобы не тратились токены
  • Очень вольно агент скачет по стилям, конвенциям и правилам, опять же приходится постоянно напоминать ему про DI, стэк и существующие в проекте уже готовые либы.
  • Если он с 2 промптов не решил задачу, то лучше дописать или переделать самому, т.к. исправление самого себя выедает огромное кол-во токенов, времени и вся выгода от его использования нивелируется и уходит в минус.
  • Не может в верстку от слова совсем, к сожалению. Ему явно не хватает инструментов, чтобы увидеть результат.

Вывод

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

Оценка

Открыл для себя Cursor. Это IDE с интерфейсом для взаимодействия с ИИ моделью, а также взаимодействия ИИ модели с рабочей областью, открытой в IDE. Иными словами ИИ агент в форме IDE на базе VS Code. Выглядит многообещающе.

Оценка

Вышла версия Chat GPT 3.5. Не удержался от экспериментов с генерацией кода. Проверил несколько задач.

Выявленные плюсы:

  • Если дать ему метод или даже класс, то может составить для него неплохой юнит-тест.
  • Ему можно дать описание ТЗ на сущность с множеством полей и он по описанию сможет сделать полную формализацию: подобрать типы данных; придумать имена, например, в camelCase; записать в виде таблицы или класса на указанном языке программирования.
  • Дает хорошие подсказки в какую сторону копать при расследовании проблем или инцидентов. Потенциально прямо замена StackOverflow.

Выявленные минусы:

  • Ответ обрезается, но судя по всему на стороне BFF, потому что если попросить модель повторить предыдущее (обрезанное) сообщение с определенной строки, то ты получаешь не хватающую часть. Неудобно, но терпимо.
  • Сложные классы с логикой пишет плохо. Выдает какое-то лоскутное одеяло. Но отдельные методы реализует неплохо, можно некоторую рутину вполне отдавать ему на сочинение, лишь чутка корректируя и вставлять к себе.
  • powershell плохо понимает. Почти все, что просил его сочинить не работоспособно. При этом то же самое на C# реализует нормально и даже если попросить написать сначала на C#, а потом преобразовать на powershell, то тоже получается хорошо. Но если изначально попросить реализовать на powershell пишет какой-то несвязанный бред.

Вывод:

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