AI: Subagents

URLs
Описание
Subagents (Суб-агенты) — это специализированные агенты, которые работают в собственном изолированном контекстном окне с уникальным системным промптом и набором инструментов.


Как это работает

    Маршрутизация: Главный агент (оркестратор) анализирует запрос пользователя и поле description всех доступных суб-агентов.
    Делегирование: Если задача соответствует специализации суб-агента, она делегируется ему. Суб-агент работает независимо.
    Агент может создать субагента с кастомными инструкциями, если посчитает, что нужно изолировать этап работы отдельно, даже когда пользовательские субагенты не заданы.
    Выполнение: Субагенты могут работать на переднем плане, блокируя диалог, либо в фоновом режиме, позволяя продолжать работу оркестратору.
    Результат: Субагент возвращает оркестратору отчёт. Детали выполнения остаются внутри субагента.


Работа с контекстом

  • Изоляция: Каждый субагент имеет свое контекстное окно.
  • Это предотвращает переполнение контекста основного чата деталями реализации, промежуточными шагами инструментов и логами.
  • Прецизионная настройка: Отдельный системный промпт позволяет максимально точно собрать контекст под конкретную задачу.
  • Специфические инструменты: Для каждого субагента можно задать свою модель LLM и ограничить доступ к инструментам, отключая лишние.


Структура

agents/
{subagent-name}.md # Файл определения суб-агента

Расположение:
  • Локально в проекте .{agent-name}/agents/{subagent-name}.md .
  • Глобально у пользователя ~/.{agent-name}/agents/{subagent-name}.md .

Файл {subagent-name}.md:
  • YAML-шапка (Frontmatter):
  • name: Идентификатор для вызова
  • description: Описание, чтобы агент понял, когда активировать субагента
  • mode: subagent | primary (primary активируются строго вручную)
  • model: указание модели для использования
  • tools: настройка доступов к инструментам
  • И др.
  • Тело инструкции (Markdown):
  • Инструкции, примеры, требования, ограничения, вопросы, которые нужно уточнить у пользователя.
// Frontmatter (YAML-шапка)
---
description: Описание назначения в стиле "Use when...".
mode: subagent
model: anthropic/claude-sonnet-4
tools:
read: true
write: true
edit: true
bash: true
temperature: 0.1
---

// Системный промпт и инструкции для суб-агента в Markdown



Для чего

  • Предотвращение переполнения основного контекста.
  • Переиспользования инструкций для типовых задач.
  • Кастомизация ограничений для разных этапов работ для удержания фокуса агента и обеспечения безопасности.
  • Оптимизация затрат кастомизацией моделей для разных этапов работ.
  • Оптимизация скорости работы при распараллеливании отдельных этапов.
  • Имитация связей внутри вашей организации.


Как использовать

    Агент автоматически выбирает подходящего субагента на основе запроса:
  • Проверь выполненную задачу → активирует qa-expert.
    Явный запрос на использование субагента:
  • Проведи рефакторинг в субагенте → активирует cs-expert.
    Вызов через @:
  • @tech-writer документация на механику Призыва
    Выбор в качестве режима работы агента по Tab (для primary).
    Вызов через  Hook  перед обработкой промпта или после ответа агента.
    Добавление в контекст через @, как  Workflow :
  • Персонаж не прыгает, исправь по инструкции @agents/unity-developer.md


Best Practices

    Проектируйте субагентов сфокусированными на одной конкретной задаче. Чем уже задача, тем точнее можно настроить системный промпт и тем меньше вероятность галлюцинаций.
    Предоставляйте субагенту только те инструменты, которые ему действительно нужны, чтобы не засорять контекст, фокусировать агента и обезопасить работу.
    Делайте описания детальными и используйте триггерные фразы вроде "Use when...", чтобы основной агент понимал, в каких случаях делегирование будет успешным.
    Запуск тестов, получение объемной документации или чтение длинных логов могут переполнить контекст главного агента. Делегируйте эти задачи субагенту.
    Включайте для субагентов постоянную память, чтобы они накапливали знания между сессиями.
    Если вам нужно исследовать разные, не связанные между собой части системы, поручите это нескольким субагентам одновременно.
    Для многошаговых процессов просите вызывать субагентов последовательно.
    Можно запрашивать вызов субагентов из других инструментов:  🔨скиллы ,  команды  и т.д.