Sessions and memory

सत्र टूल्स

OpenClaw एजेंटों को सत्रों के पार काम करने, स्थिति जांचने, और उप-एजेंटों को समन्वयित करने के लिए टूल देता है।

उपलब्ध टूल

टूल यह क्या करता है
sessions_list वैकल्पिक फिल्टरों (प्रकार, लेबल, एजेंट, हालियापन, पूर्वावलोकन) के साथ सत्र सूचीबद्ध करता है
sessions_history किसी विशिष्ट सत्र का ट्रांसक्रिप्ट पढ़ता है
sessions_send दूसरे सत्र को संदेश भेजता है और वैकल्पिक रूप से प्रतीक्षा करता है
sessions_spawn पृष्ठभूमि कार्य के लिए एक पृथक उप-एजेंट सत्र शुरू करता है
sessions_yield वर्तमान टर्न समाप्त करता है और अनुवर्ती उप-एजेंट परिणामों की प्रतीक्षा करता है
subagents इस सत्र के लिए शुरू किए गए उप-एजेंट की स्थिति सूचीबद्ध करता है
session_status /status-शैली का कार्ड दिखाता है और वैकल्पिक रूप से प्रति-सत्र मॉडल ओवरराइड सेट करता है

ये टूल अब भी सक्रिय टूल प्रोफाइल और अनुमति/अस्वीकृति नीति के अधीन हैं। tools.profile: "coding" में पूरा सत्र समन्वयन सेट शामिल है, जिसमें sessions_spawn, sessions_yield, और subagents शामिल हैं। tools.profile: "messaging" में क्रॉस-सत्र मैसेजिंग टूल (sessions_list, sessions_history, sessions_send, session_status) शामिल हैं, लेकिन उप-एजेंट शुरू करना शामिल नहीं है। मैसेजिंग प्रोफाइल बनाए रखते हुए भी मूल डेलिगेशन की अनुमति देने के लिए, जोड़ें:

json5
{  tools: {    profile: "messaging",    alsoAllow: ["sessions_spawn", "sessions_yield", "subagents"],  },}

समूह, प्रदाता, सैंडबॉक्स, और प्रति-एजेंट नीतियां प्रोफाइल चरण के बाद भी उन टूल को हटा सकती हैं। प्रभावी टूल सूची जांचने के लिए प्रभावित सत्र से /tools का उपयोग करें।

सत्र सूचीबद्ध करना और पढ़ना

sessions_list सत्रों को उनकी कुंजी, agentId, प्रकार, चैनल, मॉडल, टोकन गणना, और टाइमस्टैम्प के साथ लौटाता है। प्रकार (main, group, cron, hook, node), सटीक label, सटीक agentId, खोज टेक्स्ट, या हालियापन (activeMinutes) से फिल्टर करें। जब आपको मेलबॉक्स-शैली ट्रायाज चाहिए, तो यह प्रत्येक पंक्ति पर दृश्यता-स्कोप वाला व्युत्पन्न शीर्षक, अंतिम-संदेश पूर्वावलोकन स्निपेट, या सीमित हालिया संदेश भी मांग सकता है। व्युत्पन्न शीर्षक और पूर्वावलोकन केवल उन सत्रों के लिए बनाए जाते हैं जिन्हें कॉलर कॉन्फिगर की गई सत्र टूल दृश्यता नीति के तहत पहले से देख सकता है, इसलिए असंबंधित सत्र छिपे रहते हैं। जब दृश्यता प्रतिबंधित होती है, तो sessions_list वैकल्पिक visibility मेटाडेटा लौटाता है, जो प्रभावी मोड और यह चेतावनी दिखाता है कि परिणाम स्कोप-सीमित हो सकते हैं।

