Developer and self-hosted
IRC
Verwenden Sie IRC, wenn Sie OpenClaw in klassischen Kanälen (#room) und Direktnachrichten nutzen 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 oder starten Sie ihn neu:
openclaw gateway runBevorzugen Sie für die Bot-Koordination einen privaten IRC-Server. Wenn Sie bewusst ein öffentliches IRC-Netzwerk verwenden, sind Libera.Chat, OFTC und Snoonet gängige Optionen. Vermeiden Sie leicht vorhersehbare öffentliche Kanäle für den Hintergrundverkehr von Bots oder Schwärmen.
Verbindungseinstellungen
| Schlüssel | Standardwert | Hinweise |
|---|---|---|
host |
keiner (erforderlich) | Hostname des IRC-Servers |
port |
6697 mit TLS, 6667 unverschlüsselt |
1–65535 |
tls |
true |
Nur für bewusst gewählten Klartexttransport auf false setzen |
nick |
keiner (erforderlich) | Nick des Bots |
username |
Nick, andernfalls openclaw |
IRC-Benutzername |
realname |
OpenClaw |
Realname-/GECOS-Feld |
password / passwordFile |
keiner | Serverpasswort; die Datei muss eine reguläre Datei sein |
channels |
keine | Beizutretende Kanäle (["#openclaw"]) |
accounts / defaultAccount |
keine | Einrichtung mehrerer Konten; Umgebungsvariablen ergänzen nur das Standardkonto |
Sicherheitsvorgaben
- IRC verwendet rohe TCP-/TLS-Sockets außerhalb des vom OpenClaw-Betreiber verwalteten Forward-Proxy-Routings. Setzen Sie in Bereitstellungen, die sämtlichen ausgehenden Datenverkehr durch diesen Forward-Proxy leiten müssen,
channels.irc.enabled=false, sofern direkter ausgehender IRC-Datenverkehr nicht ausdrücklich genehmigt wurde. channels.irc.dmPolicyist standardmäßig"pairing": Unbekannte Absender von Direktnachrichten erhalten einen Kopplungscode, den Sie mitopenclaw pairing approve irc <code>genehmigen.channels.irc.groupPolicyist 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 Klartexttransport akzeptieren.
Zugriffssteuerung
Für IRC-Kanäle gibt es zwei getrennte „Schranken“:
- Kanalzugriff (
groupPolicy+groups): ob der Bot überhaupt Nachrichten aus einem Kanal akzeptiert. - Absenderzugriff (
groupAllowFrom/ kanalspezifischesgroups["#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 in Kanälen):
channels.irc.groupAllowFrom - Kanalspezifische Steuerung (Kanal-, Absender- und Erwähnungsregeln):
channels.irc.groups["#channel"]mitrequireMention,allowFrom,enabled,tools,toolsBySender,skillsundsystemPrompt channels.irc.groupPolicy="open"erlaubt nicht konfigurierte Kanäle (standardmäßig ist weiterhin eine Erwähnung erforderlich)
Einträge in Zulassungslisten sollten stabile Absenderidentitäten (nick!user@host) verwenden.
Der Abgleich nur anhand des Nicks ist veränderlich und wird ausschließlich aktiviert, wenn channels.irc.dangerouslyAllowNameMatching: true gesetzt ist.
Häufiger Stolperstein: allowFrom gilt für Direktnachrichten, nicht für Kanäle
Wenn Sie Protokolleinträge wie diesen sehen:
irc: drop group sender alice!ident@host (policy=allowlist)
...bedeutet dies, dass der Absender für Gruppen-/Kanalnachrichten nicht zugelassen war. Beheben Sie dies auf eine der folgenden Arten:
- Legen Sie
channels.irc.groupAllowFromfest (global für alle Kanäle), oder - legen Sie kanalspezifische Absender-Zulassungslisten fest:
channels.irc.groups["#channel"].allowFrom
Beispiel (allen Personen in #openclaw erlauben, mit dem Bot zu kommunizieren):
{ 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, verlangt OpenClaw in Gruppenkontexten standardmäßig eine Erwähnung. Der Bot gilt als erwähnt, wenn die Nachricht den verbundenen Bot-Nick enthält oder Ihren konfigurierten Erwähnungsmustern entspricht.
Daher können Protokolleinträge wie drop channel … (missing-mention) erscheinen, sofern die Nachricht kein Erwähnungsmuster enthält, das zum Bot passt.
Damit der Bot in einem IRC-Kanal ohne erforderliche Erwähnung antwortet, deaktivieren Sie die Erwähnungspflicht für diesen Kanal:
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#openclaw": { requireMention: false, allowFrom: ["*"], }, }, }, },}Oder erlauben Sie alle IRC-Kanäle (ohne kanalspezifische Zulassungsliste) und lassen Sie den Bot dennoch ohne Erwähnungen antworten:
{ 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 zur Risikoreduzierung die Werkzeuge für diesen Kanal.
Gleiche 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 (Eigentümer erhält mehr Berechtigungen)
Verwenden Sie toolsBySender, um für "*" eine strengere Richtlinie und für 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 in
toolsBySendersollten explizite Präfixe verwenden (channel:,id:,e164:,username:,name:). Verwenden Sie für IRCid:mit dem Wert der Absenderidentität:id:aliceoder für einen zuverlässigeren Abgleichid:alice!~alice@203.0.113.7. - Veraltete Schlüssel ohne Präfix werden weiterhin akzeptiert, ausschließlich wie
id:abgeglichen und lösen eine Warnung zur bevorstehenden Entfernung aus. - Die erste passende Absenderrichtlinie hat Vorrang;
"*"dient als Platzhalter-Ausweichregel.
Weitere Informationen zum Gruppenzugriff im Vergleich zur Erwähnungspflicht und 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 bei jedem gesetzten Passwort ausgeführt (enabled muss nur zum Deaktivieren auf false gesetzt werden). service ist 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-Datei im Arbeitsbereich festgelegt werden; siehe .env-Dateien im Arbeitsbereich.
Fehlerbehebung
- Wenn der Bot eine Verbindung herstellt, aber in Kanälen nie antwortet, prüfen Sie
channels.irc.groupsund, ob die Erwähnungspflicht Nachrichten verwirft (missing-mention). Wenn er ohne direkte Ansprache antworten soll, legen Sie für den KanalrequireMention:falsefest. - Wenn die Anmeldung fehlschlägt, prüfen Sie die Verfügbarkeit des Nicks und das Serverpasswort.
- Wenn TLS in einem benutzerdefinierten Netzwerk fehlschlägt, prüfen Sie Host, Port und die Zertifikatskonfiguration.
Verwandte Themen
- Kanalübersicht — alle unterstützten Kanäle
- Kopplung — Authentifizierung von Direktnachrichten und Kopplungsablauf
- Gruppen — Verhalten von Gruppenchats und Erwähnungspflicht
- Kanal-Routing — Sitzungs-Routing für Nachrichten
- Sicherheit — Zugriffsmodell und Absicherung