exec aus und hält lang laufende Aufgaben im Speicher. Das Tool process verwaltet diese Hintergrundsitzungen.
exec-Tool
Parameter:
Verhalten:
- Ausführungen im Vordergrund geben die Ausgabe direkt zurück.
- Bei Ausführung im Hintergrund (explizit oder durch Zeitüberschreitung von
yieldMs) gibt das Toolstatus: "running"+sessionIdund einen kurzen Ausschnitt vom Ende der Ausgabe zurück. - Ausführungen im Hintergrund und mit
yieldMsübernehmentools.exec.timeoutSeconds, sofern der Aufruf nicht ausdrücklichtimeoutübergibt. - Die Ausgabe bleibt im Speicher, bis die Sitzung abgefragt oder gelöscht wird.
- Wenn das Tool
processnicht zulässig ist, werdenexec-Ausführungen synchron ausgeführt undyieldMs/backgroundignoriert. - Gestartete exec-Befehle erhalten
OPENCLAW_SHELL=execfür kontextabhängige Shell-/Profilregeln. - Für lang laufende Arbeiten, die jetzt beginnen: Starten Sie sie einmal und verlassen Sie sich, sofern aktiviert, auf die automatische Benachrichtigung bei Abschluss, sobald der Befehl eine Ausgabe erzeugt oder fehlschlägt.
- Wenn die automatische Benachrichtigung bei Abschluss nicht verfügbar ist oder Sie den stillen Erfolg eines Befehls bestätigen müssen, der ohne Ausgabe ordnungsgemäß beendet wird, fragen Sie mit
processab. - Simulieren Sie Erinnerungen oder verzögerte Folgeaktionen nicht mit
sleep-Schleifen oder wiederholten Abfragen – verwenden Sie Cron für zukünftige Arbeiten.
Umgebungsüberschreibungen
Konfiguration (gegenüber Umgebungsüberschreibungen bevorzugt)
Überbrückung von Kindprozessen
Wenn lang laufende Kindprozesse außerhalb der exec-/process-Tools gestartet werden (CLI-Neustarts, Gateway-Hilfsprozesse), binden Sie den Hilfsmechanismus zur Überbrückung von Kindprozessen ein, damit Beendigungssignale weitergeleitet und Listener beim Beenden/bei Fehlern entfernt werden. Dies verhindert verwaiste Prozesse unter systemd und gewährleistet ein plattformübergreifend konsistentes Herunterfahren.process-Tool
Aktionen:
Hinweise:
- Nur Hintergrundsitzungen werden aufgelistet/gespeichert – ausschließlich im Speicher, nicht auf dem Datenträger. Sitzungen gehen bei einem Prozessneustart verloren.
- Eine aktive Hintergrundsitzung verhindert die kooperative Suspendierung des Hosts und einen sicheren Neustart des Gateways, bis der Prozesseigentümer das tatsächliche Ende bestätigt.
process removekann eine laufende Sitzung unmittelbar nach dem Anfordern der Beendigung ausblenden; Suspendierung und Neustart bleiben bis zur Bestätigung des Endes blockiert.- Sitzungsprotokolle werden nur im Chatverlauf gespeichert, wenn Sie
process poll/logausführen und das Tool-Ergebnis aufgezeichnet wird. processist auf den jeweiligen Agenten beschränkt; es sieht nur Sitzungen, die von diesem Agenten gestartet wurden.- Verwenden Sie
poll/logfür Status, Protokolle oder die Bestätigung des Abschlusses, wenn die automatische Benachrichtigung bei Abschluss nicht verfügbar ist. - Verwenden Sie
log, bevor Sie eine interaktive CLI wiederaufnehmen, damit das aktuelle Transkript, der stdin-Status und der Hinweis zum Warten auf Eingabe gemeinsam sichtbar sind. - Verwenden Sie
write/send-keys/submit/paste/kill, wenn Eingaben oder ein Eingriff erforderlich sind. process listenthält für eine schnelle Übersicht eine abgeleitete Angabename(Befehlsverb + Ziel).process list,pollundlogmeldenwaitingForInputnur, wenn die Sitzung weiterhin über beschreibbares stdin verfügt und länger als der Schwellenwert für das Warten auf Eingabe inaktiv war (Standardwert: 15000 ms,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS).process logverwendet zeilenbasierte Angaben füroffset/limit. Wenn beide weggelassen werden, werden die letzten 200 Zeilen mit einem Hinweis zur Seitennavigation zurückgegeben. Wennoffsetfestgelegt ist undlimitnicht, wird der Bereich vonoffsetbis zum Ende zurückgegeben (nicht auf 200 begrenzt).pollstimeoutwartet vor der Rückgabe bis zu der angegebenen Anzahl von Millisekunden; Werte über 30000 werden auf 30000 begrenzt.- Abfragen dienen dem bedarfsgesteuerten Statusabruf, nicht der Planung von Warteschleifen. Wenn die Arbeit später stattfinden soll, verwenden Sie Cron.