Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

channels.matrix.streaming"quiet" 时,OpenClaw 会原地编辑单个预览事件,并使用自定义内容标记标识最终完成的编辑。只有当某条按用户设置的推送规则匹配该标记时,Matrix 客户端才会仅对最终编辑发出通知。本页面面向自托管 Matrix 并希望为每个接收方账户安装该规则的运维人员。 如果你只想使用 Matrix 默认的通知行为,请使用 streaming: "partial" 或关闭流式传输。参见 Matrix 渠道设置

前提条件

  • 接收方用户 = 应该收到通知的人
  • 机器人用户 = 发送回复的 OpenClaw Matrix 账户
  • 对下面的 API 调用使用接收方用户的访问令牌
  • 在推送规则中将 sender 与机器人用户的完整 MXID 匹配
  • 接收方账户必须已经有可用的 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 标记仅文本的最终预览编辑。安装一条规则,使其匹配该标记,并将机器人 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:你的 homeserver 基础 URL
  • $USER_ACCESS_TOKEN:接收方用户的访问令牌
  • openclaw-finalized-preview-botname:每个机器人、每个接收方唯一的规则 ID(格式:openclaw-finalized-preview-<botname>
  • @bot:example.org:你的 OpenClaw 机器人 MXID,而不是接收方的 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 模式下,房间会显示一个安静的草稿预览,并在分块或整轮结束时通知一次。
如果之后要移除该规则,请使用接收方的令牌对同一规则 URL 执行 DELETE

多机器人说明

推送规则以 ruleId 为键:对同一个 ID 再次执行 PUT 会更新同一条规则。若多个 OpenClaw 机器人向同一接收方发送通知,请为每个机器人分别创建一条规则,并使用不同的发送方匹配条件。 新建的用户定义 override 规则会插入到默认抑制规则之前,因此不需要额外的排序参数。该规则只影响可原地最终完成的纯文本预览编辑;媒体回退和过期预览回退仍使用普通 Matrix 投递。

homeserver 说明

无需对 homeserver.yaml 做特殊修改。如果普通 Matrix 通知已经能够送达该用户,那么接收方令牌 + 上面的 pushrules 调用就是主要的设置步骤。如果你在反向代理或 workers 后面运行 Synapse,请确保 /_matrix/client/.../pushrules/ 能正确到达 Synapse。推送投递由主进程或 synapse.app.pusher / 已配置的 pusher workers 处理 —— 请确保它们运行正常。该规则使用 event_property_is 推送规则条件(MSC3758,push rule v1.10),此条件于 2023 年添加到 Synapse。较旧的 Synapse 版本会接受 PUT pushrules/... 调用,但会静默地永远不匹配该条件 —— 如果最终预览编辑没有触发通知,请升级 Synapse。
流程与 Synapse 相同;针对最终预览标记,无需任何 Tuwunel 专用配置。如果用户在另一台设备上处于活跃状态时通知消失,请检查是否启用了 suppress_push_when_active。Tuwunel 在 1.4.2(2025 年 9 月)中添加了此选项,它可能会在一台设备活跃时有意抑制向其他设备发送推送。

相关内容