मुख्य सामग्री पर जाएं

सिस्टम प्रॉम्प्ट

OpenClaw हर एजेंट रन के लिए एक कस्टम सिस्टम प्रॉम्प्ट बनाता है। यह prompt OpenClaw-स्वामित्व वाला है और pi-coding-agent के डिफ़ॉल्ट prompt का उपयोग नहीं करता। यह प्रॉम्प्ट OpenClaw द्वारा संयोजित किया जाता है और प्रत्येक एजेंट रन में इंजेक्ट किया जाता है।

संरचना

प्रॉम्प्ट जानबूझकर संक्षिप्त रखा गया है और निश्चित अनुभागों का उपयोग करता है:
  • Tooling: वर्तमान टूल सूची + संक्षिप्त विवरण।
  • Safety: शक्ति-लोलुप व्यवहार या निगरानी को दरकिनार करने से बचने के लिए संक्षिप्त गार्डरेल स्मरण।
  • Skills (उपलब्ध होने पर): मॉडल को मांग पर skill निर्देश लोड करने का तरीका बताता है।
  • OpenClaw Self-Update: config.apply और update.run कैसे चलाएँ।
  • Workspace: कार्यशील निर्देशिका (agents.defaults.workspace)।
  • Documentation: OpenClaw डॉक्स का स्थानीय पथ (repo या npm पैकेज) और उन्हें कब पढ़ना है।
  • Workspace Files (injected): यह संकेत करता है कि बूटस्ट्रैप फ़ाइलें नीचे शामिल हैं।
  • Sandbox (सक्षम होने पर): सैंडबॉक्स्ड रनटाइम, सैंडबॉक्स पथ, और क्या उन्नत exec उपलब्ध है।
  • Current Date & Time: उपयोगकर्ता-स्थानीय समय, टाइमज़ोन, और समय प्रारूप।
  • Reply Tags: समर्थित प्रदाताओं के लिए वैकल्पिक उत्तर टैग सिंटैक्स।
  • Heartbeats: हार्टबीट प्रॉम्प्ट और ack व्यवहार।
  • Runtime: होस्ट, OS, node, मॉडल, repo root (जब पता चले), thinking level (एक पंक्ति)।
  • Reasoning: वर्तमान दृश्यता स्तर + /reasoning टॉगल संकेत।
सिस्टम प्रॉम्प्ट में सेफ़्टी गार्डरेल्स परामर्शात्मक होते हैं। वे मॉडल के व्यवहार को मार्गदर्शन देते हैं, लेकिन पॉलिसी लागू नहीं करते। कठोर प्रवर्तन के लिए टूल पॉलिसी, exec अनुमोदन, सैंडबॉक्सिंग, और चैनल allowlists का उपयोग करें; ऑपरेटर डिज़ाइन के अनुसार इन्हें अक्षम कर सकते हैं।

प्रॉम्प्ट मोड्स

OpenClaw सब-एजेंट्स के लिए छोटे सिस्टम प्रॉम्प्ट रेंडर कर सकता है। रनटाइम हर रन के लिए एक promptMode सेट करता है (यूज़र-फेसिंग कॉन्फ़िग नहीं):
  • full (डिफ़ॉल्ट): ऊपर दिए गए सभी अनुभाग शामिल करता है।
  • minimal: सब-एजेंट्स के लिए उपयोग किया जाता है; Skills, Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Reply Tags, Messaging, Silent Replies, और Heartbeats को छोड़ देता है। Tooling, Safety, Workspace, Sandbox, Current Date & Time (जब ज्ञात हो), Runtime, और injected context उपलब्ध रहते हैं।
  • none: केवल बेस पहचान पंक्ति लौटाता है।
जब promptMode=minimal होता है, अतिरिक्त इंजेक्टेड प्रॉम्प्ट्स को Subagent Context के रूप में लेबल किया जाता है, Group Chat Context के बजाय।

Workspace बूटस्ट्रैप इंजेक्शन

बूटस्ट्रैप फ़ाइलों को ट्रिम करके Project Context के अंतर्गत जोड़ा जाता है ताकि मॉडल को पहचान और प्रोफ़ाइल संदर्भ बिना स्पष्ट रीड्स के दिखे:
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (केवल बिल्कुल नए वर्कस्पेस पर)
  • MEMORY.md और/या memory.md (जब workspace में मौजूद हों; इनमें से एक या दोनों इंजेक्ट किए जा सकते हैं)
