AmigaОбучение ИИ
Модуль 1 · Субагенты · урок 1 из 4

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

9 мин чтения▶ есть видеоверсия

Если вы работали с Claude Code хотя бы неделю, вы наверняка видели в интерфейсе строчку вроде «Explore: searching codebase» и не до конца понимали, что происходит. Это работал субагент. К концу урока вы будете знать, что это такое, почему основной разговор становится хуже, когда в него попадает много лишнего, и как субагенты решают эту проблему.

Проблема: контекст заканчивается

У любого разговора с Claude есть контекстное окно — объём текста, который модель держит «в голове» одновременно. Туда попадает всё: ваши сообщения, ответы модели, содержимое прочитанных файлов, вывод команд, результаты поиска. Окно большое, но конечное, и, что важнее, качество работы начинает падать задолго до того, как оно заполнится. Модель, у которой в контексте лежат сорок тысяч строк логов, хуже помнит, что вы просили полчаса назад.

Возьмём типичную задачу. Разработчик просит: «Найди, где в проекте формируются push-уведомления, и проверь, что везде используется новый сервис». Чтобы ответить, Claude должен прочитать десятки файлов. Если он делает это прямо в основном разговоре, каждый прочитанный файл остаётся в контексте навсегда. Ответ занимает десять строк, а мусора после него — на сотни килобайт. Следующие два часа работы идут с этим балластом.

Claude Code умеет сжимать контекст, когда он переполняется, но сжатие теряет детали. Лучше не засорять контекст, чем потом его чистить.

Решение: отдать работу отдельному экземпляру

Субагент — это отдельный экземпляр Claude, который запускается из основного разговора для конкретной задачи. У него три собственных вещи:

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

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

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

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

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

  • свою системную инструкцию;
  • сообщение с заданием от основного разговора;
  • файлы CLAUDE.md проекта и снимок состояния git (у встроенных субагентов Explore и Plan этого нет — они специально сделаны лёгкими);
  • навыки, которые для него предзагружены, если это указано в его описании.

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

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

Есть исключение — форк. Командой /subtask можно запустить копию текущего разговора, которая унаследует всю историю, а вызовы инструментов будет держать отдельно. Это для случаев, когда объяснять контекст с нуля дороже, чем скопировать его целиком.

Три встроенных субагента

Claude Code поставляется с тремя субагентами, которыми Claude пользуется сам, без вашего участия.

Explore — быстрый поиск по кодовой базе. Только чтение: файлы, поиск по содержимому, поиск по именам. Когда Claude нужно понять, как что-то устроено в проекте, он запускает Explore и указывает ему глубину: быстрый точечный поиск, средний или очень тщательный.

Plan — исследование в режиме планирования. Тоже только чтение. Работает, когда вы включили plan mode и Claude собирает информацию перед тем, как предложить план.

General-purpose — универсальный, со всеми инструментами. Для задач, где нужно и исследовать, и менять код, и рассуждать.

Explore и Plan намеренно не читают CLAUDE.md и не смотрят git, чтобы стартовать быстро и дёшево. General-purpose ведёт себя как полноценный Claude.

Три выгоды

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

Параллелизм. Субагенты можно запускать несколько сразу. Аналитик просит сравнить, как три конкурента реализуют онбординг, — Claude запускает три исследования параллельно и сводит результаты. По умолчанию одновременно могут работать до двадцати субагентов, и они умеют работать в фоне, пока вы продолжаете диалог.

Специализация. У субагента своя инструкция и свои инструменты. Ревьюер кода получает только чтение — он физически не сможет «починить» что-то по дороге. Проверка вёрстки на доступность получает подробный чек-лист, который в основном разговоре был бы лишним. А простым задачам можно назначить более быструю модель.

Как это выглядит в жизни

Мобильный разработчик пишет в Claude Code: «Проверь, что все экраны используют строки из файла локализации, а не хардкод». В проекте восемьдесят экранов. Claude запускает субагента с заданием «найди в директории screens все строковые литералы в пользовательском интерфейсе, которые не берутся из локализации, и верни список с путями и номерами строк».

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

Где живут ваши субагенты

