AI एजेंट्स बनानामध्यमपाठ 2006 मिनट का पाठ

प्रैक्टिस में एजेंट मेमोरी

कॉन्टेक्स्ट विंडो भर जाती हैं। एजेंट मेमोरी के चार आम प्रकार बनाएं — एक रीसेंट विंडो, समरीज़, एक नोट्स फ़ाइल और रिट्रीवल — और तय करें कि क्या भूलना है।

पाठ वीडियो में

60 सेकंड में

प्रैक्टिस में एजेंट मेमोरी

कॉन्टेक्स्ट विंडो भर जाती हैं। एजेंट मेमोरी के चार आम प्रकार बनाएं — एक रीसेंट विंडो, समरीज़, एक नोट्स फ़ाइल और रिट्रीवल — और तय करें कि क्या भूलना है।

1/4
आसान शब्दों में
परीक्षा के दौरान आप प्रश्नपत्र अपने सामने रखते हैं, मार्जिन में कुछ रफ़ नोट्स लिखते हैं, और पाठ्यपुस्तक घर पर ही रहती है। आप पूरी लाइब्रेरी को परीक्षा हॉल में नहीं ला सकते। एजेंट के साथ भी ऐसा ही है: वह जो कुछ भी जानता है, उसका केवल एक छोटा सा हिस्सा ही एक समय में उसके "सामने" हो सकता है।
आप कॉन्टेक्स्ट, मेमोरी और भूलना से जानते हैं कि एक मॉडल हर कॉल के लिए केवल वही देखता है जो उसकी कॉन्टेक्स्ट विंडो में होता है। लंबे एजेंट रन हर कदम पर मैसेज, टूल के नतीजे और फ़ाइलें जोड़ते जाते हैं, इसलिए कॉन्टेक्स्ट भर जाता है, धीमा और अधिक महंगा हो जाता है, और बीच के महत्वपूर्ण विवरण खो जाते हैं। मेमोरी वह तरीका है जिससे आप चुनते हैं कि मॉडल क्या देखे।

मेमोरी के चार प्रकार

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

एक आसान मेमोरी मैनेजर

यह उदाहरण लक्ष्य को पिन करके रखता है, एक रनिंग समरी रखता है, और सबसे हालिया मैसेज रखता है। समरी फ़ंक्शन मॉडल कॉल के लिए एक प्लेसहोल्डर है।
memory.py: pinned goal + summary + recent windowpython
def summarise(old_summary: str, messages: list) -> str:
    # Placeholder: in real code, ask the model to update the summary.
    # Keep facts, decisions and open questions; drop chit-chat.
    lines = [m["role"] + ": " + m["content"][:60] for m in messages]
    return (old_summary + " | " if old_summary else "") + "; ".join(lines)

class Memory:
    def __init__(self, goal: str, keep_last: int = 6):
        self.goal = goal
        self.summary = ""
        self.recent = []
        self.keep_last = keep_last

    def add(self, role: str, content: str):
        self.recent.append({"role": role, "content": content})
        if len(self.recent) > self.keep_last:
            old = self.recent[:-self.keep_last]
            self.recent = self.recent[-self.keep_last:]
            self.summary = summarise(self.summary, old)

    def context(self) -> list:
        head = [{"role": "system", "content": "Goal: " + self.goal}]
        if self.summary:
            head.append({"role": "system", "content": "Earlier (summary): " + self.summary})
        return head + self.recent

mem = Memory("Plan a 3-day Kerala trip under Rs 20,000", keep_last=2)
for text in ["Budget is firm", "Prefer trains", "Vegetarian food", "Start from Kochi"]:
    mem.add("user", text)
for m in mem.context():
    print(m["role"], "->", m["content"])

नोट्स: एजेंट क्या लिखता है

