Субагенты (Subagents): Передавайте задачи на аутсорс, не тащите всё на себе
📚 Навигация по серии: В предыдущей статье 22 MCP мы научились подключать внешние инструменты к Claude, чтобы он мог делать запросы к базам данных и подключаться к GitHub. В этой статье мы изменим подход — вместо «добавления инструментов» мы научим вас передавать задачи на аутсорс: субагент (Subagent), это специализированный помощник с независимым контекстом, независимыми правами и независимым персонажем (ролью), который после завершения работы возвращает только результат.
Говорят, что subagent — это мощь, «продвинутая фишка» Claude Code. Многие, только узнав об этой функции, приходят в восторг и готовы разбить одну задачу на пять-шесть субагентов, запускаемых одновременно, полагая, что так будет «профессиональнее и эффективнее».
Но честно говоря: разбивать всё сразу — ошибка.
Это понимание приходит только со временем. Позже я объясню почему — а пока вот вывод: субагент — это не «чем больше задач, тем больше нужно разбивать», это инструмент с четкими сценариями применения; при правильном использовании он сэкономит вам нервы, а при неправильном — сделает всё медленным и дорогим. Понять, «стоит ли разбивать», гораздо важнее, чем научиться тому, «как это делать».
В этой статье я не только научу вас создавать и запускать субагентов, но и, что более важно, помогу установить ту самую грань: когда следует отдавать на аутсорс, а когда быстрее сделать самому.
Прочитав эту статью, вы узнаете:
- Что такое субагент — независимый контекст, независимые инструменты, независимая роль, одним словом о его отличиях от основного диалога
- Три проблемы, которые он действительно решает (изоляция контекста, специализация задач и параллельность), и ту самую контринтуитивную ловушку: когда не следует разбивать задачи
- Как интерактивно создавать с помощью
/agentsили писать вручную конфигурационный файл.claude/agents/name.md, и за что отвечает каждое поле - Два способа запуска: автоматическое делегирование через
descriptionв сравнении с прямым вызовом по имени - Практический пример, который можно повторить и получить ожидаемый результат: создание минимального субагента своими руками и поручение ему работы
01 Для начала разберемся: что же такое субагент
Сразу вывод: субагент — это нанятый Claude на время специализированный помощник, который работает в своей собственной комнате, возвращает вам только готовый результат, а куча материалов, которые он перерыл в процессе, не занимает ваш рабочий стол.
Аналогия: передача работы специализированному помощнику на аутсорс. У вас полно дел, и среди них «просмотреть тысячу строк логов и выбрать несколько с ошибками» — грязная и занимающая много места задача, которую вы не хотите разворачивать на своем основном рабочем столе, иначе он будет завален. Поэтому вы отдаете её на аутсорс помощнику, который специализируется на этом: он сидит в своей комнате, за своим столом и просматривает эту тысячу строк логов; закончив, он не тащит вам обратно всю тысячу строк исходных логов, а передает лишь записку: «Вот три ошибки, на 207, 589 и 903 строках соответственно». Ваш рабочий стол при этом остается абсолютно чистым.
У этого помощника есть три вещи, которые принадлежат «только ему» и полностью изолированы от вас (основного диалога). В официальной документации это сказано очень четко, и это стоит запомнить:
Каждый subagent запускается в собственном окне контекста (context window), имеет настраиваемый системный промпт (system prompt), специфические права доступа к инструментам и независимые разрешения.
Если разобрать, то это три вида «независимости»:
| Измерение | Основной диалог (Вы) | Субагент (помощник на аутсорсе) |
|---|---|---|
| Контекст | Вся история вашего общения с Claude с самого начала | Чистый лист, получает только «поручение», не видит того, о чем вы общались ранее |
| Системный промпт (роль) | Настройки Claude Code по умолчанию | Эксклюзивная роль, которую вы ему задали, например, «ты код-ревьюер, который только ищет ошибки» |
| Инструменты / Разрешения | Все инструменты, которые вы авторизовали | Можно урезать отдельно, например, «разрешено только чтение, без права записи» |
Самое важное и часто упускаемое из виду — это первая строка: субагент начинает с чистого листа. Официально сказано прямо — он «не видит историю вашего диалога, навыки (skills), которые вы уже вызывали, или файлы, которые Claude уже прочитал». Claude пишет ему абзац с «поручением задачи», и он начинает работу с этой фразы.
Именно это определяет, в чем субагенты «сильны и в чем слабы», и на это мы будем опираться в следующем разделе.
💡 Краткий итог: субагент = независимый контекст + независимая роль + независимые инструменты помощника на аутсорсе, он работает в своей комнате и возвращает только результаты; помните, что он начинает с чистого листа и не видит ваших предыдущих разговоров.
02 Что он решает — и та самая контринтуитивная ловушка
Поняв, «что это», нужно уяснить, «зачем он нужен». Субагент действительно решает три проблемы, о которых я расскажу по порядку, а на третьем пункте заодно разберу контринтуитивную ловушку из начала статьи.
Проблема первая: Изоляция контекста без засорения основной линии
Это самое важное и ценное применение субагента.
Контекст — «рабочий стол» Claude — ограничен. Чем дольше вы с ним общаетесь и чем больше файлов он читает, тем теснее становится на столе, и когда он переполняется, Claude начинает забывать вещи и «тупеть». Некоторые задачи сумасшедшим образом занимают рабочий стол, но промежуточный мусор, который они выдают, вы даже не захотите смотреть второй раз.
Например, «прогони весь набор тестов и скажи, какие упали». Запуск тестов выдаст сотни или тысячи строк вывода, но всё, что вам действительно нужно, это одна фраза: «Упали вот эти три теста, ошибка такая-то: XXX». Если делать это прямо в основном диалоге, эти сотни строк размажутся по вашему столу.
В этом случае отдаем на аутсорс субагенту: он в своей комнате берет на себя эти сотни строк, а возвращает только одну фразу о том, «какие упали». Ваш основной рабочий стол остается таким же чистым, как и был. Официальная документация называет этот сценарий одним из «наиболее эффективных применений» субагентов:
Запуск тестов, получение документации или обработка лог-файлов могут потреблять много контекста. Делегируя их субагенту, подробный вывод остается в контексте субагента, а в ваш основной диалог возвращается только релевантное резюме.
Реальный сценарий: При отладке стороннего SDK вам приходится раз за разом делать curl к его API и смотреть ответ, каждый раз прокручивая экран JSON. К десятому раунду основной диалог настолько забивается JSON, что начинает забывать изначальные требования. Другой подход — заставить субагента «проверить этот интерфейс и только сказать, как выглядят поля», основной диалог мгновенно становится чистым, и ход ваших мыслей не прерывается.
Проблема вторая: Специализация в определенном типе задач
Второе применение: назначить «специалиста для конкретной задачи» для повторяющихся видов работ.
Если вы замечаете, что постоянно повторяете одни и те же инструкции — после каждого написания кода просите Claude «посмотреть свежим взглядом старшего ревьюера и найти ошибки, уделяя особое внимание безопасности и именованию» — то лучше зафиксировать этот набор инструкций в субагента, назвать его code-reviewer, и в будущем вызывать одной фразой. Официальная цитата: «Определите пользовательского субагента, если вы постоянно создаете один и тот же тип работника с одними и теми же инструкциями.»
Он «специализируется» в двух вещах: первое — эксклюзивная роль (в системном промпте жестко прописано «вы — придирчивый ревьюер»), второе — эксклюзивные инструменты (ревьюер должен только читать, а не писать, поэтому отключаем Write и Edit, и он не сможет ничего изменить, даже если захочет).
Проблема третья: Возможность распараллеливания
Третье применение: несколько независимых друг от друга задач можно одновременно поручить нескольким субагентам для параллельного выполнения.
Например, «проведи исследование по трем модулям: аутентификация, база данных, API» — эти три части не зависят друг от друга, поэтому запускаем трех субагентов для их одновременного исследования, и в конце Claude соберет для вас три результата в один. Последовательно пришлось бы ждать три цикла, а параллельно всё делается за один.
Контринтуитивная ловушка: Чем больше, тем лучше — не работает
Хорошо, подготовив почву с тремя применениями, вернемся к фразе из начала статьи — почему «сразу всё разбивать» — это ошибка?
Потому что у новичков обычно есть заблуждение: «чем мельче разбито = тем профессиональнее = тем быстрее». Абсолютно наоборот. У субагента есть три скрытые издержки, и если простую задачу разбить, они все всплывают наружу:
| Сравнение | Простая задача выполняется прямо в основном диалоге | Простая задача жестко делегируется субагенту |
|---|---|---|
| Затраты на старт | Никаких, просто скажите и делайте | Субагент начинает с чистого листа, ему нужно время на «сбор контекста» и понимание ситуации |
| Туда-обратно коммуникация | Вы скажете, он ответит, можно изменить в любой момент | Если неясно объяснить, придется переделывать, субагент не видит ваших прошлых диалогов |
| Стоимость | Один объем token | Открытие еще одного контекста = сжигание лишних token, чем больше открыто, тем больше сжигается |
| Возврат результатов | Отсутствует | Каждый субагент запихивает подробные результаты обратно в основной диалог, слишком много открытых агентов завалят стол еще сильнее |
Официально был представлен специальный чек-лист для определения «использовать ли основной диалог или субагента», я сведу его к одной фразе: задачи с частыми итерациями, общим контекстом, быстрыми мелкими изменениями, где важна скорость — оставляйте в основном диалоге; задачи, которые производят кучу промежуточного мусора, который вы не хотите видеть, требуют жесткого ограничения прав на инструменты и могут сами по себе вернуть лишь один результат-вывод — вот их отдавайте на аутсорс.
В официальной документации также указана неочевидная деталь — субагент в сценариях, где важна «задержка» (latency), скорее является недостатком:
Задержка имеет значение. Subagents начинают с нуля и могут потребовать времени для сбора контекста.
Реальный сценарий: Если упорствовать и даже для «изменения имени переменной» открывать субагента, «чтобы выглядело профессионально». Какой будет результат? Ему придется сначала заново прочитать файл (потому что у него нет вашего текущего контекста), медленно внести изменения и вернуть результат, что намного медленнее, чем сказать в основном диалоге «переименуй эту переменную», да еще и сожжет больше token. Так что запомните железное правило: задача, которую можно объяснить в одно предложение и которая требует изменений прямо сейчас перед глазами, никогда не передается на аутсорс.
💡 Краткий итог: субагенты решают три вещи: «изоляция контекста, специализация задач, параллельность»; но простые задачи быстрее и дешевле выполнять напрямую — сильное дробление ≠ профессионализм, чрезмерное дробление будет медленнее, дороже и снова завалит стол.

