Субагент (Subagent): что это и зачем главный агент раздаёт работу помощникам
Субагент (subagent) — это отдельный экземпляр агента, которого основной агент запускает для узкой подзадачи. У субагента свой контекст, свои права на инструменты и своя модель, а родителю он возвращает короткий отчёт, а не всю переписку.
Главный агент остаётся дирижёром: ставит задачи и сводит отчёты, а работу делает помощник — в своей сессии и со своим контекстным окном.
Как это работает
Цикл тот же, что у любого агента; отличается обвязка:
-
Запуск. Родитель формулирует цель и передаёт нужный контекст: в Claude Code — вызовом инструмента
Agent, в Cline —spawn_agent, в Hermes —delegate_task. Кого звать, агент решает по описанию (description) субагента. - Чистый контекст. Историю родителя субагент не видит: у него есть переданная задача и свой системный промпт.
- Работа в рамках прав. Он читает файлы, ищет по репозиторию, запускает команды — только выданными инструментами.
- Отчёт. В контекст родителя попадает итог, но не промежуточные вызовы и сырые логи.

Родитель раздаёт задачи (fan-out), субагенты работают параллельно, отчёты возвращаются родителю (fan-in).
Зачем агенту помощники
- Главный контекст не забивается. Поиск по репозиторию и прогон тестов дают гору ненужного потом вывода: субагент переварит его в своём окне, а родителю вернёт три строки. Это практическая борьба с деградацией контекста и часть контекст-инжиниринга.
- Независимые поиски идут параллельно. Три модуля — три субагента одновременно, затем родитель сводит находки.
-
Риск изолирован. Субагенту с правами только
Read,GlobиGrepнечего ломать в основной ветке.
Как это устроено в популярных агентах
| Агент | Как описывается субагент | Как задаётся модель |
|---|---|---|
| Claude Code | markdown-файл в .claude/agents/ или ~/.claude/agents/: name, description, tools, model, тело файла — системный промпт |
поле model: алиас sonnet, opus, haiku, fable или inherit; общий вариант — CLAUDE_CODE_SUBAGENT_MODEL
|
| Codex | инструмент spawn_agent, команда /subagents переключает потоки |
параметр agents.default_subagent_model
|
| Cline | инструмент spawn_agent (Cline CLI и Desktop) |
отдельной модели нет |
| OpenCode | markdown-файл в .opencode/agents/ с mode: subagent
|
поле model в формате провайдер/модель; без него наследуется модель родителя |
| Hermes | инструмент delegate_task, настройки в секции delegation
|
delegation.model, при необходимости delegation.base_url
|
| omp | инструмент task с пачкой tasks[], роли explore, planner
|
поле model у задачи при включённом task.perCallModel
|
Детали меняются между версиями, поэтому сверяйтесь с документацией инструмента: в Claude Code, например, субагент по умолчанию может запускать своих помощников до трёх уровней вложенности.
Чем субагент отличается от инструмента
| Что это | Кто исполняет | Свой контекст | Результат |
|---|---|---|---|
| Tool calling | ваш код, без модели внутри | нет | детерминированный ответ функции |
| Agent Skills | основной агент по инструкции | нет, навык подгружается в текущее окно | работа продолжается в общем контексте |
| Субагент | собственный цикл «модель + инструменты» | да | резюме или артефакт для родителя |
Инструмент — это вызов, навык — это инструкция, а субагент — модель со своим циклом и контекстом на время задачи. Между сессиями он ничего не помнит: для этого нужна память агента.
Модель на каждый уровень
Планирование требует сильной модели, исполнение готового плана — нет, а токены тратят именно субагенты, читающие файлы пачками. Поэтому родителя держат на сильной модели, массовых помощников переводят на дешёвую. Цены — из каталога RouterAI на 9 ноября 2026 года.
Оценка сессии: родитель — 120 тыс. входных и 10 тыс. выходных токенов, субагенты суммарно — 400 тыс. входных и 24 тыс. выходных. Кэширование не учтено.
| Роль | Модель | Цена за 1 млн токенов, вход / выход, ₽ | Стоимость части сессии, ₽ |
|---|---|---|---|
| Родитель: план и сводка | anthropic/claude-sonnet-5.5 |
213,56 / 1067,8 | около 36 |
| Субагенты, сильный вариант | anthropic/claude-haiku-5.5 |
10,68 / 53,39 | около 6 |
| Массовые субагенты | deepseek/deepseek-v4.1-flash |
2,58 / 46,98 | около 2 |
| Массовые субагенты, дешёвый выход | z-ai/glm-5.3-flash |
3,94 / 9,75 | около 2 |
| Субагенты с длинными отчётами | qwen/qwen3.6-flash |
20,02 / 120,13 | около 11 |
Для сравнения: те же субагенты на Claude Sonnet 5.5 обошлись бы примерно в 111 ₽ вместо 2–6 ₽.
Claude Code
Полный id вроде deepseek/deepseek-v4.1-flash в поле model субагента Claude Code не принимает: такое значение отвергается как неизвестная модель. Рабочий путь — направить алиас на нужную модель переменными окружения (настройка Claude Code через RouterAI):
export ANTHROPIC_BASE_URL="https://routerai.ru/api"
export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxxxxxxxxxx"
export ANTHROPIC_API_KEY=""
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-5.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek/deepseek-v4.1-flash"
Теперь субагент с model: haiku идёт на DeepSeek V4.1 Flash, а основная сессия — на Sonnet:
---
name: scout
description: Разведчик. Используй, чтобы найти файлы и коротко отчитаться о находках
tools: Read, Glob, Grep
model: haiku
---
Ищи в репозитории то, о чём просят, и отвечай отчётом не длиннее трёх строк.
Если задан CLAUDE_CODE_SUBAGENT_MODEL, его значение применяется к субагентам без поля model. Чтобы одна модель использовалась для всех субагентов, добавьте CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1: тогда поле model в описаниях игнорируется.
Hermes
# ~/.hermes/config.yaml
delegation:
model: "deepseek/deepseek-v4.1-flash"
base_url: "https://routerai.ru/api/v1"
api_key: "sk-xxxxxxxxxxxxxxxx"
Без delegation.model субагенты наследуют модель родителя.
Паттерны
- Fan-out / fan-in. Родитель режет задачу на независимые куски, запускает субагентов параллельно и сводит отчёты.
- Исследователь, исполнитель, ревьюер. Разведчик на дешёвой модели собирает факты, родитель правит код, субагент с правами только на чтение проверяет дифф.
- Чистильщик контекста. Субагент сжимает накопленный за долгую сессию лог до решений и открытых вопросов, родитель продолжает с выжимкой.
Подводные камни
- Дублирование работы. Субагенты не видят друг друга, поэтому границы задач нужно задавать явно.
- Потеря связности. Субагент не знает, что обсуждалось в сессии. Нужный контекст передавайте в тексте задачи.
- Токены на отчёты. Каждый отчёт снова попадает в контекст родителя, поэтому заранее просите краткий формат.
- Сложность отладки. Видно только итог: без логов субагентов причину ошибки не найти.
- Маленькие задачи. Правка одной функции в основном контексте дешевле: запуск и отчёт сами тратят токены. Субагент окупается, когда сырого вывода больше, чем отчёта о нём.
Связь с RouterAI
RouterAI даёт инструментам OpenAI-совместимый эндпоинт https://routerai.ru/api/v1 и Anthropic Messages API на https://routerai.ru/api. Родитель и субагенты идут через один ключ и один баланс, а различаются только id моделей. Работа из России без VPN и оплата в рублях действуют для всех моделей каталога. О том, как из ролей собирается команда, читайте в статьях про оркестрацию ИИ-агентов и мультиагентные системы.