Проблема простая: огромная часть работы coding-агента — вообще не reasoning.
Claude читает 5 больших файлов, чтобы найти один метод. Читает тысячи строк тестов, чтобы понять паттерн. Генерирует boilerplate, конфиги, стабы. И на всё это тратятся дорогие frontier-токены.
В Spotify сделали плагин shunt, который буквально отбирает такую работу у Claude.
Схема примерно такая:
Claude Code → router → дешёвая модель → Claude
Они сделали два worker-а через Portal/AiKA:
→ bulk-reader — скармливаешь ему большие файлы, назад Claude получает только короткую структурированную выжимку;
→ code-writer — генерирует тесты, конфиги, type stubs и другой предсказуемый код по существующему reference-файлу.
В примере worker-модель — Gemini 2.5 Flash.
Самое интересное — routing сделан не промптом в CLAUDE.md.
Плагин использует PreToolUse hooks Claude Code. Если Claude пытается целиком прочитать файл больше 350 строк, hook блокирует Read и отправляет его в bulk-reader. То же самое ловится для
cat, head, tail, less, more.При этом targeted read конкретного участка файла разрешается.
То есть frontier-модели физически не дают бессмысленно пожирать контекст.
На Java-монорепе в 162K строк получили:
→ большой файл: 33 684 → 5 737 tokens, −82%
→ source + tests: 75 990 → 4 148, −94%
→ анализ нескольких сервисов: 16 221 → 821, −94%
Средняя экономия Claude-токенов на bulk-read — около 90%.
Но тут важная оговорка: это не означает, что inference вообще стал на 90% дешевле по количеству всех токенов. Большой контекст всё равно читает Gemini Flash. Просто вы перестаёте платить frontier-моделью за работу, которую прекрасно может выполнить маленькая и дешёвая модель.
И вот это, мне кажется, одна из главных архитектурных идей agentic coding ближайшего времени.
Frontier model не должна делать всю работу. Она должна управлять работой.
Reasoning, debugging, архитектура, сложные решения → Claude.
Поиск, чтение, summarization, boilerplate, трансформации → дешёвые специализированные модели.
Причём Spotify отдельно пишет, что пытаться делегировать reasoning уже плохо работает: worker пропустил subtle thread-safety bug, который Claude сразу нашёл. Поэтому они именно разделяют задачи по классу сложности, а не просто заменяют Claude дешёвой моделью.
По сути это уже не «один AI coding agent», а маленькая иерархия моделей внутри harness-а.
И мне кажется, дальше Codex / Claude Code / Kimi / OpenCode и остальные неизбежно придут примерно к этому: frontier-модель сверху, а под ней пачка дешёвых специализированных workers.
Потому что скармливать Opus/Sol всё подряд — это примерно как нанять principal engineer, чтобы он весь день grep запускал.
https://engineering.atspotify.com/2026/9/portal-by-spotify-cut-my-claude-code-token-usage-by-90