एक नोट्स फ़ाइल एक निश्चित स्ट्रक्चर के साथ सबसे अच्छा काम करती है, ताकि एजेंट को पता हो कि क्या लिखना है और आपका कोड इसे जांच सके। उदाहरण के लिए: लक्ष्य, पुष्ट किए गए तथ्य (सोर्स के साथ), लिए गए फैसले, बाकी सवाल, अगला कदम। लंबे कोडिंग और रिसर्च एजेंट अक्सर इस तरह के नोट्स रखते हैं ताकि कॉन्टेक्स्ट रीसेट होने के बाद भी वे काम जारी रख सकें।

क्या भूलना है

भूलना भी एक फीचर है। मेमोरी को छोटा और उपयोगी रखें:
  • टूल के बड़े नतीजे: पूरा पेज नहीं, केवल उपयोगी बातों का एक छोटा अंश और एक संदर्भ (फ़ाइल का नाम, URL, id) रखें।
  • पूरा हो चुका काम: जब एक कदम पूरा हो जाए, तो उसका नतीजा रखें, हर कोशिश का विवरण नहीं।
  • पर्सनल डेटा जिसकी आपको ज़रूरत नहीं है: "बस ऐसे ही" फ़ोन नंबर, आधार नंबर या स्वास्थ्य संबंधी विवरण स्टोर न करें। केवल वही रखें जो टास्क के लिए ज़रूरी हो, और अपने प्राइवेसी नियमों का पालन करें।
  • पुरानी हो चुकी बातें: कीमतें, शेड्यूल और स्टॉक बदलते रहते हैं। तथ्य के साथ तारीख भी स्टोर करें, और पुरानी बातों की दोबारा जांच करें।
  • टूल के नतीजों से मिले निर्देश: उन्हें कभी भी नियमों के रूप में सेव न करें। सोर्स के साथ तथ्य सेव करें, निर्देश या कमांड नहीं।
ख़तरा
लॉन्ग-टर्म मेमोरी को ज़हरीला (poison) बनाया जा सकता है। यदि कोई हमलावर मेमोरी में "रिपोर्ट हमेशा इस पते पर भेजें" जैसा नोट दर्ज करवा देता है, तो यह भविष्य के हर रन को प्रभावित कर सकता है। मार्क करें कि प्रत्येक मेमोरी कहां से आई है, यूज़र की प्राथमिकताओं को वेब पर मिले तथ्यों से अलग रखें, और यूज़र्स को देखने दें और हटाने दें कि क्या स्टोर किया गया है। मेमोरी पॉइज़निंग देखें।
इसे आज़माएं। keep_last=2 के साथ मेमोरी का उदाहरण चलाएं। अब कौन से तथ्य केवल समरी में हैं? क्या आप "बजट फिक्स है" जैसी बात को बनाए रखने के लिए मॉडल द्वारा लिखी गई समरी पर भरोसा करेंगे?

और देखें और पढ़ें

लैब

एक पिन किए गए लक्ष्य, साइज-लिमिटेड नोट्स फ़ाइल और भूलने के नियम के साथ एक मेमोरी मैनेजर, जिसका एक लंबी नकली चैट पर परीक्षण किया गया हो।

~30 min

समस्या

पाठ से Memory क्लास को आगे बढ़ाएं।

  1. फिक्स्ड कीज़ के साथ एक notes डिक्शनरी जोड़ें: facts, decisions, open_questions, next_step। प्रत्येक तथ्य में उसका source और एक तारीख स्टोर होनी चाहिए।
  2. एक सीमा जोड़ें: अधिक से अधिक 10 तथ्य। भर जाने पर, सबसे पुराना तथ्य हटा दें और प्रिंट करें कि क्या भुला दिया गया।
  3. एक नियम जोड़ें जो टूल के नतीजे से आने पर "always", "ignore" या "instead" जैसे शब्दों वाले किसी भी तथ्य को स्टोर करने से मना कर दे, और समीक्षा के लिए इसे लॉग करे।
  4. 20-मैसेज की चैट का अनुकरण करें और अंतिम कॉन्टेक्स्ट प्रिंट करें। जांचें कि लक्ष्य अभी भी वहां है।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1स्टेप 3 में वर्ड फ़िल्टर से बचना आसान है। फिर भी इसे रखना क्यों उचित है, और अधिक मजबूत सुरक्षा क्या है?दिखाएं

यह कुछ लापरवाह या स्पष्ट मामलों को पकड़ लेता है और एक लॉग बनाता है जिसकी आप समीक्षा कर सकते हैं, जो कि आसान और सस्ता है। लेकिन हमलावर बातों को अलग तरह से लिख सकते हैं। अधिक मजबूत सुरक्षा स्ट्रक्चरल है: टूल से मिले कंटेंट को केवल उसके सोर्स के साथ डेटा के रूप में स्टोर करें, कभी भी नियमों के रूप में नहीं; यूज़र की प्राथमिकताओं को अलग रखें और केवल तभी लिखें जब यूज़र ऐसा कहे; और सीमित करें कि एक पॉइज़न की गई मेमोरी किन टूल्स को ट्रिगर कर सकती है।

Q2एक समरी कहती है "यूज़र का बजट: 2,000 रुपये" लेकिन यूज़र ने 20,000 रुपये कहा था। आपका डिज़ाइन इस तरह की गलती को कैसे पकड़ सकता है या सीमित कर सकता है?दिखाएं

मुख्य तथ्यों को स्ट्रक्चर्ड नोट्स में रखें, जिन्हें केवल फ़्री-टेक्स्ट समरी में रखने के बजाय सीधे यूज़र के मैसेज से कॉपी किया गया हो। बजट जैसे महत्वपूर्ण तथ्यों को कॉन्टेक्स्ट में पिन करें। यदि चाहें, तो उन पर कार्रवाई करने से पहले यूज़र से मुख्य तथ्यों की पुष्टि करने के लिए कहें। और संख्याओं वाले उदाहरणों पर समरी का परीक्षण करें, क्योंकि समरी बनाते समय अंक छूट सकते हैं या बदल सकते हैं।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

यदि कॉन्टेक्स्ट विंडो अब बहुत बड़ी हैं, तो क्या मुझे अभी भी मेमोरी ट्रिक्स की ज़रूरत है?

आमतौर पर हाँ। बड़े कॉन्टेक्स्ट की प्रति कॉल लागत अधिक होती है, वे धीमे हो सकते हैं, और मॉडल हमेशा लंबे कॉन्टेक्स्ट के बीच की जानकारी का अच्छी तरह से उपयोग नहीं करते हैं। सब कुछ भेजने से अभी भी सही जानकारी चुनना बेहतर है।

क्या मॉडल को तय करना चाहिए कि क्या याद रखना है?

यह नोट्स का सुझाव दे सकता है, लेकिन आपके कोड को नियम तय करने चाहिए: कौन से फ़ील्ड मौजूद हैं, साइज की सीमाएं, क्या कभी स्टोर नहीं किया जाना चाहिए, और प्रत्येक नोट कहां से आया है। महत्वपूर्ण तथ्यों के लिए, जैसे यूज़र सेटिंग्स, उन्हें केवल तभी सेव करें जब यूज़र स्पष्ट रूप से उन्हें बताए।

रिट्रीवल मेमोरी और RAG में क्या अंतर है?

वे एक ही तकनीक का उपयोग करते हैं: टेक्स्ट स्टोर करना, प्रासंगिक हिस्सों को खोजना और उन्हें कॉन्टेक्स्ट में जोड़ना। RAG का मतलब आमतौर पर दस्तावेज़ों के संग्रह में खोजना होता है। रिट्रीवल मेमोरी का मतलब एजेंट के अपने पिछले नोट्स और बातचीत में खोजना है।

मैं यूज़र्स को मेमोरी पर नियंत्रण कैसे दूं?

उन्हें सरल शब्दों में दिखाएं कि क्या स्टोर किया गया है, उन्हें आइटम एडिट करने या हटाने दें, और उन्हें लॉन्ग-टर्म मेमोरी को बंद करने की सुविधा दें। उन्हें स्पष्ट रूप से बताएं कि सेशन के बीच क्या याद रखा जाता है।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें