SAGE: A Self-Adaptive Agentic Framework for Execution-Guided Code Generation and Self-Repair
यह शोध पत्र SAGE को प्रस्तुत करता है, जो एक स्व-अनुकूलनशील मल्टी-एजेंट फ्रेमवर्क है जो कोड को पुनरावृत्ति से निष्पादित करने, रनटाइम त्रुटियों का विश्लेषण करने और स्व-मरम्मत करने के लिए एक क्लोज्ड-लूप MAPE-K नियंत्रण चक्र का उपयोग करके रन करने योग्य मल्टी-फाइल प्रोजेक्ट्स उत्पन्न करने की विश्वसनीयता में महत्वपूर्ण सुधार करता है, जिससे सिंगल-पास जनरेशन की तुलना में सफलता दरों में सांख्यिकीय रूप से महत्वपूर्ण वृद्धि प्राप्त होती है।
मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक प्रतिभाशाली लेकिन थोड़े लापरवाह रोबोट को एक जटिल लेगो (LEGO) किला बनाने के लिए सिखाने की कोशिश कर रहे हैं। आप रोबोट को एक सरल निर्देश देते हैं: "एक किला बनाओ जिसमें एक खाई और एक ड्रॉब्रिज (drawbridge) हो।" एक रोबोट, जिसे लाखों किलों की तस्वीरों पर प्रशिक्षित किया गया है, तुरंत एक ऐसी संरचना जोड़ सकता है जो दिखने में बिल्कुल सटीक हो। लेकिन यदि आप ड्रॉब्रिज को खींचने की कोशिश करते हैं, तो वह टूटकर अलग हो सकता है क्योंकि रोबोट ने एक ऐसा हिस्सा इस्तेमाल किया है जो वर्षों पहले बंद हो चुका है, या वह आधार को ज़मीन से जोड़ने में भूल गया। कंप्यूटर विज्ञान की दुनिया में, यह "लार्ज लैंग्वेज मॉडल्स" (LLMs) की चुनौती है। ये एआई (AI) सिस्टम हैं जो कोड के छोटे हिस्से, जैसे कि एक सिंगल फंक्शन लिखने में अविश्वसनीय रूप से अच्छे हैं, लेकिन जब उन्हें शुरुआत से एक पूरा, काम करने वाला सॉफ्टवेयर प्रोजेक्ट बनाने के लिए कहा जाता है, तो वे अक्सर संघर्ष करते हैं। वे आवश्यक टूल्स इंस्टॉल करना भूल सकते हैं, पुराने निर्देशों का उपयोग कर सकते हैं, या एक ऐसा प्रोग्राम बना सकते हैं जो कागज़ पर सही दिखता है लेकिन जैसे ही आप उसे चलाने की कोशिश करते हैं, वह क्रैश हो जाता है।
लंबे समय तक, समाधान बस रोबोट से फिर से कोशिश करने के लिए कहना था, इस उम्मीद में कि वह पहली बार में सही कर लेगा। लेकिन यह शोध पत्र एक स्मार्ट दृष्टिकोण पेश करता है: केवल अनुमान लगाने के बजाय, रोबोट को वास्तव में किला बनाने दें, ड्रॉब्रिज खोलने की कोशिश करें, और यदि वह टूट जाए, तो उसे तुरंत ठीक करें। यही "एग्जीक्यूशन-गाइडेड सेल्फ-रिपेयर" (execution-guided self-repair) का मूल विचार है। यह एक गुणवत्ता नियंत्रण निरीक्षक (quality control inspector) होने जैसा है जो केवल ब्लूप्रिंट को नहीं देखता, बल्कि वास्तव में उत्पाद का उपयोग करने की कोशिश भी करता है। यदि उत्पाद विफल हो जाता है, तो निरीक्षक निर्माता को बताता है कि वास्तव में क्या गलत हुआ, और निर्माता उसे ठीक करता है। बनाने, परीक्षण करने और ठीक करने का यह चक्र तब तक चलता रहता है जब तक कि प्रोजेक्ट पूरी तरह से काम न करने लगे। बड़ा सवाल जो शोधकर्ताओं ने पूछा है वह यह है: क्या यह "कोशिश करो, विफल हो जाओ, ठीक करो" वाला लूप वास्तव में एआई को जटिल सॉफ्टवेयर बनाने में बहुत बेहतर बनाता है, या यह केवल रोबोट को भ्रमित करके गोल-गोल घुमाता रहता है?
इस अध्ययन के पीछे के शोधकर्ता, हर्षिल लोधिया ने SAGE (सेल्फ-अडैप्टिव एजेंटिक फ्रेमवर्क फॉर एग्जीक्यूशन-गाइडेड कोड जनरेशन एंड सेल्फ-रिपेयर) नामक एक नया सिस्टम बनाया है ताकि उस प्रश्न का उत्तर दिया जा सके। SAGE को एक छोटे, स्वचालित निर्माण दल के रूप में समझें जिसमें एक लूप में काम करने वाली चार अलग-अलग भूमिकाएँ हैं। सबसे पहले, एक प्लानर (Planner) आपके बड़े लक्ष्य को एक विस्तृत चेकलिस्ट में तोड़ देता है। दूसरा, एक कोडर (Coder) उस सूची के आधार पर फाइलें बनाता है। तीसरा, एक वैलिडेटर (Validator) एक सख्त निरीक्षक के रूप में कार्य करता है: यह एक साफ, अलग वर्कशॉप तैयार करता है, आवश्यक टूल्स इंस्टॉल करता है, और प्रोग्राम को चलाने की कोशिश करता है। यदि प्रोग्राम क्रैश हो जाता है या वह जो करने के लिए बनाया गया था उसमें विफल रहता है, तो वैलिडेटर हार नहीं मानता; वह एरर मैसेज को चौथे सदस्य, फीडबैक एजेंट (Feedback Agent) को भेजता है। यह एजेंट एक जासूस की तरह काम करता है, एरर रिपोर्ट को पढ़ता है और कोडर को ठीक-ठीक बताता है कि किस फाइल को बदलना है और कैसे ठीक करना है। कोडर फिर मरम्मत करता है, और पूरी टीम फिर से प्रयास करती है। यह चक्र तब तक दोहराया जाता है जब तक कि प्रोजेक्ट सफलतापूर्वक नहीं चल जाता या वे अपने प्रयासों की सीमा समाप्त नहीं कर देते।
टीम ने SAGE का परीक्षण 15 कठिन कार्यों के एक विशेष सेट पर किया जिसे विशेष रूप से एआई को उलझाने के लिए डिज़ाइन किया गया था, जैसे कि पुराने लाइब्रेरी कमांड का उपयोग करना जो अब मौजूद नहीं हैं या किसी आवश्यक आउटपुट फाइल को मिस करना। उन्होंने SAGE के "फिक्स-इट" लूप की तुलना एक मानक एआई से की जो बस प्रोजेक्ट बनाने की कोशिश करता है और उम्मीद करता है कि सब ठीक होगा। परिणाम स्पष्ट थे: सेल्फ-रिपेयर लूप ने एक बड़ा अंतर पैदा किया। जब एक मजबूत एआई मॉडल (gpt-4.1-mini) का उपयोग किया गया, तो मानक "वन-शॉट" दृष्टिकोण लगभग 69.3% मामलों में सफल रहा। लेकिन जब उन्होंने SAGE रिपेयर लूप जोड़ा, तो सफलता दर उछलकर 92.0% हो गई। यह 22.7 प्रतिशत अंक का सुधार है, जिसे शोधकर्ता एक महत्वपूर्ण और सार्थक लाभ बताते हैं। अनिवार्य रूप से, लूप ने उन कार्यों को बचा लिया जिन्हें एआई अन्यथा पूरी तरह से विफल कर देता, जैसे कि उस कोड को ठीक करना जो एक लोकप्रिय डेटा लाइब्रेरी से हटा दिए गए "मंथ" (month) फ्रीक्वेंसी एलियास का उपयोग करने की कोशिश कर रहा था।
हालाँकि, इस पेपर में एक अधिक आक्रामक संस्करण का भी परीक्षण किया गया। उन्होंने सोचा: क्या होगा अगर एआई केवल क्रैश को ठीक न करे, बल्कि यह भी जांचे कि क्या प्रोग्राम पूरी तरह से पूर्ण है, भले ही वह क्रैश न हुआ हो? उदाहरण के लिए, यदि एक प्रोग्राम को एक रिपोर्ट फ़ाइल जेनरेट करनी थी लेकिन वह बिना किसी त्रुटि के समाप्त हो गया, लेकिन बिना फ़ाइल बनाए, तो क्या एआई उसे पकड़ पाएगा? उन्होंने इसके लिए एक "करेक्टनेस-अवेयर" (correctness-aware) सिस्टम बनाया। आश्चर्यजनक रूप से, यह अतिरिक्त सख्ती ज्यादा काम नहीं आई। सफलता दर केवल 2.7 अंक (94.7% तक) बढ़ी, और शोधकर्ता ने पाया कि यह अंतर सांख्यिकीय रूप से महत्वपूर्ण नहीं था। वास्तव में, अतिरिक्त चेकिंग ने कभी-कभी एआई को चीजों को "ओवर-फिक्स" करने के लिए मजबूर किया, जिससे वे प्रोग्राम टूट गए जो पहले से ही ठीक काम कर रहे थे। सबक यह है कि जबकि एआई को यह बताना कि सफलता कैसी दिखती है, मददगार है, लेकिन लगातार उसे फिर से जांचने और फिर से ठीक करने के लिए मजबूर करना वास्तव में इसे बदतर बना सकता है।
संक्षेप में, यह पेपर दिखाता है कि एआई को "कोशिश करो, विफल हो जाओ, ठीक करो" का लूप देना जटिल सॉफ्टवेयर बनाने का एक शक्तिशाली तरीका है, जो सफलता दर को लगभग 69.3% से बढ़ाकर 92.0% कर देता है। यह साबित करता है कि एआई को एक वास्तविक, अलग वातावरण में अपनी गलतियों को देखने देना ही जटिल प्रोजेक्ट्स के लिए उसकी क्षमता को अनलॉक करने की कुंजी है। लेकिन यह हमें चेतावनी भी देता है कि बहुत अधिक पूर्णतावादी (perfectionist) होना उल्टा पड़ सकता है; कभी-कभी, एआई को बड़ी गलतियों को ठीक करने देना और बाकी चीजों को वैसे ही छोड़ देना बेहतर होता है। शोधकर्ता ने अपना कोड और अपना टेस्ट सुइट सभी के लिए खुला रखा है, इस उम्मीद में कि यह दूसरों को ऐसा सॉफ्टवेयर बनाने में मदद करेगा जो खुद को ठीक कर सके।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।