Работа с агентами
Спектр сотрудничества
Section titled “Спектр сотрудничества”Максимальное вовлечение AI — не самоцель. Эффективная агентная инженерия — это поиск правильного баланса для каждой задачи. Делать всё самостоятельно так же плохо, как и делегировать всё.
Автономный режим лучше всего подходит для чётко определённых задач:
- Генерация шаблонного кода
- Написание тестов
- Документация
- Рефакторинг устоявшихся паттернов
Ручной режим необходим для:
- Архитектурных решений
- Кода, связанного с безопасностью
- Уточнения требований
- Логики, специфичной для предметной области
Большинство реальных задач находятся где-то посередине. Реализация функций, отладка и проектирование API выигрывают от активного сотрудничества, когда вы направляете, а агент выполняет.
Когда вмешиваться
Section titled “Когда вмешиваться”Обратите внимание на эти сигналы, указывающие на необходимость вмешаться:
- Зацикливание агента: Повторение похожих попыток без прогресса
- Снижение качества: Результат ухудшается, а не улучшается
- Разрастание области: Отклонение от исходных границ задачи
- Необратимые действия: Вот-вот удалят данные, запушат в продакшн или сделают ломающие изменения
Когда агент стабильно продвигается и ошибки исправляются, дайте ему продолжить. Вмешивайтесь, когда видите круговые паттерны или снижение отдачи после 2-3 повторных промтов.
Ревью-мышление
Section titled “Ревью-мышление”Ревью результатов агента фундаментально отличается от ревью кода человека. Сосредоточьтесь на намерении и корректности, а не на стилевых предпочтениях — агент всё равно не извлечёт урок из вашей обратной связи.
Всегда проверяйте:
- Решает ли результат поставленную проблему?
- Обработаны ли граничные случаи и условия ошибок?
- Разумен ли подход, а не просто функционален?
- Есть ли проблемы с безопасностью?
Не предполагайте, что пройденные тесты означают корректность или что уверенные объяснения отражают точность. Относитесь к результатам агента как к коду от квалифицированного подрядчика: технически компетентного, но не знакомого с вашим конкретным контекстом.
Создание AI-готовых кодовых баз
Section titled “Создание AI-готовых кодовых баз”Философия Unix — маленькие инструменты, чёткие интерфейсы, компонуемость — это именно то, что нужно агентам для эффективной работы. Структурируйте код с учётом агентов.
- Маленькие, сфокусированные функции: Функция в 20 строк гораздо легче для понимания и корректного изменения агентом, чем функция в 200 строк. Меньшая область — меньше ошибок.
- Чёткие интерфейсы: Явные входы и выходы помогают агентам рассуждать о зависимостях и связывать операции. Неоднозначные интерфейсы вызывают ошибки интеграции.
- Последовательные паттерны: Предсказуемая структура снижает ошибки агентов. Когда похожие проблемы решаются похожим образом, агенты могут надёжно применять паттерны.
- Хорошие имена:
getUserById(id)лучше чемget(x). Описательные имена — это контекст, который помогает агентам понимать код без глубокого исследования.
Не нужно переписывать всё. Когда вы касаетесь кода, направляйте его к этим паттернам — выигрыш накапливается со временем.
Эффективная обратная связь
Section titled “Эффективная обратная связь”Когда корректируете курс, будьте конкретны в том, что не так и что вы хотите вместо этого. «Не хватает обработки ошибок — добавьте блоки try/catch, которые логируют сбои и возвращают корректные резервные значения» даст гораздо лучший результат, чем «Исправь обработку ошибок».
Делайте корректировки сфокусированными. Одна чёткая директива работает лучше, чем несколько расплывчатых жалоб.