एजेंट के साथ गतिशील योजना
सॉफ़्टवेयर विकास में हर बड़ी प्रगति ने यह बदल दिया है कि टीमें अपना आशय कैसे व्यक्त करती हैं। वॉटरफॉल भारी-भरकम दस्तावेज़ों पर निर्भर था, क्योंकि दिशा बदलना धीमा था। एजाइल ने कागज़ी काम घटा दिया, क्योंकि इटरेशन सस्ते थे और टीमें काम करते-करते सीखती थीं।
एजेंट को अपनी योजना की एक अलग शैली चाहिए। ऐसी नियंत्रित प्रक्रिया के बजाय, जो आशय को बहुत जल्दी स्थिर कर देती है, एजेंट योजना बनाने के ऐसे तरीके के साथ बेहतर काम करते हैं जो शुरुआत में दिशा देता है और साथ ही वास्तविक काम से जुड़ा और सक्रिय बना रहता है।
प्रभावी होने के लिए एजेंटों को क्या चाहिए
एजेंट तब ट्रैक पर बने रहते हैं, जब वे समस्या को स्पष्ट भाषा में खोलकर समझा सकते हैं। वे प्रश्न पूछते हैं, अनुमानों को हटाते हैं, और कोड पर काम शुरू करने से पहले पाथ की रूपरेखा बनाते हैं। उनका प्रशिक्षण इसी व्यवहार को मज़बूत करता है।
जब योजना स्पष्ट और अनुकूलनीय होती है, तो वे भटके बिना लंबे समय तक काम संभाल सकते हैं। यही वजह है कि एजेंटों के लिए योजना बनाना किसी स्थिर स्पेक के बजाय एक पुनरावृत्त प्लैटफ़ॉर्म पर अधिक प्रभावी होता है। योजना खुद लूप का हिस्सा बन जाती है।
जैसे-जैसे एजेंट बाधाओं को पहचानता है, वह योजना को अपडेट करता है। जैसे-जैसे उपयोगकर्ता अपने आशय को परिष्कृत करता है, योजना फिर बदल जाती है। यह लय एजेंटिक विकास की प्रकृति के साथ, पहले के दौर से विरासत में मिले अलग-अलग योजना चरणों की तुलना में, कहीं बेहतर मेल खाती है।
Cursor एजेंट इंटेलिजेंस के लिए योजना कैसे तैयार करता है
हमने योजना मोड को इस समझ के आधार पर बनाया कि सॉफ़्टवेयर विकास टीमें एजेंट के साथ सबसे ज़्यादा काम कैसे कर पाती हैं। यह योजना बनाने का एक शक्तिशाली, सामान्य-उद्देश्यीय तरीका है, जिसे खास तौर पर एजेंटिक विकास के लिए डिज़ाइन किया गया है।
योजना मोड एजेंट को प्रश्न पूछने, कोडबेस को स्कैन करने, आगे का रास्ता सुझाने, और उसे उपयोगकर्ता के साथ मिलकर परिष्कृत करने की जगह देता है। यह छोटे-फटाफट कार्यों के लिए हल्का रह सकता है, या लंबे समय तक उपयोग में रहने वाला एक मानक आर्टिफैक्ट बन सकता है। यह प्रक्रिया पाँच चरणों का पालन करती है:
-
स्पष्टीकरणात्मक प्रश्न. एजेंट ऐसे प्रश्न पूछता है जो अस्पष्टता दूर करते हैं। एजाइल टीमें इसे तेज़ आगे-पीछे की बातचीत से संभालती हैं। स्पेक-आधारित विकास (SDD) इसे आवश्यकताओं के एक औपचारिक चरण में ले जाता है। योजना मोड भी अस्पष्टता कम करने के इसी लक्ष्य को अपनाता है, लेकिन इसमें एजेंट सीधे सवाल-जवाब की प्रक्रिया चलाता है, जो एजेंटिक काम की गति के लिए अधिक उपयुक्त है।
-
अनुसंधान. एजेंट कोडबेस को स्कैन करके उन जगहों की पहचान करता है जिनसे उसे इंटरैक्ट करना होगा। पुराने वर्कफ़्लो में इसे एक अलग डिज़ाइन चरण माना जाता था। योजना मोड इसे सीधे एजेंट के तर्क का हिस्सा बना देता है।
-
योजना का मसौदा तैयार करना. एजेंट एक संपादन योग्य योजना फ़ाइल लिखता है, जो परिवर्तनों और उन्हें लागू करने के चरणों को समझाती है। SDD इसे एक तयशुदा स्पेक के रूप में स्थिर कर देता है। एजाइल में अक्सर दस्तावेज़ समय के साथ बदलते रहते हैं। योजना मोड योजना को जीवित रखता है, ताकि आप और एजेंट नई जानकारी मिलने पर उसे परिष्कृत कर सकें।
-
काम को क्रियान्वित करना. एजेंट चरण-दर-चरण काम करता है और आगे बढ़ते हुए कार्यों को पूरा होने पर चिह्नित करता जाता है। पारंपरिक मेथड्स योजना और कार्यान्वयन को अलग रखते हैं। योजना मोड इन्हें एक ही प्रक्रिया मानता है, ताकि योजना अनुकूलित हो सके।
-
योजना को संशोधित करना. जब चीज़ें पटरी से उतर जाती हैं, तो योजना ही रीसेट बिंदु भी बनती है। अनुवर्ती प्रॉम्प्ट्स के ज़रिए व्यवहार को पैच करने के बजाय, टीमें काम को वापस ला सकती हैं, योजना को परिष्कृत कर सकती हैं, और उसे फिर से चला सकती हैं। इससे आशय स्पष्ट बना रहता है और निष्पादन के बीच एजेंट को दिशा देने की तुलना में अधिक साफ़ नतीजे मिलते हैं।
योजनाएँ आपके कार्यस्थान में .cursor/plans/ के भीतर version-controlled फ़ाइलों के रूप में सहेजी जाती हैं। वे आपके कोड के साथ ही रहती हैं और git में किसी भी अन्य प्रोजेक्ट आर्टिफैक्ट की तरह ट्रैक की जाती हैं। आप देख सकते हैं कि क्या बदला, कब बदला, और ज़रूरत पड़ने पर उसे वापस ला सकते हैं।
लचीले योजना-निर्माण के सरल आदिम घटक
टीमें अपने आशय को अलग-अलग तरीकों से व्यवस्थित करती हैं। कुछ औपचारिक आवश्यकताओं पर निर्भर करती हैं। दूसरी विकसित होते डिज़ाइन या चरणबद्ध वर्कफ़्लो का उपयोग करती हैं। एक योजना फ़्रेमवर्क इतना लचीला होना चाहिए कि वह टीमों के पसंदीदा काम करने के तरीकों के अनुरूप ढल सके।
यह बात अब और भी ज़्यादा महत्वपूर्ण है, क्योंकि हालात तेज़ी से बदल रहे हैं। वॉटरफॉल ने दशकों तक योजना बनाने के तरीके को परिभाषित किया। एजाइल ने अगले दो दशकों तक टीमों को आकार दिया। एजेंट इंटेलिजेंस इससे कहीं कम समय में आगे बढ़ रही है। कोई भी स्थिर प्रक्रिया जल्दी पुरानी पड़ जाएगी।
इसीलिए हमने अपना तरीका कुछ सरल आदिम घटकों पर बनाया है, जिन्हें आप अपनी ज़रूरत के अनुसार ढाल सकते हैं। आप अपनी टीम की पसंदीदा योजना संरचना को परिभाषित करने के लिए एजेंट कौशल का उपयोग कर सकते हैं, और एजेंट उसी संरचना का सुसंगत रूप से पालन करेगा।
कुछ टीमें अधिक औपचारिक, स्पेक-आधारित वर्कफ़्लो को एजेंट कौशल के रूप में एन्कोड करती हैं। दूसरी ऐसे कौशल परिभाषित करती हैं जो हल्की योजनाएँ बनाते हैं और काम आगे बढ़ने के साथ विकसित होती रहती हैं। क्योंकि योजनाएँ किसी तय प्रक्रिया के बजाय कौशल से आकार लेती हैं, इसलिए दोनों तरीके स्वाभाविक रूप से योजना मोड के भीतर फिट होते हैं।
मुख्य बात यह नहीं है कि योजना बनाने के प्रति हमारा तरीका बैकवर्ड कम्पैटिबल है, हालांकि वह है। असली बात यह है कि यह भविष्य की ओर देखने वाला है। साझा आदिम घटकों के एक छोटे-से सेट पर बनाया गया फ़्रेमवर्क टीमों को अपने तरीकों को विकसित करने की गुंजाइश देता है, क्योंकि एजेंट अब ऐसा काम संभाल रहे हैं जिसकी पुराने योजना-निर्माण के तरीकों ने कभी कल्पना नहीं की थी।
आगे की राह
एजेंट जिन कामों को संभाल सकते हैं, उनका दायरा और जटिलता तेज़ी से बढ़ रहे हैं। क्योंकि हमने योजना मोड को एजेंट को ध्यान में रखते हुए सरल आदिम घटकों पर बनाया है, यह इन प्रगतियों के साथ तालमेल बनाए रख सकता है।
हम ऐसे एजेंट की टेस्टिंग कर रहे हैं जो किसी प्रोजेक्ट के साथ विस्तारित रन तक जुड़े रहते हैं, सत्रों के बीच संदर्भ बनाए रखते हैं, और जब किसी कार्य को समानांतर काम से फायदा होता है, तब उप-एजेंट बनाते हैं। जल्द ही कई डेवलपर्स एक ही सत्र से जुड़ सकेंगे, देख सकेंगे कि योजना कैसे विकसित होती है, और जैसे-जैसे प्रोजेक्ट आगे बढ़ेगा, एजेंट का मार्गदर्शन कर सकेंगे। हमारा लक्ष्य एजेंट के पूरा किए जा सकने वाले कामों का दायरा बढ़ाना है, साथ ही योजना के उन मूल तत्वों को बरकरार रखना भी, जिन्हें सॉफ़्टवेयर टीमें हमेशा से चाहती रही हैं: स्पष्टता, दृश्यता, और उपयोगकर्ता नियंत्रण।