Beyond Human-Readable: Rethinking Software Engineering Conventions for the Agentic Development Era
यह शोध पत्र तर्क देता है कि सॉफ्टवेयर इंजीनियरिंग परंपराओं को मानव-केंद्रित पठनीयता से बदलकर एजेंटिक एआई (agentic AI) के लिए "सिमेंटिक डेंसिटी ऑप्टिमाइज़ेशन" (semantic density optimization) की ओर विकसित होना चाहिए, जो प्रयोगों के माध्यम से यह प्रदर्शित करता है कि आक्रामक टोकन संपीड़न (token compression) मॉडल पर व्याख्यात्मक बोझ डालकर लागत बढ़ा सकता है और प्रोग्राम कंकालों (program skeletons) तथा स्वायत्त एजेंटों की बेहतर सेवा के लिए शास्त्रीय एंटी-पैटर्न के पुनर्वास जैसे नए प्रतिमानों का प्रस्ताव करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
मुख्य विचार: केवल इंसानों के लिए नहीं, बल्कि रोबोट्स के लिए लिखना
पिछले 60 वर्षों से, सॉफ्टवेयर इंजीनियर कोड ऐसे लिख रहे हैं जैसे वे किसी इंसान के पढ़ने के लिए कोई उपन्यास लिख रहे हों। वे लंबे फ़ाइल नाम इस्तेमाल करते हैं, कोड को छोटे-छोटे टुकड़ों में बाँटते हैं, और बहुत सारे "औपचारिक" कमेंट्स (comments) जोड़ते हैं ताकि एक थके हुए इंसान के लिए इसे समझना आसान हो सके।
लेकिन अब, हमारे पास AI Agents हैं। ये ऐसे रोबोट हैं जो अपने आप कोड पढ़ सकते हैं, लिख सकते हैं और ठीक कर सकते हैं। वे थकते नहीं हैं, उन्हें कोड को "महसूस" करने की ज़रूरत नहीं होती, और उनकी याददाश्त (working memory) इंसानों की तरह सीमित नहीं होती।
पेपर का तर्क है कि हम अभी भी इंसानों के लिए लिख रहे हैं, लेकिन अब प्राथमिक पाठक एक रोबोट है। यह गलतफहमी हमें पैसा और समय दोनों खर्च करवा रही है।
मूल अवधारणा: "सिमेंटिक डेंसिटी" (Semantic Density)
कल्पना कीजिए कि आप अपने दोस्त को एक पैकेज भेज रहे हैं।
- पुराना तरीका (इंसान के अनुकूल): आप उपहार को 10 परतों वाले टिश्यू पेपर में लपेटते हैं, उसे एक बड़े डिब्बे में रखते हैं, और एक 5 पन्ने का पत्र लिखते हैं कि आपने वह विशिष्ट टिश्यू पेपर क्यों चुना। यह एक इंसान के लिए खोलने में सुंदर है, लेकिन इसे भेजना भारी और महंगा है।
- नया तरीका (एजेंट के अनुकूल): आप टिश्यू पेपर और लंबे पत्र को हटा देते हैं। आप बस उपहार को एक मजबूत, कॉम्पैक्ट बॉक्स में भेजते हैं जिस पर एक स्पष्ट लेबल लगा होता है।
पेपर इसे "Semantic Density" कहता है।
- उच्च घनत्व (High Density): ऐसे शब्द जो वास्तव में रोबोट को बताते हैं कि कोड क्या करता है (जैसे,
calculate_tax_for_uk_residents)। - शून्य सूचना (Zero Information): ऐसे शब्द जो सिर्फ अच्छे दिखते हैं या नियमों का पालन करते हैं लेकिन रोबोट को कुछ भी नया नहीं बताते (जैसे, Java में
public static void, या एक फंक्शन को 10 अलग-अलग छोटी फाइलों में बाँटना सिर्फ इसलिए क्योंकि एक इंसान उसे एक साथ याद नहीं रख सकता)।
स्वर्ण नियम: "मांस" (अर्थ) को रखें, "वसा" (संरचनात्मक फालतू चीज़ों) को फेंक दें।
सबसे बड़ा आश्चर्य: "कंप्रेशन" (Compression) एक जाल है
आप सोच सकते हैं, "अगर रोबोट इसे पढ़ रहे हैं, तो चलिए सब कुछ छोटा कर देते हैं! 'transaction' के बजाय 'tx' और 'error' के बजाय 'err' जैसे संक्षिप्त शब्दों का उपयोग करें।"
शोधकर्ताओं ने इसका परीक्षण किया, और इससे एक विरोधाभासी परिणाम (Counter-Intuitive Paradox) सामने आया:
"रीजनिंग टैक्स" (Reasoning Tax)
कल्पना कीजिए कि आप एक स्मार्ट असिस्टेंट से कोई रहस्य सुलझाने के लिए कह रहे हैं।
- परिदृश्य A (स्पष्ट): आप कहते हैं, "बटलर ने हीरा चुराया क्योंकि उसे अपने जुए के कर्ज के लिए पैसों की जरूरत थी।"
- परिणाम: असिस्टेंट इसे तुरंत सुलझा लेता है।
- परिदृश्य B (संकुचित/Compressed): आप कहते हैं, "B ने D को G के लिए चुराया।"
- परिणाम: असिस्टेंट को रुककर सोचना पड़ता है: "B कौन है? एक बटलर? एक बैंक? D क्या है? एक हीरा? एक कर्ज? और G क्या है? सोना? या जुआ?"
पेपर ने पाया कि हालांकि "Compressed" संस्करण में कम शब्द (tokens) थे, लेकिन AI को यह समझने के लिए कि आपका मतलब क्या है, 67% अधिक ऊर्जा खर्च करनी पड़ी। उसे संक्षिप्त शब्दों (abbreviations) के माध्यम से "तर्क" (reasoning) करना पड़ा।
सबक: अर्थ को हटाकर कोड को छोटा न करें। अर्थहीन चीज़ों को हटाकर इसे छोटा करें।
नया टूलकिट: "प्रोग्राम स्केलेटन" (The Program Skeleton)
चूंकि AI एजेंट पूरे प्रोजेक्ट को इंसानों की तरह फाइलों को स्क्रॉल करके नहीं देख सकते, इसलिए पेपर एक नया आर्टिफैक्ट (artifact) सुझाता है जिसे "Program Skeleton" (एक CODEMAP.md फ़ाइल की तरह) कहा जाता है।
उपमा (Analogy):
कल्पना कीजिए कि आप एक विशाल पुस्तकालय (कोडबेस) में हैं।
- पुराना तरीका: आपको हर शेल्फ तक जाना पड़ता है, एक किताब निकालनी पड़ती है और यह देखने के लिए उसका पहला पन्ना पढ़ना पड़ता है कि वह प्रासंगिक है या नहीं।
- स्केलेटन तरीका: आपको एक लाइब्रेरी मैप दिया जाता है जो कहता है: "इतिहास की किताबें गलियारे 3 में हैं, साइंस-फिक्शन गलियारे 5 में है। यहाँ हर किताब का एक-लाइन का सारांश दिया गया है।"
स्केलेटन में शामिल है:
- कौन सी फाइलें मौजूद हैं।
- वे कैसे जुड़ी हैं (कौन किसे कॉल करता है)।
- उनके काम का एक-लाइन का सारांश।
- यह वास्तविक कोड को छोड़ देता है।
यह AI एजेंट को यह जानने में मदद करता है कि उसे कहाँ देखना है, बिना पूरी लाइब्रेरी को पढ़े।
हमें क्या बदलना चाहिए?
पेपर कुछ पुराने सॉफ्टवेयर नियमों को उल्टा करने का सुझाव देता है:
- सिर्फ इसलिए फाइलें न बांटें: इंसान अपने कोड को छोटी फाइलों में इसलिए बांटते हैं क्योंकि हमारा दिमाग एक बार में केवल 7 चीजें ही रख सकता है। रोबोट की ऐसी कोई सीमा नहीं है। यदि एक फीचर एक साथ होना चाहिए, तो उसे एक बड़ी फाइल में रखें। इससे रोबोट को 10 अलग-अलग फाइलें पढ़ने के लिए 10 अलग-अलग "फोन कॉल" (tool calls) करने से बचाया जा सकता है।
- चीजों का स्पष्ट नाम रखें:
calc()जैसे छोटे, रहस्यमयी नामों के बजाय, लंबे, वर्णनात्मक नाम जैसेcalculate_monthly_subscription_fee_for_premium_usersका उपयोग करें। एक इंसान के लिए यह लंबा लग सकता है, लेकिन एक रोबोट के लिए, यह एक आदर्श, स्वतः-स्पष्ट निर्देश है। - "एंटी-पैटर्न" (Anti-Patterns) का पुनर्मूल्यांकन करें: कुछ चीजें जिन्हें हम पहले नापसंद करते थे (जैसे "God Objects" जहाँ एक ही फाइल सब कुछ करती है), वे रोबोट के लिए अच्छी हो सकती हैं क्योंकि यह सारी जानकारी को एक ही जगह रखता है, जिससे इधर-उधर जाने की आवश्यकता कम हो जाती है।
पेच (The Catch): मानव समीक्षक (The Human Reviewer)
एक समस्या है। जबकि रोबोट को "सघन, एकीकृत, लंबे नाम वाला" कोड पसंद है, इंसानों को इसे पढ़ने में कठिनाई हो सकती है।
यदि कोड को रोबोट के लिए अनुकूलित किया जाता है, तो मानव समीक्षक भ्रमित हो सकता है। पेपर एक "प्रोजेक्शन लेयर" (projection layer) का सुझाव देता—एक ऐसा टूल जो रोबлот को "सघन" (dense) संस्करण दिखाता है लेकिन इंसान को "सुंदर, विभाजित" (pretty, split-up) संस्करण दिखाता है।
सारांश
- पुराना सॉफ्टवेयर इंजीनियरिंग: इंसानी आँखों के अनुकूल (छोटी फाइलें, छोटे नाम, बहुत सारे कमेंट्स)।
- नई एजेंटिक इंजीनियरिंग: मशीन के दिमाग के अनुकूल (बड़ी फाइलें, लंबे वर्णनात्मक नाम, न्यूनतम फालतू चीजें)।
- गलती: कोड को संक्षिप्त (compress) करने की कोशिश करना जिससे वह रहस्यमयी बन जाए। इससे AI को अधिक मेहनत करनी पड़ती है और अधिक पैसा खर्च होता है।
- समाधान: अर्थ को समृद्ध और स्पष्ट रखें, लेकिन संरचनात्मक शोर (structural noise) को हटा दें। AI को एक "मैप" (Skeleton) दें ताकि वह खो न जाए।
संक्षेप में: ऐसा कोड लिखें जो इतना स्पष्ट और वर्णनात्मक हो कि रोबोट को अनुमान न लगाना पड़े, लेकिन इस तरह व्यवस्थित हो कि उसे पहेली के अगले टुकड़े को खोजने के लिए कमरे के दूसरे कोने तक न जाना पड़े।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।