Developer and self-hosted
IRC
Verwenden Sie IRC, wenn Sie OpenClaw in klassischen Kanälen (#room) und Direktnachrichten nutzen möchten.
IRC wird als gebündeltes Plugin ausgeliefert, aber in der Hauptkonfiguration unter channels.irc konfiguriert.
Schnellstart
- Aktivieren Sie die IRC-Konfiguration in
~/.openclaw/openclaw.json. - Legen Sie mindestens Folgendes fest:
{
channels: {
irc: {
enabled: true,
host: "irc.example.com",
port: 6697,
tls: true,
nick: "openclaw-bot",
channels: ["#openclaw"],
},
},
}
Bevorzugen Sie einen privaten IRC-Server für die Bot-Koordination. Wenn Sie bewusst 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 Bot- oder Schwarm-Backchannel-Verkehr.
- Starten Sie den Gateway oder starten Sie ihn neu:
openclaw gateway run
Sicherheitsstandards
- IRC verwendet rohe TCP/TLS-Sockets außerhalb des von OpenClaw-Operatoren verwalteten Forward-Proxy-Routings. Setzen Sie in Bereitstellungen, die den gesamten ausgehenden Datenverkehr über diesen Forward-Proxy erfordern,
channels.irc.enabled=false, sofern direkter IRC-Egress nicht ausdrücklich genehmigt ist. channels.irc.dmPolicyist standardmäßig"pairing".channels.irc.groupPolicyist standardmäßig"allowlist".- Setzen Sie bei
groupPolicy="allowlist"channels.irc.groups, um erlaubte Kanäle zu definieren. - Verwenden Sie TLS (
channels.irc.tls=true), sofern Sie nicht bewusst Klartextübertragung akzeptieren.
Zugriffskontrolle
Für IRC-Kanäle gibt es zwei separate „Gates“:
- Kanalzugriff (
groupPolicy+groups): ob der Bot Nachrichten aus einem Kanal überhaupt akzeptiert. - Absenderzugriff (
groupAllowFrom/ kanalbezogenesgroups["#channel"].allowFrom): wer den Bot innerhalb dieses Kanals auslösen darf.
Konfigurationsschlüssel:
- Allowlist für DMs (DM-Absenderzugriff):
channels.irc.allowFrom - Allowlist für Gruppenabsender (Kanal-Absenderzugriff):
channels.irc.groupAllowFrom - Kanalbezogene Steuerungen (Kanal + Absender + Erwähnungsregeln):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"erlaubt nicht konfigurierte Kanäle (standardmäßig weiterhin durch Erwähnungen begrenzt)
Allowlist-Einträge sollten stabile Absenderidentitäten verwenden (nick!user@host).
Der Abgleich nur über den Nick ist veränderbar und nur aktiviert, wenn channels.irc.dangerouslyAllowNameMatching: true gesetzt ist.
Häufige Fehlerquelle: allowFrom gilt für DMs, nicht für Kanäle
Wenn Sie Logs wie diese sehen:
irc: drop group sender alice!ident@host (policy=allowlist)
...bedeutet das, dass der Absender für Gruppen-/Kanalnachrichten nicht erlaubt war. Beheben Sie dies, indem Sie entweder:
channels.irc.groupAllowFromsetzen (global für alle Kanäle), oder- kanalbezogene Absender-Allowlists setzen:
channels.irc.groups["#channel"].allowFrom
Beispiel (allen in #tuirc-dev erlauben, mit dem Bot zu sprechen):
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": { allowFrom: ["*"] },
},
},
},
}
Antwortauslösung (Erwähnungen)
Selbst wenn ein Kanal erlaubt ist (über groupPolicy + groups) und der Absender erlaubt ist, nutzt OpenClaw in Gruppenkontexten standardmäßig Mention-Gating.
Das bedeutet, Sie sehen möglicherweise Logs wie drop channel … (missing-mention), sofern die Nachricht kein Erwähnungsmuster enthält, das zum Bot passt.
Um den Bot in einem IRC-Kanal ohne erforderliche Erwähnung antworten zu lassen, deaktivieren Sie Mention-Gating für diesen Kanal:
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": {
requireMention: false,
allowFrom: ["*"],
},
},
},
},
}
Oder um alle IRC-Kanäle zu erlauben (keine kanalbezogene Allowlist) und trotzdem ohne Erwähnungen zu antworten:
{
channels: {
irc: {
groupPolicy: "open",
groups: {
"*": { requireMention: false, allowFrom: ["*"] },
},
},
},
}
Sicherheitshinweis (empfohlen für öffentliche Kanäle)
Wenn Sie allowFrom: ["*"] in einem öffentlichen Kanal erlauben, kann jeder den Bot prompten.
Um das Risiko zu verringern, beschränken Sie die Tools für diesen Kanal.
Gleiche Tools für alle im Kanal
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
tools: {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
},
},
},
},
}
Unterschiedliche Tools pro Absender (Owner erhält mehr Berechtigungen)
Verwenden Sie toolsBySender, um eine strengere Richtlinie auf "*" und eine lockerere auf Ihren Nick anzuwenden:
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
toolsBySender: {
"*": {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
"id:eigen": {
deny: ["gateway", "nodes", "cron"],
},
},
},
},
},
},
}
Hinweise:
toolsBySender-Schlüssel solltenid:für IRC-Absenderidentitätswerte verwenden:id:eigenoderid:[email protected]für stärkeren Abgleich.- Veraltete Schlüssel ohne Präfix werden weiterhin akzeptiert und nur als
id:abgeglichen. - Die erste passende Absenderrichtlinie gewinnt;
"*"ist der Wildcard-Fallback.
Weitere Informationen zu Gruppenzugriff im Vergleich zu Mention-Gating (und wie beide zusammenwirken) finden Sie unter: /channels/groups.
NickServ
Um sich nach dem Verbinden bei NickServ zu identifizieren:
{
channels: {
irc: {
nickserv: {
enabled: true,
service: "NickServ",
password: "your-nickserv-password",
},
},
},
}
Optionale einmalige Registrierung beim Verbinden:
{
channels: {
irc: {
nickserv: {
register: true,
registerEmail: "[email protected]",
},
},
},
}
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 aus einer Workspace-.env gesetzt werden; siehe Workspace-.env-Dateien.
Fehlerbehebung
- Wenn der Bot eine Verbindung herstellt, aber in Kanälen nie antwortet, prüfen Sie
channels.irc.groupsund ob Mention-Gating Nachrichten verwirft (missing-mention). Wenn er ohne Pings antworten soll, setzen SierequireMention:falsefür den Kanal. - 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 Zertifikatseinrichtung.
Verwandte Themen
- Kanalübersicht — alle unterstützten Kanäle
- Pairing — DM-Authentifizierung und Pairing-Ablauf
- Gruppen — Gruppenchatverhalten und Mention-Gating
- Kanal-Routing — Sitzungsrouting für Nachrichten
- Sicherheit — Zugriffsmodell und Härtung