AI: Работа с Агентами


URL

Основные принципы

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


Выбор Моделей

  • Не существует одной "лучшей" модели для всего.
  • Рекомендация: Использовать разные модели для разных нужд:
  • Для кодинга: Модели, заточенные на код (Sonnet, Codex, Coder).
  • Для планирования: Самые мощные рассуждающие модели (GPT, Gemini, Opus).
  • Использование самой мощной модели для всех задач — дорого и медленно.


Плюсы

  • При должном подходе ускоряет разработку и процессы.
  • Быстрые и наглядные прототипы.
  • Работа над несколькими задачами или проектами параллельно.
  • Быстрая проверка гипотез и тестирование разные вариантов решения.
  • Выполнение задач другого уровня и стека.
  • Делает то, на что раньше не было времени (инструменты, парсеры, тесты и т.д.)
  • Пишет бойлерплейт код, тесты, документацию.
  • Помогает изучать кодовую базу, отчёты и ошибки.
  • Помогает брейнштормить идеи и планировать работу.
  • Проводит ревью, находит проблемы, ошибки, опечатки, несоответствия.


Минусы

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


Фундамент для эффективной работы



Распределение ролей в Software Development Life Cycle

Этап SDLC
🤖 Задачи AI-агента
🧑‍💻 Задачи инженера
1. Plan
• Чтение и анализ спецификаций фич.
• Сопоставление требований с кодовой базой.
• Определение зависимостей и оценка сложности.
• Подсветка скрытых проблем и неоднозначностей.
• Проверка точности оценок ИИ.
• Назначение story points.
• Управление общим направлением продукта и приоритетами беклога.
2. Design
• Генерация шаблонного кода.
• Перевод дизайн-макетов в готовые UI-компоненты.
• Автоматическое применение токенов дизайн-системы.
• Проверка соответствия компонентов стандартам качества.
• Утверждение общих UX-паттернов.
3. Build
• Создание фичей по спецификации.
• Генерация моделей данных и API.
• Автоматическое исправление ошибок сборки.
• Массовый рефакторинг в десятках файлов.
• Выступление в роли ревьюера и редактора.
• Фокус на сложной бизнес-логике и безопасности.
• Оценка производительности и долгосрочной поддерживаемости кода.
4. Test
• Предложение тест-кейсов.
• Написание автоматизированных тестов.
• Актуализация старых тестов при изменении кода.
• Контроль качества сгенерированных тестов.
• Управление требованиями к тестовому покрытию.
5. Review
• Глубокий анализ логики между множеством файлов.
• Выявление сложных архитектурных багов, состояний гонки и хардкода.
• Принятие окончательного решения о слиянии.
• Проверка архитектурного соответствия.
• Ответственность за код, уходящий в продакшен.
6. Document
• Генерация системных диаграмм.
• Создание саммари для измененных файлов.
• Автообновление документации на основе коммитов.
• Формирование структуры, шаблонов и стандартов базы знаний.
• Написание критически важной архитектурной или юридической документации.
7. Deploy & Maintain
• Анализ логов при инцидентах.
• Связывание ошибок продакшена с конкретными Git-коммитами.
• Предложение кода для хотфиксов.
• Валидация предложенных ИИ причин сбоев.
• Проверка надежности сгенерированных исправлений.
• Принятие решений в критических ситуациях.


Вайбкодинг

Вайб-кодинг (vibe coding) — это прямая генерация кода полностью через ИИ в формате "запрос → генерация", без строгого инженерного подхода.
✅ Удачные сценарии
❌ Неудачные сценарии
Быстрое прототипирование: Идеально для проверки идей, создания пет-проектов или MVP, где скорость важнее чистоты кода.
Сложное корпоративное ПО: Проекты со строгой бизнес-логикой, безопасностью и стандартами. Здесь нельзя слепо доверять ИИ.
Одноразовые скрипты и внутренние утилиты: Автоматизация рутины, парсинг логов или простые дашборды. Ошибки здесь не критичны.
Долгосрочная поддержка: Кодовая база, собранная из ИИ-кода, часто имеет плохую архитектуру, что потребует рефакторинга в будущем.
Обучение и исследование: Изучение новых языков или API на примерах, сгенерированных ИИ (с проверкой по документации).
Критически важные алгоритмы и оптимизация: ИИ может выдать код, который работает на малом объеме данных, но «падает» при масштабировании.
Шаблонный код: Рутинная работа, вроде написания множества похожих классов данных или CRUD-операций.
Объяснимость и понятность: ИИ часто создает многословные или запутанные решения, когда код должен быть легко читаемым для аудита и других разработчиков.


Варианты взаимодействия

IDE и плагины

Подходят для "ручной" разработки, работы со сложной логикой и для отладки.
➕ Плюсы
➖ Минусы
Более предсказуемое и контролируемое взаимодействие.
Сложнее организовать одновременную работу нескольких агентов.
Наличие авто-дополнения кода.
Жёсткая привязка к одному IDE или плагину.
Удобная интеграция в UI.
Сложнее организовывать автономные пайплайны.
Визуализированные отчёты, интерактивные диффы, интуитивное взаимодействие, удобство работы "мышью".
Большинство IDE и плагинов не используют собственный инференс, а работают как провайдеры. Это приводит к внутренней наценке на потребление и экономии контекста.
Обычно много встроенных возможностей: индексация кодовой базы, транскрибация речи и пр.
Нельзя запустить фоном, на удалённом сервере или встроить в CI-пайплайны.
Возможность агенту использовать инструменты IDE.
Часто добавление новых фичей агентной разработки с запозданием.
Больший ориентир на веб-разработку и фронтенд.
Непрозрачный контроль контекста.

CLI

Подходит для всего.
➕ Плюсы
➖ Минусы
Можно запустить где угодно, включая удалённые серверы и CI-окружения.
Интерфейс может показаться недружелюбным или сложным.
Нет привязки к конкретной IDE.
Отсутствует автодополнение кода.
Более широкие сценарии использования, в т.ч. не только в разработке.
Сложность контроля изменений, рекомендуется использовать VCS.
Возможность управлять несколькими агентами одновременно.
Ручная конфигурация и подключение инструментов: индексация, транскрибация и т.д.
Возможность строить сложные автономные пайплайны.
Больший контроль над контекстом и инструкциями.
Гибкие возможности конфигурирования работы агентов.
Оперативное добавление всех актуальных возможностей.
Более гибкая поддержка sandbox-режимов.

Облачные агенты

Для асинхронного выполнения рутинных задач, разгребания бэклога, прототипирования и параллельной работы над несколькими фичами без блокировки локальной среды.
➕ Плюсы
➖ Минусы
Агенты работают в изолированных облачных окружениях, не используя ресурсы локальной рабочей станции.
Высокая стоимость решений.
Можно запустить сразу несколько агентов на разные ветки и задачи одновременно.
Риски безопасности, так как код может клонироваться и выполняться на чужих серверах.
Агент реализует полный цикл разработки: от взятия тикета до готового Pull Request.
Меньше контроля над агентом, нет возможности оперативно перехватить разработку в свои руки в процессе.

Фоновые агенты

Для непрерывной фоновой автоматизации, сложных DevOps-пайплайнов, мониторинга и управления рабочими процессами.
➕ Плюсы
➖ Минусы
Полная автономность.
Риски безопасности: угроза утечки конфиденциальных данных, деструктивных действий и т.д.
Управление через привычные мессенджеры и прочие каналы коммуникации.
Нет возможности вмешаться и оперативно перехватить управление при работе над задачей.
Сильная кастомизация.
Высокое неконтролируемое потребление токенов.