कोडिंग एजेंट कार्य पूरा कर सकते हैं, लेकिन उन्होंने कितना काम बर्बाद किया?
एक 50,000-रन अध्ययन से पता चलता है कि पास दरें व्यर्थ किए गए संपादन, पुनरावृत्तियों और असंबंधित परिवर्तनों को छिपाती हैं; हार्नेस प्रक्रिया-लागत मैट्रिक्स की आवश्यकता होती है।
मुख्य बिंदुओं का सारांश
- पास/फेल बेंचमार्क स्कोर अकेले भ्रामक हो सकते हैं क्योंकि दो कोडिंग-एजेंट रन दोनों एक कार्यशील पैच का उत्पादन कर सकते हैं, फिर भी व्यर्थ चरणों, दोहराए गए कमांड्स, रिवर्स किए गए संपादन और असंबंधित परिवर्तन में बहुत भिन्न होते हैं।
- अध्ययन में real Python रिपॉजिटरी और यूनिट टेस्ट सुइट्स पर लगभग 50,000 सिमुलेटेड रन का उपयोग किया गया, केवल एजेंट के निर्णय लेने का अनुकरण करते हुए ताकि लाइव-मॉडल मतभेदों, API लागत या टूल-यूज़ भिन्नता के बिना हार्नेस नियमों की तुलना की जा सके।
- यह 'अंतिम पैच आकार' को "कुल कार्य" से अलग करता है, और व्यर्थ किए गए काम को ऐसे कार्यों के रूप में परिभाषित करता है जो आवश्यक रिवर्ट्स की गणना करते हुए अंतिम पासिंग स्थिति के करीब नहीं जाते हैं।
- तीन हार्नेस की तुलना की गई थी: मूलभूत, संरचित और अनुकूली; अनुकूलनशील हार्नेस एजेंट के प्रक्षेपवक्र पर नज़र रखता है और नियमों को लागू करता है जैसे कि बार-बार विफलताओं का निदान करना, संचयी मतभेदों का निरीक्षण करना, कोई प्रगति नहीं होने पर रणनीति बदलना, गन्दा पास सत्यापित करना और असंबद्ध संपादन को चिह्नित करना।
- निष्कर्ष सिमुलेशन द्वारा दिखाए जा सकने तक सीमित हैंः वे प्रकट करते हैं कि कैसे मॉडल किए गए एजेंट प्रोफाइल के तहत हार्नेस नियम व्यवहार करते हैं, न कि Claude Code या कोडेक्स जैसे वास्तविक एजेंट वास्तव में कैसा प्रदर्शन करेंगे।
यदि आप केवल AI कोडिंग एजेंट का न्याय करते हैं कि क्या इसका अंतिम पैच परीक्षणों से गुजरता है, तो आप कहानी के अधिकांश भाग को याद कर रहे हैं। यह एक नए सिमुलेशन अध्ययन से लगभग 50,000 रन की खोज है, जो real Python रिपॉजिटरी और वास्तविक यूनिट-टेस्ट सुइट्स पर बनाया गया था, जिसमें एजेंट के निर्णय लेने को लाइव मॉडल द्वारा संचालित करने के बजाय अनुकरण किया गया था। प्रयोग ने तीन हार्नेस बुनियादी, संरचित और अनुकूली की तुलना की और पाया कि सबसे सस्ता दिखने वाला विकल्प भी सबसे भ्रामक था।
प्रयोग वास्तव में क्या मापा
अध्ययन एक परिचित बेंचमार्क आकार से शुरू होता हैः एक वास्तविक गिटहब मुद्दा, एक वास्तविक कोडबेस और एक पैच जो या तो समस्या को ठीक करता है या नहीं। संदर्भित बेन्चमार्क में 12 पायथन रिपॉजिटरी से खींची गई 2,294 समस्याएं हैं। इसका हेडलाइन स्कोर सरल हैः क्या पैच ने समस्या का समाधान किया?
उस स्कोर में एक अंधा स्थान है. यह केवल अंतिम परिणाम को देखता है. इससे कोई फर्क नहीं पड़ता कि मॉडल ने वहां पहुंचने के लिए कितने कदम उठाए, उसने कितनी कमांड दोहराई, या रास्ते में कितना असंबंधित कोड छुआ।
लेखक ने दो चीजों को अलग किया है जो एक पास दर के साथ मिश्रण करते हैं. अंतिम पैच का आकार वह है जो शुरुआती रिपॉजिटरी और प्रस्तुत किए गए पैच के बीच भिन्न होता है। कुल काम वह सब कुछ है जो एजेंट वहां पहुंचने से पहले करता था, जिसमें बाद में इसे वापस कर दिया गया संपादन भी शामिल है। एक पास रेट केवल पहला स्कोर करता है।
दिया गया उदाहरण स्पष्ट हैः एक रन असफल परीक्षण पाता है, बग को ट्रैक करता है, परिवर्तन करता है और ग्रीन रन प्राप्त करता है। दूसरा भी वहां पहुंच जाता है, लेकिन पहले गलत फ़ाइल को संपादित कर देता है, बदलाव का बैकअप लेता है, उसी कमांड को कई बार फिर से चलाता है , असंबंधित कोड संशोधित करता है , और फिर उन परीक्षणों को चलता है जो पहले ही पास हो चुके थे। दोनों सफलताओं के रूप में गिने जाते हैं। वे समान नहीं दिखते हैं।
एजेंट का अनुकरण क्यों किया गया था
लेखक के पास दो कठिन बाधाएं थीं: कोई API कुंजी और कोई डाउनलोड किए गए मॉडल नहीं, साथ ही पुनरुत्पादकता की इच्छा थी। एक पद्धतिगत कारण भी था। एक वास्तविक एजेंट चलाने से मॉडल में अंतर, इसके उपकरण का उपयोग और उसके आसपास के वातावरण को मापना होगा, प्लस API लागत यह बताना मुश्किल है कि क्या परिणाम परीक्षण के तहत वर्कफ़्लो या चुने हुए विशेष एजेंट से आया है।
तो केवल एजेंट के फैसले सिमुलेटेड थे, एक सीड पायथन नीति का उपयोग कर. रिपॉजिटरीज, संपादन, diffs, परीक्षण चलाता है और विफलताओं असली हैं. कोड वास्तव में चलता है. क्या अनुकरण किया गया था कि अगले करने के लिए तय करता है हिस्सा है.
यह दावों को सीमित करता है। अध्ययन परीक्षण कर सकता है कि जब एजेंट किसी विशेष तरीके से व्यवहार करता है तो एक हार्नेस नियम कैसे काम करता है. यह नहीं कह सकता कि Claude Code या कोडेक्स कैसा व्यवहार करते हैं, क्योंकि न ही चलाया गया था।
कार्य और व्यवहार प्रोफाइल
दस छोटे बग बनाए गए थे, प्रत्येक अपने स्वयं के अस्थायी रिपॉजिटरी में। वे एक ऑफ-बाय-वन रेंज को कवर करते हैं, सीमा तुलना, खाली सूची दुर्घटना, गलत सूत्र, लापता ∀स्ट्रिप`, खोई हुई ऑर्डरिंग, स्लाइस त्रुटि, गलत चर, स्वैप्ड शाखा आदेश और व्हाइटस्पेस विभाजन.
प्रत्येक रिपॉजिटरी में एक unittest सुइट और एक ज्ञात संदर्भ फिक्स होता है, साथ ही सही फ़ाइल में एक प्रशंसनीय गलत फिक्स और डेको के रूप में असंबंधित फाइलों में हानिरहित परिवर्तन होते हैं। परीक्षण उप-प्रक्रिया में चलाए जाते हैं, इसलिए एजेंट को पूर्वनिर्धारित उत्तरों की सूची के बजाय वास्तविक भंडार का सामना करना पड़ता है।
मूल नीति सामान्य है: परीक्षण चलाएं, विफलता को देखें, परिवर्तन करें, फिर से परीक्षण चलाएँ, जब चीजें गुजरती हैं तो रुकें। चार प्रोफाइल विचलन की निश्चित संभावनाओं को जोड़ते हैंः
| प्रोफ़ाइल | गलत संपादन | असफल कमांड को दोहराता है | रिवर्स | जल्दी छोड़ देता है | पास के बाद अनावश्यक संपादित करें |
|---|---|---|---|---|---|
| सावधान | 0.05 | 0.05 | 0.02 | 0.03 | 0.05 |
| सामान्य | 0.15 | 0.15 | 0.08 | 0.08 | 0.15 |
| लापरवाह | 0.30 | 0.30 | 0.20 | 0.18 | 0.30 |
| लूप_प्रवण | 0.10 | 0.55 | 0.15 | 0.05 | 0.40 |
ये संख्याएँ काल्पनिक हैं. वे वास्तविक एजेंटों को मापने से प्राप्त नहीं हुए थे, इसलिए निरपेक्ष मूल्य भविष्यवाणियां नहीं हैं कि कोई भी लाइव कोडिंग एजेंट क्या करेगा। दो और नियंत्रण मायने रखते हैंः अनुपालन यह निर्धारित करता है कि एजेंट इसे अनदेखा करने के बजाय एक हार्नेस निर्देश का कितनी बार पालन करता है, और plan_benefit यह निर्धारित करती है कि जबरन योजना चरण में गलत संपादन की संभावना कम हो जाती है।
रन जोड़े जाते हैं एजेंट की यादृच्छिक धारा प्रोफ़ाइल, कार्य और बीज से जुड़ी होती है इसलिए तुलनाएं एक ही एजेंट व्यवहार से शुरू होती हैं। अंतिम रिपॉजिटरी स्थिति के खिलाफ चलाने के बाद सफलता की जांच की जाती है, एक चेक का उपयोग करके जिसे एजेंट कभी नहीं देखता है।
व्यर्थ काम के रूप में क्या गिना जाता है
हर असफल परीक्षण अपव्यय नहीं है। एक विफल परीक्षण डिबगिंग का हिस्सा हो सकता है। जब यह रन को अंतिम स्थिति के करीब नहीं ले जाता है तो कोई कार्रवाई व्यर्थ की जाती है। इसमें किसी भी रिपॉजिटरी परिवर्तन के बिना कमांड को दोहराना, प्रासंगिक फ़ाइल में बदलाव न होने पर टेस्ट फिर से चलाना, उसी सामग्री को फिर से पढ़ना, परीक्षणों से संबंधित रिपोजिटरी के हिस्से को संपादित करना, ऐसा संपादन करना जो कुछ भी नहीं बदलता है या बाद में रद्द किया गया परिवर्तन करना शामिल है।
एक रिवर्ट को सावधानीपूर्वक संसाधित किया जाता है। यदि इसे पुनर्प्राप्त करने की आवश्यकता थी तो खुद को अपशिष्ट के रूप में नहीं गिना जाता है; खराब परिवर्तन वह होता है जो मायने रखता है। हार्नेस वर्क योजना, समीक्षा, गेट, सफाई को अलग-अलग माना जाता है क्योंकि हार्नेस बदलता है, इसलिए अतिरिक्त संरचना की लागत दिखाई देती है।
रिकॉर्डर केवल वही संग्रहीत करता है जो हुआ। एक विश्लेषक बाद में अपशिष्ट का काम करता है, इसलिए प्रत्येक प्रयोग को फिर से चलाए बिना परिभाषा बदल सकती है। "प्रासंगिक" का अर्थ है कि परीक्षण सूट वास्तव में आयात की गई फ़ाइल, जिसे सही फिक्स जानने के बिना परीक्षणों से अनुमान लगाया जा सकता है।
तीन रस्सी और पांच नियम
मूल दोहन एजेंट को तब तक काम करने देता है जब तक वह यह नहीं कहता कि यह किया गया है। संरचित दोहन बलों की योजना, कार्यान्वयन, परीक्षण और समीक्षा करता है। अनुकूली दोहन प्रक्षेपवक्र देखता है, पांच नियमों के साथ कदम रखता है, और जांच विफल होने पर एजेंट समाप्त करने से इंकार कर देता है।
रन से पहले पांच अनुकूली नियमों को बंद कर दिया गया था: आर 1, यदि एक ही कमांड दो बार विफल रहा है और कोई राज्य परिवर्तन नहीं हुआ, तो फिर से संपादन करने से पहले निदान करें। आर 2, अगर एक ही फ़ाइल में दो बार संशोधन किया गया या दो रिवर्स हुए, संचित अंतर का निरीक्षण करें. आर 3, बिना किसी राज्य परिवर्तन के तीन मोड़ों के बाद, रणनीति बदलें। आर 4, यदि परीक्षण गड़बड़ चलाने के बाद पास हो जाते हैं, तो डिफ की समीक्षा करके सत्यापित करें। R 5, यदि कोई संपादित फाइल को छूता है तो परीक्षण आयात नहीं करते हैं, इसे उचित ठहराते हैं या इसे पूर्ववत करते हैं। एक गेट एजेंट को समाप्त होने देने से इनकार करता है जबकि परीक्षण असफल होते हैं। तीन हार्नेस में से दो उस गेट का उपयोग करते हैं
परिणाम 1: सबसे सस्ता दोहन भ्रामक था
मुख्य तुलना में अनुपालन 0.5 पर 20 बीज, 10 कार्य और 200 रन प्रति सेल का उपयोग किया गया।
| प्रोफ़ाइल | जुर्राब | सफलता | मोड़ | व्यर्थ किए गए मोड़ | जुताई घूमता है |
|---|---|---|---|---|---|
| सावधान | मूलभूत | 92.5% | 5.20 ± 0.19 | 0.29 ± 0.11 | 0.00 |
| सावधान | संरचित | 100.0% | 7.66 ± 0.20 | 0.44 ± 0.14 | 2.12 |
| सावधान | अनुकूली | 100.0% | 5.76 ± 0.26 | 0.28 ± 0.10 | 0.42 |
| सामान्य | मूलभूत | 77.5% | 5.25 ± 0.27 | 0.63 ± 0.16 | 0.00 |
| सामान्य | संरचित | 100.0% | 8.82 ± 0.33 | 1.31 ± 0.25 | 2.35 |
| सामान्य | अनुकूली | 100.0% | 6.62 ± 0.34 | 0.74 ± 0.17 | 0.86 |
| लापरवाह | मूलभूत | 51.5% | 5.62 ± 0.41 | 1.44 ± 0.27 | 0.00 |
| लापरवाह | संरचित | 100.0% | 11.91 ± 0.62 | 3.15 ± 0.37 | 3.10 |
| लापरवाह | अनुकूली | 100.0% | 9.95 ± 0.68 | 1.97 ± 0.29 | 2.83 |
| लूप_प्रवण | मूलभूत | 89.0% | 7.45 ± 0.46 | 2.46 ± 0.37 | 0.00 |
| लूप_प्रवण | संरचित | 100.0% | 11.59 ± 0.56 | 3.85 ± 0.43 | 2.48 |
| लूप_प्रवण | अनुकूली | 100.0% | 9.04 ± 0.56 | 2.29 ± 0.31 | 1.97 |
पहली नज़र में मूल हार्नेस विजेता की तरह दिखता है। इसमें प्रत्येक प्रोफ़ाइल में सबसे कम मोड़ होते हैं, क्योंकि यह कभी भी योजना बनाने, समीक्षा करने या गेट्स पर नहीं खर्च करता है। लेकिन इसकी सफलता दर गिर जाती है क्योंकि एजेंट ढीला हो जाता हैः सावधान के लिए 92.5%, सामान्य के लिए 77.5%, लापरवाह के लिए 88 0048 और लूप_प्रोन के लिए 86 061। संरचित और अनुकूली हार्नेस हर सेल में 100.0% तक पहुंचते हैं।
यह पहला परिणाम है: एक हार्नेस मोड़ पर सबसे सस्ता लग सकता है जबकि चुपचाप रन के बड़े हिस्से में विफल हो जाता है। यदि आप केवल मोड़ की गिनती पढ़ते हैं, तो आप गलत चुनेंगे।
संरचित दोहन लागत क्या है
संरचित दोहन अपनी 100.0% सफलता दर को दोहन मोड़ के साथ खरीदता हैः सावधान करने के लिए 2.12, सामान्य के लिए 2.35, लापरवाह के लिए 3.10, लूप_प्रोन के लिए ९९००६। वे ऐसे मोड़ हैं जिन्हें एजेंट ने नहीं चुना है, जो वर्कफ़्लो द्वारा जोड़ा गया है। इसकी कुल बारी हर पंक्ति में सबसे अधिक है, और इसके बर्बाद किए गए मोड़ भी अनुकूली के लिए 89 3.85 की तुलना में लूप-प्रेन के लिए उच्चतम हैं।
अनुकूली हार्नेस दोनों के बीच बैठता है। यह संरचित रूप से समान 100.0% सफलता दर तक पहुंचता है, लेकिन प्रत्येक प्रोफ़ाइल में कम हार्नेस मोड़ के साथः 0.42, 0.86, 2.83 और 1.97. इसके बर्बाद किए गए मोड़ भी हर प्रोफाइल में संरचित से नीचे रहते हैं। मूल की तुलना में, यह सफलता अंतराल को बंद करने के लिए मामूली संख्या में अतिरिक्त मोड़ खर्च करता है।
डिजाइन अंतर एंथ्रोपिक के फ्रेमिंग से आता हैः एक वर्कफ़्लो में चरणों को पहले से तैयार किया जाता है, जबकि एक एजेंट यह तय करता है कि आगे क्या करना है, और आमतौर पर मशीनरी को जोड़ने की बजाय सरल शुरू करना बेहतर होता है। संरचित हार्नेस एजेंट को बताता है कि क्या करना चाहिए। अनुकूली हार्नेस कुछ चीजों के होने का इंतजार करता है और फिर प्रतिक्रिया देता है।
Claude Code में हुक हैं जो सत्र के एक विशेष बिंदु पर कमांड चलाते हैं, जिसमें संपादन के बाद फ़ाइल को प्रारूपित करना या इसे चलाने से पहले किसी आदेश को रोकना शामिल है। एसडब्ल्यूई-एजेंट ने पाया कि मॉडल के आसपास का सेटअप मायने रखता हैः यह कैसे फाइलों को संपादित करता है, रिपॉजिटरी के चारों ओर चलता है और परीक्षण चलाता है परिणाम को प्रभावित कर सकता है। यहां अनुकूली हार्नेस दोनों प्रणालियों की तुलना में बहुत छोटा है केवल कुछ निश्चित नियम सिमुलेटेड एजेंट पर प्रतिक्रिया करते हैं।
भविष्यवाणी जो गलत थी
लेखक ने प्रयोग चलाने से पहले एक भविष्यवाणी की, और यह गलत निकला। यह स्वीकार करना ध्यान देने योग्य है क्योंकि यह उस तरह का विवरण है जिसे आमतौर पर बेंचमार्क लेखन-अप में संपादित किया जाता है। लेख प्रदान किए गए अंश में पूर्वानुमान को दोहराता नहीं है, लेकिन यह तीन मुख्य परिणामों के साथ स्टैंडआउट परिणामों में से एक के रूप में मिस को चिह्नित करता है।
क्यों यह मायने रखता है यदि आप कोडिंग एजेंट चलाने
डेटा से दो व्यावहारिक बिंदु बाहर हो जाते हैं।
पहला, पास/फेल पर्याप्त नहीं है। एक रन जो 4 वक्र पर गुजरता है और फिर 5 से 10 तक किसी को भी काम करने के लिए कोई पूछताछ नहीं करता है, उसे साफ पांच-टर्न चलाने के समान ही स्कोर किया जाता है। शुरुआती उदाहरण में, एजेंट ने तीन फाइलों में आठ लाइनें बदलीं जबकि संदर्भ फिक्स एक फ़ाइल में दो पंक्तियां थीं eight आठ परिवर्तित लाइनों में से छह अनावश्यक थे। अतिरिक्त कार्य अंतिम पैच में जीवित रह सकता है, जहां यह किसी की समीक्षा बोझ और भविष्य की रखरखाव लागत बन जाती है।
दूसरा, हार्नेस परिणाम को बदलता है। एक ही अनुकरण एजेंट व्यवहार के तहत 51.5% सफलता का उत्पादन किया मूल दोहन और 100.0% में संरचित और अनुकूली sloppy प्रोफ़ाइल. क्या एजेंट जीत की घोषणा करने के लिए अनुमति दी जाती है जबकि परीक्षण विफल हो जाता है एक विस्तार नहीं है; यह आधा रन असफल होने और उनमें से कोई भी असफल होने के बीच अंतर है।
चेतावनी वह है जो लेखक दोहराता हैः एजेंट का अनुकरण किया जाता है। संख्याएं बताती हैं कि कैसे हार्नेस नियम एक सीड पॉलिसी के साथ बातचीत करते हैं, न कि Claude Code या कोडेक्स कैसा प्रदर्शन करता है। प्रोफाइल में स्वीप आंशिक रूप से यह दिखाने के लिए मौजूद हैं कि जब धारणाएँ स्थानांतरित होती हैं तो परिणाम कितना बदलते हैं।
अगला प्रश्न स्पष्ट है. यदि कुछ निश्चित नियम सिमुलेशन में इतनी बड़ी सफलता की खाई को बंद कर सकते हैं, तो वास्तविक भंडार पर एक असली एजेंट के खिलाफ प्रयास करने के लिए वही नियम सस्ते हैं और रिकॉर्डर-प्लस-विश्लेषक डिजाइन का मतलब है कि पूरे प्रयोग के पुनर्निर्माण के बिना अपशिष्ट परिभाषा को समायोजित किया जा सकता है।

Comments (0)