अधिकांश AI एजेंटों में याद रखने की क्षमता (recall) तो बेहतरीन होती है, लेकिन इस बारे में उनका निर्णय (judgment) बहुत खराब होता है कि किसे याद रखा जाना चाहिए। वे हज़ारों पन्ने पढ़ सकते हैं, फिर भी अपने ही कॉन्टेक्स्ट (context) में डूब जाते हैं क्योंकि किसी ने उन्हें अप्रासंगिक (irrelevant) हिस्सों को भूलना नहीं सिखाया। Knowledge and Memory Management version 0.0.2 को ठीक इसी समस्या को हल करने के लिए बनाया गया है। यह कोई मामूली पैच नहीं है। यह इस बात पर पुनर्विचार करता है कि एक एजेंट अपनी जानकारी को कैसे स्टोर, ट्रांसपोर्ट और प्राथमिकता देता है।

मेमोरी की समस्या

एजेंट अक्सर टेक्स्ट के हर छोटे टुकड़े को बहुत महत्वपूर्ण मान लेते हैं। एक कच्चे वेब पेज को उसके नेविगेशन मेनू, कुकी बैनर और फुटर लिंक के साथ स्टोरेज में डाल दिया जाता है। एक वीडियो ट्रांसक्रिप्ट हर “um,” टाइमस्टैम्प और स्पॉन्सर विज्ञापन के साथ आती है। एक लेख में वास्तविक जानकारी से कहीं अधिक विज्ञापन-कॉपी मार्कअप हो सकता है। जब रिट्रीवल (retrieval) होता है, तो सिस्टम सिग्नल खोजने के लिए इस पूरे शोर (noise) को छानता है। यह बर्बादी दो जगहों पर दिखाई देती है: कचरे के कारण आपका कॉन्टेक्स्ट विंडो छोटा हो जाता है, और आपका इंफ्रास्ट्रक्चर बिल बढ़ जाता है क्योंकि आप अर्थहीन टेक्स्ट को प्रोसेस और एम्बेड करने के लिए भुगतान कर रहे होते हैं।

स्केलिंग की समस्या भी उतनी ही निराशाजनक है। अधिकांश शुरुआती चरण के एजेंट हार्डकोडेड पाथ (hardcoded paths) के माध्यम से एक ही मशीन से बंधे होते हैं। प्रोजेक्ट को अपने लैपटॉप से सर्वर पर, या एक VPS से दूसरे पर ले जाने पर, आप टूटे हुए रेफरेंस को ठीक करने के लिए कॉन्फ़िगरेशन फ़ाइलों को grep करने में पूरा दोपहर बिता देते हैं। एजेंट सॉफ्टवेयर नहीं रह जाता, बल्कि एक नाजुक कलाकृति (art installation) बन जाता है जो केवल एक ही कमरे में रह सकती है।

V0.0.2 में क्या बदला

यह रिलीज़ दोनों समस्याओं का सीधे तौर पर समाधान करती है। यह एक पोर्टेबल पाथिंग स्कीम (portable pathing scheme) और एक यूनिफाइड समराइजेशन पाइपलाइन (unified summarization pipeline) पेश करती है जो मेमोरी तक पहुँचने से पहले ही जानकारी को साफ़ कर देती है। इसका परिणाम एक ऐसा एजेंट है जिसे मूव करना आसान है और चलाना सस्ता है।

आप अपने इंफ्रास्ट्रक्चर से लड़ना बंद कर देते हैं। आप सीमित कॉन्टेक्स्ट में भारी-भरकम दस्तावेज़ भरना बंद कर देते हैं। एजेंट बस बेहतर तरीके से याद रखता है।

$AGENT_HOME के साथ डिज़ाइन से ही पोर्टेबल

सबसे व्यावहारिक बदलाव $AGENT_HOME एनवायरनमेंट वेरिएबल (environment variable) की शुरुआत है। सिस्टम जिस भी पाथ को छूता है—नॉलेज बेस, वर्किंग मेमोरी, कैश किए गए समरी, सेशन लॉग—वह इस रूट के सापेक्ष (relative) हल होता है। इसका मतलब है कि आप कोड की एक भी लाइन बदले बिना अपनी पूरी एजेंट डायरेक्टरी कहीं भी ले जा सकते हैं।

एक सामान्य माइग्रेशन (migration) पर विचार करें। कल आपका एजेंट /srv/ai-agent पर एक DigitalOcean droplet पर था। आज आप इसे स्थानीय रूप से (locally) चलाना चाहते हैं या किसी टीम के साथी को सौंपना चाहते हैं। अतीत में, आपको JSON कॉन्फ़िग, पायथन स्क्रिप्ट और शेल रैपर्स में बिखरे हुए हार्डकोडेड एब्सोल्यूट पाथ (absolute paths) मिलते। आप दर्जनों फ़ाइलों में sed का उपयोग करते, दुआ करते और उम्मीद करते कि आपने हर रेफरेंस को पकड़ लिया है। वर्शन 0.0.2 के साथ, आप इसे पूरी तरह से छोड़ देते हैं। आप फ़ोल्डर को कॉपी करते हैं, export AGENT_HOME=/your/path सेट करते हैं, और चला देते हैं। इनजेशन स्क्रिप्ट, मेमोरी इंडेक्स और रिट्रीवल लेयर सभी स्वचालित रूप से संरेखित (align) हो जाते हैं क्योंकि वे यह मान लेने के बजाय कि उन्हें पहले से पता है, ऑपरेटिंग सिस्टम से पूछते हैं कि 'होम' कहाँ है।

