आप एक prompt भेजते हैं। मॉडल जवाब देता है। आप आगे बढ़ जाते हैं। उस लूप में कहीं, आपने ऐसे token जला दिए जिनकी ज़रूरत नहीं थी: हर call में re-inject किया गया boilerplate context, बिना किसी structure के system prompt, या ऐसी reasoning की माँग जो आप कभी पढ़ेंगे ही नहीं। दिन में 10 calls पर यह शोर है। दिन में एक हज़ार calls पर — या किसी multi-agent loop के अंदर — यह असली पैसा और मापने योग्य latency है। Token अनुशासन agentic development की कम आंकी गई कला है, और इसका अधिकांश हिस्सा आदत है, चतुराई नहीं।
शुरुआत में संख्याओं के बारे में एक बात: आपको जो बचत मिलेगी वह पूरी तरह आपके workload पर निर्भर करती है, इसलिए गोल प्रतिशत बताने के बजाय यह लेख दिखाता है कि बर्बादी कहाँ छिपती है और एक मापा हुआ उदाहरण देता है जिसे आप दोबारा कर के देख सकते हैं।
नियम 1: आपका system prompt एक API है
अपने system prompt को एक type signature की तरह समझें। यह precise, minimal, और versioned होना चाहिए। अगर आप हर call में "you are a helpful assistant who..." के तीन paragraphs चिपका रहे हैं, तो आप मॉडल को खुद उसी की व्याख्या करवाने के लिए भुगतान कर रहे हैं।
क्या रखें: एक वाक्य का role, output format की बाधाएं, defaults को override करने वाले domain नियम, और आपके किसी custom tool की syntax अगर हो। क्या हटाएं: politeness scaffolding, अनावश्यक negations ("X, Y, Z मत करो" जबकि आप "A करो" कह सकते हैं), और ऐसे examples जो सिर्फ़ format rule दोहराते हैं।
नियम 2: Context एक मुफ़्त buffer नहीं है
Context window अनंत लगती है जब तक आप किसी मॉडल को loop में call न करें और आपकी p95 latency अचानक न बढ़ जाए। context में हर character inference पर समय लेता है। बड़ा context मुफ़्त नहीं है; यह एक dial है जिसे आप घुमा रहे हैं। आम bloat:
- जब सिर्फ़ अंतिम कुछ turns चाहिए तब पूरी conversation history pass करना।
- जब cursor के आसपास की lines चाहिए तब पूरी file contents शामिल करना।
- जब task दो tools का उपयोग करे तब हर available tool inject करना।
इसे ठीक करें पुराने turns को summarize कर के, पूरी files inject करने के बजाय retrieval का उपयोग कर के, और tool lists को task की ज़रूरत तक trim कर के।
नियम 3: Structured output post-processing tokens को खत्म करता है
अगर आपका मॉडल prose निकालता है और आप उसे regex से parse करते हैं, तो आप दो बार भुगतान करते हैं: एक बार prose के लिए, एक बार extraction के लिए। इसके बजाय schema के साथ structured output माँगें, ताकि आपको सीधे parseable results मिलें और आप wrapper text से बच जाएं।
// इसके बजाय: "यहाँ analysis है: sentiment positive है क्योंकि..."
{
"sentiment": "positive",
"confidence": 0.87,
"reason": "forward-looking language"
}
बचत असली है लेकिन workload पर निर्भर, इसलिए किसी सुर्खी वाली संख्या पर भरोसा करने के बजाय अपनी बचत खुद मापें।
नियम 4: एक असली पहले-और-बाद को मापें
यहाँ हमारे अपने runs से एक दोहराने योग्य उदाहरण है, जो एक अकेले केस (n=1) के रूप में दिया गया है, benchmark के रूप में नहीं। हमारे पास एक classification चरण था जो label के साथ व्याख्या का एक paragraph लौटाता था, और हम उसमें से label निकालते थे। API के token usage फ़ील्ड से गिनने पर, prose संस्करण औसतन प्रति call लगभग 180 output token लेता था। एक सख़्त JSON schema पर जाने से जो सिर्फ़ label और एक पंक्ति का कारण लौटाती थी, यह घटकर प्रति call लगभग 45 output token रह गया। हमारी eval पर वही सटीकता, लगभग एक-चौथाई output token, और कोई regex नहीं। मुख्य बात हमारी संख्या नहीं है; मुख्य बात यह है कि आप usage object पढ़ें और अपनी संख्या देखें।
नियम 5: अपने भारी, स्थिर context को cache करें
अगर context का कोई बड़ा हिस्सा calls के दौरान स्थिर रहता है, तो उसे दोबारा भेजने के बजाय cache करें। Anthropic के prompt caching के साथ, cache reads का बिल base input tokens के एक अंश पर होता है, इसलिए एक लंबा, अपरिवर्तनीय system prompt या tool description हर call पर लगने वाला कर नहीं रह जाता। स्थिर हिस्से को caching के लिए mark करें और परिवर्तनशील हिस्से को उससे बाहर रखें। हमने पूरी mechanics अलग से लिखी है, इसलिए इसे यहाँ दोहराने के बजाय, सटीक headers और झमेलों के लिए prompt caching समझाया गया देखें।
Token budget की सोच
नया prompt लिखने से पहले तीन सवाल पूछें: इस काम को सही ढंग से करने के लिए मॉडल को न्यूनतम कितना context चाहिए, न्यूनतम output format क्या है जो मुझे वो देता है जो मुझे चाहिए, और क्या मैं कुछ ऐसा re-inject कर रहा हूँ जिसे cache या compress किया जा सकता था? Token अनुशासन compound होता है, और आप जिस मॉडल पर route करते हैं वह prompt जितना ही मायने रखता है। अगर आपको routing वाला पहलू चाहिए, तो हम इसे अलग-अलग मॉडलों में token कैसे बर्बाद न करें में कवर करते हैं। हल्का ship करें, तेज़ ship करें।
