メインコンテンツへスキップ

静かなプレビューに対するMatrixプッシュルール

channels.matrix.streaming"quiet" の場合、OpenClaw は単一のプレビューイベントをその場で編集し、確定した編集にカスタムのコンテンツフラグを付けます。Matrixクライアントが最終編集時にのみ通知するには、ユーザーごとのプッシュルールがそのフラグに一致する必要があります。このページは、Matrixをセルフホストしていて、受信者アカウントごとにそのルールをインストールしたい運用者向けです。 標準のMatrix通知動作だけが必要な場合は、streaming: "partial" を使うか、ストリーミングをオフのままにしてください。Matrixチャネルの設定を参照してください。

前提条件

  • recipient user = 通知を受け取る人
  • bot user = 返信を送信するOpenClaw Matrixアカウント
  • 以下のAPI呼び出しでは recipient user のアクセストークンを使用する
  • プッシュルール内の sender は bot user の完全なMXID に一致させる
  • recipient アカウントには、すでに動作する pusher が存在している必要があります。静かなプレビュールールは、通常のMatrixプッシュ配信が正常に機能している場合にのみ動作します

手順

1

静かなプレビューを設定する

{
  channels: {
    matrix: {
      streaming: "quiet",
    },
  },
}
2

受信者のアクセストークンを取得する

可能であれば既存のクライアントセッショントークンを再利用してください。新しく発行するには、次を実行します。
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"
  }'
3

pusher が存在することを確認する

curl -sS \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  "https://matrix.example.org/_matrix/client/v3/pushers"
pusher が返ってこない場合は、続行する前にこのアカウントの通常のMatrixプッシュ配信を修正してください。
4

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: recipient user のアクセストークン
  • openclaw-finalized-preview-botname: 受信者ごと・bot ごとに一意な rule ID(パターン: openclaw-finalized-preview-<botname>
  • @bot:example.org: recipient ではなく、あなたのOpenClaw bot のMXID
5

確認する

curl -sS \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname"
その後、ストリーミング返信をテストしてください。quiet モードでは、ルームには静かな下書きプレビューが表示され、ブロックまたはターンの完了時に一度だけ通知されます。
後でルールを削除するには、recipient のトークンを使って同じルールURL に対して DELETE してください。

複数botに関する注意

プッシュルールは ruleId によって識別されます。同じID に対して PUT を再実行すると、単一のルールが更新されます。同じ recipient に複数のOpenClaw bot が通知する場合は、送信者一致条件が異なる bot ごとに1つのルールを作成してください。 新しいユーザー定義の override ルールは、デフォルトの抑制ルールより前に挿入されるため、追加の順序パラメーターは不要です。このルールが影響するのは、その場で確定可能なテキストのみのプレビュー編集だけです。メディアのフォールバックや古いプレビューのフォールバックでは、通常のMatrix配信が使われます。

ホームサーバーに関する注意

特別な homeserver.yaml の変更は不要です。通常のMatrix通知がすでにこのユーザーに届いている場合、主な設定手順は受信者トークンと上記の pushrules 呼び出しです。Synapse をリバースプロキシや workers の背後で運用している場合は、/_matrix/client/.../pushrules/ が正しくSynapse に到達することを確認してください。プッシュ配信はメインプロセスまたは synapse.app.pusher / 設定済みの pusher workers によって処理されるため、それらが正常であることを確認してください。
Synapse と同じフローで、確定済みプレビューマーカーのためのTuwunel固有設定は不要です。ユーザーが別のデバイスでアクティブなときに通知が消える場合は、suppress_push_when_active が有効になっていないか確認してください。Tuwunel は 1.4.2(2025年9月)でこのオプションを追加しており、1つのデバイスがアクティブな間、他のデバイスへのプッシュを意図的に抑制することがあります。

関連