OpenClaw esegue comandi shell tramite lo strumentoDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
exec e mantiene in memoria le attività di lunga durata. Lo strumento process gestisce queste sessioni in background.
Strumento exec
Parametri chiave:command(obbligatorio)yieldMs(predefinito 10000): passa automaticamente in background dopo questo ritardobackground(bool): passa immediatamente in backgroundtimeout(secondi, predefinitotools.exec.timeoutSec): termina il processo dopo questo timeout; impostatimeout: 0solo per disabilitare il timeout del processo exec per quella chiamataelevated(bool): esegue fuori dalla sandbox se la modalità elevata è abilitata/consentita (gatewayper impostazione predefinita, oppurenodequando la destinazione exec ènode)- Serve un vero TTY? Imposta
pty: true. workdir,env
- Le esecuzioni in primo piano restituiscono direttamente l’output.
- Quando viene passato in background (in modo esplicito o per timeout), lo strumento restituisce
status: "running"+sessionIde una breve coda. - Le esecuzioni in background e con
yieldMsereditanotools.exec.timeoutSec, a meno che la chiamata non fornisca untimeoutesplicito. - L’output viene mantenuto in memoria finché la sessione non viene interrogata o cancellata.
- Se lo strumento
processnon è consentito,execviene eseguito in modo sincrono e ignorayieldMs/background. - I comandi exec generati ricevono
OPENCLAW_SHELL=execper regole di shell/profilo consapevoli del contesto. - Per lavori di lunga durata che iniziano ora, avviali una sola volta e affidati al risveglio automatico al completamento quando è abilitato e il comando emette output o fallisce.
- Se il risveglio automatico al completamento non è disponibile, o se ti serve la
conferma di successo silenzioso per un comando terminato correttamente senza output, usa
processper confermare il completamento. - Non emulare promemoria o follow-up ritardati con cicli
sleepo polling ripetuto; usa cron per il lavoro futuro.
Bridging dei processi figlio
Quando generi processi figlio di lunga durata fuori dagli strumenti exec/process (per esempio, riavvii CLI o helper del Gateway), collega l’helper bridge per processi figlio in modo che i segnali di terminazione vengano inoltrati e i listener vengano sganciati all’uscita/errore. Questo evita processi orfani su systemd e mantiene coerente il comportamento di arresto tra piattaforme. Override di ambiente:PI_BASH_YIELD_MS: yield predefinito (ms)PI_BASH_MAX_OUTPUT_CHARS: limite dell’output in memoria (caratteri)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: limite stdout/stderr in sospeso per stream (caratteri)PI_BASH_JOB_TTL_MS: TTL per le sessioni terminate (ms, limitato a 1m–3h)OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS: soglia di output inattivo prima che le sessioni in background scrivibili vengano contrassegnate come probabilmente in attesa di input (predefinito 15000 ms)
tools.exec.backgroundMs(predefinito 10000)tools.exec.timeoutSec(predefinito 1800)tools.exec.cleanupMs(predefinito 1800000)tools.exec.notifyOnExit(predefinito true): accoda un evento di sistema + richiede Heartbeat quando un exec in background termina.tools.exec.notifyOnExitEmptySuccess(predefinito false): quando true, accoda anche eventi di completamento per esecuzioni in background riuscite che non hanno prodotto output.
Strumento process
Azioni:list: sessioni in esecuzione + terminatepoll: scarica il nuovo output di una sessione (riporta anche lo stato di uscita)log: legge l’output aggregato e mostra suggerimenti per il recupero dell’input (supportaoffset+limit)write: invia stdin (data,eofopzionale)send-keys: invia token di tasti espliciti o byte a una sessione basata su PTYsubmit: invia Invio / ritorno a capo a una sessione basata su PTYpaste: invia testo letterale, opzionalmente racchiuso in modalità paste tra parentesikill: termina una sessione in backgroundclear: rimuove una sessione terminata dalla memoriaremove: termina se in esecuzione, altrimenti cancella se terminata
- Solo le sessioni in background vengono elencate/persistite in memoria.
- Le sessioni vengono perse al riavvio del processo (nessuna persistenza su disco).
- I log delle sessioni vengono salvati nella cronologia della chat solo se esegui
process poll/loge il risultato dello strumento viene registrato. processha ambito per agente; vede solo le sessioni avviate da quell’agente.- Usa
poll/logper stato, log, conferma di successo silenzioso o conferma di completamento quando il risveglio automatico al completamento non è disponibile. - Usa
logprima di recuperare una CLI interattiva, così la trascrizione corrente, lo stato di stdin e il suggerimento di attesa input sono visibili insieme. - Usa
write/send-keys/submit/paste/killquando hai bisogno di input o intervento. process listinclude unnamederivato (verbo del comando + destinazione) per scansioni rapide.process list,pollelogriportanowaitingForInputsolo quando la sessione ha ancora stdin scrivibile ed è rimasta inattiva oltre la soglia di attesa input.process logusaoffset/limitbasati sulle righe.- Quando sia
offsetsialimitsono omessi, restituisce le ultime 200 righe e include un suggerimento di paginazione. - Quando
offsetè fornito elimitè omesso, restituisce daoffsetalla fine (non limitato a 200). - Il polling serve per lo stato su richiesta, non per pianificare cicli di attesa. Se il lavoro deve avvenire più tardi, usa cron invece.