00:00:00राल्फ विगम इस समय चर्चा का विषय बने हुए हैं। हमने पिछले साल इस पर एक वीडियो बनाया था और तब से
00:00:04ट्विटर पर हर कोई इसी के बारे में बात कर रहा है। मैट पोकॉक ने इस पर ढेरों वीडियो बनाए हैं,
00:00:09रयान कार्सन ने इस पर एक बहुत ही लोकप्रिय लेख लिखा है और रजमाइक ने अपने राल्फी बैश स्क्रिप्ट के साथ
00:00:13इसे और आगे बढ़ाया है। लेकिन क्या हर कोई इसे गलत तरीके से कर रहा है? इसके निर्माता ने पहले ही कहा है कि
00:00:19कुछ इम्प्लीमेंटेशन गलत हैं।
00:00:21तो इसे करने का सही तरीका क्या है? और क्यों राल्फ वर्तमान में AI के साथ सॉफ्टवेयर बनाने का सबसे अच्छा तरीका है? सब्सक्राइब बटन दबाएं और चलिए शुरू करते हैं।
00:00:30राल्फ लूप को जेफ हंटली द्वारा बनाया गया था और इसके बारे में पिछले साल जून में लिखा गया था।
00:00:35यह मूल रूप से एक बैश लूप है जो एक AI एजेंट को बार-बार एक ही प्रॉम्प्ट देता है।
00:00:40लेकिन यह कई स्तरों पर प्रतिभाशाली है क्योंकि यह AI एजेंट को उसके सबसे स्मार्ट मोड में काम करने देता है,
00:00:46जो कि वह मोड है जहाँ उसके पास कम से कम कॉन्टेक्स्ट होता है। इसे देखें।
00:00:51तो मान लेते हैं कि यह एक एजेंट के लिए कुल कॉन्टेक्स्ट विंडो है। 0 से लगभग 30% तक
00:00:57वह हिस्सा है जिसे हम “स्मार्ट ज़ोन” कहेंगे, जहाँ एजेंट सबसे अच्छा प्रदर्शन करता है। लगभग
00:01:0130 से 60% तक, यह अभी भी बहुत अच्छा प्रदर्शन करता है। और 60% के बाद, यानी 60, 70, 80, 90, तब
00:01:08इसकी क्षमता कम होने लगती है। हम इसे “डंब ज़ोन” कहेंगे। अब ये नंबर पत्थर की लकीर नहीं हैं
00:01:12और हर मॉडल के हिसाब से अलग हो सकते हैं। तो किसी खास मॉडल के लिए स्मार्ट ज़ोन 40, 50% हो सकता है,
00:01:16लेकिन आमतौर पर 80% कॉन्टेक्स्ट विंडो के ऊपर ही इसकी बुद्धिमत्ता कम होना शुरू होती है।
00:01:21क्लाउड सॉनेट या ओपस के लिए, कॉन्टेक्स्ट विंडो के लिए सामान्य टोकन 200,000 होते हैं। तो आप
00:01:28कह सकते हैं कि पहले 60k स्मार्ट ज़ोन हैं। अगले 60k अभी भी ठीक हैं, लेकिन पहले 60k टोकन जितने
00:01:33अच्छे नहीं हैं। और फिर आखिरी 80k में यह उतना अच्छा प्रदर्शन नहीं करता है। अब, यह इस मॉडल के साथ
00:01:38मेरा व्यक्तिगत अनुभव है। आपका अनुभव अलग हो सकता है। और इसका कारण यह है
00:01:43क्योंकि मॉडल खुद वह है जिसे हम ऑटो-रिग्रेसिव कहते हैं, जिसका अर्थ है कि इसे अगले टोकन का
00:01:47अनुमान लगाने के लिए पिछले टोकन को देखना पड़ता है। और अगर आपके पास बहुत सारे टोकन हैं, तो उसे
00:01:52अगले काम के लिए प्रासंगिक महत्वपूर्ण हिस्सों को खोजने के लिए उनमें से बहुतों से गुजरना पड़ता है।
00:01:56अब चलिए पहले 30% पर ध्यान केंद्रित करते हैं। अपना पहला प्रॉम्प्ट लिखने से पहले ही,
00:02:01कुछ चीजें कॉन्टेक्स्ट विंडो में अपने आप जुड़ जाती हैं। पहला है सिस्टम प्रॉम्प्ट,
00:02:06और फिर सिस्टम टूल्स। एक सामान्य क्लाउड मॉडल पर ये कॉन्टेक्स्ट का 8.3% और 1.4% लेते हैं।
00:02:12यानी इस 30 का लगभग 10%। और फिर अगर आपके पास स्किल्स हैं, तो वे जुड़ सकते हैं। और अगर
00:02:16आपके पास कस्टम MCP टूल्स हैं। अंत में, यदि आपके पास एजेंट MD फाइल है, तो वह भी जुड़ जाती है।
00:02:21और जाहिर है कि इनमें से कोई भी चीज़ जितनी बड़ी होगी, जैसे MD फाइल जितनी बड़ी होगी, वह
00:02:25उतने ही अधिक टोकन लेगी। और यह सब आपके अपना प्रॉम्प्ट जोड़ने से पहले ही हो जाता है। इसलिए
00:02:30आम तौर पर इस हिस्से को जितना हो सके छोटा रखना सबसे अच्छा है। यानी कम टूल्स, कम
00:02:35स्किल्स और अपनी एजेंट MD फाइल में कम जानकारी रखें ताकि मॉडल अपने सबसे इष्टतम कॉन्टेक्स्ट में काम करे।
00:02:40और यह अंदाजा लगाने के लिए कि 60K वास्तव में कितना होता है, अगर हम स्टार वॉर्स “ए न्यू होप” की पूरी
00:02:44स्क्रिप्ट लें, तो GPT-5 में वह लगभग 54,000 टोकन के बराबर है। यानी लगभग इतनी मात्रा।
00:02:51अब आप सोच रहे होंगे कि कॉम्पैक्शन (कमी) के बारे में क्या? क्या वह इस पूरी प्रक्रिया में मदद कर सकता है? और
00:02:56हम इसके बारे में थोड़ी देर बाद बात करेंगे। लेकिन अब चलिए देखते हैं कि राल्फ इसमें कैसे मदद कर सकता है।
00:03:00तो राल्फ का फायदा यह है कि आप प्रति कॉन्टेक्स्ट विंडो एक लक्ष्य पर ध्यान केंद्रित करते हैं। तो
00:03:05पूरी 200K कॉन्टेक्स्ट विंडो को हम एक लक्ष्य या एक काम को समर्पित कर सकते हैं। और जिस तरह से
00:03:10हम ऐसा करते हैं, हम एक ऐसा प्रॉम्प्ट लिखते हैं जो सबसे पहले प्लान MD फाइल का निरीक्षण करेगा। इसमें
00:03:15किए जाने वाले कार्य होते हैं। जैसे फ्रंट-एंड बनाना, बैक-एंड बनाना, डेटाबेस बनाना
00:03:19आदि। यह एक बहुत ही उच्च स्तर का उदाहरण है। बेशक, अगर आप राल्फ का उपयोग कर रहे हैं तो आप अधिक विस्तार
00:03:23और बारीकी से काम करेंगे, लेकिन अभी के लिए हम इसी उदाहरण पर टिके रहेंगे। तो यह प्रॉम्प्ट
00:03:28एजेंट को सबसे महत्वपूर्ण काम चुनने के लिए कहेगा, फिर वे बदलाव करेगा। उन बदलावों को करने के बाद,
00:03:33उन्हें रन करेगा और यहाँ तक कि टेस्ट करने के साथ-साथ उन बदलावों को पुश और कमिट भी करेगा।
00:03:38और एक बार जब आप वे कर लेते हैं, जब टेस्ट पास हो जाते हैं, तो प्लान MD फाइल में उस काम को
00:03:42पूरा हुआ मार्क करें और इसे फिर से करें। इस तरह एजेंट सबसे महत्वपूर्ण काम की तलाश करता रहेगा
00:03:46जब तक कि उसने सभी कार्यों को पूरा न कर लिया हो। अब, असल में मैं अपनी बात वापस लेता हूँ क्योंकि
00:03:52आप राल्फ लूप को बार-बार चला सकते हैं, भले ही उसने सभी काम पूरे कर लिए हों।
00:03:57और इसका लाभ यह है कि यह ठीक करने के लिए कुछ चीज़ें ढूंढ सकता है या ऐसी सुविधाएँ जोड़ सकता है
00:04:02जो प्लान MD फ़ाइल में मौजूद नहीं हैं। लेकिन अगर यह भटक रहा है, तो राल्फ होने का फायदा
00:04:08यह है कि आप जब चाहें पूरी प्रक्रिया को रोक सकते हैं, प्रॉम्प्ट MD फ़ाइल को एडजस्ट कर सकते हैं
00:04:12और फिर पूरी प्रक्रिया को फिर से चला सकते हैं। और राल्फ इसे इतना सरल बना देता है क्योंकि यह
00:04:16पूरी प्रक्रिया एक सिंगल बैश “while” लूप में निष्पादित होती है। तो यहाँ यह सिर्फ प्रॉम्प्ट MD फाइल को
00:04:22कैट (cat) करता है, यानी इसे एजेंट के लिए प्रिंट करता है और फिर क्लाउड को YOLO मोड में चलाता है। बेशक,
00:04:26फ्लैग का नाम YOLO नहीं है। यह “dangerously skip permissions” है, लेकिन जगह बचाने के लिए मैंने इसे छोटा रखा है।
00:04:31और जो बात राल्फ को खास बनाती है वह यह है कि यह मॉडल के नियंत्रण से बाहर है। इसलिए मॉडल
00:04:36यह नियंत्रित नहीं कर सकता कि राल्फ को कब रोकना है। यह बस चलता रहेगा। और इस तरह आप यह सुनिश्चित
00:04:41कर सकते हैं कि जब कोई नया टास्क चलता है या जब कोई नया प्रॉम्प्ट ट्रिगर होता है, तो कॉन्टेक्स्ट
00:04:46बिल्कुल वैसा ही होता है जैसा पहली बार एजेंट को खोलने पर था। यानी यह फ्रेश है। इसमें कोई कॉम्पैक्शन नहीं है।
00:04:50इसमें कुछ भी जोड़ा नहीं गया है। इसलिए प्रत्येक नए टास्क को अधिकतम कॉन्टेक्स्ट मिलता है और
00:04:55यह मॉडल को उसकी सबसे स्मार्ट या सबसे इष्टतम कॉन्टेक्स्ट विंडो स्थिति में उपयोग करता है। मूल रूप से कॉम्पैक्शन
00:05:01वह है जहाँ एजेंट कॉन्टेक्स्ट विंडो में लिखे गए सभी टोकन को देखेगा और अगले प्रॉम्प्ट के लिए
00:05:05सबसे महत्वपूर्ण हिस्सों को चुन लेगा। तो यह वही चुनेगा जो उसे सबसे महत्वपूर्ण लगता है, लेकिन
00:05:11इसे यह नहीं पता कि वास्तव में सबसे महत्वपूर्ण क्या है। इसलिए कॉम्पैक्शन कुछ महत्वपूर्ण जानकारी खो सकता है
00:05:16और आपके प्रोजेक्ट को उम्मीद के मुताबिक काम न करने देने का कारण बन सकता है। खैर,
00:05:21अब जबकि हमने निर्माता से राल्फ लूप का प्रामाणिक इम्प्लीमेंटेशन देख लिया है, इससे हमें यह समझने में मदद
00:05:27मिलती है कि अन्य इम्प्लीमेंटेशन अलग क्यों हैं। चलिए एंथ्रोपिक के इम्प्लीमेंटेशन को देखते हैं,
00:05:33जो राल्फ को क्लाउड के कोड के अंदर चलाने के लिए एक स्लैश कमांड का उपयोग करता है, इसमें मैक्स इटरेशन्स और
00:05:38एक कम्प्लीशन प्रॉमिस है। तो इस विशिष्ट राल्फ विगम प्लगइन के साथ समस्या यह है कि
00:05:43अगले टास्क पर जाने के दौरान यह जानकारी को कॉम्पैक्ट कर देता है। इसलिए यदि यह एक
00:05:48टास्क पूरा करता है और प्रॉम्प्ट को दोबारा चलाता है, तो कॉन्टेक्स्ट विंडो को पूरी तरह से रीसेट करने के बजाय, यह पहले
00:05:54जो किया गया था उसे कॉम्पैक्ट कर देता है, जिससे कुछ महत्वपूर्ण जानकारी खो सकती है। मैक्स इटरेशन्स और
00:05:59एक कम्प्लीशन प्रॉमिस होने की भी थोड़ी समस्या है क्योंकि कभी-कभी राल्फ को बस चलते देना अच्छा होता है।
00:06:04यह ऐसी बहुत ही दिलचस्प चीजें ठीक करने के लिए ढूंढ सकता है जो आपने पहले नहीं सोची होंगी। और यदि आप
00:06:08इसे देखते हैं, यानी प्रक्रिया पर नज़र रखते हैं, तो आप किसी विशिष्ट मॉडल से अच्छे या बुरे पैटर्न देख सकते हैं
00:06:14जिन्हें आप अपने मूल प्रॉम्प्ट में बदल और बेहतर बना सकते हैं। यदि हम
00:06:19राल्फ लूप के लिए रयान कार्सन के दृष्टिकोण को देखें, तो हम यहाँ देख सकते हैं कि यह पूरी तरह से
00:06:24प्रामाणिक नहीं है क्योंकि प्रत्येक लूप पर, इसमें agents.md फ़ाइल को बदलने या उसमें कुछ
00:06:29जोड़ने की संभावना होती है। अब, मॉडल में आपके द्वारा जोड़े गए सिस्टम प्रॉम्प्ट या किसी भी यूजर प्रॉम्प्ट के
00:06:33आधार पर, मेरे अनुभव में, डिफ़ॉल्ट रूप से मॉडल बहुत ज्यादा शब्द इस्तेमाल कर सकते हैं। और इसलिए यदि प्रत्येक
00:06:39इटरेशन पर, आप agents.md फ़ाइल में कुछ जोड़ रहे हैं, जिसे प्रत्येक यूजर प्रॉम्प्ट की शुरुआत में
00:06:44कॉन्टेक्स्ट में जोड़ा जाता है, तो आप बस कॉन्टेक्स्ट विंडो में अधिक टोकन जोड़ रहे हैं,
00:06:48जिससे मॉडल ऐसी जगह पहुँच सकता है जहाँ वह आपको खराब परिणाम दे सकता है। लेकिन
00:06:53तथ्य यह है कि लोग बेसिक राल्फ लूप बैश स्क्रिप्ट से अपनी खुद की स्क्रिप्ट बना रहे हैं, यह इस बात का प्रमाण है
00:06:57कि इसे समझना कितना सरल और आसान है। और हालाँकि राल्फ करने का एक प्रामाणिक तरीका है, मुझे लगता है कि
00:07:03डेवलपर्स, टीमों और कंपनियों के लिए इसे अपने विशिष्ट उपयोग के अनुसार बदलना ठीक है। उदाहरण के लिए,
00:07:08मुझे यह पसंद है कि रजमाइक की राल्फी स्क्रिप्ट में पैरेलल राल्फ चलाने का एक तरीका है
00:07:13और यह भी कि आप ब्राउज़र टेस्टिंग करने के लिए सेल (cell) से एजेंट ब्राउज़र टूल का उपयोग कर सकते हैं।
00:07:18मुझे यह भी पसंद है कि मैट पोकॉक के राल्फ वर्जन में,
00:07:23वह कार्यों या करने वाली चीजों को GitHub इश्यूज के रूप में जोड़ता है और राल्फ लूप सबसे महत्वपूर्ण कार्य को
00:07:28चुनेगा, उस पर काम करेगा और अगला काम करने से पहले पूरा होने पर उसे 'डन' मार्क कर देगा, जो
00:07:32मुझे लगता है कि वास्तव में बहुत समझदारी भरा है। मुझे लगता है कि राल्फ की शक्ति और सरलता का मतलब है कि यह
00:07:37बहुत लंबे समय तक टिकने वाला है। और आप इसमें बहुत सारे बदलाव और सुधार भी देख सकते हैं।
00:07:42मुझे जेफरी का अपने लूम और वीवर प्रोजेक्ट के साथ इसे आगे ले जाने का तरीका बहुत पसंद आया जहाँ
00:07:47वह स्वायत्त और सही तरीके से सॉफ्टवेयर बनाने का एक तरीका बनाना चाहते हैं। लेकिन इन सभी
00:07:52राल्फ्स द्वारा स्वायत्त रूप से नया सॉफ्टवेयर बनाने के साथ, आपको एरर्स खोजने और यह सुनिश्चित करने के
00:07:56तरीके की आवश्यकता है कि वे ठीक हो जाएं। यहीं बैटर स्टैक (Better Stack) काम आता है क्योंकि यह न केवल लॉग्स को ग्रहण कर सकता है
00:08:01और उनमें से एरर्स को फ़िल्टर कर सकता है, बल्कि यह फ्रंट-एंड पर एरर ट्रैकिंग को भी संभाल सकता है।
00:08:06तो इस MCP सर्वर के साथ, आप एक एजेंट से विशेष रूप से फ्रंट-एंड या बैक-एंड से एरर्स चुनने के लिए
00:08:11कह सकते हैं, बजाय इसके कि वह पूरे लॉग को पढ़े, जो बदले में कॉन्टेक्स्ट
00:08:16विंडो को कम कर देता है।
00:08:17तो जाकर Better Flux को चेक करें, और मुझे कमेंट्स में बताएं कि आप क्या सोचते हैं।