Concept internals

入力中インジケーター

入力中インジケーターは、実行がアクティブな間、チャットチャネルへ送信されます。 agents.defaults.typingMode で入力中表示を開始するタイミングを制御し、typingIntervalSeconds で更新する頻度を制御します。

デフォルト

agents.defaults.typingMode未設定の場合、OpenClaw は従来の動作を維持します。

  • ダイレクトチャット: モデルループが開始するとすぐに入力中表示が始まります。
  • メンション付きのグループチャット: 入力中表示がすぐに始まります。
  • メンションなしのグループチャット: メッセージテキストのストリーミングが始まったときだけ入力中表示が始まります。
  • Heartbeat 実行: 解決された Heartbeat ターゲットが入力中表示に対応したチャットであり、入力中表示が無効化されていない場合、Heartbeat 実行の開始時に入力中表示が始まります。

モード

agents.defaults.typingMode を次のいずれかに設定します。

  • never - 入力中インジケーターを一切表示しません。
  • instant - 実行が後でサイレント返信トークンだけを返す場合でも、モデルループが開始した直後に入力中表示を始めます。
  • thinking - 最初の推論デルタで入力中表示を始めます(その実行に reasoningLevel: "stream" が必要です)。
  • message - 最初の非サイレントテキストデルタで入力中表示を始めます(NO_REPLY サイレントトークンは無視します)。

「どれだけ早く発火するか」の順序: nevermessagethinkinginstant

設定

{
  agent: {
    typingMode: "thinking",
    typingIntervalSeconds: 6,
  },
}

セッションごとにモードや間隔を上書きできます。

{
  session: {
    typingMode: "message",
    typingIntervalSeconds: 4,
  },
}

注記

  • message モードでは、ペイロード全体が正確なサイレントトークン(たとえば NO_REPLY / no_reply。大文字小文字を区別せずに照合)だけである場合、サイレントのみの返信では入力中表示は表示されません。
  • thinking は、実行が推論をストリーミングする場合(reasoningLevel: "stream")にのみ発火します。モデルが推論デルタを出力しない場合、入力中表示は始まりません。
  • Heartbeat の入力中表示は、解決された配信ターゲットに対するライブネスシグナルです。messagethinking のストリームタイミングに従うのではなく、Heartbeat 実行の開始時に始まります。無効化するには typingMode: "never" を設定します。
  • Heartbeat は、target: "none" の場合、ターゲットを解決できない場合、Heartbeat のチャット配信が無効化されている場合、またはチャネルが入力中表示をサポートしていない場合、入力中表示を表示しません。
  • typingIntervalSeconds更新間隔を制御するものであり、開始時刻ではありません。デフォルトは 6 秒です。

関連