На этой картинке четко показано, что такое «аутсорс»: основной диалог — это ваш рабочий стол, вы отправляете грязную работу (запуск тестов / просмотр логов), которая выдаст много промежуточного вывода, субагенту; субагент берет на себя все детали в своей независимой комнате контекста, и в конце только одна строка «резюме-вывода» возвращается в основную линию, ваш стол остается чистым.
03 Как создать: Интерактивное создание через /agents
Поговорив о том, «когда использовать», давайте создадим одного. Самый простой способ — использовать команду /agents, это полностью интерактивно, и вам не нужно писать ни слова конфигурации вручную.
В сессии Claude Code введите:
/agentsПоявится интерфейс управления. Чтобы создать нового, официальный рекомендуемый процесс состоит из нескольких шагов (я пересказываю официальную демонстрацию, просто следуйте ей):
- Выбор местоположения: Перейдите на вкладку Library → Create new agent → выберите Personal. Выбор Personal сохранит его в
~/.claude/agents/, и его можно будет использовать во всех проектах; выбор Project означает, что он будет использоваться только в текущем проекте и его можно будет закоммитить в git для команды (разницу между ними мы подробно разберем в следующем разделе). - Попросите Claude помочь с генерацией: Выберите Generate with Claude, затем простыми словами опишите, какой помощник вам нужен. Например: «Помощник для код-ревью, сканирующий файлы, дающий предложения по улучшению с точки зрения читаемости, производительности и лучших практик, с четким описанием каждой проблемы, приведением текущего кода и предоставлением улучшенной версии». Claude автоматически напишет имя, описание и тот самый системный промпт (роль).
- Выбор инструментов: Ревьюер должен только читать, а не писать, поэтому отметьте только Read-only tools, остальные снимите. Официальная документация напоминает о важном моменте: «Если вы оставите все инструменты выбранными, subagent унаследует все инструменты, доступные в основном диалоге.» — если вы не отключите их сами, он сможет делать всё.
- Выбор модели: Выберите для него отдельную модель. Для ревью официальный пример выбирает Sonnet (баланс между аналитическими способностями и скоростью).
- Сохранение: Взгляните на сводку конфигурации, нажмите
sилиEnterдля сохранения, и им можно сразу пользоваться. (На практике интерфейс также предложит вам выбрать цвет фона и scope памяти (memory scope); цвет на ваше усмотрение, память по умолчанию None, новички могут пропустить.)
Аналогия: заполнение формы «заявка на аутсорс-должность». Вам не нужно знать, как писать контракт, ресепшен (интерфейс /agents) берет форму и спрашивает пункт за пунктом: как называется должность, что делать, какие инструменты использовать, какой уровень специалиста — вы заполняете, и эта «должность» создается для вас. Generate with Claude — это как HR, стоящий рядом и помогающий вам красиво заполнить форму.
Реальный сценарий: Очень ценный постоянный субагент создается именно так — test-runner, специализирующийся на «запуске тестов и сообщении только о том, что упало + сообщения об ошибках». При создании специально дайте ему только Read и Bash, но не Write, именно для того, чтобы у него не зачесались руки изменять ваш код во время работы. Создаете один раз, потом пользуетесь каждый день.
💡 Краткий итог:
/agents— это рекомендуемый способ создания субагентов, полностью интерактивное заполнение формы, плюс можно поручить Claude сгенерировать роль; не забудьте отключить инструменты, иначе он унаследует все разрешения основного диалога.
04 Как создать: Написание конфигурационного файла вручную
После интерактивного создания на диске появляется Markdown файл. Разобравшись с этим файлом, вы сможете писать его вручную или изменять чужие.
Файл субагента выглядит так — сверху блок YAML (frontmatter) для конфигурации, а ниже в тексте — его роль (системный промпт):
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.Аналогия: рабочий бейдж + должностная инструкция для помощника на аутсорсе. Блок YAML — это строгая информация на бейдже: как зовут, чем занимается, какие инструменты может трогать, какого уровня (name/description/tools/model); текст под чертой — это должностная инструкция, которую ему всучили: «Кто ты, что делаешь с самого начала, по каким стандартам». Он приступает к работе, видя только эти две вещи, и не видит остальные дела вашей компании.
Официально заявлено, что только name и description обязательны, остальные можно пропустить. Давайте вынесем и объясним самые часто используемые поля:
| Поле | Обязательно | Зачем нужно | Ключевые моменты для новичков |
|---|---|---|---|
name | Да | Уникальный идентификатор, строчные буквы с дефисом (например, code-reviewer) | Избегайте дубликатов в рамках проекта, иначе один из них будет тихо отброшен |
description | Да | Сообщает Claude, «какие задачи следует ему назначать» | Чем точнее написано, тем лучше работает автоматическое делегирование, это ключ к вызову |
tools | Нет | Какие инструменты он может использовать | Отсутствие = наследование всех инструментов основного диалога; если хотите ограничить права, перечислите здесь разрешенные |
model | Нет | Какую модель использовать | sonnet/opus/haiku/inherit, по умолчанию inherit (та же, что в основном диалоге) |
permissionMode | Нет | Его режим разрешений | Доступные варианты: default/acceptEdits/auto/dontAsk/bypassPermissions/plan |
То, где лежит файл, имеет значение, местоположение определяет, «кто может им пользоваться». В официальной документации указано несколько уровней, но новичкам достаточно запомнить два самых популярных:
| Где лежит | Кто может использовать | Подходит для |
|---|---|---|
~/.claude/agents/ | Все ваши проекты | Персональный универсальный помощник, например, код-ревьюер, которого вы хотите использовать везде |
.claude/agents/ | Только текущий проект | Эксклюзивный помощник для проекта; может быть закоммичен в git и разделен с командой |
Рекомендация по проектному уровню очень практична:
Проектные subagents (
.claude/agents/) отлично подходят для субагентов, специфичных для кодовой базы. Добавляйте их в систему контроля версий, чтобы ваша команда могла совместно использовать и улучшать их.
Последняя ловушка для новичков, на которую обращается особое внимание с помощью пометки Note — после ручного написания или прямого редактирования файла на диске, необходимо перезапустить сессию, чтобы изменения загрузились; но те, что созданы через интерфейс /agents, работают сразу, без перезапуска. Когда вы впервые пишете субагента вручную, легко столкнуться с ситуацией, когда вы зовете его, а он не реагирует, и вы думаете, что ошиблись в коде, а на самом деле просто забыли перезапустить.
💡 Краткий итог: субагент — это Markdown файл, блок YAML управляет конфигурацией (обязательны только
name/description), основной текст — это роль; если положить в~/.claude/agents/, будет доступен глобально, в.claude/agents/— только в проекте; после ручного изменения файла не забудьте перезапустить сессию.
05 Как запускать: Автоматическое делегирование vs Прямой вызов
Субагент создан, как заставить его работать? Есть два пути: Claude смотрит на «описание должности» и автоматически назначает задачу, или вы вызываете его по имени напрямую.
Путь первый: Автоматическое делегирование на основе description
Вы просто высказываете свою просьбу, Claude берет вашу фразу, сравнивает её с description каждого субагента и, если находит совпадение, автоматически поручает задачу ему. Вы можете даже не знать о существовании этого субагента.
Вот почему в предыдущем разделе постоянно подчеркивалось, что description нужно писать четко — это единственное основание для делегирования Claude. В официальной документации есть небольшой совет по повышению «инициативности»: если добавить в описание фразы вроде «use proactively» (использовать активно), Claude будет охотнее сам поручать задачи. Например, если в описании ревьюера написать «активно использовать сразу после написания или изменения кода», то как только вы измените код, он может сам вызвать ревьюера.
Аналогия: насколько хорошо написано описание должности, определяет, будет ли HR назначать ему правильную работу. description — это «объявление о вакансии» для этого аутсорс-поста. Если объявление расплывчато («выполнение некоторых задач»), HR (Claude) вообще не будет знать, какую работу ему дать; если оно точное («специализируется на ревью безопасности кода и именования, вступает в дело после написания кода»), то при появлении подходящей задачи HR естественно вспомнит о нём.
Путь второй: Вы напрямую называете имя
Когда автоматическое делегирование не срабатывает, или вы просто хотите указать на определенного субагента, назовите его сами. Официальная документация предлагает несколько способов от легких к тяжелым, новичкам хватит первых двух:
Вызов на естественном языке — просто назовите его имя в предложении, без специального синтаксиса:
用 code-reviewer 子代理看看我最近的改动Вызов через @ — введите @ и выберите из выпадающего списка (после выбора появится текст вида @"code-reviewer (agent)"), или не используйте список, а введите вручную @agent- плюс имя. Этот способ «гарантирует» его использование, не оставляя право выбора за Claude:
@agent-code-reviewer 看看这次认证相关的改动Разница между ними официально объяснена очень четко: естественный язык означает, что «Claude обычно делегирует», а @ означает «гарантирует запуск указанного subagent». Надежная привычка — для новых субагентов, с характером которых вы еще не разобрались, всегда используйте вызов через @, чтобы Claude не принимал самостоятельных решений, не назначив задачу, а вы бы не думали, что субагент сломался.
Как возвращаются результаты
Независимо от того, как вы его вызвали, после завершения работы субагент возвращает в основной диалог только «результат», весь процесс остается в его собственной комнате. Это и есть подтверждение метафоры из раздела 01: помощник просматривает тысячу строк логов и возвращает только бумажку «ошибка в этих трех строках». Официальная цитата: он «работает независимо и возвращает результаты», при этом «подробный вывод остается в контексте субагента, а в ваш основной диалог возвращается только релевантное резюме».
⚠️ Но здесь кроется ловушка с объемом, о которой официально предупреждают: если запустить слишком много субагентов, и каждый из них вернет кучу детальных результатов, они всё равно завалят ваш основной диалог. Поэтому не стоит злоупотреблять параллельностью — вернемся к границе из раздела 02: отдавать на аутсорс стоит только те задачи, которые самодостаточны и возвращают лишь один вывод.
💡 Краткий итог: запуск идет двумя путями — через автоматическое назначение Claude по
description(описание должно быть точным), или через прямой вызов естественным языком / через@(@гарантирует использование); субагент возвращает только результат в основную линию, но если результатов слишком много, стол всё равно окажется завален.
06 Практика: Создаем минимального субагента за 5 минут и поручаем ему работу
Только читать, не пробуя — пустая трата времени. Ниже мы создадим минимального субагента вручную и заставим его реально работать, чтобы вы своими глазами увидели цепочку «аутсорс → возврат только результата». И всё это без сложного окружения.
Мы создадим самого простого: «Код-ревьюера», доступного только для чтения, который специализируется на чтении файлов и предоставлении советов по улучшению, но не имеет права изменять ни одного слова (даем только Read, но не Write/Edit).
Шаг 1: Создание проекта-игрушки и директории для субагентов (Mac / Linux)
mkdir sub-demo
cd sub-demo
mkdir -p .claude/agentsОжидание: В папке sub-demo появилась директория .claude/agents/. Введя ls .claude, вы увидите, что папка agents на месте.
Шаг 2: Написание конфигурационного файла субагента вручную
Используя удобный вам редактор, создайте файл sub-demo/.claude/agents/code-reviewer.md и вставьте:
---
name: code-reviewer
description: 只读的代码点评员,读指定文件并从可读性、命名、潜在 bug 角度给改进建议。审查任何代码时主动使用。
tools: Read, Grep, Glob
---
你是一个资深代码审查员,只挑刺、不改代码。
被调用时:
1. 读用户指定的文件
2. 按可读性、命名、潜在 bug 三类列出问题
3. 每条问题给出具体的改进建议,但不要直接修改文件
按严重程度分组:必须改、建议改、可以考虑。Обратите внимание, что мы не указали поле model — по умолчанию официально используется значение inherit (та же модель, что и в основном диалоге). Для tools указаны только три инструмента только для чтения, поэтому даже если он захочет что-то записать, он не сможет.
Шаг 3: Создание кода «с пространством для улучшений» для ревью
echo 'def f(a, b):
return a / b' > calc.pyИмя функции f и имена параметров a/b ужасны, и нет обработки деления на ноль — как раз для нашего ревьюера.
Ожидание: В sub-demo появился файл calc.py с содержимым из этих двух строк.
Шаг 4: Запуск Claude и вызов субагента для работы
claudeВойдя, назовите его напрямую с помощью @ (чтобы гарантировать его использование, а не полагаться на самодеятельность Claude). Введите вручную @agent-code-reviewer или введите @ и выберите code-reviewer из выпадающего списка:
@agent-code-reviewer 点评一下 calc.pyОжидание: Вы увидите, что Claude делегирует задачу субагенту code-reviewer (в интерфейсе будет указано, что этот субагент работает, возможно, с цветовой меткой). Он прочитает calc.py в своем контексте, а затем вернет только одно «заключение-ревью» в основной диалог — примерно укажет, что имена f, a/b не передают смысла, отсутствует обработка деления на ноль, и предложит изменить на более понятные имена с добавлением проверки границ. Заметьте, он дает только советы и не трогает ваш файл (потому что вы не дали ему инструмент Write).
Шаг 5: Убедитесь, что он действительно не изменил файл
Выйдите из Claude (введите exit или нажмите Ctrl+D) и вернитесь в терминал:
cat calc.py(В Windows PowerShell используйте type calc.py)
Ожидание: calc.py остался абсолютно целым, все те же две строки — вот она, сила «ограничения прав»: вы дали только инструменты для чтения, и даже если бы он попытался помочь вам исправить файл, он бы не смог, ему остается только говорить.
Пройдя эти 5 шагов, вы собственноручно проверили всю цепочку: «написание конфигурации → загрузка → вызов по имени → работа субагента в независимом контексте → возврат только результата, без превышения полномочий». В будущем любой субагент — это по сути та же механика с изменением роли и настройкой инструментов.
⚠️ Если при вводе
@agent-code-reviewerего нет в списке, скорее всего, файл субагента не загрузился — для написанных вручную файлов требуется перезапуск сессии (ошибка из раздела 04). Выйдите и зайдите снова, или просто создайте через интерфейс/agents(не требует перезапуска).
💡 Краткий итог: напишите вручную ревьюера только с правами Read, вызовите его через
@, а затем сделайтеcat, чтобы убедиться, что файл не тронут — пройти лично цепочку «независимая работа + ограничение прав без нарушения границ» полезнее, чем запомнить десяток полей.
07 Резюме
В этой статье мы разобрали «субагентов» (Subagents) от вопроса «стоит ли использовать» до «как создавать, как вызывать, как проверять» — суть не в том, чтобы научить вас дробить задачи, а в том, чтобы помочь вам выстроить границу принятия решения: «отдать на аутсорс или сделать самому».
Давайте соберем ключевые моменты:
| Что нужно понять | Ответ | Ключевой момент |
|---|---|---|
| Что такое субагент | Помощник на аутсорсе с независимым контекстом + ролью + инструментами | Начинает с чистого листа, не видит предыдущих разговоров |
| Что он решает | Изоляция контекста, специализация задач, параллельность | Самое ценное: «грязная работа остается у него, возвращается только результат» |
| Когда не нужно использовать | Простые задачи, частые итерации, важна скорость | Чрезмерное дробление ≠ профессионализм, излишнее дробление = медленнее и дороже |
| Как создать | Интерактивно через /agents или вручную в .claude/agents/name.md | Обязательны только name/description; ручное изменение требует перезапуска |
| Как вызывать | Автоделегирование через description / естественный язык / вызов через @ | @ гарантирует вызов; description должен быть точным |
Теперь вы должны уметь: Определять, следует ли передать задачу субагенту на аутсорс (вместо того, чтобы дробить ее на эмоциях), создавать субагента с эксклюзивной ролью и ограниченными инструментами с помощью /agents или ручного создания файла, а также заставлять его работать через автоматическое делегирование или прямой вызов через @, получая чистый результат в основную линию. Это чувство меры — «когда аутсорс, а когда делать самому» — и есть настоящий порог для субагентов; функции осваиваются за 10 минут, а вот меру нужно прочувствовать на практике.
Вспомните ту самую контринтуитивную фразу из начала: Субагенты — мощная штука, но их сила в «правильных сценариях», а не в «дроблении на части».
💡 Краткий итог: Порог для работы с субагентами — это не «уметь создавать», а «знать, когда создавать» — грязная, самодостаточная работа, требующая ограничения прав — на аутсорс; простые, быстрые задачи с частыми итерациями — делаем сами.
Следующая статья 24 «Плагины (Plugins)» — к этому моменту у вас накопилось всё больше «аксессуаров»: CLAUDE.md, слэш-команды, Skill, а теперь добавился Subagent. Настраивать их по одному кажется слишком раздробленным процессом, верно? В следующей статье мы научимся упаковывать их все в плагин, который можно установить или поделиться одним кликом, или даже взять готовый из «рынка плагинов». Подумайте: можно ли в один клик перенести к себе субагентов и команды, настроенные другими?