⚡ Собрал смарт-роутинг для Claude Code: тяжёлые задачи — на GLM-4.5+, рутина — на флеш
Поднял локальный шлюз (claude-code-router) перед API Z.AI — и теперь у меня две модели на одной сессии:
🔹 glm-5.3 — рассуждения, планирование, архитектура, сложные рефакторинги
🔹 glm-5.3-flash — фоновое сжатие контекста, grep/навигация, git status, линтеры, автодополнение типов, парсинг логов, точечные патчи
Фон жёстко уходит на флеш через слоты моделей профиля — это до 80% бюджета сессии по токенам. Базовые субагенты (поиск файлов, доки, форматирование) запинены на haiku-слот = флеш. Тяжёлые агенты остаются на основной.
По пути нашёл два неочевидных бага, из-за которых «всё настроено, но флеш не работает»:
1️⃣ CCR добавляет суффикс [1m] к именам моделей в env-слотах → шлюз не распознавал имя и молча отправлял запрос на дефолт. Лечится alias-правилами роутера.
2️⃣ Все кастомные агенты были с model: inherit → всегда главная модель, мимо любых слотов. Вылечил пинами model: haiku у рутинных агентов.
Итог проверял не на глаз, а по usage-БД шлюза: у фоновых запросов реально 200 OK с моделью glm-5.3-flash.
Весь сетап — два скрипта: zccr-setup (идемпотентная настройка через management RPC, ключи не светятся в ps) и zclaude (обёртка: подняла шлюз, если лежит → запустила Claude Code через профиль). Работает автономно, обычный claude не трогает.
Gist: https://gist.github.com/zamotkin/37364589027cf3f1c2e5e8c1cf746c43
Состав:
- README.md — политика маршрутизации таблицей, 4 грабли (суффикс [1m], model: inherit, секреты в argv, опечатка в ключе), установка в 5 команд, проверка фактической маршрутизации через usage-БД
- zccr-setup.sh — идемпотентный RPC-конфигуратор (322 строки: секреты через mktemp-файлы 0600, connectivity до saveConfig, no-op-детект, loopback-валидация)
- zclaude.sh — runtime-обёртка (health → тихий автостарт → exec ccr "Claude Code" cli --)
Post #592
231