Fundamentals
संदर्भ
"कॉन्टेक्स्ट" वह सब कुछ है जो OpenClaw किसी रन के लिए मॉडल को भेजता है। यह मॉडल की कॉन्टेक्स्ट विंडो (टोकन सीमा) से सीमित होता है।
शुरुआती मानसिक मॉडल:
- सिस्टम प्रॉम्प्ट (OpenClaw-निर्मित): नियम, टूल, Skills सूची, समय/रनटाइम और इंजेक्ट की गई वर्कस्पेस फ़ाइलें।
- वार्तालाप इतिहास: इस सेशन के लिए आपके संदेश + असिस्टेंट के संदेश।
- टूल कॉल/परिणाम + अटैचमेंट: कमांड आउटपुट, पढ़ी गई फ़ाइलें, चित्र/ऑडियो आदि।
कॉन्टेक्स्ट और "मेमोरी" एक ही चीज़ नहीं हैं: मेमोरी को डिस्क पर संग्रहीत करके बाद में दोबारा लोड किया जा सकता है; कॉन्टेक्स्ट वह है जो मॉडल की वर्तमान विंडो के भीतर है।
त्वरित शुरुआत (कॉन्टेक्स्ट का निरीक्षण करें)
/status→ "मेरी विंडो कितनी भर चुकी है?" का त्वरित दृश्य + सेशन सेटिंग।/context list→ क्या इंजेक्ट किया गया है + अनुमानित आकार (प्रति फ़ाइल + कुल)।/context detail→ अधिक विस्तृत विभाजन: प्रति फ़ाइल, प्रति-टूल स्कीमा आकार, प्रति-Skill प्रविष्टि आकार, सिस्टम प्रॉम्प्ट आकार और कॉम्पैक्ट किए जा सकने वाले ट्रांसक्रिप्ट संदेशों की संख्या।/context map→ वर्तमान सेशन में ट्रैक किए गए कॉन्टेक्स्ट योगदानकर्ताओं की WinDirStat-शैली की ट्रीमैप छवि।/usage tokens→ सामान्य उत्तरों में प्रति-उत्तर उपयोग फ़ुटर जोड़ें।/compact→ विंडो में स्थान खाली करने के लिए पुराने इतिहास को एक संक्षिप्त प्रविष्टि में सारांशित करें।
यह भी देखें: स्लैश कमांड, टोकन उपयोग और लागत, Compaction।
उदाहरण आउटपुट
मान मॉडल, प्रोवाइडर, टूल नीति और आपके वर्कस्पेस की सामग्री के अनुसार अलग-अलग होते हैं।
/context list
🧠 कॉन्टेक्स्ट विभाजनवर्कस्पेस: <workspaceDir>बूटस्ट्रैप अधिकतम/फ़ाइल: 12,000 वर्णसैंडबॉक्स: mode=non-main sandboxed=falseसिस्टम प्रॉम्प्ट (रन): 38,412 वर्ण (~9,603 टोकन) (प्रोजेक्ट कॉन्टेक्स्ट 23,901 वर्ण (~5,976 टोकन)) इंजेक्ट की गई वर्कस्पेस फ़ाइलें:- AGENTS.md: ठीक | मूल 1,742 वर्ण (~436 टोकन) | इंजेक्ट किए गए 1,742 वर्ण (~436 टोकन)- SOUL.md: ठीक | मूल 912 वर्ण (~228 टोकन) | इंजेक्ट किए गए 912 वर्ण (~228 टोकन)- TOOLS.md: काटी गई | मूल 54,210 वर्ण (~13,553 टोकन) | इंजेक्ट किए गए 20,962 वर्ण (~5,241 टोकन)- IDENTITY.md: ठीक | मूल 211 वर्ण (~53 टोकन) | इंजेक्ट किए गए 211 वर्ण (~53 टोकन)- USER.md: ठीक | मूल 388 वर्ण (~97 टोकन) | इंजेक्ट किए गए 388 वर्ण (~97 टोकन)- HEARTBEAT.md: अनुपलब्ध | मूल 0 | इंजेक्ट किए गए 0- BOOTSTRAP.md: ठीक | मूल 0 वर्ण (~0 टोकन) | इंजेक्ट किए गए 0 वर्ण (~0 टोकन) Skills सूची (सिस्टम प्रॉम्प्ट टेक्स्ट): 2,184 वर्ण (~546 टोकन) (12 Skills)टूल: read, edit, write, exec, process, browser, message, sessions_send, …टूल सूची (सिस्टम प्रॉम्प्ट टेक्स्ट): 1,032 वर्ण (~258 टोकन)टूल स्कीमा (JSON): 31,988 वर्ण (~7,997 टोकन) (कॉन्टेक्स्ट में गिने जाते हैं; टेक्स्ट के रूप में नहीं दिखाए जाते)टूल: (ऊपर के समान) सेशन टोकन (कैश किए गए): कुल 14,250 / ctx=32,000/context detail
🧠 कॉन्टेक्स्ट विभाजन (विस्तृत)…शीर्ष Skills (प्रॉम्प्ट प्रविष्टि का आकार):- frontend-design: 412 वर्ण (~103 टोकन)- oracle: 401 वर्ण (~101 टोकन)… (+10 और Skills) शीर्ष टूल (स्कीमा का आकार):- browser: 9,812 वर्ण (~2,453 टोकन)- exec: 6,240 वर्ण (~1,560 टोकन)… (+N और टूल)/context map
नवीनतम कैश किए गए रन रिपोर्ट और सेशन ट्रांसक्रिप्ट से जनरेट की गई छवि भेजता है। सेशन में किसी सामान्य संदेश द्वारा रन रिपोर्ट तैयार किए जाने से पहले, /context map अनुमान रेंडर करने के बजाय अनुपलब्धता का संदेश लौटाता है। आयत का क्षेत्रफल ट्रैक किए गए प्रॉम्प्ट वर्णों के समानुपाती होता है:
- वार्तालाप ट्रांसक्रिप्ट (उपयोगकर्ता संदेश, असिस्टेंट के उत्तर, टूल परिणाम, Compaction सारांश), साथ ही प्रति-टर्न रनटाइम कॉन्टेक्स्ट और हुक प्रॉम्प्ट में किए गए वे अतिरिक्त जोड़ जो केवल मॉडल तक पहुँचते हैं
- इंजेक्ट की गई वर्कस्पेस फ़ाइलें
- मूल सिस्टम प्रॉम्प्ट टेक्स्ट
- Skill प्रॉम्प्ट प्रविष्टियाँ
- टूल JSON स्कीमा
सेशन के साथ वार्तालाप समूह बढ़ता जाता है, इसलिए मैप हर टर्न में बदलता है; Compaction के बाद यह सिकुड़कर सारांश टाइल बन जाता है।
जब कोई रन रिपोर्ट कैश नहीं होती, तब भी /context list, /context detail और /context json माँग पर तैयार किए गए अनुमान का निरीक्षण कर सकते हैं।
कॉन्टेक्स्ट विंडो में क्या गिना जाता है
मॉडल को मिलने वाली हर चीज़ गिनी जाती है, जिसमें ये शामिल हैं:
- सिस्टम प्रॉम्प्ट (सभी अनुभाग)।
- वार्तालाप इतिहास।
- टूल कॉल + टूल परिणाम।
- अटैचमेंट/ट्रांसक्रिप्ट (चित्र/ऑडियो/फ़ाइलें)।
- Compaction सारांश और प्रूनिंग आर्टिफ़ैक्ट।
- प्रोवाइडर "रैपर" या छिपे हुए हेडर (दिखाई नहीं देते, फिर भी गिने जाते हैं)।
OpenClaw सिस्टम प्रॉम्प्ट कैसे बनाता है
सिस्टम प्रॉम्प्ट का स्वामी OpenClaw है और इसे हर रन में फिर से बनाया जाता है। इसमें ये शामिल हैं:
- टूल सूची + संक्षिप्त विवरण।
- Skills सूची (केवल मेटाडेटा; नीचे देखें)।
- वर्कस्पेस स्थान।
- समय (UTC + कॉन्फ़िगर किया गया हो तो रूपांतरित उपयोगकर्ता समय)।
- रनटाइम मेटाडेटा (होस्ट/OS/मॉडल/चिंतन)।
- प्रोजेक्ट कॉन्टेक्स्ट के अंतर्गत इंजेक्ट की गई वर्कस्पेस बूटस्ट्रैप फ़ाइलें।
पूरा विभाजन: सिस्टम प्रॉम्प्ट।
इंजेक्ट की गई वर्कस्पेस फ़ाइलें (प्रोजेक्ट कॉन्टेक्स्ट)
डिफ़ॉल्ट रूप से, OpenClaw वर्कस्पेस फ़ाइलों के एक निश्चित समूह को इंजेक्ट करता है (यदि वे मौजूद हों):
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(केवल पहले रन में)
बड़ी फ़ाइलों को agents.defaults.bootstrapMaxChars (डिफ़ॉल्ट 20000 वर्ण) का उपयोग करके प्रति फ़ाइल काटा जाता है। OpenClaw, agents.defaults.bootstrapTotalMaxChars (डिफ़ॉल्ट 60000 वर्ण) के साथ सभी फ़ाइलों के कुल बूटस्ट्रैप इंजेक्शन पर भी सीमा लागू करता है। /context मूल बनाम इंजेक्ट किए गए आकार और फ़ाइल काटी गई थी या नहीं, दिखाता है।
फ़ाइल काटे जाने पर, रनटाइम प्रोजेक्ट कॉन्टेक्स्ट के अंतर्गत प्रॉम्प्ट में चेतावनी ब्लॉक इंजेक्ट कर सकता है। इसे agents.defaults.bootstrapPromptTruncationWarning (off, once, always; डिफ़ॉल्ट always) से कॉन्फ़िगर करें।
Skills: इंजेक्ट किए गए बनाम माँग पर लोड किए गए
सिस्टम प्रॉम्प्ट में एक संक्षिप्त Skills सूची (नाम + विवरण + स्थान) शामिल होती है। इस सूची का वास्तविक ओवरहेड होता है।
Skill निर्देश डिफ़ॉल्ट रूप से शामिल नहीं होते। मॉडल से अपेक्षा की जाती है कि वह Skill के SKILL.md को केवल आवश्यकता होने पर read।
टूल: दो तरह की लागत होती है
टूल दो तरीकों से कॉन्टेक्स्ट को प्रभावित करते हैं:
- सिस्टम प्रॉम्प्ट में टूल सूची टेक्स्ट (जो आपको "Tooling" के रूप में दिखाई देता है)।
- टूल स्कीमा (JSON)। इन्हें मॉडल को भेजा जाता है ताकि वह टूल कॉल कर सके। सादे टेक्स्ट के रूप में दिखाई न देने के बावजूद इन्हें कॉन्टेक्स्ट में गिना जाता है।
/context detail सबसे बड़े टूल स्कीमा का विभाजन करता है, ताकि आप देख सकें कि सबसे अधिक भाग किसका है।
कमांड, डायरेक्टिव और "इनलाइन शॉर्टकट"
स्लैश कमांड Gateway द्वारा सँभाले जाते हैं। इनके कुछ अलग-अलग व्यवहार हैं:
- स्टैंडअलोन कमांड: केवल
/...वाला संदेश कमांड के रूप में चलता है। - डायरेक्टिव: मॉडल के संदेश देखने से पहले
/think,/fast,/verbose,/trace,/reasoning,/elevated,/exec,/model,/queueहटा दिए जाते हैं।- केवल-डायरेक्टिव संदेश सेशन सेटिंग को बनाए रखते हैं।
- सामान्य संदेश में इनलाइन डायरेक्टिव प्रति-संदेश संकेतों के रूप में काम करते हैं।
- इनलाइन शॉर्टकट (केवल अनुमति-सूची में शामिल प्रेषक): सामान्य संदेश के भीतर कुछ
/...टोकन तुरंत चल सकते हैं (उदाहरण: "नमस्ते /status"), और मॉडल के शेष टेक्स्ट देखने से पहले इन्हें हटा दिया जाता है।
विवरण: स्लैश कमांड।
सेशन, Compaction और प्रूनिंग (क्या बना रहता है)
संदेशों के बीच क्या बना रहता है, यह तंत्र पर निर्भर करता है:
- सामान्य इतिहास नीति द्वारा कॉम्पैक्ट/प्रून किए जाने तक सेशन ट्रांसक्रिप्ट में बना रहता है।
- Compaction ट्रांसक्रिप्ट में सारांश बनाए रखता है और हाल के संदेशों को अक्षुण्ण रखता है।
- प्रूनिंग कॉन्टेक्स्ट विंडो में स्थान खाली करने के लिए इन-मेमोरी प्रॉम्प्ट से पुराने टूल परिणाम हटा देती है, लेकिन सेशन ट्रांसक्रिप्ट को फिर से नहीं लिखती—पूरा इतिहास अब भी डिस्क पर निरीक्षण योग्य रहता है।
दस्तावेज़: सेशन, Compaction, सेशन प्रूनिंग।
डिफ़ॉल्ट रूप से, OpenClaw संयोजन और
Compaction के लिए बिल्ट-इन legacy कॉन्टेक्स्ट इंजन का उपयोग करता है। यदि आप kind: "context-engine" प्रदान करने वाला कोई Plugin इंस्टॉल करते हैं और
उसे plugins.slots.contextEngine से चुनते हैं, तो OpenClaw कॉन्टेक्स्ट
संयोजन, /compact और संबंधित सबएजेंट कॉन्टेक्स्ट लाइफ़साइकल हुक उस
इंजन को सौंप देता है। ownsCompaction: false लेगेसी
इंजन पर अपने-आप फ़ॉलबैक नहीं करता; सक्रिय इंजन को फिर भी compact() सही ढंग से लागू करना आवश्यक है। पूरे
प्लग करने योग्य इंटरफ़ेस, लाइफ़साइकल हुक और कॉन्फ़िगरेशन के लिए
कॉन्टेक्स्ट इंजन देखें।
/context वास्तव में क्या रिपोर्ट करता है
उपलब्ध होने पर /context नवीनतम रन-निर्मित सिस्टम प्रॉम्प्ट रिपोर्ट को प्राथमिकता देता है:
System prompt (run)= पिछले एम्बेडेड (टूल-सक्षम) रन से कैप्चर किया गया और सेशन स्टोर में बनाए रखा गया।System prompt (estimate)= कोई रन रिपोर्ट मौजूद न होने पर (या ऐसी CLI बैकएंड के माध्यम से चलते समय जो रिपोर्ट जनरेट नहीं करता) तत्काल गणना की गई।
दोनों ही स्थितियों में, यह आकार और शीर्ष योगदानकर्ताओं की रिपोर्ट देता है; यह पूरा सिस्टम प्रॉम्प्ट या टूल स्कीमा डंप नहीं करता। विस्तृत मोड में, यह सेशन ट्रांसक्रिप्ट की तुलना Compaction द्वारा उपयोग किए जाने वाले उसी वास्तविक-वार्तालाप संदेश प्रेडिकेट से भी करता है, ताकि अधिक प्रॉम्प्ट/कैश उपयोग को कॉम्पैक्ट किए जा सकने वाले वार्तालाप इतिहास से अलग करना आसान हो।
संबंधित
Plugins के माध्यम से कस्टम कॉन्टेक्स्ट इंजेक्शन।
लंबी बातचीत को मॉडल विंडो के भीतर रखने के लिए उनका सारांश बनाना।
सिस्टम प्रॉम्प्ट कैसे बनाया जाता है और यह प्रत्येक टर्न में क्या इंजेक्ट करता है।
आने वाले संदेश से अंतिम उत्तर तक का पूरा एजेंट निष्पादन चक्र।