Concept internals
入力中インジケーター
入力中インジケーターは、実行がアクティブな間チャットチャンネルに送信されます。
agents.defaults.typingMode で入力中表示が いつ 開始するかを制御し、typingIntervalSeconds
で どの頻度で 更新するかを制御します。
デフォルト
agents.defaults.typingMode が 未設定 の場合、OpenClaw は従来の動作を維持します。
- ダイレクトチャット: モデルループが開始するとすぐに入力中表示が始まります。
- メンション付きのグループチャット: 入力中表示がすぐに始まります。
- メンションなしのグループチャット: メッセージテキストのストリーミングが始まったときにのみ入力中表示が始まります。
- Heartbeat 実行: 解決された Heartbeat ターゲットが入力中表示に対応したチャットで、 入力中表示が無効化されていない場合、Heartbeat 実行の開始時に入力中表示が始まります。
モード
agents.defaults.typingMode を次のいずれかに設定します。
never- 入力中インジケーターを一切表示しません。instant- 実行が後で無音返信トークンのみを返す場合でも、モデルループが開始した直後 に入力中表示を始めます。thinking- 最初の推論デルタ で入力中表示を始めます(その実行にreasoningLevel: "stream"が必要です)。message- 最初の非無音テキストデルタ で入力中表示を始めます(NO_REPLY無音トークンは無視します)。
「どれだけ早く発火するか」の順序:
never → message → thinking → instant
設定
エージェントレベルのデフォルトを設定します。
{ agents: { defaults: { typingMode: "thinking", typingIntervalSeconds: 6, }, },}セッションごとにモードまたは間隔を上書きします。
{ session: { typingMode: "message", typingIntervalSeconds: 4, },}注記
messageモードでは、ペイロード全体が正確な無音トークン(例:NO_REPLY/no_reply、 大文字小文字を区別せずに一致)だけである場合、無音のみの返信に対して入力中表示は表示されません。thinkingは、実行が推論をストリーミングする場合(reasoningLevel: "stream")にのみ発火します。 モデルが推論デルタを発行しない場合、入力中表示は始まりません。- Heartbeat の入力中表示は、解決された配信ターゲットに対するライブネスシグナルです。
messageまたはthinkingのストリームタイミングに従うのではなく、Heartbeat 実行の開始時に始まります。 無効化するにはtypingMode: "never"を設定します。 - Heartbeat は、
target: "none"の場合、ターゲットを解決できない場合、Heartbeat のチャット配信が無効化されている場合、 またはチャンネルが入力中表示をサポートしていない場合、入力中表示を表示しません。 typingIntervalSecondsは 更新間隔 を制御し、開始時刻は制御しません。 デフォルトは 6 秒です。