Messages
このページでは、OpenClaw が受信メッセージ、セッション、キューイング、 ストリーミング、および推論の可視性をどのように扱うかをまとめています。メッセージフロー(概要)
- プレフィックス、キューイング、グループ動作には
messages.*。 - ブロックストリーミングとチャンク化のデフォルトには
agents.defaults.*。 - 上限とストリーミング切り替えにはチャネルごとのオーバーライド(
channels.whatsapp.*、channels.telegram.*など)。
受信重複排除
チャネルは、再接続後に同じメッセージを再配信することがあります。OpenClaw は、 channel/account/peer/session/message id をキーにした短命なキャッシュを保持し、 重複配信によって別のエージェント実行がトリガーされないようにします。受信デバウンス
同じ送信者 からの短時間の連続メッセージは、messages.inbound によって単一の
エージェントターンにバッチ化できます。デバウンスはチャネルごと + 会話ごとに適用され、
返信のスレッディング/ID には最新のメッセージを使います。
設定(グローバルデフォルト + チャネルごとのオーバーライド):
- デバウンスは テキストのみ のメッセージに適用されます。メディア/添付は即座にフラッシュされます。
- 制御コマンドはデバウンスをバイパスし、単独のまま維持されます。
セッションとデバイス
セッションはクライアントではなく Gateway が所有します。- ダイレクトチャットはエージェントのメインセッションキーに集約されます。
- グループ/チャネルはそれぞれ独自のセッションキーを持ちます。
- セッションストアとトランスクリプトは Gateway ホスト上にあります。
受信本文と履歴コンテキスト
OpenClaw は プロンプト本文 と コマンド本文 を分離します:Body: エージェントに送られるプロンプトテキスト。これにはチャネルエンベロープと 任意の履歴ラッパーが含まれることがあります。CommandBody: ディレクティブ/コマンド解析用の生のユーザーテキスト。RawBody:CommandBodyの旧来のエイリアス(互換性のために維持)。
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody(または
RawBody)に元のメッセージテキストを設定し、Body は結合されたプロンプトのままにしてください。
履歴バッファは messages.groupChat.historyLimit(グローバルデフォルト)と、
channels.slack.historyLimit や channels.telegram.accounts.<id>.historyLimit のような
チャネルごとのオーバーライドで設定できます(無効化するには 0 を設定)。
キューイングとフォローアップ
すでに実行中の run がある場合、受信メッセージはキューに入れることも、現在の run に誘導することも、フォローアップターン用に収集することもできます。- 設定は
messages.queue(およびmessages.queue.byChannel)で行います。 - モード:
interrupt、steer、followup、collect、および backlog バリアント。
ストリーミング、チャンク化、バッチ化
ブロックストリーミングは、モデルがテキストブロックを生成するのに合わせて部分返信を送信します。 チャンク化はチャネルのテキスト上限を尊重し、フェンス付きコードを分割しないようにします。 主要な設定:agents.defaults.blockStreamingDefault(on|off、デフォルトは off)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(アイドルベースのバッチ化)agents.defaults.humanDelay(ブロック返信の間の人間らしい間隔)- チャネルごとのオーバーライド:
*.blockStreamingと*.blockStreamingCoalesce(Telegram 以外のチャネルでは明示的な*.blockStreaming: trueが必要)
推論の可視性とトークン
OpenClaw はモデルの推論を表示または非表示にできます:/reasoning on|off|streamで可視性を制御します。- 推論内容は、モデルが生成した場合、トークン使用量に引き続きカウントされます。
- Telegram は下書きバブルへの推論ストリームをサポートしています。
プレフィックス、スレッディング、返信
送信メッセージの書式設定はmessages に集約されています:
messages.responsePrefix、channels.<channel>.responsePrefix、およびchannels.<channel>.accounts.<id>.responsePrefix(送信プレフィックスのカスケード)、およびchannels.whatsapp.messagePrefix(WhatsApp 受信プレフィックス)replyToModeとチャネルごとのデフォルトによる返信スレッディング