Mainstream messaging
Reguły powiadomień push Matrix dla cichych podglądów
Gdy channels.matrix.streaming.mode ma wartość "quiet", OpenClaw przesyła strumieniowo odpowiedź, edytując w miejscu jedno zdarzenie podglądu. Podglądy są wysyłane jako niewywołujące powiadomień zdarzenia m.notice, a ukończona edycja jest oznaczana za pomocą content["com.openclaw.finalized_preview"] = true. Klienty Matrix powiadamiają o tej końcowej edycji tylko wtedy, gdy reguła powiadomień użytkownika pasuje do znacznika. Ta strona jest przeznaczona dla operatorów samodzielnie hostujących Matrix, którzy chcą zainstalować tę regułę dla każdego konta odbiorcy.
streaming.mode: "progress" finalizuje swoje wersje robocze tą samą ścieżką, dlatego ta sama reguła jest również wyzwalana dla ukończonych edycji w trybie postępu.
Aby korzystać wyłącznie ze standardowego działania powiadomień Matrix, należy użyć streaming.mode: "partial" lub pozostawić przesyłanie strumieniowe wyłączone. Zobacz konfigurację kanału Matrix.
Wymagania wstępne
- użytkownik odbiorcy = osoba, która powinna otrzymać powiadomienie
- użytkownik bota = konto OpenClaw w Matrix, które wysyła odpowiedź
- w poniższych wywołaniach API należy użyć tokenu dostępu użytkownika odbiorcy
- wartość
senderw regule powiadomień należy dopasować do pełnego identyfikatora MXID użytkownika bota - konto odbiorcy musi już mieć działające mechanizmy pusher; reguły cichych podglądów działają tylko wtedy, gdy standardowe dostarczanie powiadomień push Matrix działa prawidłowo
Kroki
Skonfiguruj ciche podglądy
{channels: {matrix: { streaming: { mode: "quiet" },},},}Uzyskaj token dostępu odbiorcy
W miarę możliwości należy ponownie użyć istniejącego tokenu sesji klienta. Aby wygenerować nowy:
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"}'Sprawdź, czy istnieją mechanizmy pusher
curl -sS \-H "Authorization: Bearer $USER_ACCESS_TOKEN" \"https://matrix.example.org/_matrix/client/v3/pushers"Jeśli odpowiedź nie zawiera żadnych mechanizmów pusher, przed kontynuowaniem należy naprawić standardowe dostarczanie powiadomień push Matrix dla tego konta.
Zainstaluj nadrzędną regułę powiadomień
Zainstaluj regułę dopasowującą znacznik ukończonego podglądu oraz MXID bota jako nadawcę:
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 }]}'Przed uruchomieniem zastąp:
https://matrix.example.org: podstawowy adres URL serwera domowego$USER_ACCESS_TOKEN: token dostępu użytkownika odbiorcyopenclaw-finalized-preview-botname: identyfikator reguły unikatowy dla każdego bota i odbiorcy (wzorzec:openclaw-finalized-preview-<botname>)@bot:example.org: MXID bota OpenClaw, a nie odbiorcy
Zweryfikuj
curl -sS \-H "Authorization: Bearer $USER_ACCESS_TOKEN" \"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname"Następnie przetestuj odpowiedź przesyłaną strumieniowo. W trybie cichym pokój wyświetla cichy podgląd wersji roboczej i wysyła powiadomienie po zakończeniu bloku lub tury.
Aby później usunąć regułę, należy wykonać DELETE dla tego samego adresu URL reguły przy użyciu tokenu odbiorcy.
Uwagi dotyczące wielu botów
Kluczem reguł powiadomień jest ruleId: ponowne wykonanie PUT dla tego samego identyfikatora aktualizuje jedną regułę. Jeśli wiele botów OpenClaw ma powiadamiać tego samego odbiorcę, należy utworzyć osobną regułę dla każdego bota z odrębnym dopasowaniem nadawcy.
Nowe reguły użytkownika override są wstawiane przed domyślnymi regułami serwera wyciszającymi powiadomienia, dlatego dodatkowy parametr kolejności nie jest potrzebny. Reguła wpływa wyłącznie na tekstowe edycje podglądu, które można ukończyć w miejscu; odpowiedzi z multimediami, mechanizmy awaryjne dla nieaktualnego podglądu oraz teksty końcowe, które aktywowałyby wzmianki Matrix, są zamiast tego dostarczane jako zwykłe wiadomości wywołujące powiadomienia.
Uwagi dotyczące serwera domowego
Synapse
Nie jest wymagana żadna specjalna zmiana homeserver.yaml. Jeśli standardowe powiadomienia Matrix już docierają do tego użytkownika, głównym krokiem konfiguracji jest token odbiorcy oraz powyższe wywołanie pushrules.
Jeśli Synapse działa za odwrotnym serwerem proxy lub korzysta z procesów roboczych, należy upewnić się, że /_matrix/client/.../pushrules/ prawidłowo dociera do Synapse. Dostarczaniem powiadomień push zajmuje się proces główny albo synapse.app.pusher / skonfigurowane procesy robocze pusher — należy upewnić się, że działają prawidłowo.
Reguła używa warunku reguły powiadomień event_property_is (MSC3758, reguła powiadomień v1.10), który dodano do Synapse w 2023 roku. Starsze wersje Synapse akceptują wywołanie PUT pushrules/..., ale bez komunikatu nigdy nie dopasowują warunku — jeśli po ukończonej edycji podglądu nie pojawia się powiadomienie, należy uaktualnić Synapse.
Tuwunel
Obowiązuje ten sam proces co w przypadku Synapse; znacznik ukończonego podglądu nie wymaga konfiguracji specyficznej dla Tuwunel.
Jeśli powiadomienia znikają, gdy użytkownik jest aktywny na innym urządzeniu, należy sprawdzić, czy włączono suppress_push_when_active. Tuwunel dodał tę opcję w wersji 1.4.2 (wrzesień 2025) i może ona celowo wyciszać powiadomienia push na innych urządzeniach, gdy jedno z nich jest aktywne.