स्मृति अवरोध और नींद का समय गणना
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 14 · 07 (MemGPT)
Time: ~75 minutes
सीखने के लक्ष्य
- लेटा द्वारा उपयोग किए जाने वाले तीन मेमोरी टियर (कोर, रिकॉल, संग्रह) और प्रत्येक की भूमिका का नाम दें।
- मेमोरी-ब्लॉक पैटर्न की व्याख्या करेंः मानव ब्लॉक, पर्सन ब्लॉक और उपयोगकर्ता द्वारा परिभाषित ब्लॉक प्रथम श्रेणी के टाइप किए गए वस्तुओं के रूप में।
- नींद के समय की गणना क्या है, यह महत्वपूर्ण पथ से क्यों दूर है, और यह प्राथमिक एजेंट से मजबूत मॉडल क्यों चला सकता है, इसका वर्णन करें।
- एक स्क्रिप्टेड दो-एजेंट लूप लागू करें जहां एक प्राथमिक एजेंट प्रतिक्रियाएं प्रदान करता है और एक नींद समय एजेंट बारी के बीच ब्लॉक को समेकित करता है।
समस्या
MemGPT (Lection 07) ने वर्चुअल मेमोरी नियंत्रण प्रवाह को हल किया। तीन उत्पादन समस्याएं सामने आईंः
- Latency.प्रत्येक मेमोरी ऑपरेशन महत्वपूर्ण पथ पर बैठता है. यदि एजेंट को उपयोगकर्ता के इंतजार के दौरान कटौती, सारांश या मेल करना है, तो पूंछ विलंब विस्फोट हो जाता है।
- Memory rot.लेख जमा होते हैं, विरोधाभासी तथ्य बने रहते हैं, पुनर्प्राप्ति पुरानी सामग्री में डूब जाती है।
- Structure loss.एक फ्लैट संग्रह स्टोर "मानव ब्लॉक हमेशा प्रॉम्प्ट में है; पर्सनल ब्लॉक हमेशा प्रॉम्प्ट में है; टास्क ब्लॉक प्रति सत्र स्वैप करता है" व्यक्त नहीं कर सकता है।
Letta (letta.com) प्लेटफॉर्म का नाम है मूल MemGPT परियोजना 2024 में अपनाई गई है पेपर का पैटर्न MemGPT नाम रखता है और 2026 Letta V1 को फिर से लिखना एक बाद का, अलग कदम है। मेमोरी ब्लॉक संरचना को स्पष्ट बनाते हैं; नींद-समय गणना समेकन को महत्वपूर्ण पथ से हटा देती है।
अवधारणा
तीन स्तर
| Tier | Scope | Where it lives | Written by |
|---|---|---|---|
| Core | Always visible | Inside the main prompt | Agent tool call + sleep-time rewrites |
| Recall | Conversation history | Retrievable | Automatic turn logging |
| Archival | Arbitrary facts | Vector + KV + graph | Agent tool call + sleep-time ingest |
कोर MemGPT कोर है. याद रखें अपने निष्कासित पूंछ के साथ बातचीत बफर है. अभिलेखागार बाहरी स्टोर है. विभाजन MemGPT के दो-स्तरीय अधिभार को साफ करता है.
स्मृति ब्लॉक
एक ब्लॉक मूल स्तर का एक टाइप, निरंतर, संपादन योग्य खंड है। मूल MemGPT पेपर ने दो परिभाषित किएः
- Human block उपयोगकर्ता के बारे में तथ्य (नाम, भूमिका, वरीयताएं, लक्ष्य) ।
- Persona block एजेंट की आत्म-धारणा (मान्यता, स्वर, प्रतिबंध) ।
Letta मनमाने ढंग से उपयोगकर्ता द्वारा परिभाषित ब्लॉक के लिए सामान्यीकरणः एक Taskवर्तमान लक्ष्य के लिए ब्लॉक, एक Projectकोडबेस तथ्यों के लिए ब्लॉक, एक Safetyकठिन प्रतिबंधों के लिए ब्लॉक। प्रत्येक ब्लॉक में एक हैid,label,value,limit(वर्ण कैप), description(तो मॉडल जानता है जब इसे संपादित करने के लिए).
ब्लॉक उपकरण सतह के माध्यम से संपादित किया जा सकता हैः
block_append(label, text)block_replace(label, old, new)block_read(label)block_summarize(label)एक ब्लॉक को संपीड़ित करें जो इसकी सीमा के निकट है।
नींद के समय की गणना
2025 लेटा जोड़ः पृष्ठभूमि में एक दूसरा एजेंट चलाएं, महत्वपूर्ण पथ से बाहर। नींद समय एजेंट बातचीत ट्रांसक्रिप्ट और कोडबेस संदर्भ को संसाधित करते हैं, लिखते हैं learned_contextसाझा ब्लॉक में, और अभिलेखागार रिकॉर्ड को समेकित या अमान्य करें।
गिरने वाली गुणः
- No latency cost.प्राथमिक प्रतिक्रियाओं मेमोरी ऑपरेशन के लिए इंतजार नहीं करते.
- Stronger model allowed.नींद-समय एजेंट अधिक महंगा, धीमा मॉडल हो सकता है क्योंकि यह विलंबता से प्रतिबंधित नहीं है।
- Natural consolidation window.डिडप, सारांशित, अप्रत्याशित विरोधाभासी तथ्यों जब उपयोगकर्ता इंतजार नहीं कर रहा है।
यह आकार मनुष्य के काम करने के तरीके से मेल खाता हैः आप कार्य करते हैं, आप उस पर सोते हैं, दीर्घकालिक स्मृति रातोंरात बस जाती है।
मूल तर्क
लेटा V1 (letta_v1_agent, 2026) को निरर्थक बनाता है send_message/ दिल की धड़कन और इनलाइन Thought:उत्तर एपीआई (OpenAI) और विस्तारित सोच (एंट्रोपिक) के साथ संदेश एपीआई एक अलग चैनल पर तर्क जारी करते हैं, जो बारी-बारी से गुजरते हैं (उत्पादन में प्रदाताओं के बीच एन्क्रिप्टेड) । नियंत्रण लूप अभी भी ReAct है। विचार ट्रैक संरचनात्मक है, प्रॉम्प्ट-आकार का नहीं।
जहां यह पैटर्न गलत हो जाता है
- Block bloat.अनंत
block_appendएक ब्लॉक सारांशक तार लिखते समय जो कैप के ऊपर धक्का है। - Silent drift.नींद के समय एजेंट एक ब्लॉक को फिर से लिखता है और प्राथमिक एजेंट कभी नहीं नोटिस करता है। संस्करण ब्लॉक और सतह अंतर में निशान।
- Poisoned consolidation.नींद के समय के एजेंट हमलावरों द्वारा पहुंच योग्य सामग्री को कोर में संसाधित करते हैं। पाठ 27 नींद के समय की सतह पर भी लागू होता है।
इसे बनाओ
code/main.pyकार्य करता हैः
Blockआईडी, लेबल, मूल्य, सीमा, विवरण।BlockStoreCRUD +near_limit(label)सहायक.- दो स्क्रिप्ट एजेंट
PrimaryAgentएक बारी पर काम करता है,SleepTimeAgentमोड़ के बीच समेकित होता है। - एक निशान जो ब्लॉक के साथ तीन-चक्र बातचीत को दर्शाता है लिखता है, प्लस एक नींद समय पास जो एक ब्लॉक का सारांश देता है और एक पुराने तथ्य को अमान्य करता है।
इसे चलाओः
python3 code/main.pyप्रतिलेख में विभाजन दिखाया गया हैः प्राथमिक मोड़ तेज होते हैं और कच्चे लेख उत्पन्न करते हैं; नींद का पास कॉम्पैक्ट होता है और साफ होता है।
इसका प्रयोग करें
- Letta(letta.com) के लिए संदर्भ कार्यान्वयन. स्वयं होस्ट या प्रबंधित क्लाउड।
- Claude Agent SDK skillsब्लॉक के रूप में ज्ञान एक कौशल निर्देशों का एक नामित, संस्करणित, पुनः प्राप्त करने योग्य ब्लॉक है जो एजेंट मांग पर लोड करता है।
- Custom buildsLetta एपीआई अनुबंध का उपयोग करें ताकि आप बाद में माइग्रेट कर सकते हैं।
इसे भेजें
outputs/skill-memory-blocks.mdसुरक्षा नियमों और उद्धरण तार सहित किसी भी रनटाइम के लिए नींद समय हुक के साथ लेटा के आकार की ब्लॉक प्रणाली उत्पन्न करता है।
व्यायाम
- एक जोड़ें
block_summarizeउपकरण जो ब्लॉक मूल्य को मॉडल-जनित सारांश के साथ बदल देता है जबnear_limitसही लौटता है. कौन सा ट्रिगर सीमा संक्षेप कॉल और ब्लॉक ओवरफ्लो दोनों को कम करता है? - अभिलेखागार पर नींद समय कटौती लागू करेंः दो रिकॉर्ड जिनके पाठ में 90% से अधिक टोकन ओवरलैप है एक में पतन। इसे केवल नींद पास में करें, कभी भी महत्वपूर्ण पथ पर नहीं।
- संस्करण ब्लॉक. प्रत्येक लिख रिकॉर्ड पर पुराने मूल्य और एक अंतर.
block_history(label)तो ऑपरेटरों को डिबग कर सकते हैं "क्यों एजेंट भूल गया X. " - नींद के समय के एजेंटों को अविश्वसनीय लेखकों के रूप में व्यवहार करें। जब वे पर्सन या सुरक्षा ब्लॉक को छूते हैं, तो प्रतिबद्धता करने से पहले दूसरे एजेंट की समीक्षा की आवश्यकता होती है।
- Letta API का उपयोग करने के लिए उदाहरण पोर्ट करें (
letta_v1_agent) ब्लॉक योजना में क्या बदलाव होते हैं, और मूल तर्क निशान के आकार को कैसे बदलता है?
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Memory block | "Editable prompt section" | Typed, persistent, LLM-editable segment of core memory |
| Human block | "User memory" | Facts about the user, pinned in core |
| Persona block | "Agent identity" | Self-concept, tone, constraints, pinned in core |
| Sleep-time compute | "Async memory work" | Second agent doing consolidation off the critical path |
| Core / Recall / Archival | "Tiers" | Three-layer memory split: always-visible / conversation / external |
| Block limit | "Cap" | Character limit per block; forces summarization |
| Native reasoning | "Thinking channel" | Provider-level reasoning output, not prompt-level Thought: |
| Learned context | "Sleep output" | Facts the sleep-time agent writes into shared blocks |
आगे पढ़ना
- Letta, Memory Blocks blog ब्लॉक पैटर्न
- Letta, Sleep-time Compute blog समक्रमण समेकन
- Letta, Rearchitecting the Agent Loop मूल तर्क को फिर से लिखें
- Packer et al., MemGPT (arXiv:2310.08560) उत्पत्ति
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.