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

AgentSZZ: Teaching the LLM Agent to Play Detective with Bug-Inducing Commits

AgentSZZ एक LLM-संचालित एजेंट फ्रेमवर्क है जो एक ReAct-शैली के लूप, डोमेन-विशिष्ट टूल्स और एक संरचित संपीड़न मॉड्यूल का उपयोग करके मौजूदा SZZ एल्गोरिदम से बेहतर प्रदर्शन करता है ताकि बग-प्रेरित कमिट्स को प्रभावी ढंग से ट्रैक किया जा सके, विशेष रूप से क्रॉस-फाइल और घोस्ट मामलों जैसे चुनौतीपूर्ण परिदृश्यों में जहाँ पारंपरिक तरीके विफल हो जाते हैं।

मूल लेखक: Yunbo Lyu, Jieke Shi, Hong Jin Kang, Ratnadira Widyasari, Junda He, Yuqing Niu, Chengran Yang, Junkai Chen, Zhou Yang, Julia Lawall, David Lo

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

मूल लेखक: Yunbo Lyu, Jieke Shi, Hong Jin Kang, Ratnadira Widyasari, Junda He, Yuqing Niu, Chengran Yang, Junkai Chen, Zhou Yang, Julia Lawall, David Lo

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

कल्पना कीजिए कि आप एक जासूस हैं जो एक अपराध को सुलझाने की कोशिश कर रहे हैं। सॉफ्टवेयर की दुनिया में, "अपराध" एक बग (कोड में एक गलती) है जो किसी प्रोग्राम को क्रैश कर देता है या अजीब तरह से व्यवहार करने पर मजबूर कर देता है। "संदिग्ध" कोड का वह विशिष्ट हिस्सा है जिसे अतीत में किसी डेवलपर द्वारा लिखा गया था और जिसने इस बग को पेश किया।

वर्षों से, सॉफ्टवेयर जासूसों ने संदिग्धों को खोजने के लिए SZZ (इसके रचनाकारों के नाम पर) नामक एक मानक उपकरण का उपयोग किया है। इसे एक आवर्धक लेंस (magnifying glass) के रूप में सोचें जो एक "फिक्स" (उस पैच को जिसने बग को सुधारा) को देखता है और पूछता है: "इस कोड की लाइन को टूटने से ठीक पहले आखिरी बार किसने छुआ था?"

समस्या: आवर्धक लेंस की कुछ कमियां (Blind Spots) हैं

पुराना तरीका सरल अपराधों के लिए अच्छा काम करता है, लेकिन यह दो पेचीदा स्थितियों में विफल हो जाता है:

  1. "घोस्ट" (भूतिया) अपराध: कभी-कभी, फिक्स वास्तव में कोड की किसी भी लाइन को नहीं बदलता है; यह केवल इस बात को बदल देता है कि कोड को कैसे व्यवस्थित किया गया है। आवर्धक लेंस कुछ भी नहीं देख पाता और हार मान लेता है।
  2. "क्रॉस-सिटी" (दूसरे शहर वाला) अपराध: कभी-कभी, बग पूरी तरह से एक अलग फ़ाइल में पेश किया गया था (जैसे घर के किसी दूसरे कमरे में), लेकिन फिक्स किचन में है। पुराना आवर्धक लेंस केवल किचन में ही देखता है और असली अपराधी को मिस कर देता है जो बेडरूम में है।

इन कमियों के कारण, पुराना तरीका वास्तविक अपराधियों में से लगभग आधे को मिस कर देता है। यह एक ऐसे जासूस की तरह है जो केवल सामने का दरवाजा चेक करता है और मान लेता है कि चोर पीछे की खिड़की से नहीं आया होगा।

समाधान: AgentSZZ (एक टूलकिट वाला जासूस)

लेखकों ने AgentSZZ बनाया है। केवल एक आवर्धक लेंस का उपयोग करने के बजाय, उन्होंने एक स्मार्ट, स्वायत्त डिटेक्टिव एजेंट बनाया है जो एक लार्ज लैंग्वेज मॉडल (LLM) द्वारा संचालित है।

यहाँ बताया गया है कि AgentSZZ कैसे काम करता है, एक रचनात्मक उपमा का उपयोग करते हुए:

1. जासूस बनाम रोबोट

  • पुरानी विधि (SZZ): एक सख्त, पूर्व-लिखित स्क्रिप्ट का पालन करने वाले रोबोट की तरह। यह फिक्स को देखता है, तुरंत इतिहास की जांच करता है, और रुक जाता है। यदि स्क्रिप्ट कहती है "रुको," तो यह रुक जाता है, भले ही इसने सच नहीं पाया हो।
  • AgentSZZ: एक मानव जासूस की तरह। यह केवल देखता नहीं है; यह जांच करता है। यह सवाल पूछता है, सुरागों का पीछा करता है, अपना विचार बदलता है, और गहराई से खोज करता है। यह एक "ReAct" लूप का उपयोग करता है: Observe (कोड को देखें), Reason (सोचें कि इसका क्या अर्थ है), और Act (एक नई खोज चलाएं)।

