Ogólne

Exec w OpenClaw: approvals, allowlist i bezpieczne uruchamianie kodu przez agenta AI

Exec w OpenClaw — tylko tyle i aż tyle kontroli

Agent AI ma uruchamiać kod na twoim komputerze. To brzmi ryzykownie i słusznie. OpenClaw ma jednak coś więcej niż zwykłe kategoryzacje „pozwól / zapytaj / zablokuj" — to system approvalów host exec, który łączy allowlisty, recenzję automatyczną i decyzję człowieka w jednym przepływie. Jeśli używasz agenta AI na swoim laptopie, serwerze lub w zespole, ten poradnik pokaże ci, jak skonfigurować exec bezpiecznie — i nie zgłupieć przy tym.

Jak działa exec w OpenClaw?

Exec w OpenClaw to narzędzie do uruchamiania poleceń systemowych — od prostych `ls` po złożone skrypty deploymentowe. Bez konfiguracji domyślnie działa w trybie YOLO: agent ma dostęp do hosta i może wykonać dowolne polecenie.

To nie jest błąd — OpenClaw zakłada zaufane środowisko. Ale każdy, kto uruchamia agenta w firmie, na produkcji lub nawet lokalnie przy dostępie do wrażliwych plików, powinien ten domyślny układ świadomie zaostrzyć.

Poznaj tryby: deny, allowlist, ask, auto, full

OpenClaw oferuje pięć trybów exec, które możesz ustawić globalnie lub per agent:

  • deny — blokuje wszystkie polecenia host exec. Agent czyta i pisze tylko przez narzędzia plikowe. Zero ryzyka, zero automatyzacji.
  • allowlist — pozwala tylko na komendy zdefiniowane w allowliście. Reszta jest blokowana.
  • ask — uruchamia allowlist, a przy każdej nowej komendzie pyta człowieka.
  • auto — rekomendowany tryb domyślny. Allowlist robi swoje, a przy nowych komendach włącza automatyczną recenzję (Codex Guardian / auto-review). Tylko jeśli ta nie da rady, pyta człowieka.
  • full — tryb YOLO. Bez approvalów. Używaj świadomie na zaufanych maszynach.

Krok po kroku: jak skonfigurować auto z allowlistą

Najlepsza praktyka dla większości użytkowników: tryb auto z kilkoma wpisami w allowliście.

  1. Ustaw tryb globalny:
    openclaw config set tools.exec.mode auto
  2. Sprawdź, co obowiăzuje:
    openclaw approvals get
  3. Dodaj pierwsze komendy do allowlisty — możesz to zrobić przez plik ~/.openclaw/exec-approvals.json lub przez CLI:
    openclaw approvals set --stdin <<'EOF'
    {
      "version": 1,
      "agents": {
        "main": {
          "allowlist": [
            { "id": "01", "pattern": "/usr/bin/git", "source": "initial-setup" },
            { "id": "02", "pattern": "/usr/bin/node" , "source": "initial-setup" }
          ]
        }
      }
    }
    EOF
  4. Zrestartuj gateway:
    openclaw gateway restart
  5. Sprawdź działanie:
    openclaw exec-policy show

Gotowe. Agent uruchomi git i node bez pytania, a przy każdej nowej komendzie najpierw sprawdzi to Codex Guardian, a dopiero potem zapyta ciebie.

Różnica między trybem auto a ask

Cecha ask auto
Allowlist działa tak tak
Nieznana komenda od razu pyta człowieka najpierw auto-review, potem człowiek
Codex Guardian nie użyty tak
Ilość promptów dużo (każda nowa komenda) mało (tylko gdy auto-review odrzuci)
Dla kogo? testing, środowiska audytowe codzienna praca developera

StrictInlineEval — ochrona przed eval-injection

Nawet jeśli allowliśta zawiera python czy node, OpenClaw pozwala zablokować formy -c, -e i --eval jako osobny poziom ochrony. Włącz to:

openclaw config set tools.exec.strictInlineEval true

