$ sudo teach IT

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

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

Что уже умеем / что добавим

Вы умеете управлять контекстом вручную: следите за заполнением окна, чистите сессию, выносите постоянные правила в CLAUDE.md, а повторяющиеся процедуры — в скиллы. Вы даже видели скилл с context: fork, который выполняется в отдельном контексте.

Теперь мы разберём механизм, на котором это построено. Добавим понимание изоляции контекста, познакомимся со встроенными подагентами Explore, Plan и general-purpose и научимся осознанно решать, что делегировать, а что оставить в главной беседе.

Что вы узнаете в рамках статьи

  • Что такое подагент и почему у него собственное контекстное окно
  • Что попадает в стартовый контекст подагента, а что не попадает никогда
  • Чем встроенные Explore и Plan отличаются от general-purpose
  • Почему Explore и Plan не читают CLAUDE.md и git status
  • В каких случаях делегирование экономит контекст, а в каких вредит

Ключевые термины

  • Подагент (subagent) — вспомогательный агент внутри вашей сессии, работающий в собственном контекстном окне и возвращающий в главную беседу только итоговый результат.
  • Изоляция контекста — свойство подагента: его чтения файлов, поиски и вызовы инструментов не попадают в контекст родительской беседы.
  • Делегирующее сообщение — задача, которую Claude формулирует для подагента при передаче работы; это единственное, что подагент знает о вашем разговоре.
  • Explore — встроенный подагент только для чтения, предназначенный для поиска файлов и исследования кодовой базы.
  • Plan — встроенный подагент только для чтения, который собирает материал для плана в отдельном контексте.
  • general-purpose — встроенный подагент с полным набором доступных подагентам инструментов: и исследование, и правки.

Что видит подагент, когда стартует

Главное свойство подагента — он начинает с чистого листа. Он не видит вашу переписку, не знает, какие скиллы вы вызывали, и не имеет доступа к файлам, которые Claude уже прочитал в главной беседе.

Стартовый контекст обычного подагента состоит из вполне конкретного набора:

  • собственный системный промпт агента (тело его markdown-файла или предопределённый промпт встроенного агента) плюс сведения об окружении;
  • делегирующее сообщение — задача, которую сформулировал Claude;
  • файлы CLAUDE.md всей иерархии, которую загружает главная беседа;
  • снимок git status, сделанный в начале родительской сессии;
  • полное содержимое скиллов, перечисленных в поле skills агента.

Отсюда следует практический вывод: подагент знает ровно столько, сколько написано в делегирующем сообщении. Если задача звучит как «проверь это», подагент не поймёт, что такое «это». Формулируйте запрос так, чтобы он был самодостаточным.

Плохо: используй подагента и проверь, всё ли там в порядке

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

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

Три встроенных подагента

Вам не нужно ничего настраивать, чтобы начать: три подагента доступны сразу.

Explore — агент для поиска и исследования. Инструменты у него только на чтение, Write и Edit заблокированы. Он не сломает код, потому что физически не может писать в файлы. Claude указывает ему степень тщательности при вызове: quick, medium или very thorough. Explore одноразовый — он не возвращает идентификатор агента, и продолжить его нельзя.

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

general-purpose — полный набор инструментов, доступных подагентам. Это выбор для задач, где нужно и найти, и поправить.

Обращение к подагенту — обычный текст:

Используй подагента Explore, чтобы найти все обработчики
маршрутов в проекте, и верни список путей с номерами строк

Почему Explore и Plan не читают CLAUDE.md

Это единственные два подагента, которые пропускают CLAUDE.md и снимок git status. Все остальные — и встроенные, и ваши собственные — загружают их. Отключить или включить это поведение нельзя: поля во frontmatter для этого не существует.

Логика простая. Explore и Plan существуют ради скорости и дешевизны: их работа — быстро просмотреть проект. CLAUDE.md проекта может весить тысячи токенов, и грузить его в каждый поисковый запуск накладно.

Практическое следствие важное. Если в вашем CLAUDE.md написано «не трогай каталог vendor/», Explore этого правила не увидит. Но результат Explore читает главная беседа — а она CLAUDE.md загрузила. В большинстве случаев этого достаточно. Если же правило критично именно на этапе поиска, повторите его в запросе:

Используй Explore, чтобы найти все вызовы устаревшего API.
Игнорируй каталог vendor/ — там сторонний код

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

Подагент — не бесплатная операция. Он стартует с нуля и тратит время на сбор контекста, а его итоговый отчёт всё равно занимает место в вашей беседе.

Делегируйте, когда задача даёт много вывода, который вам не нужен целиком: прогон тестов, обход большой кодовой базы, разбор логов, чтение документации.

Используй подагента, чтобы прогнать тесты и вернуть
только упавшие с текстом ошибки

В главной беседе вывод занял бы сотни строк. От подагента приходит короткий список.

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

Частые ошибки

  • Расплывчатая формулировка задачи. Подагент не видит вашей переписки, поэтому «проверь то, о чём мы говорили» для него пустой звук. Формулируйте задачу так, чтобы её понял человек, зашедший в проект с нуля.
  • Ожидание, что Explore применит правила из CLAUDE.md. Explore и Plan этот файл не читают. Если правило важно для самого поиска — повторите его в запросе.
  • Делегирование мелких правок. Изменить одну строку в известном файле быстрее самому: подагент потратит время на то, чтобы заново найти этот файл.
  • Запуск множества подагентов ради экономии. Каждый вернувшийся отчёт занимает контекст. Десять подробных отчётов экономии не дадут.

Наиболее частые вопросы

  • Видит ли подагент мою переписку? — Нет. Обычный подагент стартует с чистым контекстом; исключение только форк, о нём в уроке 7.4.
  • Может ли Explore случайно изменить файл? — Нет. У Explore инструменты только на чтение, Write и Edit ему недоступны.
  • Что именно возвращается в мою беседу? — Только финальный отчёт. Все прочитанные подагентом файлы и вызовы инструментов остаются в его контексте.
  • Нужно ли что-то настраивать, чтобы пользоваться подагентами? — Нет. Explore, Plan и general-purpose доступны сразу, достаточно попросить Claude их использовать.
  • Можно ли продолжить работу завершившегося Explore? — Нет, Explore и Plan одноразовые: они не возвращают идентификатор агента.

Итоги

Отличная работа — вы разобрались с одним из самых недооценённых механизмов Claude Code. Теперь вы понимаете, почему подагент экономит контекст: шумная часть работы остаётся у него, а к вам приходит только выжимка. Вы знаете, из чего складывается его стартовый контекст, чем Explore и Plan отличаются от general-purpose и почему эти двое сознательно не читают CLAUDE.md.

Самое ценное здесь — умение решать, что делегировать. Это навык, который приходит с практикой, и теперь у вас есть критерии: много шумного вывода — делегируйте, нужен диалог — оставляйте себе. В следующем уроке мы перейдём от встроенных агентов к собственным: научимся создавать файл подагента в .claude/agents/, ограничивать ему набор инструментов и выбирать модель под задачу.

На следующий урок