Роутинг моделей по ролям в Claude Code: неделя практики и ограничения через Hook
Оригинальный заголовок: 🧠 Маршрутизация моделей в Claude Code: неделя на практикеНастроил для Claude Code маршрутизацию моделей по образцу своего Codex-конфига. Неделю на ней прожил — делюсь.Идея простая: сильнейшая модель прекрасно умеет писать код. Но гораздо полезнее занять её разбором сложной задачи, постановкой и приёмкой результата, а реализацию делегировать.🎯 Кто чем занимаетсяГлавный тред — координатор. Он читает код и готовит карточку задачи: цель, какие файлы можно менять, инварианты, критерии приёмки и команды проверки.Дальше раздаёт работу:🔎 explorer → HaikuТолько поиск по коду.🛠 worker → OpusРеализация через TDD.🧪 verifier → SonnetНезависимый прогон проверок по чужому diff.🧠 senior → Opus на highДеньги, данные, concurrency и сложные эскалации.👀 reviewer → другая модельСемантическое ревью. Обязательно другой моделью, чем у автора.🔒 Главная фича — координатору нельзя писать кодВ Codex-версии это было прописано инструкцией. Здесь запрет обеспечивается хуком PreToolUse.У субагента в JSON хука
Автор, опираясь на свою конфигурацию Codex, настроил в Claude Code роутинг моделей по ролям: основной поток координирует, explorer на Haiku только ищет код, worker на Opus реализует задачи по TDD, verifier на Sonnet независимо прогоняет проверки, senior на старшей версии Opus занимается деньгами, данными и конкурентностью, а reviewer на другой модели проводит семантическое ревью.
Автор за неделю практики показывает, как настроить разделение моделей в Claude Code, ограничения через Hook и компромисс по стоимости — это можно перенести в свой процесс с несколькими ИИ-агентами.
🧠 Маршрутизация моделей в 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.
Источник: AI Coder · Telegram · t.me