🧠 Маршрутизация моделей в Claude Code: неделя на практике
Настроил для Claude Code маршрутизацию моделей по образцу своего Codex-конфига. Неделю на ней прожил — делюсь.
Идея простая: сильнейшая модель прекрасно умеет писать код. Но гораздо полезнее занять её разбором сложной задачи, постановкой и приёмкой результата, а реализацию делегировать.
🎯 Кто чем занимается
Главный тред — координатор. Он читает код и готовит карточку задачи: цель, какие файлы можно менять, инварианты, критерии приёмки и команды проверки.
Дальше раздаёт работу:
🔎 explorer → Haiku
Только поиск по коду.
🛠 worker → Opus
Реализация через TDD.
🧪 verifier → Sonnet
Независимый прогон проверок по чужому diff.
🧠 senior → Opus на high
Деньги, данные, concurrency и сложные эскалации.
👀 reviewer → другая модель
Семантическое ревью. Обязательно другой моделью, чем у автора.
🔒 Главная фича — координатору нельзя писать код
В Codex-версии это было прописано инструкцией. Здесь запрет обеспечивается хуком PreToolUse.
У субагента в JSON хука есть agent_id, у главного треда — нет. Пока лежит маркер .claude/routing.on, хук отклоняет Edit/Write из главного треда и shell-команды, которые распознаёт как записывающие.
Привычное «да тут одну строку, сейчас быстро сам поправлю» упирается в блокировку.
Именно на таких мелочах разделение ролей обычно и заканчивается. Для меня это главная фича.
📌 Что получилось на практике
• Верификатор поймал ошибку в моей постановке, которую я бы сам не заметил. Проверять нужно и то, правильно ли мы вообще поставили задачу.
• Ревьюер на другой модели прогнал дифференциальную проверку на 100 миллионах входов там, где автор ограничился тестами.
• Контекст координатора не раздувается. Подробные логи, содержимое файлов и вывод docker остаются у субагентов. Наверх возвращаются результаты и свидетельства проверок.
💸 Что по стоимости
Токенов в сумме стало больше.
Каждый субагент заново читает файлы. Карточка задачи, отчёт, приёмка — дополнительные проходы по одному изменению. Изоляция контекста не бесплатная.
По моим задачам экономия получается за счёт распределения работы: сильнейшая модель занимается постановкой и приёмкой, часть работы уходит моделям подешевле.
• Против одного треда на сильнейшей модели — дешевле.
• Против одного треда на средней — дороже.
Я здесь в первую очередь покупаю изоляцию и независимый взгляд на результат.
🪤 Грабли за неделю
• Bash-обёртка с heredoc съела stdin хука, и тот молча пропускал всё. Проверяйте, что блокировка действительно срабатывает.
• Лимита в 30 ходов проверяющим не хватило на docker-тесты. В моём сценарии 60 — рабочий минимум.
• Эвристика записывающих shell-команд смотрит на слова, а не на пути. Это ограничение нужно учитывать.
📦 Забрать конфиг
Инсталлятор, готовые конфиги, тесты хука и описание процесса — в gist.
Ставится одной командой. Установка идемпотентная, откат — флагом –restore.
Post #593
122
- 👍 4