Messages and delivery
引導佇列
當工作階段執行已在串流,而一般提示詞此時送達,且佇列模式為 steer(預設值,無須設定)時,OpenClaw 會嘗試將該提示詞傳送至作用中的執行階段。OpenClaw 與原生 Codex app-server 測試框架會以不同方式實作傳遞細節。
本頁說明 steer 模式下一般傳入訊息的佇列模式引導行為。在 followup 或 collect 模式下,一般訊息會略過此路徑,並等候作用中的執行完成。如需瞭解明確的 /steer <message> 命令,請參閱引導。
執行階段邊界
引導不會中斷已在執行的工具呼叫。OpenClaw 會在模型邊界檢查排入佇列的引導訊息:
- 助理要求工具呼叫。
- OpenClaw 執行目前助理訊息的工具呼叫批次。
- OpenClaw 發出回合結束事件。
- OpenClaw 取出排入佇列的引導訊息。
- OpenClaw 在下一次 LLM 呼叫前,將這些訊息附加為使用者訊息。
這可讓工具結果與要求這些結果的助理訊息保持配對,接著讓下一次模型呼叫看到最新的使用者輸入。
原生 Codex app-server 測試框架公開 turn/steer,而非 OpenClaw 執行階段的內部引導佇列。OpenClaw 會在設定的靜默時間範圍內批次收集排入佇列的提示詞,接著傳送單一 turn/steer 要求,其中包含依抵達順序排列的所有使用者輸入。
Codex 審查與手動壓縮回合會拒絕同回合引導。當執行階段無法在 steer 模式下接受引導時,OpenClaw 會等候作用中的執行完成,再開始處理提示詞。
模式
| 模式 | 作用中執行的行為 | 後續行為 |
|---|---|---|
steer |
可行時將提示詞引導至作用中的執行階段。 | 若無法引導,則等候作用中的執行完成。 |
followup |
不進行引導。 | 作用中的執行結束後,再執行排入佇列的訊息。 |
collect |
不進行引導。 | 在防彈跳時間範圍結束後,將相容的佇列訊息合併為一個後續回合。 |
interrupt |
中止作用中的執行,而非加以引導。 | 中止後開始處理最新的訊息。 |
突發訊息範例
如果代理程式正在執行工具呼叫時,有四位使用者傳送訊息:
- 採用預設行為時,作用中的執行階段會在下一次模型決策前,依抵達順序收到全部四則訊息。OpenClaw 會在下一個模型邊界取出這些訊息;Codex 則會以單一批次
turn/steer接收它們。 - 採用
/queue collect時,OpenClaw 不會進行引導。它會等候作用中的執行結束,再於防彈跳時間範圍結束後,建立包含相容佇列訊息的後續回合。 - 採用
/queue interrupt時,OpenClaw 會中止作用中的執行,並開始處理最新的訊息,而非進行引導。
範圍
引導一律以目前作用中的工作階段執行為目標。它不會建立新的工作階段、不會變更作用中執行的工具政策,也不會依傳送者分割訊息。在多使用者頻道中,傳入提示詞已包含傳送者與路由情境,因此下一次模型呼叫可以得知每則訊息的傳送者。
如果你希望訊息預設排入佇列,而不是引導作用中的執行,請使用 followup 或 collect。如果最新的提示詞應取代作用中的執行,請使用 interrupt。
防彈跳
內建的佇列防彈跳適用於排入佇列的 followup 與 collect 傳遞。在搭配原生 Codex 測試框架的 steer 模式下,它也會設定傳送批次 turn/steer 前的靜默時間範圍。對 OpenClaw 而言,作用中引導本身不使用防彈跳計時器,因為 OpenClaw 會自然地將訊息批次收集至下一個模型邊界。