यह पोर्टेबिलिटी सुविधा से कहीं बढ़कर है। यह आपके सेटअप को पुनरुत्पादनीय (reproducible) बनाती है। आप अपने नॉलेज डायरेक्टरी को वर्जन कंट्रोल में ट्रैक कर सकते हैं, बिना रिपॉजिटरी को उन पाथ से खराब किए जो केवल आपकी मशीन पर ही काम करते हैं। एक टीम का साथी रेपो को क्लोन करता है, $AGENT_HOME को अपने फ़ाइल सिस्टम पर पॉइंट करता है, और अपना डेटा इनजेस्ट करता है। आपका CI पाइपलाइन हर एनवायरनमेंट के लिए कॉन्फ़िग को फिर से लिखे बिना एक नया एजेंट शुरू कर सकता है, एक वेरिएबल सेट कर सकता है, और व्यवहार को वैलिडेट कर सकता है।

यदि आप एजेंट को systemd सर्विस के रूप में चलाते हैं, तो वेरिएबल को सर्विस यूनिट में जोड़ें। यदि आप इसे कंटेनराइज़ करते हैं, तो इसे अपने Dockerfile या compose फ़ाइल में पास करें। यदि आप कई शेल (shells) में काम करते हैं, तो इसे अपने .bashrc या .zshrc में डाल दें ताकि यह बना रहे। सेटअप को जानबूझकर उबाऊ (boring) रखा गया है क्योंकि इंफ्रास्ट्रक्चर को उबाऊ ही होना चाहिए।

तीन स्रोत, एक क्लीनअप पाइपलाइन

सिस्टम तीन विशिष्ट चैनलों से जानकारी इनजेस्ट करता है:

  • वेब पेज। ये HTML बॉयलरप्लेट (boilerplate) में लिपटे हुए आते हैं। वास्तविक सामग्री तीन हज़ार शब्दों के मार्कअप, नेविगेशन और कमेंट सेक्शन के भीतर छिपे हुए केवल तीन सौ शब्द हो सकते है।
  • वीडियो ट्रांसक्रिप्ट। स्पीच-टू-टेक्स्ट आउटपुट अपनी अत्यधिक विस्तार (verbose) के लिए जाना जाता है। फिलर्स, दोहराव, टाइमस्टैम्प और विषय से हटकर बातें एक कम-घनत्व वाला स्ट्रीम बनाती हैं जो बिना कोई जानकारी दिए टोकन खर्च करती हैं।
  • लेख। फॉर्मेट बहुत अलग-अलग होते हैं। कुछ साफ टेक्स्ट प्रकाशित करते हैं। अन्य विज्ञापनों, न्यूज़लेटर साइनअप बॉक्स और सोशल एम्बेड के साथ पढ़ने के अनुभव को खराब कर देते हैं।

वर्शन 0.0.2 इन्हें अलग-अलग साइलो (silos) के रूप में नहीं देखता जिन्हें अलग से संभालना पड़े। इसके बजाय, यह वर्किंग मेमोरी में प्रवेश करने से पहले तीनों को एक ही समराइजेशन लेयर (summarization layer) के माध्यम से भेजता है। यह लेयर दावों (claims), प्रक्रियाओं (procedures), डेटा पॉइंट्स और संबंधों (relationships) को निकालती है। यह उस शोर (noise) को हटा देती है जिसे इंसान स्वाभाविक रूप से अनदेखा कर देते हैं।

समराइजेशन (Summarization) एक स्केलिंग रणनीति क्यों है

समराइजेशन को एक लग्जरी फीचर के रूप में देखने की प्रवृत्ति है, कुछ ऐसा जो होना तो अच्छा है लेकिन अनिवार्य नहीं है। यह गलत है। एक लैंग्वेज-मॉडल एजेंट के लिए, समराइजेशन एक स्केलिंग आवश्यकता है।

कॉन्टेक्स्ट विंडो (Context windows) की सीमाएं होती हैं। रिट्रीवल बजट (Retrieval budgets) की लागत होती है। कुकी बैनर या वीडियो स्पॉन्सर रीड पर खर्च किया गया हर टोकन वह टोकन है जिसे आप रीजनिंग (reasoning) पर खर्च नहीं कर सकते। जब आपका एजेंट प्रतिक्रिया तैयार करता है, तो वह अधिक टेक्स्ट होने से स्मार्ट नहीं बनता। वह सही टेक्स्ट होने से स्मार्ट बनता है।

