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.
В 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 для реализации.
Проверь себя
Основной агент поручил subagent-у исследовать модуль платежей. Что окажется в context основного агента?
Вы перешли на subagents ради экономии. Что из этого правда?
Нужно переименовать одну переменную в одном файле. Стоит ли звать subagent?
Вы пишете поручение для subagent-а. Что важно учесть?
Источники
- Anthropic, Create custom subagents
- Anthropic, How Claude Code works
- Anthropic, Best practices for Claude Code
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.