00:00:00AI की प्रगति और हर नए मॉडल की बढ़ती शक्ति के साथ,
00:00:03कोड बनाने का हमारा तरीका पूरी तरह से बदल गया है।
00:00:07अब कोडिंग के लिए विशेषीकृत कई टूल्स हैं,
00:00:09जैसे ClodCode,
00:00:10Cursor,
00:00:11Antigravity,
00:00:11और अन्य,
00:00:12जिनमें से प्रत्येक की अपनी अनूठी क्षमताएं हैं।
00:00:14लेकिन केवल अच्छे मॉडल ही आपके द्वारा बनाए गए कोड की गुणवत्ता निर्धारित नहीं करते।
00:00:18आप टूल का उपयोग कैसे करते हैं और संदर्भ का प्रबंधन कैसे करते हैं,
00:00:21यह उतना ही महत्वपूर्ण है।
00:00:22इन सभी टूल्स में संदर्भ इंजीनियरिंग के लिए कुछ अंतर्निहित तंत्र हैं,
00:00:25लेकिन Cursor ने एक नए दृष्टिकोण के लिए एक बड़ी पहल की है,
00:00:28इसे सीधे ऐप में ही बनाया है।
00:00:29जब मैंने उनका लेख पढ़ा,
00:00:31तो मुझे एहसास हुआ कि ये सिद्धांत वास्तव में मजबूत हैं।
00:00:33आज हमें बहुत कुछ बात करनी है क्योंकि इन विचारों को व्यापक रूप से किसी भी प्लेटफ़ॉर्म पर लागू किया जा सकता है जिसका उपयोग आप एप्लिकेशन बनाने के लिए करते हैं।
00:00:40AI एजेंट्स के साथ काम करते समय संदर्भ प्रबंधन हमेशा महत्वपूर्ण रहा है क्योंकि अच्छा संदर्भ प्रबंधन आउटपुट की गुणवत्ता निर्धारित करता है।
00:00:47हमने पहले अपने वीडियो में बात की है कि संदर्भ प्रबंधन कितना महत्वपूर्ण है और इसके लिए वर्कफ़्लो के बारे में बात की है।
00:00:53Cursor ने संदर्भ प्रबंधन सुविधाओं को सीधे अपने उत्पाद में लागू किया और इसके बारे में एक लेख जारी किया।
00:00:58ये सिद्धांत उनके इस अवलोकन पर आधारित हैं कि मॉडल से अच्छे परिणाम प्राप्त करने के लिए,
00:01:02संदर्भ विंडो में जितना संभव हो उतना कम विवरण प्रदान करना बेहतर है।
00:01:06मॉडल को एक बार में जितनी कम जानकारी मिलती है,
00:01:08उसे एक बार में उतना ही कम डेटा प्रोसेस करना पड़ता है,
00:01:11जिसका अर्थ है कम भ्रम और उस कार्य पर अधिक ध्यान जो उसे इस समय करना है,
00:01:14क्योंकि केवल प्रासंगिक जानकारी शामिल होती है।
00:01:17इस दृष्टिकोण को वे डायनामिक कॉन्टेक्स्ट डिस्कवरी कहते हैं।
00:01:20यह विचार संरचित नोट लेने का है।
00:01:22यानी,
00:01:22जो जानकारी अभी आवश्यक नहीं है,
00:01:24वह संदर्भ विंडो में नहीं होनी चाहिए,
00:01:26संभावित रूप से भ्रमित करने वाले या विरोधाभासी विवरणों को बाहर रखने से एजेंट की प्रतिक्रियाओं की गुणवत्ता में काफी सुधार होता है।
00:01:32Cursor की वर्तमान रिलीज़ में पांच डायनामिक संदर्भ प्रबंधन विधियां जोड़ी गई हैं जो जल्द ही उपयोगकर्ताओं के लिए उपलब्ध होंगी।
00:01:37भले ही Cursor इसे एक उत्पाद अपडेट के रूप में लागू कर रहा है,
00:01:41ये सिद्धांत सभी AI एजेंट्स पर व्यापक रूप से लागू होते हैं।
00:01:44Cursor द्वारा उल्लिखित पहला अपडेट यह है कि लंबे टूल रिस्पॉन्स को फाइलों में सहेजा जाना चाहिए।
00:01:48MCP अक्सर बड़े रिस्पॉन्स लौटाते हैं जो संदर्भ विंडो में बने रहते हैं।
00:01:52रिस्पॉन्स की सभी जानकारी हमेशा आवश्यक नहीं होती है।
00:01:55Cursor ने उल्लेख किया कि अधिकांश कोडिंग टूल्स का सामान्य तरीका लंबे MCP रिस्पॉन्स को काटना है,
00:02:01जिससे डेटा हानि होती है या महत्वपूर्ण जानकारी जो संदर्भ के लिए आवश्यक हो सकती है,
00:02:06हटा दी जाती है।
00:02:07Claude का Chrome एक्सटेंशन एक बहुत ही टूल-हेवी एक्सटेंशन है,
00:02:10और कुछ प्रॉम्प्ट ही संदर्भ विंडो में एक बड़ा हिस्सा लोड करने के कारण संदर्भ को भर सकते हैं।
00:02:15इसलिए मैंने Claude.md फ़ाइल में एक निर्देश जोड़ा कि 50 लाइनों से अधिक का कोई भी MCP टूल रिस्पॉन्स .context फ़ोल्डर के भीतर एक MCP फ़ोल्डर में टर्मिनल में echo कमांड चलाकर सहेजा जाना चाहिए।
00:02:27जब मैंने एक लैंडिंग पेज के UI का विश्लेषण करने के लिए Chrome एक्सटेंशन चलाया,
00:02:31तो जब भी Claude को ReadPage जैसा कोई टूल मिला जो संदर्भ विंडो को काफी बढ़ाता है,
00:02:35तो उसने MCP रिस्पॉन्स को आगे पढ़ने के लिए एक फ़ाइल में सहेज लिया,
00:02:38जिसका उपयोग करके उसने पूरे पेज का विश्लेषण किया और मुझे एक रिपोर्ट दी।
00:02:42इस वर्कअराउंड ने Claude को फाइलों से रिस्पॉन्स का जितनी बार जरूरत हो उतनी बार विश्लेषण करने देकर टूल रिस्पॉन्स विश्लेषण की सटीकता में सुधार किया और बार-बार टूल कॉल की आवश्यकता को समाप्त कर दिया।
00:02:52जब पिछली MCP कॉल से डेटा की आवश्यकता होती है,
00:02:54तो Claude इसे टूल कॉल करने के बजाय सीधे .context फ़ोल्डर से पढ़ सकता है,
00:02:58जिससे काफी समय की बचत होती है।
00:03:00इससे पहले कि हम अगले परिवर्तन पर आगे बढ़ें,
00:03:02आइए हमारे प्रायोजक,
00:03:03Zen Rose के बारे में सुनें।
00:03:04यदि आप AI उत्पाद,
00:03:05ऑटोमेशन,
00:03:05या डेटा-संचालित सिस्टम बना रहे हैं,
00:03:07तो आप पहले से ही एक बात जानते हैं,
00:03:09सब कुछ विश्वसनीय वेब डेटा से शुरू होता है। लेकिन बड़े पैमाने पर स्वच्छ,
00:03:12संरचित डेटा प्राप्त करना उतना आसान नहीं है जितना लगता है। यहीं पर Zen Rose स्टैक में पूरी तरह से फिट बैठता है।
00:03:18Zen Rose जटिल वेबसाइटों से डेटा निष्कर्षण को संभालता है जबकि स्वचालित रूप से एंटी-बॉट बायपास का प्रबंधन करता है ताकि आप वास्तव में महत्वपूर्ण चीज़ पर ध्यान केंद्रित कर सकें - डेटा का उपयोग करना।
00:03:27गड़बड़ आउटपुट से निपटने के बजाय,
00:03:29Zen Rose संरचित परिणाम देता है जैसे JSON या Markdown जो सीधे आपकी पाइपलाइन में प्लग करने के लिए तैयार हैं। यह इंटीग्रेशन-रेडी और बिज़नेस-फ़ोकस्ड है,
00:03:36जो इसे AI स्टार्टअप्स,
00:03:38डेटा टीमों और ऑटोमेशन बिल्डर्स के लिए आदर्श बनाता है जो इन्फ्रास्ट्रक्चर की देखभाल नहीं करना चाहते।
00:03:43चाहे आप लीड्स को समृद्ध कर रहे हों,
00:03:44AI एजेंट्स को पावर दे रहे हों,
00:03:46या रिसर्च को ऑटोमेट कर रहे हों,
00:03:47Zen Rose बस काम करता है। अगर आपका काम वेब डेटा पर निर्भर करता है,
00:03:50तो Zen Rose आपके स्टैक में होना चाहिए।
00:03:52पिन किए गए कमेंट में लिंक पर क्लिक करें और आज ही बनाना शुरू करें।
00:03:55हम जानते हैं कि जब कॉन्टेक्स्ट विंडो भर जाती है तो समराइज़ेशन स्टेप गड़बड़ होता है और बहुत सारी जानकारी खो देता है। ज़्यादातर टूल्स,
00:04:01cursor और Claude code सहित,
00:04:02एक समराइज़ेशन स्टेप ट्रिगर करते हैं और सेशन को एक ताज़ा कॉन्टेक्स्ट विंडो के साथ शुरू करते हैं जिसमें समरी शुरुआती बिंदु के रूप में होती है।
00:04:09जब आप बार-बार कॉम्पैक्ट करते हैं,
00:04:11तो समरी उन विवरणों को भूलने लगती है जो आपके लिए महत्वपूर्ण हो सकते हैं लेकिन मॉडल की समरी में छूट सकते हैं।
00:04:16ऑटो-कॉम्पैक्शन पर आपका केवल इतना ही नियंत्रण होता है,
00:04:19और बार-बार कम्प्रेशन से महत्वपूर्ण जानकारी का नुकसान होता है अगर आपको इसे बार-बार करना पड़े।
00:04:24Cursor का समाधान है सभी पिछली चैट हिस्ट्री को एक फ़ाइल के रूप में सेव करना ताकि एजेंट बाद में उसे रेफर कर सके।
00:04:30जब हम एक बहुत विशिष्ट प्रॉम्प्ट देते हैं और मॉडल को समरी में जानकारी नहीं मिलती,
00:04:34तो पिछला ट्रांसक्रिप्ट उसके नॉलेज बेस के रूप में काम करता है।
00:04:37मॉडल उस ट्रांसक्रिप्ट का उपयोग समाधान उत्पन्न करने के लिए करता है,
00:04:40जिससे वह समरी से खोई हुई किसी भी चीज़ को पुनर्प्राप्त कर सकता है।
00:04:43जब तक cursor का इम्प्लीमेंटेशन रोल आउट नहीं हो जाता और सभी के लिए उपलब्ध नहीं हो जाता,
00:04:47मैंने Claude code के साथ इस फीचर को लागू करने की कोशिश की।
00:04:50मैंने Claude.md फ़ाइल के अंदर निर्देश जोड़ा कि हर टर्न के बाद चैट हिस्ट्री को अपडेट करें,
00:04:55सभी मुख्य निर्णयों और किए गए कदमों को दस्तावेज़ित करते हुए।
00:04:58इसने .context फ़ोल्डर के अंदर एक हिस्ट्री फ़ोल्डर का उपयोग किया जिसमें प्रत्येक फ़ाइल का नाम सेशन को दर्शाता था।
00:05:03तो जब भी मैं इसे कोई कार्य करने के लिए कहता हूं,
00:05:05अपने टास्क एग्ज़ीक्यूशन सेशन के अंत में,
00:05:07यह चैट हिस्ट्री को संबंधित हिस्ट्री फ़ाइल में दस्तावेज़ित करता है,
00:05:11उस फ़ाइल में सब कुछ जोड़ते हुए।
00:05:12इस तरह,
00:05:13.context फ़ोल्डर में सभी सेशन और जो कुछ भी किया गया था उसके विस्तृत रिकॉर्ड होते हैं।
00:05:18एजेंट्स को MCPs द्वारा उत्पन्न कॉन्टेक्स्ट समस्या को प्रबंधित करने में मदद के लिए स्किल्स दी गई थीं।
00:05:23स्किल्स का पूरा उद्देश्य एजेंट्स को स्क्रिप्ट्स और इंस्ट्रक्शन फ़ाइलों के माध्यम से मार्गदर्शन करके अपनी क्षमताओं का बेहतर उपयोग करने की योग्यता प्रदान करना है,
00:05:30प्रोग्रेसिव डिस्क्लोज़र द्वारा कॉन्टेक्स्ट ब्लोट को कम करना।
00:05:33Anthropic पहली कंपनी थी जो इस आइडिया के साथ आई,
00:05:35जो मूल रूप से एजेंट्स को निर्देशों,
00:05:37स्क्रिप्ट्स और संसाधनों का एक सेट देना है जिसे एजेंट खोज सकता है और विशिष्ट कार्यों में बेहतर प्रदर्शन के लिए उपयोग कर सकता है। Anthropic ने मूल रूप से इन एजेंट्स की स्किल्स को ओपन-सोर्स किया,
00:05:46एक मानक स्थापित किया जिसे दूसरे लागू कर सकते थे। इसके बाद,
00:05:49Codex,
00:05:50Gemini और अन्य ने एजेंट्स की स्किल्स को लागू करना शुरू किया,
00:05:53जिसके बाद अंततः cursor की बारी आई यही करने की। cursor की स्किल्स मूल रूप से वही एक्ज़ीक्यूटेबल्स और स्क्रिप्ट्स हैं जो एक साथ एक सिंगल स्किल में बंडल की गई हैं जिसे एजेंट अपने संबंधित कार्यों के लिए उपयोग कर सकता है। केवल स्किल्स का नाम और विवरण स्टैटिक कॉन्टेक्स्ट में होता है।
00:06:07एक बार जब वे स्टैटिक कॉन्टेक्स्ट के अंदर आ जाते हैं,
00:06:09तो एजेंट grep और cursor की सिमेंटिक सर्च का उपयोग करके अपने स्किल्स को खुद ही खींच सकते हैं। यही इसे अलग बनाता है,
00:06:15क्योंकि cursor की सिमेंटिक सर्च बैकग्राउंड में अपने स्वयं के एम्बेडिंग मॉडल और इंडेक्सिंग पाइपलाइन का उपयोग करती है,
00:06:20न कि grep कमांड्स में regex-आधारित सर्च जैसे सामान्य पैटर्न मैचिंग का। Claude के स्किल्स केवल नाम और विवरण को कॉन्टेक्स्ट में उजागर करते हैं,
00:06:27चाहे स्क्रिप्ट कितनी भी फाइलों का उपयोग करे,
00:06:29जिससे कॉन्टेक्स्ट ब्लोट से बचा जा सके। मेरे प्रोजेक्ट में,
00:06:32मैंने 5 स्किल्स कॉन्फ़िगर किए थे,
00:06:34जिनमें से प्रत्येक बहुत कम टोकन का उपभोग करता था,
00:06:36कुल का केवल लगभग 0.2%,
00:06:37जिससे काम करने के लिए अधिक जगह बची। जो अलग है वह यह है कि Claude के स्किल्स को /commands के माध्यम से भी एक्सेस किया जा सकता है,
00:06:43जिससे आप उन्हें जरूरत पड़ने पर मैन्युअली ट्रिगर कर सकते हैं,
00:06:46जो लोगों की इस शिकायत को संबोधित करता है कि स्किल्स ठीक से ऑन डिमांड लोड नहीं होते हैं। MCP में बहुत सारे टूल होते हैं जो सभी कॉन्टेक्स्ट विंडो में उजागर होते हैं,
00:06:54जिससे कॉन्टेक्स्ट विंडो अनावश्यक रूप से फूल जाती है। Cursor ने यह जिम्मेदारी ली और जोर दिया कि कॉन्टेक्स्ट ब्लोट को ठीक करना कोडिंग एजेंट्स की जिम्मेदारी है,
00:07:02न कि MCP सर्वर की। इसका समाधान था एक फोल्डर में टूल विवरण को सिंक करके डायनामिक कॉन्टेक्स्ट डिस्कवरी। Cursor का विचार है कि सभी MCP अलग-अलग फोल्डर में अपने नामों के साथ हों,
00:07:10जो प्रत्येक कनेक्टेड MCP के नाम पर रखे गए हों,
00:07:12और प्रत्येक फोल्डर के भीतर सभी टूल सूचीबद्ध होने चाहिए। इसके साथ,
00:07:15एजेंट को केवल टूल के नाम मिलते हैं,
00:07:17और जब भी उसे किसी टूल की आवश्यकता होती है,
00:07:19वह फोल्डर के माध्यम से इसे खोजता है। उन्होंने जो परीक्षण किया,
00:07:22उसमें पता चला कि MCP टूल की डायनामिक डिस्कवरी से उपयोग में 46.9% की कमी आई,
00:07:26जो एक लंबे समय तक चलने वाले सिस्टम पर काम करते समय बहुत बड़ा अंतर बनाता है। यह कार्यान्वयन उन मामलों में भी मदद करता है जहां MCP सर्वर गलती से डिस्कनेक्ट हो जाते हैं या पुनः प्रमाणीकरण की आवश्यकता होती है। सामान्य रूप से,
00:07:36सिस्टम बस उन टूल को भूल जाता,
00:07:38लेकिन अब एजेंट वास्तव में उपयोगकर्ता को सूचित कर सकता है कि पुनः प्रमाणीकरण आवश्यक है। Claude के पास एक उन्नत सर्च टूल भी है जो विशेष रूप से इस समस्या को संबोधित करने के लिए डिज़ाइन किया गया है,
00:07:47जो Claude को यह बताने के लिए कुछ विशेष फ्लैग का उपयोग करता है कि इसे लोड करना है या नहीं। यह Cursor के डायनामिक कॉन्टेक्स्ट डिस्कवरी के ठीक उसी विचार को लागू करता है,
00:07:55लेकिन यह केवल डेवलपर प्लेटफॉर्म तक सीमित है,
00:07:57और केवल उन लोगों के लिए जो API के साथ निर्माण कर रहे हैं। हम Claude कोड में MCP के उपयोग को संशोधित नहीं कर सकते,
00:08:03क्योंकि वे Anthropic द्वारा इसमें बनाए गए हैं। जैसे ही मैं Claude कोड में इसे लागू करने के तरीके खोज रहा था,
00:08:08मुझे एक छिपा हुआ फ्लैग मिला। इस फ्लैग को सेट किए बिना,
00:08:11मैंने जो सभी MCP टूल कनेक्ट किए थे वे Claude कोड के कॉन्टेक्स्ट में उजागर थे। जब मैंने एक्सपेरिमेंटल MCP CLI फ्लैग सक्षम किया,
00:08:17तो सभी टूल कॉन्टेक्स्ट विंडो से हटा दिए गए,
00:08:19जिससे वह जगह मुक्त हो गई जो पहले MCP टूल द्वारा घेरी गई थी। लेकिन इसका मतलब यह नहीं है कि जब यह CLI सक्षम होता है तो MCP डिस्कनेक्ट हो जाते हैं। एकमात्र अंतर यह है कि वे कॉन्टेक्स्ट विंडो में अग्रिम रूप से उजागर नहीं होते हैं। सभी स्कीमा को कॉन्टेक्स्ट में डालने के बजाय,
00:08:32Claude अब एक मध्य बैश लेयर का उपयोग करता है जिसे MCP CLI कहा जाता है,
00:08:36जो सभी MCP से संबंधित कार्यों को संभालता है। Claude इस मध्य लेयर का उपयोग टूल को खोजने,
00:08:40जानकारी प्राप्त करने और उन्हें इनवोक करने के लिए करता है। जब भी आप Claude से कोई ऐसा कार्य करने के लिए कहते हैं जिसके लिए MCP टूल कॉल की आवश्यकता होती है,
00:08:47तो सामान्य विधि का उपयोग करने के बजाय,
00:08:49यह MCP CLI के माध्यम से MCP का उपयोग करता है और वह कार्य करता है जो इसे करना आवश्यक है। इस टूल का उपयोग करके,
00:08:54Claude सभी कार्यों को सामान्य रूप से निष्पादित करता है,
00:08:57बस इस मध्य लेयर के माध्यम से। Cursor में टर्मिनल त्रुटियों की रिपोर्ट करना कठिन है क्योंकि इसकी सीमित पहुंच है। यदि टर्मिनल में कोई त्रुटि दिखाई देती है,
00:09:05तो आपको इसे चैट में जोड़ना होता है और फिर इसे ठीक करवाना होता है। इसके लिए Cursor का समाधान भी टर्मिनल सेशन को फाइलों में ले जाना है। इसलिए जब भी आप इससे कोई सवाल पूछते हैं,
00:09:13तो यह उन हिस्ट्री फाइलों का संदर्भ लेता है और प्रासंगिक आउटपुट निकालने के लिए grep का उपयोग करता है।
00:09:20चूंकि सर्वर लॉग आमतौर पर लंबे समय तक चलते रहते हैं और एजेंट के लिए बहुत अधिक अनावश्यक जानकारी से भरे होते हैं,
00:09:25इसलिए grep टास्क का उपयोग करना अधिक कुशल है क्योंकि यह एजेंट को पैटर्न मैचिंग करने देता है। उन्हें यह आइडिया CLI-आधारित कोडिंग एजेंट्स से मिला,
00:09:32जो कमांड चलाते हैं,
00:09:33लेकिन फिर आउटपुट को ठीक उसी तरह कॉन्टेक्स्ट में इंजेक्ट किया जाता है जैसे Claude code और अन्य डिफ़ॉल्ट रूप से करते हैं। भले ही Claude इसे बुद्धिमानी से अपने आप संभाल लेता है,
00:09:42हम Claude.md में निर्देशों का उपयोग करके इसे और भी बेहतर तरीके से प्रबंधित कर सकते हैं ताकि यह सभी टर्मिनल लॉग्स को .context फ़ोल्डर के अंदर टर्मिनल फ़ोल्डर में एक फ़ाइल में जोड़ दे। मूल रूप से,
00:09:51अगर Claude कोई npm कमांड चलाता है,
00:09:53तो यह एक विशेष कमांड चलाता है जो आउटपुट स्ट्रीम और इनपुट स्ट्रीम दोनों को डॉक्यूमेंट फ़ाइलों में लॉग करता है। यहां,
00:09:582 स्टैंडर्ड एरर स्ट्रीम को दर्शाता है और 1 स्टैंडर्ड आउटपुट स्ट्रीम को दर्शाता है। यह इन लॉग्स को टर्मिनल फ़ोल्डर में लिखता है और उन्हें टाइमस्टैम्प के साथ चिह्नित करता है। फिर,
00:10:07जब भी इसे उनमें खोज करनी होती है,
00:10:08यह बस एक निर्दिष्ट पैटर्न के साथ grep कमांड का उपयोग करता है और केवल महत्वपूर्ण जानकारी निकालने के लिए अंतिम 20 लाइनें लोड करता है।
00:10:15इसलिए जब भी मैंने अपने डेवलपमेंट सर्वर को टेस्ट किया,
00:10:18इसने इन कमांड्स का उपयोग किया और Claude.md फ़ाइल के अनुसार टर्मिनल रन को फ़ाइलों में लिखता रहा। सर्वर चलाने के बाद,
00:10:24इसने लॉग फ़ाइलों को देखा और पता लगाया कि समस्या का कारण क्या था और मेरे लिए समस्या को ठीक कर दिया।
00:10:29अब भले ही Claude code में यह ऐड-ऑन महत्वहीन लग सकता है क्योंकि ऐसा नहीं लगता कि इसका तत्काल काम पर बहुत प्रभाव पड़ता है,
00:10:34लेकिन जब आप अपने ऐप की कार्यप्रणाली को वापस देखना चाहते हैं तो यह बहुत उपयोगी हो सकता है। ठीक वैसे ही जैसे जब मुझे यह पहचानना था कि कौन सी सेवा मेरे ऐप को क्रैश करा रही है,
00:10:42तो मैंने बस Claude को टेस्ट दोबारा चलाने के बजाय टेस्ट लॉग्स देखने के लिए कहा,
00:10:45जिससे मुझे केवल एक त्रुटि को पुनः उत्पन्न करने के लिए 2 मिनट का टेस्ट सूट फिर से चलाने से बच गया जो मैं पहले ही देख चुका था। इसके साथ ही हम इस वीडियो के अंत में पहुँच गए हैं। अगर आप चैनल को सपोर्ट करना चाहते हैं और ऐसे वीडियो बनाने में हमारी मदद करना चाहते हैं,
00:10:57तो आप नीचे दिए गए सुपर थैंक्स बटन का उपयोग करके ऐसा कर सकते हैं। हमेशा की तरह,
00:11:00देखने के लिए धन्यवाद और अगले वीडियो में मिलते हैं।