Коли субагенти корисні, а коли зайві
У Claude Code є інструмент Agent, який дозволяє запускати окремих субагентів прямо під час діалогу. Кожен субагент працює у власному контексті, виконує завдання і повертає результат головному агенту.
Звучить потужно, але на практиці здебільшого субагенти не потрібні. У цій статті розберемось: коли розділення на субагентів справді допомагає, а коли лише заважає.
Безпосередньо викликати Agent tool із CLAUDE.md чи slash-команди не можна — Claude Code сам вирішує, чи використовувати його. Але ви можете впливати на це рішення через промпти.
Як це працює:
Ключові властивості:
- Ізольований контекст: субагент не бачить історію основного діалогу — лише промпт, з яким його запустили
- Стиснення результату: скільки б файлів субагент не прочитав і команд не виконав, назад повертається лише стисла вижимка
- Паралельний запуск: кілька субагентів можуть працювати одночасно
Найтиповіший випадок. Ви просите Claude Code розібратися в проблемі, і треба перевірити кілька напрямків одночасно.
Наприклад, запитуєте: «Як у проєкті реалізована автентифікація?»
Без субагентів Claude Code діятиме послідовно: читатиме auth controller → middleware → routes → model → config… Крок за кроком — повільно.
Із субагентами:
Одночасно запускаються 3 субагенти:
- Агент 1: досліджує логіку автентифікації в controller і middleware
- Агент 2: аналізує моделі користувачів і сесій
- Агент 3: перевіряє конфігураційні файли та змінні оточення
Три напрямки працюють паралельно, результати зводяться докупи. У CLAUDE.md це можна позначити так:
## Дослідницькі завдання
При аналізі проблем, що стосуються кількох модулів, запускай
кілька субагентів паралельно для дослідження різних напрямків,
потім зводь результати.
Контекстне вікно Claude Code обмежене. Якщо підзавдання вимагає прочитати купу файлів, але в підсумку потрібен лише висновок — субагент захистить основний контекст від «інформаційного сміття».
Типові приклади:
Спільна ознака цих завдань — багато вхідних даних, мало вихідних. Субагент перетравлює обсяг усередині себе й повертає лише суть.
Іноді ви не впевнені, що зміни нічого не зламають. Субагент із параметром isolation: "worktree" працює в окремому git worktree. Навіть якщо щось піде не так — ваша робоча директорія залишиться неушкодженою.
## Ризикований рефакторинг
Для масштабного рефакторингу використовуй субагентів з ізоляцією через worktree.
Застосовуй зміни лише після перевірки результату.
Підходящі ситуації:
- Пробний рефакторинг: невідомо, чи спрацює підхід — нехай субагент спробує
- Порівняння варіантів: реалізувати завдання двома способами паралельно й порівняти
- Генерація коду: створити шаблонний код, перевірити й лише потім злити
«Перейменуй цю функцію з camelCase на snake_case» — тут простіше зробити напряму. Накладні витрати на запуск субагента (формування контексту, очікування відповіді, розбір результату) перевищать час самої роботи.
Правило: якщо завдання вирішується одним Grep + одним Edit — не створюй субагента.
«Прочитай конфіг → зміни код на основі конфігу → онови тести під зміни»
У такому ланцюжку кожен крок залежить від попереднього. Якщо рознести по субагентах, доведеться передавати проміжні результати через промпти — незручно і легко втратити інформацію. Краще робити послідовно.
Субагент повертає текстовий підсумок, а не структуровані дані. Якщо потрібна точна правка (наприклад, вставити конкретний код на рядку 47), надійніше доручити це головному агенту.
Субагенти добрі для «дослідити й дати висновок», а не для «внести точну зміну».
Якщо діалог щойно почався й контекстне вікно майже порожнє, немає сенсу «економити контекст» через субагентів. Замислюватися про це варто, коли розмова затягнулася і головний агент починає стискати історію.
Реальний приклад: дослідити всі контролери Rails-проєкту, що використовують before_action, і проаналізувати патерни автентифікації та авторизації.
Без субагента:
Claude Code послідовно читає файли контролерів — кожен займає місце в основному контексті. При 20 контролерах самі лише файли можуть з'їсти величезну кількість токенів. На момент формування висновків ранні деталі вже можуть бути втрачені при стисненні.
З субагентом:
Запуск субагента: «Прочитай усі контролери в app/controllers/,
знайди всі before_action-колбеки, проаналізуй патерни
автентифікації та авторизації, дай класифіковане зведення.»
Субагент читає всі файли у своєму контексті й повертає чисте зведення. Основний контекст практично не витрачається — отримавши висновки, можна рухатися далі.
Змусити Claude Code використовувати або не використовувати субагентів неможливо, але через CLAUDE.md можна задати вподобання:
## Вподобання щодо використання агентів
### Завдання, що підходять для субагентів
- Крос-модульне дослідження (одночасний пошук у 3+ директоріях)
- Масштабний пошук і аналіз коду
- Експериментальний рефакторинг (з ізоляцією через worktree)
### Завдання, що не потребують субагентів
- Правки в одному файлі
- Послідовні операції із залежностями між кроками
- Виправлення багів, коли точно відомо, де змінювати
«Процес» цього завдання значно об'ємніший за «результат»?
Якщо так — використовуй субагента: нехай він перетравить процес і поверне лише результат.
Якщо ні — роби напряму, без зайвих прошарків.
Субагенти — це не «що більше, то краще». Це інструмент керування контекстом, а не фреймворк для паралельного програмування. Правильне застосування допомагає Claude Code зберігати ясність мислення у великих проєктах. Неправильне — просто витрачає час на запуск.