Проектирование эффективных субагентов
⏱️ Примерное время: ~12 минут · 🎯 Урок 3 курса «Введение в субагентов» · 🎬 видео
Плохо настроенный субагент блуждает, работает слишком долго или выдаёт непригодный результат. Как это исправить: хорошие описания, заданный формат вывода, отчёт о препятствиях и ограничение доступа к инструментам.
Как используются данные конфигурации
Когда вы пишете сообщение главному агенту, имя и описание каждого доступного субагента находятся в системном промпте — именно так главный агент решает, какого из них запустить. Описание также направляет входной промпт, который главный агент пишет, чтобы запустить задачу. Таким образом, описание управляет и тем, КОГДА запускается субагент, и тем, ЧТО ему сообщается.
Описания, которые формируют входные промпты
Для субагента код-ревью обобщённое описание даёт расплывчатый входной промпт («используй get diff, чтобы найти изменения»). Добавление фразы «Ты обязан точно указать агенту, какие именно файлы нужно проверить» заставляет главного агента написать конкретный промпт с перечислением реальных файлов. Тот же приём: добавление «возвращай источники, на которые можно сослаться» в описание субагента для веб-поиска.
Определение формата вывода
Это самое важное улучшение. Оно создаёт естественные точки остановки (субагент понимает, что закончил, когда заполнен каждый раздел) и не даёт ему работать слишком долго. Пример для код-ревью:
- Резюме
- Критические проблемы
- Серьёзные проблемы
- Незначительные проблемы
- Рекомендации
- Статус одобрения
Отчёт о препятствиях
Найденные обходные решения (исправления зависимостей, команды, требующие особых флагов) должны попадать в возвращаемое резюме, иначе главный поток будет открывать их заново, тратя время и токены. Добавьте в шаблон вывода раздел «Встреченные препятствия»: проблемы настройки, обходные решения, особые флаги/конфигурация, проблемные зависимости.
Ограничение доступа к инструментам
Давайте только те инструменты, которые нужны. Исследовательский субагент только для чтения: Glob, Grep, Read. Субагент код-ревью: также Bash (для git diff), но не Edit/Write. Субагент для стилизации/изменения кода: Edit и Write. Это предотвращает побочные эффекты и проясняет роль каждого субагента.
Собираем всё вместе
Эффективных субагентов объединяет следующее:
- конкретные описания (управляют тем, когда субагент запускается и какие инструкции получает);
- структурированный вывод (понимает, когда закончил, и возвращает пригодную информацию);
- отчёт о препятствиях;
- ограниченный доступ к инструментам.
*Адаптировано с русским переводом. Оригинал: © 2025 Anthropic. All rights reserved.*