Fallow सेटिंग के साथ Claude एजेंट के टोकन बर्बादी और व्यर्थ प्रयासों को कम करना
١ مايو ٢٠٢٦
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
बड़े मोनोरेपो (monorepo) में AI एजेंट का उपयोग करते समय आप जल्दी ही महसूस करेंगे कि वे बिना सोचे-समझे हजारों फाइलों को पढ़ते हैं और आपके पैसे खर्च करते हैं, लेकिन अक्सर जो कोड वे देते हैं वह संदर्भहीन कचरा होता है। एजेंट की बुद्धिमत्ता को दोष देने से पहले, हमें यह देखना चाहिए कि हम उसे क्या खिला रहे हैं। यहाँ Rust-आधारित कोड विश्लेषण टूल Fallow का उपयोग करने का एक विशिष्ट तरीका बताया गया है, जिससे एजेंट केवल 'वास्तव में महत्वपूर्ण कोड' ही पढ़ सके।
एजेंट को पूरा कोडबेस सौंप देना गैर-जिम्मेदाराना है। बहुत अधिक जानकारी होने पर मॉडल 'Lost in the Middle' की स्थिति का अनुभव करता है, जहाँ वह बीच की सामग्री भूल जाता है। Fallow की इंडेक्सिंग सुविधा का उपयोग करके एजेंट की खोज सीमा को भौतिक रूप से सीमित करना आवश्यक है।
.fallow.json बनाएं। exclude ऐरे में **/dist/**, **/tests/** और लेगेसी पैकेजों को शामिल करें। शोर को कम करना प्राथमिकता है।rules सेक्शन में high-complexity थ्रेशोल्ड को 15 के आसपास सेट करें। यह एक ऐसा तंत्र है जो एजेंट को उच्च संज्ञानात्मक जटिलता (cognitive complexity) वाले मॉड्यूल से शुरू करने के लिए मजबूर करता है।strictBoundaries विकल्प को चालू करें। यह एजेंट को पैकेज की सीमाओं को अनदेखा करने और निर्भरताओं (dependencies) को उलझाने से रोकता है।केवल इस सेटिंग से ही एजेंट द्वारा पढ़ी जाने वाली फाइलों की संख्या में भारी कमी आती है। वास्तव में, अनावश्यक फाइल रीडिंग को ब्लॉक करके आप API लागत में 40% से अधिक की बचत कर सकते हैं।
एजेंट को कोड की हर लाइन को पढ़ने और समस्या खोजने के लिए न कहें। वह पैसे की बर्बादी है। Fallow द्वारा पहले से गणना किए गए संरचनात्मक डेटा का सारांश देना कहीं अधिक तेज़ और सटीक है।
टर्मिनल में fallow audit --format json > audit_report.json चलाकर आर्किटेक्चर उल्लंघन और जटिलता रिपोर्ट निकालें। इस JSON डेटा को सीधे Claude के कॉन्टेक्स्ट विंडो में डालें या CLAUDE.md फाइल में संदर्भित करें। सिस्टम प्रॉम्प्ट में लिखें, "संशोधन से पहले रिपोर्ट के verdict और complexity स्कोर की जांच करें, और कम स्कोर वाले मॉड्यूल से काम शुरू करें।"
डेवलपर को विस्तार से समझाने की जरूरत नहीं है। एजेंट डेटा द्वारा व्यवस्थित प्राथमिकताओं के आधार पर सबसे खराब कोड से 'सर्जरी' शुरू कर देगा।
केवल स्टेटिक विश्लेषण से यह पता नहीं चल सकता कि कोड वास्तव में चल रहा है या नहीं। 'ज़ोंबी कोड' (zombie code) - जिसका संदर्भ मौजूद है लेकिन वास्तव में कोई उसे कॉल नहीं करता - मोनोरेपो की मुख्य समस्या है। जैसा कि Meta के SCARF फ्रेमवर्क ने सिद्ध किया है, सुरक्षित विलोपन के लिए स्टेटिक विश्लेषण और डायनेमिक कवरेज को मिलाना आवश्यक है।
V8 कवरेज डेटा (NODE_V8_COVERAGE) एकत्र करने के बाद Fallow की runtime-sync सुविधा चलाएं। आपको उन फंक्शन की सूची मिलेगी जिनका "स्टेटिक संदर्भ मौजूद है लेकिन पिछले एक महीने में कभी निष्पादित नहीं हुए।" एजेंट को यह सूची दें और उसे हटाने की अनुमति मांगने को कहें। आप एजेंट के मुँह से यह तर्क सुनेंगे, "इस फंक्शन का 6 महीने से कोई कॉल रिकॉर्ड नहीं है, इसलिए इसे हटाना सुरक्षित है।"
एजेंट द्वारा लिखा गया कोड अभी काम कर रहा है इसका मतलब यह नहीं है कि इसे बिना सोचे-समझे मर्ज कर दिया जाए। हमें यह जांचना होगा कि क्या यह दीर्घकालिक पठनीयता (readability) को नुकसान पहुँचाता है। Fallow हैल्स्टेड जटिलता (Halstead complexity) और लॉजिकल पाथ की संख्या को मिलाकर मेंटेनबिलिटी इंडेक्स (MI) की गणना करता है।
GitHub Actions में fallow audit --base main --format json स्टेप जोड़ें। यदि health_score 70 अंक से नीचे गिरता है, तो बिल्ड फेल (fail) कर दें।
यह एक 'गेट' हर हफ्ते सीनियर डेवलपर के रिव्यू समय को 2 घंटे से अधिक बचा सकता है। क्योंकि आपको एजेंट द्वारा किए गए काम को साफ नहीं करना पड़ता, बल्कि मशीन द्वारा पहले से सत्यापित उच्च-गुणवत्ता वाले कोड के डिज़ाइन की ही समीक्षा करनी होती है। एजेंट के साथ सहयोग में उत्पादकता का अंतर इस बात से तय होता है कि आप इन नियतात्मक (deterministic) उपकरणों का कितनी कुशलता से उपयोग करते हैं।