sessions_history किसी विशिष्ट सत्र के लिए बातचीत का ट्रांसक्रिप्ट लाता है। डिफॉल्ट रूप से, टूल परिणाम शामिल नहीं होते -- उन्हें देखने के लिए includeTools: true पास करें। नवीनतम सीमित अंत के लिए limit का उपयोग करें। जब आपको पेजिनेशन मेटाडेटा चाहिए, तो offset: 0 पास करें, फिर पुराने OpenClaw ट्रांसक्रिप्ट विंडो में पीछे की ओर पेज करने के लिए लौटाए गए nextOffset मान पास करें, बिना कच्ची ट्रांसक्रिप्ट फाइलें पढ़े। स्पष्ट ऑफसेट पेज बाहरी CLI फॉलबैक आयातों को मर्ज नहीं करते; जब आपको वह मर्ज किया हुआ प्रदर्शन इतिहास चाहिए, तो डिफॉल्ट नवीनतम-अंत दृश्य का उपयोग करें। लौटाया गया दृश्य जानबूझकर सीमित और सुरक्षा-फिल्टर किया हुआ होता है:

  • याद करने से पहले सहायक टेक्स्ट सामान्यीकृत किया जाता है:
    • thinking टैग हटाए जाते हैं
    • <relevant-memories> / <relevant_memories> स्कैफोल्डिंग ब्लॉक हटाए जाते हैं
    • <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, और <function_calls>...</function_calls> जैसे प्लेन-टेक्स्ट टूल-कॉल XML पेलोड ब्लॉक हटाए जाते हैं, जिनमें कटे हुए पेलोड भी शामिल हैं जो साफ़ तौर पर कभी बंद नहीं होते
    • [Tool Call: ...], [Tool Result ...], और [Historical context ...] जैसी डाउनग्रेड की गई टूल-कॉल/परिणाम स्कैफोल्डिंग हटाई जाती है
    • <|assistant|> जैसे लीक हुए मॉडल नियंत्रण टोकन, अन्य ASCII <|...|> टोकन, और पूर्ण-चौड़ाई <|...|> वैरिएंट हटाए जाते हैं
    • <invoke ...> / </minimax:tool_call> जैसे विकृत MiniMax टूल-कॉल XML हटाए जाते हैं
  • क्रेडेंशियल/टोकन-जैसा टेक्स्ट लौटाने से पहले रीडैक्ट किया जाता है
  • लंबे टेक्स्ट ब्लॉक काटे जाते हैं
  • बहुत बड़े इतिहास पुरानी पंक्तियां छोड़ सकते हैं या अत्यधिक बड़ी पंक्ति को [sessions_history omitted: message too large] से बदल सकते हैं
  • टूल truncated, droppedMessages, contentTruncated, contentRedacted, bytes, और पेजिनेशन मेटाडेटा जैसे सारांश फ्लैग रिपोर्ट करता है

दोनों टूल या तो सत्र कुंजी (जैसे "main") या पिछले सूची कॉल से सत्र ID स्वीकार करते हैं।

यदि आपको अक्षरशः बाइट-दर-बाइट ट्रांसक्रिप्ट चाहिए, तो sessions_history को कच्चा डंप मानने के बजाय डिस्क पर मौजूद ट्रांसक्रिप्ट फाइल जांचें।

क्रॉस-सत्र संदेश भेजना

sessions_send किसी दूसरे सत्र को संदेश भेजता है और वैकल्पिक रूप से प्रतिक्रिया की प्रतीक्षा करता है:

  • भेजें और भूल जाएं: कतार में डालकर तुरंत लौटने के लिए timeoutSeconds: 0 सेट करें।
  • उत्तर की प्रतीक्षा करें: टाइमआउट सेट करें और प्रतिक्रिया inline प्राप्त करें।

थ्रेड-स्कोप वाले चैट सत्र, जैसे Slack या Discord कुंजियां जो :thread:<id> पर समाप्त होती हैं, मान्य sessions_send लक्ष्य नहीं हैं। इंटर-एजेंट समन्वय के लिए पैरेंट चैनल सत्र कुंजी का उपयोग करें ताकि टूल-रूटेड संदेश सक्रिय मानव-उन्मुख थ्रेड के अंदर न दिखाई दें।

संदेश और A2A अनुवर्ती उत्तर प्राप्त करने वाले प्रॉम्प्ट ([Inter-session message ... isUser=false]) और ट्रांसक्रिप्ट प्रोवेनेंस में इंटर-सत्र डेटा के रूप में चिह्नित होते हैं। प्राप्त करने वाले एजेंट को इन्हें सीधे अंतिम-उपयोगकर्ता-लिखित निर्देश के रूप में नहीं, बल्कि टूल-रूटेड डेटा के रूप में मानना चाहिए।

लक्ष्य के जवाब देने के बाद, OpenClaw एक reply-back loop चला सकता है, जहां एजेंट बारी-बारी से संदेश भेजते हैं (session.agentToAgent.maxPingPongTurns तक, सीमा 0-20, डिफॉल्ट 5)। लक्ष्य एजेंट जल्दी रोकने के लिए REPLY_SKIP जवाब दे सकता है।

स्थिति और समन्वयन सहायक

session_status वर्तमान या किसी दूसरे दृश्य सत्र के लिए हल्का /status-समकक्ष टूल है। यह उपयोग, समय, मॉडल/रनटाइम स्थिति, और मौजूद होने पर लिंक किए गए पृष्ठभूमि-कार्य संदर्भ की रिपोर्ट करता है। /status की तरह, यह नवीनतम ट्रांसक्रिप्ट उपयोग प्रविष्टि से विरल टोकन/कैश काउंटर backfill कर सकता है, और model=default प्रति-सत्र ओवरराइड साफ़ करता है। कॉलर के वर्तमान सत्र के लिए sessionKey="current" का उपयोग करें; openclaw-tui जैसे दृश्य क्लाइंट लेबल सत्र कुंजियां नहीं हैं।

