← नवीनतम पेपर
🤖 AI

SWE-Doctor: Guiding Software Engineering Agents with Runtime Diagnosis from Multi-Faceted Bug Reproduction Tests

SWE-Doctor एक नवीन सॉफ्टवेयर इंजीनियरिंग एजेंट है जो बहुआयामी बग पुनरुत्पादन परीक्षणों से प्राप्त रनटाइम निदानों का उपयोग करके पैच जनरेशन में सुधार करता है ताकि इन परीक्षणों को सीधे जनरेशन लक्ष्यों के रूप में उपयोग करने की सीमाओं को दूर किया जा सके, जिससे SWE-bench बेंचमार्क पर अत्याधुनिक समाधान दरें प्राप्त की जा सकें।

मूल लेखक: Yaoqi Guo, Yang Liu, Jie M. Zhang, Yun Ma, Yiling Lou, Zhenpeng Chen

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

मूल लेखक: Yaoqi Guo, Yang Liu, Jie M. Zhang, Yun Ma, Yiling Lou, Zhenpeng Chen

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

कल्पना कीजिए कि आपके पास एक बहुत ही बुद्धिमान, लेकिन थोड़ी शाब्दिक अर्थ निकालने वाला (literal-minded) रोबोट सहायक (एक AI एजेंट) है, जिसका काम एक सॉफ़्टवेयर प्रोग्राम में टूटे हुए कोड को ठीक करना है। आप उसे एक उपयोगकर्ता की शिकायत देते हैं: "जब मैं चीनी पात्रों (Chinese characters) को टाइप करता हूँ तो यह बटन काम नहीं करता।" रोबोट का लक्ष्य समस्या को हल करने के लिए एक "पैच" (कोड फिक्स) लिखना है।

आमतौर पर, ये रोबट अनुमान लगाने, यह जाँचने कि क्या टेस्ट पास हो रहा है, और फिर से कोशिश करने के माध्यम से कोड को ठीक करने की कोशिश करते हैं। लेकिन यह पेपर एक नए, अधिक स्मार्ट रोबोट SWE-Doctor को पेश करता है।

यह SWE-Doctor कैसे काम करता है, इसे सरल उपमाओं (analogies) के माध्यम से समझाया गया है:

समस्या: "एक-टेस्ट" का जाल (The "One-Test" Trap)

शोधकर्ताओं ने पहले एक सामान्य विचार आज़माया: "चलिए रोबोट को एक ऐसा टेस्ट देते हैं जो यह साबित करे कि बग मौजूद है, और उसे कोड को तब तक ठीक करने के लिए कहें जब तक कि टेस्ट हरा (पास) न हो जाए।"

उन्होंने पाया कि यह अच्छी तरह से काम नहीं करता है क्योंकि इसके दो कारण थे:

  1. "आंशिक सुधार" की समस्या (Fail-to-Pass): कल्पना करें कि एक कार की दो हेडलाइट्स खराब हैं। आप मैकेनिक को एक टेस्ट देते हैं जो केवल बाईं हेडलाइट की जाँच करता है। मैकेनिक बाईं वाली को ठीक कर देता है, टेस्ट हरा हो जाता है, और वह रुक जाता है। लेकिन दाईं हेडलाइट अभी भी खराब है! रोबोट ने समस्या के केवल एक हिस्से को ठीक किया क्योंकि वह केवल एक विशिष्ट टेस्ट को देख रहा था।
  2. "भ्रामक संकेत" की समस्या (Fail-to-Fail): कभी-कभी, रोबोट एक ऐसा टेस्ट बनाता है जो अजीब तरीके से टूटा हुआ होता है जो वास्तविक समस्या से मेल नहीं खाता। यदि रोबोट केवल उस विशिष्ट टूटे हुए टेस्ट को पास करने के लिए कोड को ठीक करने की कोशिश करता है, तो वह कार को और भी अधिक खराब कर सकता है या पूरी तरह से गलत चीज़ को ठीक कर सकता है। यह एक फ्लैट टायर को ठीक करने के लिए रेडियो सुनने जैसा है जो शोर (static) पैदा कर रहा है; शोर (टेस्ट फेलियर) आपको यह नहीं बताता कि वास्तविक समस्या कहाँ है।

समाधान: SWE-Doctor

SWE-दोक्टर खेल बदल देता है। केवल यह कहने के बजाय कि "इस टेस्ट को पास करो," यह एक जासूस और एक डॉक्टर की तरह काम करता है।

चरण 1: बहु-आयामी परीक्षण (Multi-Faceted BRT Generation)

