Messages and delivery
Coda di guida
Quando arriva un prompt normale mentre un’esecuzione di sessione è già in streaming, OpenClaw
prova per impostazione predefinita a inviare quel prompt nel runtime attivo quando la modalità della coda
è steer. Per questo comportamento predefinito non sono richieste voci di configurazione
né direttive di coda. OpenClaw e l’harness app-server Codex nativo implementano i dettagli
di consegna in modo diverso.
Confine del runtime
Lo steering non interrompe una chiamata a uno strumento già in esecuzione. OpenClaw controlla la presenza di messaggi di steering in coda ai confini del modello:
- L’assistente richiede chiamate a strumenti.
- OpenClaw esegue il batch di chiamate a strumenti del messaggio corrente dell’assistente.
- OpenClaw emette l’evento di fine turno.
- OpenClaw svuota i messaggi di steering in coda.
- OpenClaw aggiunge quei messaggi come messaggi utente prima della successiva chiamata LLM.
Questo mantiene i risultati degli strumenti associati al messaggio dell’assistente che li ha richiesti, quindi consente alla successiva chiamata al modello di vedere l’input utente più recente.
L’harness app-server Codex nativo espone turn/steer invece della coda di steering
interna del runtime OpenClaw. OpenClaw raggruppa i prompt in coda per la finestra di quiete
configurata, quindi invia una singola richiesta turn/steer con tutto l’input utente raccolto
in ordine di arrivo.
I turni di revisione Codex e di Compaction manuale rifiutano lo steering nello stesso turno. Quando un
runtime non può accettare lo steering in modalità steer, OpenClaw attende che l’esecuzione
attiva termini prima di avviare il prompt.
Questa pagina spiega lo steering in modalità coda per i normali messaggi in ingresso quando la modalità
è steer. Se la modalità è followup o collect, i messaggi normali non entrano in
questo percorso di steering; attendono il completamento dell’esecuzione attiva. Per il comando esplicito
/steer <message>, vedi Steer.
Modalità
| Modalità | Comportamento durante l’esecuzione attiva | Comportamento successivo |
|---|---|---|
steer |
Indirizza il prompt nel runtime attivo quando possibile. | Attende il completamento dell’esecuzione attiva se lo steering non è disponibile. |
followup |
Non effettua steering. | Esegue i messaggi in coda in seguito, dopo la fine dell’esecuzione attiva. |
collect |
Non effettua steering. | Riunisce i messaggi compatibili in coda in un unico turno successivo dopo la finestra di debounce. |
interrupt |
Interrompe l’esecuzione attiva invece di indirizzarla. | Avvia il messaggio più recente dopo l’interruzione. |
Esempio di raffica
Se quattro utenti inviano messaggi mentre l’agente sta eseguendo una chiamata a uno strumento:
- Con il comportamento predefinito, il runtime attivo riceve tutti e quattro i messaggi in
ordine di arrivo prima della sua successiva decisione del modello. OpenClaw li svuota al successivo confine del modello;
Codex li riceve come un unico
turn/steerraggruppato. - Con
/queue collect, OpenClaw non effettua steering. Attende la fine dell’esecuzione attiva, quindi crea un turno di followup con i messaggi compatibili in coda dopo la finestra di debounce. - Con
/queue interrupt, OpenClaw interrompe l’esecuzione attiva e avvia il messaggio più recente invece di effettuare steering.
Ambito
Lo steering mira sempre all’esecuzione di sessione attiva corrente. Non crea una nuova sessione, non modifica la policy degli strumenti dell’esecuzione attiva e non suddivide i messaggi per mittente. Nei canali multiutente, i prompt in ingresso includono già il contesto del mittente e del percorso, quindi la successiva chiamata al modello può vedere chi ha inviato ciascun messaggio.
Usa followup o collect quando vuoi che i messaggi vengano accodati per impostazione predefinita invece
di effettuare steering sull’esecuzione attiva. Usa interrupt quando il prompt più recente deve
sostituire l’esecuzione attiva.
Debounce
messages.queue.debounceMs si applica alla consegna in coda followup e collect.
In modalità steer con l’harness Codex nativo, imposta anche la finestra di quiete
prima dell’invio del turn/steer raggruppato. Per OpenClaw, lo steering attivo in sé non usa
il timer di debounce perché OpenClaw raggruppa naturalmente i messaggi fino al successivo confine del modello.