buildAgentSystemPromptस्पष्ट इनपुट से प्रॉम्प्ट रेंडर करता है। यह शुद्ध रेंडरर बना रहता है और सीधे ग्लोबल कॉन्फ़िग नहीं पढ़ता।resolveAgentSystemPromptConfigकिसी विशिष्ट एजेंट के लिए कॉन्फ़िग-समर्थित प्रॉम्प्ट नियंत्रणों (मालिक का प्रदर्शन, TTS संकेत, मॉडल उपनाम, मेमोरी उद्धरण मोड, उप-एजेंट प्रत्यायोजन मोड) को हल करता है।- रनटाइम अडैप्टर (एम्बेडेड, CLI, कमांड/एक्सपोर्ट पूर्वावलोकन, Compaction) लाइव तथ्य (टूल, सैंडबॉक्स स्थिति, चैनल क्षमताएँ, कॉन्टेक्स्ट फ़ाइलें, प्रोवाइडर प्रॉम्प्ट योगदान) एकत्र करते हैं और कॉन्फ़िगर किए गए प्रॉम्प्ट फ़साड को कॉल करते हैं।
- तीन नामित मुख्य अनुभागों में से एक को बदलना:
interaction_style,tool_call_style,execution_bias - प्रॉम्प्ट कैश सीमा के ऊपर एक स्थिर उपसर्ग सम्मिलित करना
- प्रॉम्प्ट कैश सीमा के नीचे एक गतिशील प्रत्यय सम्मिलित करना
before_prompt_build हुक को संगतता या वास्तव में ग्लोबल प्रॉम्प्ट परिवर्तनों के लिए सुरक्षित रखें।
बंडल किया गया OpenAI/Codex GPT-5-फ़ैमिली ओवरले (resolveGpt5SystemPromptContribution) इस तंत्र का उपयोग करता है: एक stablePrefix व्यवहार अनुबंध (निष्पादन नीति, टूल अनुशासन, आउटपुट अनुबंध, पूर्णता अनुबंध) और अधिक मैत्रीपूर्ण लहजे के लिए एक वैकल्पिक interaction_style ओवरराइड। यह OpenAI या Codex Plugin के माध्यम से रूट किए गए किसी भी gpt-5* मॉडल आईडी पर लागू होता है, जिसे agents.defaults.promptOverlays.gpt5.personality ("friendly"/"on" या "off") नियंत्रित करता है।
संरचना
प्रॉम्प्ट संक्षिप्त है और इसके अनुभाग निश्चित हैं:- टूलिंग: संरचित टूल को सत्य का स्रोत मानने का अनुस्मारक और रनटाइम टूल-उपयोग मार्गदर्शन। जब प्रयोगात्मक
update_planटूल सक्षम होता है (tools.experimental.planTool), तो उसका अपना टूल विवरण यह जोड़ता है: इसका उपयोग केवल गैर-मामूली बहु-चरणीय कार्य के लिए करें, अधिकतम एक चरण कोin_progressरखें, और सरल एक-चरणीय कार्य के लिए इसे छोड़ दें। - निष्पादन प्राथमिकता: कार्रवाई योग्य अनुरोधों पर उसी टर्न में काम करें, पूरा होने या अवरुद्ध होने तक जारी रखें, कमजोर टूल परिणामों से उबरें, परिवर्तनशील स्थिति को लाइव जाँचें, और अंतिम रूप देने से पहले सत्यापित करें।
- सुरक्षा: शक्ति अर्जित करने वाले व्यवहार या निगरानी को दरकिनार करने के विरुद्ध संक्षिप्त सुरक्षात्मक अनुस्मारक।
- Skills (उपलब्ध होने पर): मॉडल को बताता है कि आवश्यकता पड़ने पर स्किल निर्देश कैसे लोड करने हैं।
- OpenClaw नियंत्रण: कॉन्फ़िग/रीस्टार्ट कार्य के लिए
gatewayटूल को प्राथमिकता दें; CLI कमांड गढ़ें नहीं। - OpenClaw स्व-अपडेट:
config.schema.lookupसे कॉन्फ़िग का सुरक्षित निरीक्षण करें,config.patchसे पैच करें,config.applyसे पूरा कॉन्फ़िग बदलें, और केवल स्पष्ट उपयोगकर्ता अनुरोध परupdate.runचलाएँ। एजेंट-सामना करने वालाgatewayटूलtools.exec.modeको दोबारा लिखने से इनकार करता है। - वर्कस्पेस: कार्यशील डायरेक्टरी (
agents.defaults.workspace)। - दस्तावेज़ीकरण: स्थानीय दस्तावेज़/स्रोत पथ और उन्हें कब पढ़ना है।
- वर्कस्पेस फ़ाइलें (सम्मिलित): बताता है कि बूटस्ट्रैप फ़ाइलें नीचे शामिल हैं।
- सैंडबॉक्स (सक्षम होने पर): सैंडबॉक्स किया गया रनटाइम, सैंडबॉक्स पथ, उन्नत-निष्पादन की उपलब्धता।
- वर्तमान दिनांक और समय: केवल समय क्षेत्र (कैश-स्थिर; लाइव घड़ी
session_statusसे आती है)। - सहायक आउटपुट निर्देश: संक्षिप्त अटैचमेंट, वॉइस-नोट और रिप्लाई-टैग सिंटैक्स।
- Heartbeat: डिफ़ॉल्ट एजेंट के लिए Heartbeat सक्षम होने पर Heartbeat प्रॉम्प्ट और अभिस्वीकृति व्यवहार।
- रनटाइम: होस्ट, OS, Node, मॉडल, रिपॉज़िटरी रूट (पता चलने पर), विचार स्तर (एक पंक्ति)।
- तर्क: वर्तमान दृश्यता स्तर और
/reasoningटॉगल संकेत।
- भविष्य के अनुवर्ती कार्य (
check back later, रिमाइंडर, आवर्ती कार्य) के लिएexecस्लीप लूप,yieldMsविलंब युक्तियों या बार-बारprocessपोलिंग के बजाय Cron का उपयोग करें - केवल उन कमांड के लिए
exec/processका उपयोग करें जो अभी शुरू होकर बैकग्राउंड में जारी रहते हैं - स्वचालित पूर्णता वेक सक्षम होने पर कमांड को एक बार शुरू करें और पुश-आधारित वेक पथ पर निर्भर रहें
- चल रहे कमांड के लॉग, स्थिति, इनपुट या हस्तक्षेप के लिए
processका उपयोग करें - बड़े कार्यों के लिए
sessions_spawnको प्राथमिकता दें; उप-एजेंट की पूर्णता पुश-आधारित होती है और अनुरोधकर्ता को वापस स्वतः घोषित की जाती है - केवल पूर्णता की प्रतीक्षा करने के लिए
subagents list/sessions_listको लूप में पोल न करें
agents.defaults.subagents.delegationMode (डिफ़ॉल्ट "suggest") इसे सुदृढ़ कर सकता है। "prefer" एक समर्पित उप-एजेंट प्रत्यायोजन अनुभाग जोड़ता है, जो मुख्य एजेंट को उत्तरदायी समन्वयक की तरह काम करने और सीधे उत्तर से अधिक जटिल किसी भी कार्य को sessions_spawn के माध्यम से भेजने को कहता है। यह केवल प्रॉम्प्ट तक सीमित है; sessions_spawn उपलब्ध है या नहीं, इसे अब भी टूल नीति नियंत्रित करती है।
सिस्टम प्रॉम्प्ट में सुरक्षा सीमाएँ परामर्शात्मक हैं, प्रवर्तन नहीं। कठोर प्रवर्तन के लिए टूल नीति, निष्पादन अनुमोदन, सैंडबॉक्सिंग और चैनल अनुमति-सूचियों का उपयोग करें; डिज़ाइन के अनुसार ऑपरेटर प्रॉम्प्ट सुरक्षा सीमाएँ अक्षम कर सकते हैं।
मूल अनुमोदन कार्ड/बटन वाले चैनलों पर प्रॉम्प्ट एजेंट को पहले उस UI पर निर्भर रहने और मैन्युअल /approve कमांड केवल तब शामिल करने को कहता है, जब टूल परिणाम बताता है कि चैट अनुमोदन उपलब्ध नहीं हैं या मैन्युअल अनुमोदन ही एकमात्र मार्ग है।
प्रॉम्प्ट मोड
OpenClaw उप-एजेंटों के लिए छोटे सिस्टम प्रॉम्प्ट रेंडर करता है। रनटाइम प्रत्येक रन के लिए एकpromptMode सेट करता है (यह उपयोगकर्ता-सामना करने वाला कॉन्फ़िग नहीं है):
full(डिफ़ॉल्ट): ऊपर दिए गए सभी अनुभाग।minimal: उप-एजेंटों के लिए उपयोग किया जाता है; मेमोरी प्रॉम्प्ट अनुभाग (मेमोरी स्मरण के रूप में बंडल), OpenClaw स्व-अपडेट, मॉडल उपनाम, उपयोगकर्ता पहचान, सहायक आउटपुट निर्देश, संदेश-प्रेषण, मौन उत्तर और Heartbeat को छोड़ देता है। टूलिंग, सुरक्षा, Skills (दिए जाने पर), वर्कस्पेस, सैंडबॉक्स, वर्तमान दिनांक और समय (ज्ञात होने पर), रनटाइम और सम्मिलित कॉन्टेक्स्ट उपलब्ध रहते हैं।none: केवल मूल पहचान पंक्ति लौटाता है।
promptMode=minimal के अंतर्गत अतिरिक्त सम्मिलित प्रॉम्प्ट को समूह चैट कॉन्टेक्स्ट के बजाय उप-एजेंट कॉन्टेक्स्ट लेबल दिया जाता है।
चैनल स्वतः-उत्तर रन के लिए, जब प्रत्यक्ष, समूह या केवल-संदेश-टूल कॉन्टेक्स्ट पहले से दृश्य-उत्तर अनुबंध का स्वामी हो, तो OpenClaw सामान्य मौन उत्तर अनुभाग को छोड़ देता है। केवल पुराना स्वचालित समूह/चैनल मोड NO_REPLY दिखाता है; प्रत्यक्ष चैट और केवल-संदेश-टूल उत्तर मौन-टोकन मार्गदर्शन छोड़ देते हैं।
प्रॉम्प्ट स्नैपशॉट
OpenClaw,test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/ के अंतर्गत Codex रनटाइम के सामान्य सफल पथ के लिए कमिट किए गए प्रॉम्प्ट स्नैपशॉट रखता है। वे Telegram प्रत्यक्ष, Discord समूह और Heartbeat टर्न के लिए चयनित ऐप-सर्वर थ्रेड/टर्न पैरामीटर तथा पुनर्निर्मित मॉडल-बाउंड प्रॉम्प्ट लेयर स्टैक रेंडर करते हैं: पिन किया गया Codex gpt-5.5 मॉडल प्रॉम्प्ट फ़िक्स्चर, Codex सामान्य सफल पथ अनुमति डेवलपर टेक्स्ट, OpenClaw डेवलपर निर्देश, OpenClaw द्वारा प्रदान किए जाने पर टर्न-स्कोप सहयोग-मोड निर्देश, उपयोगकर्ता टर्न इनपुट और डायनेमिक टूल विनिर्देशों के संदर्भ।
पिन किए गए Codex मॉडल प्रॉम्प्ट फ़िक्स्चर को pnpm prompt:snapshots:sync-codex-model से रीफ़्रेश करें। डिफ़ॉल्ट रूप से यह पहले $CODEX_HOME/models_cache.json, फिर ~/.codex/models_cache.json, फिर मेंटेनर चेकआउट परिपाटी ~/code/codex/codex-rs/models-manager/models.json खोजता है; यदि इनमें से कोई मौजूद न हो, तो यह कमिट किए गए फ़िक्स्चर को बदले बिना बाहर निकल जाता है। किसी विशिष्ट models_cache.json या models.json फ़ाइल से रीफ़्रेश करने के लिए --catalog <path> पास करें।
ये स्नैपशॉट बाइट-दर-बाइट कच्चे OpenAI अनुरोध का कैप्चर नहीं हैं। OpenClaw द्वारा थ्रेड और टर्न पैरामीटर भेजने के बाद Codex रनटाइम-स्वामित्व वाला वर्कस्पेस कॉन्टेक्स्ट (AGENTS.md, परिवेश कॉन्टेक्स्ट, मेमोरी, ऐप/Plugin निर्देश, अंतर्निर्मित डिफ़ॉल्ट सहयोग-मोड निर्देश) जोड़ सकता है।
pnpm prompt:snapshots:gen से पुनः जनरेट करें; pnpm prompt:snapshots:check से विचलन सत्यापित करें। CI अतिरिक्त-सीमा शार्ड के साथ विचलन जाँच चलाता है, ताकि प्रॉम्प्ट परिवर्तन और स्नैपशॉट अपडेट एक ही PR में आएँ।
वर्कस्पेस बूटस्ट्रैप सम्मिलन
बूटस्ट्रैप फ़ाइलें सक्रिय वर्कस्पेस से हल की जाती हैं और उनके जीवनकाल से मेल खाने वाले प्रॉम्प्ट इंटरफ़ेस तक रूट की जाती हैं:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(केवल बिल्कुल नए वर्कस्पेस पर)MEMORY.mdमौजूद होने पर
AGENTS.md लोड करता है। TOOLS.md को इनहेरिट किए गए Codex डेवलपर निर्देशों के रूप में अग्रेषित किया जाता है। SOUL.md, IDENTITY.md और USER.md को टर्न-स्कोप सहयोग डेवलपर निर्देशों के रूप में अग्रेषित किया जाता है, ताकि मूल Codex उप-एजेंट उन्हें इनहेरिट न करें। HEARTBEAT.md सामग्री सीधे सम्मिलित नहीं की जाती; फ़ाइल मौजूद और गैर-रिक्त होने पर Heartbeat टर्न को उसकी ओर संकेत करने वाला सहयोग-मोड नोट मिलता है। MEMORY.md सामग्री भी प्रत्येक मूल Codex टर्न में पेस्ट नहीं की जाती: वर्कस्पेस के लिए मेमोरी टूल उपलब्ध होने पर Codex टर्न को एक छोटा वर्कस्पेस-मेमोरी नोट मिलता है, जो मॉडल को memory_search या memory_get की ओर निर्देशित करता है। यदि टूल अक्षम हैं, मेमोरी खोज उपलब्ध नहीं है, या सक्रिय वर्कस्पेस एजेंट मेमोरी वर्कस्पेस से अलग है, तो MEMORY.md सामान्य सीमित टर्न-कॉन्टेक्स्ट पथ पर वापस आ जाता है। BOOTSTRAP.md सामान्य टर्न-कॉन्टेक्स्ट भूमिका बनाए रखता है।
गैर-Codex हार्नेस पर बूटस्ट्रैप फ़ाइलें अपने मौजूदा गेट के अनुसार OpenClaw प्रॉम्प्ट में संयोजित होती हैं। जब डिफ़ॉल्ट एजेंट के लिए Heartbeat अक्षम हों या agents.defaults.heartbeat.includeSystemPromptSection false हो, तो सामान्य रन पर HEARTBEAT.md छोड़ दिया जाता है। सम्मिलित फ़ाइलें संक्षिप्त रखें, विशेष रूप से गैर-Codex MEMORY.md: इसे दीर्घकालिक सारांश के रूप में सुव्यवस्थित रहना चाहिए, जबकि विस्तृत दैनिक नोट memory/*.md में हों और memory_search / memory_get के माध्यम से आवश्यकता पर प्राप्त किए जा सकें। अत्यधिक बड़ी गैर-Codex MEMORY.md फ़ाइलें प्रॉम्प्ट उपयोग बढ़ाती हैं और नीचे दी गई बूटस्ट्रैप फ़ाइल सीमाओं के अंतर्गत आंशिक रूप से सम्मिलित हो सकती हैं।
memory/*.md दैनिक फ़ाइलें सामान्य बूटस्ट्रैप प्रोजेक्ट कॉन्टेक्स्ट का हिस्सा नहीं हैं। सामान्य टर्न पर उन्हें memory_search / memory_get के माध्यम से आवश्यकता पर एक्सेस किया जाता है, इसलिए जब तक मॉडल उन्हें स्पष्ट रूप से नहीं पढ़ता, वे कॉन्टेक्स्ट विंडो में नहीं गिनी जातीं। केवल /new और /reset टर्न अपवाद हैं: रनटाइम उस पहले टर्न के लिए हाल की दैनिक मेमोरी को एकबारगी स्टार्टअप-कॉन्टेक्स्ट ब्लॉक के रूप में पहले जोड़ सकता है।
गुम फ़ाइलें एक छोटा गुम-फ़ाइल मार्कर इंजेक्ट करती हैं। विस्तृत कच्ची/इंजेक्ट की गई गणनाएँ
/context, /status, doctor और लॉग जैसे निदान में रहती हैं।
मेमोरी फ़ाइलों के लिए, ट्रंकेशन से डेटा की हानि नहीं होती: फ़ाइल डिस्क पर अक्षुण्ण रहती है। नेटिव Codex पर, उपलब्ध होने पर MEMORY.md को मेमोरी टूल्स के माध्यम से माँग पर पढ़ा जाता है; अन्यथा सीमित प्रॉम्प्ट फ़ॉलबैक का उपयोग होता है। अन्य हार्नेस पर, मॉडल को केवल छोटा किया गया इंजेक्टेड प्रतिरूप दिखाई देता है, जब तक कि वह मेमोरी को सीधे पढ़ता या खोजता नहीं है। यदि MEMORY.md बार-बार ट्रंकेट होता है, तो उसे एक छोटे स्थायी सारांश में संक्षिप्त करें, विस्तृत इतिहास को memory/*.md में ले जाएँ, या जानबूझकर बूटस्ट्रैप सीमाएँ बढ़ाएँ।
सब-एजेंट सत्र केवल AGENTS.md और TOOLS.md इंजेक्ट करते हैं (सब-एजेंट संदर्भ को छोटा रखने के लिए अन्य बूटस्ट्रैप फ़ाइलें फ़िल्टर कर दी जाती हैं)।
आंतरिक हुक इस चरण को agent:bootstrap इवेंट के माध्यम से इंटरसेप्ट कर सकते हैं, ताकि इंजेक्ट की गई बूटस्ट्रैप फ़ाइलों को बदला या प्रतिस्थापित किया जा सके (उदाहरण के लिए, SOUL.md को किसी वैकल्पिक व्यक्तित्व से बदलना)।
कम सामान्य शैली के लिए, SOUL.md व्यक्तित्व मार्गदर्शिका से शुरू करें।
यह जाँचने के लिए कि प्रत्येक इंजेक्ट की गई फ़ाइल कितना योगदान देती है (कच्चा बनाम इंजेक्ट किया गया, ट्रंकेशन, टूल स्कीमा ओवरहेड), /context list या /context detail का उपयोग करें। संदर्भ देखें।
समय प्रबंधन
वर्तमान दिनांक और समय अनुभाग केवल तभी दिखाई देता है जब उपयोगकर्ता का समय क्षेत्र ज्ञात हो, और प्रॉम्प्ट कैश को स्थिर रखने के लिए इसमें केवल समय क्षेत्र शामिल होता है (कोई गतिशील घड़ी या समय प्रारूप नहीं)। जब एजेंट को वर्तमान समय चाहिए, तबsession_status का उपयोग करें; इसके स्थिति कार्ड में टाइमस्टैम्प की एक पंक्ति शामिल होती है। यही टूल वैकल्पिक रूप से प्रति-सत्र मॉडल ओवरराइड सेट कर सकता है (model=default उसे साफ़ करता है)।
इससे कॉन्फ़िगर करें:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
जब पात्र Skills मौजूद हों, तो OpenClaw प्रत्येक Skill के लिए फ़ाइल पथ और सामग्री से व्युत्पन्न<version>sha256:...</version> मार्कर सहित एक संक्षिप्त <available_skills> सूची (formatSkillsForPrompt) इंजेक्ट करता है। प्रॉम्प्ट मॉडल को सूचीबद्ध स्थान (वर्कस्पेस, प्रबंधित या बंडल किया हुआ) पर मौजूद SKILL.md लोड करने के लिए read का उपयोग करने और किसी Skill का <version> पिछले टर्न से अलग होने पर उसे फिर से पढ़ने का निर्देश देता है। यदि कोई Skill पात्र नहीं है, तो Skills अनुभाग छोड़ दिया जाता है।
नेटिव Codex टर्न को यह सूची प्रति-टर्न उपयोगकर्ता इनपुट के बजाय टर्न-स्कोप वाले सहयोग डेवलपर निर्देशों के रूप में मिलती है, सिवाय हल्के Cron टर्न के, जो सटीक निर्धारित प्रॉम्प्ट सुरक्षित रखते हैं। अन्य हार्नेस सामान्य प्रॉम्प्ट अनुभाग बनाए रखते हैं।
स्थान किसी नेस्टेड Skill की ओर संकेत कर सकता है, जैसे skills/personal/foo/SKILL.md। नेस्टिंग केवल संगठनात्मक है; प्रॉम्प्ट SKILL.md फ्रंटमैटर से फ़्लैट Skill नाम का उपयोग करता है।
पात्रता में Skill मेटाडेटा गेट, रनटाइम परिवेश/कॉन्फ़िगरेशन जाँच और agents.defaults.skills या agents.entries.*.skills कॉन्फ़िगर होने पर प्रभावी एजेंट Skill अनुमतिसूची शामिल हैं। Plugin के साथ बंडल की गई Skills केवल तभी पात्र होती हैं जब उनका स्वामी Plugin सक्षम हो, जिससे टूल Plugins प्रत्येक टूल विवरण में वह पूरा मार्गदर्शन एम्बेड किए बिना अधिक विस्तृत संचालन मार्गदर्शिकाएँ उपलब्ध करा सकते हैं।
रनटाइम अंश बजट में
memory_get, लाइव टूल परिणाम और Compaction के बाद के AGENTS.md रीफ़्रेश शामिल होते हैं।
दस्तावेज़ीकरण
उपलब्ध होने पर दस्तावेज़ीकरण अनुभाग स्थानीय दस्तावेज़ों की ओर संकेत करता है (Git चेकआउट मेंdocs/ या बंडल किए गए npm पैकेज दस्तावेज़), अन्यथा https://docs.openclaw.ai का फ़ॉलबैक उपयोग करता है। यह OpenClaw स्रोत स्थान भी सूचीबद्ध करता है: Git चेकआउट स्थानीय स्रोत रूट दिखाते हैं, जबकि पैकेज इंस्टॉलेशन को GitHub स्रोत URL और दस्तावेज़ अधूरे या पुराने होने पर वहाँ स्रोत की समीक्षा करने के निर्देश मिलते हैं।
प्रॉम्प्ट, मॉडल द्वारा OpenClaw के काम करने का तरीका समझने से पहले, OpenClaw के आत्म-ज्ञान (मेमोरी/दैनिक नोट्स, सत्र, टूल्स, Gateway, कॉन्फ़िगरेशन, कमांड, प्रोजेक्ट संदर्भ) के लिए दस्तावेज़ों को प्रामाणिक स्रोत के रूप में प्रस्तुत करता है और मॉडल को AGENTS.md, प्रोजेक्ट संदर्भ, वर्कस्पेस/प्रोफ़ाइल/मेमोरी नोट्स और memory_search को OpenClaw के डिज़ाइन/कार्यान्वयन ज्ञान के बजाय निर्देश संदर्भ या उपयोगकर्ता मेमोरी मानने का निर्देश देता है। यदि दस्तावेज़ मौन या पुराने हों, तो मॉडल को ऐसा बताकर स्रोत का निरीक्षण करना चाहिए। यह मॉडल को संभव होने पर openclaw status स्वयं चलाने और केवल पहुँच न होने पर उपयोगकर्ता से पूछने का निर्देश भी देता है।
विशेष रूप से कॉन्फ़िगरेशन के लिए, यह एजेंट को सटीक फ़ील्ड-स्तरीय दस्तावेज़ों और प्रतिबंधों हेतु gateway टूल कार्रवाई config.schema.lookup, फिर व्यापक मार्गदर्शन हेतु docs/gateway/configuration.md और docs/gateway/configuration-reference.md की ओर निर्देशित करता है।