Özet
- Claude Code içinde jev-gateway hiçbir zaman bir aracı zorlamaz. Tek satır,
steer: thinking || cached ? "hint" : "tool_choice", istek extended thinking ya da önbelleğe alınmış bir konuşma taşıdığı anda onu ipucu moduna geçirir; gerçek bir Claude Code isteği ise ilk turda ikisini de taşır. - İpucu, son kullanıcı mesajının sonuna eklenen iki cümlelik bir
<system-reminder>bloğudur. Model onu serbestçe yok sayabilir; Claude Code kendi system reminder'ını zaten son blok olarak eklemişse ipucu hiç eklenmez. - Gateway'in kendi benchmark'ı (120 oturum) Claude modelleri için yönlendirmenin hata ayıklamada işe yaradığını, özellik geliştirmede ise maliyet getirdiğini söylüyor: özellik görevinde Opus 5 için girdi token'ı +61%, istek +47%, süre +83%; Sonnet 5 için girdi +16%, süre +37%.
- Jev'in asıl ısırdığı yer Codex: gateway orada aracı zorluyor ve Jev, Claude Code isteklerinin 34 ila 51%'ine karşılık Codex isteklerinin 76 ila 100%'ünü yönlendirdi.
- Kendi makinemizdeki ölçüm: temiz bir Claude Code 2.1.280 isteği zaten 24 araç ve 47,411 önek token'ı taşıyor; MCP sunucuları olan normal bir kurulum 40 araç ve 57,277 token taşıyor ve gateway bu listeyi her çağrıda Jev'e yeniden gönderiyor.
- Jev'in en çok yıldızlı aracı fast-jev-compaction'ın açık issue'ları, hook'larının güncel Claude Code sürümlerinde kaydolmadığını ve tam transkriptlerin üçüncü taraf bir API'ye gittiğini söylüyor. Henüz değil.
Ölçümler ne diyor
Jev bir karar modeli, metin üreteci değil. Satıcısı girdiyi $0.042 / MTok'tan fiyatlıyor, çıktı ücretsiz; uçtan uca yanıt süresini 70ms-500ms olarak veriyor ve "193.6x faster, 444.6x cheaper" başlığının altında bu rakamların "are on the higher end of real world gains" olduğunu kendisi yazıyor s3. Aynı yazı, referans cevapların GPT-6 Astra ile Fable 5.1'in ortalaması olduğunu, bunun da karşılaştırmayı OpenAI ve Anthropic modelleri lehine saptırdığını kabul ediyor s3.
jev-gateway, Claude Code'a tek bir ortam değişkeniyle bağlanır: bin/clients.mjs, ANTHROPIC_BASE_URL'yi yerel gateway'e ayarlar ve Max girişine dokunmaz s1. src/adapters/messages.ts içinde gateway, Jev'e bir sonraki adım için hangi aracın uygun olduğunu sorar, sonra cevabı nasıl ileteceğine karar verir. İstekte thinking açıksa ya da cache_control blokları varsa ipucu verir. Aksi halde tool_choice ayarlar s1. İpucu şöyle: bir araç yönlendirme modeli adı geçen aracın en ilgili sonraki adım olduğunu öneriyor, kullanıcının gerçekte istediğine uymuyorsa bunu yok say. Son kullanıcı mesajına bir <system-reminder> bloğu olarak eklenir s1.
Anthropic API başka seçenek bırakmıyor. Manuel extended thinking açıkken tool_choice: any ve tool_choice: tool desteklenmez ve hata döner; Claude Opus 5.5, Claude Fable 5.1 ve Claude Mythos 5.1 ise thinking'e bakmadan zorunlu araç kullanımına 400 döndürür s4. Gateway'in kendi yorumunun kaçırdığı bir nüans: dokümana göre Claude Opus 5, thinking açıkken zorunlu araç seçimini destekliyor s4. Önbellekte hiyerarşi tools, sonra system, sonra messages; tool_choice değişikliği yalnızca messages önbelleğini geçersiz kılar, bir araç tanımını düzenlemek ise önbelleğin tamamını geçersiz kılar. Gateway'in bir araç açıklamasını yeniden yazmak yerine bir blok eklemesinin nedeni budur s5.
Neredeyse kimsenin alıntılamadığı benchmark, gateway yazarının kendi benchmark'ı. Altı model, iki görev, mod başına beş çalıştırma, 2026-09-18 ve 19 arasında 120 agent oturumu; GPT modelleri Codex 0.154'te, Claude modelleri Claude Code 2.1'de, her agent temiz, MCP sunucusu, eklenti ya da skill yok s2. chess-bugfix görevinde her model yönlendirmeyle daha az token kullandı ve hiçbir şey daha az doğru olmadı. Özellik görevi chess-san'da yönlendirme Opus 5 ve Sonnet 5'i belirgin biçimde kötüleştirdi ve yazarlar nedenini söylüyor: gateway Claude modellerinde yalnızca ipucu veriyor, bu yüzden uymayan bir ipucu ücretsiz yok sayılmak yerine bir dolambaca mal oluyor s2. Yönlendirme bir kez de doğruluğa mal oldu: GPT-5.6 Luna, chess-san'ı tek başına beşte beş, yönlendirmeyle beşte üç çözdü s2. Yazarlar ayrıca girdi token'larının çoğunun önbellekte olduğunu (80 ila 96%), bu yüzden girdi tasarrufunun aynı miktarda çıktı tasarrufundan daha az para ettiğini ve Jev'in kendisinin beş çalıştırma başına yarım sent ile on sent arasında tuttuğunu ekliyor s2. 120 çalıştırmadan biri, Luna serisindeki chess-bugfix.on.3, agent /tmp içinde başka bir çalıştırmanın test betiğini bulduğu için contaminated olarak işaretli s2.
Kendi testimizi tetikleyen README dipnotu: --user-tools ile bir kurulum her Claude Code isteğiyle 285 araç ve yaklaşık 200,000 token gönderiyordu; temiz kurulumda 6 araç ve 7,000 token s2. Aynı koltuğu biz de ölçtük. Temiz bir Claude Code 2.1.280 isteği 24 araç, 87,547 karakterlik araç tanımı ve 47,411 faturalanan önek token'ı taşıyor (16,221 yazılan, 31,190 okunan); tam kurulum 40 araç, 93,179 karakterlik tanım ve tamamı yazılan 57,277 önek token'ı taşıyor. İkisi de thinking: {type: "adaptive"} ve 3 cache_control bloğu taşıyor, tool_choice yok; messages.ts içinde ipucu modunu kilitleyen koşul tam olarak bu s1. Tek bir "ok" yanıtı, temiz Sonnet 5 çalıştırmasında API karşılığı $0.07, tam Fable 5.1 çalıştırmasında $1.15 tutuyor; rakamlar Claude Code'un kendi total_cost_usd ve usage alanlarından okundu, yani gateway başlatıcısının oturduğu aynı koltuk s1.
"Anında compaction" başlığının (skor 495, 117 yorum) arkasındaki eklenti fast-jev-compaction için s9 yıldız sayısından çok açık issue'lar önemli: #21, Claude Code 2.1.272'de session.compact ve turn.complete tanınan hook olayları olmadığı için kurulumdan sonra Hooks (0) bildiriyor; #88, hook'ların compaction'ın yerini tutamadığını ve tam transkriptlerin üçüncü taraf bir API'ye gönderildiğini söylüyor; #65, tek bir compaction'dan sonra art arda 9 uydurma "work done" raporunu belgeliyor; #89, --resume ile compaction'ın geri alındığını söylüyor s7. Başlıktaki en çok şikayet, 84 puanla, satıcının ToS'una ve veri kontrollerine yönelik s9. Skill önerisi cookbook'u, satıcının bir agent araç listesi için yayımladığı ölçülmüş tek kazanç: yanlış skill yüklenme oranı 16.8%'den 7.3%'e, hiçbiri uymazken skill yüklenme oranı 9.8%'den 4.0%'a düşüyor s13.
Ölçümler
Gateway'in benchmark'ı; yüzdeler yönlendirmesi kapalı aynı modele göre s2.
chess-bugfix: enjekte edilmiş beş hatayı bul ve düzelt
| Model | Çözüm, açık / kapalı | Çıktı token'ı | Girdi token'ı | LLM istekleri | Saniye | Jev yönlendirdi |
|---|---|---|---|---|---|---|
| GPT-6 Astra | 5/5 · 5/5 | 1,226 (-57%) | 96k (-7%) | 5 (0%) | 41 (-39%) | 100% |
| GPT-5.6 Sol | 5/5 · 5/5 | 3,211 (-57%) | 202k (-40%) | 9 (-36%) | 78 (-36%) | 93% |
| GPT-5.6 Luna | 1/4 · 0/5 | 10,519 (-12%) | 506k (-10%) | 19.5 (-15%) | 200 (+10%) | 86% |
| Fable 5.1 | 5/5 · 5/5 | 8,675 (-13%) | 276k (-19%) | 14 (-22%) | 148 (+6%) | 45% |
| Opus 5 | 5/5 · 5/5 | 16,693 (-7%) | 406k (-22%) | 18 (-14%) | 218 (+2%) | 38% |
| Sonnet 5 | 5/5 · 5/5 | 16,623 (-41%) | 616k (-48%) | 26 (-26%) | 243 (-25%) | 34% |
chess-san: çalışan bir motora cebirsel notasyon ekle
| Model | Çözüm, açık / kapalı | Çıktı token'ı | Girdi token'ı | LLM istekleri | Saniye | Jev yönlendirdi |
|---|---|---|---|---|---|---|
| GPT-6 Astra | 5/5 · 5/5 | 3,663 (0%) | 143k (+2%) | 7 (0%) | 88 (+8%) | 95% |
| GPT-5.6 Sol | 5/5 · 5/5 | 5,096 (-9%) | 147k (-39%) | 7 (-36%) | 78 (-16%) | 86% |
| GPT-5.6 Luna | 3/5 · 5/5 | 6,809 (-14%) | 315k (-51%) | 14 (-42%) | 121 (-14%) | 76% |
| Fable 5.1 | 5/5 · 5/5 | 13,497 (-24%) | 331k (-27%) | 13 (-19%) | 167 (-26%) | 51% |
| Opus 5 | 5/5 · 5/5 | 20,152 (+22%) | 676k (+61%) | 25 (+47%) | 390 (+83%) | 44% |
| Sonnet 5 | 5/5 · 5/5 | 23,487 (+9%) | 991k (+16%) | 32 (+3%) | 327 (+37%) | 42% |
Kendi istek yakalamamız, jev-gateway'in oturduğu koltuk s1.
| Temiz | Tam | |
|---|---|---|
| Claude Code'un seçtiği model | claude-sonnet-5 | claude-fable-5-1 (kullanıcı ayarı, 1M) |
İstekteki thinking |
{type: "adaptive"} |
{type: "adaptive"} |
cache_control blokları |
3 | 3 |
tool_choice |
yok (auto) | yok (auto) |
| İstekteki araçlar | 24 | 40 (28 yerleşik + 12 MCP) |
| Araç tanımları, karakter | 87,547 | 93,179 |
| Sistem promptu, karakter | 27,754 | 12,436 |
| Tüm istek, karakter | 134,882 | 155,718 |
| Faturalanan önek token'ları (önbellek yazma + okuma) | 47,411 (16,221 yazılan, 31,190 okunan) | 57,277 (tamamı yazılan) |
| Çıktı token'ları | 4 | 4 |
| Bir "ok" için API karşılığı maliyet | $0.07 | $1.15 |
Protokol: 127.0.0.1:8790 üzerinde 60 satırlık bir loglama proxy'si her isteği bayt bayt https://api.anthropic.com'a iletir ve taşıdıklarını kaydeder; bin/clients.mjs'in jev-gateway'e verdiği koltuğun aynısı. Claude Code 2.1.280 headless çalıştırıldı, claude -p "Reply with the single word ok. Do not use any tool." --output-format json --max-turns 1, 1,021 izlenen dosyalı özel bir Expo reposundan, claude.ai aboneliğiyle. Temiz: CLAUDE_CONFIG_DIR boş bir dizine, --strict-mcp-config, --setting-sources project. Tam: makinenin normal kullanıcı ayarları, proje .mcp.json, kullanıcı MCP sunucuları ve kurulu eklentiler. Yapılandırma başına bir istek, yalnızca ilk tur; Jev anahtarı yok, yani gerileme rakamları gateway'in benchmark'ının tekrarı, yeniden üretimi değil.
Pazartesi yapılacaklar
- Herhangi bir router eklemeden önce kendi koltuğunuzu ölçün: bir loglama proxy'si başlatın,
ANTHROPIC_BASE_URL'yi ona yönlendirin,claude -p "Reply with the single word ok." --output-format json --max-turns 1çalıştırın ve çıktıdakicache_creation_input_tokensartıcache_read_input_tokensdeğerlerini okuyun. - O isteğin araçlarını sayın. Nadiren kullandığınız MCP sunucuları listeyi şişiriyorsa onları
.mcp.json'dan çıkarın ya da proje bazında sınırlayın; bu kesinti router olsa da olmasa da her isteğe yansır. - Yine de Claude Code'da Jev istiyorsanız, jev-gateway klonunuzda
src/adapters/messages.ts'i açıpsteersatırını doğrulayın: thinking ya da önbellek açıkken aldığınız bir ipucu, rota değil. - Satranç tablolarına güvenmek yerine gateway'in benchmark'ını kendi reponuzda
--user-toolsile çalıştırın; yönlendirmeyi yalnızca bir hata avı görevi çözüldü/çözülmedi durumu değişmeden daha az istek gösteriyorsa tutun. - #21, #88 ve #89 numaralı issue'lar kapanana kadar fast-jev-compaction'ı kurmayın; kurulumdan sonra
/hooks'un sıfırdan fazla hook listelediğini kontrol edin. - Anahtar yapıştırmadan önce satıcının ToS'unu okuyun: yönlendirilen her istek araç listenizi ve son mesajınızı gönderir, compaction eklentisi ise tam transkriptleri gönderir.
- Codex de kullanıyorsanız, Jev'i önce orada test edin: benchmark'ın karşılığını verdiğini gösterdiği şey zorunlu
tool_choice.
Daha fazlası
- Hangi modellerin 400 döndürdüğünü ve hangi thinking modlarının
anyiletool'u engellediğini de içeren, model bazında zorunlu araç kullanımı tablosu s4. - Önbellek geçersiz kılma tablosu:
tools, sonrasystem, sonramessagesve gateway'in tasarımını açıklayantool_choicesatırı s5. - jev-gateway'deki #24 numaralı issue: oturum boyunca değişmeyen araç listesi her istekte Jev'e yeniden gönderiliyor, panelin gizlediği maliyet merkezi s14.
- Benchmark README'sinin veri bütünlüğü bölümü: 120 çalıştırmanın 119'u birbirinden bağımsız kaldı, biri
runs.jsonliçindecontaminatedolarak işaretli s2. - Jev'in kodlama agent'ı çerçevesinin dışında, açık ve özel veri üzerinde bir sınıflandırıcı ya da filtre olarak bağımsız bir değerlendirmesi s12.
- Satıcının eval'lerinin neden gerçeğe değil iki modele karşı ölçtüğü ve bunun başlıktaki çarpanlara ne yaptığı s11.
- "Jev seçer, LLM yazar" ayrımını ve aynı gün düzeltilen localhost açıklığını anlatan, jev-gateway hakkında üçüncü taraf bir inceleme s8.
- Fiyatlandırma ve sübvansiyon sorusunun açıkça tartışıldığı HN lansman başlığı s10.
Kaynaklar
- jev-gateway, GitHub, vinilana. Neden okunmalı:
src/adapters/messages.tsipucu mu zorunlu araç mı kararını veren tek satırı barındırıyor,bin/clients.mjsise başlatıcının yalnızcaANTHROPIC_BASE_URLayarladığını gösteriyor. - jev-gateway-bench, GitHub, vinilana. Neden okunmalı: 120 oturumun tam tablosu ve tek kirlenmiş çalıştırma dahil yazarların kendi yorumu.
- Introducing System One Models & Jev, TypeSafe AI. Neden okunmalı: satıcıdan fiyat, gecikme ve 444.6x iddiasını sınırlayan dipnot.
- Forcing tool use, Anthropic docs. Neden okunmalı: hangi
tool_choicedeğerlerinin hata verdiğini gösteren model bazlı tablo. - Prompt caching, Anthropic docs. Neden okunmalı: ipucu tasarımını zorunlu kılan geçersiz kılma hiyerarşisi.
- fast-jev-compaction, GitHub, tamaratran. Neden okunmalı: README'den önce issues sekmesini açın.
- jev-gateway Review: Jev Picks, the LLM Writes, mrjev.com. Neden okunmalı: gateway mimarisinin dışarıdan bir anlatımı.
- Instant Claude Code compaction is my favorite use of Jev so far, r/ClaudeCode. Neden okunmalı: en üstte ToS itirazının olduğu uygulayıcı başlığı.
- HN: Introducing System One Models and Jev, Hacker News. Neden okunmalı: fiyatlandırma ve sürdürülebilirlik üzerine lansman tartışması.
- The Evals: Measured Against Two Models, Not Against Truth, novcog. Neden okunmalı: satıcı çarpanlarının arkasındaki değerlendirme yönteminin eleştirisi.
- Testing Jev on public and private data: classifier or filter, Aman Kumar. Neden okunmalı: kodlama agent'larının dışında bağımsız bir ölçüm.
- Skill suggestion cookbook, TypeSafe docs. Neden okunmalı: yayımlanmış tek liste seçimi rakamları, 16.8%'den 7.3%'e.
- jev-gateway issue #24, GitHub. Neden okunmalı: kimsenin saymadığı liste yeniden gönderme maliyeti.
- Jev + Claude Code: compaction and a Sonnet 5 source check, jevmodel.ai. Neden okunmalı: compaction iddiasına Sonnet 5 kontrolüyle ikinci bir bakış.
FAQ
jev-gateway Claude Code içinde hiç araç zorlar mı?
Yalnızca istekte ne extended thinking ne de cache_control blokları varsa. Yakaladığımız ilk tur isteklerinde temiz ve tam kurulumda ikisi de vardı, yani pratikte gateway ipucu veriyor.
Gateway neden daha sert yönlendirmek için araç açıklamalarını yeniden yazmıyor?
Araç tanımlarını değiştirmek prompt önbelleğinin tamamını geçersiz kılar: tools, system ve messages. Son kullanıcı mesajına blok eklemek yalnızca messages seviyesine dokunur; ipucunu koymak için en ucuz yer burası.
Yani Jev kodlama için işe yaramaz mı?
Hayır. Benchmark, aracın zorlandığı ve isteklerin 76 ila 100%'ünün yönlendirildiği Codex'te ve tüm modeller için hata ayıklama görevlerinde karşılığını verdiğini gösteriyor. Gateway'in kendi rakamlarının desteklemediği şey "en ucuz Claude Code" çerçevesi.
fast-jev-compaction'ı denemeli miyim?
Hook kaydı issue'ları (#21, #88) ve --resume issue'su (#89) kapanana kadar bekleyin; tam transkriptlerin üçüncü taraf bir API'ye gitmesinin repolarınızda kabul edilebilir olup olmadığına karar verin.
AIDive