---
read_when:
    - 說明代理程式使用工具時引導的行為方式
    - 變更作用中執行佇列行為或執行階段導向整合
    - 比較引導、佇列、收集與後續追蹤模式
summary: 作用中執行導向如何在執行時邊界將訊息排入佇列
title: 引導佇列
x-i18n:
    generated_at: "2026-05-04T02:23:32Z"
    model: gpt-5.5
    provider: openai
    source_hash: c8df35b127ae0c1e1b3b684a1f63ce33874eb3d0b7bf9d0df7cb9dfce093090a
    source_path: concepts/queue-steering.md
    workflow: 16
---

當訊息抵達時，如果某個工作階段執行已經正在串流，OpenClaw 可以
將該訊息送入作用中的執行階段，而不是為同一工作階段啟動另一個執行。
公開模式與執行階段無關；Pi 和原生 Codex
app-server harness 會以不同方式實作傳遞細節。

## 執行階段邊界

導向不會中斷已經在執行的工具呼叫。Pi 會在模型邊界檢查
排入佇列的導向訊息：

1. 助理要求工具呼叫。
2. Pi 執行目前助理訊息的工具呼叫批次。
3. Pi 發出回合結束事件。
4. Pi 清空排入佇列的導向訊息。
5. 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>` 命令，請參閱[導向](/tools/steer)。

## 模式

| 模式            | 作用中執行行為                                                                                                          | 後續追蹤行為                                                             |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `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`。

## 相關

- [命令佇列](/zh-TW/concepts/queue)
- [導向](/tools/steer)
- [訊息](/zh-TW/concepts/messages)
- [代理程式迴圈](/zh-TW/concepts/agent-loop)