केवल एक टेस्ट लिखने के बजाय, SWE-Doctor उपयोगकर्ता की शिकायत को विभिन्न "आयामी" या कोणों में तोड़ देता है।

  • उपमा: यदि कोई मरीज कहता है, "मेरे पेट में दर्द है," तो एक बुरा डॉक्टर केवल यह जाँच सकता है कि क्या वह सेब खा सकता है। एक अच्छा डॉक्टर यह जाँचता है कि क्या वह सेब खा सकता है, क्या वह पानी पी सकता है, और क्या वह चल सकता है।
  • SWE-Doctor शिकायत के हर हिस्से की जाँच करने के लिए कई अलग-अलग टेस्ट बनाता है। यह सुनिश्चित करता है कि रोबोट समस्या के केवल एक छोटे हिस्से को ठीक करने के बाद न रुक जाए।

चरण 2: पोस्टमार्टम रिपोर्ट (Runtime Diagnosis)

यह सबसे महत्वपूर्ण हिस्सा है। जब टेस्ट चलते हैं और फेल होते हैं, तो SWE-Doctor केवल "FAIL" के निशान को नहीं देखता है। यह मशीन के अंदर वास्तव में क्या हुआ, यह देखने के लिए कोड को सूक्ष्मदर्शी (debugger) के नीचे रखता है।

  • उपमा: कल्पना करें कि एक कार खराब हो जाती है। एक साधारण मैकेनिक डैशबोर्ड की लाइट को देखकर अनुमान लगाता है। SWE-Doctor बोनट खोलता है, इंजन के चलते समय उसकी स्थिति देखता है, तेल का दबाव (oil pressure) जाँचता है, और रगड़ते हुए गियर की विशिष्ट आवाज़ सुनता है।
  • यह एक "डायग्नोसिस रिपोर्ट" लिखता है जो कहती है: "त्रुटि इस विशिष्ट फ़ाइल में, इस सटीक क्षण में हुई, क्योंकि यह मान (value) गलत था।" यह भ्रमित करने वाले "FAIL" को समस्या के स्थान का एक स्पष्ट मानचित्र में बदल देता है।

चरण 3: निर्देशित सर्जरी (Guided Surgery)

अंत में, SWE-Doctor रोबोट को "बहु-आयामी परीक्षण" के परिणाम और "पोस्टमार्टम रिपोर्ट" देता है।

  • उपमा: रोबोट को "कार ठीक करो" कहने के बजाय, डॉक्टर कहता है, "यहाँ उन सभी चीजों की सूची है जिन्हें काम करना चाहिए (परीक्षण), और यहाँ एक मानचित्र है जो दिखाता है कि कौन सा गियर रगड़ रहा है (डायग्नोसिस)। कृपया गियर को ठीक करें, लेकिन सुनिश्चित करें कि आप उन अन्य हिस्सों को न तोड़ें जिन्हें हमने चेक किया था।"
  • पैच सबमिट करने से पहले, SWE-Doctor एक अंतिम जाँच करता है: "क्या आपने सूची की सभी चीजों को ठीक किया, या केवल उस एक को जिसे ठीक करना सबसे आसान था?" यह "आंशिक सुधार" की समस्या को रोकता है।

परिणाम

शोधकर्ताओं ने हजारों वास्तविक दुनिया के सॉफ़्टवेयर बग्स (SWE-bench नामक बेंचमार्क का उपयोग करके) पर SWE-Doctor का परीक्षण किया।

  • यह बेहतर काम करता है: SWE-Doctor ने पिछले सर्वश्रेष्ठ रोबोटों की तुलना में काफी अधिक बग्स ठीक किए (सबसे कठिन समस्याओं पर लगभग 8% से 9% अधिक)।
  • यह अद्वितीय समाधान खोजता है: इसने कई ऐसी समस्याओं को हल किया जिन्हें अन्य रोबोट बिल्कुल भी हल नहीं कर सके।
  • यह केवल Python के लिए नहीं है: उन्होंने इसका परीक्षण Go (एक अन्य प्रोग्रामिंग भाषा) पर भी किया और यह वहां भी काम कर गया, जिससे साबित हुआ कि "डॉक्टर" पद्धति केवल एक प्रकार के कोड तक सीमित नहीं है।

संक्षेप में: SWE-Doctor AI को केवल एक टेस्ट पास करने के लिए अंधे होकर अनुमान लगाने से रोकता है। इसके बजाय, यह एक गहन डॉक्टर की तरह कार्य करता है जो कई परीक्षण करता है, विफलता के आंतरिक लक्षणों की जांच करता है, और पूर्ण और सटीक मरम्मत करने के लिए उस गहरी समझ का उपयोग करता है।

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

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

Digest आज़माएँ →