Skip to content

Работа с агентами

Максимальное вовлечение AI — не самоцель. Эффективная агентная инженерия — это поиск правильного баланса для каждой задачи. Делать всё самостоятельно так же плохо, как и делегировать всё.

Автономный режим лучше всего подходит для чётко определённых задач:

  • Генерация шаблонного кода
  • Написание тестов
  • Документация
  • Рефакторинг устоявшихся паттернов

Ручной режим необходим для:

  • Архитектурных решений
  • Кода, связанного с безопасностью
  • Уточнения требований
  • Логики, специфичной для предметной области

Большинство реальных задач находятся где-то посередине. Реализация функций, отладка и проектирование API выигрывают от активного сотрудничества, когда вы направляете, а агент выполняет.

Обратите внимание на эти сигналы, указывающие на необходимость вмешаться:

  • Зацикливание агента: Повторение похожих попыток без прогресса
  • Снижение качества: Результат ухудшается, а не улучшается
  • Разрастание области: Отклонение от исходных границ задачи
  • Необратимые действия: Вот-вот удалят данные, запушат в продакшн или сделают ломающие изменения

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

Ревью результатов агента фундаментально отличается от ревью кода человека. Сосредоточьтесь на намерении и корректности, а не на стилевых предпочтениях — агент всё равно не извлечёт урок из вашей обратной связи.

Всегда проверяйте:

  • Решает ли результат поставленную проблему?
  • Обработаны ли граничные случаи и условия ошибок?
  • Разумен ли подход, а не просто функционален?
  • Есть ли проблемы с безопасностью?

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

Создание AI-готовых кодовых баз

Section titled “Создание AI-готовых кодовых баз”

Философия Unix — маленькие инструменты, чёткие интерфейсы, компонуемость — это именно то, что нужно агентам для эффективной работы. Структурируйте код с учётом агентов.

  • Маленькие, сфокусированные функции: Функция в 20 строк гораздо легче для понимания и корректного изменения агентом, чем функция в 200 строк. Меньшая область — меньше ошибок.
  • Чёткие интерфейсы: Явные входы и выходы помогают агентам рассуждать о зависимостях и связывать операции. Неоднозначные интерфейсы вызывают ошибки интеграции.
  • Последовательные паттерны: Предсказуемая структура снижает ошибки агентов. Когда похожие проблемы решаются похожим образом, агенты могут надёжно применять паттерны.
  • Хорошие имена: getUserById(id) лучше чем get(x). Описательные имена — это контекст, который помогает агентам понимать код без глубокого исследования.

Не нужно переписывать всё. Когда вы касаетесь кода, направляйте его к этим паттернам — выигрыш накапливается со временем.

Эффективная обратная связь

Section titled “Эффективная обратная связь”

Когда корректируете курс, будьте конкретны в том, что не так и что вы хотите вместо этого. «Не хватает обработки ошибок — добавьте блоки try/catch, которые логируют сбои и возвращают корректные резервные значения» даст гораздо лучший результат, чем «Исправь обработку ошибок».

Делайте корректировки сфокусированными. Одна чёткая директива работает лучше, чем несколько расплывчатых жалоб.