Перейти к тексту

Claude Code: работа с coding-агентом2. Как устроен coding-агент

Subagent: отдельный context для побочной задачи

Засчитывается, когда отвечены все вопросы квиза

Зачем это нужно

Перед тем как поменять авторизацию, агенту нужно понять, как она устроена: прочитать два десятка файлов, пройти по вызовам, посмотреть тесты. Всё это нужно один раз — чтобы сделать вывод. Но если агент читает файлы сам, каждый из них остаётся в context до конца session, и к началу реализации вы уже ближе к dumb zone. Исследование нельзя сделать дешевле, не сделав хуже. Зато его можно вынести в отдельный context.

Как это устроено

Subagent — это отдельный агент, которому основной агент поручает побочную задачу. Оригинал курса сравнивает это с senior-разработчиком, который говорит junior-у: «Разберись вот с этим и расскажи, что нашёл».

По документации Claude Code каждый subagent работает в собственном context window, со своим system prompt, своим набором tools и своими permissions. Он начинает с чистого context: не видит вашу историю разговора и уже прочитанные файлы, а работает по сообщению-поручению, которое составляет основной агент. Исключение — fork, который получает копию текущего разговора. Когда subagent заканчивает, основной агент получает итог, а все tool calls subagent-а остаются в его context.

В context основного агента попадает только итогОсновной агент передаёт subagent-у поручение. Subagent читает много файлов в своём context window и возвращает короткий итог. Прочитанные файлы остаются у subagent-а.SubagentОсновной агентпоручение: разобраться в авторизациичитает 20 файлов в своём contextитог на один экран

В Claude Code есть встроенные subagents, которых Claude вызывает сам, когда задача подходит:

  • Explore — быстрый агент только для чтения: ищет и анализирует код, ничего не меняя. Claude задаёт ему глубину: quick, medium или very thorough.
  • Plan — исследователь для plan mode: собирает context, пока основной разговор остаётся только для чтения.
  • General-purpose — для сложных многошаговых задач, где нужно и исследовать, и менять код.

Subagent можно настроить по-своему: другой system prompt, другая модель, другой effort, ограниченный набор tools. Например, отправить механический поиск на более дешёвую модель. Свои subagents лежат файлами в .claude/agents/ проекта или в ~/.claude/agents/, а команда /agents подсказывает, как их создать. Основной агент может запускать несколько subagents параллельно, а subagent по умолчанию может запускать своих — до трёх уровней вложенности.

Практика

В своём репозитории попросите явно:

Use a subagent to investigate how this project handles configuration loading and report back the files involved

Посмотрите, как Claude Code показывает работу subagent-а отдельно от основного разговора и что именно возвращается к вам — короткий итог, а не содержимое файлов. Затем выполните /context и убедитесь, что прочитанные subagent-ом файлы не заняли место в вашем context.

Подводные камни

  • Токены всё равно тратятся. Subagent отправляет свои запросы, и они расходуют те же лимиты, что и основной разговор. Вы экономите место в context, а не обязательно деньги.
  • Subagent не знает того, что знаете вы. Он стартует без вашей истории, поэтому поручение должно быть самодостаточным. Плохо поставленная задача вернёт плохой итог.
  • Не всё стоит отдавать. Документация советует оставаться в основном разговоре, когда нужна частая обратная связь, когда этапы делят много общего context или когда правка маленькая: subagent-у ещё нужно время, чтобы собрать context с нуля. Subagent хорош там, где работа самодостаточна, производит много лишнего вывода и сводится к итогу.

Вывод: отдавайте subagent-у то, после чего вам нужен только вывод, а не весь путь к нему, — и основной context останется в smart zone для реализации.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.