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) शामिल हैं, लेकिन
उप-एजेंट शुरू करना शामिल नहीं है। मैसेजिंग प्रोफाइल बनाए रखते हुए भी
मूल डेलिगेशन की अनुमति देने के लिए, जोड़ें:
{ 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 तक सीमित किया जाता है।
आगे पढ़ें
- Session Management -- रूटिंग, lifecycle, रखरखाव
- ACP Agents -- बाहरी harness spawning
- Multi-agent -- multi-agent architecture
- Gateway Configuration -- सत्र टूल config knobs