раздел 05

Как переключать на лету

Выбор из матрицы работает, только если переключаться легко. Хорошая новость: в агентах это делается за секунды, и делать это можно посреди работы. Разберём четыре места, где живут переключатели.

В чате агента

В Claude Code модель и уровень усилий меняются через меню команды /model или в настройках. Открыли, выбрали, продолжили тот же диалог: история остаётся, следующий ответ пойдёт на новой модели с новыми усилиями. В агентах других IDE переключатель лежит в настройках чата, обычно рядом с полем ввода или в шапке диалога.

Типичный ритм на одной задаче: обсудить подход на сильной модели, переключиться на среднюю для исполнения, а точечные правки в конце сделать на низких усилиях. Три переключения за задачу - нормальный ритм.

У субагентов

Субагент в Claude Code может иметь свою модель: в описании субагента указывается haiku, sonnet или opus. Основной агент работает на одной модели, помощники - на других, и это самый эффективный способ снизить расход без потери качества.

Рабочая схема: план на сильной, исполнение на средней, чтение на дешёвой.

1
Планирование - Opus или Fable, high или max
Разобрать задачу, найти подводные камни, написать план по шагам. Здесь ошибка дороже всего, поэтому и модель, и усилия по максимуму.
2
Исследование - Haiku, low
Субагенты-читатели собирают контекст: где что лежит, какие функции связаны, что было в последних коммитах. Они пересказывают, решений не принимают.
3
Исполнение - Sonnet, xhigh
По готовому плану писать код, гонять тесты, править упавшее. Понятная цель, много механики, усилия на шаги.
4
Проверка - Opus, high
Ревью результата против плана: всё ли сделано, нет ли побочных эффектов, что осталось. Без запуска тестов заново, они уже прошли на шаге 3.

Как описывать субагентов, назначать им модели и роли - в мануале Субагенты.

В API

Если вы дёргаете модель из своего кода, переключение - два параметра: model и output_config.effort. Меняете их между вызовами как угодно: один запрос на Haiku low для классификации, следующий на Opus high для ответа.

{
  "model": "claude-opus-5",
  "max_tokens": 4096,
  "output_config": {
    "effort": "high"
  },
  "messages": [
    {
      "role": "user",
      "content": "Разбери транскрипт звонка и выпиши договорённости с ответственными и сроками."
    }
  ]
}

Точные идентификаторы моделей берите из документации провайдера: они меняются с версиями. Как устроен запрос целиком, что такое системный промпт и стриминг - в LLM API.

Через OpenRouter

Если нужна модель другого вендора для отдельного шага, OpenRouter даёт доступ к моделям разных семей одним ключом и одним форматом запроса. Меняется только строка model. Удобно для сравнения на своей задаче и для случаев, когда прямой доступ к провайдеру закрыт. Уровень усилий там прокидывается как параметр запроса, если модель его поддерживает. Подробно - в мануале OpenRouter.

Антипаттерны переключения

Менять модель посреди длинной задачи без резюме контекста. История диалога остаётся, но новая модель читает её впервые, и если там сто сообщений с отступлениями, она уловит не всё. Перед переключением попросите текущую модель: «резюмируй, что сделано, что осталось, какие решения приняты», и начните следующий шаг с этого резюме. Ещё лучше - новый диалог с резюме в первом сообщении.

Давать субагенту дешёвую модель на задачу с рассуждением. «Найди причину бага» требует анализа, чтением тут не обойтись. Haiku найдёт что-то похожее на причину и доложит уверенно. Субагентам на Haiku - поиск, сбор, пересказ. Решения - основному агенту.

Переключать усилия вниз в момент, когда агент упёрся. Если на high не получилось, low не поможет: это движение в обратную сторону. Сначала вверх, потом, если не помогло, менять модель или переформулировать задачу.

Забыть вернуть настройки. Поставили Fable max на ночной прогон, утром сели отвечать на вопросы по документации - и лимит тает. Заведите привычку смотреть, что стоит сейчас, перед новой задачей.