इन सभी फ़ाइलों को हर टर्न पर context window में इंजेक्ट किया जाता है, जिसका अर्थ है कि ये tokens का उपभोग करती हैं। इन्हें संक्षिप्त रखें — विशेष रूप से MEMORY.md, जो समय के साथ बढ़ सकता है और अप्रत्याशित रूप से उच्च context उपयोग तथा अधिक बार compaction का कारण बन सकता है।
नोट: memory/*.md दैनिक फ़ाइलें स्वचालित रूप से इंजेक्ट नहीं की जाती हैं। इन तक memory_search और memory_get टूल्स के माध्यम से आवश्यकता अनुसार पहुँचा जाता है, इसलिए जब तक मॉडल इन्हें स्पष्ट रूप से नहीं पढ़ता, ये context window के विरुद्ध नहीं गिनी जातीं।
बड़ी फ़ाइलों को एक मार्कर के साथ ट्रंकेट किया जाता है। प्रति-फ़ाइल अधिकतम आकार agents.defaults.bootstrapMaxChars द्वारा नियंत्रित होता है (डिफ़ॉल्ट: 20000)। फ़ाइलों में कुल इंजेक्ट किया गया bootstrap सामग्री agents.defaults.bootstrapTotalMaxChars (डिफ़ॉल्ट: 24000) द्वारा सीमित है। गुम फ़ाइलें एक छोटा missing-file मार्कर जोड़ती हैं। Sub-agent सत्र केवल AGENTS.md और TOOLS.md को इंजेक्ट करते हैं (अन्य bootstrap फ़ाइलों को फ़िल्टर किया जाता है ताकि sub-agent का context छोटा रहे)। जब यूज़र का टाइमज़ोन ज्ञात हो, सिस्टम प्रॉम्प्ट में एक समर्पित Current Date & Time सेक्शन शामिल होता है। प्रॉम्प्ट को cache-stable रखने के लिए, अब इसमें केवल time zone शामिल होता है (कोई डायनेमिक घड़ी या टाइम फ़ॉर्मैट नहीं)। यह देखने के लिए कि हर injected फ़ाइल कितना योगदान देती है (raw बनाम injected, truncation, तथा टूल स्कीमा ओवरहेड), /context list या /context detail का उपयोग करें। Context देखें।

समय हैंडलिंग

जब यूज़र का टाइमज़ोन ज्ञात हो, सिस्टम प्रॉम्प्ट में एक समर्पित Current Date & Time सेक्शन शामिल होता है। प्रॉम्प्ट को cache-stable रखने के लिए, अब इसमें केवल time zone शामिल होता है (कोई डायनेमिक घड़ी या टाइम फ़ॉर्मैट नहीं)। पूर्ण व्यवहार विवरण के लिए देखें Date & Time इस प्रकार कॉन्फ़िगर करें:
  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)
पूर्ण व्यवहार विवरण के लिए देखें Date & Time

Skills

जब उपयुक्त स्किल्स मौजूद हों, OpenClaw एक संक्षिप्त available skills list (formatSkillsForPrompt) इंजेक्ट करता है, जिसमें हर स्किल का फ़ाइल पाथ शामिल होता है। प्रॉम्प्ट मॉडल को सूचीबद्ध स्थान (workspace, managed, या bundled) पर मौजूद SKILL.md लोड करने के लिए read का उपयोग करने का निर्देश देता है। यदि कोई स्किल योग्य नहीं है, तो Skills सेक्शन छोड़ दिया जाता है।
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
यह बेस प्रॉम्प्ट को छोटा रखता है जबकि लक्षित skill उपयोग को सक्षम बनाता है।

Documentation

जब उपलब्ध हो, सिस्टम प्रॉम्प्ट में एक Documentation सेक्शन शामिल होता है जो स्थानीय OpenClaw docs डायरेक्टरी की ओर संकेत करता है (repo workspace में docs/ या bundled npm पैकेज docs), और साथ ही सार्वजनिक मिरर, सोर्स repo, कम्युनिटी Discord, और स्किल्स खोज के लिए ClawHub (https://clawhub.com) का भी उल्लेख करता है। प्रॉम्प्ट मॉडल को OpenClaw के व्यवहार, कमांड्स, कॉन्फ़िगरेशन, या आर्किटेक्चर के लिए पहले स्थानीय docs देखने का निर्देश देता है, और जब संभव हो तो स्वयं openclaw status चलाने को कहता है (केवल तब यूज़र से पूछें जब एक्सेस न हो)।