सत्र टूल्स
लक्ष्य: छोटे, दुरुपयोग से सुरक्षित टूल्स का सेट ताकि एजेंट सत्रों की सूची बना सकें, इतिहास प्राप्त कर सकें, और किसी अन्य सत्र में संदेश भेज सकें।टूल नाम
sessions_listsessions_historysessions_sendsessions_spawn
कुंजी मॉडल
- मुख्य प्रत्यक्ष चैट बकेट हमेशा शाब्दिक कुंजी
"main"होती है (वर्तमान एजेंट की मुख्य कुंजी में रिज़ॉल्व होती है)। - समूह चैट्स
agent:<agentId>:<channel>:group:<id>याagent:<agentId>:<channel>:channel:<id>का उपयोग करते हैं (पूर्ण कुंजी पास करें)। - क्रॉन जॉब्स
cron:<job.id>का उपयोग करते हैं। - हुक्स डिफ़ॉल्ट रूप से
hook:<uuid>का उपयोग करते हैं, जब तक स्पष्ट रूप से सेट न किया जाए। - नोड सत्र डिफ़ॉल्ट रूप से
node-<nodeId>का उपयोग करते हैं, जब तक स्पष्ट रूप से सेट न किया जाए।
globalऔरunknownआरक्षित मान हैं और कभी सूचीबद्ध नहीं किए जाते। 4. यदिsession.scope = "global"है, तो हम इसे सभी टूल्स के लिएmainका उपनाम देते हैं ताकि कॉल करने वालों को कभीglobalन दिखे।
sessions_list
सत्रों को पंक्तियों की एक ऐरे के रूप में सूचीबद्ध करें। Parameters:kinds?: string[]फ़िल्टर:"main" | "group" | "cron" | "hook" | "node" | "other"में से कोईlimit?: numberअधिकतम पंक्तियाँ (डिफ़ॉल्ट: सर्वर डिफ़ॉल्ट, क्लैम्प जैसे 200)activeMinutes?: numberकेवल वे सत्र जो पिछले N मिनटों में अपडेट हुए होंmessageLimit?: number0 = कोई संदेश नहीं (डिफ़ॉल्ट 0); >0 = अंतिम N संदेश शामिल करें
messageLimit > 0प्रति सत्रchat.historyफ़ेच करता है और अंतिम N संदेश शामिल करता है।- सूची आउटपुट में टूल परिणाम फ़िल्टर कर दिए जाते हैं; टूल संदेशों के लिए
sessions_historyका उपयोग करें। - sandboxed एजेंट सत्र में चलने पर, सत्र टूल्स डिफ़ॉल्ट रूप से केवल‑स्पॉन की गई दृश्यता पर सेट होते हैं (नीचे देखें)।
key: सत्र कुंजी (string)kind:main | group | cron | hook | node | otherchannel:whatsapp | telegram | discord | signal | imessage | webchat | internal | unknowndisplayName(यदि उपलब्ध हो तो समूह प्रदर्शन लेबल)updatedAt(ms)sessionIdmodel,contextTokens,totalTokensthinkingLevel,verboseLevel,systemSent,abortedLastRunsendPolicy(यदि सेट हो तो सत्र ओवरराइड)lastChannel,lastTodeliveryContext(उपलब्ध होने पर सामान्यीकृत{ channel, to, accountId })transcriptPath(स्टोर डायरेक्टरी + sessionId से व्युत्पन्न सर्वोत्तम‑प्रयास पथ)messages?(केवल तब जबmessageLimit > 0)
sessions_history
एक सत्र के लिए ट्रांसक्रिप्ट प्राप्त करें। Parameters:sessionKey(आवश्यक; सत्र कुंजी याsessions_listसेsessionIdस्वीकार करता है)limit?: numberअधिकतम संदेश (सर्वर द्वारा क्लैम्प)includeTools?: boolean(डिफ़ॉल्ट false)
includeTools=falserole: "toolResult"संदेशों को फ़िल्टर करता है।- कच्चे ट्रांसक्रिप्ट प्रारूप में संदेशों की ऐरे लौटाता है।
sessionIdदिए जाने पर, OpenClaw इसे संबंधित सत्र कुंजी में रिज़ॉल्व करता है (ग़ायब ids पर त्रुटि)।
sessions_send
किसी अन्य सत्र में संदेश भेजें। Parameters:sessionKey(आवश्यक; सत्र कुंजी याsessions_listसेsessionIdस्वीकार करता है)message(आवश्यक)timeoutSeconds?: number(डिफ़ॉल्ट >0; 0 = फ़ायर‑एंड‑फ़ॉरगेट)
timeoutSeconds = 0: क्यू में डालता है और{ runId, status: "accepted" }लौटाता है।timeoutSeconds > 0: पूर्णता के लिए N सेकंड तक प्रतीक्षा करता है, फिर{ runId, status: "ok", reply }लौटाता है।-
- यदि प्रतीक्षा का समय समाप्त हो जाए:
{ runId, status: "timeout", error }। 6. रन जारी रहता है; बाद मेंsessions_historyकॉल करें।
- यदि प्रतीक्षा का समय समाप्त हो जाए:
- यदि रन विफल हो:
{ runId, status: "error", error }। - प्राथमिक रन पूर्ण होने के बाद डिलीवरी रन की घोषणा की जाती है और यह सर्वोत्तम‑प्रयास है;
status: "ok"यह गारंटी नहीं देता कि घोषणा वितरित हुई। - प्रतीक्षा Gateway
agent.wait(सर्वर‑साइड) के माध्यम से होती है ताकि री‑कनेक्ट होने पर प्रतीक्षा न टूटे। - प्राथमिक रन के लिए एजेंट‑टू‑एजेंट संदेश संदर्भ इंजेक्ट किया जाता है।
- प्राथमिक रन पूर्ण होने के बाद, OpenClaw एक रिप्लाई‑बैक लूप चलाता है:
- लूप समाप्त होने पर, OpenClaw एजेंट‑टू‑एजेंट घोषणा चरण चलाता है (केवल लक्ष्य एजेंट):
- मौन रहने के लिए ठीक
ANNOUNCE_SKIPका उत्तर दें। - कोई भी अन्य उत्तर लक्ष्य चैनल पर भेजा जाता है।
- घोषणा चरण में मूल अनुरोध + राउंड‑1 उत्तर + नवीनतम पिंग‑पोंग उत्तर शामिल होते हैं।
- मौन रहने के लिए ठीक
- लूप समाप्त होने पर, OpenClaw एजेंट‑टू‑एजेंट घोषणा चरण चलाता है (केवल लक्ष्य एजेंट):
- मौन रहने के लिए ठीक
ANNOUNCE_SKIPका उत्तर दें। - कोई भी अन्य उत्तर लक्ष्य चैनल पर भेजा जाता है।
- घोषणा चरण में मूल अनुरोध + राउंड‑1 उत्तर + नवीनतम पिंग‑पोंग उत्तर शामिल होते हैं।
- मौन रहने के लिए ठीक
चैनल फ़ील्ड
- समूहों के लिए,
channelवह चैनल है जो सत्र प्रविष्टि पर दर्ज होता है। - प्रत्यक्ष चैट्स के लिए,
channellastChannelसे मैप होता है। - क्रॉन/हुक/नोड के लिए,
channelinternalहोता है। - यदि अनुपलब्ध हो, तो
channelunknownहोता है।
सुरक्षा / भेजने की नीति
चैनल/चैट प्रकार के आधार पर नीति‑आधारित अवरोधन (प्रति सत्र id नहीं)।sendPolicy: "allow" | "deny"(unset = विन्यास विरासत में लें)sessions.patchया केवल‑मालिक/send on|off|inherit(स्टैंडअलोन संदेश) के माध्यम से सेट करने योग्य।
chat.send/agent(Gateway)- ऑटो‑रिप्लाई डिलीवरी लॉजिक
sessions_spawn
एक अलग‑थलग सत्र में उप‑एजेंट रन स्पॉन करें और परिणाम को अनुरोधकर्ता चैट चैनल पर घोषित करें। Parameters:task(आवश्यक)label?(वैकल्पिक; लॉग्स/UI के लिए उपयोग)agentId?(वैकल्पिक; यदि अनुमति हो तो किसी अन्य एजेंट id के अंतर्गत स्पॉन करें)model?(वैकल्पिक; उप‑एजेंट मॉडल को ओवरराइड करता है; अमान्य मानों पर त्रुटि)runTimeoutSeconds?(डिफ़ॉल्ट 0; सेट होने पर N सेकंड बाद उप‑एजेंट रन को रद्द करता है)cleanup?(delete|keep, डिफ़ॉल्टkeep)
-
agents.list[].subagents.allowAgents:agentIdके माध्यम से अनुमत एजेंट आईडी की सूची (["*"]किसी को भी अनुमति देने के लिए)। 8. डिफ़ॉल्ट: केवल अनुरोध करने वाला एजेंट।
agents_listका उपयोग करें यह पता लगाने के लिए किsessions_spawnके लिए कौन‑कौन से एजेंट ids अनुमत हैं।
deliver: falseके साथ एक नयाagent:<agentId>:subagent:<uuid>सत्र शुरू करता है।- उप‑एजेंट्स डिफ़ॉल्ट रूप से पूर्ण टूल सेट माइनस सत्र टूल्स के साथ आते हैं (
tools.subagents.toolsके माध्यम से विन्यास योग्य)। - उप‑एजेंट्स को
sessions_spawnकॉल करने की अनुमति नहीं है (कोई उप‑एजेंट → उप‑एजेंट स्पॉनिंग नहीं)। - हमेशा नॉन‑ब्लॉकिंग: तुरंत
{ status: "accepted", runId, childSessionKey }लौटाता है। - पूर्णता के बाद, OpenClaw एक उप‑एजेंट घोषणा चरण चलाता है और परिणाम को अनुरोधकर्ता चैट चैनल पर पोस्ट करता है।
- घोषणा चरण के दौरान मौन रहने के लिए ठीक
ANNOUNCE_SKIPका उत्तर दें। - घोषणा उत्तरों को
Status/Result/Notesमें सामान्यीकृत किया जाता है;Statusरनटाइम परिणाम से आता है (मॉडल पाठ से नहीं)। - उप‑एजेंट सत्र
agents.defaults.subagents.archiveAfterMinutesके बाद स्वतः आर्काइव हो जाते हैं (डिफ़ॉल्ट: 60)। - घोषणा उत्तरों में एक आँकड़े पंक्ति शामिल होती है (रनटाइम, टोकन्स, sessionKey/sessionId, ट्रांसक्रिप्ट पथ, और वैकल्पिक लागत)।
Sandbox सत्र दृश्यता
Sandboxed सत्र सत्र टूल्स का उपयोग कर सकते हैं, लेकिन डिफ़ॉल्ट रूप से वे केवल वे सत्र देखते हैं जिन्हें उन्होंनेsessions_spawn के माध्यम से स्पॉन किया है।
Config: