Exec-verktyg
Kör shell‑kommandon i arbetsytan. Stöder förgrund + bakgrunds körning viaprocess.
Om process inte är tillåtet körs exec synkront och ignorerar yieldMs/background.
Bakgrundssessioner är omfattade per agent; process ser bara sessioner från samma agent.
Parametrar
command(krävs)workdir(standard: cwd)env(nyckel/värde-åsidosättningar)yieldMs(standard 10000): auto-bakgrund efter fördröjningbackground(bool): bakgrund direkttimeout(sekunder, standard 1800): döda vid utgångpty(bool): kör i en pseudo-terminal när tillgänglig (endast TTY-CLI:er, kodande agenter, terminalgränssnitt)host(sandbox | gateway | node): var exekvering skersecurity(deny | allowlist | full): verkställighetsläge förgateway/nodeask(off | on-miss | always): godkännandepromptar förgateway/nodenode(sträng): nod-id/-namn förhost=nodeelevated(bool): begär förhöjt läge (gateway-värd);security=fullframtvingas endast när förhöjning löses tillfull
hostär som standardsandbox.elevatedignoreras när sandboxing är av (exec kör redan på värden).gateway/node-godkännanden styrs av~/.openclaw/exec-approvals.json.nodekräver en parad nod (companion-app eller headless nodvärd).- Om flera noder är tillgängliga, sätt
exec.nodeellertools.exec.nodeför att välja en. - På icke-Windows-värdar använder exec
SHELLnär satt; omSHELLärfishföredrasbash(ellersh) frånPATHför att undvika fish-inkompatibla skript, och faller sedan tillbaka tillSHELLom ingen finns. - Värdkörning (
gateway/node) avvisarenv.PATHoch loader-åsidosättningar (LD_*/DYLD_*) för att förhindra binärkapning eller injicerad kod. - Viktigt: sandlådan är av som standard. Om sandboxning är avstängd körs
host=sandboxdirekt på gatewayvärden (ingen behållare) och kräver inte godkännanden. För att kräva godkännanden, kör medhost=gatewayoch konfigurera exec-godkännanden (eller aktivera sandboxning).
Konfig
tools.exec.notifyOnExit(standard: true): när true köar bakgrundskörda exec-sessioner en systemhändelse och begär ett heartbeat vid avslut.tools.exec.approvalRunningNoticeMs(standard: 10000): sänder ett enda ”kör”-meddelande när en exec som kräver godkännande kör längre än detta (0 inaktiverar).tools.exec.host(standard:sandbox)tools.exec.security(standard:denyför sandbox,allowlistför gateway + nod när ej satt)tools.exec.ask(standard:on-miss)tools.exec.node(standard: ej satt)tools.exec.pathPrepend: lista över kataloger som ska läggas till förePATHför exec-körningar.tools.exec.safeBins: stdin-only säkra binärer som kan köras utan explicita poster i tillåtelselistan.
PATH-hantering
host=gateway: sammanfogar ditt login-shellPATHtill exec-miljön.env.PATHoverrides are rejected for host execution. Själva daemonen körs fortfarande med en minimalPATH:- macOS:
/opt/homebrew/bin,/usr/local/bin,/usr/bin,/bin - Linux:
/usr/local/bin,/usr/bin,/bin
- macOS:
host=sandbox: körsh -lc(login shell) inuti behållaren, så/etc/profilekan återställaPATH. OpenClaw låtsas somenv.PATHefter profilinköp via en intern env var (ingen skalinterpolation);tools.exec.pathPrependgäller även här.host=node: endast icke-blockerade env överskrider du skickar till noden. Åsidosättningar avenv.PATHavvisas för värdkörning och ignoreras av node-värdar. Om du behöver ytterligare PATH-poster på en node, konfigurera node-värdens tjänstemiljö (systemd/launchd) eller installera verktyg på standardplatser.
Sessionsåsidosättningar (/exec)
Använd /exec för att sätta per-session standardvärden för host, security, ask och node.
Skicka /exec utan argument för att visa aktuella värden.
Exempel:
Auktorisationsmodell
/exec hedras endast för auktoriserade avsändare (kanaltillåtna listor/parkoppling plus commands.useAccessGroups).
Den uppdaterar sessionsstaten endast och skriver inte konfiguration. För att hård-disable exec, neka det via verktyget
policy (tools.deny: ["exec"] eller per-agent). Värdgodkännanden gäller fortfarande om du inte uttryckligen anger
security=full och ask=off.
Exec-godkännanden (companion-app / nodvärd)
Sandboxade agenter kan kräva godkännande per begäran innanexec körs på gateway eller nod värd.
Se Exec godkännanden för policy, allowlist och UI flöde.
När godkännanden krävs returnerar exec-verktyget omedelbart med
status: "approval-pending" och ett godkännande-id. En gång godkänd (eller nekad / tidsinställd ut),
Gateway avger systemhändelser (Exec avslutad / Exec nekad). Om kommandot fortfarande körs
efter tools.exec.approvalRunningNoticeMs, avges ett enda Exec running-meddelande.
Tillåtelselista + säkra binärer
Tillåtna verkställighet matchar lösta binära sökvägar endast (inget basnamn matchar). Närsecurity=allowlist, skalkommandon tillåts endast automatiskt om varje rörledningssegment är
tillåten eller en säker behållare. Kedjning (;, &&, ||) och omdirigeringar avvisas i
tillåtelseläge om inte varje toppnivåsegment uppfyller allowlistan (inklusive safe bins).
Omdirigeringar stöds fortfarande inte.
Exempel
Förgrund:apply_patch (experimentell)
apply_patch är ett underverktyg till exec för strukturerade multi-filredigeringar.
Aktivera det uttryckligt:
- Endast tillgängligt för OpenAI/OpenAI Codex-modeller.
- Verktygspolicy gäller fortfarande;
allow: ["exec"]tillåter implicitapply_patch. - Konfig finns under
tools.exec.applyPatch. tools.exec.applyPatch.workspaceOnlyär som standardtrue(begränsad till arbetsytan). Sätt den tillfalseendast om du avsiktligt vill attapply_patchska skriva/radera utanför arbetsytekatalogen.