AIDive

Jev не удешевит Claude Code. Это его же бенчмарк

AIDive · Опубликовано

Кодинг-агентыИИ-модели

Вступление: подсказка, а не экономия

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 дёшев. Крюк — нет.

Источники

Частые вопросы

Jev правда удешевляет Claude Code?
Нет. Внутри Claude Code jev-gateway может только подсказывать, а его собственный бенчмарк показывает, что Opus 5 при включённом роутинге тратит на 61% больше входных токенов, на 47% больше запросов и на 83% больше времени на задаче с фичей. Sonnet 5 показал то же самое; единственный выигрыш — поиск багов с 48% меньшим числом входных токенов.
Что такое Jev?
Jev — модель решений от TypeSafe. Она не генерирует текст: вы задаёте типизированный вопрос, и она за 70–500 мс возвращает выбор, оценку или вероятность да/нет, по цене $0.04 за миллион входных токенов при бесплатном выходе.
Что jev-gateway меняет в Claude Code?
Одну переменную окружения, ANTHROPIC_BASE_URL, указывающую на локальный прокси; логин Pro или Max при этом не трогается. В его адаптере одна строка переключает режим управления в подсказку всякий раз, когда включён thinking или диалог закэширован, — а это каждый запрос Claude Code.
Что такое режим подсказки (hint mode) в Claude Code?
Два предложения, добавленных к последнему сообщению пользователя: модель маршрутизации считает, что сейчас наиболее уместен этот инструмент, игнорируйте это, если не подходит. Модель вольна его проигнорировать, а tool_choice остаётся в режиме auto, потому что принудительный выбор инструмента вызывает ошибку при расширенном thinking, а смена tool_choice инвалидирует кэш промпта.
Сколько инструментов отправляет один запрос Claude Code?
По замерам логирующего прокси на Claude Code 2.1.280: 24 инструмента и 47 411 токенов префикса на чистой установке, 40 инструментов и 57 277 токенов префикса на обычном сетапе с MCP-серверами и плагинами — ради ответа в четыре токена.
Стоит ли ставить fast-jev-compaction?
Пока нет. Требует флага раннего доступа к hooks, в открытых issues сообщают о hooks, которые не регистрируются на некоторых сборках, и об одном случае, когда после компакции модель выдала девять выдуманных отчётов о выполненной работе. Главное возражение в топовом треде сообщества — не про скорость, а про условия обслуживания при отправке транскриптов третьей стороне.

Похожие видео