लोकल कोडिंग एजेंट्स एक एनवायरनमेंट की समस्या हैं
प्रॉम्प्ट अब कोडिंग एजेंट सेटअप का केंद्र नहीं रह गया है।
अधिकांश डेमो में प्रॉम्प्ट ही पूरा प्रोडक्ट लगता है। आप किसी फीचर के लिए पूछते हैं। एजेंट फाइलों को पढ़ता है। वह कोड एडिट करता है। वह टेस्ट रन करता है। वीडियो में यह सब बहुत व्यवस्थित दिखता है।
असली लोकल एजेंट्स अधिक जटिल होते हैं। जब कोई एजेंट आपके रेपो (repo) के पास बैठता है, कमांड चलाता है और टूल्स का उपयोग करता है, तो मुख्य सवाल बदल जाता है।
सवाल यह नहीं है कि "क्या मैंने एक परफेक्ट प्रॉम्प्ट लिखा?" सवाल यह है कि "मैंने इस चीज़ को कैसा एनवायरनमेंट दिया है?"
एक चैट असिस्टेंट की सीमाएं स्पष्ट होती हैं। आप कॉन्टेक्स्ट पेस्ट करते हैं। आपको टेक्स्ट वापस मिलता है। एक लोकल कोडिंग एजेंट अलग होता है। यह आपके शेल (shell), लोकल टूल्स, पैकेज मैनेजर्स और क्रेडेंशियल्स को छूता है। एनवायरनमेंट ही असली प्रोडक्ट बन जाता है।
लोकल एजेंट सेटअप करना डेवलपर इंफ्रास्ट्रक्चर है। यह केवल एक AI टूल इंस्टॉल करना नहीं है।
आपको निर्णय लेना होगा:
- एजेंट क्या पढ़ सकता है?
- वह क्या एडिट कर सकता है?
- वह कौन से कमांड चला सकता है?
- डिफ़ॉल्ट रूप से कौन से टूल्स उपलब्ध हैं?
- स्टेट (state) कहाँ रहता है?
- क्या कोई अन्य डेवलपर इस सेटअप को दोबारा बना (reproduce) सकता है?
- एजेंट अपने पीछे क्या सबूत छोड़ता है?
यदि ये उत्तर अस्पष्ट हैं, तो आपका प्रॉम्प्ट आपको नहीं बचा पाएगा।
एक बेहतर प्रॉम्प्ट एक उत्तर में सुधार करता है। एक बेहतर एनवायरनमेंट पूरे लूप (loop) में सुधार करता है।
एजेंट सेटअप के साथ वैसा ही व्यवहार करें जैसा आप CI/CD या डिप्लॉयमेंट गेट्स (deployment gates) के साथ करते हैं। इसे व्यक्तिगत पसंद न समझें। इसे एक सिस्टम की तरह मानें।
यदि कोई एजेंट फाइलों को एडिट करता है लेकिन चेक नहीं चला सकता, तो वह आँखों पर पट्टी बांधे हुए एक कोड जनरेटर है। यदि वह हर टूल से जुड़ सकता है क्योंकि अधिक इंटीग्रेशन अच्छा लगता है, तो आपने अनजाने में एक परमिशन मॉडल (permission model) बना लिया है।
लक्ष्य छोटी और जांचने योग्य (inspectable) क्षमताओं की ओर बढ़ना है।
"यह टेस्ट चलाएं और विफलताओं का सारांश दें" जैसी विशिष्ट स्किल, "सुनिश्चित करें कि सब कुछ काम कर रहा है" जैसे खुले निर्देश से बेहतर है। पहली चीज़ एक निशान (trail) छोड़ती है। दूसरी केवल दिखावा (theater) आमंत्रित करती है।
अच्छे सॉफ्टवेयर की सीमाएं होती हैं।
इस बात पर ध्यान न दें कि एक एजेंट कितने टूल्स से जुड़ सकता है। इस बात पर ध्यान दें कि प्रत्येक टूल एजेंट को क्या करने की अनुमति देता है। क्या वह स्टेट को म्यूटेट (mutate) कर सकता है? क्या वह प्रोडक्शन (production) तक पहुँच सकता है? क्या वह सीक्रेट्स (secrets) को उजागर करता है?
आउटपुट का मतलब लीवरेज (leverage) नहीं है। एजेंट अधिक कोड और अधिक ब्रांच बना सकते हैं। यदि काम को पढ़ना आसान नहीं है, तो इससे रिव्यू डेट (review debt) बढ़ सकती है।
लोकल सेटअप को इंसान के काम को आसान बनाना चाहिए। यदि यह केवल एजेंट को तेज़ बनाता है, तो आपकी टीम शायद बिल्कुल भी तेज़ नहीं होगी।
आउटपुट पर भरोसा करने से पहले एनवायरनमेंट पर भरोसा करें।
Source: https://dev.to/hefty_69a4c2d631c9dd70724/local-coding-agents-are-an-environment-problem-1o4p
Optional learning community: https://t.me/GyaanSetuAi