當訊息抵達時,如果某個工作階段執行已經在串流中,OpenClaw 可以將該訊息送入作用中的執行階段,而不是為同一個工作階段啟動另一個執行。公開模式與執行階段無關;Pi 和原生 Codex app-server 控制框架會以不同方式實作傳遞細節。Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
執行階段邊界
導向不會中斷已經在執行中的工具呼叫。Pi 會在模型邊界檢查佇列中的導向訊息:- 助理要求工具呼叫。
- Pi 執行目前助理訊息的工具呼叫批次。
- Pi 發出回合結束事件。
- Pi 清空佇列中的導向訊息。
- Pi 在下一次 LLM 呼叫前,將這些訊息附加為使用者訊息。
turn/steer,而不是 Pi 的內部導向佇列。OpenClaw 會在該處轉接相同模式:
steer會在設定的安靜視窗內批次處理佇列中的訊息,接著依抵達順序傳送一個包含所有已收集使用者輸入的turn/steer要求。queue會透過傳送個別的turn/steer要求,保留舊版序列化形狀。followup、collect、steer-backlog和interrupt會維持由 OpenClaw 擁有、圍繞作用中 Codex 回合的佇列行為。
模式
| 模式 | 作用中執行行為 | 稍後後續行為 |
|---|---|---|
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 控制框架來說,OpenClaw 會使用相同的防彈跳值作為安靜視窗,然後再傳送批次 turn/steer。