steer(デフォルト、設定不要)の場合、OpenClaw はそのプロンプトをアクティブなランタイムへ送信しようとします。OpenClaw とネイティブ Codex app-server ハーネスでは、配信の詳細の実装が異なります。
このページでは、steer モードでの通常の受信メッセージに対するキューモードのステアリングについて説明します。followup または collect モードでは、通常のメッセージはこの経路をスキップし、アクティブな実行が完了するまで待機します。明示的な /steer <message> コマンドについては、Steer を参照してください。
ランタイム境界
ステアリングは、すでに実行中のツール呼び出しを中断しません。OpenClaw はモデル境界でキューに入ったステアリングメッセージを確認します。- アシスタントがツール呼び出しを要求します。
- OpenClaw が現在のアシスタントメッセージのツール呼び出しバッチを実行します。
- OpenClaw がターン終了イベントを発行します。
- OpenClaw がキューに入ったステアリングメッセージを排出します。
- OpenClaw が次の LLM 呼び出しの前に、それらのメッセージをユーザーメッセージとして追加します。
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 では、アクティブなステアリング自体はデバウンスタイマーを使用しません。OpenClaw は次のモデル境界まで自然にメッセージをバッチ化するためです。