Messages and delivery

引導佇列

當工作階段執行已在串流處理時收到一般提示,且佇列模式為 steer(預設值,無需設定),OpenClaw 會嘗試將該提示傳送至作用中的執行環境。OpenClaw 與原生 Codex app-server 測試框架採用不同方式實作傳遞細節。

本頁說明 steer 模式下一般傳入訊息的佇列模式引導機制。在 followupcollect 模式下,一般訊息會略過此路徑,等待作用中的執行完成。若要瞭解明確的 /steer <message> 命令,請參閱引導

執行環境邊界

引導不會中斷已在執行的工具呼叫。OpenClaw 會在模型邊界檢查佇列中的引導訊息:

  1. 助理要求呼叫工具。
  2. OpenClaw 執行目前助理訊息的工具呼叫批次。
  3. OpenClaw 發出回合結束事件。
  4. OpenClaw 取出佇列中的引導訊息。
  5. 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 會中止作用中的執行並開始處理最新訊息,而非進行引導。

範圍

引導一律以目前作用中的工作階段執行為目標。它不會建立新的工作階段、變更作用中執行的工具原則,也不會依傳送者拆分訊息。在多使用者頻道中,傳入提示已包含傳送者與路由內容,因此下一次模型呼叫可以得知每則訊息的傳送者。

如果希望訊息預設排入佇列,而非引導作用中的執行,請使用 followupcollect。如果最新提示應取代作用中的執行,請使用 interrupt

防彈跳

messages.queue.debounceMs 適用於佇列中的 followupcollect 傳遞。在搭配原生 Codex 測試框架的 steer 模式下,它也會設定傳送批次 turn/steer 前的靜默時間範圍。對 OpenClaw 而言,作用中引導本身不使用防彈跳計時器,因為 OpenClaw 會自然地批次收集訊息,直到下一個模型邊界為止。

相關內容

Was this useful?
On this page

On this page