Matrix-Threads und -Sessions in OpenClaw
Sitzungs-Scope für DMs, Reply-Threading-Modi, Thread-Vererbung, ACP-Konversationsbindungen, die Thread-Binding-Richtlinie und ein Raumverlauf nur aus ausstehenden Nachrichten
Matrix unterstützt native Threads, und OpenClaw behandelt Threading und Sitzungs-Routing als zwei unabhängige Entscheidungen: wo eine Antwort gepostet wird und zu welcher Sitzung eine Konversation gehört. Nehmen Sie ACP-Bindungen hinzu, die einen Raum oder Thread in einen dauerhaften Coding-Workspace verwandeln, und ein Raumverlaufsfenster, das nur enthält, was der Agent noch nicht gesehen hat, und Sie haben das vollständige Bild. Hier sind die zwei Stellschrauben, Vererbung und Befehle, ACP-Bindungen und ihre Konfiguration sowie die Verlaufsregeln.
Die zwei Stellschrauben
- Der DM-Sitzungs-Scope legt fest, wie DM-Räume auf Sitzungen abgebildet werden: pro Benutzer, der Standard, teilt eine Sitzung über alle DM-Räume mit demselben gerouteten Gegenüber, während pro Raum jedem Matrix-DM-Raum einen eigenen Sitzungs-Schlüssel gibt, selbst beim selben Gegenüber.
- Reply-Threading legt fest, wo der Bot postet: off hält Antworten auf oberster Ebene und eingehende Thread-Nachrichten in der übergeordneten Sitzung, inbound antwortet nur dann in einem Thread, wenn die eingehende Nachricht bereits darin war, und always antwortet in einem Thread, dessen Wurzel die auslösende Nachricht ist, und leitet diese Konversation ab dem ersten Auslöser über eine Thread-bezogene Sitzung; ein Override nur für DMs kann DMs flach halten, während Raum-Threads isoliert bleiben.
- Die Auswahl eines Antwortziels innerhalb eines Threads bewahrt sowohl den Thread als auch die ausgewählte Nachricht, und die Antwort-Metadaten, die ältere Clients bei Thread-Nachrichten erhalten, werden im Kontext des Agenten nicht als zitierte Nachricht behandelt.
- Eingehende Thread-Nachrichten enthalten die Thread-Wurzel als zusätzlichen Kontext, Nachrichten über das Message-Tool erben automatisch den aktuellen Thread, wenn sie denselben Raum oder denselben DM-Benutzer ansprechen, sofern keine Thread-ID angegeben ist, die Wiederverwendung eines DM-Benutzerziels greift nur, wenn Sitzungs-Metadaten dasselbe Gegenüber auf demselben Konto belegen, und die Sitzungs-Befehle unbind, agents, idle und max-age sowie an Threads gebundene ACP-Spawns funktionieren alle in Matrix-Räumen und DMs.
Explizite Konversationsbindungen haben immer Vorrang vor sessionScope; gebundene Räume und Threads behalten ihre gewählte Ziel-Sitzung.
ACP-Bindungen
Matrix-Räume, DMs und bestehende Threads können zu dauerhaften ACP-Workspaces werden, ohne die Chat-Oberfläche zu ändern. Der Ablauf für Operatoren ist ein einziger Befehl: ein ACP-Spawn mit einem Bind-here-Flag innerhalb der DM, des Raums oder des Threads, die weiter genutzt werden sollen; in einer DM oder einem Raum auf oberster Ebene bleibt die aktuelle Oberfläche der Chat, und künftige Nachrichten werden an die gestartete ACP-Sitzung geleitet, innerhalb eines bestehenden Threads bindet das Flag diesen Thread an Ort und Stelle, die Befehle für neue Sitzung und Reset setzen dieselbe gebundene Sitzung an Ort und Stelle zurück, und ein ACP-Close-Befehl beendet die Sitzung und entfernt die Bindung. Bind-here erstellt nie einen Kind-Thread; das Erstellen oder Binden eines Kind-Threads über die Thread-Option des Spawn-Befehls wird durch die Einstellung spawn-sessions gesteuert. Erkennt OpenClaw, dass ein DM-Raum mit einem anderen in derselben geteilten Sitzung kollidiert, postet es einmalig einen Hinweis, der den Scope pro Raum vorschlägt, allerdings nur, solange Thread-Bindungen aktiviert sind.
Konfiguration und Verlauf
- Matrix erbt die globalen Thread-Binding-Standards mit Overrides pro Kanal: enabled, Leerlaufstunden, maximales Alter, ein Flag spawn-sessions, das sowohl Sub-Agent- als auch ACP-Thread-Spawns steuert und standardmäßig an ist, sowie ein Standard-Spawn-Kontext; veraltete Spawn-Schlüssel pro Art werden durch den doctor-Fix migriert, und ein isolierter Spawn-Kontext verhindert, dass native Sub-Agent-Thread-Spawns das übergeordnete Transkript abzweigen.
- Ein Verlaufslimit legt fest, wie viele aktuelle Raumnachrichten als eingehender Verlauf einbezogen werden, wenn eine Raumnachricht den Agenten auslöst; es fällt auf das globale Gruppenchat-Limit zurück und ist standardmäßig null, also deaktiviert, wenn beide nicht gesetzt sind; der Raumverlauf gilt nur für Räume, DMs behalten den normalen Sitzungs-Verlauf.
- Der Raumverlauf enthält nur ausstehende Nachrichten: OpenClaw puffert Raumnachrichten, die keine Antwort ausgelöst haben, erstellt einen Snapshot dieses Fensters, wenn eine Erwähnung oder ein anderer Auslöser eintrifft, hält den aktuellen Auslöser aus dem Verlaufsblock heraus, da er der eingehende Nachrichtentext ist, und verwendet bei Wiederholungen desselben Ereignisses den ursprünglichen Snapshot wieder, statt nach vorne zu driften.
OpenClaw auf Matrix ist der Kanal-Beitrag, den dieser Beitrag vertieft, und Sitzungen in OpenClaw beschreibt die Schlüssel und Resets, auf denen diese Zuordnungen aufbauen.
Dieselbe Form auf Discord
Thread-Bindungen, Steuerungen für Leerlauf und Höchstalter sowie ACP-Bindungen sind kanalübergreifend gemeinsame Richtlinien, sodass sich ein auf einem Kanal gelernter Workflow übertragen lässt. Discord-Threads und -Sessions in OpenClaw ist die Discord-Version derselben Seite und Sub-Agenten in OpenClaw beschreibt die Spawns, die an Threads gebundene Sitzungen erhalten.
Auf Diali
Matrix steht auf der Liste der Kanäle, die Diali verbinden kann, neben WhatsApp, Telegram, Discord, Slack, Mattermost, SMS und Sprache: Das Homeserver-Konto und die Raum-Zulassungsliste gehören Ihnen, das Gateway gehört uns. Gehostetes OpenClaw auf Diali ist der Assistent und Ihren ersten Kanal in fünf Minuten verbinden erklärt, wie diese Kanäle verknüpft werden.
- Der Scope bestimmt die Sitzung; das Threading bestimmt die Antwort.
- Bindungen haben Vorrang; Bind-here erstellt nie einen Thread.
- Der Verlauf enthält nur Ausstehendes und bleibt bei Wiederholungen snapshotstabil.
Genug gelesen, bauen Sie selbst einen
Richten Sie einen Agenten ein, wählen Sie einen Kanal und lassen Sie ihn in der App arbeiten, die Sie ohnehin geöffnet haben.