2. विशेष टूलकिट

केवल एक टूल के बजाय, AgentSZZ के पास पांच विशिष्ट उपकरणों वाला एक स्विस आर्मी नाइफ है जो विशेष रूप से बग खोजने के लिए डिज़ाइन किए गए हैं:

  • द टाइम मशीन (git blame): "इस लाइन को आखिरी बार किसने छुआ था?"
  • द डॉक्यूमेंट व्यूअर (git show): "इस व्यक्ति ने वास्तव में क्या बदला? क्या यह एक वास्तविक फिक्स था या केवल एक कॉस्मेटिक बदलाव (जैसे वेरिएबल का नाम बदलना) था?"
  • द सर्च इंजन (git grep): "पूरी इमारत में यह विशिष्ट कोड और कहाँ दिखाई देता है?"
  • द हिस्ट्री ट्रैकर (git log): "यह फंक्शन पहली बार कब प्रकट हुआ था?"
  • द फंक्शन ट्रैकर: "यह विशिष्ट फंक्शन समय के साथ कैसे विकसित हुआ है?"

3. "कंप्रेशन" (संक्षेपण) का तरीका

कल्पना कीजिए कि एक जासूस अपने द्वारा पाए गए प्रत्येक सुराग पर 50 पन्नों की रिपोर्ट लिख रहा है। इसे पढ़ने में बहुत समय लगेगा। AgentSZZ के पास एक स्मार्ट सेक्रेटरी (कंप्रेशन मॉड्यूल) है। यह सेक्रेटरी कच्चे डेटा को पढ़ता है, उबाऊ चीजों (जैसे "Signed-off-by" टैग या खाली लाइनें) को हटा देता है, और जासूस को एक संक्षिप्त 3-पेज का सारांश देता है। यह महत्वपूर्ण सुरागों को खोए बिना समय और पैसा (कंप्यूटिंग पावर) बचाता है।

परिणाम: एक बड़ी सफलता

शोधकर्ताओं ने इस नए जासूस का परीक्षण तीन विशाल डेटासेट्स (लिनक्स कर्नेल, गिटहब प्रोजेक्ट्स, और अपाचे प्रोजेक्ट्स) पर किया।

  • स्कोर: AgentSZZ ने पिछले सर्वोत्तम तरीके की तुलना में 27% अधिक बग खोजे।
  • "असंभव" मामले:
    • क्रॉस-फ़ाइल अपराधों के लिए (अलग फ़ाइल में बग), AgentSZZ अपराधी को खोजने में 300% बेहतर था। इसने सफलतापूर्वक पूरी इमारत में सुराग का पीछा किया।
    • घोस्ट अपराधों के लिए (जहाँ कोई लाइन नहीं बदली गई थी), इसमें 60% का सुधार हुआ।
  • दक्षता: भले ही यह स्मार्ट है, फिर भी यह धीमा नहीं है। अपने टूल का कुशलतापूर्वक उपयोग करके और डेटा को कंप्रेस करके, यह वास्तव में पुराने, कम समझदार तरीकों की तुलना में कम "स्टेप्स" (टर्न) का उपयोग करता है।

यह क्यों मायने रखता है

सोचिए कि सॉफ्टवेयर विकास एक विशाल, लगातार बढ़ते शहर की तरह है। बग्स गड्ढों की तरह हैं।

  • पुराना SZZ एक सड़क स्वीपर की तरह था जो केवल मुख्य सड़क की सफाई करता था। यदि गड्ढा किसी गली या साइड स्ट्रीट में था, तो वह उसे मिस कर देता था।
  • AgentSZZ एक जासूस है जो किसी भी गली में जा सकता है, पड़ोसियों से पूछ सकता है (कोड की खोज), पुराने ब्लूप्रिंट देख सकता है (इतिहास), और ठीक से पता लगा सकता है कि किसने गड्ढा खोदा, भले ही उन्होंने यह वर्षों पहले किसी दूसरे मोहल्ले में किया हो।

AI को "स्क्रिप्ट का पालन करने" के बजाय "जासूस खेलने" के लिए सिखाकर, लेखकों ने सॉफ्टवेयर डिबगिंग को काफी सटीक बना दिया है, जिससे डेवलपर्स को समस्याओं को तेज़ी से ठीक करने और अधिक सुरक्षित सॉफ्टवेयर बनाने में मदद मिलती है।

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

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

Digest आज़माएँ →