Mainstream messaging
静かなプレビュー向けのMatrixプッシュルール
channels.matrix.streaming が "quiet" の場合、OpenClaw は単一のプレビューイベントをその場で編集し、確定した編集にカスタムコンテンツフラグを付けます。Matrix クライアントは、ユーザーごとのプッシュルールがそのフラグに一致する場合にのみ、最終編集で通知します。このページは、Matrix をセルフホストしていて、各受信者アカウントにそのルールをインストールしたい運用者向けです。
標準の Matrix 通知動作だけが必要な場合は、streaming: "partial" を使うか、ストリーミングをオフのままにしてください。Matrix チャンネル設定を参照してください。
前提条件
- 受信者ユーザー = 通知を受け取るべき人
- bot ユーザー = 返信を送信する OpenClaw Matrix アカウント
- 下記の API 呼び出しには受信者ユーザーのアクセストークンを使用する
- プッシュルールの
senderは bot ユーザーの完全な MXID と照合する - 受信者アカウントには、動作中の pusher がすでに必要です。quiet プレビュールールは、通常の Matrix プッシュ配信が正常な場合にのみ機能します
手順
quiet プレビューを設定する
{
channels: {
matrix: {
streaming: "quiet",
},
},
}
受信者のアクセストークンを取得する
可能な場合は既存のクライアントセッショントークンを再利用してください。新しく発行するには、次のようにします。
curl -sS -X POST \
"https://matrix.example.org/_matrix/client/v3/login" \
-H "Content-Type: application/json" \
--data '{
"type": "m.login.password",
"identifier": { "type": "m.id.user", "user": "@alice:example.org" },
"password": "REDACTED"
}'
pusher が存在することを確認する
curl -sS \
-H "Authorization: Bearer $USER_ACCESS_TOKEN" \
"https://matrix.example.org/_matrix/client/v3/pushers"
pusher が返ってこない場合は、続行する前にこのアカウントの通常の Matrix プッシュ配信を修正してください。
override プッシュルールをインストールする
OpenClaw は、確定したテキストのみのプレビュー編集に content["com.openclaw.finalized_preview"] = true を付けます。そのマーカーと、送信者としての bot MXID に一致するルールをインストールします。
curl -sS -X PUT \
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"conditions": [
{ "kind": "event_match", "key": "type", "pattern": "m.room.message" },
{
"kind": "event_property_is",
"key": "content.m\\.relates_to.rel_type",
"value": "m.replace"
},
{
"kind": "event_property_is",
"key": "content.com\\.openclaw\\.finalized_preview",
"value": true
},
{ "kind": "event_match", "key": "sender", "pattern": "@bot:example.org" }
],
"actions": [
"notify",
{ "set_tweak": "sound", "value": "default" },
{ "set_tweak": "highlight", "value": false }
]
}'
実行前に置き換えてください。
https://matrix.example.org: ホームサーバーのベース URL$USER_ACCESS_TOKEN: 受信者ユーザーのアクセストークンopenclaw-finalized-preview-botname: bot ごと、受信者ごとに一意のルール ID(パターン:openclaw-finalized-preview-<botname>)@bot:example.org: OpenClaw bot の MXID。受信者のものではありません
確認する
curl -sS \
-H "Authorization: Bearer $USER_ACCESS_TOKEN" \
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname"
その後、ストリーミングされた返信をテストします。quiet モードでは、ルームに quiet ドラフトプレビューが表示され、ブロックまたはターンが完了した時点で一度だけ通知されます。
後でルールを削除するには、同じルール URL に受信者のトークンで DELETE を送信します。
複数 bot に関する注記
プッシュルールは ruleId をキーにします。同じ ID に対して PUT を再実行すると、単一のルールが更新されます。同じ受信者に通知する OpenClaw bot が複数ある場合は、bot ごとに、異なる送信者一致を持つルールを 1 つ作成してください。
新しいユーザー定義の override ルールは、デフォルトの抑制ルールより前に挿入されるため、追加の順序パラメーターは不要です。このルールは、その場で確定できるテキストのみのプレビュー編集にのみ影響します。メディアのフォールバックと古いプレビューのフォールバックは、通常の Matrix 配信を使用します。
ホームサーバーに関する注記
Synapse
特別な homeserver.yaml の変更は不要です。通常の Matrix 通知がすでにこのユーザーに届いている場合は、上記の受信者トークン + pushrules 呼び出しが主な設定手順です。
Synapse をリバースプロキシまたは worker の背後で実行している場合は、/_matrix/client/.../pushrules/ が Synapse に正しく到達することを確認してください。プッシュ配信はメインプロセス、または synapse.app.pusher / 設定済みの pusher worker によって処理されます。それらが正常であることを確認してください。
このルールは event_property_is プッシュルール条件(MSC3758、プッシュルール v1.10)を使用します。これは 2023 年に Synapse に追加されました。古い Synapse リリースは PUT pushrules/... 呼び出しを受け付けますが、条件には暗黙的に一致しません。確定したプレビュー編集で通知が届かない場合は Synapse をアップグレードしてください。
Tuwunel
Synapse と同じフローです。確定プレビューマーカーに Tuwunel 固有の設定は不要です。
ユーザーが別のデバイスでアクティブな間に通知が消える場合は、suppress_push_when_active が有効になっているか確認してください。Tuwunel はこのオプションを 1.4.2(2025 年 9 月)で追加しており、1 台のデバイスがアクティブな間、他のデバイスへのプッシュを意図的に抑制できます。