← नवीनतम पेपर
💻 computer science

Agentic Generation of AST Transformation Rules for Fixing Breaking Updates

यह शोध पत्र BigBag प्रस्तुत करता है, जो एक एजेंटिक फ्रेमवर्क है जो कई सॉफ्टवेयर प्रोजेक्ट्स में ब्रेकिंग डिपेंडेंसी अपडेट्स को स्वचालित रूप से ठीक करने के लिए पुन: प्रयोज्य (reusable), API-स्तरीय AST ट्रांसफॉर्मेशन रूल्स जनरेट करता है, जो उच्च कंपाइलेशन और फिक्स दरों को प्राप्त करते हुए महत्वपूर्ण क्रॉस-प्रोजेक्ट ट्रांसफ़रेबिलिटी प्रदर्शित करता है।

मूल लेखक: Frank Reyes, Benoit Baudry, Martin Monperrus

प्रकाशित 2026-06-24
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Frank Reyes, Benoit Baudry, Martin Monperrus

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप एक विशाल निर्माण स्थल (आपका सॉफ़्टवेयर प्रोजेक्ट) के मैनेजर हैं। आप अपनी ईंटों, सीमेंट और औजारों के लिए एक विशिष्ट आपूर्तिकर्ता (एक थर्ड-पार्टी लाइब्रेरी) पर निर्भर हैं। वर्षों तक, सब कुछ पूरी तरह से काम करता रहा।

फिर, एक दिन, आपूर्तिकर्ता अपना नया कैटलॉग भेजता है। उन्होंने केवल कीमत नहीं बदली; उन्होंने ईंटों का आकार बदल दिया, औजारों का नाम बदल दिया, और डिलीवरी ट्रकों को एक अलग सड़क पर स्थानांतरित कर दिया। अचानक, आपका निर्माण दल कुछ भी बनाने में असमर्थ हो जाता है। ब्लूप्रिंट (नक्शे) नए सामान से मेल नहीं खाते, और पूरा निर्माण कार्य ठप हो जाता है। इसे प्रोग्रामर्स "ब्रेकिंग डिपेंडेंसी अपडेट" (breaking dependency update) कहते हैं।

आमतौर पर, जब ऐसा होता है, तो एक मानव डेवलपर को उस आपूर्तिकर्ता के नए कैटलॉग का उपयोग करने वाले हर एक निर्माण स्थल पर जाना पड़ता है, बदलावों को समझना पड़ता है, और प्रत्येक के लिए ब्लूप्रिंट को मैन्युअल रूप से फिर से लिखना पड़ता है। यदि 100 स्थल प्रभावित हैं, तो यह 100 अलग-अलग, थकाऊ काम हैं।

नया समाधान: BIGBAG

यह शोध पत्र BIGBAG नामक एक नई प्रणाली पेश करता है। प्रत्येक साइट को व्यक्तिगत रूप से ठीक करने के लिए किसी इंसान को भेजने के बजाय, BIGBAG एक सुपर-स्मार्ट, स्वचालित वास्तुकार (automated architect) की तरह कार्य करता है।

यह कैसे काम करता है, सरल उपमाओं का उपयोग करते हुए यहाँ दिया गया है:

1. "डिटेक्टिव" (जांचकर्ता) चरण

जब नया आपूर्तिकर्ता कैटलॉग आता है और निर्माण रुक जाता है, तो BIGBAG का "डिटेक्टिव" (उन्नत AI द्वारा संचालित एक कोडिंग एजेंट) त्रुटि संदेशों (error messages) को देखता है। वह पूछता है: "ईंट क्यों फिट नहीं बैठ रही है?" वह यह समझने के लिए कि वास्तव में क्या बदला है, नए कैटलॉग (API डॉक्यूमेंटेशन) को पढ़ता है।

2. "यूनिवर्सल ब्लूप्रिंट" (सार्वभौमिक ब्लूप्रिंट) चरण

यही जादुई हिस्सा है। केवल आपके विशिष्ट स्थल के लिए नया ब्लूप्रिंट बनाने के बजाय, AI एक यूनिवर्सल रिपेयर रूल (Universal Repair Rule) बनाता है।

  • पुराना तरीका: "आपके घर की बाईं दीवार पर दरवाजा बदलें।"
  • BIGBAG का तरीका: "यदि आपको बाईं दीवार पर एक दरवाजा दिखाई देता है, तो उसे केंद्र में ले आएं, चाहे आप किसी भी घर में हों।"

यह "यूनिवर्सल रिपेयर रूल" एक छोटा कंप्यूटर प्रोग्राम (एक AST ट्रांसफॉर्मेशन) है जो कहता है: "इस पुराने औजार के हर उदाहरण को खोजें और इसे इस नए औजार से बदल दें।"

3. "टेस्ट ड्राइव" चरण

इस नियम को भेजने से पहले, BIGBAG इसे मूल टूटे हुए स्थल पर आजमाता है। यह नियम को चलाता है, जांचता है कि क्या इमारत खड़ी रह सकती है, और यदि टेस्ट पास हो जाते हैं। यदि यह विफल रहता है, तो AI डिटेक्टिव फिर से प्रयास करता है, नियम को तब तक ट्यून करता है जब तक कि वह पूरी तरह से काम न करने लगे।

4. "मास डिस्ट्रीब्यूशन" (बड़े पैमाने पर वितरण) चरण

एक बार जब नियम पहले स्थल पर काम करने के लिए सिद्ध हो जाता है, तो BIGBAG उस ठीक उसी नियम को अन्य सभी निर्माण स्थलों पर भेज देता है जो उसी आपूर्तिकर्ता के बदलाव से प्रभावित हैं। यह एक ही "फिक्स-इट" (ठीक करने वाला) स्टिकर बांटने जैसा है जो एक ही मॉडल की हर कार पर काम करता है, बजाय इसके कि हर कार को एक-एक करके ठीक किया जाए।

उन्होंने क्या पाया?

शोधकर्ताओं ने 157 वास्तविक दुनिया की आपदाओं का परीक्षण किया जहाँ लाइब्रेरी अपडेट के कारण सॉफ़्टवेयर टूट गया था। उन्होंने इन नियमों को बनाने के लिए चार अलग-अलग "सुपर-इंटेलिजेंट" AI दिमागों और दो अलग-अलग "ड्राइंग टूल्स" (सॉफ्टवेयर इंजन) का उपयोग किया।

  • सफलता दर: सबसे अच्छे AI और ड्राइंग टूल के संयोजन ने 94% समय में एक काम करने वाला "यूनिवर्सल रिपेयर रूल" बनाने में सफलता प्राप्त की।
  • ब्रेक को ठीक करना: एक बार नियम बन जाने के बाद, इसने टूटे हुए सॉफ़्टवेयर को 78% समय सफलतापूर्वक ठीक किया।
  • "यूनिवर्सल" परीक्षण: सबसे रोमांचक हिस्सा यह देखना था कि क्या नियम अन्य साइटों पर काम करता है।
    • कुल मिलाकर, नियम अन्य साइटों पर 33% बार काम करते थे।
    • हालाँकि, यदि सभी साइटें टूटे हुए टूल का बिल्कुल एक ही तरीके से (एकरूप रूप से) उपयोग करती थीं, तो नियम 80% या उससे अधिक बार काम करते थे।

कमी (यह 100% परफेक्ट क्यों नहीं है)

शोध में दो मुख्य कारण मिले कि "यूनिवर्सल रूल" कभी-कभी क्यों विफल हो जाता है:

  1. ड्राइंग टूल मायने रखता है: कुछ AI मॉडल कुछ विशेष "ड्राइंग टूल्स" (सॉफ्टवेयर इंजन) का उपयोग करने में बेहतर होते हैं। यह एक चित्रकार को ऐसे ब्रश देने जैसा है जिसे उसने पहले कभी इस्तेमाल नहीं किया हो; वह गड़बड़ी कर सकता है। शोधकर्ताओं ने पाया कि एक सरल टूल (JavaParser) अक्सर एक जटिल टूल (Spoon) की तुलना में बेहतर काम करता था क्योंकि इसे AI के लिए समझना आसान था।
  2. "एक-आकार-सभी-के-लिए" (One-Size-Fits-All) की समस्या: AI एक टूटे हुए स्थल को देखकर नियम सीखता है। यदि उस स्थल ने टूटे हुए टूल का किसी अजीब, अनोखे तरीके से उपयोग किया है, तो AI उस अजीबपन के लिए नियम लिखता है। जब वह नियम को दूसरे स्थल पर लागू करने की कोशिश करता है जहाँ टूल का सामान्य रूप से उपयोग किया गया था, तो नियम शायद फिट नहीं बैठता। यह एक व्यक्ति के लिए कस्टम सूट बनाने और फिर उसे किसी दूसरे व्यक्ति पर जबरदस्ती फिट करने जैसा है; यह तभी काम करता है जब उनका शरीर का आकार बिल्कुल एक जैसा हो।

निचोड़ (Bottom Line)

BIGBAG यह साबित करता है कि हम सॉफ़्टवेयर अपडेट को एक-एक करके ठीक करना बंद कर सकते हैं। इसके बजाय, हम एक एकल, पुन: प्रयोज्य "रिपेयर स्क्रिप्ट" बना सकते हैं जो उसी अपडेट से प्रभावित सभी लोगों के लिए समस्या को हल कर देती है। हालांकि यह अभी तक सब कुछ पूरी तरह से ठीक नहीं करता है, लेकिन यह एक विशाल, मैन्युअल सिरदर्द को एक काफी हद तक स्वचालित प्रक्रिया में बदल देता है, जिससे डेवलपर्स को एक ही कोड को बार-बार फिर से लिखने से बचाया जा सकता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →