इंट्रो: हिंट, बचत नहीं
Jev, Claude Code को सस्ता नहीं बनाएगा, और गेटवे का अपना बेंचमार्क यही कहता है। यह लेख jev-gateway का कोड और उसकी बेंचमार्क रिपॉजिटरी पढ़ता है, फिर एक असली Claude Code सेशन के आगे एक लॉगिंग प्रॉक्सी लगाकर देखता है कि एक राउटर को क्या मिलता।
Jev, TypeSafe का डिसीज़न मॉडल है: मिलीसेकंड में लौटी एक प्रोबेबिलिटी, जिसे एक हफ्ते में छह वीडियो के ज़रिए Claude Code से जोड़ा गया। दावा है "सबसे सस्ता एजेंटिक कोडिंग लूप"। गेटवे के अपने आंकड़े दिखाते हैं कि राउटिंग ऑन होने पर Opus 5, एक फीचर टास्क पर 47% ज़्यादा रिक्वेस्ट भेजता है और 83% ज़्यादा समय लेता है।
एक राउटर जो मिलीसेकंड में जवाब देता है, वह Claude Code को धीमा कैसे बना देता है? यह कोड की एक लाइन पर टिका है। Claude Code के भीतर Jev को ठीक दो वाक्य मिलते हैं, जबकि एक सामान्य सेशन हर कॉल पर उसे 40 टूल्स सौंपता है।
Jev क्या है, और यह लहर क्या बेचती है
Jev, TypeSafe का एक डिसीज़न मॉडल है। यह कोई टेक्स्ट जनरेट नहीं करता: आप एक टाइप्ड सवाल पूछते हैं और यह एक चॉइस, एक स्कोर, या हां/ना प्रोबेबिलिटी के साथ जवाब देता है। वेंडर के आंकड़े:
| Figure | Value |
|---|---|
| Input price | $0.04 per million tokens |
| Output price | free ("too cheap to meter") |
| Latency | 70 to 500 ms |
| Home page headline | 194× faster, 445× cheaper |
उस हेडलाइन के नीचे वाली ब्लॉग पोस्ट कहती है कि दोनों गुणांक असली दुनिया के फायदों के ऊपरी छोर हैं, दो फ्रंटियर मॉडल्स के औसत के मुकाबले नापे गए, एक तुलना जिसे लेखक खुद उन्हीं मॉडलों की तरफ झुका हुआ मानते हैं।
पांच दिनों में छह वीडियो ने Jev को Claude Code से जोड़ा। सबसे बड़ा वीडियो 139,000 व्यूज़ पर है और इसे सबसे सस्ता एजेंटिक कोडिंग लूप कहता है। इस लहर को दो रिपॉजिटरी ढोती हैं: jev-gateway, Claude Code और Codex के लिए एक लोकल प्रॉक्सी, जो पांच दिन पहले बनी और अभी 181 स्टार्स पर है, और fast-jev-compaction, एक कॉम्पैक्शन प्लगइन जो उससे एक दिन पहले बना और 6,400 स्टार्स पर है। गेटवे ही वह जगह है जहां Claude Code प्लग होता है, इसलिए पढ़ाई वहीं से शुरू होती है।
एक एनवायरनमेंट वेरिएबल, एक लाइन: हिंट मोड
jev-gateway, Claude Code और Anthropic API के बीच बैठता है। यह Claude Code को एक ही एनवायरनमेंट वेरिएबल, ANTHROPIC_BASE_URL, के साथ लॉन्च करता है, जो एक लोकल पोर्ट की ओर इशारा करता है। बाकी कुछ नहीं बदलता; सोर्स में एक कमेंट कहता है कि कोई गेटवे क्रेडेंशियल नहीं है, तो एक Pro या Max लॉगिन जस का तस काम करता रहता है।
एडॉप्टर (src/adapters/messages.ts, line 99) के भीतर, एक लाइन तय करती है कि Jev को क्या करने की इजाज़त है:
steer: thinking || cached ? "hint" : "tool_choice"
एक्सटेंडेड थिंकिंग ऑन हो, या बातचीत कैश्ड हो, तो गेटवे सिर्फ हिंट दे सकता है। वरना यह टूल को फोर्स करता है। लाइन के ऊपर का कमेंट बताता है क्यों: API एक्सटेंडेड थिंकिंग ऑन रहते हुए फोर्स्ड टूल को रिजेक्ट कर देता है, और tool_choice बदलने से वह कैश्ड बातचीत अमान्य हो जाती है जिसे Claude Code हर टर्न पर दोबारा पढ़ता है।
एक असली रिक्वेस्ट कैसी दिखती है, यह जांचने के लिए, 60-लाइन के एक लॉगिंग प्रॉक्सी ने उसी तरह के पोर्ट पर गेटवे की जगह ले ली, Claude Code को उसी के ज़रिए लॉन्च किया गया, और एक असली रिपॉजिटरी पर एक रिक्वेस्ट भेजी गई। रिक्वेस्ट में thinking: adaptive और तीन कैश मार्कर होते हैं; tool_choice गायब है; एक क्लीन इंस्टॉल पर 24 टूल्स साथ आते हैं। गेटवे की लाइन को इस रिक्वेस्ट पर चलाएं, तो फोर्स्ड वाला रास्ता कभी नहीं चलता। हर Claude Code कॉल हिंट मोड में उतरती है। README भी यही कहता है: बड़ी टूल लिस्ट पर बेहतर टूल चुनाव की उम्मीद करें, न कि कम लागत या लेटेंसी की।
हिंट: दो वाक्य, और जहां यह नहीं उतर सकता
Claude Code के भीतर Jev को जो करने को मिलता है वह है आखिरी मैसेज में जोड़े गए दो वाक्य: "a routing model suggests this tool is the most relevant move now. Ignore this if it doesn't fit." बस यही पूरा हस्तक्षेप है। मॉडल इसे नज़रअंदाज़ करने के लिए स्वतंत्र है, और tool_choice auto पर ही रहता है।
टूल को फोर्स करना कोई विकल्प नहीं है, Anthropic के डॉक्स के मुताबिक: Opus 5.5 और Fable 5.1 पर एक फोर्स्ड टूल 400 एरर लौटाता है, और बाकी मॉडलों पर मैनुअल थिंकिंग के साथ एरर देता है। tool_choice बदलना भी बाहर है: प्रॉम्प्ट कैशिंग डॉक्स कहते हैं कि इससे मैसेज कैश अमान्य हो जाता है, जो एक लंबे सेशन का सबसे बड़ा हिस्सा होता है। किसी टूल के डिस्क्रिप्शन को एडिट करने से पूरा कैश अमान्य हो जाता है: टूल्स, सिस्टम और मैसेज सब।
| Change to the request | Effect on the prompt cache |
|---|---|
| Append a hint to the last user message | cached prefix unchanged |
Change tool_choice |
messages cache invalidated |
| Edit a tool definition | tools, system and messages invalidated |
गेटवे का कमेंट बताता है कि हिंट आखिर में ही क्यों जाता है: इससे कैश्ड प्रीफिक्स बाइट-फॉर-बाइट वही रहता है जो Claude Code अगले टर्न पर दोबारा भेजता है। इसके आगे एक गार्ड बैठा है: जब आखिरी मैसेज यूज़र का न हो, तो रिक्वेस्ट बिना छेड़े गुज़र जाती है। कैप्चर की गई दोनों रिक्वेस्ट एक सिस्टम ब्लॉक पर खत्म हुईं जिसे Claude Code खुद जोड़ता है, एक में एनवायरनमेंट रिमाइंडर और दूसरी में एक hook का आउटपुट। इस शेप पर, हिंट के उतरने की कोई जगह नहीं बचती। यह बाकी टर्न्स पर उतरता ज़रूर है, क्योंकि टूल रिज़ल्ट यूज़र मैसेज बनकर वापस आते हैं, और बेंचमार्क गिनता है कि Jev, Claude Code की एक-तिहाई से आधी रिक्वेस्ट को स्टियर करता है।
वह बेंचमार्क जिसे कोई नहीं दोहराता
गेटवे का अपना बेंचमार्क, jev-gateway-bench, शुरुआती सवाल का जवाब देता है। इसने 120 सेशन चलाए, हर सेल पर पांच रन, उसी Claude Code और उसी सब्सक्रिप्शन पर जो सब इस्तेमाल करते हैं, बिना किसी MCP सर्वर, plugin या स्किल के। एक छोटे शतरंज इंजन पर दो टास्क: पांच इंजेक्ट किए गए बग्स वाला एक बग हंट, और algebraic notation जोड़ने वाला एक फीचर।
| Model, task | Routing on vs off |
|---|---|
| Opus 5, feature | +61% input tokens, +47% requests, +83% time (still solved 5/5) |
| Sonnet 5, feature | +16% input tokens, +37% time |
| Sonnet 5, bug hunt | −48% input tokens, −25% time |
लेखकों के अपने शब्दों में, डिबगिंग ही वह जगह है जहां राउटिंग फायदा देती है। उनकी व्याख्या ही उस सवाल का जवाब है: गेटवे Claude मॉडलों के साथ सिर्फ हिंट देता है, तो जो हिंट फिट नहीं बैठता वह मुफ्त में नज़रअंदाज़ होने की बजाय एक चक्कर की कीमत लगाता है।
Codex को फोर्स्ड वर्ज़न मिलता है। Jev ने Codex की 76 से 100% रिक्वेस्ट तय कीं, जबकि Claude Code की एक-तिहाई से आधी। दूसरे हार्नेस पर एक मॉडल सस्ता और गलत निकला, पांच में से पांच की बजाय सिर्फ तीन सॉल्व। सस्ता और गलत, बचत नहीं है।
सीमाएं असली हैं: हर सेल पर पांच रन एक छोटा सैंपल है, यह सिर्फ एक टॉय इंजन है, और किसी ने इसे दोबारा नहीं चलाया। इनपुट भी ज़्यादातर कैश्ड है, तो इनपुट की बचत, आउटपुट की बचत जितनी कीमती नहीं होती।
मेरा सेशन इसे क्या सौंपता है: क्लीन में 24, पूरे में 40 टूल्स
एक सामान्य Claude Code सेशन हर कॉल पर एक राउटर को क्या सौंपता है? प्रॉक्सी लॉग जवाब देता है: 40 टूल्स। वही रिपॉजिटरी, वही एक-शब्द वाला प्रॉम्प्ट, दो सेटअप: एक खाली कॉन्फ़िग और बिना किसी MCP सर्वर वाला क्लीन इंस्टॉल, और अपने सर्वर व plugin वाला एक सामान्य सेटअप।
| Clean install | Normal setup | |
|---|---|---|
| Tools in the request | 24 | 40 (16 from MCP servers and plugins) |
| Prefix tokens billed | 47,411 | 57,277 |
| Output tokens | 4 | 4 |
| API-equivalent cost of one "ok" | $0.07 | $1.15 |
रोस्टर ही बिल है। सबसे भारी डेफिनिशन बिल्ट-इन हैं: अकेले shell टूल 12,000 कैरेक्टर का है, agent टूल लगभग 9,000 का।
बेंचमार्क के फुटनोट ने एक क्लीन इंस्टॉल पर छह टूल्स और 7,000 टोकन देखे थे, और एक लोडेड सेटअप पर 285 टूल्स। आज का क्लीन Claude Code बिल्ट-इन में कहीं ज़्यादा टूल्स भेजता है, और लोडेड केस अब दुर्लभ है: ज़्यादातर MCP टूल्स एक सर्च टूल के पीछे, deferred, बैठे रहते हैं, तो जो रोस्टर एक राउटर देखता है वह छोटा ही रहता है। इसका आकार जो भी हो, गेटवे वह रोस्टर हर रिक्वेस्ट पर Jev को भेजता है; रिपॉजिटरी पर खुले एक issue के मुताबिक ज़्यादातर जवाब फेंके जाने से पहले पूरी कीमत चुकाई जा चुकी होती है। इसमें कुछ भी Jev की गलती नहीं है, और कुछ भी Jev के ठीक करने लायक नहीं है।
इस्तेमाल के हिसाब से फैसला
Claude Code के भीतर राउटिंग: नहीं। यह एक हिंट है जिसे मॉडल नज़रअंदाज़ कर सकता है, इसने दोनों Claude मॉडलों पर फीचर वर्क को धीमा किया, और अकेली जीत डिबगिंग पर है। अपवाद है एक बड़े टूल रोस्टर पर बग हंट का दिन, जिसे README खुद ही यही केस बताता है।
कॉम्पैक्शन प्लगइन, fast-jev-compaction: अभी नहीं। इसे एक early-access hook फ्लैग चाहिए, इसके खुले issues कहते हैं कि कुछ बिल्ड पर hooks रजिस्टर ही नहीं होते, और एक कॉम्पैक्शन के बाद मॉडल ने नौ ऐसी रिपोर्ट लिखीं जो कहती थीं काम हो गया, सब मनगढ़ंत। प्रैक्टिशनर्स पहले ही वहां पहुंच चुके थे: प्लगइन पर टॉप थ्रेड को 491 पॉइंट्स मिले हैं, और इसकी टॉप आपत्ति स्पीड नहीं, एक थर्ड पार्टी को ट्रांसक्रिप्ट भेजने की terms of service है।
Codex: वही असली निशाना है। वहां गेटवे टूल को फोर्स करता है, Jev लगभग हर रिक्वेस्ट को स्टियर करता है, और बग हंट 57% कम आउटपुट टोकन में पूरा हुआ।
| Use | Verdict |
|---|---|
| Routing in Claude Code | No, except bug hunts on a very large tool roster |
| fast-jev-compaction | Not yet |
| Codex | Yes |
इस लहर ने एक चीज़ सही पकड़ी: सब्सक्रिप्शन लॉगिन कभी नहीं हिलता, गेटवे सिर्फ एक URL बदलता है। इस पढ़ाई की सीमाएं: हर सेल पर पांच रन, एक शतरंज इंजन, एक बेंचमार्क रिपॉजिटरी जिसे किसी ने दोबारा नहीं चलाया, और अपना कोई राउटेड सेशन नहीं। मैंने रोस्टर और रिक्वेस्ट नापी, Jev को नहीं। Jev खुद सस्ता है। चक्कर सस्ता नहीं है।
AIDive