Messages and delivery
File de pilotage
Lorsqu’un message arrive alors qu’une exécution de session est déjà en streaming, OpenClaw peut envoyer ce message dans le runtime actif au lieu de démarrer une autre exécution pour la même session. Les modes publics sont neutres vis-à-vis du runtime ; Pi et le harnais app-server Codex natif implémentent les détails de livraison différemment.
Limite du runtime
Le pilotage n’interrompt pas un appel d’outil déjà en cours d’exécution. Pi vérifie les messages de pilotage en attente aux limites du modèle :
- L’assistant demande des appels d’outils.
- Pi exécute le lot d’appels d’outils du message assistant courant.
- Pi émet l’événement de fin de tour.
- Pi vide les messages de pilotage en attente.
- Pi ajoute ces messages comme messages utilisateur avant le prochain appel LLM.
Cela garde les résultats d’outil associés au message assistant qui les a demandés, puis permet au prochain appel au modèle de voir la dernière saisie utilisateur.
Le harnais app-server Codex natif expose turn/steer au lieu de la file de pilotage
interne de Pi. OpenClaw y adapte les mêmes modes :
steerregroupe les messages en attente pendant la fenêtre de silence configurée, puis envoie une seule requêteturn/steeravec toutes les saisies utilisateur collectées dans l’ordre d’arrivée.queueconserve la forme sérialisée héritée en envoyant des requêtesturn/steerséparées.followup,collect,steer-backlogetinterruptrestent un comportement de file d’attente géré par OpenClaw autour du tour Codex actif.
Les tours de revue Codex et de compaction manuelle refusent le pilotage dans le même tour. Lorsqu’un runtime ne peut pas accepter le pilotage, OpenClaw revient à la file de suivi lorsque ce mode l’autorise.
Cette page explique le pilotage en mode file d’attente pour les messages entrants normaux. Pour la
commande explicite /steer <message>, consultez Pilotage.
Modes
| Mode | Comportement pendant l’exécution active | Comportement de suivi ultérieur |
|---|---|---|
steer |
Injecte tous les messages de pilotage en attente ensemble à la prochaine limite du runtime. C’est le comportement par défaut. | Revient au suivi uniquement lorsque le pilotage est indisponible. |
queue |
Pilotage hérité, un message à la fois. Pi injecte un message en attente par limite de modèle ; Codex envoie des requêtes turn/steer séparées. |
Revient au suivi uniquement lorsque le pilotage est indisponible. |
steer-backlog |
Même comportement de pilotage pendant l’exécution active que steer. |
Conserve aussi le même message pour un tour de suivi ultérieur. |
followup |
Ne pilote pas l’exécution courante. | Exécute les messages en attente plus tard. |
collect |
Ne pilote pas l’exécution courante. | Fusionne les messages en attente compatibles en un tour ultérieur après la fenêtre de debounce. |
interrupt |
Abandonne l’exécution active, puis démarre le message le plus récent. | Aucun. |
Exemple de rafale
Si quatre utilisateurs envoient des messages pendant que l’agent exécute un appel d’outil :
steer: le runtime actif reçoit les quatre messages dans l’ordre d’arrivée avant sa prochaine décision de modèle. Pi les vide à la prochaine limite du modèle ; Codex les reçoit comme un seulturn/steergroupé.queue: pilotage sérialisé hérité. Pi injecte un message en attente à la fois ; Codex reçoit des requêtesturn/steerséparées.collect: OpenClaw attend la fin de l’exécution active, puis crée un tour de suivi avec les messages en attente compatibles après la fenêtre de debounce.
Portée
Le pilotage cible toujours l’exécution de session active courante. Il ne crée pas de nouvelle session, ne modifie pas la politique d’outils de l’exécution active et ne répartit pas les messages par expéditeur. Dans les canaux multi-utilisateurs, les prompts entrants incluent déjà le contexte d’expéditeur et de routage, de sorte que le prochain appel au modèle peut voir qui a envoyé chaque message.
Utilisez collect lorsque vous voulez qu’OpenClaw construise un tour de suivi ultérieur pouvant
fusionner les messages compatibles et préserver la politique d’abandon de la file de suivi. Utilisez
queue uniquement lorsque vous avez besoin de l’ancien comportement de pilotage un message à la fois.
Debounce
messages.queue.debounceMs s’applique à la livraison de suivi, y compris collect,
followup, steer-backlog et le repli de steer lorsque le pilotage pendant l’exécution active n’est pas
disponible. Pour Pi, steer actif lui-même n’utilise pas le minuteur de debounce, car
Pi regroupe naturellement les messages jusqu’à la prochaine limite du modèle. Pour le harnais
Codex natif, OpenClaw utilise la même valeur de debounce comme fenêtre de silence avant
d’envoyer le turn/steer groupé.