Haiku, Sonnet, Opus: какую модель ставить субагенту
Субагент без model: наследует Opus. Платишь в пять раз больше за работу, которую Haiku сделает так же. Я обнаружил это когда попросил агента проаудитировать все 55 скиллов. Четыре из четырнадцати с субагентами не указывали модель. Каждый молча работал на Opus.
Невидимый счётчик
55 скиллов. 14 используют субагентов через Task tool. На какой модели они работают — я не задумывался. Пока не решил навести порядок.
Попросил Claude Code на Opus 4.6:
Агент вернул таблицу. Четыре скилла — без явной модели. Все четыре наследовали 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:
Один критик на 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