Das Exec-Tool von OpenClaw
Eine verändernde Shell-Oberfläche mit Host-Auflösung zwischen Sandbox, Gateway und Node, die fünf Richtlinienmodi von deny bis full, der automatische Prüfer, strikte Inline-Eval, Pfadbehandlung und Overrides pro Sitzung
Exec ist das Tool, das einen Agenten handlungsfähig macht, und dasjenige, das die meiste Sorgfalt verdient. Es ist eine Shell, es schreibt Dateien, und wo es läuft, ist eine Frage der Auflösung statt einer festen Antwort. Hier sind die Parameter, die Platzierungsregeln, die fünf Richtlinienmodi mit dem Prüfer, der in einem von ihnen sitzt, und die Sitzungs-Befehle, die verschärfen, aber nie lockern können.
Parameter und Platzierung
- Der Befehl ist der einzige Pflichtparameter; ein Arbeitsverzeichnis, Umgebungs-Overrides, eine Wartezeit vor dem Wechsel in den Hintergrund, ein Flag für sofortigen Hintergrundbetrieb, ein Timeout pro Aufruf in Sekunden, ein Pseudoterminal-Flag für reine Terminalprogramme, ein Ask-Modus, ein Node-Selektor und ein Elevated-Flag vervollständigen die Parameter, und ein Timeout von 0 deaktiviert das Prozess-Timeout für diesen Aufruf.
- Der Parameter host akzeptiert nur auto, sandbox, gateway oder node und ist keine Auswahl eines Hostnamens; auto erbt den konfigurierten Host einschließlich Agenten- und Sitzungs-Overrides, und ist dieser ebenfalls auto, wird er zur Sandbox aufgelöst, wenn eine Sandbox-Laufzeitumgebung aktiv ist, und sonst zum Gateway, während eine Sitzung, die eine Sandbox erfordert, in jedem Fall in der Sandbox bleibt.
- Solange eine Sandbox-Laufzeitumgebung aktiv ist, hält auto exec in der Sandbox und lehnt Gateway- oder Node-Overrides pro Aufruf ab, wer eines davon erzwingen will, muss also den konfigurierten Host explizit setzen; die Ausführung auf einem Node erfordert einen gekoppelten, verbundenen Node, der den Run-Befehl unterstützt, und sind mehrere geeignete Nodes verbunden, muss in der Konfiguration oder pro Sitzung ein Ziel gewählt werden.
- Die Host-Ausführung lehnt Overrides von Pfad- und Loader-Umgebungsvariablen ab, um das Kapern von Binärdateien zu verhindern, normalisiert einen Pager-Override auf einen leeren Wert, statt einen Programmnamen weiterzugeben, setzt eine Markierungsvariable, damit Shell-Profile den Exec-Kontext erkennen können, und führt auf dem Gateway den Pfad der Login-Shell zusammen, während ein erfasster Start-Snapshot geladen wird, der nach Secrets aussehende Variablen ausschließt.
exec ist eine verändernde Shell-Oberfläche: Befehle können Dateien überall dort erstellen, bearbeiten oder löschen, wo das Dateisystem des gewählten Hosts oder der Sandbox es erlaubt.
Die fünf Modi und der Prüfer
Der Schlüssel mode ist der kanonische Richtlinienregler, und alles andere leitet sich davon ab. Deny blockiert exec vollständig. Zulassungsliste führt nur Befehle aus der Zulassungsliste oder Safe-Bin-Befehle aus und fragt nichts. Ask führt Zulassungslisten-Treffer direkt aus und schickt alles andere an einen Menschen. Auto führt die Treffer direkt aus und übergibt geeignete Fehltreffer an einen nativen Prüfer, der allow, deny oder ask zurückgibt; dabei führt allow einen Befehl mit niedrigem oder mittlerem Risiko einmal aus, deny liefert eine Begründung, die der Agent respektieren muss, statt sie zu umgehen, und drei aufeinanderfolgende Ablehnungen in einer Sitzung eskalieren den dritten Befehl an einen Menschen. Full läuft ohne gewöhnliche Richtlinienabfragen, und Host-Exec ohne Freigabe ist der Standard für Gateway und Node aufgrund der Standardwerte der Host-Richtlinie, nicht wegen des auto-Hosts. Auf dem Gateway müssen Befehle vor der Prüfung Bindungsprüfungen für veränderliche Dateien bestehen: Die gesamte Dispatch-Kette wird zum Prüfzeitpunkt gebunden und vor dem Start erneut geprüft, geschützte ausführbare Dateien über den aufgelösten realen Pfad und beschreibbare zusätzlich über einen Inhalts-Hash, sodass eine neue ausführbare Datei weiter vorne im Suchpfad zur Ablehnung der freigegebenen Ausführung führt. Shell-Befehls-Wrapper, Umgebungszuweisungen und andere nicht bindbare Ketten überspringen den Prüfer und nehmen stattdessen den einmaligen Weg über einen Menschen.
Inline-Eval, Pfade und Sitzungen
- Strikte Inline-Eval ist ein separates Opt-in und standardmäßig aus: Wenn die normale Auswertung der Host-Freigaben läuft, verlangt sie für erkannte Inline-Interpreter-Formen eine Prüfung durch den Prüfer oder eine explizite Freigabe, selbst wenn die Richtlinie full und off erlaubt; das deckt die Eval-Flags der gängigen Interpreter und Trägerprogramme ab, und Inline-Eval-Formen werden nie zu dauerhaften Allow-Regeln.
- Die Pfadbehandlung unterscheidet sich je nach Host: Das Gateway führt den Pfad der Login-Shell zusammen und stellt konfigurierte Verzeichnisse unmittelbar vor der Ausführung auf sichere Weise voran, die Sandbox startet eine Login-Shell im Container, sodass das Profil den Pfad zurücksetzen kann und konfigurierte Einträge erst nach dem Laden des Profils vorangestellt werden, und Node-Hosts ignorieren Pfad-Overrides vollständig, sodass zusätzliche Einträge in die Umgebung des Node-Dienstes gehören.
- Ein Sitzungs-Befehl setzt Platzierungsstandards pro Sitzung, während security und ask nur für die aktuelle Nachricht gelten; er wird nur bei autorisierten Absendern berücksichtigt, externe Absender dürfen Platzierungsstandards dauerhaft speichern, während interne Clients einen administrativen Scope benötigen, und hat eine Sitzung einen Berechtigungsmodus, kann der Override pro Turn ihn nur verschärfen, nie lockern.
Exec-Freigaben in OpenClaw ist der Freigabeablauf, den diese Modi speisen, und Erweiterte Exec-Freigaben in OpenClaw beschreibt die Safe-Bin- und Bindungsregeln dahinter.
Zwei häufige Irrtümer
Der erste ist die Annahme, die Datei-Tools seien die Schreiboberfläche: Sie zu deaktivieren macht exec nicht schreibgeschützt, weil die Shell überall dort schreibt, wo der gewählte Host es erlaubt. Der zweite ist die Annahme, Sandboxing sei aktiv: Es ist standardmäßig aus, sodass ein impliziter auto-Host zum Gateway aufgelöst wird, während eine explizite Sandbox-Anfrage sicher fehlschlägt, statt stillschweigend auf dem Host zu laufen. Das strukturierte Patch-Subtool sollte man aus demselben Grund kennen, denn das Erlauben des Tools write erlaubt es implizit, während das Verbieten von write es nicht verbietet. Exec hart zu deaktivieren ist eine Entscheidung der Tool-Richtlinie, und außerhalb einer Sitzung mit Vollzugriff gelten die Untergrenzen der Host-Freigaben weiterhin. OpenClaw-Sandboxing erklärt erklärt die Isolation und Skills in OpenClaw die Anweisungsdateien, die diese Befehle meist auslösen.
Auf Diali
Auf Diali läuft jeder Assistent in seiner eigenen Laufzeitumgebung, deren Konfiguration aus dem Dashboard generiert und bei jedem Release ersetzt wird; die Shell, die ein Agent erreicht, ist also die Laufzeitumgebung dieses Kunden und sonst nichts. Gehostetes OpenClaw auf Diali beschreibt den gehosteten Assistenten und Sicherheit bei Diali die Grenze darum.
- Das Deaktivieren der Datei-Tools macht die Shell nicht schreibgeschützt.
- Sandboxing ist standardmäßig aus; auto bedeutet dann das Gateway.
- Overrides pro Turn verschärfen die Richtlinie, sie lockern sie nie.
Genug gelesen, bauen Sie selbst einen
Richten Sie einen Agenten ein, wählen Sie einen Kanal und lassen Sie ihn in der App arbeiten, die Sie ohnehin geöffnet haben.
