Gateway
Uitvoering op de achtergrond en procestool
OpenClaw voert shellopdrachten uit via de tool exec en houdt langlopende taken in het geheugen. De tool process beheert die achtergrondsessies.
Tool exec
Parameters:
| Parameter | Beschrijving |
|---|---|
command |
Vereist. Uit te voeren shellopdracht. |
workdir |
Werkmap; laat weg om de standaard-cwd te gebruiken. |
env |
Extra omgevingsvariabelen voor de opdracht. |
yieldMs |
Aantal milliseconden dat wordt gewacht voordat de opdracht naar de achtergrond gaat (standaard 10000). |
background |
Voer onmiddellijk op de achtergrond uit. |
timeout |
Time-out in seconden (standaard tools.exec.timeoutSeconds); beëindigt het proces wanneer deze verstrijkt. Stel timeout: 0 in om de time-out van het exec-proces voor die aanroep uit te schakelen. |
pty |
Voer indien beschikbaar uit in een pseudoterminal (CLI's die een TTY vereisen, codeeragents). |
elevated |
Voer buiten de sandbox uit als de verhoogde modus is ingeschakeld/toegestaan (standaard gateway, of node wanneer het exec-doel node is). |
host |
Exec-doel: auto, sandbox, gateway of node. |
node |
Node-id/-naam, gebruikt met host: "node". |
Gedrag:
- Voorgronduitvoeringen retourneren uitvoer rechtstreeks.
- Wanneer een uitvoering naar de achtergrond gaat (expliciet of via de time-out
yieldMs), retourneert de toolstatus: "running"+sessionIden een kort laatste deel van de uitvoer. - Uitvoeringen op de achtergrond en
yieldMsnementools.exec.timeoutSecondsover, tenzij de aanroep expliciet eentimeoutdoorgeeft. - Uitvoer blijft in het geheugen totdat de sessie wordt opgevraagd of gewist.
- Als de tool
processniet is toegestaan, wordenexec-uitvoeringen synchroon uitgevoerd en wordenyieldMs/backgroundgenegeerd. - Gestarte exec-opdrachten ontvangen
OPENCLAW_SHELL=execvoor contextbewuste shell-/profielregels. - Voor langlopend werk dat nu begint: start het eenmaal en vertrouw op automatisch ontwaken bij voltooiing (indien ingeschakeld) zodra de opdracht uitvoer produceert of mislukt.
- Als automatisch ontwaken bij voltooiing niet beschikbaar is, of als je een stille succesvolle uitvoering wilt bevestigen voor een opdracht die zonder uitvoer correct eindigt, vraag je de status op met
process. - Boots herinneringen of uitgestelde vervolgacties niet na met
sleep-lussen of herhaald opvragen — gebruik Cron voor toekomstig werk.
Omgevingsoverschrijvingen
| Variabele | Effect |
|---|---|
OPENCLAW_BASH_YIELD_MS |
Standaardwachttijd voordat de opdracht naar de achtergrond gaat (ms). Standaard 10000, begrensd op 10-120000. |
OPENCLAW_BASH_MAX_OUTPUT_CHARS |
Limiet voor uitvoer in het geheugen (tekens). |
OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS |
Limiet voor wachtende stdout/stderr per stream (tekens). |
OPENCLAW_BASH_JOB_TTL_MS |
TTL voor voltooide sessies (ms), begrensd op 1m-3h. |
OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS |
Drempel voor inactieve uitvoer waarna beschrijfbare achtergrondsessies worden gemarkeerd als waarschijnlijk wachtend op invoer. Standaard 15000. |
Configuratie (te verkiezen boven omgevingsoverschrijvingen)
| Sleutel | Standaard | Effect |
|---|---|---|
tools.exec.backgroundMs |
10000 | Hetzelfde als OPENCLAW_BASH_YIELD_MS. |
tools.exec.timeoutSeconds |
1800 | Standaardtime-out per aanroep. |
tools.exec.cleanupMs |
1800000 | Hetzelfde als OPENCLAW_BASH_JOB_TTL_MS. |
tools.exec.notifyOnExit |
true | Plaats een systeemgebeurtenis in de wachtrij en vraag een Heartbeat aan wanneer een exec op de achtergrond eindigt. |
tools.exec.notifyOnExitEmptySuccess |
false | Plaats ook voltooiingsgebeurtenissen in de wachtrij voor succesvolle achtergronduitvoeringen zonder uitvoer. |
Overbrugging van onderliggende processen
Wanneer je langlopende onderliggende processen buiten de exec-/proces-tools start (CLI-herstarts, Gateway-helpers), koppel je de helper voor de onderliggende-procesbrug zodat beëindigingssignalen worden doorgestuurd en listeners bij afsluiten/fouten worden losgekoppeld. Dit voorkomt verweesde processen onder systemd en houdt het afsluiten consistent tussen platforms.
Tool process
Acties:
| Actie | Effect |
|---|---|
list |
Actieve + voltooide sessies. |
poll |
Lees nieuwe uitvoer van een sessie uit (rapporteert ook de afsluitstatus). |
log |
Lees samengevoegde uitvoer en aanwijzingen voor invoerherstel. Ondersteunt offset + limit. |
write |
Stuur stdin (data, optioneel eof). |
send-keys |
Stuur expliciete toetstokens of bytes naar een sessie met PTY. |
submit |
Stuur Enter/regeleinde naar een sessie met PTY. |
paste |
Stuur letterlijke tekst, eventueel verpakt in de modus voor bracketed paste. |
kill |
Beëindig een achtergrondsessie. |
clear |
Verwijder een voltooide sessie uit het geheugen. |
remove |
Beëindig indien actief, wis anders indien voltooid. |
Opmerkingen:
- Alleen sessies op de achtergrond worden weergegeven/bewaard — uitsluitend in het geheugen, niet op schijf. Sessies gaan verloren wanneer het proces opnieuw wordt gestart.
- Een actieve achtergrondsessie blokkeert coöperatieve opschorting van de host en een veilige herstart van de Gateway totdat de proceseigenaar bevestigt dat het proces daadwerkelijk is afgesloten.
process removekan een actieve sessie direct verbergen nadat beëindiging is aangevraagd; opschorting en herstart blijven geblokkeerd totdat afsluiting is bevestigd.- Sessielogboeken worden alleen in de chatgeschiedenis opgeslagen als je
process poll/loguitvoert en het toolresultaat wordt vastgelegd. processis per agent afgebakend; het ziet alleen sessies die door die agent zijn gestart.- Gebruik
poll/logvoor status, logboeken of bevestiging van voltooiing wanneer automatisch ontwaken bij voltooiing niet beschikbaar is. - Gebruik
logvoordat je een interactieve CLI herstelt, zodat het huidige transcript, de stdin-status en de aanwijzing over wachten op invoer samen zichtbaar zijn. - Gebruik
write/send-keys/submit/paste/killwanneer invoer of ingrijpen nodig is. process listbevat een afgeleidename(opdrachtwerkwoord + doel) om snel te kunnen scannen.process list,pollenlograpporterenwaitingForInputalleen wanneer de sessie nog beschrijfbare stdin heeft en langer inactief is dan de drempel voor wachten op invoer (standaard 15000 ms,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS).process loggebruikt regelgebaseerdeoffset/limit. Wanneer beide zijn weggelaten, worden de laatste 200 regels met een pagineringsaanwijzing geretourneerd. Wanneeroffsetis ingesteld enlimitniet, wordt alles vanafoffsettot het einde geretourneerd (niet beperkt tot 200).poll'stimeoutwacht maximaal het opgegeven aantal milliseconden voordat het terugkeert; waarden boven 30000 worden begrensd op 30000.- Opvragen is bedoeld voor status op aanvraag, niet voor planning met wachtlussen. Als het werk later moet plaatsvinden, gebruik je Cron.
Voorbeelden
Voer een lange taak uit en vraag de status later op:
{ "tool": "exec", "command": "sleep 5 && echo done", "yieldMs": 1000 }{ "tool": "process", "action": "poll", "sessionId": "<id>" }Inspecteer een interactieve sessie voordat je invoer verzendt:
{ "tool": "process", "action": "log", "sessionId": "<id>" }Start onmiddellijk op de achtergrond:
{ "tool": "exec", "command": "npm run build", "background": true }Stuur stdin:
{ "tool": "process", "action": "write", "sessionId": "<id>", "data": "y\n" }Stuur PTY-toetsen:
{ "tool": "process", "action": "send-keys", "sessionId": "<id>", "keys": ["C-c"] }Verzend de huidige regel:
{ "tool": "process", "action": "submit", "sessionId": "<id>" }Plak letterlijke tekst:
{ "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }