यह कैसे काम करता है
- वार्तालाप के पुराने चरणों को एक संक्षिप्त प्रविष्टि में सारांशित किया जाता है।
- सारांश को सत्र ट्रांस्क्रिप्ट में सहेजा जाता है।
- हाल के संदेशों को ज्यों का त्यों रखा जाता है।
toolResult प्रविष्टियों के साथ जोड़े रखता है। यदि बिंदु किसी टूल ब्लॉक के भीतर पड़ता है, तो OpenClaw सीमा को खिसका देता है, ताकि जोड़ी साथ रहे और वर्तमान असारांशित अंतिम भाग सुरक्षित रहे।
वार्तालाप का पूरा इतिहास डिस्क पर रहता है। Compaction केवल यह बदलता है कि मॉडल अगले चरण में क्या देखता है।
नई कॉन्फ़िगरेशन में
agents.defaults.compaction.mode का डिफ़ॉल्ट मान "safeguard" होता है (अधिक सख्त सुरक्षा सीमाएँ, सारांश गुणवत्ता ऑडिट)। इससे बाहर निकलने के लिए mode: "default" को स्पष्ट रूप से सेट करें।स्वचालित Compaction
स्वचालित Compaction डिफ़ॉल्ट रूप से चालू होता है। यह तब चलता है, जब सत्र संदर्भ सीमा के पास पहुँचता है या मॉडल संदर्भ-ओवरफ़्लो त्रुटि लौटाता है (इस स्थिति में OpenClaw Compaction करके दोबारा प्रयास करता है)। आपको यह दिखाई देगा:- सामान्य Gateway लॉग में
embedded run auto-compaction start/complete। - विस्तृत मोड में
🧹 Auto-compaction complete। 🧹 Compactions: <count>दिखाता हुआ/status।
Compaction से पहले, OpenClaw महत्वपूर्ण नोट्स को मेमोरी फ़ाइलों में सहेजने के लिए एजेंट को स्वतः याद दिलाता है। इससे संदर्भ की हानि रुकती है।
OpenClaw द्वारा पहचाने जाने वाले ओवरफ़्लो त्रुटि पैटर्न
OpenClaw द्वारा पहचाने जाने वाले ओवरफ़्लो त्रुटि पैटर्न
OpenClaw दर्जनों प्रदाता-विशिष्ट ओवरफ़्लो त्रुटि स्ट्रिंग से मिलान करता है (Anthropic, OpenAI, Bedrock, Gemini, Ollama, OpenRouter और अन्य)। सामान्य उदाहरण:
request_too_largecontext length exceededinput exceeds the maximum number of tokensinput token count exceeds the maximum number of input tokens(Bedrock)input is too long for the modelollama error: context length exceeded
मैन्युअल Compaction
Compaction को बाध्य करने के लिए किसी भी चैट में/compact टाइप करें। सारांश का मार्गदर्शन करने के लिए निर्देश जोड़ें:
agents.defaults.compaction.keepRecentTokens सेट हो (डिफ़ॉल्ट: 20,000), तो मैन्युअल Compaction उस कट-पॉइंट का पालन करता है और पुनर्निर्मित संदर्भ में हाल के अंतिम भाग को बनाए रखता है। स्पष्ट रखरखाव बजट के बिना, मैन्युअल Compaction एक कठोर चेकपॉइंट की तरह व्यवहार करता है और केवल नए सारांश से आगे बढ़ता है।
कॉन्फ़िगरेशन
अपनेopenclaw.json में agents.defaults.compaction के अंतर्गत Compaction कॉन्फ़िगर करें। सबसे सामान्य विकल्प नीचे सूचीबद्ध हैं; पूरे संदर्भ के लिए सत्र प्रबंधन का विस्तृत विवरण देखें।
किसी भिन्न मॉडल का उपयोग
डिफ़ॉल्ट रूप से, Compaction एजेंट के प्राथमिक मॉडल का उपयोग करता है। सारांशीकरण को किसी अधिक सक्षम या विशिष्ट मॉडल को सौंपने के लिएagents.defaults.compaction.model सेट करें। ओवरराइड एक provider/model-id स्ट्रिंग या agents.defaults.models के अंतर्गत कॉन्फ़िगर किया गया सामान्य उपनाम स्वीकार करता है:
agents.defaults.compaction.model ओवरराइड सटीक रहता है और सत्र की फ़ॉलबैक शृंखला प्राप्त नहीं करता।
पहचानकर्ता संरक्षण
Compaction सारांशीकरण डिफ़ॉल्ट रूप से अपारदर्शी पहचानकर्ताओं को सुरक्षित रखता है (identifierPolicy: "strict")। अक्षम करने के लिए identifierPolicy: "off" से ओवरराइड करें। कस्टम मार्गदर्शन Compaction प्रदाता के summarize() कार्यान्वयन में होना चाहिए।
सक्रिय ट्रांस्क्रिप्ट बाइट सुरक्षा सीमा
जबagents.defaults.compaction.maxActiveTranscriptBytes सेट हो, तो ट्रांस्क्रिप्ट इतिहास के
उस आकार तक पहुँचने पर OpenClaw रन से पहले सामान्य स्थानीय Compaction
ट्रिगर करता है। यह लंबे समय तक चलने वाले उन सत्रों के लिए उपयोगी है, जहाँ प्रदाता-पक्षीय संदर्भ
प्रबंधन मॉडल संदर्भ को स्वस्थ बनाए रख सकता है, जबकि स्थायी ट्रांस्क्रिप्ट इतिहास
बढ़ता रहता है। यह अपरिष्कृत बाइट को विभाजित नहीं करता; यह सामान्य Compaction
पाइपलाइन से एक अर्थपूर्ण सारांश बनाने के लिए कहता है।
उत्तराधिकारी ट्रांस्क्रिप्ट
जबagents.defaults.compaction.truncateAfterCompaction सक्षम हो, तो OpenClaw मौजूदा ट्रांस्क्रिप्ट को उसी स्थान पर दोबारा नहीं लिखता। यह Compaction सारांश, सुरक्षित स्थिति और असारांशित अंतिम भाग से एक नया सक्रिय उत्तराधिकारी ट्रांस्क्रिप्ट बनाता है, फिर वह चेकपॉइंट मेटाडेटा दर्ज करता है जो शाखा/पुनर्स्थापना प्रवाहों को उस संक्षिप्त उत्तराधिकारी की ओर इंगित करता है।
उत्तराधिकारी ट्रांस्क्रिप्ट कम समय की पुनर्प्रयास विंडो के भीतर आने वाले
लंबे उपयोगकर्ता चरणों की हूबहू डुप्लिकेट प्रतियाँ भी हटा देते हैं, ताकि चैनल पुनर्प्रयासों की बाढ़
Compaction के बाद अगले सक्रिय ट्रांस्क्रिप्ट में न पहुँचे।
OpenClaw अब नए Compaction के लिए अलग .checkpoint.*.jsonl प्रतियाँ नहीं
लिखता। मौजूदा पुराने चेकपॉइंट फ़ाइलों को संदर्भित रहने तक उपयोग किया जा सकता है
और सामान्य सत्र सफ़ाई द्वारा हटाया जाता है।
Compaction सूचनाएँ
डिफ़ॉल्ट रूप से, Compaction बिना सूचना के चलता है। Compaction शुरू और पूरा होने पर संक्षिप्त स्थिति संदेश दिखाने तथा Compaction-पूर्व मेमोरी फ़्लश समाप्त हो जाने पर, लेकिन उत्तर फिर भी जारी रहने की स्थिति में, सीमित क्षमता की सूचना प्रदर्शित करने के लिएnotifyUser सेट करें:
मेमोरी फ़्लश
Compaction से पहले, OpenClaw स्थायी नोट्स को डिस्क पर संग्रहीत करने के लिए एक मौन मेमोरी फ़्लश चरण चला सकता है। जब इस रखरखाव चरण को सक्रिय वार्तालाप मॉडल के बजाय स्थानीय मॉडल का उपयोग करना चाहिए, तबagents.defaults.compaction.memoryFlush.model सेट करें:
प्लग करने योग्य Compaction प्रदाता
Plugins, Plugin API परregisterCompactionProvider() के माध्यम से कस्टम Compaction प्रदाता पंजीकृत कर सकते हैं। जब कोई प्रदाता पंजीकृत और कॉन्फ़िगर किया जाता है, तो OpenClaw अंतर्निहित LLM पाइपलाइन के बजाय उसे सारांशीकरण सौंपता है।
पंजीकृत प्रदाता का उपयोग करने के लिए, अपनी कॉन्फ़िगरेशन में उसकी ID सेट करें:
provider सेट करने पर mode: "safeguard" स्वतः बाध्य हो जाता है। प्रदाताओं को अंतर्निहित पथ के समान Compaction निर्देश और पहचानकर्ता-संरक्षण नीति मिलती है, और प्रदाता आउटपुट के बाद भी OpenClaw हाल के चरण और विभाजित चरण के प्रत्यय संदर्भ को सुरक्षित रखता है।
यदि प्रदाता विफल होता है या खाली परिणाम लौटाता है, तो OpenClaw अंतर्निहित LLM सारांशीकरण पर फ़ॉलबैक करता है।
Compaction बनाम प्रूनिंग
सत्र प्रूनिंग एक हल्का पूरक है, जो सारांश बनाए बिना टूल आउटपुट को छोटा करता है।
समस्या निवारण
Compaction बहुत बार हो रहा है? मॉडल की संदर्भ विंडो छोटी हो सकती है या टूल आउटपुट बड़े हो सकते हैं। सत्र प्रूनिंग सक्षम करने का प्रयास करें। Compaction के बाद संदर्भ पुराना लग रहा है? सारांश का मार्गदर्शन करने के लिए/compact Focus on <topic> का उपयोग करें या मेमोरी फ़्लश सक्षम करें, ताकि नोट्स सुरक्षित रहें।
नई शुरुआत चाहिए? /new Compaction किए बिना नया सत्र शुरू करता है।
उन्नत कॉन्फ़िगरेशन (आरक्षित टोकन, पहचानकर्ता संरक्षण, कस्टम संदर्भ इंजन, OpenAI सर्वर-पक्षीय Compaction) के लिए सत्र प्रबंधन का विस्तृत विवरण देखें।
संबंधित
- सत्र: सत्र प्रबंधन और जीवनचक्र।
- सत्र प्रूनिंग: टूल परिणामों को छोटा करना।
- संदर्भ: एजेंट चरणों के लिए संदर्भ कैसे बनाया जाता है।
- हुक: Compaction जीवनचक्र हुक (
before_compaction,after_compaction)।