REFINE: A Multi-Agent LLM Approach for Evidence-Guided Code Refactoring
यह शोध पत्र REFINE को प्रस्तुत करता है, जो एक साक्ष्य-जागरूक (evidence-aware) मल्टी-एजेंट फ्रेमवर्क है जो सुरक्षित, अधिक प्रभावी जावा कोड रिफैक्टरिंग उम्मीदवारों को उत्पन्न करने के लिए स्टैटिक एनालिसिस और लार्ज लैंग्वेज मॉडल्स का लाभ उठाता है, जिससे अनपेक्षित व्यवहार संबंधी परिवर्तनों को कम करते हुए कोड स्मेल्स (code smells) को महत्वपूर्ण रूप से कम किया जाता है, हालांकि यह इस बात पर जोर देता है कि अपनाने से पहले मानवीय समीक्षा आवश्यक बनी हुई है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
तकनीकी सारांश: REFINE – साक्ष्य-निर्देशित कोड रिफैक्टरिंग के लिए एक मल्टी-एजेंट LLM दृष्टिकोण
समस्या विवरण
जबकि लार्ज लैंग्वेज मॉडल्स (LLMs) कोड जनरेशन और ट्रांसफॉर्मेशन में मजबूत क्षमताएं प्रदर्शित करते हैं, सॉफ्टवेयर रिफैक्टरिंग में उनका अनुप्रयोग महत्वपूर्ण चुनौतियों का सामना करता है। प्रभावी रिफैक्टरिंग के लिए न केवल कोड गुणवत्ता संबंधी समस्याओं (कोड स्मेल्स) को कम करने के लिए संशोधन की आवश्यकता होती है, बल्कि यह सुनिश्चित करने की भी आवश्यकता होती है कि परिवर्तन नए दोष उत्पन्न न करें, बाहरी व्यवहार को न बदलें, या महत्वपूर्ण संरचनात्मक तत्वों (जैसे सार्वजनिक API, एसेर्शन) को न हटाएँ।
वर्तमान LLM-सहायता प्राप्त रिफैक्टरिंग दृष्टिकोण अक्सर कठोर सत्यापन की कमी रखते हैं, जिससे हैलुसिनेटेड सुझावों, असंगत रूपांतरणों, या व्यवहार-प्रासंगिक कोड संरचनाओं को हटाने जैसे जोखिम उत्पन्न होते हैं। एक ऐसी व्यवस्थित पद्धति की आवश्यकता है जो:
- स्टैटिक एनालिसिस से प्राप्त साक्ष्य के साथ LLMs को निर्देशित करे।
- योजना बनाने, उत्पन्न करने और सत्यापित करने के लिए एक मल्टी-एजेंट वर्कफ़्लो को ऑर्केस्ट्रेट करे।
- इस बात का पता लगाने योग्य साक्ष्य प्रदान करे कि क्या बदला गया है, क्या जोखिम शेष हैं, और क्या आउटपुट एक व्यवहार्य रिफैक्टरिंग उम्मीदवार है न कि एक स्वतः स्वीकृत समाधान।
कार्यप्रणाली: REFINE वर्कफ़्लो
लेखक REFINE (Refactoring with Evidence-aware Flow for Integrated ageNtic Execution) पेश करते हैं, जो जावा फ़ाइल-स्तरीय रिफैक्टरिंग के लिए एक टूल-अज्ञेय (tool-agnostic), साक्ष्य-जागरूक मल्टी-एजेंट फ्रेमवर्क है। इस सिस्टम को एक Next.js इंटरफ़ेस, एक जावा स्प्रिंग बूट बैकएंड (PMD 7.x के माध्यम से स्टैटिक एनालिसिस के लिए), और एक पायथन एजेंट सर्विस (ऑर्केस्ट्रेशन के लिए LangGraph v1.1 का उपयोग करके) का उपयोग करके एक रिसर्च प्रोटोटाइप के रूप में कार्यान्वित किया गया है।
वर्कफ़्लो तीन प्राथमिक चरणों के माध्यम से संचालित होता है:
1. कार्य लक्षण वर्णन (Task Characterization)
- इनपुट: एक ओपन-सोर्स प्रोजेक्ट से एक एकल जावा फ़ाइल।
- साक्ष्य एकत्र करना (Evidence Gathering): स्टैटिक एनालिसिस (PMD) फ़ाइल-स्तरीय कोड स्मेल्स और नियम-स्तरीय साक्ष्य की पहचान करता है।
- संदर्भिकरण (Contextualization): सिस्टम सार्वजनिक API सिग्नेचर, वर्कस्पेस संदर्भ निकालता है, और एक सीमित रिफैक्टरिंग कार्य बनाने के लिए पहचाने गए स्मेल्स को प्राथमिकता देता है।
2. रिफैक्टरिंग ऑर्केस्ट्रेशन (Refactoring Orchestration)
वर्कफ़्लो प्रक्रिया को प्रबंधित करने के लिए ग्यारह विशिष्ट भूमिकाओं (एजेंटों) का समन्वय करता है:
- प्लानिंग एजेंट (Planning Agent): एक स्मेल-ओरिएंटेड रिफैक्टरिंग योजना बनाने के लिए नियत नियम-आधारित मार्गदर्शन को वैकल्पिक LLM शोधन के साथ जोड़ता है।
- रिफैक्टरिंग एजेंट (Refactoring Agent): योजना, मूल स्रोत और बाधाओं (जैसे सार्वजनिक API को सुरक्षित रखना) के आधार पर एक कैंडिडेट ट्रांसफॉर्मेशन उत्पन्न करने के लिए LLM को कॉल करता है।
- वेरिफिकेशन एजेंट (Verification Agent): किसी भी बदलाव को बनाए रखने से पहले, उत्पन्न कैंडिडेट का कॉन्फ़िगर किए गए साक्ष्य जाँचों के विरुद्ध विश्लेषण करता है।
3. सत्यापन ट्रेस और विश्लेषण (Verification Trace & Analysis)
REFINE, LLM आउटपुट को अंतिम नहीं मानता है। इसके बजाय, यह परिवर्तित फ़ाइल का पुन: विश्लेषण करता है ताकि निम्नलिखित की गणना की जा सके:
- स्मेल रिडक्शन: पहचाने गए कोड स्मेल्स में पूर्ण () और सापेक्ष सुधार।
- स्टैटिक प्रिजर्वेशन प्रॉक्सी: सार्वजनिक API संरक्षण, अपवाद हैंडलिंग (exception handling), फ्रेमवर्क कॉन्ट्रैक्ट्स, कंडीशनल लॉजिक, और क्रिटिकल एसेर्ट/फेल कॉल्स के लिए जाँच।
- विफलता निदान (Failure Diagnostics): अस्वीकृति के विशिष्ट कारणों को रिकॉर्ड करता है (जैसे सार्वजनिक मेथड का हटाया जाना)।
- ट्रेसिबिलिटी (Traceability): प्रत्येक निर्णय को उसके साक्ष्य से जोड़ने के लिए मूल स्रोत, उत्पन्न कैंडिडेट, एजेंट स्टेप्स, मेट्रिक्स और वेरिफिकेशन परिणामों को सुरक्षित रखता है।
प्रयोगात्मक डिज़ाइन
- डेटासेट: कोड-स्मेल काउंट और लाइन्स ऑफ कोड (LOC) के आधार पर स्ट्रैटिफाइड रैंडम सैंपलिंग के माध्यम से चयनित 15 ओपन-सोर्स सिस्टम (जैसे JHotDraw, Apache Ant, Guava, JabRef) से 450 जावा फ़ाइलें।
- LLM कॉन्फ़िगरेशन: तीन फ्रंटियर मॉडल्स का मूल्यांकन किया गया: OpenAI GPT-5.5, Google Gemini 3.1 Pro Preview, और Anthropic Claude Opus 4.8।
- स्केल: इसके परिणामस्वरूप 1,350 मॉडल-पास आउटपुट प्राप्त हुए।
- बेसलाइन: सरल प्रॉम्प्टिंग के विरुद्ध मल्टी-एजेंट वर्कफ़्लो की तुलना करने के लिए एक 150-फ़ाइल सबसेट पर एक मैच किया गया डायरेक्ट-प्रॉम्प्ट बेसलाइन आयोजित किया गया।
- मेट्रिक्स: कोड-स्मेल रिडक्शन, गुणवत्ता संकेतक (साइक्लोमैटिक कॉम्प्लेक्सिटी, मेंटेनेबिलिटी इंडेक्स, आदि), संरचनात्मक परिवर्तन, और प्रिजर्वेशन रिस्क।
मुख्य परिणाम
1. कोड स्मेल रिडक्शन (RQ1)
REFINE ने तीनों LLM कॉन्फ़िगरेशन में पहचाने गए कोड स्मेल्स में पर्याप्त कमी हासिल की:
- कुल कमी: 68.26% (GPT-5.5), 72.79% (Gemini 3.1), और 68.49% (Opus 4.8)।
- प्रमुख स्मेल्स: सबसे महत्वपूर्ण सुधार मेजर कोड स्मेल्स में देखे गए (86.51% से 91.60% कमी)।
- गुणवत्ता संकेतक: व्यापक गुणवत्ता मेट्रिक्स में सुधार एकसमान नहीं था। जबकि Gemini 3.1 ने साइक्लोमैटिक कॉम्प्लेक्सिटी और LCOM में महत्वपूर्ण कमी दिखाई, अन्य मेट्रिक्स (मेंटेनेबिलिटी, टेस्टेबिलिटी, हाल्डस्ट एफर्ट) ने मॉडल के आधार पर मिश्रित या प्रतिकूल परिवर्तन दिखाए।
2. प्रिजर्वेशन और जोखिम (RQ2)
- उच्च पास दरें: अधिकांश स्टैटिक प्रिजर्वेशन इंडिकेटर्स (पब्लिक मेथड सिग्नेचर, एक्सेप्शन हैंडलिंग, फ्रेमवर्क कॉन्ट्रैक्ट्स) उच्च दरों (81.8% से 94.2%) पर पास हुए।
- क्रिटिकल रिस्क:
- एसेर्ट/फेल कॉल्स: सभी मॉडल्स में केवल 57.1% आउटपुट्स ने क्रिटिकल एसेर्ट/फेल कॉल्स को संरक्षित किया, जो एक व्यवस्थित जोखिम का संकेत देता है।
- पब्लिक मेथड रिमूवल: यह सबसे ठोस डायग्नोस्टिक विफलता थी। Gemini 3.1 में सार्वजनिक मेथड हटाने की उच्चतम दर (71 मामले) देखी गई, उसके बाद GPT-5.5 (41) और Opus 4.8 (34) थे।
3. रिफैक्टरिंग व्यवहार (RQ3)
विभिन्न मॉडल्स ने अलग-अलग एडिट प्रोफाइल्स के माध्यम से स्मेल रिडक्शन प्राप्त किया:
- GPT-5.5: सबसे कॉम्पैक्ट एडिट्स उत्पन्न किए।
- Gemini 3.1: एक "डिलीशन-हेवी" प्रोफाइल प्रदर्शित किया, जिसने सबसे अधिक लाइनें और मेथड्स हटाए।
- Opus 4.8: एक "एक्सट्रैक्शन-हेवी" प्रोफाइल दिखाया जिसमें मेथड एक्सट्रैक्शन की संख्या सबसे अधिक थी।
- सहसंबंध (Correlation): बड़े एडिट वॉल्यूम का उच्च पूर्ण (absolute) स्मेल रिडक्शन के साथ संबंध था, लेकिन आवश्यक रूप से उच्च सापेक्ष (relative) रिडक्शन के साथ नहीं।
4. डायरेक्ट प्रॉम्प्टिंग के साथ तुलना
मैच किए गए 150-फ़ाइल सबसेट पर, REFINE ने निम्नलिखित में डायरेक्ट प्रॉम्प्टिंग को पछाड़ दिया:
- स्मेल रिडक्शन: औसत कुल रिडक्शन (REFINE: 100.0% बनाम डायरेक्ट प्रॉम्प्ट: 20.8%)।
- एडिट फुटप्रिंट: कम औसत चर्न (14 LOC बनाम 65 LOC)।
- API सुरक्षा: कम सार्वजनिक मेथड रिमूवल (46 मामले बनाम 112 मामले)।
- ट्रेड-ऑफ: डायरेक्ट प्रॉम्प्टिंग ने क्रिटिकल एसेर्ट/फेल कंस्ट्रक्ट्स को अधिक बार संरक्षित किया (100% बनाम 58%)।
महत्व और दावे
यह पेपर REFINE को व्यवहार-संरक्षण वाले रिफैक्टरिंग टूल्स के विकल्प के रूप में नहीं, बल्कि रिफैक्टरिंग कैंडिडेट को उत्पन्न करने और मूल्यांकन करने के लिए एक ट्रेस करने योग्य, साक्ष्य-जागरूक तंत्र के रूप में स्थापित करता है।
- साक्ष्य-जागरूकता (Evidence-Awareness): प्राथमिक योगदान उत्पन्न कोड को उस विशिष्ट स्टैटिक साक्ष्य (स्मेल्स) से जोड़ना है जिसने परिवर्तन को प्रेरित किया और उन सत्यापन जाँचों से है जिन्हें इसने पास या फेल किया।
- नियंत्रित जनरेशन (Controlled Generation): मल्टी-एजेंट वर्कफ़्लो डायरेक्ट प्रॉम्प्टिंग की तुलना में अधिक नियंत्रित कैंडिडेट जनरेशन प्रदान करता है, जिसके परिणामस्वरूप छोटे एडिट और कम आकस्मिक API रिमूवल होते हैं, हालांकि यह सभी व्यवहार संबंधी जोखिमों को समाप्त नहीं करता है।
- सीमाएँ (Limitations): लेखक स्पष्ट रूप से कहते हैं कि उत्पन्न आउटपुट कैंडिडेट्स हैं, न कि प्रोडक्शन-रेडी रिफैक्टरिंग। स्टैटिक प्रिजर्वेशन चेक प्रॉक्सी हैं और व्यवहारिक समानता को सिद्ध नहीं करते हैं।
- व्यावहारिक निहितार्थ: विशेष रूप से डिपेंडेंसी-रिच या सिस्टम-लेवल सेटिंग्स में अपनाने से पहले उत्पन्न कैंडिडेट को कंपाइलेशन, टेस्टिंग, डिपेंडेंसी एनालिसिस और मानव समीक्षा की आवश्यकता होती है।
अध्ययन निष्कर्ष निकालता है कि हालांकि साक्ष्य-जागरूक मल्टी-एजेंट वर्कफ़्लो लक्षित फ़ाइल-स्तरीय कोड-स्मेल मिटिगेशन के लिए आशाजनक हैं, फिर भी न तो डायरेक्ट प्रॉम्प्टिंग और न ही मल्टी-एजेंट दृष्टिकोण वर्तमान में जटिल सॉफ्टवेयर इकोसिस्टम में स्वायत्त रूप से काम करने के लिए पूर्ण व्यवहार संरक्षण का पर्याप्त साक्ष्य प्रदान करता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।