メッセージ
このページでは、OpenClaw が受信メッセージ、セッション、キューイング、ストリーミング、および推論の可視性をどのように扱うかをまとめて説明します。メッセージ フロー(概要)
messages.*:プレフィックス、キューイング、グループの挙動。agents.defaults.*:ブロック ストリーミングとチャンク化の既定値。- チャンネルごとの上書き(
channels.whatsapp.*、channels.telegram.*など):上限やストリーミングの切り替え。
インバウンド重複排除
チャンネルは再接続後に同じメッセージを再配信する場合があります。OpenClaw は channel/account/peer/session/message id をキーにした短命のキャッシュを保持し、重複配信が別のエージェント実行を引き起こさないようにします。受信デバウンス
同一送信者 から短時間に連続して送信されたメッセージは、messages.inbound により単一のエージェント ターンにバッチ化できます。デバウンスはチャンネル + 会話単位で適用され、返信のスレッド化/ID には最新のメッセージが使用されます。
設定(グローバル既定 + チャンネルごとの上書き):
- デバウンスは テキストのみ のメッセージに適用されます。メディア/添付は即時にフラッシュされます。
- 制御コマンドはデバウンスをバイパスし、単独で扱われます。
セッションとデバイス
セッションはクライアントではなく、ゲートウェイが所有します。- ダイレクト チャットはエージェントのメイン セッション キーに集約されます。
- グループ/チャンネルはそれぞれ独自のセッション キーを持ちます。
- セッション ストアとトランスクリプトはゲートウェイ ホスト上に保存されます。
受信ボディと履歴コンテキスト
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 を設定)。
キューイングとフォローアップ
実行がすでにアクティブな場合、受信メッセージはキューに入れられたり、現在の実行に誘導されたり、フォローアップ ターン用に収集されたりします。messages.queue(およびmessages.queue.byChannel)で設定します。- モード:
interrupt、steer、followup、collect、およびバックログのバリアント。
ストリーミング、チャンク化、バッチ処理
ブロック ストリーミングは、モデルがテキスト ブロックを生成するのに合わせて部分的な返信を送信します。チャンク化はチャンネルのテキスト制限を尊重し、フェンス付きコードの分割を回避します。 主な設定: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による返信のスレッド化とチャンネルごとの既定値