Messages and delivery
引導佇列
當訊息抵達時,如果某個工作階段執行已經正在串流,OpenClaw 可以 將該訊息送入作用中的執行階段,而不是為同一工作階段啟動另一個執行。 公開模式與執行階段無關;Pi 和原生 Codex app-server harness 會以不同方式實作傳遞細節。
執行階段邊界
導向不會中斷已經在執行的工具呼叫。Pi 會在模型邊界檢查 排入佇列的導向訊息:
- 助理要求工具呼叫。
- Pi 執行目前助理訊息的工具呼叫批次。
- Pi 發出回合結束事件。
- Pi 清空排入佇列的導向訊息。
- Pi 在下一次 LLM 呼叫前,將那些訊息附加為使用者訊息。
這會讓工具結果與要求它們的助理訊息保持配對, 然後讓下一次模型呼叫看見最新的使用者輸入。
原生 Codex app-server harness 會公開 turn/steer,而不是 Pi 的
內部導向佇列。OpenClaw 會在那裡調整相同模式:
steer會在設定的靜默視窗內批次處理排入佇列的訊息,然後依抵達順序,將所有收集到的使用者輸入透過 單一turn/steer要求送出。queue會透過傳送個別的turn/steer要求,保留舊版的序列化形狀。followup、collect、steer-backlog和interrupt會維持由 OpenClaw 擁有、圍繞作用中 Codex 回合的 佇列行為。
Codex review 和手動 Compaction 回合會拒絕同一回合導向。當某個 執行階段無法接受導向時,OpenClaw 會在該模式允許的情況下退回到後續追蹤佇列。
本頁說明一般傳入訊息的佇列模式導向。若要了解
明確的 /steer <message> 命令,請參閱導向。
模式
| 模式 | 作用中執行行為 | 後續追蹤行為 |
|---|---|---|
steer |
在下一個執行階段邊界一起注入所有排入佇列的導向訊息。這是預設值。 | 只有在導向無法使用時,才退回到後續追蹤。 |
queue |
舊版一次一個的導向。Pi 會在每個模型邊界注入一則排入佇列的訊息;Codex 會傳送個別的 turn/steer 要求。 |
只有在導向無法使用時,才退回到後續追蹤。 |
steer-backlog |
與 steer 相同的作用中執行導向行為。 |
也會保留同一則訊息,以供稍後的後續追蹤回合使用。 |
followup |
不導向目前執行。 | 稍後執行排入佇列的訊息。 |
collect |
不導向目前執行。 | 在防彈跳視窗後,將相容的排入佇列訊息合併為一個稍後的回合。 |
interrupt |
中止作用中執行,然後啟動最新訊息。 | 無。 |
爆發範例
如果四位使用者在代理程式正在執行工具呼叫時傳送訊息:
steer:作用中的執行階段會在下一次模型決策前,依抵達順序收到所有四則訊息。Pi 會在下一個模型邊界清空它們;Codex 會以一個批次的turn/steer收到它們。queue:舊版序列化導向。Pi 會一次注入一則排入佇列的訊息; Codex 會收到個別的turn/steer要求。collect:OpenClaw 會等到作用中執行結束,然後在防彈跳視窗後,用相容的排入佇列訊息建立後續追蹤 回合。
範圍
導向一律以目前作用中的工作階段執行為目標。它不會建立新的 工作階段、變更作用中執行的工具政策,或依傳送者分割訊息。在 多使用者頻道中,傳入提示已包含傳送者和路由內容,因此 下一次模型呼叫可以看見每則訊息是誰傳送的。
當你希望 OpenClaw 建立稍後的後續追蹤回合,以便
合併相容訊息並保留後續追蹤佇列捨棄政策時,請使用 collect。只有在需要較舊的一次一個導向行為時,才使用
queue。
防彈跳
messages.queue.debounceMs 適用於後續追蹤傳遞,包括 collect、
followup、steer-backlog,以及當作用中執行導向無法使用時的 steer
退回。對 Pi 而言,作用中的 steer 本身不使用防彈跳計時器,因為
Pi 會自然地批次處理訊息,直到下一個模型邊界。對原生
Codex harness 而言,OpenClaw 會使用相同的防彈跳值作為靜默視窗,然後
傳送批次的 turn/steer。