टूल्स (OpenClaw)
OpenClaw ब्राउज़र, कैनवास, नोड्स और क्रॉन के लिए फर्स्ट-क्लास एजेंट टूल्स प्रदान करता है। ये पुरानेopenclaw-* स्किल्स को बदलते हैं: टूल्स टाइप्ड हैं, कोई शेलिंग नहीं है, और एजेंट को सीधे उन पर निर्भर होना चाहिए।
Tools को अक्षम करना
आपopenclaw.json में tools.allow / tools.deny के माध्यम से टूल्स को वैश्विक रूप से अनुमति/अस्वीकृत कर सकते हैं (deny को प्राथमिकता मिलती है)। यह अस्वीकृत टूल्स को मॉडल प्रदाताओं तक भेजे जाने से रोकता है।
- मिलान case-insensitive है।
*wildcards समर्थित हैं ("*"का अर्थ सभी टूल्स)।- यदि
tools.allowकेवल अज्ञात या अनलोडेड plugin टूल नामों को संदर्भित करता है, तो OpenClaw चेतावनी लॉग करता है और allowlist को अनदेखा करता है ताकि core tools उपलब्ध रहें।
टूल प्रोफ़ाइलें (आधार अनुमति-सूची)
tools.profile, tools.allow/tools.deny से पहले एक बेस टूल अलाउलिस्ट सेट करता है।
प्रति-एजेंट ओवरराइड: agents.list[].tools.profile।
प्रोफ़ाइलें:
minimal: केवलsession_statuscoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: कोई प्रतिबंध नहीं (unset के समान)
प्रदाता-विशिष्ट टूल नीति
अपने वैश्विक डिफ़ॉल्ट बदले बिना विशिष्ट प्रदाताओं (या किसी एकprovider/model) के लिए टूल्स को और अधिक सीमित करने हेतु tools.byProvider का उपयोग करें।
प्रति-एजेंट ओवरराइड: agents.list[].tools.byProvider।
यह बेस टूल प्रोफ़ाइल के बाद और allow/deny सूचियों के पहले लागू होता है, इसलिए यह केवल टूल सेट को संकुचित कर सकता है।
प्रोवाइडर कीज़ provider (उदाहरण: google-antigravity) या provider/model (उदाहरण: openai/gpt-5.2) दोनों स्वीकार करती हैं।
उदाहरण (वैश्विक coding प्रोफ़ाइल रखें, लेकिन Google Antigravity के लिए न्यूनतम टूल्स):
टूल समूह (संक्षिप्त रूप)
टूल नीतियाँ (ग्लोबल, एजेंट, सैंडबॉक्स)group:* एंट्रीज़ का समर्थन करती हैं जो कई टूल्स में विस्तारित होती हैं।
इनका उपयोग tools.allow / tools.deny में करें।
उपलब्ध groups:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: सभी अंतर्निहित OpenClaw टूल्स (provider plugins को छोड़कर)
Plugins + tools
प्लगइन्स कोर सेट से आगे अतिरिक्त टूल्स (और CLI कमांड्स) रजिस्टर कर सकते हैं। इंस्टॉल + कॉन्फ़िग के लिए Plugins देखें, और यह जानने के लिए कि टूल उपयोग मार्गदर्शन प्रॉम्प्ट्स में कैसे डाला जाता है, Skills देखें। कुछ प्लगइन्स टूल्स के साथ-साथ अपनी स्वयं की स्किल्स भी प्रदान करते हैं (उदाहरण के लिए, वॉइस-कॉल प्लगइन)। वैकल्पिक plugin tools:- Lobster: resumable approvals के साथ typed workflow runtime (Gateway होस्ट पर Lobster CLI आवश्यक)।
- LLM Task: structured workflow output के लिए JSON-only LLM step (वैकल्पिक schema validation)।
Tool inventory
apply_patch
एक या अधिक फ़ाइलों में संरचित पैच लागू करें। मल्टी-हंक एडिट्स के लिए उपयोग करें।
प्रायोगिक: tools.exec.applyPatch.enabled के माध्यम से सक्षम करें (केवल OpenAI मॉडल्स)।
tools.exec.applyPatch.workspaceOnly डिफ़ॉल्ट रूप से true (workspace-contained) होता है। इसे false केवल तभी सेट करें जब आप जानबूझकर चाहते हों कि apply_patch workspace directory के बाहर लिखे/हटाए।
exec
workspace में shell commands चलाएँ।
Core parameters:
command(required)yieldMs(timeout के बाद auto-background, default 10000)background(तुरंत background)timeout(seconds; सीमा पार होने पर process kill, default 1800)elevated(bool; यदि elevated mode सक्षम/अनुमत है तो host पर चलाएँ; केवल तब व्यवहार बदलता है जब एजेंट sandboxed हो)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(host=nodeके लिए node id/name)- क्या आपको एक वास्तविक TTY चाहिए?
pty: trueसेट करें।
- background होने पर
sessionIdके साथstatus: "running"लौटाता है। - background sessions को poll/log/write/kill/clear करने के लिए
processका उपयोग करें। - यदि
processनिषिद्ध है, तोexecsynchronous रूप से चलता है औरyieldMs/backgroundको अनदेखा करता है। elevatedकोtools.elevatedऔर किसी भीagents.list[].tools.elevatedoverride द्वारा gated किया जाता है (दोनों की अनुमति आवश्यक) और यहhost=gateway+security=fullका alias है।elevatedकेवल तब व्यवहार बदलता है जब एजेंट sandboxed हो (अन्यथा no-op)।host=nodemacOS companion app या headless node host (openclaw node run) को target कर सकता है।- gateway/node approvals और allowlists: Exec approvals।
process
background exec sessions का प्रबंधन करें।
Core actions:
list,poll,log,write,kill,clear,remove
pollपूर्ण होने पर नया output और exit status लौटाता है।logline-basedoffset/limitका समर्थन करता है (अंतिम N lines लेने के लिएoffsetछोड़ दें)।processप्रति-एजेंट scoped है; अन्य एजेंट्स की sessions दिखाई नहीं देतीं।
web_search
Brave Search API का उपयोग करके वेब खोजें।
Core parameters:
query(required)count(1–10; defaulttools.web.search.maxResultsसे)
- Brave API key आवश्यक (अनुशंसित:
openclaw configure --section web, याBRAVE_API_KEYसेट करें)। tools.web.search.enabledके माध्यम से सक्षम करें।- Responses cached होती हैं (default 15 min)।
- सेटअप के लिए Web tools देखें।
web_fetch
URL से पठनीय सामग्री fetch और extract करें (HTML → markdown/text)।
Core parameters:
url(required)extractMode(markdown|text)maxChars(लंबे पृष्ठों को truncate करें)
tools.web.fetch.enabledके माध्यम से सक्षम करें।maxCharsकोtools.web.fetch.maxCharsCap(default 50000) द्वारा clamp किया जाता है।- Responses cached होती हैं (default 15 min)।
- JS-heavy साइट्स के लिए browser tool को प्राथमिकता दें।
- सेटअप के लिए Web tools देखें।
- वैकल्पिक anti-bot fallback के लिए Firecrawl देखें।
browser
समर्पित OpenClaw-managed browser को नियंत्रित करें।
Core actions:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(image block +MEDIA:<path>लौटाता है)act(UI actions: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
profiles— स्थिति सहित सभी browser profiles सूचीबद्ध करेंcreate-profile— auto-allocated port के साथ नया profile बनाएँ (याcdpUrl)delete-profile— browser रोकें, user data हटाएँ, config से हटाएँ (केवल local)reset-profile— profile के port पर orphan process kill करें (केवल local)
profile(optional; defaultbrowser.defaultProfile)target(sandbox|host|node)node(optional; विशिष्ट node id/name चुनता है) टिप्पणियाँ:browser.enabled=trueआवश्यक (defaulttrue; अक्षम करने के लिएfalseसेट करें)।- सभी actions multi-instance support के लिए वैकल्पिक
profileस्वीकार करते हैं। - जब
profileछोड़ा जाता है, तोbrowser.defaultProfileका उपयोग होता है (default “chrome”)। - Profile नाम: केवल lowercase alphanumeric + hyphens (अधिकतम 64 chars)।
- Port range: 18800-18899 (लगभग 100 profiles अधिकतम)।
- Remote profiles केवल attach-only हैं (start/stop/reset नहीं)।
- यदि browser-capable node जुड़ा है, तो tool auto-route कर सकता है (जब तक आप
targetpin न करें)। - Playwright स्थापित होने पर
snapshotका defaultaiहोता है; accessibility tree के लिएariaका उपयोग करें। snapshotrole-snapshot options (interactive,compact,depth,selector) का भी समर्थन करता है, जोe12जैसे refs लौटाते हैं।actकोsnapshotसेrefचाहिए (AI snapshots से numeric12, या role snapshots सेe12); दुर्लभ CSS selector आवश्यकताओं के लिएevaluateका उपयोग करें।- डिफ़ॉल्ट रूप से
act→waitसे बचें; केवल असाधारण मामलों में उपयोग करें (जब भरोसेमंद UI state उपलब्ध न हो)। uploadarming के बाद auto-click के लिए वैकल्पिकrefपास कर सकता है।uploadinputRef(aria ref) याelement(CSS selector) का भी समर्थन करता है ताकि<input type="file">सीधे सेट किया जा सके।
canvas
node Canvas को संचालित करें (present, eval, snapshot, A2UI)।
Core actions:
present,hide,navigate,evalsnapshot(image block +MEDIA:<path>लौटाता है)a2ui_push,a2ui_reset
- आंतरिक रूप से gateway
node.invokeका उपयोग करता है। - यदि
nodeप्रदान नहीं किया गया है, तो tool default चुनता है (एकल connected node या local mac node)। - A2UI केवल v0.8 है (कोई
createSurfaceनहीं); CLI v0.9 JSONL को line errors के साथ अस्वीकार करता है। - Quick smoke:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI"।
nodes
paired nodes की खोज और targeting; notifications भेजें; camera/screen capture करें।
Core actions:
status,describepending,approve,reject(pairing)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
- Camera/screen commands के लिए node app का foreground में होना आवश्यक है।
- Images image blocks +
MEDIA:<path>लौटाती हैं। - Videos
FILE:<path>(mp4) लौटाते हैं। - Location एक JSON payload (lat/lon/accuracy/timestamp) लौटाता है।
runparams:commandargv array; वैकल्पिकcwd,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording।
run):
image
configured image model के साथ किसी image का विश्लेषण करें।
Core parameters:
image(required path या URL)prompt(optional; default “Describe the image.”)model(optional override)maxBytesMb(optional size cap)
- केवल तब उपलब्ध जब
agents.defaults.imageModelconfigured हो (primary या fallbacks), या जब default model + configured auth से implicit image model infer किया जा सके (best‑effort pairing)। - image model का सीधे उपयोग करता है (मुख्य chat model से स्वतंत्र)।
message
Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams के बीच संदेश और चैनल actions भेजें।
Core actions:
send(text + वैकल्पिक media; MS Teamscardके साथ Adaptive Cards भी समर्थित करता है)poll(WhatsApp/Discord/MS Teams polls)react/reactions/read/edit/deletepin/unpin/list-pinspermissionsthread-create/thread-list/thread-replysearchstickermember-info/role-infoemoji-list/emoji-upload/sticker-uploadrole-add/role-removechannel-info/channel-listvoice-statusevent-list/event-createtimeout/kick/ban
sendWhatsApp को Gateway के माध्यम से route करता है; अन्य चैनल सीधे जाते हैं।pollWhatsApp और MS Teams के लिए Gateway का उपयोग करता है; Discord polls सीधे जाते हैं।- जब कोई message tool call सक्रिय chat session से बंधी होती है, तो cross‑context leaks से बचने के लिए sends उस session के target तक सीमित रहते हैं।
cron
Gateway cron jobs और wakeups का प्रबंधन करें।
Core actions:
status,listadd,update,remove,run,runswake(system event enqueue करें + वैकल्पिक immediate heartbeat)
addएक पूर्ण cron job object अपेक्षित करता है ( वही schema जोcron.addRPC का है)।update{ jobId, patch }का उपयोग करता है (idcompatibility के लिए स्वीकार्य)।
gateway
चल रहे Gateway process को restart करें या updates लागू करें (in‑place)।
Core actions:
restart(authorizes + in‑process restart के लिएSIGUSR1भेजता है;openclaw gatewayin‑place restart)config.get/config.schemaconfig.apply(validate + write config + restart + wake)config.patch(partial update merge + restart + wake)update.run(update चलाएँ + restart + wake)
- in‑flight reply में बाधा से बचने के लिए
delayMs(default 2000) का उपयोग करें। restartडिफ़ॉल्ट रूप से अक्षम है;commands.restart: trueके साथ सक्षम करें।
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status
sessions सूचीबद्ध करें, transcript history निरीक्षण करें, या किसी अन्य session को भेजें।
Core parameters:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = none)sessions_history:sessionKey(याsessionId),limit?,includeTools?sessions_send:sessionKey(याsessionId),message,timeoutSeconds?(0 = fire-and-forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(default current;sessionIdस्वीकार करता है),model?(defaultoverride साफ़ करता है)
maincanonical direct-chat key है; global/unknown छिपे होते हैं।messageLimit > 0प्रति session अंतिम N messages fetch करता है (tool messages फ़िल्टर किए जाते हैं)।sessions_sendtimeoutSeconds > 0होने पर final completion का इंतज़ार करता है।- Delivery/announce completion के बाद होता है और best‑effort है;
status: "ok"पुष्टि करता है कि agent run समाप्त हुआ, न कि announce deliver हुआ। sessions_spawnएक sub‑agent run शुरू करता है और requester chat में announce reply पोस्ट करता है।sessions_spawnnon‑blocking है और तुरंतstatus: "accepted"लौटाता है।sessions_sendreply‑back ping‑pong चलाता है (रोकने के लिएREPLY_SKIPreply करें; max turnssession.agentToAgent.maxPingPongTurns, 0–5)।- ping‑pong के बाद, target agent एक announce step चलाता है; announcement दबाने के लिए
ANNOUNCE_SKIPreply करें।
agents_list
वर्तमान session जिन agent ids को sessions_spawn के साथ target कर सकता है, उन्हें सूचीबद्ध करें।
टिप्पणियाँ:
- परिणाम प्रति‑एजेंट allowlists (
agents.list[].subagents.allowAgents) तक सीमित है। - जब
["*"]configured हो, tool सभी configured agents शामिल करता है औरallowAny: trueचिह्नित करता है।
Parameters (common)
Gateway‑backed tools (canvas, nodes, cron):
gatewayUrl(defaultws://127.0.0.1:18789)gatewayToken(यदि auth सक्षम हो)timeoutMs
gatewayUrl सेट हो, तो gatewayToken को स्पष्ट रूप से शामिल करें। टूल्स ओवरराइड्स के लिए कॉन्फ़िग या एनवायरनमेंट क्रेडेंशियल्स इनहेरिट नहीं करते, और स्पष्ट क्रेडेंशियल्स का अभाव एक त्रुटि है।
Browser tool:
profile(optional; defaultbrowser.defaultProfile)target(sandbox|host|node)node(optional; विशिष्ट node id/name pin करें)
Recommended agent flows
Browser automation:browser→status/startsnapshot(ai या aria)act(click/type/press)- दृश्य पुष्टि की आवश्यकता हो तो
screenshot
canvas→presenta2ui_push(optional)snapshot
nodes→status- चुने गए node पर
describe notify/run/camera_snap/screen_record
Safety
- प्रत्यक्ष
system.runसे बचें; केवल स्पष्ट user consent के साथnodes→runका उपयोग करें। - camera/screen capture के लिए user consent का सम्मान करें।
- media commands invoke करने से पहले permissions सुनिश्चित करने के लिए
status/describeका उपयोग करें।
एजेंट को tools कैसे प्रस्तुत किए जाते हैं
Tools दो समानांतर channels में उजागर किए जाते हैं:- System prompt text: मानव‑पठनीय सूची + मार्गदर्शन।
- Tool schema: मॉडल API को भेजी जाने वाली structured function definitions।