Overview
Tools und Plugins
Alles, was der Agent über das Generieren von Text hinaus tut, geschieht über Werkzeuge. Werkzeuge sind die Art, wie der Agent Dateien liest, Befehle ausführt, im Web browsed, Nachrichten sendet und mit Geräten interagiert.
Werkzeuge, Skills und Plugins
OpenClaw hat drei Ebenen, die zusammenarbeiten:
Werkzeuge sind das, was der Agent aufruft
Ein Werkzeug ist eine typisierte Funktion, die der Agent aufrufen kann (z. B. exec, browser,
web_search, message). OpenClaw liefert eine Reihe von integrierten Werkzeugen mit, und
Plugins können zusätzliche registrieren.
Der Agent sieht Werkzeuge als strukturierte Funktionsdefinitionen, die an die Modell-API gesendet werden.
Skills lehren den Agenten, wann und wie
Ein Skill ist eine Markdown-Datei (SKILL.md), die in den System-Prompt eingefügt wird.
Skills geben dem Agenten Kontext, Einschränkungen und Schritt-für-Schritt-Anleitungen für
den effektiven Einsatz von Werkzeugen. Skills befinden sich in Ihrem Workspace, in freigegebenen Ordnern
oder werden in Plugins mitgeliefert.
Plugins bündeln alles
Ein Plugin ist ein Paket, das beliebige Kombinationen von Fähigkeiten registrieren kann: Kanäle, Modell-Provider, Werkzeuge, Skills, Sprache, Echtzeit-Transkription, Echtzeit-Sprache, Medienverständnis, Bildgenerierung, Videogenerierung, Web Fetch, Websuche und mehr. Einige Plugins sind Kern-Plugins (werden mit OpenClaw ausgeliefert), andere sind extern (von der Community auf npm veröffentlicht).
Plugins installieren und konfigurieren | Eigenes Plugin erstellen
Integrierte Werkzeuge
Diese Werkzeuge werden mit OpenClaw ausgeliefert und sind verfügbar, ohne Plugins zu installieren:
| Werkzeug | Funktion | Seite |
|---|---|---|
exec / process |
Shell-Befehle ausführen, Hintergrundprozesse verwalten | Exec, Exec-Genehmigungen |
code_execution |
Sandboxed Remote-Python-Analyse ausführen | Code Execution |
browser |
Einen Chromium-Browser steuern (navigieren, klicken, Screenshot) | Browser |
web_search / x_search / web_fetch |
Im Web suchen, X-Beiträge durchsuchen, Seiteninhalte abrufen | Web, Web Fetch |
read / write / edit |
Datei-I/O im Workspace | |
apply_patch |
Datei-Patches mit mehreren Hunks | Apply Patch |
message |
Nachrichten über alle Kanäle hinweg senden | Agent Send |
nodes |
Gekoppelte Geräte erkennen und gezielt ansprechen | |
cron / gateway |
Geplante Jobs verwalten; Gateway prüfen, patchen, neu starten oder aktualisieren | |
image / image_generate |
Bilder analysieren oder generieren | Bildgenerierung |
music_generate |
Musiktracks generieren | Musikgenerierung |
video_generate |
Videos generieren | Videogenerierung |
tts |
Einmalige Text-zu-Sprache-Konvertierung | TTS |
sessions_* / subagents / agents_list |
Sitzungsverwaltung, Status und Sub-Agent-Orchestrierung | Sub-Agents |
session_status |
Leichtgewichtiges /status-ähnliches Readback und Modell-Override pro Sitzung |
Sitzungswerkzeuge |
Für Bildarbeit verwenden Sie image für die Analyse und image_generate für Generierung oder Bearbeitung. Wenn Sie openai/*, google/*, fal/* oder einen anderen nicht standardmäßigen Bild-Provider verwenden, konfigurieren Sie zuerst die Auth/API-Schlüssel dieses Providers.
Für Musikarbeit verwenden Sie music_generate. Wenn Sie google/*, minimax/* oder einen anderen nicht standardmäßigen Musik-Provider verwenden, konfigurieren Sie zuerst die Auth/API-Schlüssel dieses Providers.
Für Videoarbeit verwenden Sie video_generate. Wenn Sie qwen/* oder einen anderen nicht standardmäßigen Video-Provider verwenden, konfigurieren Sie zuerst die Auth/API-Schlüssel dieses Providers.
Für workflowgesteuerte Audiogenerierung verwenden Sie music_generate, wenn ein Plugin wie
ComfyUI es registriert. Dies ist getrennt von tts, das Text-to-Speech ist.
session_status ist das leichtgewichtige Status-/Readback-Werkzeug in der Sitzungsgruppe.
Es beantwortet /status-ähnliche Fragen zur aktuellen Sitzung und kann
optional einen Modell-Override pro Sitzung setzen; model=default löscht diesen
Override. Wie /status kann es spärliche Token-/Cache-Zähler und das
aktive Runtime-Modell-Label aus dem neuesten Transcript-Nutzungseintrag nachtragen.
gateway ist das nur für Owner verfügbare Runtime-Werkzeug für Gateway-Vorgänge:
config.schema.lookupfür einen pfadbezogenen Config-Teilbaum vor Bearbeitungenconfig.getfür den aktuellen Config-Snapshot + Hashconfig.patchfür partielle Config-Aktualisierungen mit Neustartconfig.applynur für den vollständigen Austausch der Configupdate.runfür explizites Self-Update + Neustart
Für partielle Änderungen bevorzugen Sie config.schema.lookup und danach config.patch. Verwenden Sie
config.apply nur, wenn Sie absichtlich die gesamte Config ersetzen.
Für umfassendere Config-Dokumentation lesen Sie Konfiguration und
Konfigurationsreferenz.
Das Werkzeug weigert sich außerdem, tools.exec.ask oder tools.exec.security zu ändern;
alte tools.bash.*-Aliasse werden auf dieselben geschützten Exec-Pfade normalisiert.
Von Plugins bereitgestellte Werkzeuge
Plugins können zusätzliche Werkzeuge registrieren. Einige Beispiele:
- Canvas — experimentelles gebündeltes Plugin für Node-Canvas-Steuerung und A2UI-Rendering
- Diffs — Diff-Viewer und Renderer
- LLM Task — reiner JSON-LLM-Schritt für strukturierte Ausgabe
- Lobster — typisierte Workflow-Runtime mit fortsetzbaren Genehmigungen
- Musikgenerierung — gemeinsames
music_generate-Werkzeug mit workflowgestützten Providern - OpenProse — Markdown-first-Workflow-Orchestrierung
- Tokenjuice — komprimiert verrauschte
exec- undbash-Werkzeugergebnisse
Plugin-Werkzeuge werden weiterhin mit api.registerTool(...) erstellt und in
der contracts.tools-Liste des Plugin-Manifests deklariert. OpenClaw erfasst den validierten
Werkzeugdeskriptor während der Discovery und cached ihn nach Plugin-Quelle und Contract, sodass
spätere Werkzeugplanung das Laden der Plugin-Runtime überspringen kann. Die Werkzeugausführung lädt weiterhin
das besitzende Plugin und ruft die live registrierte Implementierung auf.
Werkzeugkonfiguration
Allow- und Deny-Listen
Steuern Sie über tools.allow / tools.deny in
der Config, welche Werkzeuge der Agent aufrufen kann. Deny gewinnt immer gegenüber Allow.
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
OpenClaw schlägt geschlossen fehl, wenn eine explizite Allowlist zu keinen aufrufbaren Werkzeugen aufgelöst wird.
Zum Beispiel funktioniert tools.allow: ["query_db"] nur, wenn ein geladenes Plugin tatsächlich
query_db registriert. Wenn kein integriertes, Plugin- oder gebündeltes MCP-Werkzeug der
Allowlist entspricht, stoppt der Lauf vor dem Modellaufruf, statt als
reiner Textlauf fortzufahren, der Werkzeugergebnisse halluzinieren könnte.
Werkzeugprofile
tools.profile setzt eine Basis-Allowlist, bevor allow/deny angewendet wird.
Override pro Agent: agents.list[].tools.profile.
| Profil | Enthaltene Werkzeuge |
|---|---|
full |
Alle Kern- und optionalen Plugin-Werkzeuge; uneingeschränkte Basis für breiteren Befehls-/Steuerungszugriff |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal |
Nur session_status |
coding enthält leichtgewichtige Webwerkzeuge (web_search, web_fetch, x_search),
aber nicht das vollständige Browser-Steuerungswerkzeug. Browserautomatisierung kann echte
Sitzungen und angemeldete Profile steuern, fügen Sie sie daher explizit mit
tools.alsoAllow: ["browser"] oder pro Agent mit
agents.list[].tools.alsoAllow: ["browser"] hinzu.
Die Profile coding und messaging erlauben außerdem konfigurierte Bundle-MCP-Werkzeuge
unter dem Plugin-Schlüssel bundle-mcp. Fügen Sie tools.deny: ["bundle-mcp"] hinzu, wenn Sie
möchten, dass ein Profil seine normalen integrierten Werkzeuge behält, aber alle konfigurierten MCP-Werkzeuge ausblendet.
Das Profil minimal enthält keine Bundle-MCP-Werkzeuge.
Beispiel (standardmäßig breiteste Werkzeugoberfläche):
{
tools: {
profile: "full",
},
}
Werkzeuggruppen
Verwenden Sie group:*-Kurzformen in Allow-/Deny-Listen:
| Gruppe | Tools |
|---|---|
group:runtime |
exec, process, code_execution (bash wird als Alias für exec akzeptiert) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas, wenn das gebündelte Canvas-Plugin aktiviert ist |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Alle integrierten OpenClaw-Tools (schließt Plugin-Tools aus) |
sessions_history gibt eine begrenzte, sicherheitsgefilterte Abrufansicht zurück. Es entfernt
Denk-Tags, <relevant-memories>-Gerüste, Tool-Aufruf-XML-Payloads im Klartext
(einschließlich <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> und gekürzte Tool-Aufruf-Blöcke),
herabgestufte Tool-Aufruf-Gerüste, durchgesickerte ASCII-/vollbreite Modellsteuerungs-
Tokens und fehlerhaftes MiniMax-Tool-Aufruf-XML aus Assistant-Text, wendet anschließend
Schwärzung/Kürzung und mögliche Platzhalter für übergroße Zeilen an, statt
als Roh-Transkript-Dump zu fungieren.
Provider-spezifische Einschränkungen
Verwenden Sie tools.byProvider, um Tools für bestimmte Provider einzuschränken, ohne
globale Standardwerte zu ändern:
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}