जब रूट मेटाडेटा उपलब्ध होता है, तो session_status में एक दृश्य Route context JSON ब्लॉक और मेल खाते संरचित details फील्ड भी शामिल होते हैं। ये फील्ड सत्र कुंजी और उस रूट के बीच अंतर स्पष्ट करते हैं जो अभी लाइव रन संभाल रहा है:

  • origin वह जगह है जहां सत्र बनाया गया था, या पुराने स्टेट में संग्रहीत origin मेटाडेटा न होने पर डिलीवर करने योग्य सत्र-कुंजी प्रीफिक्स से अनुमानित प्रदाता।
  • active वर्तमान लाइव-रन रूट है। यह केवल अभी संभाले जा रहे लाइव या वर्तमान सत्र के लिए रिपोर्ट किया जाता है।
  • deliveryContext सत्र पर संग्रहीत स्थायी डिलीवरी रूट है, जिसे OpenClaw बाद की डिलीवरी के लिए फिर से उपयोग कर सकता है, भले ही सक्रिय सतह अलग हो।

sessions_yield जानबूझकर वर्तमान टर्न समाप्त करता है ताकि अगला संदेश वह अनुवर्ती इवेंट हो सके जिसका आप इंतज़ार कर रहे हैं। उप-एजेंट शुरू करने के बाद इसका उपयोग करें जब आप चाहते हैं कि पूर्णता परिणाम poll loops बनाने के बजाय अगले संदेश के रूप में आएं।

subagents पहले से शुरू किए गए OpenClaw उप-एजेंटों के लिए दृश्यता सहायक है। यह सक्रिय/हालिया रन देखने के लिए action: "list" का समर्थन करता है।

उप-एजेंट शुरू करना

sessions_spawn डिफॉल्ट रूप से पृष्ठभूमि कार्य के लिए एक पृथक सत्र बनाता है। यह हमेशा non-blocking होता है -- यह runId और childSessionKey के साथ तुरंत लौटता है। मूल उप-एजेंट रन delegated task को child सत्र के पहले दृश्य [Subagent Task] संदेश में प्राप्त करते हैं, जबकि सिस्टम प्रॉम्प्ट केवल उप-एजेंट रनटाइम नियम और रूटिंग संदर्भ रखता है।

मुख्य विकल्प:

  • runtime: "subagent" (डिफॉल्ट) या बाहरी harness एजेंटों के लिए "acp"
  • child सत्र के लिए model और thinking ओवरराइड।
  • spawn को चैट थ्रेड (Discord, Slack, आदि) से बांधने के लिए thread: true
  • child पर sandboxing लागू करने के लिए sandbox: "require"
  • मूल उप-एजेंटों के लिए context: "fork" जब child को वर्तमान requester transcript चाहिए; साफ़ child के लिए इसे छोड़ दें या context: "isolated" का उपयोग करें। थ्रेड-बाउंड मूल उप-एजेंट डिफॉल्ट रूप से context: "fork" का उपयोग करते हैं, जब तक threadBindings.defaultSpawnContext कुछ और न कहे।

डिफॉल्ट leaf उप-एजेंटों को सत्र टूल नहीं मिलते। जब maxSpawnDepth >= 2 हो, तो depth-1 orchestrator उप-एजेंटों को अतिरिक्त रूप से sessions_spawn, subagents, sessions_list, और sessions_history मिलते हैं ताकि वे अपने बच्चों को प्रबंधित कर सकें। Leaf runs को अब भी recursive orchestration tools नहीं मिलते।

पूर्णता के बाद, announce चरण requester के चैनल पर परिणाम पोस्ट करता है। पूर्णता डिलीवरी उपलब्ध होने पर bound thread/topic routing को संरक्षित रखती है, और यदि completion origin केवल एक चैनल की पहचान करता है, तब भी OpenClaw सीधे डिलीवरी के लिए requester सत्र के संग्रहीत route (lastChannel / lastTo) का फिर से उपयोग कर सकता है।

ACP-विशिष्ट व्यवहार के लिए, ACP Agents देखें।

दृश्यता

सत्र टूल को इस तरह स्कोप किया जाता है कि एजेंट क्या देख सकता है, यह सीमित रहे:

स्तर स्कोप
self केवल वर्तमान सत्र
tree वर्तमान सत्र + शुरू किए गए उप-एजेंट
agent इस एजेंट के सभी सत्र
all सभी सत्र (कॉन्फिगर होने पर क्रॉस-एजेंट)

डिफॉल्ट tree है। Sandboxed सत्रों को config की परवाह किए बिना tree तक सीमित किया जाता है।

आगे पढ़ें

संबंधित

Was this useful?
On this page

On this page