Bakgrunds-Exec + Processverktyg
OpenClaw kör skalkommandon genom verktygetexec och håller långvariga uppgifter i minnet. Verktyget process hanterar dessa bakgrundssessioner.
exec-verktyg
Viktiga parametrar:command(krävs)yieldMs(standard 10000): bakgrundslägg automatiskt efter denna fördröjningbackground(bool): kör i bakgrunden direkttimeout(sekunder, standard 1800): avsluta processen efter denna timeoutelevated(bool): kör på värden om upphöjt läge är aktiverat/tillåtet- Behöver du en riktig TTY? Ange
pty: true. workdir,env
- Körningar i förgrunden returnerar utdata direkt.
- När den körs i bakgrunden (explicit eller via timeout) returnerar verktyget
status: "running"+sessionIdsamt en kort svans. - Utdata hålls i minnet tills sessionen pollas eller rensas.
- Om verktyget
processär otillåtet körsexecsynkront och ignoreraryieldMs/background.
Bryggning av barnprocesser
När du skapar långlivade barnprocesser utanför exekvera/processverktygen (till exempel återuppstår CLI eller gatewayhjälpare), bifoga brohjälparen för barnprocessen så att uppsägningssignalerna vidarebefordras och lyssnarna är fristående vid exit/fel. Detta undviker övergivna processer på systemd och håller avstängningsbeteendet konsekvent över plattformar. Miljöåsidosättningar:PI_BASH_YIELD_MS: standard-yield (ms)PI_BASH_MAX_OUTPUT_CHARS: gräns för utdata i minnet (tecken)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: gräns för väntande stdout/stderr per ström (tecken)PI_BASH_JOB_TTL_MS: TTL för avslutade sessioner (ms, begränsad till 1 m–3 h)
tools.exec.backgroundMs(standard 10000)tools.exec.timeoutSec(standard 1800)tools.exec.cleanupMs(standard 1800000)tools.exec.notifyOnExit(standard true): köa en systemhändelse + begär hjärtslag när en bakgrundsexekvering avslutas.tools.exec.notifyOnExitEmptySuccess(standard false): när true köas även slutförandehändelser för lyckade bakgrundskörningar som inte producerade någon output.
process-verktyg
Åtgärder:list: körande + avslutade sessionerpoll: töm ny utdata för en session (rapporterar även avslutsstatus)log: läs den aggregerade utdatan (stöderoffset+limit)write: skicka stdin (data, valfrieof)kill: terminera en bakgrundssessionclear: ta bort en avslutad session från minnetremove: döda om den körs, annars rensa om den är avslutad
- Endast bakgrundssessioner listas/persisteras i minnet.
- Sessioner går förlorade vid omstart av processen (ingen persistens på disk).
- Sessionsloggar sparas endast i chatthistoriken om du kör
process poll/logoch verktygsresultatet registreras. processär avgränsad per agent; den ser endast sessioner som startats av den agenten.process listinkluderar en härleddname(kommandoverb + mål) för snabba överblickar.process loganvänder radbaseradoffset/limit(utelämnaoffsetför att hämta de senaste N raderna).- När både
offsetochlimitutelämnas returneras de senaste 200 raderna och en pagineringshint inkluderas. - När
offsetanges ochlimitutelämnas returneras allt frånoffsettill slutet (begränsas inte till 200).