Messages and delivery
ステアリングキュー
セッション実行がすでにストリーミング中に通常のプロンプトが届き、キューモードが steer(デフォルトで、設定は不要)の場合、OpenClaw はそのプロンプトをアクティブなランタイムへ送信しようとします。OpenClaw とネイティブの Codex app-server ハーネスでは、配信の詳細が異なる方法で実装されています。
このページでは、steer モードで通常の受信メッセージに適用されるキューモードのステアリングについて説明します。followup または collect モードでは、通常のメッセージはこの経路を通らず、アクティブな実行が完了するまで待機します。明示的な /steer <message> コマンドについては、ステアリングを参照してください。
ランタイム境界
ステアリングは、すでに実行中のツール呼び出しを中断しません。OpenClaw はモデル境界で、キューに入っているステアリングメッセージを確認します。
- アシスタントがツール呼び出しを要求します。
- OpenClaw が現在のアシスタントメッセージのツール呼び出しバッチを実行します。
- OpenClaw がターン終了イベントを発行します。
- OpenClaw がキューに入っているステアリングメッセージを取り出します。
- OpenClaw が次の LLM 呼び出しの前に、それらのメッセージをユーザーメッセージとして追加します。
これにより、ツールの結果と、そのツールを要求したアシスタントメッセージとの対応関係を維持したうえで、次のモデル呼び出しが最新のユーザー入力を参照できるようになります。
ネイティブの Codex app-server ハーネスは、OpenClaw ランタイムの内部ステアリングキューの代わりに turn/steer を公開します。OpenClaw は設定された待機時間中にキューに入ったプロンプトをまとめ、収集したすべてのユーザー入力を到着順に含む単一の turn/steer リクエストを送信します。
Codex のレビューターンと手動 Compaction ターンは、同一ターン内のステアリングを拒否します。ランタイムが steer モードでステアリングを受け入れられない場合、OpenClaw はアクティブな実行が完了するまで待ってからプロンプトを開始します。
モード
| モード | アクティブな実行中の動作 | その後の動作 |
|---|---|---|
steer |
可能な場合、プロンプトをアクティブなランタイムへ送ります。 | ステアリングを利用できない場合、アクティブな実行が完了するまで待機します。 |
followup |
ステアリングしません。 | アクティブな実行の終了後、キューに入ったメッセージを後で実行します。 |
collect |
ステアリングしません。 | デバウンス期間後、互換性のあるキューメッセージを後続の1ターンにまとめます。 |
interrupt |
ステアリングせずに、アクティブな実行を中止します。 | 中止後、最新のメッセージを開始します。 |
バーストの例
エージェントがツール呼び出しを実行している間に、4人のユーザーがメッセージを送信した場合:
- デフォルトの動作では、アクティブなランタイムは次のモデル判断の前に、4件すべてのメッセージを到着順で受信します。OpenClaw は次のモデル境界でそれらを取り出し、Codex は1つにまとめられた
turn/steerとして受信します。 /queue collectの場合、OpenClaw はステアリングしません。アクティブな実行が終了するまで待機し、デバウンス期間後に、互換性のあるキューメッセージを含むフォローアップターンを作成します。/queue interruptの場合、OpenClaw はアクティブな実行を中止し、ステアリングする代わりに最新のメッセージを開始します。
適用範囲
ステアリングは常に、現在アクティブなセッション実行を対象とします。新しいセッションの作成、アクティブな実行のツールポリシーの変更、送信者ごとのメッセージ分割は行いません。複数ユーザーのチャンネルでは、受信プロンプトに送信者とルートのコンテキストがすでに含まれているため、次のモデル呼び出しは各メッセージの送信者を確認できます。
アクティブな実行をステアリングする代わりに、デフォルトでメッセージをキューに入れたい場合は、followup または collect を使用します。最新のプロンプトでアクティブな実行を置き換える必要がある場合は、interrupt を使用します。
デバウンス
messages.queue.debounceMs は、キューに入った followup と collect の配信に適用されます。ネイティブの Codex ハーネスを使用する steer モードでは、まとめられた turn/steer を送信する前の待機時間も設定します。OpenClaw では、メッセージが次のモデル境界まで自然にまとめられるため、アクティブなステアリング自体にはデバウンスタイマーを使用しません。