Werkzeuge (OpenClaw)
OpenClaw stellt erstklassige Agenten-Werkzeuge für Browser, Canvas, Nodes und Cron bereit. Diese ersetzen die altenopenclaw-* Skills: Die Werkzeuge sind typisiert, ohne Shell-Aufrufe,
und der Agent sollte sich direkt auf sie verlassen.
Werkzeuge deaktivieren
Sie können Werkzeuge global übertools.allow / tools.deny in openclaw.json erlauben/verbieten
(„deny“ gewinnt). Dadurch wird verhindert, dass nicht erlaubte Werkzeuge an Modellanbieter gesendet werden.
- Der Abgleich ist nicht case-sensitiv.
*-Wildcards werden unterstützt ("*"bedeutet alle Werkzeuge).- Wenn
tools.allownur auf unbekannte oder nicht geladene Plugin-Werkzeugnamen verweist, protokolliert OpenClaw eine Warnung und ignoriert die Allowlist, sodass Kernwerkzeuge verfügbar bleiben.
Werkzeugprofile (Basis-Allowlist)
tools.profile setzt eine Basis-Allowlist für Werkzeuge vor tools.allow/tools.deny.
Pro-Agent-Override: agents.list[].tools.profile.
Profile:
minimal: nursession_statuscoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: keine Einschränkung (wie nicht gesetzt)
Anbieterspezifische Werkzeugrichtlinie
Verwenden Sietools.byProvider, um Werkzeuge für bestimmte Anbieter
(oder ein einzelnes provider/model) weiter einzuschränken, ohne Ihre globalen Standardwerte zu ändern.
Pro-Agent-Override: agents.list[].tools.byProvider.
Dies wird nach dem Basis-Werkzeugprofil und vor Allow/Deny-Listen angewendet,
sodass der Werkzeugsatz nur eingeschränkt werden kann.
Anbieter-Schlüssel akzeptieren entweder provider (z. B. google-antigravity) oder
provider/model (z. B. openai/gpt-5.2).
Beispiel (globales Coding-Profil beibehalten, aber minimale Werkzeuge für Google Antigravity):
Werkzeuggruppen (Kurzschreibweisen)
Werkzeugrichtlinien (global, Agent, sandbox) unterstützengroup:*-Einträge, die zu mehreren Werkzeugen expandieren.
Verwenden Sie diese in tools.allow / tools.deny.
Verfügbare Gruppen:
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: alle integrierten OpenClaw-Werkzeuge (schließt Anbieter-Plugins aus)
Plugins + Werkzeuge
Plugins können zusätzliche Werkzeuge (und CLI-Befehle) über den Kernumfang hinaus registrieren. Siehe Plugins für Installation + Konfiguration und Skills dazu, wie Anleitungen zur Werkzeugnutzung in Prompts eingebettet werden. Einige Plugins liefern eigene Skills zusammen mit Werkzeugen aus (z. B. das Voice-Call-Plugin). Optionale Plugin-Werkzeuge:- Lobster: typisierte Workflow-Laufzeit mit fortsetzbaren Freigaben (erfordert die Lobster CLI auf dem Gateway-Host).
- LLM Task: reiner JSON-LLM-Schritt für strukturierte Workflow-Ausgaben (optionale Schema-Validierung).
Werkzeuginventar
apply_patch
Wenden Sie strukturierte Patches auf eine oder mehrere Dateien an. Für Multi-Hunk-Edits verwenden.
Experimentell: aktivieren über tools.exec.applyPatch.enabled (nur OpenAI-Modelle).
tools.exec.applyPatch.workspaceOnly ist standardmäßig auf true gesetzt (auf den Workspace beschränkt). Setzen Sie es nur auf false, wenn Sie ausdrücklich möchten, dass apply_patch außerhalb des Workspace-Verzeichnisses schreibt/löscht.
exec
Shell-Befehle im Workspace ausführen.
Kernparameter:
command(erforderlich)yieldMs(automatischer Hintergrund nach Timeout, Standard 10000)background(sofortiger Hintergrund)timeout(Sekunden; beendet den Prozess bei Überschreitung, Standard 1800)elevated(Bool; auf dem Host ausführen, wenn erhöhter Modus aktiviert/erlaubt ist; ändert das Verhalten nur, wenn der Agent sandboxed ist)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(Node-ID/-Name fürhost=node)- Benötigen Sie ein echtes TTY? Setzen Sie
pty: true.
- Gibt
status: "running"mit einersessionIdzurück, wenn im Hintergrund. - Verwenden Sie
process, um Hintergrund-Sitzungen abzufragen/protokollieren/schreiben/beenden/leeren. - Wenn
processnicht erlaubt ist, läuftexecsynchron und ignoriertyieldMs/background. elevatedist durchtools.elevatedplus einenagents.list[].tools.elevated-Override geschützt (beide müssen erlauben) und ist ein Alias fürhost=gateway+security=full.elevatedändert das Verhalten nur, wenn der Agent sandboxed ist (sonst No-op).host=nodekann eine macOS-Companion-App oder einen headless Node-Host adressieren (openclaw node run).- Gateway-/Node-Freigaben und Allowlists: Exec approvals.
process
Verwalten von Hintergrund-Exec Sitzungen.
Kernaktionen:
list,poll,log,write,kill,clear,remove
pollgibt neue Ausgabe und Exit-Status zurück, wenn abgeschlossen.logunterstützt zeilenbasierteoffset/limit(lassen Sieoffsetweg, um die letzten N Zeilen zu erhalten).processist pro Agent begrenzt; Sitzungen anderer Agenten sind nicht sichtbar.
web_search
Websuche mit der Brave Search API.
Kernparameter:
query(erforderlich)count(1–10; Standard austools.web.search.maxResults)
- Erfordert einen Brave-API-Schlüssel (empfohlen:
openclaw configure --section web, oder setzen SieBRAVE_API_KEY). - Aktivieren über
tools.web.search.enabled. - Antworten werden gecacht (Standard 15 Min.).
- Siehe Web tools für die Einrichtung.
web_fetch
Inhalte von einer URL abrufen und lesbar extrahieren (HTML → Markdown/Text).
Kernparameter:
url(erforderlich)extractMode(markdown|text)maxChars(lange Seiten kürzen)
- Aktivieren über
tools.web.fetch.enabled. maxCharswird durchtools.web.fetch.maxCharsCapbegrenzt (Standard 50000).- Antworten werden gecacht (Standard 15 Min.).
- Für JS-lastige Seiten bevorzugen Sie das Browser-Werkzeug.
- Siehe Web tools für die Einrichtung.
- Siehe Firecrawl für das optionale Anti-Bot-Fallback.
browser
Den dedizierten, von OpenClaw verwalteten Browser steuern.
Kernaktionen:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(liefert Image-Block +MEDIA:<path>)act(UI-Aktionen: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
profiles— alle Browser-Profile mit Status auflistencreate-profile— neues Profil mit automatisch zugewiesenem Port erstellen (odercdpUrl)delete-profile— Browser stoppen, Benutzerdaten löschen, aus der Konfiguration entfernen (nur lokal)reset-profile— verwaisten Prozess auf dem Port des Profils beenden (nur lokal)
profile(optional; Standardbrowser.defaultProfile)target(sandbox|host|node)node(optional; wählt eine spezifische Node-ID/-Name) Hinweise:- Erfordert
browser.enabled=true(Standardtrue; setzen Siefalse, um zu deaktivieren). - Alle Aktionen akzeptieren den optionalen Parameter
profilefür Multi-Instanz-Unterstützung. - Wenn
profilefehlt, wirdbrowser.defaultProfileverwendet (Standard „chrome“). - Profilnamen: nur Kleinbuchstaben, alphanumerisch + Bindestriche (max. 64 Zeichen).
- Portbereich: 18800–18899 (~100 Profile max.).
- Remote-Profile sind nur „attach-only“ (kein Start/Stopp/Reset).
- Wenn eine browserfähige Node verbunden ist, kann das Werkzeug automatisch dorthin routen (außer Sie fixieren
target). snapshotverwendet standardmäßigai, wenn Playwright installiert ist; verwenden Sieariafür den Accessibility-Tree.snapshotunterstützt auch Role-Snapshot-Optionen (interactive,compact,depth,selector), die Refs wiee12zurückgeben.acterfordertrefaussnapshot(numerische12aus AI-Snapshots odere12aus Role-Snapshots); verwenden Sieevaluatefür seltene CSS-Selektor-Fälle.- Vermeiden Sie standardmäßig
act→wait; nur in Ausnahmefällen verwenden (keine verlässliche UI-State, auf die gewartet werden kann). uploadkann optional einerefübergeben, um nach dem Scharfstellen automatisch zu klicken.uploadunterstützt auchinputRef(aria ref) oderelement(CSS-Selektor), um<input type="file">direkt zu setzen.
canvas
Das Node-Canvas steuern (present, eval, snapshot, A2UI).
Kernaktionen:
present,hide,navigate,evalsnapshot(liefert Image-Block +MEDIA:<path>)a2ui_push,a2ui_reset
- Verwendet unter der Haube Gateway-
node.invoke. - Wenn kein
nodeangegeben ist, wählt das Werkzeug einen Standard (einzelne verbundene Node oder lokaler Mac-Node). - A2UI ist nur v0.8 (kein
createSurface); die CLI lehnt v0.9-JSONL mit Zeilenfehlern ab. - Schneller Smoke-Test:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes
Gekoppelte Nodes entdecken und adressieren; Benachrichtigungen senden; Kamera/Bildschirm erfassen.
Kernaktionen:
status,describepending,approve,reject(Pairing)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
- Kamera-/Bildschirmbefehle erfordern, dass die Node-App im Vordergrund ist.
- Bilder liefern Image-Blöcke +
MEDIA:<path>. - Videos liefern
FILE:<path>(mp4). - Standort liefert ein JSON-Payload (lat/lon/accuracy/timestamp).
run-Parameter:commandargv-Array; optionalcwd,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
run):
image
Ein Bild mit dem konfigurierten Bildmodell analysieren.
Kernparameter:
image(erforderlicher Pfad oder URL)prompt(optional; Standard „Describe the image.“)model(optionaler Override)maxBytesMb(optionale Größenbegrenzung)
- Nur verfügbar, wenn
agents.defaults.imageModelkonfiguriert ist (primär oder Fallbacks) oder wenn ein implizites Bildmodell aus Ihrem Standardmodell + konfigurierter Auth abgeleitet werden kann (Best-Effort-Paarung). - Verwendet das Bildmodell direkt (unabhängig vom Haupt-Chatmodell).
message
Nachrichten und Kanalaktionen über Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams senden.
Kernaktionen:
send(Text + optionale Medien; MS Teams unterstützt zusätzlichcardfür Adaptive Cards)poll(WhatsApp/Discord/MS-Teams-Umfragen)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
sendroutet WhatsApp über das Gateway; andere Kanäle gehen direkt.pollverwendet das Gateway für WhatsApp und MS Teams; Discord-Umfragen gehen direkt.- Wenn ein Nachrichten-Werkzeugaufruf an eine aktive Chat-Sitzung gebunden ist, sind Sendungen auf das Ziel dieser Sitzung beschränkt, um Kontext-Leaks zu vermeiden.
cron
Gateway-Cron-Jobs und Wakeups verwalten.
Kernaktionen:
status,listadd,update,remove,run,runswake(Systemereignis einreihen + optionaler sofortiger Heartbeat)
adderwartet ein vollständiges Cron-Job-Objekt (gleiches Schema wiecron.addRPC).updateverwendet{ jobId, patch }(idwird aus Kompatibilitätsgründen akzeptiert).
gateway
Den laufenden Gateway-Prozess neu starten oder Updates anwenden (in-place).
Kernaktionen:
restart(autorisiert + sendetSIGUSR1für In-Process-Restart;openclaw gatewayNeustart in-place)config.get/config.schemaconfig.apply(validieren + Konfiguration schreiben + Neustart + Wake)config.patch(partielles Update zusammenführen + Neustart + Wake)update.run(Update ausführen + Neustart + Wake)
- Verwenden Sie
delayMs(Standard 2000), um eine laufende Antwort nicht zu unterbrechen. restartist standardmäßig deaktiviert; aktivieren Sie es mitcommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status
Sitzungen auflisten, Transkriptverlauf prüfen oder an eine andere Sitzung senden.
Kernparameter:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = keine)sessions_history:sessionKey(odersessionId),limit?,includeTools?sessions_send:sessionKey(odersessionId),message,timeoutSeconds?(0 = Fire-and-forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(Standard aktuell; akzeptiertsessionId),model?(defaultlöscht den Override)
mainist der kanonische Direkt-Chat-Schlüssel; global/unbekannt sind ausgeblendet.messageLimit > 0ruft die letzten N Nachrichten pro Sitzung ab (Werkzeugnachrichten gefiltert).sessions_sendwartet auf den finalen Abschluss, wenntimeoutSeconds > 0.- Zustellung/Ankündigung erfolgt nach Abschluss und ist Best-Effort;
status: "ok"bestätigt, dass der Agentenlauf beendet ist, nicht dass die Ankündigung zugestellt wurde. sessions_spawnstartet einen Sub-Agent-Lauf und postet eine Ankündigungsantwort zurück in den anfragenden Chat.sessions_spawnist nicht blockierend und gibt sofortstatus: "accepted"zurück.sessions_sendführt ein Reply-back-Pingpong aus (AntwortREPLY_SKIP, um zu stoppen; max. Züge übersession.agentToAgent.maxPingPongTurns, 0–5).- Nach dem Pingpong führt der Ziel-Agent einen Ankündigungsschritt aus; antworten Sie mit
ANNOUNCE_SKIP, um die Ankündigung zu unterdrücken.
agents_list
Agent-IDs auflisten, die die aktuelle Sitzung mit sessions_spawn adressieren darf.
Hinweise:
- Das Ergebnis ist auf Pro-Agent-Allowlists beschränkt (
agents.list[].subagents.allowAgents). - Wenn
["*"]konfiguriert ist, enthält das Werkzeug alle konfigurierten Agenten und markiertallowAny: true.
Parameter (gemeinsam)
Gateway-gestützte Werkzeuge (canvas, nodes, cron):
gatewayUrl(Standardws://127.0.0.1:18789)gatewayToken(falls Auth aktiviert)timeoutMs
gatewayUrl gesetzt ist, geben Sie gatewayToken explizit an. Werkzeuge erben keine Konfiguration
oder Umgebungs-Credentials für Overrides; fehlende explizite Credentials sind ein Fehler.
Browser-Werkzeug:
profile(optional; Standardbrowser.defaultProfile)target(sandbox|host|node)node(optional; spezifische Node-ID/-Name fixieren)
Empfohlene Agentenabläufe
Browser-Automatisierung:browser→status/startsnapshot(ai oder aria)act(click/type/press)screenshotbei Bedarf zur visuellen Bestätigung
canvas→presenta2ui_push(optional)snapshot
nodes→statusdescribeauf der gewählten Nodenotify/run/camera_snap/screen_record
Sicherheit
- Vermeiden Sie direktes
system.run; verwenden Sienodes→runnur mit ausdrücklicher Zustimmung des Nutzers. - Respektieren Sie die Zustimmung des Nutzers für Kamera-/Bildschirmaufnahmen.
- Verwenden Sie
status/describe, um Berechtigungen sicherzustellen, bevor Medienbefehle aufgerufen werden.
Wie Werkzeuge dem Agenten präsentiert werden
Werkzeuge werden in zwei parallelen Kanälen bereitgestellt:- System-Prompt-Text: eine menschenlesbare Liste + Anleitung.
- Werkzeug-Schema: die strukturierten Funktionsdefinitionen, die an die Modell-API gesendet werden.