Перейти к содержимому
PD
Claude Code

Субагенты в Claude Code: параллельная работа

Что такое субагент, чем он отличается от основной сессии, когда делегирование экономит контекст и время, а когда только мешает, и как контролировать результат чужой работы.

Все статьи гида Claude Code · 13

Субагент - это отдельная сессия, которую основной агент запускает под конкретную задачу. У неё свой контекст, свой результат и никакой памяти о вашем разговоре.

Что такое субагент

Аналогия простая: вы поручаете задачу человеку, который не сидел на встрече. Он сделает ровно то, что написано в постановке, и вернёт результат. Всё, что вы не написали, он не знает.

Практически это выглядит так: основной агент формулирует задачу, запускает субагента, тот работает в своём окне контекста и возвращает итог. В основную сессию попадает только этот итог, а не всё, что субагент прочитал по дороге.

Именно в этом главная выгода. Поиск по большому репозиторию возвращает три страницы вывода; если делать его в основной сессии, эти три страницы остаются в контексте навсегда. Субагент читает их у себя и возвращает абзац.

Когда делегировать, а когда нет

Стоит делегировать:

  • Разведку. «Найди, где обрабатывается загрузка файлов, и опиши схему». Много чтения, короткий ответ.
  • Независимый анализ. Проверка гипотезы, обзор чужого модуля, поиск похожих мест в коде.
  • Однотипную работу по списку. Десять файлов, в каждом одна и та же правка.
  • Проверку. Отдельный субагент, который смотрит на результат свежим взглядом, ловит то, чего не видит автор правки. Про этот приём подробно - в блоге: слой верификации у агента.

Не стоит делегировать:

  • Задачу, которую вы сами не сформулировали. Субагент не переспросит.
  • Работу, требующую всего контекста разговора. Пересказ выйдет длиннее самой задачи.
  • Мелкую правку. Накладные расходы на постановку превысят выгоду.
  • Параллельные правки одного файла. Это конфликт, и разгребать его дороже, чем сделать последовательно.

Параллельные задачи

Несколько субагентов на независимых задачах - самый заметный выигрыш по времени. Условие ровно одно: задачи должны быть действительно независимы.

Хороший пример: проверить пять модулей на одну и ту же проблему. Каждый субагент смотрит свой модуль, никто никому не мешает, результаты собираются в конце.

Плохой пример: три субагента правят один и тот же файл с разных сторон. Последний перезапишет остальных или вы получите наполовину применённые изменения.

Практическое правило: распараллеливайте чтение, сериализуйте запись.

Контроль результата

Субагент вернёт текст. Текст выглядит убедительно независимо от того, правда в нём или нет, - это общее свойство языковых моделей, и оно не лечится формулировками. Отсюда три правила:

  1. Требуйте проверяемый результат. Не «проверь, всё ли в порядке», а «запусти тесты и приложи вывод». Проверяемое утверждение можно перепроверить, оценочное - нет.
  2. Не принимайте выводы без источника. Если субагент говорит, что функция не используется, он должен показать, где искал.
  3. Смотрите диф, а не отчёт. Отчёт описывает намерение, диф показывает факт. Расходятся они чаще, чем хотелось бы.

Это тот же принцип, что и в любой агентной системе: доверие строится на верификации, а не на уверенном тоне ответа. Развёрнуто - в статье про guardrails для агентов в проде.

Что дальше

Общая теория делегирования между агентами - гид по ИИ-агентам. Субагенты хорошо ложатся на скиллы: описанная процедура делегируется целиком. Про экономию контекста - лимиты. Общая картина - гид по Claude Code.

Вопросы и ответы

Зачем нужны субагенты, если можно всё сделать в основной сессии?

Главная причина - контекст. Субагент читает десятки файлов в своём окне и возвращает короткий вывод, а не тонну прочитанного. Вторая причина - параллельность: несколько независимых задач выполняются одновременно, а не по очереди.

Помнит ли субагент разговор из основной сессии?

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

Можно ли давать субагенту править файлы?

Можно, но параллельно правящие один и тот же участок субагенты создают конфликты. Практика: разведку и анализ распараллеливать смело, а правки в общих файлах держать последовательными или разводить по разным областям кода.

Ещё по теме