इनजेशन (ingestion) के समय शोर को हटाकर, सिस्टम सिग्नल को कंप्रेस कर देता है। आपका एजेंट उसी कॉन्टेक्स्ट बजट के भीतर स्रोतों के एक व्यापक सेट का परामर्श कर सकता है। जहाँ पहले दो रॉ (raw) डॉक्यूमेंट्स के साथ संघर्ष करना पड़ता था, वहाँ अब दस डिस्टिल्ड (distilled) डॉक्यूमेंट्स समा सकते हैं। यही डेंसिटी (density) एजेंट को पांच स्रोतों को संभालने वाले एक खिलौना प्रोटोटाइप से लेकर सैकड़ों को संभालने वाले एक प्रोडक्शन सिस्टम तक स्केल करने की अनुमति देती है। मेमोरी फुटप्रिंट प्रबंधनीय रहता है। रिट्रीवल की गुणवत्ता में सुधार होता है क्योंकि अप्रासंगिक ओवरलैप खत्म हो जाता है। टोकन की लागत कम हो जाती है क्योंकि आपने बॉयलरप्लेट (boilerplate) को एम्बेड और क्वेरी करने के लिए भुगतान करना बंद कर दिया है।

यह आक्रामक लॉसवी कंप्रेशन (lossy compression) के बारे में नहीं है जो बारीकियों को फेंक देता है। यह पाइपलाइन में एनकोडेड संपादकीय निर्णय (editorial judgment) के बारे में है। सारांश तकनीकी विशिष्टताओं, नेम्ड एंटिटीज (named entities), कॉज़ल लिंक्स (causal links) और निर्देशात्मक चरणों को सुरक्षित रखता है। यह फॉर्मेटिंग के कचरे और बातचीत के अनावश्यक शब्दों (conversational padding) को हटा देता है।

शुरुआत कैसे करें

सेटअप जानबूझकर न्यूनतम रखा गया है क्योंकि सिस्टम का उद्देश्य आपके काम में बाधा न डालना है।

अपना टर्मिनल खोलें और रूट पाथ (root path) सेट करें:

export AGENT_HOME=/your/path

इस लाइन को अपने शेल प्रोफाइल (shell profile) में जोड़कर इसे स्थायी बनाएं, या इसे उस ऑर्केस्ट्रेशन लेयर (orchestration layer) में इंजेक्ट करें जो आपके एजेंट को चलाती है। नीचे की डायरेक्टरी स्ट्रक्चर को सुसंगत रखें। एजेंट उम्मीद करता है कि उसके फोल्डर—चाहे आप उन्हें knowledge/, memory/, summaries/ या कुछ और नाम दें—उस रूट के सापेक्ष हों। एक बार वेरिएबल लाइव हो जाने के बाद, एजेंट को अपने वेब पेजों, ट्रांसक्रिप्ट्स और लेखों की ओर निर्देशित करें। इनजेशन और समराइजेशन पाइपलाइन बाकी काम संभाल लेती है।

यदि आप पिछले वर्शन से माइग्रेट कर रहे हैं, तो प्रक्रिया उतनी ही सरल है। अपने मौजूदा डेटा को नए $AGENT_HOME पदानुक्रम (hierarchy) में ले जाएं, वेरिएबल को अपडेट करें, और सत्यापित करें कि एजेंट पाथ को सही ढंग से रिज़ॉल्व करता है। कोई माइग्रेशन स्क्रिप्ट नहीं। कोई डेटाबेस स्कीमा बम्प्स नहीं। बस डिस्क पर एजेंट कहाँ रहता है, इसके लिए सिंगल सोर्स ऑफ ट्रुथ (single source of truth)।

असली निष्कर्ष

बेहतर मेमोरी मैनेजमेंट का मतलब अधिक डेटा जमा करना नहीं है। यह उस डेटा को क्यूरेट (curate) करने के बारे में है जो आपके पास पहले से है। वर्शन 0.0.2 पोर्टेबिलिटी और समराइजेशन को बाद के विचार (afterthoughts) के बजाय प्राथमिक चिंताओं (first-class concerns) के रूप में मानता है। आपको बिना कुछ तोड़े मशीनों के बीच अपने एजेंट को ले जाने की स्वतंत्रता मिलती है, और आपको एक ऐसे कॉन्टेक्स्ट विंडो की दक्षता मिलती है जिसमें वास्तव में कॉन्टेक्स्ट होता है।

अपना होम डायरेक्टरी सेट करें। एजेंट को वास्तविक स्रोत दें। सिस्टम को कचरा हटाने दें। आप पाथ एरर को डीबग करने में कम समय और शोर को प्रोसेस करने में कम पैसा खर्च करेंगे, और उस चीज़ का उपयोग करने में अधिक समय बिताएंगे जो एजेंट ने वास्तव में सीखा है।


स्रोत: https://dev.to/mage0535/thinking-1-analyze-the-request-12go

कम्युनिटी: https://t.me/GyaanSetuAi