Verktyg (OpenClaw)¶
OpenClaw exponerar förstklassiga agentverktyg för webbläsare, duk, noder och cron.
Dessa ersätter de gamla openclaw-* färdigheterna: verktygen är skrivna, inget skalande,
och agenten bör förlita sig på dem direkt.
Inaktivera verktyg¶
Du kan globalt tillåta/neka verktyg via tools.allow / tools.deny i openclaw.json
(neka vinner). Detta förhindrar att otillåtna verktyg skickas till modellleverantörer.
{
tools: { deny: ["browser"] },
}
Noteringar:
- Matchning är skiftlägesokänslig.
*jokertecken stöds ("*"betyder alla verktyg).- Om
tools.allowendast refererar till okända eller ej laddade plugin‑verktygsnamn loggar OpenClaw en varning och ignorerar tillåtelselistan så att kärnverktyg förblir tillgängliga.
Verktygsprofiler (bas‑tillåtelselista)¶
tools.profile anger en grundläggande lista över tillåtna verktyg före tools.allow/tools.deny.
Per-agent override: agents.list[].tools.profile.
Profiler:
minimal: endastsession_statuscoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: inga begränsningar (samma som ej satt)
Exempel (endast meddelanden som standard, tillåt även Slack + Discord‑verktyg):
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}
Exempel (kodningsprofil, men neka exec/process överallt):
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}
Exempel (global kodningsprofil, supportagent med endast meddelanden):
{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging", allow: ["slack"] },
},
],
},
}
Leverantörsspecifik verktygspolicy¶
Använd tools.byProvider till ytterligare begränsa verktyg för specifika leverantörer
(eller en enda provider/model) utan att ändra dina globala standarder.
Per-agent override: agents.list[].tools.byProvider.
Detta tillämpas efter basverktygsprofilen och före tillåta/neka listor,
så att den endast kan begränsa verktygssatsen.
Leverantörsnycklar accepterar antingen provider (t.ex. google-antigravity) eller
provider/model (t.ex. openai/gpt-5.2).
Exempel (behåll global kodningsprofil, men minimala verktyg för Google Antigravity):
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}
Exempel (leverantörs-/modellspecifik tillåtelselista för ett instabilt endpoint):
{
tools: {
allow: ["group:fs", "group:runtime", "sessions_list"],
byProvider: {
"openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
},
},
}
Exempel (agent‑specifik åsidosättning för en enskild leverantör):
{
agents: {
list: [
{
id: "support",
tools: {
byProvider: {
"google-antigravity": { allow: ["message", "sessions_list"] },
},
},
},
],
},
}
Verktygsgrupper (genvägar)¶
Verktygspolicys (global, agent, sandbox) stödjer group:*‑poster som expanderar till flera verktyg.
Använd dessa i tools.allow / tools.deny.
Tillgängliga grupper:
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: alla inbyggda OpenClaw‑verktyg (exkluderar leverantörspluginer)
Exempel (tillåt endast filverktyg + browser):
{
tools: {
allow: ["group:fs", "browser"],
},
}
Pluginer + verktyg¶
Plugins kan registrera ytterligare verktyg (och CLI-kommandon) bortom kärnuppsättningen. Se Plugins för installation + config, och Skills för hur verktygsanvändning vägledning injiceras i anvisningar. Vissa plugins skeppa sina egna färdigheter tillsammans med verktyg (till exempel röstsamtalsplugin).
Valfria plugin‑verktyg:
- Lobster: typad workflow‑runtime med återupptagbara godkännanden (kräver Lobster CLI på gateway‑värden).
- LLM Task: JSON‑endast LLM‑steg för strukturerad workflow‑utdata (valfri schemavalidering).
Verktygsinventering¶
apply_patch¶
Applicera strukturerade patchar över en eller flera filer. Använd för multi-hunk redigeringar.
Experimentellt: aktivera via tools.exec.applyPatch.enabled (OpenAI-modeller endast).
exec¶
Kör shell‑kommandon i arbetsytan.
Kärnparametrar:
command(krävs)yieldMs(auto‑bakgrund efter timeout, standard 10000)background(omedelbar bakgrund)timeout(sekunder; dödar processen om den överskrids, standard 1800)elevated(bool; kör på värd om förhöjt läge är aktiverat/tillåtet; ändrar endast beteende när agenten är sandboxad)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(nod‑id/namn förhost=node)- Behöver du en riktig TTY? Ange
pty: true.
Noteringar:
- Returnerar
status: "running"med ettsessionIdnär den körs i bakgrunden. - Använd
processför att polla/logga/skriva/döda/rensa bakgrundssessioner. - Om
processinte är tillåtet körsexecsynkront och ignoreraryieldMs/background. elevatedstyrs avtools.elevatedplus eventuellagents.list[].tools.elevated‑åsidosättning (båda måste tillåta) och är ett alias förhost=gateway+security=full.elevatedändrar endast beteende när agenten är sandboxad (annars är det en no‑op).host=nodekan rikta sig till en macOS companion‑app eller en headless nodvärd (openclaw node run).- gateway/nod‑godkännanden och tillåtelselistor: Exec approvals.
process¶
Hantera bakgrundssessioner för exec.
Kärnåtgärder:
list,poll,log,write,kill,clear,remove
Noteringar:
pollreturnerar ny utdata och exit‑status när den är klar.logstöder radbaseradoffset/limit(utelämnaoffsetför att hämta de senaste N raderna).processär per agent; sessioner från andra agenter är inte synliga.
web_search¶
Sök på webben med Brave Search API.
Kärnparametrar:
query(krävs)count(1–10; standard fråntools.web.search.maxResults)
Noteringar:
- Kräver en Brave API‑nyckel (rekommenderat:
openclaw configure --section web, eller sättBRAVE_API_KEY). - Aktivera via
tools.web.search.enabled. - Svar cachelagras (standard 15 min).
- Se Web tools för konfiguration.
web_fetch¶
Hämta och extrahera läsbart innehåll från en URL (HTML → markdown/text).
Kärnparametrar:
url(krävs)extractMode(markdown|text)maxChars(trunkera långa sidor)
Noteringar:
- Aktivera via
tools.web.fetch.enabled. maxCharsbegränsas avtools.web.fetch.maxCharsCap(standard 50000).- Svar cachelagras (standard 15 min).
- För JS‑tunga webbplatser, föredra browser‑verktyget.
- Se Web tools för konfiguration.
- Se Firecrawl för valfri anti‑bot‑fallback.
browser¶
Styr den dedikerade OpenClaw‑hanterade browsern.
Kärnåtgärder:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(returnerar bildblock +MEDIA:<path>)act(UI‑åtgärder: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
Profilhantering:
profiles— lista alla browserprofiler med statuscreate-profile— skapa ny profil med automatiskt tilldelad port (ellercdpUrl)delete-profile— stoppa browser, radera användardata, ta bort från konfig (endast lokalt)reset-profile— döda föräldralös process på profilens port (endast lokalt)
Vanliga parametrar:
profile(valfri; standardbrowser.defaultProfile)target(sandbox|host|node)node(valfri; välj specifikt nod‑id/namn) Noteringar:- Kräver
browser.enabled=true(standard ärtrue; sättfalseför att inaktivera). - Alla åtgärder accepterar valfri
profile‑parameter för stöd av flera instanser. - När
profileutelämnas användsbrowser.defaultProfile(standard "chrome"). - Profilnamn: endast gemener alfanumeriskt + bindestreck (max 64 tecken).
- Portintervall: 18800–18899 (~100 profiler max).
- Fjärrprofiler är endast attach‑only (ingen start/stop/reset).
- Om en browser‑kapabel nod är ansluten kan verktyget auto‑routa till den (om du inte pinnar
target). snapshotstandardiserar tillainär Playwright är installerat; användariaför tillgänglighetsträdet.snapshotstöder även role‑snapshot‑alternativ (interactive,compact,depth,selector) som returnerar referenser some12.actkräverreffrånsnapshot(numeriskt12från AI‑snapshots, ellere12från role‑snapshots); användevaluateför sällsynta behov av CSS‑selektor.- Undvik
act→waitsom standard; använd endast i undantagsfall (ingen pålitlig UI‑status att vänta på). uploadkan valfritt skicka ettrefför auto‑klick efter aktivering.uploadstöder äveninputRef(aria‑ref) ellerelement(CSS‑selektor) för att sätta<input type="file">direkt.
canvas¶
Styr nodens Canvas (present, eval, snapshot, A2UI).
Kärnåtgärder:
present,hide,navigate,evalsnapshot(returnerar bildblock +MEDIA:<path>)a2ui_push,a2ui_reset
Noteringar:
- Använder gateway
node.invokeunder huven. - Om ingen
nodeanges väljer verktyget en standard (en ensam ansluten nod eller lokal mac‑nod). - A2UI är endast v0.8 (ingen
createSurface); CLI avvisar v0.9 JSONL med radfel. - Snabb kontroll:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes¶
Upptäck och rikta parade noder; skicka notiser; fånga kamera/skärm.
Kärnåtgärder:
status,describepending,approve,reject(parning)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
Noteringar:
- Kamera/skärm‑kommandon kräver att nodappen är i förgrunden.
- Bilder returnerar bildblock +
MEDIA:<path>. - Videor returnerar
FILE:<path>(mp4). - Plats returnerar en JSON‑payload (lat/lon/accuracy/timestamp).
run‑parametrar:commandargv‑array; valfricwd,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
Exempel (run):
{
"action": "run",
"node": "office-mac",
"command": ["echo", "Hello"],
"env": ["FOO=bar"],
"commandTimeoutMs": 12000,
"invokeTimeoutMs": 45000,
"needsScreenRecording": false
}
image¶
Analysera en bild med den konfigurerade bildmodellen.
Kärnparametrar:
image(krävd sökväg eller URL)prompt(valfri; standard "Describe the image.")model(valfri åsidosättning)maxBytesMb(valfri storleksgräns)
Noteringar:
- Endast tillgängligt när
agents.defaults.imageModelär konfigurerad (primär eller fallbacks), eller när en implicit bildmodell kan härledas från din standardmodell + konfigurerad autentisering (best‑effort‑parning). - Använder bildmodellen direkt (oberoende av huvud‑chattmodellen).
message¶
Skicka meddelanden och kanalåtgärder över Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams.
Kärnåtgärder:
send(text + valfri media; MS Teams stöder ävencardför Adaptive Cards)poll(WhatsApp/Discord/MS Teams‑omröstningar)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
Noteringar:
sendroutar WhatsApp via Gateway; andra kanaler går direkt.pollanvänder Gateway för WhatsApp och MS Teams; Discord‑omröstningar går direkt.- När ett meddelandeverktygsanrop är bundet till en aktiv chattsession begränsas sändningar till sessionens mål för att undvika läckage mellan kontexter.
cron¶
Hantera Gateway‑cronjobb och uppvakningar.
Kärnåtgärder:
status,listadd,update,remove,run,runswake(köar systemhändelse + valfri omedelbar heartbeat)
Noteringar:
addförväntar sig ett fullständigt cronjobb‑objekt (samma schema somcron.addRPC).updateanvänder{ jobId, patch }(idaccepteras för kompatibilitet).
gateway¶
Starta om eller tillämpa uppdateringar på den körande Gateway‑processen (in‑place).
Kärnåtgärder:
restart(auktoriserar + skickarSIGUSR1för omstart i process;openclaw gatewaystartar om in‑place)config.get/config.schemaconfig.apply(validera + skriv konfig + starta om + väck)config.patch(sammanfoga partiell uppdatering + starta om + väck)update.run(kör uppdatering + starta om + väck)
Noteringar:
- Använd
delayMs(standard 2000) för att undvika att avbryta ett pågående svar. restartär inaktiverad som standard; aktivera medcommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status¶
Lista sessioner, inspektera transkripthistorik eller skicka till en annan session.
Kärnparametrar:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = ingen)sessions_history:sessionKey(ellersessionId),limit?,includeTools?sessions_send:sessionKey(ellersessionId),message,timeoutSeconds?(0 = fire‑and‑forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(standard aktuell; accepterarsessionId),model?(defaultrensar åsidosättning)
Noteringar:
mainär den kanoniska direct‑chat‑nyckeln; globala/okända döljs.messageLimit > 0hämtar de senaste N meddelandena per session (verktygsmeddelanden filtreras).sessions_sendväntar på slutlig färdigställning närtimeoutSeconds > 0.- Leverans/annonsering sker efter färdigställande och är best‑effort;
status: "ok"bekräftar att agentkörningen är klar, inte att annonseringen levererades. sessions_spawnstartar en sub‑agentkörning och postar ett announce‑svar tillbaka till begärande chatt.sessions_spawnär icke‑blockerande och returnerarstatus: "accepted"omedelbart.sessions_sendkör en svar‑ping‑pong (svaraREPLY_SKIPför att stoppa; max varv viasession.agentToAgent.maxPingPongTurns, 0–5).- Efter ping‑pong kör målagenten ett announce‑steg; svara
ANNOUNCE_SKIPför att undertrycka annonseringen.
agents_list¶
Lista agent‑id:n som den aktuella sessionen får rikta mot med sessions_spawn.
Noteringar:
- Resultatet är begränsat till per‑agent‑tillåtelselistor (
agents.list[].subagents.allowAgents). - När
["*"]är konfigurerad inkluderar verktyget alla konfigurerade agenter och markerarallowAny: true.
Parametrar (gemensamma)¶
Gateway‑backade verktyg (canvas, nodes, cron):
gatewayUrl(standardws://127.0.0.1:18789)gatewayToken(om autentisering är aktiverad)timeoutMs
Obs: när gatewayUrl är satt, inkludera gatewayToken explicit. Verktyg ärver inte config
eller miljöuppgifter för åsidosättningar, och saknade explicita referenser är ett fel.
Browser‑verktyg:
profile(valfri; standardbrowser.defaultProfile)target(sandbox|host|node)node(valfri; pinna ett specifikt nod‑id/namn)
Rekommenderade agentflöden¶
Browser‑automation:
browser→status/startsnapshot(ai eller aria)act(click/type/press)screenshotom du behöver visuell bekräftelse
Canvas‑rendering:
canvas→presenta2ui_push(valfritt)snapshot
Nod‑inriktning:
nodes→statusdescribepå vald nodnotify/run/camera_snap/screen_record
Säkerhet¶
- Undvik direkt
system.run; användnodes→runendast med uttryckligt användarsamtycke. - Respektera användarsamtycke för kamera/skärm‑inspelning.
- Använd
status/describeför att säkerställa behörigheter innan media‑kommandon anropas.
Hur verktyg presenteras för agenten¶
Verktyg exponeras i två parallella kanaler:
- Systemprompt‑text: en människoläsbar lista + vägledning.
- Verktygsschema: de strukturerade funktionsdefinitionerna som skickas till modell‑API:t.
Det betyder att agenten ser både ”vilka verktyg som finns” och ”hur man kallar dem”. Om ett verktyg inte visas i systemprompten eller schemat, kan modellen inte kalla det.