Вступление: подсказка, а не экономия
Jev не удешевит Claude Code, и об этом говорит собственный бенчмарк gateway. Эта статья разбирает код jev-gateway и его репозиторий с бенчмарком, а затем ставит логирующий прокси перед реальной сессией Claude Code, чтобы увидеть, что на самом деле получает роутер.
Jev — модель решений от TypeSafe: вероятность, возвращаемая за миллисекунды, встроенная в Claude Code шестью видео за одну неделю. Питч звучит как «самый дешёвый агентный цикл кодинга». Собственные цифры gateway показывают, что Opus 5 делает на 47% больше запросов и тратит на 83% больше времени на задаче с фичей при включённом роутинге.
Как роутер, отвечающий за миллисекунды, может замедлить Claude Code? Всё сводится к одной строке кода. Внутри Claude Code Jev получает ровно два предложения, а обычная сессия отдаёт ему 40 инструментов на каждый вызов.
Что такое Jev и что продаёт волна
Jev — модель решений от TypeSafe. Она не генерирует текст: вы задаёте типизированный вопрос, и она отвечает выбором, оценкой или вероятностью да/нет. Цифры от вендора:
| Показатель | Значение |
|---|---|
| Цена за вход | $0.04 за миллион токенов |
| Цена за выход | бесплатно («слишком дёшево, чтобы считать») |
| Задержка | 70–500 мс |
| Заголовок на главной странице | в 194 раза быстрее, в 445 раз дешевле |
В посте блога под этим заголовком сказано, что оба множителя — это верхняя граница реальных выигрышей, измеренных относительно среднего двух топовых моделей, и авторы сами признают, что сравнение смещено в пользу этих моделей.
Шесть видео за пять дней встроили Jev в Claude Code. Самое популярное набрало 139 000 просмотров и называет его самым дешёвым на сегодня агентным циклом кодинга. Волну несут два репозитория: jev-gateway — локальный прокси для Claude Code и Codex, созданный пятью днями раньше, с 181 звездой, и fast-jev-compaction — плагин для компакции, созданный днём раньше него, с 6 400 звёздами. Именно через gateway Claude Code подключается к Jev, поэтому с него и начинается разбор.
Одна переменная, одна строка: режим подсказки
jev-gateway встаёт между Claude Code и API Anthropic. Он запускает Claude Code с одной-единственной переменной окружения, ANTHROPIC_BASE_URL, указывающей на локальный порт. Больше ничего не меняется; комментарий в исходном коде говорит, что у gateway нет собственных учётных данных, поэтому логин Pro или Max продолжает работать как есть.
Внутри адаптера (src/adapters/messages.ts, строка 99) одна строка решает, что разрешено Jev:
steer: thinking || cached ? "hint" : "tool_choice"
При включённом расширенном thinking или закэшированном диалоге gateway может только подсказывать. В остальных случаях он принудительно выбирает инструмент. Комментарий над строкой объясняет почему: API отклоняет принудительный выбор инструмента при включённом расширенном thinking, а смена tool_choice инвалидирует закэшированный диалог, который Claude Code перечитывает на каждом ходе.
Чтобы проверить, как выглядит реальный запрос, логирующий прокси на 60 строк занял место gateway на таком же порту: Claude Code был запущен через него, и один запрос отправлен на реальном репозитории. Запрос несёт thinking: adaptive и три маркера кэша; tool_choice отсутствует; 24 инструмента едут вместе с ним при чистой установке. Примените строку gateway к этому запросу — и принудительный путь ни разу не срабатывает. Каждый вызов Claude Code попадает в режим подсказки. README прямо об этом говорит: ожидайте лучшего выбора инструментов на больших списках инструментов, а не снижения стоимости или задержки.
Подсказка: два предложения, и где ей некуда встать
Всё, что Jev может сделать внутри Claude Code, — это два предложения, добавленные к последнему сообщению: «модель маршрутизации считает, что сейчас наиболее уместен этот инструмент. Игнорируйте это, если не подходит». Это всё вмешательство целиком. Модель вольна его проигнорировать, а tool_choice остаётся в режиме auto.
Принудительный выбор инструмента не вариант, согласно документации Anthropic: принудительный инструмент возвращает ошибку 400 на Opus 5.5 и Fable 5.1 и выдаёт ошибку при ручном thinking на остальных моделях. Смена tool_choice тоже исключена: документация по кэшированию промптов говорит, что это инвалидирует кэш сообщений — самую большую часть долгой сессии. Правка описания инструмента инвалидирует весь кэш целиком: инструменты, систему и сообщения.
| Изменение в запросе | Эффект на кэш промпта |
|---|---|
| Добавить подсказку к последнему сообщению пользователя | закэшированный префикс не меняется |
Изменить tool_choice |
кэш сообщений инвалидируется |
| Изменить определение инструмента | инвалидируются инструменты, система и сообщения |
Комментарий в gateway объясняет, почему подсказка идёт последней: закэшированный префикс остаётся побайтово идентичен тому, что Claude Code переотправляет на следующем ходе. Перед этим стоит проверка: если последнее сообщение не от пользователя, запрос проходит без изменений. Оба захваченных запроса заканчивались системным блоком, который Claude Code добавляет сам, — в одном случае это напоминание об окружении, в другом вывод hook'а. При такой форме подсказке некуда встать. На других ходах она всё же встаёт, поскольку результаты инструментов возвращаются как сообщения пользователя, и бенчмарк фиксирует, что Jev управляет от трети до половины запросов Claude Code.
Бенчмарк, который никто не цитирует
Собственный бенчмарк gateway, jev-gateway-bench, отвечает на вопрос, заданный в начале. В нём прогнали 120 сессий, по пять прогонов на ячейку, на том же Claude Code и той же подписке, что у всех, без MCP-серверов, плагинов и skills. Две задачи на маленьком шахматном движке: поиск багов с пятью внесёнными ошибками и фича — добавление алгебраической нотации.
| Модель, задача | Роутинг вкл. против выкл. |
|---|---|
| Opus 5, фича | +61% входных токенов, +47% запросов, +83% времени (всё равно решено 5 из 5) |
| Sonnet 5, фича | +16% входных токенов, +37% времени |
| Sonnet 5, поиск багов | −48% входных токенов, −25% времени |
По словам авторов, именно на отладке роутинг окупается. Их объяснение и есть ответ на вопрос: gateway только подсказывает с моделями Claude, поэтому неподходящая подсказка обходится крюком вместо того, чтобы быть бесплатно проигнорированной.
Codex достаётся принудительная версия. Jev определял от 76 до 100% запросов Codex против трети-половины у Claude Code. Одна модель в другом харнессе стала дешевле и ошибочнее — три решения из пяти вместо пяти. Дешевле и неправильно — это не экономия.
Ограничения реальны: пять прогонов на ячейку — маленькая выборка, это один игрушечный движок, и никто не повторил тест. Входные токены к тому же в основном закэшированы, поэтому экономия на входе стоит меньше, чем экономия на выходе.
Что моя сессия ему отдаёт: 24 инструмента чисто, 40 полностью
Что обычная сессия Claude Code отдаёт роутеру на каждом вызове? Лог прокси отвечает: 40 инструментов. Тот же репозиторий, тот же однословный промпт, два сетапа: чистая установка с пустым конфигом и без MCP-сервера и обычный сетап со своими серверами и плагинами.
| Чистая установка | Обычный сетап | |
|---|---|---|
| Инструменты в запросе | 24 | 40 (16 от MCP-серверов и плагинов) |
| Оплаченные токены префикса | 47 411 | 57 277 |
| Выходные токены | 4 | 4 |
| Эквивалентная цена API за одно «ok» | $0.07 | $1.15 |
Счёт — это и есть список инструментов. Самые тяжёлые описания встроены по умолчанию: одно только описание shell-инструмента занимает 12 000 символов, агентного — почти 9 000.
В сноске бенчмарка фигурировали шесть инструментов и 7 000 токенов на чистой установке и 285 инструментов на одном загруженном сетапе. Сегодняшний чистый Claude Code поставляется со значительно большим числом встроенных инструментов, а загруженный случай встречается реже: большинство MCP-инструментов спрятаны за отложенным поисковым инструментом, поэтому список, который видит роутер, остаётся небольшим. Каким бы ни был его размер, gateway отправляет этот список Jev при каждом запросе; открытая issue в репозитории говорит, что полная цена оплачивается ещё до того, как большинство ответов отбрасывается. В этом нет вины Jev, и это не то, что Jev может исправить.
Вердикт по каждому случаю
Роутинг внутри Claude Code: нет. Это подсказка, которую модель вправе игнорировать, она замедлила работу над фичами на обеих моделях Claude, и единственный выигрыш — на отладке. Исключение — день поиска багов на очень большом списке инструментов, именно этот случай называет само README.
Плагин компакции, fast-jev-compaction: пока нет. Ему нужен флаг раннего доступа к hooks, в открытых issues сообщают, что hooks не регистрируются на некоторых сборках, а после одной компакции модель написала девять отчётов о том, что работа выполнена, — все выдуманные. Практики добрались до этого первыми: топовый тред про плагин набрал 491 балл, и главное возражение в нём не про скорость, а про условия обслуживания при отправке транскриптов третьей стороне.
Codex: вот где настоящая цель. Там gateway принудительно выбирает инструмент, Jev управлял вплоть до каждого запроса, а поиск багов прошёл на 57% меньшем числе выходных токенов.
| Использование | Вердикт |
|---|---|
| Роутинг в Claude Code | Нет, кроме поиска багов на очень большом списке инструментов |
| fast-jev-compaction | Пока нет |
| Codex | Да |
Одну вещь волна уловила верно: логин подписки никогда не трогается, gateway меняет только URL. Ограничения этого разбора: пять прогонов на ячейку, один шахматный движок, репозиторий бенчмарка, который никто не повторил, и ни одной собственной сессии с роутингом. Я измерил список инструментов и сам запрос, а не Jev. Сам Jev дёшев. Крюк — нет.
AIDive