Mga Tool (OpenClaw)¶
- Naglalantad ang OpenClaw ng first-class agent tools para sa browser, canvas, nodes, at cron.
- Pinapalitan ng mga ito ang lumang
openclaw-*skills: ang mga tool ay typed, walang shelling, at dapat direktang umasa ang agent sa mga ito.
Pag-disable ng mga tool¶
- Maaari mong global na pahintulutan/tanggihan ang mga tool sa pamamagitan ng
tools.allow/tools.denysaopenclaw.json(nanalo ang deny). This prevents disallowed tools from being sent to model providers.
{
tools: { deny: ["browser"] },
}
Mga tala:
- Case-insensitive ang matching.
- Sinusuportahan ang
*wildcards ("*"ay nangangahulugang lahat ng tool). - Kung ang
tools.alloway tumutukoy lamang sa hindi kilala o hindi na-load na mga pangalan ng plugin tool, nagla-log ang OpenClaw ng babala at binabalewala ang allowlist para manatiling available ang mga core tool.
Mga profile ng tool (base allowlist)¶
- Itinatakda ng
tools.profileang isang base tool allowlist bago angtools.allow/tools.deny. Per-agent override:agents.list[].tools.profile.
Mga profile:
minimal:session_statuslamangcoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: walang restriksyon (katulad ng unset)
Halimbawa (messaging-only bilang default, payagan din ang Slack + Discord tools):
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}
Halimbawa (coding profile, pero i-deny ang exec/process kahit saan):
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}
Halimbawa (global coding profile, messaging-only na support agent):
{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging", allow: ["slack"] },
},
],
},
}
Provider-specific na patakaran ng tool¶
- Gamitin ang
tools.byProviderpara lalo pang higpitan ang mga tool para sa mga partikular na provider (o isangprovider/model) nang hindi binabago ang iyong global defaults. - Per-agent override:
agents.list[].tools.byProvider.
This is applied after the base tool profile and before allow/deny lists,
so it can only narrow the tool set.
32. Tumatanggap ang mga provider key ng alinman sa provider (hal. google-antigravity) o
provider/model (hal. openai/gpt-5.2).
Halimbawa (panatilihin ang global coding profile, pero minimal na mga tool para sa Google Antigravity):
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}
Halimbawa (provider/model-specific na allowlist para sa isang flaky endpoint):
{
tools: {
allow: ["group:fs", "group:runtime", "sessions_list"],
byProvider: {
"openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
},
},
}
Halimbawa (agent-specific na override para sa isang provider):
{
agents: {
list: [
{
id: "support",
tools: {
byProvider: {
"google-antigravity": { allow: ["message", "sessions_list"] },
},
},
},
],
},
}
Mga grupo ng tool (shorthands)¶
Sinusuportahan ng mga tool policy (global, agent, sandbox) ang mga group:* na entry na lumalawak sa maraming tool.
33. Gamitin ang mga ito sa tools.allow / tools.deny.
Mga available na grupo:
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: lahat ng built-in na OpenClaw tool (hindi kasama ang provider plugins)
Halimbawa (payagan lamang ang mga file tool + browser):
{
tools: {
allow: ["group:fs", "browser"],
},
}
Plugins + mga tool¶
- Maaaring magrehistro ang mga plugin ng karagdagang mga tool (at mga CLI command) lampas sa core set. See Plugins for install + config, and Skills for how tool usage guidance is injected into prompts. 35. Ang ilang plugin ay may dalang sarili nilang skills kasama ng mga tool (halimbawa, ang voice-call plugin).
Opsyonal na mga plugin tool:
- Lobster: typed na workflow runtime na may resumable approvals (nangangailangan ng Lobster CLI sa host ng Gateway).
- LLM Task: JSON-only na LLM step para sa structured workflow output (opsyonal na schema validation).
Imbentaryo ng tool¶
apply_patch¶
- Mag-apply ng structured na mga patch sa isa o higit pang file. Use for multi-hunk edits.
Experimental: enable via
tools.exec.applyPatch.enabled(OpenAI models only).
exec¶
Magpatakbo ng mga shell command sa workspace.
Mga core parameter:
command(required)yieldMs(auto-background pagkatapos ng timeout, default 10000)background(agarang background)timeout(seconds; pinapatay ang proseso kapag lumampas, default 1800)elevated(bool; tumakbo sa host kung naka-enable/pinapayagan ang elevated mode; binabago lang ang behavior kapag naka-sandbox ang agent)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(node id/name para sahost=node)- Need a real TTY? 37. Itakda ang
pty: true.
Mga tala:
- Nagbabalik ng
status: "running"na maysessionIdkapag naka-background. - Gamitin ang
processpara mag-poll/mag-log/magsulat/pumatay/mag-clear ng mga background session. - Kapag hindi pinapayagan ang
process, tumatakbo nang synchronous angexecat binabalewala angyieldMs/background. - Ang
elevateday naka-gate ngtools.elevatedkasama ang anumangagents.list[].tools.elevatedoverride (parehong dapat payagan) at alias ito nghost=gateway+security=full. - Ang
elevateday binabago lamang ang behavior kapag naka-sandbox ang agent (kung hindi, no-op). - Maaaring i-target ng
host=nodeang isang macOS companion app o isang headless na host ng node (openclaw node run). - Mga approval at allowlist ng gateway/node: Exec approvals.
process¶
Pamahalaan ang mga background exec session.
Mga core action:
list,poll,log,write,kill,clear,remove
Mga tala:
- Ang
pollay nagbabalik ng bagong output at exit status kapag kumpleto na. - Sinusuportahan ng
logang line-based naoffset/limit(alisin angoffsetpara kunin ang huling N linya). - Ang
processay scoped per agent; hindi nakikita ang mga session mula sa ibang agent.
web_search¶
Maghanap sa web gamit ang Brave Search API.
Mga core parameter:
query(required)count(1–10; default mula satools.web.search.maxResults)
Mga tala:
- Nangangailangan ng Brave API key (inirerekomenda:
openclaw configure --section web, o itakda angBRAVE_API_KEY). - I-enable sa pamamagitan ng
tools.web.search.enabled. - Naka-cache ang mga response (default 15 min).
- Tingnan ang Web tools para sa setup.
web_fetch¶
Kunin at i-extract ang nababasang content mula sa isang URL (HTML → markdown/text).
Mga core parameter:
url(required)extractMode(markdown|text)maxChars(i-truncate ang mahahabang pahina)
Mga tala:
- I-enable sa pamamagitan ng
tools.web.fetch.enabled. - Ang
maxCharsay naka-clamp ngtools.web.fetch.maxCharsCap(default 50000). - Naka-cache ang mga response (default 15 min).
- Para sa mga site na mabigat sa JS, mas mainam ang browser tool.
- Tingnan ang Web tools para sa setup.
- Tingnan ang Firecrawl para sa opsyonal na anti-bot fallback.
browser¶
Kontrolin ang dedikadong browser na pinamamahalaan ng OpenClaw.
Mga core action:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(nagbabalik ng image block +MEDIA:<path>)act(mga UI action: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
Pamamahala ng profile:
profiles— ilista ang lahat ng browser profile na may statuscreate-profile— lumikha ng bagong profile na may auto-allocated port (ocdpUrl)delete-profile— ihinto ang browser, burahin ang user data, alisin sa config (local lamang)reset-profile— patayin ang orphan process sa port ng profile (local lamang)
Mga karaniwang parameter:
profile(opsyonal; default sabrowser.defaultProfile)target(sandbox|host|node)node(opsyonal; pumipili ng partikular na node id/name) Mga tala:- Nangangailangan ng
browser.enabled=true(default aytrue; itakda angfalsepara i-disable). - Tumatanggap ang lahat ng action ng opsyonal na
profileparameter para sa multi-instance support. - Kapag hindi ibinigay ang
profile, ginagamit angbrowser.defaultProfile(default na "chrome"). - Mga pangalan ng profile: lowercase alphanumeric + hyphens lamang (max 64 chars).
- Saklaw ng port: 18800-18899 (~100 profile max).
- Ang mga remote profile ay attach-only (walang start/stop/reset).
- Kung may nakakonektang browser-capable na node, maaaring auto-route dito ang tool (maliban kung i-pin mo ang
target). - Ang
snapshotay default saaikapag naka-install ang Playwright; gamitin angariapara sa accessibility tree. - Sinusuportahan din ng
snapshotang mga role-snapshot option (interactive,compact,depth,selector) na nagbabalik ng mga ref tulad nge12. - Ang
actay nangangailangan ngrefmula sasnapshot(numeric na12mula sa AI snapshots, oe12mula sa role snapshots); gamitin angevaluatepara sa bihirang pangangailangan ng CSS selector. - Iwasan ang
act→waitbilang default; gamitin lamang sa mga eksepsiyonal na kaso (walang maaasahang UI state na mahihintayan). - Ang
uploaday maaaring magpasa ngrefpara auto-click pagkatapos i-arm. - Sinusuportahan din ng
uploadanginputRef(aria ref) oelement(CSS selector) para direktang itakda ang<input type="file">.
canvas¶
Patakbuhin ang node Canvas (present, eval, snapshot, A2UI).
Mga core action:
present,hide,navigate,evalsnapshot(nagbabalik ng image block +MEDIA:<path>)a2ui_push,a2ui_reset
Mga tala:
- Ginagamit ang gateway
node.invokesa likod ng eksena. - Kung walang ibinigay na
node, pumipili ang tool ng default (isang nakakonektang node o lokal na mac node). - Ang A2UI ay v0.8 lamang (walang
createSurface); tinatanggihan ng CLI ang v0.9 JSONL na may mga error sa linya. - Quick smoke:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes¶
Tuklasin at i-target ang mga naka-pair na node; magpadala ng mga notification; kumuha ng camera/screen.
Mga core action:
status,describepending,approve,reject(pairing)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
Mga tala:
- Ang mga command ng camera/screen ay nangangailangan na naka-foreground ang node app.
- Nagbabalik ang mga image ng image blocks +
MEDIA:<path>. - Nagbabalik ang mga video ng
FILE:<path>(mp4). - Ang location ay nagbabalik ng JSON payload (lat/lon/accuracy/timestamp).
- Mga parameter ng
run:commandargv array; opsyonal nacwd,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
Halimbawa (run):
{
"action": "run",
"node": "office-mac",
"command": ["echo", "Hello"],
"env": ["FOO=bar"],
"commandTimeoutMs": 12000,
"invokeTimeoutMs": 45000,
"needsScreenRecording": false
}
image¶
Suriin ang isang larawan gamit ang naka-configure na image model.
Mga core parameter:
image(required na path o URL)prompt(opsyonal; default sa "Describe the image.")model(opsyonal na override)maxBytesMb(opsyonal na size cap)
Mga tala:
- Available lamang kapag naka-configure ang
agents.defaults.imageModel(primary o fallbacks), o kapag maaaring ma-infer ang implicit image model mula sa iyong default model + naka-configure na auth (best-effort pairing). - Direktang ginagamit ang image model (hiwalay sa pangunahing chat model).
message¶
Magpadala ng mga mensahe at channel action sa Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams.
Mga core action:
send(text + opsyonal na media; sinusuportahan din ng MS Teams angcardpara sa 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
Mga tala:
- Ang
senday niruruta ang WhatsApp sa pamamagitan ng Gateway; ang ibang channel ay diretso. - Ginagamit ng
pollang Gateway para sa WhatsApp at MS Teams; diretso ang Discord polls. - Kapag ang message tool call ay naka-bind sa isang aktibong chat session, nililimitahan ang mga send sa target ng session na iyon upang maiwasan ang cross-context leaks.
cron¶
Pamahalaan ang mga Gateway cron job at wakeup.
Mga core action:
status,listadd,update,remove,run,runswake(i-enqueue ang system event + opsyonal na agarang heartbeat)
Mga tala:
- Inaasahan ng
addang isang buong cron job object (kaparehong schema ngcron.addRPC). - Ginagamit ng
updateang{ jobId, patch }(tinanggap angidpara sa compatibility).
gateway¶
I-restart o i-apply ang mga update sa tumatakbong Gateway process (in-place).
Mga core action:
restart(ina-authorize + nagpapadala ngSIGUSR1para sa in-process restart;openclaw gatewayrestart in-place)config.get/config.schemaconfig.apply(i-validate + isulat ang config + restart + wake)config.patch(i-merge ang partial update + restart + wake)update.run(patakbuhin ang update + restart + wake)
Mga tala:
- Gamitin ang
delayMs(default 2000) upang maiwasang maantala ang isang in-flight na reply. - Ang
restartay naka-disable bilang default; i-enable gamit angcommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status¶
Ilista ang mga session, siyasatin ang transcript history, o magpadala sa ibang session.
Mga core parameter:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = wala)sessions_history:sessionKey(osessionId),limit?,includeTools?sessions_send:sessionKey(osessionId),message,timeoutSeconds?(0 = fire-and-forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(default current; tumatanggap ngsessionId),model?(defaultnaglilinis ng override)
Mga tala:
- Ang
mainang canonical direct-chat key; nakatago ang global/unknown. - Kinukuha ng
messageLimit > 0ang huling N mensahe bawat session (naka-filter ang mga tool message). - Naghihintay ang
sessions_sendng final completion kapagtimeoutSeconds > 0. - Ang delivery/announce ay nangyayari pagkatapos ng completion at best-effort; kinukumpirma ng
status: "ok"na natapos ang agent run, hindi naihatid ang announce. - Nagsisimula ang
sessions_spawnng sub-agent run at nagpo-post ng announce reply pabalik sa requester chat. - Ang
sessions_spawnay non-blocking at agad na nagbabalik ngstatus: "accepted". - Ang
sessions_senday nagpapatakbo ng reply‑back ping‑pong (mag-reply ngREPLY_SKIPpara huminto; max turns sa pamamagitan ngsession.agentToAgent.maxPingPongTurns, 0–5). - Pagkatapos ng ping‑pong, nagpapatakbo ang target agent ng announce step; mag-reply ng
ANNOUNCE_SKIPpara pigilan ang announcement.
agents_list¶
Ilista ang mga agent id na maaaring i-target ng kasalukuyang session gamit ang sessions_spawn.
Mga tala:
- Ang resulta ay limitado sa per-agent allowlists (
agents.list[].subagents.allowAgents). - Kapag naka-configure ang
["*"], isinasama ng tool ang lahat ng naka-configure na agent at minamarkahan angallowAny: true.
Mga parameter (karaniwan)¶
Mga tool na naka-back ng Gateway (canvas, nodes, cron):
gatewayUrl(defaultws://127.0.0.1:18789)gatewayToken(kung naka-enable ang auth)timeoutMs
Note: when gatewayUrl is set, include gatewayToken explicitly. Tools do not inherit config
or environment credentials for overrides, and missing explicit credentials is an error.
Browser tool:
profile(opsyonal; default sabrowser.defaultProfile)target(sandbox|host|node)node(opsyonal; i-pin ang isang partikular na node id/name)
Inirerekomendang daloy ng agent¶
Browser automation:
browser→status/startsnapshot(ai o aria)act(click/type/press)screenshotkung kailangan ng visual confirmation
Canvas render:
canvas→presenta2ui_push(opsyonal)snapshot
Node targeting:
nodes→statusdescribesa napiling nodenotify/run/camera_snap/screen_record
Kaligtasan¶
- Iwasan ang direktang
system.run; gamitin angnodes→runlamang na may tahasang pahintulot ng user. - Igalang ang pahintulot ng user para sa pagkuha ng camera/screen.
- Gamitin ang
status/describeupang matiyak ang mga permiso bago tumawag ng mga media command.
Paano ipinapakita ang mga tool sa agent¶
Inilalantad ang mga tool sa dalawang magkatulad na channel:
- System prompt text: isang human-readable na listahan + gabay.
- Tool schema: ang structured function definitions na ipinapadala sa model API.
38) Ibig sabihin nito, nakikita ng agent ang parehong “kung anong mga tool ang umiiral” at “kung paano tawagin ang mga ito.” 39. Kung ang isang tool ay hindi lumalabas sa system prompt o sa schema, hindi ito maaaring tawagin ng modelo.