Mainstream messaging
Signal
Signal ist ein herunterladbares Kanal-Plugin (@openclaw/signal). Der Gateway kommuniziert über HTTP mit signal-cli: entweder mit dem nativen Daemon (JSON-RPC + SSE) oder dem Container bbernhard/signal-cli-rest-api (REST + WebSocket). OpenClaw bettet libsignal nicht ein.
Das Nummernmodell (zuerst lesen)
- Der Gateway stellt eine Verbindung zu einem Signal-Gerät her: dem
signal-cli-Konto. - Wenn Sie den Bot mit Ihrem persönlichen Signal-Konto betreiben, ignoriert er Ihre eigenen Nachrichten (Schleifenschutz).
- Wenn Sie dem Bot schreiben möchten und eine Antwort erwarten, verwenden Sie eine separate Bot-Nummer.
Installation
openclaw plugins install @openclaw/signalBei reinen Plugin-Spezifikationen wird zuerst ClawHub und anschließend ersatzweise npm versucht. Erzwingen Sie eine Quelle mit openclaw plugins install clawhub:@openclaw/signal oder npm:@openclaw/signal. plugins install registriert und aktiviert das Plugin; ein separater enable-Schritt ist nicht erforderlich. Allgemeine Installationsregeln finden Sie unter Plugins.
Schnelleinrichtung
Nummer auswählen
Verwenden Sie für den Bot eine separate Signal-Nummer (empfohlen).
Plugin installieren
openclaw plugins install @openclaw/signalGeführte Einrichtung ausführen
openclaw channels addDer Assistent erkennt, ob sich signal-cli in PATH befindet, und bietet andernfalls die Installation an: Unter Linux x86-64 lädt er den offiziellen nativen GraalVM-Build herunter; unter macOS und auf anderen Architekturen installiert er ihn über Homebrew. Anschließend fragt er nach der Bot-Nummer und dem Pfad zu signal-cli.
Konto verknüpfen oder registrieren
Überprüfen und koppeln
openclaw gateway call channels.status --params '{"probe":true}'Senden Sie eine erste Direktnachricht und genehmigen Sie die Kopplung: openclaw pairing approve signal <CODE>.
Minimale Konfiguration:
{ channels: { signal: { enabled: true, account: "+15551234567", cliPath: "signal-cli", dmPolicy: "pairing", allowFrom: ["+15557654321"], }, },}| Feld | Beschreibung |
|---|---|
account |
Bot-Telefonnummer im E.164-Format (+15551234567) |
cliPath |
Pfad zu signal-cli (signal-cli, wenn es sich in PATH befindet) |
configPath |
Als --config übergebenes Konfigurationsverzeichnis von signal-cli |
dmPolicy |
Zugriffsrichtlinie für Direktnachrichten (pairing empfohlen) |
allowFrom |
Telefonnummern oder uuid:<id>-Werte, die Direktnachrichten senden dürfen |
Unterstützung mehrerer Konten: Verwenden Sie channels.signal.accounts mit einer kontospezifischen Konfiguration und optionalem name. Das gemeinsame Muster finden Sie unter Kanäle mit mehreren Konten.
Funktionsumfang
- Deterministisches Routing: Antworten werden immer an Signal zurückgesendet.
- Direktnachrichten verwenden die Hauptsitzung des Agenten gemeinsam; Gruppen sind isoliert (
agent:<agentId>:signal:group:<groupId>). - Standardmäßig kann Signal Konfigurationsänderungen schreiben, die durch
/config set|unsetausgelöst werden (erfordertcommands.config: true). Deaktivieren Sie dies mitchannels.signal.configWrites: false.
Einrichtungspfad A: vorhandenes Signal-Konto verknüpfen (QR)
- Installieren Sie
signal-cli(JVM- oder nativer Build) oder lassen Sie es durchopenclaw channels addinstallieren. - Verknüpfen Sie ein Bot-Konto:
signal-cli link -n "OpenClaw"und scannen Sie anschließend den QR-Code in Signal. - Konfigurieren Sie Signal und starten Sie den Gateway.
Einrichtungspfad B: dedizierte Bot-Nummer registrieren (SMS, Linux)
Verwenden Sie diesen Weg für eine dedizierte Bot-Nummer, anstatt ein vorhandenes Konto der Signal-App zu verknüpfen. Der folgende Ablauf wurde unter Ubuntu 24 getestet.
- Beschaffen Sie eine Nummer, die SMS empfangen kann (oder bei Festnetznummern eine Sprachverifizierung ermöglicht). Eine dedizierte Bot-Nummer vermeidet Konto- und Sitzungskonflikte.
- Installieren Sie
signal-cliauf dem Gateway-Host:
VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/AsamK/signal-cli/releases/latest | sed -e 's/^.*\/v//')curl -L -O "https://github.com/AsamK/signal-cli/releases/download/v${VERSION}/signal-cli-${VERSION}-Linux-native.tar.gz"sudo tar xf "signal-cli-${VERSION}-Linux-native.tar.gz" -C /optsudo ln -sf /opt/signal-cli /usr/local/bin/signal-cli --versionWenn Sie den JVM-Build (signal-cli-${VERSION}.tar.gz) verwenden, installieren Sie zuerst eine JRE. Halten Sie signal-cli aktuell; das Upstream-Projekt weist darauf hin, dass ältere Versionen aufgrund von Änderungen an den Signal-Server-APIs nicht mehr funktionieren können.
- Registrieren und verifizieren Sie die Nummer:
signal-cli -a +<BOT_PHONE_NUMBER> registerWenn ein Captcha erforderlich ist (zum Abschließen dieses Schritts ist Browserzugriff erforderlich):
- Öffnen Sie
https://signalcaptchas.org/registration/generate.html. - Schließen Sie das Captcha ab und kopieren Sie das Ziel des Links
signalcaptcha://...aus "Open Signal". - Führen Sie den Vorgang nach Möglichkeit über dieselbe externe IP-Adresse wie die Browsersitzung aus (Captcha-Token laufen schnell ab).
- Registrieren und verifizieren Sie die Nummer sofort:
signal-cli -a +<BOT_PHONE_NUMBER> register --captcha '<SIGNALCAPTCHA_URL>'signal-cli -a +<BOT_PHONE_NUMBER> verify <VERIFICATION_CODE>- Konfigurieren Sie OpenClaw, starten Sie den Gateway neu und überprüfen Sie den Kanal:
# Wenn Sie den Gateway als systemd-Benutzerdienst ausführen:systemctl --user restart openclaw-gateway.service # Anschließend überprüfen:openclaw doctoropenclaw channels status --probe- Koppeln Sie den Absender Ihrer Direktnachrichten:
- Senden Sie eine beliebige Nachricht an die Bot-Nummer.
- Genehmigen Sie die Kopplung auf dem Server:
openclaw pairing approve signal <PAIRING_CODE>. - Speichern Sie die Bot-Nummer als Kontakt auf Ihrem Telefon, um "Unknown contact" zu vermeiden.
Upstream-Referenzen:
signal-cli-README:https://github.com/AsamK/signal-cli- Captcha-Ablauf:
https://github.com/AsamK/signal-cli/wiki/Registration-with-captcha - Verknüpfungsablauf:
https://github.com/AsamK/signal-cli/wiki/Linking-other-devices-(Provisioning)
Externer Daemon-Modus (httpUrl)
Wenn Sie signal-cli selbst verwalten möchten (langsame JVM-Kaltstarts, Containerinitialisierung, gemeinsam genutzte CPUs), führen Sie den Daemon separat aus und verweisen Sie OpenClaw darauf:
{ channels: { signal: { httpUrl: "http://127.0.0.1:8080", autoStart: false, }, },}Dadurch werden der automatische Start und die Startwartezeit von OpenClaw übersprungen. Legen Sie für langsame automatisch gestartete Instanzen channels.signal.startupTimeoutMs fest.
Container-Modus (bbernhard/signal-cli-rest-api)
Anstatt signal-cli nativ auszuführen, verwenden Sie den Docker-Container bbernhard/signal-cli-rest-api, der signal-cli hinter einer REST- und WebSocket-Schnittstelle kapselt.
Anforderungen:
- Der Container muss mit
MODE=json-rpcausgeführt werden, damit Nachrichten in Echtzeit empfangen werden können. - Registrieren oder verknüpfen Sie Ihr Signal-Konto im Container, bevor Sie OpenClaw verbinden.
Beispieldienst für docker-compose.yml:
signal-cli: image: bbernhard/signal-cli-rest-api:latest environment: MODE: json-rpc ports: - "8080:8080" volumes: - signal-cli-data:/home/.local/share/signal-cliOpenClaw-Konfiguration:
{ channels: { signal: { enabled: true, account: "+15551234567", httpUrl: "http://signal-cli:8080", autoStart: false, apiMode: "container", // oder "auto" zur automatischen Erkennung }, },}apiMode steuert, welches Protokoll OpenClaw verwendet:
| Wert | Verhalten |
|---|---|
"auto" |
(Standard) Prüft beide Transportwege; Streaming validiert den WebSocket-Empfang des Containers |
"native" |
Erzwingt natives signal-cli (JSON-RPC unter /api/v1/rpc, SSE unter /api/v1/events) |
"container" |
Erzwingt den bbernhard-Container (REST unter /v2/send, WebSocket unter /v1/receive/{account}) |
Wenn apiMode auf "auto" gesetzt ist, speichert OpenClaw den erkannten Modus pro Daemon-URL 30 Sekunden lang zwischen, um wiederholte Prüfungen zu vermeiden (der native Modus hat Vorrang, wenn beide Transportwege funktionsfähig sind). Der Containerempfang wird für Streaming erst ausgewählt, nachdem /v1/receive/{account} auf WebSocket aktualisiert wurde; dafür ist MODE=json-rpc erforderlich.
Der Container-Modus unterstützt dieselben Signal-Vorgänge wie der native Modus, sofern der Container entsprechende APIs bereitstellt: Senden, Empfangen, Anhänge, Tippindikatoren, Gelesen-/Angesehen-Bestätigungen, Reaktionen, Gruppen und formatierten Text. OpenClaw übersetzt native Signal-RPC-Aufrufe in die REST-Nutzdaten des Containers, einschließlich Gruppen-IDs im Format group.{base64(internal_id)} und text_mode: "styled" für formatierten Text.
Betriebshinweise:
- Verwenden Sie im Container-Modus
autoStart: false; OpenClaw sollte keinen nativen Daemon starten, wennapiMode: "container"ausgewählt ist. - Verwenden Sie für den Empfang
MODE=json-rpc. MitMODE=normalkann/v1/aboutfunktionsfähig erscheinen, aber/v1/receive/{account}wird nicht auf WebSocket aktualisiert. Daher wählt OpenClaw im Modusautokein Streaming für den Containerempfang aus. - Legen Sie
apiMode: "container"fest, wennhttpUrlauf die bbernhard-REST-API verweist,"native", wenn die URL auf die native JSON-RPC-/SSE-Schnittstelle vonsignal-cliverweist, und"auto", wenn die Bereitstellung variieren kann. - Für das Herunterladen von Containeranhängen gelten dieselben Mediengrößenbeschränkungen wie im nativen Modus. Übermäßig große Antworten werden abgelehnt, bevor sie vollständig gepuffert werden, sofern der Server
Content-Lengthsendet; andernfalls erfolgt die Ablehnung während des Streamings.
Zugriffskontrolle (Direktnachrichten + Gruppen)
Direktnachrichten:
- Standard:
channels.signal.dmPolicy = "pairing". - Unbekannte Absender erhalten einen Kopplungscode; Nachrichten werden bis zur Genehmigung ignoriert (Codes laufen nach einer Stunde ab).
- Genehmigen Sie die Kopplung über
openclaw pairing list signalundopenclaw pairing approve signal <CODE>. - Die Kopplung ist der standardmäßige Token-Austausch für Signal-Direktnachrichten. Details: Kopplung
- Absender, die ausschließlich durch eine UUID identifiziert werden (aus
sourceUuid), werden alsuuid:<id>inchannels.signal.allowFromgespeichert.
Gruppen:
channels.signal.groupPolicy = open | allowlist | disabled.channels.signal.groupAllowFromsteuert, welche Gruppen oder Absender Gruppenantworten auslösen können, wennallowlistfestgelegt ist; Einträge können Signal-Gruppen-IDs (unverarbeitet,group:<id>odersignal:group:<id>), Telefonnummern von Absendern,uuid:<id>-Werte oder*sein.channels.signal.groups["<group-id>" | "*"]kann das Gruppenverhalten mitrequireMention,toolsundtoolsBySenderüberschreiben.- Verwenden Sie
channels.signal.accounts.<id>.groupsfür kontospezifische Überschreibungen in Einrichtungen mit mehreren Konten. - Das Zulassen einer Gruppe über
groupAllowFromdeaktiviert die Erwähnungspflicht nicht automatisch. Ein speziell konfigurierter Eintragchannels.signal.groups["<group-id>"]verarbeitet jede Gruppennachricht, sofernrequireMention: truenicht ausdrücklich festgelegt ist. - Laufzeithinweis: Wenn
channels.signalvollständig fehlt, greift die Laufzeit bei Gruppenprüfungen aufgroupPolicy="allowlist"zurück (selbst wennchannels.defaults.groupPolicyfestgelegt ist).
Funktionsweise (Verhalten)
- Nativer Modus:
signal-cliwird als Daemon ausgeführt; der Gateway liest Ereignisse über SSE. - Container-Modus: Der Gateway sendet über die REST-API und empfängt über WebSocket.
- Eingehende Nachrichten werden in den gemeinsamen Kanal-Umschlag normalisiert.
- Antworten werden immer an dieselbe Nummer oder Gruppe zurückgeleitet.
- Antworten auf eingehende Nachrichten enthalten native Signal-Zitatmetadaten, wenn das Backend den Zeitstempel und Autor der eingehenden Nachricht akzeptiert. Wenn Zitatmetadaten fehlen oder abgelehnt werden, sendet OpenClaw die Antwort als normale Nachricht.
- Konfigurieren Sie die Verwendung nativer Zitate mit
channels.signal.replyToMode = off | first | all | batchedoder mitchannels.signal.replyToModeByChatType.direct/groupfür chattypspezifische Überschreibungen. Werte auf Kontoebene unterchannels.signal.accounts.<id>haben Vorrang.
Medien + Beschränkungen
- Ausgehender Text wird gemäß
channels.signal.textChunkLimitaufgeteilt (Standardwert: 4000). - Optionale Aufteilung an Zeilenumbrüchen: Legen Sie
channels.signal.chunkMode="newline"fest, um vor der längenbasierten Aufteilung an Leerzeilen (Absatzgrenzen) zu teilen. - Anhänge werden unterstützt (von
signal-clials Base64 abgerufen). - Bei Sprachnotizanhängen wird der Dateiname von
signal-clials MIME-Fallback verwendet, wenncontentTypefehlt, sodass die Audiotranskription AAC-Sprachnotizen weiterhin klassifizieren kann. - Standardmäßige Medienobergrenze:
channels.signal.mediaMaxMb(Standardwert: 8). - Verwenden Sie
channels.signal.ignoreAttachments, um das Herunterladen von Medien zu überspringen. - Der Kontext des Gruppenverlaufs verwendet
channels.signal.historyLimit(oderchannels.signal.accounts.*.historyLimit) und greift ersatzweise aufmessages.groupChat.historyLimitzurück. Legen Sie0fest, um ihn zu deaktivieren (Standardwert: 50).
Tippindikatoren und Lesebestätigungen
- Tippindikatoren: OpenClaw sendet über
signal-cli sendTypingTippsignale und aktualisiert sie, während eine Antwort erstellt wird. - Lesebestätigungen: Wenn
channels.signal.sendReadReceiptsauftruegesetzt ist, leitet OpenClaw Lesebestätigungen für zulässige Direktnachrichten weiter. signal-clistellt keine Lesebestätigungen für Gruppen bereit.
Statusreaktionen des Lebenszyklus
Legen Sie messages.statusReactions.enabled: true fest, damit Signal bei eingehenden Nachrichten den gemeinsamen Reaktionslebenszyklus für Warteschlange, Denken, Werkzeugausführung, Compaction, Abschluss und Fehler anzeigt. Signal verwendet den Zeitstempel der eingehenden Nachricht als Reaktionsziel; Gruppenreaktionen werden mit der Signal-Gruppen-ID und dem ursprünglichen Absender als Zielautor gesendet.
Statusreaktionen erfordern außerdem eine Bestätigungsreaktion und einen passenden Wert für messages.ackReactionScope (direct, group-all, group-mentions oder all). Legen Sie channels.signal.reactionLevel: "off" fest, um Signal-Statusreaktionen zu deaktivieren.
messages.removeAckAfterReply: true entfernt die abschließende Statusreaktion nach der konfigurierten Haltezeit. Andernfalls stellt Signal nach dem abschließenden Erfolgs- oder Fehlerstatus die ursprüngliche Bestätigungsreaktion wieder her.
Reaktionen (Nachrichtenwerkzeug)
Verwenden Sie message action=react mit channel=signal.
- Ziele: E.164-Nummer oder UUID des Absenders (verwenden Sie
uuid:<id>aus der Kopplungsausgabe; eine UUID ohne Präfix funktioniert ebenfalls). messageIdist der Signal-Zeitstempel der Nachricht, auf die Sie reagieren.- Gruppenreaktionen erfordern
targetAuthorodertargetAuthorUuid.
message action=react channel=signal target=uuid:123e4567-e89b-12d3-a456-426614174000 messageId=1737630212345 emoji=🔥message action=react channel=signal target=+15551234567 messageId=1737630212345 emoji=🔥 remove=truemessage action=react channel=signal target=signal:group:<groupId> targetAuthor=uuid:<sender-uuid> messageId=1737630212345 emoji=✅Konfiguration:
channels.signal.actions.reactions: Reaktionsaktionen aktivieren/deaktivieren (Standardwert:true).channels.signal.reactionLevel:off | ack | minimal | extensive(Standardwert:minimal).off/ackdeaktiviert Agentenreaktionen (das Nachrichtenwerkzeugreactgibt einen Fehler zurück).minimal/extensiveaktiviert Agentenreaktionen und legt den Umfang der Anweisungen fest.
- Kontospezifische Überschreibungen:
channels.signal.accounts.<id>.actions.reactions,channels.signal.accounts.<id>.reactionLevel.
Genehmigungsreaktionen
Signal-Eingabeaufforderungen zur Genehmigung von Befehlsausführungen und Plugins verwenden die übergeordneten Routing-Blöcke approvals.exec und approvals.plugin. Signal verfügt über keinen Block channels.signal.execApprovals.
👍genehmigt einmalig.👎lehnt ab.- Verwenden Sie
/approve <id> allow-always, wenn eine Anfrage eine dauerhafte Genehmigung anbietet.
Die Auflösung von Genehmigungsreaktionen erfordert ausdrücklich festgelegte Signal-Genehmigende aus channels.signal.allowFrom, channels.signal.defaultTo oder den entsprechenden Feldern auf Kontoebene. Direkte Eingabeaufforderungen zur Genehmigung einer Befehlsausführung im selben Chat können den doppelten lokalen Fallback /approve auch ohne ausdrücklich festgelegte Genehmigende unterdrücken; bei Gruppengenehmigungen ohne Genehmigende bleibt der lokale Fallback sichtbar.
Zustellungsziele (CLI/Cron)
- Direktnachrichten:
signal:+15551234567(oder E.164 ohne Präfix). - UUID-Direktnachrichten:
uuid:<id>(oder UUID ohne Präfix). - Gruppen:
signal:group:<groupId>. - Benutzernamen:
username:<name>(sofern von Ihrem Signal-Konto unterstützt).
Aliasse
Konfigurieren Sie Aliasse als stabile Namen für wiederkehrende Signal-Ziele. Aliasse sind ausschließlich OpenClaw-seitige Konfiguration; sie erstellen oder bearbeiten keine Signal-Kontakte.
{ channels: { signal: { aliases: { me: "+15557654321", jane: "uuid:123e4567-e89b-12d3-a456-426614174000", ops: "group:<groupId>", }, defaultTo: "signal:me", }, },}Verwenden Sie Aliasse überall dort, wo Signal-Zustellungsziele akzeptiert werden:
openclaw message send --channel signal --target signal:ops --message "Deployment is complete"Kontospezifische Aliasse erben die übergeordneten Aliasse und können Namen ergänzen oder überschreiben:
{ channels: { signal: { aliases: { me: "+15557654321", }, accounts: { work: { aliases: { ops: "group:<workGroupId>", }, }, }, }, },}openclaw directory peers list --channel signal und openclaw directory groups list --channel signal führen die konfigurierten Aliasse auf. Das Signal-Verzeichnis basiert auf der Konfiguration; es fragt Signal-Kontakte nicht live ab und verändert das Signal-Konto nicht.
Fehlerbehebung
Führen Sie zunächst diese Befehlsfolge aus:
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeBestätigen Sie anschließend bei Bedarf den Kopplungsstatus für Direktnachrichten:
openclaw pairing list signalHäufige Fehler:
- Daemon erreichbar, aber keine Antworten: Überprüfen Sie die Konto-/Daemon-Einstellungen (
httpUrl,account) und den Empfangsmodus. - Direktnachrichten werden ignoriert: Die Kopplungsgenehmigung für den Absender steht noch aus.
- Gruppennachrichten werden ignoriert: Die Zugriffssteuerung für Gruppenabsender oder Erwähnungen blockiert die Zustellung.
- Fehler bei der Konfigurationsvalidierung nach Änderungen: Führen Sie
openclaw doctor --fixaus. - Signal fehlt in der Diagnose: Vergewissern Sie sich, dass
channels.signal.enabled: truefestgelegt ist.
Zusätzliche Prüfungen:
openclaw pairing list signalpgrep -af signal-cligrep -i "signal" "/tmp/openclaw/openclaw-$(date +%Y-%m-%d).log" | tail -20Informationen zum Ablauf der Fehleranalyse finden Sie unter Fehlerbehebung für Kanäle.
Sicherheitshinweise
signal-clispeichert Kontoschlüssel lokal (üblicherweise unter~/.local/share/signal-cli/data/).- Sichern Sie den Zustand des Signal-Kontos vor einer Servermigration oder Neuerstellung.
- Behalten Sie
channels.signal.dmPolicy: "pairing"bei, sofern Sie nicht ausdrücklich einen umfassenderen Zugriff auf Direktnachrichten wünschen. - Eine SMS-Verifizierung ist nur für Registrierungs- oder Wiederherstellungsabläufe erforderlich. Der Verlust der Kontrolle über die Nummer oder das Konto kann jedoch eine erneute Registrierung erschweren.
Konfigurationsreferenz (Signal)
Vollständige Konfiguration: Konfiguration
Provider-Optionen:
channels.signal.enabled: Start des Kanals aktivieren/deaktivieren.channels.signal.apiMode:auto | native | container(Standardwert:auto). Siehe Containermodus.channels.signal.account: E.164-Nummer des Bot-Kontos.channels.signal.cliPath: Pfad zusignal-cli.channels.signal.configPath: optionales Verzeichnis fürsignal-cli --config.channels.signal.httpUrl: vollständige Daemon-URL (überschreibt Host/Port).channels.signal.httpHost,channels.signal.httpPort: Daemon-Bindung (Standardwert:127.0.0.1:8080).channels.signal.autoStart: Daemon automatisch starten (standardmäßigtrue, wennhttpUrlnicht festgelegt ist).channels.signal.startupTimeoutMs: Zeitüberschreitung für das Warten auf den Start in ms (Minimum 1000, Obergrenze 120000; Standardwert: 30000).channels.signal.receiveMode:on-start | manual.channels.signal.ignoreAttachments: Herunterladen von Anhängen überspringen.channels.signal.ignoreStories: Storys vom Daemon ignorieren.channels.signal.sendReadReceipts: Lesebestätigungen weiterleiten.channels.signal.dmPolicy:pairing | allowlist | open | disabled(Standardwert:pairing).channels.signal.allowFrom: Zulassungsliste für Direktnachrichten (E.164 oderuuid:<id>).openerfordert"*". Signal unterstützt keine Benutzernamen; verwenden Sie Telefon-/UUID-Kennungen.channels.signal.aliases: OpenClaw-seitige Aliasse für Zustellungsziele von Direktnachrichten oder Gruppen.channels.signal.groupPolicy:open | allowlist | disabled(Standardwert:allowlist).channels.signal.groupAllowFrom: Zulassungsliste für Gruppen; akzeptiert Signal-Gruppen-IDs (unverarbeitet,group:<id>odersignal:group:<id>), E.164-Nummern von Absendern oder Werte im Formatuuid:<id>.channels.signal.groups: gruppenspezifische Überschreibungen, nach Signal-Gruppen-ID (oder"*") indiziert. Unterstützte Felder:requireMention,tools,toolsBySender.channels.signal.accounts.<id>.groups: kontospezifische Variante vonchannels.signal.groupsfür Konfigurationen mit mehreren Konten.channels.signal.accounts.<id>.aliases: kontospezifische Aliasse, die mit den übergeordneten Aliassen zusammengeführt werden.channels.signal.replyToMode: nativer Antwortzitatmodus,off | first | all | batched(Standardwert:all).channels.signal.replyToModeByChatType.direct,channels.signal.replyToModeByChatType.group: chatspezifische Überschreibungen für native Antwortzitate.channels.signal.accounts.<id>.replyToMode,channels.signal.accounts.<id>.replyToModeByChatType.direct,channels.signal.accounts.<id>.replyToModeByChatType.group: kontospezifische Überschreibungen für Antwortzitate.channels.signal.historyLimit: maximale Anzahl von Gruppennachrichten, die als Kontext einbezogen werden (0 deaktiviert dies).channels.signal.dmHistoryLimit: Verlaufslimit für Direktnachrichten in Benutzerbeiträgen. Benutzerspezifische Überschreibungen:channels.signal.dms["<phone_or_uuid>"].historyLimit.channels.signal.textChunkLimit: Größe ausgehender Abschnitte in Zeichen (Standardwert: 4000).channels.signal.chunkMode:length(Standardwert) odernewline, um vor der längenbasierten Aufteilung an Leerzeilen (Absatzgrenzen) zu teilen.channels.signal.mediaMaxMb: Obergrenze für eingehende/ausgehende Medien in MB (Standardwert: 8).channels.signal.reactionLevel:off | ack | minimal | extensive(Standardwert:minimal). Siehe Reaktionen.channels.signal.reactionNotifications:off | own | all | allowlist(Standardwert:own) – legt fest, wann der Agent über eingehende Reaktionen anderer benachrichtigt wird.channels.signal.reactionAllowlist: Absender, deren Reaktionen den Agenten benachrichtigen, wennreactionNotifications: "allowlist"festgelegt ist.channels.signal.blockStreaming,channels.signal.blockStreamingCoalesce: kanalübergreifend verwendete Steuerungen für Streaming im Blockmodus. Siehe Streaming.
Zugehörige globale Optionen:
agents.list[].groupChat.mentionPatterns(Signal unterstützt keine nativen Erwähnungen).messages.groupChat.mentionPatterns(globaler Fallback).messages.responsePrefix.
Verwandte Themen
- Kanalübersicht – alle unterstützten Kanäle
- Kopplung – Authentifizierung von Direktnachrichten und Kopplungsablauf
- Gruppen – Verhalten von Gruppenchats und Zugriffssteuerung durch Erwähnungen
- Kanalrouting – Sitzungsrouting für Nachrichten
- Sicherheit – Zugriffsmodell und Absicherung