कोडिंग एजेंट्स Swift अच्छी तरह से लिखते हैं, लेकिन वे इसे पूरा नहीं कर पाते
मैंने वास्तविक Swift और Xcode कार्यों पर AI कोडिंग एजेंट्स का परीक्षण करने में महीनों बिताए। मैंने केवल साधारण डेमो का उपयोग नहीं किया। मैंने उन्हें बिल्ड टारगेट (build targets) और टेस्ट के साथ वास्तविक कार्य दिए।
पहला ड्राफ्ट आमतौर पर ठीक होता है। एक सक्षम मॉडल ऐसा कोड लिखता है जो सही दिखता है। टाइप्स (types) सही बैठते हैं। व्यूज़ (views) तर्कसंगत लगते हैं। यदि Swift लिखना ही एकमात्र समस्या होती, तो ये टूल्स पूरी तरह तैयार होते।
असली समस्या पहले ड्राफ्ट के बाद आती है। यह उस कोड के बीच का अंतर है जो पूरा दिखता है और वह कोड जो वास्तव में सही है।
Claude Code या Codex जैसे आधुनिक टूल्स कंपाइल एरर्स (compile errors) को अच्छी तरह से संभालते हैं। वे आपको ऐसा कोड नहीं देते जो बिल्ड होने में विफल हो जाए। असली विफलताएं वे होती हैं जिन्हें कंपाइलर नहीं देख पाता।
ये विफलताएं मेरा समय बर्बाद करती हैं:
• Intent mismatch: कोड कंपाइल होता है और टेस्ट पास हो जाते हैं। हालाँकि, व्यवहार गलत होता है। एजेंट आपके वास्तविक लक्ष्य के बजाय पास होने वाले टेस्ट की 'ग्रीन लाइट' का अनुसरण करता है। उसके पास इरादे (intent) की जाँच करने का कोई तरीका नहीं है।
• Concurrency races: कोड बिना किसी एरर के बिल्ड हो जाता है लेकिन उसमें डेटा रेस (data races) होती हैं। ये केवल रनटाइम (runtime) के दौरान ही दिखाई देती हैं। एजेंट एक सफल बिल्ड देखता है और आगे बढ़ जाता है। इन्हें ठीक करने के लिए आमतौर पर रीडिज़ाइन की आवश्यकता होती है, जिसे करने में एजेंट विफल रहता है।
• Regression loops: एजेंट एक बग को ठीक करता है लेकिन दूसरा तोड़ देता है। दूसरे बग को ठीक करते समय, वह पहले वाले सुधार को उलट देता है। यह एक ऐसे लूप में फंस जाता है जहाँ वह दो खराब स्थितियों के बीच झूलता रहता है। इसमें इस बात की याददाश्त नहीं होती कि पहले क्या विफल हुआ था।
• Poor architecture: एजेंट ऐसा कोड लिखता है जो फ्रेमवर्क के विरुद्ध काम करता है। यह आपके ऐप के स्ट्रक्चर को नज़रअंदाज़ कर देता है। यह एक अस्थायी स्क्रिप्ट के लिए तो काम कर सकता है, लेकिन एक वास्तविक कोडबेस में विफल हो जाता है।
ये भाषा की समस्याएँ नहीं हैं। मॉडल Swift जानता है। यह उस चीज़ को मिस कर देता है जिसे कंपाइलर नहीं देख सकता। इसे यह नहीं पता होता कि परिणाम आपके इरादे से मेल खाता है या नहीं, या स्ट्रक्चर प्रोफेशनल है या नहीं।
यह लागत को टोकन (tokens) से हटाकर ध्यान (attention) पर ले आता है। एक ऐसा एजेंट जिसे आपको हर कुछ चरणों के बाद देखना पड़े, उसने आपका काम कम नहीं किया है। उसने लिखने के काम को सुपरवाइजिंग (supervising) में बदल दिया है।
मैं मॉडल के आसपास के लूप को बदलकर अपने परिणामों में सुधार कर रहा हूँ। मैं इस बात पर ध्यान केंद्रित करता हूँ कि एजेंट क्या जाँचता है और क्या याद रखता है।
क्या यह आपके अनुभव से मेल खाता है? जब आप Apple प्लेटफॉर्म पर एजेंट्स चलाते हैं, तो वे कहाँ विफल होते हैं? क्या यह intent mismatches हैं, runtime races हैं, या कुछ और?
Source: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi
