コンセプト内部
タイピングインジケーター
タイピングインジケーターは、ランがアクティブな間にチャットチャネルに送信されます。agents.defaults.typingMode でタイピングがいつ開始するかを、typingIntervalSeconds でどのくらいの頻度で更新するかを制御します。
デフォルト
agents.defaults.typingMode が設定されていない場合、OpenClawは従来の動作を維持します:
- ダイレクトチャット: モデルループが開始するとすぐにタイピングが開始されます。
- メンション付きグループチャット: タイピングがすぐに開始されます。
- メンションなしグループチャット: メッセージテキストのストリーミングが開始された時のみタイピングが開始されます。
- ハートビートラン: タイピングは無効です。
モード
agents.defaults.typingMode を次のいずれかに設定します:
never— タイピングインジケーターを一切表示しません。instant— モデルループが開始するとすぐにタイピングを開始します。後でランがサイレント返信トークンのみを返した場合でも同様です。thinking— 最初の推論デルタでタイピングを開始します(ランにreasoningLevel: "stream"が必要です)。message— 最初の非サイレントテキストデルタでタイピングを開始します(NO_REPLYサイレントトークンは無視されます)。
「どれだけ早く発動するか」の順序: never → message → thinking → instant
設定
{
agent: {
typingMode: "thinking",
typingIntervalSeconds: 6,
},
}
セッションごとにモードや間隔を上書きできます:
{
session: {
typingMode: "message",
typingIntervalSeconds: 4,
},
}
注意点
messageモードでは、サイレントのみの返信(例:出力を抑制するために使用されるNO_REPLYトークン)に対してタイピングは表示されません。thinkingは、ランが推論をストリーミングする場合(reasoningLevel: "stream")にのみ発動します。モデルが推論デルタを出力しない場合、タイピングは開始されません。- ハートビートは、モードに関係なくタイピングを表示しません。
typingIntervalSecondsは開始時間ではなく、更新間隔を制御します。デフォルトは6秒です。