AIDive

Jev nie potani Claude Code. Mówi to jego benchmark

AIDive · Opublikowano

Agenty do kodowaniaModele AI

Wstęp: hint, nie oszczędności

Jev nie sprawi, że Claude Code stanie się tańszy, i mówi to własny benchmark gatewaya. Ten artykuł czyta kod jev-gateway i jego repozytorium benchmarkowe, a potem stawia loggujące proxy przed prawdziwą sesją Claude Code, żeby zobaczyć, co dostałby router.

Jev to model decyzyjny TypeSafe: prawdopodobieństwo zwracane w milisekundach, wpięte w Claude Code przez sześć filmów w jednym tygodniu. Hasło brzmi „najtańsza agentowa pętla kodowania". Własne liczby gatewaya pokazują, że Opus 5 wykonuje 47% więcej zapytań i zużywa 83% więcej czasu na zadaniu typu feature przy włączonym routingu.

Jak router, który odpowiada w milisekundach, może spowolnić Claude Code? Sprowadza się to do jednej linii kodu. Wewnątrz Claude Code Jev dostaje dokładnie dwa zdania, a normalna sesja podaje mu 40 narzędzi przy każdym wywołaniu.

Czym jest Jev i co sprzedaje ta fala

Jev to model decyzyjny od TypeSafe. Nie generuje tekstu: zadajesz typowane pytanie, a on odpowiada wyborem, wynikiem albo prawdopodobieństwem tak/nie. Liczby podane przez producenta:

Wskaźnik Wartość
Cena wejścia 0,04 USD za milion tokenów
Cena wyjścia za darmo („zbyt tanie, żeby mierzyć")
Opóźnienie 70 do 500 ms
Nagłówek na stronie głównej 194× szybciej, 445× taniej

Wpis na blogu pod tym nagłówkiem mówi, że te dwa mnożniki to górna granica realnych zysków, mierzona względem średniej dwóch modeli czołowych — porównanie, które autorzy sami przyznają jest przechylone na korzyść tych modeli.

Sześć filmów w pięć dni wpięło Jev w Claude Code. Największy ma 139 000 wyświetleń i nazywa to najtańszą agentową pętlą kodowania. Dwa repozytoria niosą tę falę: jev-gateway, lokalne proxy dla Claude Code i Codex stworzone pięć dni wcześniej, z 181 gwiazdkami, oraz fast-jev-compaction, plugin do kompakcji stworzony dzień wcześniej, z 6400 gwiazdkami. Gateway to miejsce, w którym podłącza się Claude Code, więc od niego zaczyna się czytanie.

Jedna zmienna, jedna linia: tryb hint

jev-gateway siedzi między Claude Code a API Anthropic. Uruchamia Claude Code z jedną zmienną środowiskową, ANTHROPIC_BASE_URL, wskazującą na lokalny port. Nic więcej się nie zmienia; komentarz w kodzie źródłowym mówi, że nie ma żadnych danych uwierzytelniających gatewaya, więc logowanie Pro albo Max działa jak wcześniej.

Wewnątrz adaptera (src/adapters/messages.ts, linia 99), jedna linia decyduje, co wolno Jevowi:

steer: thinking || cached ? "hint" : "tool_choice"

Przy włączonym extended thinking albo przy konwersacji w cache, gateway może tylko podpowiadać. W przeciwnym razie wymusza narzędzie. Komentarz nad tą linią wyjaśnia dlaczego: API odrzuca wymuszone narzędzie przy włączonym extended thinking, a zmiana tool_choice unieważnia konwersację w cache, którą Claude Code odczytuje ponownie przy każdej turze.

Żeby sprawdzić, jak wygląda prawdziwe zapytanie, 60-liniowe loggujące proxy zajęło miejsce gatewaya na tego samego typu porcie, z Claude Code uruchomionym przez nie i jednym zapytaniem wysłanym na prawdziwym repozytorium. Zapytanie niesie thinking: adaptive i trzy znaczniki cache; tool_choice jest nieobecne; 24 narzędzia jadą razem przy czystej instalacji. Uruchom linię gatewaya na tym zapytaniu, a ścieżka wymuszenia nigdy się nie odpali. Każde wywołanie Claude Code ląduje w trybie hint. README mówi to wprost: spodziewaj się lepszego doboru narzędzi na długich listach narzędzi, nie niższego kosztu ani opóźnienia.

Hint: dwa zdania i gdzie nie może wylądować

Co Jev może zrobić wewnątrz Claude Code, to dwa zdania dopisane do ostatniej wiadomości: „a routing model suggests this tool is the most relevant move now. Ignore this if it doesn't fit" — model routingu sugeruje, że to narzędzie jest teraz najbardziej trafnym ruchem, zignoruj to, jeśli nie pasuje. To cała interwencja. Model może to zignorować, a tool_choice zostaje na auto.

Wymuszenie narzędzia nie wchodzi w grę, według dokumentacji Anthropic: wymuszone narzędzie zwraca błąd 400 na Opus 5.5 i Fable 5.1, i błędy przy ręcznym thinking na pozostałych modelach. Zmiana tool_choice też odpada: dokumentacja prompt caching mówi, że unieważnia to cache wiadomości, największą część długiej sesji. Edycja opisu narzędzia unieważnia cały cache: narzędzia, system i wiadomości.

Zmiana w zapytaniu Efekt na cache promptu
Dopisanie hinta do ostatniej wiadomości użytkownika cached prefix bez zmian
Zmiana tool_choice cache wiadomości unieważniony
Edycja definicji narzędzia narzędzia, system i wiadomości unieważnione

Komentarz gatewaya mówi, dlaczego hint idzie na koniec: cached prefix zostaje identyczny co do bajtu z tym, co Claude Code wysyła ponownie w następnej turze. Przed tym stoi zabezpieczenie: gdy ostatnia wiadomość nie jest wiadomością użytkownika, zapytanie przechodzi bez zmian. Oba przechwycone zapytania kończyły się blokiem systemowym, który Claude Code dokleja sam: environment reminder w jednym, wynik hooka w drugim. Na takim kształcie hint nie ma gdzie wylądować. Ląduje za to na innych turach, bo wyniki narzędzi wracają jako wiadomości użytkownika, a benchmark liczy, że Jev steruje od jednej trzeciej do połowy zapytań Claude Code.

Benchmark, którego nikt nie cytuje

Własny benchmark gatewaya, jev-gateway-bench, odpowiada na pytanie z początku. Uruchomił 120 sesji, pięć przebiegów na komórkę, na tym samym Claude Code i tej samej subskrypcji, której używa każdy, bez serwerów MCP, pluginów ani skilli. Dwa zadania na małym silniku szachowym: polowanie na bugi z pięcioma wstrzykniętymi błędami i feature — dodanie notacji algebraicznej.

Model, zadanie Routing włączony vs wyłączony
Opus 5, feature +61% tokenów wejściowych, +47% zapytań, +83% czasu (nadal rozwiązał 5/5)
Sonnet 5, feature +16% tokenów wejściowych, +37% czasu
Sonnet 5, polowanie na bugi −48% tokenów wejściowych, −25% czasu

Debugowanie to miejsce, gdzie routing się opłaca, słowami autorów. Ich wyjaśnienie jest odpowiedzią na to pytanie: gateway tylko podpowiada modelom Claude, więc niepasujący hint kosztuje objazd zamiast być zignorowanym za darmo.

Codex dostaje wymuszoną wersję. Jev decydował o 76 do 100% zapytań Codex, wobec jednej trzeciej do połowy w przypadku Claude Code. Jeden model w drugim harnessie stał się tańszy i błędny — trzy rozwiązania na pięć zamiast pięciu. Tańsze i błędne to nie jest oszczędność.

Ograniczenia są realne: pięć przebiegów na komórkę to mała próba, to jeden zabawkowy silnik, i nikt tego nie powtórzył. Wejście jest w większości cachowane, więc oszczędność na wejściu jest warta mniej niż oszczędność na wyjściu.

Co moja sesja mu podaje: 24 czysto, 40 pełno

Co normalna sesja Claude Code podaje routerowi przy każdym wywołaniu? Log proxy odpowiada: 40 narzędzi. To samo repozytorium, ten sam jednosłowny prompt, dwa ustawienia: czysta instalacja z pustym configiem i bez serwera MCP, oraz normalny setup z jego serwerami i pluginami.

Czysta instalacja Normalny setup
Narzędzia w zapytaniu 24 40 (16 z serwerów MCP i pluginów)
Rozliczone tokeny prefiksu 47 411 57 277
Tokeny wyjściowe 4 4
Koszt jednego „ok" w ekwiwalencie API 0,07 USD 1,15 USD

Lista narzędzi to rachunek. Najcięższe definicje są wbudowane: sam shell tool to 12 000 znaków, agent tool prawie 9000.

Przypis w benchmarku widział sześć narzędzi i 7000 tokenów na czystej instalacji, i 285 narzędzi na jednym załadowanym setupie. Dzisiejszy czysty Claude Code wysyła dużo więcej wbudowanych narzędzi, a przypadek załadowany jest rzadszy: większość narzędzi MCP siedzi za narzędziem wyszukiwania, deferred, więc lista, którą widzi router, zostaje mała. Niezależnie od rozmiaru, gateway wysyła tę listę do Jev przy każdym zapytaniu; otwarty issue w repozytorium mówi, że pełny koszt jest płacony, zanim większość odpowiedzi zostaje odrzucona. Nic w tym nie jest winą Jev, i nic w tym nie jest do naprawienia przez Jev.

Werdykt per zastosowanie

Routing wewnątrz Claude Code: nie. To hint, który model może zignorować, spowolnił pracę nad feature na obu modelach Claude, a jedyna wygrana jest na debugowaniu. Wyjątkiem jest dzień polowania na bugi na bardzo dużej liście narzędzi, co samo README nazywa jako ten przypadek.

Plugin do kompakcji, fast-jev-compaction: jeszcze nie. Wymaga flagi early-access na hooki, jego otwarte issue mówią, że hooki nie rejestrują się na niektórych buildach, a po jednej kompakcji model napisał dziewięć raportów mówiących, że praca jest skończona — wszystkie zmyślone. Praktycy dotarli tam pierwsi: najwyżej oceniany wątek o pluginie ma 491 punktów, a jego główny zarzut to nie prędkość, tylko warunki korzystania z usługi przy wysyłaniu transkryptów do trzeciej strony.

Codex: to jest prawdziwy cel. Tam gateway wymusza narzędzie, Jev sterował aż każdym zapytaniem, a polowanie na bugi przebiegło na 57% mniejszej liczbie tokenów wyjściowych.

Zastosowanie Werdykt
Routing w Claude Code Nie, poza polowaniem na bugi na bardzo dużej liście narzędzi
fast-jev-compaction Jeszcze nie
Codex Tak

Jedna rzecz, którą ta fala trafiła: logowanie do subskrypcji nigdy się nie rusza, gateway zmienia tylko URL. Ograniczenia tego czytania: pięć przebiegów na komórkę, jeden silnik szachowy, repozytorium benchmarkowe, którego nikt nie powtórzył, i żadna moja własna sesja z routingiem. Zmierzyłem listę narzędzi i zapytanie, nie Jev. Sam Jev jest tani. Objazd nie jest.

Źródła

Najczęstsze pytania

Czy Jev sprawia, że Claude Code jest tańszy?
Nie. jev-gateway wewnątrz Claude Code może tylko podpowiadać, a jego własny benchmark pokazuje, że Opus 5 zużywa 61% więcej tokenów wejściowych, 47% więcej zapytań i 83% więcej czasu na zadaniu typu feature przy włączonym routingu. Sonnet 5 poszedł tą samą drogą; jedyną wygraną było polowanie na bugi z 48% mniej tokenów wejściowych.
Czym jest Jev?
Jev to model decyzyjny TypeSafe. Nie generuje tekstu: zadajesz typowane pytanie, a on zwraca wybór, wynik albo prawdopodobieństwo tak/nie w 70 do 500 ms, w cenie 0,04 USD za milion tokenów wejściowych, z darmowym wyjściem.
Co jev-gateway zmienia w Claude Code?
Jedną zmienną środowiskową, ANTHROPIC_BASE_URL, wskazującą na lokalne proxy; logowanie Pro albo Max zostaje nietknięte. W jego adapterze jedna linia ustawia tryb sterowania na hint, kiedy tylko włączony jest thinking albo konwersacja jest w cache — czyli przy każdym zapytaniu Claude Code.
Czym jest tryb hint w Claude Code?
Dwa zdania dopisane do ostatniej wiadomości użytkownika: model routingu sugeruje, że to narzędzie jest teraz najbardziej trafnym ruchem, zignoruj to, jeśli nie pasuje. Model może to swobodnie zignorować, a tool_choice zostaje na auto, bo wymuszenie narzędzia daje błąd przy extended thinking, a zmiana tool_choice unieważnia cache promptu.
Ile narzędzi wysyła jedno zapytanie Claude Code?
Zmierzone loggującym proxy na Claude Code 2.1.280: 24 narzędzia i 47 411 tokenów prefiksu na czystej instalacji, 40 narzędzi i 57 277 tokenów prefiksu na normalnym setupie z serwerami MCP i pluginami, dla odpowiedzi z czterech tokenów.
Czy warto zainstalować fast-jev-compaction?
Jeszcze nie. Wymaga flagi early-access na hooki, jego otwarte issue zgłaszają hooki, które nie rejestrują się na niektórych buildach, oraz jeden raport o dziewięciu zmyślonych podsumowaniach „praca skończona” po kompakcji. Główny zarzut w najpopularniejszym wątku społeczności to nie prędkość, tylko warunki korzystania z usługi przy wysyłaniu transkryptów do trzeciej strony.

Powiązane filmy