Помимо встроенных, вы можете описать своих. Субагент — это markdown-файл с YAML-шапкой. Проектные лежат в .claude/agents/ и попадают в git вместе с проектом, личные — в ~/.claude/agents/ и работают во всех ваших проектах. Ещё субагенты приходят с плагинами. В шапке минимум два поля: name и description, а тело файла становится системной инструкцией. Как именно их создавать — в следующем уроке, «Создаём субагента».

Попробуйте сами

10–15 мин на рабочем месте
  1. Откройте любой рабочий проект в Claude Code и задайте широкий вопрос об архитектуре: «Как в этом проекте устроена обработка ошибок?» Посмотрите, запустит ли Claude субагента Explore. После ответа выполните /context и оцените, сколько занимает основной контекст.
  2. Вспомните три задачи за прошлую неделю, где Claude выдал много промежуточного вывода (логи, результаты поиска, содержимое файлов), который вам потом не понадобился. Это кандидаты на делегирование.
  3. Спросите у Claude Code: «Какие субагенты тебе доступны?» Сравните ответ со списком встроенных из этого урока.

Коротко

  • Субагент — отдельный экземпляр Claude со своим контекстом, инструкцией и инструментами.
  • В основной разговор возвращается только отчёт; черновая работа остаётся в контексте субагента.
  • Субагент не видит историю основного разговора — задание должно быть самодостаточным.
  • Встроенные: Explore (поиск, только чтение), Plan (исследование в режиме плана), general-purpose (всё).
  • Три выгоды: чистый контекст, параллельная работа, специализация.
  • Свои субагенты — это markdown-файлы в .claude/agents/ или ~/.claude/agents/.

Видеоверсия

Сценарий озвучки · 505 слов, ≈ 4 мин

Если вы видели в Claude Code строчку «Explore» и не понимали, что происходит, — это работал субагент. Сейчас разберём, что это такое и зачем оно нужно.

Начнём с проблемы. У разговора с Claude есть контекстное окно — объём текста, который модель держит в голове одновременно. Туда попадает всё: ваши сообщения, прочитанные файлы, вывод команд. Окно большое, но конечное. И хуже того — качество работы падает задолго до того, как окно заполнится. Модель, у которой в контексте лежат тысячи строк логов, хуже помнит, о чём вы просили полчаса назад.

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

Субагент решает эту проблему. Это отдельный экземпляр Claude, который основной разговор запускает под конкретную задачу. У него своё контекстное окно — чистое. Своя системная инструкция — текст о том, кто он и как должен работать. И свои инструменты — например, только чтение файлов, без права что-то менять.

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

Теперь самое важное, на чём спотыкаются новички. Субагент не видит основной разговор. Совсем. Он не знает, что вы обсуждали, какие файлы открывали, какие решения приняли. При старте он получает свою инструкцию, текст задания, файлы клод-эм-дэ проекта и состояние git. Историю разговора — нет. Поэтому задание субагенту должно содержать всё необходимое. Если вы полчаса объясняли, что модуль оплаты переезжает на новый API, а потом сказали «проверь оплату» — субагент этого объяснения не слышал.

В Claude Code есть три встроенных субагента. Explore — быстрый поиск по коду, только чтение. Claude запускает его, когда нужно понять, как что-то устроено, и указывает глубину поиска. Plan — исследование в режиме планирования, тоже только чтение. И general-purpose — универсальный, со всеми инструментами, для задач, где нужно и искать, и менять.

Зачем всё это? Три выгоды. Первая — чистый основной контекст: черновая работа остаётся за кадром. Вторая — параллельность: можно запустить несколько субагентов сразу, например три исследования конкурентов, и свести результаты. Третья — специализация: ревьюер кода получает только чтение и физически не может ничего сломать, а проверка вёрстки получает подробный чек-лист, который в основном разговоре был бы лишним.

Живой пример. Мобильный разработчик просит проверить, что все экраны берут строки из локализации, а не хардкодят. Экранов восемьдесят. Claude запускает субагента, тот читает все восемьдесят файлов, находит четырнадцать нарушений и возвращает отчёт на двадцать строк. Только эти двадцать строк попадают в основной разговор.

Кроме встроенных, вы можете описать своих субагентов. Это обычный markdown-файл с шапкой, где указаны имя и описание, а тело файла становится системной инструкцией. Проектные лежат в папке точка-клод, агентс внутри проекта, личные — в домашней директории. Как их создавать, разберём в следующем уроке.

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

Отметка хранится только в вашем браузере