Giriş: tasarruf değil, ipucu
Jev, Claude Code'u ucuzlatmayacak, ve gateway'in kendi benchmark'ı da bunu söylüyor. Bu yazı jev-gateway'in kodunu ve benchmark deposunu okuyor, sonra gerçek bir Claude Code oturumunun önüne loglama yapan bir proxy koyup bir router'ın ne alacağına bakıyor.
Jev, TypeSafe'in karar modeli: milisaniyeler içinde dönen bir olasılık, bir haftada altı videoyla Claude Code'a bağlandı. Satış cümlesi "en ucuz agentic kodlama döngüsü". Gateway'in kendi rakamları, routing açıkken Opus 5'in bir feature görevinde %47 daha fazla istek attığını ve %83 daha fazla süre harcadığını gösteriyor.
Milisaniyede yanıt veren bir router, Claude Code'u nasıl yavaşlatır? Bu, tek bir kod satırına dayanıyor. Claude Code'un içinde Jev'e tam olarak iki cümle veriliyor, sıradan bir oturum ise her çağrıda ona 40 araç veriyor.
Jev nedir, dalga ne satıyor
Jev, TypeSafe'in bir karar modeli. Hiç metin üretmiyor: tiplenmiş bir soru soruyorsunuz, o da bir seçim, bir skor ya da evet/hayır olasılığıyla yanıt veriyor. Üreticinin rakamları:
| Rakam | Değer |
|---|---|
| Input fiyatı | milyon token başına $0.04 |
| Output fiyatı | ücretsiz ("ölçülemeyecek kadar ucuz") |
| Gecikme | 70 ila 500 ms |
| Ana sayfa başlığı | 194× daha hızlı, 445× daha ucuz |
Bu başlığın altındaki blog yazısı, iki çarpanın gerçek dünyadaki kazanımların üst sınırı olduğunu, iki öncü modelin ortalamasına karşı ölçüldüğünü ve yazarların bu karşılaştırmanın o modeller lehine yanlı olduğunu kabul ettiğini söylüyor.
Beş günde altı video, Jev'i Claude Code'a bağladı. En büyüğü 139.000 izlenmeye ulaşıp buna en ucuz agentic kodlama döngüsü diyor. Dalgayı iki repo taşıyor: jev-gateway, Claude Code ve Codex için beş gün önce oluşturulmuş, 181 yıldızlı yerel bir proxy; ve fast-jev-compaction, bir gün önce oluşturulmuş, 6.400 yıldızlı bir compaction plugin'i. Claude Code'un bağlandığı yer gateway olduğu için, okuma oradan başlıyor.
Tek ortam değişkeni, tek satır: hint modu
jev-gateway, Claude Code ile Anthropic API'si arasına oturuyor. Claude Code'u tek bir ortam değişkeniyle, yerel bir porta yönlendirilmiş ANTHROPIC_BASE_URL ile başlatıyor. Başka hiçbir şey değişmiyor; kaynak koddaki bir yorum, gateway'e ait bir kimlik bilgisi olmadığını, yani bir Pro ya da Max girişinin olduğu gibi çalışmaya devam ettiğini söylüyor.
Adaptörün içinde (src/adapters/messages.ts, satır 99), Jev'in ne yapmasına izin verildiğine tek bir satır karar veriyor:
steer: thinking || cached ? "hint" : "tool_choice"
Extended thinking açıkken ya da konuşma cache'liyken, gateway yalnızca hint verebiliyor. Aksi halde aracı zorluyor. Satırın üstündeki yorum nedenini açıklıyor: extended thinking açıkken API zorlanmış bir aracı reddediyor, ve tool_choice'u değiştirmek Claude Code'un her turda yeniden okuduğu cache'lenmiş konuşmayı geçersiz kılıyor.
Gerçek bir isteğin neye benzediğini görmek için, aynı türde bir portta gateway'in yerine 60 satırlık loglama yapan bir proxy geçirildi, Claude Code bu proxy üzerinden başlatıldı ve gerçek bir repo üzerinde tek bir istek gönderildi. İstek thinking: adaptive ve üç cache işareti taşıyor; tool_choice yok; temiz bir kurulumda 24 araç isteğe eşlik ediyor. Gateway'in satırını bu isteğe karşı çalıştırınca zorlama yolu hiç tetiklenmiyor. Her Claude Code çağrısı hint modunda kalıyor. README de bunu söylüyor: büyük araç listelerinde daha iyi araç seçimi bekleyin, daha düşük maliyet ya da gecikme değil.
İpucu: iki cümle, ve inemediği yer
Jev'in Claude Code içinde yapmasına izin verilen şey, son mesaja eklenen iki cümle: "a routing model suggests this tool is the most relevant move now. Ignore this if it doesn't fit." Müdahalenin tamamı bu. Model bunu görmezden gelmekte özgür, ve tool_choice auto'da kalıyor.
Anthropic'in dokümanlarına göre bir aracı zorlamak seçenek değil: zorlanmış bir araç Opus 5.5 ve Fable 5.1'de 400 hatası döndürüyor, diğer modellerde manuel thinking ile hata veriyor. tool_choice'u değiştirmek de mümkün değil: prompt caching dokümanları bunun messages cache'ini, uzun bir oturumun en büyük parçasını, geçersiz kıldığını söylüyor. Bir aracın açıklamasını düzenlemek tüm cache'i geçersiz kılıyor: tools, system ve messages.
| İsteğe yapılan değişiklik | Prompt cache üzerindeki etkisi |
|---|---|
| Son kullanıcı mesajına bir hint ekle | cache'lenmiş önek değişmez |
tool_choice'u değiştir |
messages cache geçersiz kılınır |
| Bir araç tanımını düzenle | tools, system ve messages geçersiz kılınır |
Gateway'in yorumu hint'in neden en sona konduğunu söylüyor: cache'lenmiş önek, Claude Code'un bir sonraki turda yeniden gönderdiği şeyle byte byte aynı kalıyor. Bunun önünde bir koruma var: son mesaj kullanıcıya ait değilse, istek dokunulmadan geçiyor. Yakalanan iki isteğin ikisi de Claude Code'un kendisinin eklediği bir system blokla bitti, biri bir environment reminder, diğeri bir hook'un çıktısıydı. Bu şekilde hint'in inecek bir yeri yok. Diğer turlarda iniyor, çünkü araç sonuçları kullanıcı mesajı olarak geri geliyor, ve benchmark Jev'in Claude Code isteklerinin üçte biri ile yarısını yönlendirdiğini sayıyor.
Kimsenin alıntılamadığı benchmark
Gateway'in kendi benchmark'ı, jev-gateway-bench, açılış sorusunu yanıtlıyor. Herkesin kullandığı aynı Claude Code ve aynı abonelikle, MCP sunucusu, plugin ya da skill olmadan, hücre başına beş çalıştırmayla 120 oturum koştu. Küçük bir satranç motoru üzerinde iki görev: beş bug enjekte edilmiş bir bug avı, ve bir feature, algebraic notation eklemek.
| Model, görev | Routing açık vs kapalı |
|---|---|
| Opus 5, feature | +%61 input token, +%47 istek, +%83 süre (yine de 5/5 çözdü) |
| Sonnet 5, feature | +%16 input token, +%37 süre |
| Sonnet 5, bug avı | −%48 input token, −%25 süre |
Yazarların sözleriyle, routing'in karşılığını verdiği yer debugging. Onların açıklaması sorunun yanıtı: gateway yalnızca Claude modelleriyle hint veriyor, yani uymayan bir hint, bedavaya görmezden gelinmek yerine bir dolambaca mal oluyor.
Codex zorlanmış versiyonu alıyor. Jev, Codex isteklerinin %76 ila %100'üne karar verdi, Claude Code'un üçte biri ile yarısına karşı. Diğer harness'teki bir model daha ucuz ve yanlış oldu, beşte üç çözüm, beşte beş yerine. Ucuz ve yanlış, tasarruf değil.
Sınırlar gerçek: hücre başına beş çalıştırma küçük bir örneklem, tek bir oyuncak motor, ve kimse bunu yeniden koşmadı. Input de çoğunlukla cache'li, yani bir input tasarrufunun değeri bir output tasarrufundan daha az.
Oturumumun ona verdiği: temizde 24, doluda 40 araç
Sıradan bir Claude Code oturumu her çağrıda bir router'a ne veriyor? Proxy log'u yanıtlıyor: 40 araç. Aynı repo, aynı tek kelimelik prompt, iki kurulum: boş bir config ve MCP sunucusu olmayan temiz bir kurulum, ve kendi sunucuları ve plugin'leriyle normal bir kurulum.
| Temiz kurulum | Normal kurulum | |
|---|---|---|
| İstekteki araç sayısı | 24 | 40 (16'sı MCP sunucuları ve plugin'lerden) |
| Faturalanan prefix token | 47.411 | 57.277 |
| Output token | 4 | 4 |
| Bir "ok"un API-eşdeğeri maliyeti | $0.07 | $1.15 |
Fatura, araç listesi. En ağır tanımlar yerleşik olanlar: shell aracı tek başına 12.000 karakter, agent aracı neredeyse 9.000.
Benchmark'ın dipnotu temiz bir kurulumda 6 araç ve 7.000 token, yüklü bir kurulumda ise 285 araç görmüştü. Bugünün temiz Claude Code'u çok daha fazla aracı yerleşik olarak gönderiyor, ve yüklü durum artık daha nadir: çoğu MCP aracı bir arama aracının arkasında, deferred halde duruyor, yani bir router'ın gördüğü araç listesi küçük kalıyor. Boyutu ne olursa olsun, gateway bu listeyi her istekte Jev'e gönderiyor; repodaki açık bir issue, çoğu yanıt atılmadan önce tam maliyetin ödendiğini söylüyor. Burada hiçbir şey Jev'in suçu değil, ve düzeltilecek hiçbir şey Jev'e ait değil.
Kullanıma göre karar
Claude Code içinde routing: hayır. Bu, modelin görmezden gelebileceği bir hint, her iki Claude modelinde de feature işini yavaşlattı, ve tek kazanç debugging'de. İstisna, README'nin kendisinin de adlandırdığı, çok büyük bir araç listesiyle geçirilen bir bug avı günü.
Compaction plugin'i, fast-jev-compaction: henüz değil. Early-access bir hook flag'i gerektiriyor, açık issue'ları hook'ların bazı build'lerde kayıt olmadığını söylüyor, ve bir compaction'dan sonra model işin bittiğini söyleyen, hepsi uydurma dokuz rapor yazdı. Uygulayıcılar buraya daha önce vardı: plugin üzerindeki en üst thread 491 puana sahip, ve en büyük itirazı hız değil, transkriptleri üçüncü bir tarafa gönderme konusundaki kullanım koşulları.
Codex: asıl hedef orası. Orada gateway aracı zorluyor, Jev her isteğe kadar yön verdi, ve bug avı %57 daha az output tokenla koştu.
| Kullanım | Karar |
|---|---|
| Claude Code içinde routing | Hayır, çok büyük bir araç listesiyle bug avları hariç |
| fast-jev-compaction | Henüz değil |
| Codex | Evet |
Dalganın doğru yaptığı bir şey: abonelik girişi hiç kıpırdamıyor, gateway yalnızca bir URL'yi değiştiriyor. Bu okumanın sınırları: hücre başına beş çalıştırma, tek bir satranç motoru, kimsenin yeniden koşmadığı bir benchmark repo, ve kendi routed bir oturumum yok. Ölçtüğüm araç listesi ve istekti, Jev değil. Jev'in kendisi ucuz. Dolambaç değil.
AIDive