exec et conserve en mémoire les tâches de longue durée. L’outil process gère ces sessions en arrière-plan.
Outil exec
Paramètres :
Comportement :
- Les exécutions au premier plan renvoient directement leur sortie.
- Lorsqu’une tâche passe en arrière-plan (explicitement ou après expiration de
yieldMs), l’outil renvoiestatus: "running"+sessionIdainsi qu’un court extrait de fin de sortie. - Les exécutions en arrière-plan et celles utilisant
yieldMshéritent detools.exec.timeoutSec, sauf si l’appel fournit explicitement untimeout. - La sortie reste en mémoire jusqu’à ce que la session soit interrogée ou effacée.
- Si l’outil
processn’est pas autorisé,execs’exécute de manière synchrone et ignoreyieldMs/background. - Les commandes exec lancées reçoivent
OPENCLAW_SHELL=execafin de permettre des règles de shell/profil tenant compte du contexte. - Pour une tâche de longue durée qui commence maintenant : lancez-la une seule fois et fiez-vous au réveil automatique à la fin de l’exécution (lorsqu’il est activé), dès que la commande produit une sortie ou échoue.
- Si le réveil automatique à la fin de l’exécution n’est pas disponible, ou si vous avez besoin de confirmer la réussite silencieuse d’une commande qui se termine correctement sans sortie, interrogez-la avec
process. - N’émulez pas des rappels ou des suivis différés au moyen de boucles
sleepou d’interrogations répétées — utilisez Cron pour les tâches futures.
Remplacements par variables d’environnement
Configuration (à privilégier par rapport aux remplacements par variables d’environnement)
Pont pour les processus enfants
Lors du lancement de processus enfants de longue durée hors des outils exec/process (relancements de la CLI, assistants du Gateway), attachez l’assistant de pont pour processus enfants afin que les signaux de terminaison soient transmis et que les écouteurs soient détachés en cas de sortie ou d’erreur. Cela évite les processus orphelins sous systemd et garantit un arrêt cohérent sur toutes les plateformes.Outil process
Actions :
Remarques :
- Seules les sessions en arrière-plan sont répertoriées et conservées — uniquement en mémoire, jamais sur disque. Les sessions sont perdues lors du redémarrage du processus.
- Une session active en arrière-plan bloque la suspension coopérative de l’hôte et le redémarrage sûr du Gateway jusqu’à ce que le propriétaire du processus confirme sa sortie effective.
process removepeut masquer immédiatement une session en cours après avoir demandé sa terminaison ; la suspension et le redémarrage restent bloqués jusqu’à la confirmation de la sortie.- Les journaux de session ne sont enregistrés dans l’historique de la discussion que si vous exécutez
process poll/loget que le résultat de l’outil est enregistré. processest limité à chaque agent ; il ne voit que les sessions lancées par cet agent.- Utilisez
poll/logpour obtenir l’état, les journaux ou la confirmation de fin lorsque le réveil automatique à la fin de l’exécution n’est pas disponible. - Utilisez
logavant de reprendre une CLI interactive, afin de voir ensemble la transcription actuelle, l’état de l’entrée standard et l’indication d’attente d’entrée. - Utilisez
write/send-keys/submit/paste/killlorsqu’une saisie ou une intervention est nécessaire. process listinclut unnamedérivé (verbe de commande + cible) pour faciliter les consultations rapides.process list,polletlogindiquentwaitingForInputuniquement lorsque l’entrée standard de la session accepte toujours les écritures et qu’elle est inactive depuis plus longtemps que le seuil d’attente d’entrée (15000 ms par défaut,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS).process logutilise des paramètresoffset/limitbasés sur les lignes. Lorsque les deux sont omis, il renvoie les 200 dernières lignes avec une indication de pagination. Lorsqueoffsetest défini sanslimit, il renvoie les lignes depuisoffsetjusqu’à la fin (sans limite de 200).- Le
timeoutdepollattend au maximum le nombre de millisecondes indiqué avant de renvoyer un résultat ; les valeurs supérieures à 30000 sont ramenées à 30000. - L’interrogation sert à obtenir un état à la demande, et non à planifier des boucles d’attente. Si le travail doit être effectué ultérieurement, utilisez Cron.