Developer and self-hosted
IRC
Verwenden Sie IRC, wenn Sie OpenClaw in klassischen Kanälen (#room) und Direktnachrichten einsetzen möchten.
Installieren Sie das offizielle IRC-Plugin und konfigurieren Sie es anschließend unter channels.irc.
Schnellstart
- Installieren Sie das Plugin:
openclaw plugins install @openclaw/irc- Legen Sie in
~/.openclaw/openclaw.jsonmindestens Host, Nick und die beizutretenden Kanäle fest:
{ channels: { irc: { enabled: true, host: "irc.example.com", port: 6697, tls: true, nick: "openclaw-bot", channels: ["#openclaw"], }, },}- Starten Sie den Gateway bzw. starten Sie ihn neu:
openclaw gateway runBevorzugen Sie für die Bot-Koordination einen privaten IRC-Server. Wenn Sie absichtlich ein öffentliches IRC-Netzwerk verwenden, gehören Libera.Chat, OFTC und Snoonet zu den gängigen Optionen. Vermeiden Sie vorhersehbare öffentliche Kanäle für den Backchannel-Datenverkehr von Bots oder Schwärmen.
Dauerhafte Verarbeitung eingehender Nachrichten
OpenClaw schreibt jedes akzeptierte IRC-PRIVMSG vor den regulären Richtlinienprüfungen und der Agent-Weiterleitung in seine dauerhafte Eingangswarteschlange. Ausstehende oder erneut zustellbare Nachrichten überstehen einen Neustart des Gateways und werden weiterhin pro Kanal oder Direktnachrichten-Gegenstelle serialisiert.
IRC stellt keine erneut abrufbare Zustellungs-ID bereit und sendet keine Nachrichten erneut, die ein nicht verbundener Client verpasst hat. OpenClaw weist daher eine lokale ID zu, die nur innerhalb der aktuellen TCP-Verbindung stabil ist. Die Warteschlange schützt das lokale Zeitfenster zwischen Annahme und Weiterleitung. Sie kann keine Nachricht wiederherstellen, die OpenClaw nie erreicht hat, und keine erneute Serverzustellung über mehrere Verbindungen hinweg deduplizieren.
Verbindungseinstellungen
| Schlüssel | Standardwert | Hinweise |
|---|---|---|
host |
keiner (erforderlich) | Hostname des IRC-Servers |
port |
6697 mit TLS, 6667 unverschlüsselt |
1-65535 |
tls |
true |
Setzen Sie false nur bei beabsichtigter Klartextübertragung |
nick |
keiner (erforderlich) | Bot-Nick |
username |
Nick, andernfalls openclaw |
IRC-Benutzername |
realname |
OpenClaw |
Realname-/GECOS-Feld |
password / passwordFile |
keiner | Serverpasswort; die Datei muss eine reguläre Datei sein |
channels |
keiner | Beizutretende Kanäle (["#openclaw"]) |
accounts / defaultAccount |
keiner | Einrichtung mehrerer Konten; Umgebungsvariablen befüllen nur das Standardkonto |
Sicherheitsstandardwerte
- IRC verwendet unformatierte TCP-/TLS-Sockets außerhalb des vom OpenClaw-Betreiber verwalteten Forward-Proxy-Routings. Legen Sie in Bereitstellungen, die sämtlichen ausgehenden Datenverkehr durch diesen Forward-Proxy leiten müssen,
channels.irc.enabled=falsefest, sofern direkter ausgehender IRC-Datenverkehr nicht ausdrücklich genehmigt wurde. channels.irc.dmPolicyverwendet standardmäßig"pairing": Unbekannte Absender von Direktnachrichten erhalten einen Kopplungscode, den Sie mitopenclaw pairing approve irc <code>genehmigen.channels.irc.groupPolicyverwendet standardmäßig"allowlist".- Legen Sie bei
groupPolicy="allowlist"mitchannels.irc.groupsdie zulässigen Kanäle fest. - Verwenden Sie TLS (
channels.irc.tls=true), sofern Sie nicht bewusst eine Klartextübertragung akzeptieren.
Zugriffskontrolle
Für IRC-Kanäle gibt es zwei separate „Schranken“:
- Kanalzugriff (
groupPolicy+groups): ob der Bot überhaupt Nachrichten aus einem Kanal akzeptiert. - Absenderzugriff (
groupAllowFrom/ kanalspezifischgroups["#channel"].allowFrom): wer den Bot innerhalb dieses Kanals auslösen darf.
Konfigurationsschlüssel:
- Zulassungsliste für Direktnachrichten (Absenderzugriff für Direktnachrichten):
channels.irc.allowFrom - Zulassungsliste für Gruppenabsender (Absenderzugriff für Kanäle):
channels.irc.groupAllowFrom - Kanalspezifische Steuerung (Regeln für Kanal, Absender und Erwähnungen):
channels.irc.groups["#channel"]mitrequireMention,allowFrom,enabled,tools,toolsBySender,skillsundsystemPrompt channels.irc.groupPolicy="open"erlaubt nicht konfigurierte Kanäle (standardmäßig weiterhin nur bei Erwähnung)
Einträge in Zulassungslisten sollten stabile Absenderidentitäten verwenden (nick!user@host).
Der Abgleich ausschließlich anhand des Nicks ist veränderlich und nur aktiviert, wenn channels.irc.dangerouslyAllowNameMatching: true.
Häufiger Stolperstein: allowFrom gilt für Direktnachrichten, nicht für Kanäle
Wenn Protokolleinträge wie der folgende angezeigt werden:
irc: drop group sender alice!ident@host (policy=allowlist)
...bedeutet dies, dass der Absender für Gruppen-/Kanalnachrichten nicht zugelassen war. Beheben Sie dies durch:
- Festlegen von
channels.irc.groupAllowFrom(global für alle Kanäle) oder - Festlegen kanalspezifischer Absender-Zulassungslisten:
channels.irc.groups["#channel"].allowFrom
Beispiel (allen Personen in #openclaw die Kommunikation mit dem Bot erlauben):
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#openclaw": { allowFrom: ["*"] }, }, }, },}Auslösen von Antworten (Erwähnungen)
Selbst wenn ein Kanal zulässig ist (über groupPolicy + groups) und der Absender zugelassen ist, verwendet OpenClaw in Gruppenkontexten standardmäßig eine Erwähnungsschranke. Der Bot gilt als erwähnt, wenn die Nachricht den Nick des verbundenen Bots enthält oder Ihren konfigurierten Erwähnungsmustern entspricht.
Daher werden möglicherweise Protokolleinträge wie drop channel … (missing-mention) angezeigt, sofern die Nachricht kein zum Bot passendes Erwähnungsmuster enthält.
Deaktivieren Sie die Erwähnungsschranke für den Kanal, damit der Bot in einem IRC-Kanal ohne erforderliche Erwähnung antwortet:
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#openclaw": { requireMention: false, allowFrom: ["*"], }, }, }, },}Oder erlauben Sie alle IRC-Kanäle (ohne kanalspezifische Zulassungsliste) und antworten Sie weiterhin ohne Erwähnungen:
{ channels: { irc: { groupPolicy: "open", groups: { "*": { requireMention: false, allowFrom: ["*"] }, }, }, },}Sicherheitshinweis (für öffentliche Kanäle empfohlen)
Wenn Sie allowFrom: ["*"] in einem öffentlichen Kanal zulassen, kann jede Person dem Bot Prompts senden.
Beschränken Sie die Werkzeuge für diesen Kanal, um das Risiko zu verringern.
Dieselben Werkzeuge für alle Personen im Kanal
{ channels: { irc: { groups: { "#openclaw": { allowFrom: ["*"], tools: { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, }, }, }, },}Unterschiedliche Werkzeuge je Absender (der Besitzer erhält mehr Befugnisse)
Verwenden Sie toolsBySender, um auf "*" eine strengere Richtlinie und auf Ihren Nick eine weniger strenge Richtlinie anzuwenden:
{ channels: { irc: { groups: { "#openclaw": { allowFrom: ["*"], toolsBySender: { "*": { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, "id:alice": { deny: ["gateway", "nodes", "cron"], }, }, }, }, }, },}Hinweise:
- Schlüssel für
toolsBySendersollten explizite Präfixe verwenden (channel:,id:,e164:,username:,name:). Verwenden Sie für IRCid:mit dem Wert der Absenderidentität:id:aliceoderid:alice!~alice@203.0.113.7für einen zuverlässigeren Abgleich. - Veraltete Schlüssel ohne Präfix werden weiterhin akzeptiert, nur als
id:abgeglichen und lösen eine Veraltungswarnung aus. - Die erste passende Absenderrichtlinie wird angewendet;
"*"dient als Platzhalter-Ausweichregel.
Weitere Informationen zum Gruppenzugriff und zur Erwähnungsschranke sowie zu deren Zusammenspiel finden Sie unter: /channels/groups.
NickServ
So identifizieren Sie sich nach dem Verbindungsaufbau bei NickServ:
{ channels: { irc: { nickserv: { enabled: true, service: "NickServ", password: "your-nickserv-password", }, }, },}Die NickServ-Identifizierung wird standardmäßig immer ausgeführt, wenn ein Passwort festgelegt ist (enabled muss nur zum Deaktivieren auf false gesetzt werden). service verwendet standardmäßig NickServ; passwordFile ist eine Alternative zum direkt angegebenen password.
Optionale einmalige Registrierung beim Verbindungsaufbau (register: true erfordert registerEmail):
{ channels: { irc: { nickserv: { register: true, registerEmail: "bot@example.com", }, }, },}Deaktivieren Sie register, nachdem der Nick registriert wurde, um wiederholte REGISTER-Versuche zu vermeiden.
Umgebungsvariablen
Das Standardkonto unterstützt:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(durch Kommas getrennt)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST kann nicht über eine .env des Arbeitsbereichs festgelegt werden; siehe .env-Dateien des Arbeitsbereichs.
Fehlerbehebung
- Wenn der Bot eine Verbindung herstellt, aber nie in Kanälen antwortet, überprüfen Sie
channels.irc.groupsund ob die Erwähnungsschranke Nachrichten verwirft (missing-mention). Wenn der Bot ohne Ping antworten soll, legen Sie für den KanalrequireMention:falsefest. - Wenn die Anmeldung fehlschlägt, überprüfen Sie die Verfügbarkeit des Nicks und das Serverpasswort.
- Wenn TLS in einem benutzerdefinierten Netzwerk fehlschlägt, überprüfen Sie Host, Port und Zertifikatseinrichtung.
Verwandte Themen
- Übersicht der Kanäle — alle unterstützten Kanäle
- Kopplung — Authentifizierung von Direktnachrichten und Kopplungsablauf
- Gruppen — Verhalten von Gruppenchats und Erwähnungsschranke
- Kanal-Routing — Sitzungs-Routing für Nachrichten
- Sicherheit — Zugriffsmodell und Absicherung