Background Exec + Process Tool
OpenClaw uruchamia polecenia powłoki za pomocą narzędziaexec i przechowuje długotrwałe zadania w pamięci. Narzędzie process zarządza tymi sesjami w tle.
Narzędzie exec
Kluczowe parametry:command(wymagane)yieldMs(domyślnie 10000): automatyczne przeniesienie do tła po tym opóźnieniubackground(bool): natychmiastowe uruchomienie w tletimeout(sekundy, domyślnie 1800): zabija proces po upływie tego limitu czasuelevated(bool): uruchom poza sandboxem, jeśli tryb podwyższony jest włączony/dozwolony (gatewaydomyślnie lubnode, gdy celem exec jestnode)- Potrzebujesz prawdziwego TTY? Ustaw
pty: true. workdir,env
- Uruchomienia na pierwszym planie zwracają dane wyjściowe bezpośrednio.
- Po przeniesieniu do tła (jawnie lub po przekroczeniu czasu) narzędzie zwraca
status: "running"+sessionIdoraz krótki końcowy fragment logu. - Dane wyjściowe są przechowywane w pamięci, dopóki sesja nie zostanie odpytana lub wyczyszczona.
- Jeśli narzędzie
processjest niedozwolone,execdziała synchronicznie i ignorujeyieldMs/background. - Uruchomione polecenia exec otrzymują
OPENCLAW_SHELL=execdla reguł powłoki/profili uwzględniających kontekst. - W przypadku długotrwałej pracy, która ma rozpocząć się teraz, uruchom ją raz i polegaj na automatycznym wybudzeniu po zakończeniu, jeśli jest włączone i polecenie zwraca dane wyjściowe lub kończy się błędem.
- Jeśli automatyczne wybudzenie po zakończeniu jest niedostępne albo potrzebujesz cichego potwierdzenia powodzenia
dla polecenia, które zakończyło się poprawnie bez danych wyjściowych, użyj
process, aby potwierdzić zakończenie. - Nie emuluj przypomnień ani opóźnionych działań następczych za pomocą pętli
sleeplub wielokrotnego odpytywania; do przyszłych zadań używaj cron.
Mostkowanie procesów podrzędnych
Podczas uruchamiania długotrwałych procesów podrzędnych poza narzędziami exec/process (na przykład ponownych uruchomień CLI lub helperów gateway) dołącz helper mostkowania procesów podrzędnych, aby sygnały zakończenia były przekazywane, a nasłuchiwacze odłączane przy wyjściu/błędzie. Pozwala to uniknąć osieroconych procesów w systemd i utrzymuje spójne zachowanie zamykania na różnych platformach. Nadpisania środowiska:PI_BASH_YIELD_MS: domyślny yield (ms)PI_BASH_MAX_OUTPUT_CHARS: limit danych wyjściowych w pamięci (znaki)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: limit oczekującego stdout/stderr na strumień (znaki)PI_BASH_JOB_TTL_MS: TTL dla zakończonych sesji (ms, ograniczone do 1 min–3 h)
tools.exec.backgroundMs(domyślnie 10000)tools.exec.timeoutSec(domyślnie 1800)tools.exec.cleanupMs(domyślnie 1800000)tools.exec.notifyOnExit(domyślnie true): dodaje zdarzenie systemowe do kolejki + żąda heartbeat, gdyexecw tle się zakończy.tools.exec.notifyOnExitEmptySuccess(domyślnie false): gdy ma wartość true, dodaje także zdarzenia zakończenia dla pomyślnych uruchomień w tle, które nie wygenerowały danych wyjściowych.
Narzędzie process
Akcje:list: uruchomione + zakończone sesjepoll: pobiera nowe dane wyjściowe dla sesji (zgłasza także status zakończenia)log: odczytuje zagregowane dane wyjściowe (obsługujeoffset+limit)write: wysyła stdin (data, opcjonalnieeof)send-keys: wysyła jawne tokeny klawiszy lub bajty do sesji opartej na PTYsubmit: wysyła Enter / powrót karetki do sesji opartej na PTYpaste: wysyła dosłowny tekst, opcjonalnie opakowany w tryb bracketed pastekill: kończy sesję w tleclear: usuwa zakończoną sesję z pamięciremove: zabija, jeśli działa, w przeciwnym razie czyści, jeśli została zakończona
- Tylko sesje przeniesione do tła są wyświetlane/przechowywane w pamięci.
- Sesje są tracone po ponownym uruchomieniu procesu (brak trwałości na dysku).
- Logi sesji są zapisywane do historii czatu tylko wtedy, gdy uruchomisz
process poll/log, a wynik narzędzia zostanie zarejestrowany. processjest ograniczone do agenta; widzi tylko sesje uruchomione przez tego agenta.- Używaj
poll/logdo sprawdzania stanu, logów, cichego potwierdzenia powodzenia lub potwierdzenia zakończenia, gdy automatyczne wybudzenie po zakończeniu jest niedostępne. - Używaj
write/send-keys/submit/paste/kill, gdy potrzebujesz danych wejściowych lub interwencji. process listzawiera pochodnename(czasownik polecenia + cel) do szybkiego przeglądu.process logużywa opartych na wierszachoffset/limit.- Gdy pominięto zarówno
offset, jak ilimit, zwraca ostatnie 200 wierszy i zawiera wskazówkę stronicowania. - Gdy podano
offset, a pominiętolimit, zwraca dane odoffsetdo końca (bez ograniczenia do 200). - Odpytywanie służy do sprawdzania stanu na żądanie, a nie do planowania pętli oczekiwania. Jeśli zadanie ma zostać wykonane później, użyj cron.