← Блог

Haiku, Sonnet, Opus: какую модель ставить субагенту

Сережа Рис · 5 March 2026

claude-codeсубагентыtask-toolоптимизация

Субагент без model: наследует Opus. Платишь в пять раз больше за работу, которую Haiku сделает так же. Я обнаружил это когда попросил агента проаудитировать все 55 скиллов. Четыре из четырнадцати с субагентами не указывали модель. Каждый молча работал на Opus.

Невидимый счётчик

55 скиллов. 14 используют субагентов через Task tool. На какой модели они работают — я не задумывался. Пока не решил навести порядок.

Попросил Claude Code на Opus 4.6:

Проанализируй все 55 скиллов в ~/.claude/skills/. Для каждого: использует ли субагентов? Какая модель? Какой subagent_type?

Агент вернул таблицу. Четыре скилла — без явной модели. Все четыре наследовали Opus от родительского процесса.

Шеф-повар чистит картошку. Почистит. Но зачем?

Сколько стоит “не указал модель”

Цены за миллион токенов — вход / выход:

┌──────────────┬──────────┬──────────┐
│ Модель       │ Input    │ Output   │
├──────────────┼──────────┼──────────┤
│ Haiku 4.5    │ $1       │ $5       │
│ Sonnet 4.6   │ $3       │ $15      │
│ Opus 4.6     │ $5       │ $25      │
└──────────────┴──────────┴──────────┘

Haiku и Opus — разница 5x. Один субагент — ерунда. Пять параллельных, которые запускаются при каждом вызове скилла — уже заметно.

36% собственных субагентов Claude Code работают на Haiku. Данные constmirin: 7222 API-вызова, $354 за сутки. Explore, Navigate, Read — всё на Haiku. Anthropic гоняет инфраструктурных субагентов на младшей модели. По-моему, это самый показательный разбор экономики Claude Code на сегодня.

Три режима: извлечение, анализ, создание

Из аудита вытащил паттерн. Каждый субагент делает одно из трёх.

┌─────────────────────────────────────────────────────┐
│           КАКУЮ МОДЕЛЬ СТАВИТЬ                      │
├──────────────┬──────────────────────────────────────┤
│              │                                      │
│  ИЗВЛЕЧЕНИЕ  │  Haiku 4.5                           │
│  парсинг,    │  deaify-text (5 параллельных)        │
│  критики,    │  blog-ideas-from-logs                │
│  дайджесты   │  risovarka-digest                    │
│              │                                      │
├──────────────┼──────────────────────────────────────┤
│              │                                      │
│  АНАЛИЗ      │  Sonnet 4.6                          │
│  research,   │  kb-enrich (5 субагентов)            │
│  brief,      │  school-copywriting (3 воркера)      │
│  сравнение   │                                      │
│              │                                      │
├──────────────┼──────────────────────────────────────┤
│              │                                      │
│  СОЗДАНИЕ    │  Opus 4.6                            │
│  текст,      │  youtube-script                      │
│  заголовки,  │  board-of-advisors                   │
│  финальный   │  blog-post (финальная генерация)     │
│  драфт       │                                      │
│              │                                      │
└──────────────┴──────────────────────────────────────┘

Извлечение — субагент берёт текст и вытаскивает структуру. Парсит, фильтрует, переформатирует. Я описывал этот подход для параллельной обработки дайджестов — несколько субагентов разбирают чаты одновременно. Каждый на Haiku. Справляется.

Анализ — сравнивает, находит связи, пишет brief. Sonnet 4.6 на SWE-bench: 79.6% против 80.8% у Opus. Разница — 1.2 процентных пункта при цене в 1.67 раза меньше. Для research этого хватает с запасом.

Создание — финальный текст, заголовки, нарратив. Тут Opus. Совет директоров из субагентов — пример, где каждый должен быть на Opus: генерирует экспертное мнение с нуля, а не переформатирует чужое.

Пример: blog-post пайплайн

Мой пайплайн публикации — пять субагентов. Каждый на своей модели.

sonnet(research) → haiku(related posts) → sonnet(brief) → opus(draft) → opus(заголовки)
    $3/$15            $1/$5                 $3/$15          $5/$25         $5/$25

Research — Sonnet. Найти релевантные посты — Haiku. Brief — снова Sonnet. Текст и заголовки — Opus. Это конвейер с разными моделями на каждом шаге. Дешевле.

Если бы все пять наследовали Opus, я платил бы за research столько же, сколько за финальный текст. Research — найти три ссылки и выписать тезисы. Opus для этого избыточен.

Пять критиков на Haiku

Deaify — мой антипафосный фильтр. Пять параллельных критиков проверяют текст: Generic, Rhythm, Specificity, Fact Checker, Persona Guardian. Каждый получает абзац и возвращает правки.

Инструкция в скилле deaify-text:

Для каждого абзаца текста запусти субагента. model: haiku Инструкция субагенту: “Перепиши абзац без AI-штампов. Верни только текст.”

Один критик на Haiku стоит копейки. Пять параллельных — всё ещё дешевле одного прогона на Opus. Каждый проверяет одну конкретную вещь. Узкая задача, чёткая инструкция — Haiku хватает.

Когда НЕ делать субагента

У меня есть remotion-pipeline — рендеринг видео. Агент пробовал создать субагента для каждого шага. Я остановил.

Каждый субагент получает свой контекст: описание задачи, системный промпт, инструкции. Дополнительные токены на вход. Если задача маленькая и не параллелится — overhead съедает экономию. В remotion-pipeline я явно записал: “субагент дороже чем inline”.

Субагент оправдан когда:

Последовательная задача с контекстом родителя и разовым вызовом — inline.

Ловушка в slash-командах

model: в slash-командах — отдельная история. Я уже разбирал почему это не работает. Slash-команда — не субагент. Она выполняется в контексте родителя. model: haiku в slash-команде не переключит модель.

Task tool принимает model: и создаёт отдельный процесс. Slash-команда вставляет текст в текущий контекст. Похожий синтаксис — разные механизмы.

Agent Teams — другая история. Горизонтальная коммуникация между агентами, модель на уровне конфигурации каждого. Не путать с вертикальными субагентами через Task tool.

Чеклист: какую модель ставить

Я проверяю тремя вопросами.

Субагент парсит, фильтрует, форматирует? Haiku. Анализирует, сравнивает, пишет brief? Sonnet. Генерирует финальный текст или нарратив? Opus.

Не уверен — Sonnet. На SWE-bench он отстаёт от Opus на 1.2 процентных пункта. Для большинства задач незаметно. Для кошелька — заметно.

Четыре скилла без явной модели. Четыре невидимых утечки. Аудит занял один промпт. Исправление — пять минут. Если скиллов больше десяти — аудит одним промптом покажет, где Opus чистит картошку.

Частые вопросы

Что будет если не указать model: в Task tool?

Субагент наследует модель родительского процесса. Если родитель на Opus — субагент тоже на Opus, даже для тривиальных задач.

Sonnet действительно не хуже Opus для анализа?

На SWE-bench Verified разница 1.2 процентных пункта (79.6% vs 80.8%). Для research, brief и структурного анализа этого достаточно. Opus нужен для генерации финального текста.

Как указать модель субагенту?

В параметрах Task tool: model: "haiku", model: "sonnet" или model: "opus". Для кастомных агентов в .claude/agents/ — поле model: в YAML frontmatter.

Подписаться на обновления — @sereja_tech