Субагенти: коли варто розділяти, а коли — ні

Коли субагенти корисні, а коли зайві


У Claude Code є інструмент Agent, який дозволяє запускати окремих субагентів прямо під час діалогу. Кожен субагент працює у власному контексті, виконує завдання і повертає результат головному агенту.

Звучить потужно, але на практиці здебільшого субагенти не потрібні. У цій статті розберемось: коли розділення на субагентів справді допомагає, а коли лише заважає.

Механізм роботи субагентів

Безпосередньо викликати Agent tool із CLAUDE.md чи slash-команди не можна — Claude Code сам вирішує, чи використовувати його. Але ви можете впливати на це рішення через промпти.

Як це працює:

  1. Головний агент запускає субагента, передаючи йому промпт
  2. Субагент працює в ізольованому контексті й має доступ до більшості інструментів (читання файлів, пошук, виконання команд тощо)
  3. Після завершення субагент повертає результат одним повідомленням
  4. Головний агент отримує результат і продовжує роботу

Ключові властивості:
- Ізольований контекст: субагент не бачить історію основного діалогу — лише промпт, з яким його запустили
- Стиснення результату: скільки б файлів субагент не прочитав і команд не виконав, назад повертається лише стисла вижимка
- Паралельний запуск: кілька субагентів можуть працювати одночасно

Три сценарії, коли субагенти корисні

1. Паралельний пошук і дослідження

Найтиповіший випадок. Ви просите Claude Code розібратися в проблемі, і треба перевірити кілька напрямків одночасно.

Наприклад, запитуєте: «Як у проєкті реалізована автентифікація?»

Без субагентів Claude Code діятиме послідовно: читатиме auth controller → middleware → routes → model → config… Крок за кроком — повільно.

Із субагентами:

Одночасно запускаються 3 субагенти:
- Агент 1: досліджує логіку автентифікації в controller і middleware
- Агент 2: аналізує моделі користувачів і сесій
- Агент 3: перевіряє конфігураційні файли та змінні оточення

Три напрямки працюють паралельно, результати зводяться докупи. У CLAUDE.md це можна позначити так:

## Дослідницькі завдання
При аналізі проблем, що стосуються кількох модулів, запускай
кілька субагентів паралельно для дослідження різних напрямків,
потім зводь результати.

2. Захист основного контексту

Контекстне вікно Claude Code обмежене. Якщо підзавдання вимагає прочитати купу файлів, але в підсумку потрібен лише висновок — субагент захистить основний контекст від «інформаційного сміття».

Типові приклади:

  • Знайти всі виклики певного API у 50 файлах і виявити патерни використання
  • Розібрати великий конфігураційний файл, витягнути кілька ключових значень
  • Переглянути набір тестів і оцінити покриття

Спільна ознака цих завдань — багато вхідних даних, мало вихідних. Субагент перетравлює обсяг усередині себе й повертає лише суть.

3. Ізоляція ризикованих операцій

Іноді ви не впевнені, що зміни нічого не зламають. Субагент із параметром isolation: "worktree" працює в окремому git worktree. Навіть якщо щось піде не так — ваша робоча директорія залишиться неушкодженою.

## Ризикований рефакторинг
Для масштабного рефакторингу використовуй субагентів з ізоляцією через worktree.
Застосовуй зміни лише після перевірки результату.

Підходящі ситуації:
- Пробний рефакторинг: невідомо, чи спрацює підхід — нехай субагент спробує
- Порівняння варіантів: реалізувати завдання двома способами паралельно й порівняти
- Генерація коду: створити шаблонний код, перевірити й лише потім злити

Коли субагенти зайві

Прості прямолінійні завдання

«Перейменуй цю функцію з camelCase на snake_case» — тут простіше зробити напряму. Накладні витрати на запуск субагента (формування контексту, очікування відповіді, розбір результату) перевищать час самої роботи.

Правило: якщо завдання вирішується одним Grep + одним Edit — не створюй субагента.

Послідовні завдання з жорсткими залежностями

«Прочитай конфіг → зміни код на основі конфігу → онови тести під зміни»

У такому ланцюжку кожен крок залежить від попереднього. Якщо рознести по субагентах, доведеться передавати проміжні результати через промпти — незручно і легко втратити інформацію. Краще робити послідовно.

Завдання, що вимагають точних правок

Субагент повертає текстовий підсумок, а не структуровані дані. Якщо потрібна точна правка (наприклад, вставити конкретний код на рядку 47), надійніше доручити це головному агенту.

Субагенти добрі для «дослідити й дати висновок», а не для «внести точну зміну».

Коли контекст ще не заповнений

Якщо діалог щойно почався й контекстне вікно майже порожнє, немає сенсу «економити контекст» через субагентів. Замислюватися про це варто, коли розмова затягнулася і головний агент починає стискати історію.

Порівняння на практиці

Реальний приклад: дослідити всі контролери Rails-проєкту, що використовують before_action, і проаналізувати патерни автентифікації та авторизації.

Без субагента:

Claude Code послідовно читає файли контролерів — кожен займає місце в основному контексті. При 20 контролерах самі лише файли можуть з'їсти величезну кількість токенів. На момент формування висновків ранні деталі вже можуть бути втрачені при стисненні.

З субагентом:

Запуск субагента: «Прочитай усі контролери в app/controllers/,
знайди всі before_action-колбеки, проаналізуй патерни
автентифікації та авторизації, дай класифіковане зведення.»

Субагент читає всі файли у своєму контексті й повертає чисте зведення. Основний контекст практично не витрачається — отримавши висновки, можна рухатися далі.

Як спрямовувати використання субагентів через CLAUDE.md

Змусити Claude Code використовувати або не використовувати субагентів неможливо, але через CLAUDE.md можна задати вподобання:

## Вподобання щодо використання агентів

### Завдання, що підходять для субагентів
- Крос-модульне дослідження (одночасний пошук у 3+ директоріях)
- Масштабний пошук і аналіз коду
- Експериментальний рефакторинг (з ізоляцією через worktree)

### Завдання, що не потребують субагентів
- Правки в одному файлі
- Послідовні операції із залежностями між кроками
- Виправлення багів, коли точно відомо, де змінювати

Простий критерій

«Процес» цього завдання значно об'ємніший за «результат»?

Якщо так — використовуй субагента: нехай він перетравить процес і поверне лише результат.
Якщо ні — роби напряму, без зайвих прошарків.

Субагенти — це не «що більше, то краще». Це інструмент керування контекстом, а не фреймворк для паралельного програмування. Правильне застосування допомагає Claude Code зберігати ясність мислення у великих проєктах. Неправильне — просто витрачає час на запуск.