Od tej pory python -c "print('hello')" będzie wymagać jawnej zgody, nawet jeśli sam python jest na allowliście. Chroni to przed atakami, w których agent próbuje wstrzyknąć kod przez interpreter.

Host exec vs sandbox — gdzie właściwie wykonuje się kod?

Exec może działać w trzech miejscach:

  • Gateway — tam, gdzie działa OpenClaw. Domyślne środowisko bez sandboksowania.
  • Sandbox — izolowane środowisko (Firecracker, Docker). Włącz sandboksowanie przez agents.defaults.sandbox.
  • Node — zdalna maszyna (np. kompanion macOS, headless Linux).

Tryb host=auto wybiera sandbox, gdy jest dostępny, a gateway, gdy nie. Ważne: sandboksowanie jest domyślnie wyłączone. Włącz je, jeśli chcesz fizycznie odizolować agenta od reszty systemu.

Dla kogo ten poradnik ma sens?

  • Developerzy używający OpenClaw jako coding agenta — tryb auto + allowlist na git/node/python to codzienna praca bez spamu approvalów.
  • Firmy wdrażające agenta dla zespołu — deny lub allowlist dla agentów nie-technicznych, full dla CI/CD runnerów.
  • Administratorzy z wieloma agentami — każdy agent może mieć własny allowlist i tryb exec.
  • Każdy, kto myśli „agent AI na moim komputerze brzmi niebezpiecznie” — po tej konfiguracji brzmi bezpieczniej.

Ograniczenia i ryzyka

  • Allowlist nie jest firewall. Jeśli pozwolisz na python, agent może uruchomić skrypt, który zrobi wszystko, co Python potrafi. Allowlist kontroluje co się uruchamia, nie co ten program robi.
  • File binding jest best-effort. OpenClaw próbuje związać approval z konkretnym plikiem skryptu, ale nie obejmuje wszystkich ścieżek ładowania interpretera.
  • Prompty są lokalne. Jeśli nie masz UI companion appa, domyślną odpowiedzią jest askFallback: deny — komenda zostanie zablokowana.
  • ACPX nie widzi approvalów. Dla sesji ACPX ustawiaj permissionMode osobno, bo nie mają interaktywnego TTY.
  • Co agent zrobi po approval? Nie wiesz. Zatwierdzasz komendę, ale jej skutki mogą być dalekosiężne (git push, delete plików). Zawsze czytaj, co zatwierdzasz.

FAQ

Czy mogę mieć inny tryb exec dla każdego agenta?

Tak. Ustaw ścieżkę per agent: agents.list[].tools.exec.mode.

Co się stanie, jak wybiorę auto, ale nie mam Codex?

Auto-review działa przez natywny Codex app-server. Na innych providerach tryb auto zachowuje się jak ask — nowe komendy idą do człowieka.

Jak sprawdzić, co aktualnie obowiązuje?

openclaw exec-policy show pokaże połączoną politykę z configu i pliku approvals.

Mam wrażenie, że agent działa wolno przez approval. Co robić?

Dodaj najczęstsze komendy do allowlisty i włącz tryb auto. Wtedy tylko nowe komendy przechodzą recenzję.

Czy allowlist działa na node'ach?

Tak. Ustaw approvals na zdalnym nodzie przez openclaw approvals set --node <id>.

Podsumowanie

Exec w OpenClaw nie musi być ani ryzykowny, ani upierdliwy. Tryb auto z sensowną allowlistą i włączonym strictInlineEval to dobry domyślny zestaw dla większości użytkowników. Sandboksowanie daje dodatkową warstwę izolacji, a deny pozwala całkowicie wyłączyć exec dla agentów, które nie potrzebują dostępu do terminala.

Więcej o konfiguracji znajdziesz w oficjalnej dokumentacji OpenClaw oraz na GitHubie projektu. Jeśli potrzebujesz pomocy przy wdrożeniu agentów w firmie, napisz do nas.

Powi?zane artyku?y

Je?li chcesz pog??bi? ten temat, sprawd? te?:

← Wrocz do bloga