Gebruik IRC wanneer je OpenClaw in klassieke kanalen (#room) en directe berichten wilt draaien.
IRC wordt als extensie-plugin geleverd, maar wordt geconfigureerd in de hoofdconfig onder channels.irc.
Snelle start
- Schakel de IRC-config in
~/.openclaw/openclaw.jsonin. - Stel minimaal het volgende in:
{
"channels": {
"irc": {
"enabled": true,
"host": "irc.libera.chat",
"port": 6697,
"tls": true,
"nick": "openclaw-bot",
"channels": ["#openclaw"]
}
}
}
- Start de gateway (opnieuw):
openclaw gateway run
Beveiligingsstandaarden
channels.irc.dmPolicystaat standaard op"pairing".channels.irc.groupPolicystaat standaard op"allowlist".- Bij
groupPolicy="allowlist"stel jechannels.irc.groupsin om toegestane kanalen te definiëren. - Gebruik TLS (
channels.irc.tls=true) tenzij je bewust onversleuteld transport accepteert.
Toegangscontrole
Er zijn twee afzonderlijke “poorten” voor IRC-kanalen:
- Kanaaltoegang (
groupPolicy+groups): of de bot überhaupt berichten uit een kanaal accepteert. - Afzendertoegang (
groupAllowFrom/ per-kanaalgroups["#channel"].allowFrom): wie de bot binnen dat kanaal mag triggeren.
Configuratiesleutels:
- DM-allowlist (DM-afzendertoegang):
channels.irc.allowFrom - Groepsafzender-allowlist (kanaalafzendertoegang):
channels.irc.groupAllowFrom - Per-kanaalinstellingen (kanaal + afzender + mention-regels):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"staat niet-geconfigureerde kanalen toe (standaard nog steeds mention-gated)
Allowlist-vermeldingen moeten stabiele afzenderidentiteiten gebruiken (nick!user@host).
Kale nick-matching is veranderlijk en wordt alleen ingeschakeld wanneer channels.irc.dangerouslyAllowNameMatching: true.
Veelvoorkomende valkuil: allowFrom is voor DM’s, niet voor kanalen
Als je logs ziet zoals:
irc: drop group sender alice!ident@host (policy=allowlist)
…betekent dit dat de afzender niet was toegestaan voor groeps-/kanaalberichten. Los dit op door:
channels.irc.groupAllowFromin te stellen (globaal voor alle kanalen), of- per-kanaal afzender-allowlists in te stellen:
channels.irc.groups["#channel"].allowFrom
Voorbeeld (iedereen in #tuirc-dev toestaan om met de bot te praten):
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": { allowFrom: ["*"] },
},
},
},
}
Antwoord-triggering (vermeldingen)
Zelfs als een kanaal is toegestaan (via groupPolicy + groups) en de afzender is toegestaan, past OpenClaw standaard mention-gating toe in groepscontexten.
Dat betekent dat je logs kunt zien zoals drop channel … (missing-mention) tenzij het bericht een mention-patroon bevat dat overeenkomt met de bot.
Om de bot in een IRC-kanaal te laten antwoorden zonder dat een vermelding nodig is, schakel je mention-gating voor dat kanaal uit:
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": {
requireMention: false,
allowFrom: ["*"],
},
},
},
},
}
Of om alle IRC-kanalen toe te staan (geen per-kanaal-allowlist) en toch zonder vermeldingen te antwoorden:
{
channels: {
irc: {
groupPolicy: "open",
groups: {
"*": { requireMention: false, allowFrom: ["*"] },
},
},
},
}
Beveiligingsopmerking (aanbevolen voor openbare kanalen)
Als je allowFrom: ["*"] toestaat in een openbaar kanaal, kan iedereen de bot aanspreken.
Beperk de tools voor dat kanaal om risico’s te verminderen.
Dezelfde tools voor iedereen in het kanaal
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
tools: {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
},
},
},
},
}
Verschillende tools per afzender (eigenaar krijgt meer rechten)
Gebruik toolsBySender om een strenger beleid toe te passen voor "*" en een losser beleid voor jouw nick:
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
toolsBySender: {
"*": {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
"id:eigen": {
deny: ["gateway", "nodes", "cron"],
},
},
},
},
},
},
}
Opmerkingen:
toolsBySender-sleutels moetenid:gebruiken voor IRC-afzenderidentiteitswaarden:id:eigenofid:[email protected]voor sterkere matching.- Legacy-sleutels zonder prefix worden nog steeds geaccepteerd en alleen als
id:gematcht. - Het eerste overeenkomende afzenderbeleid wint;
"*"is de wildcard-terugval.
Voor meer over groepstoegang versus mention-gating (en hoe ze samenwerken), zie: /channels/groups.
NickServ
Om je bij NickServ te identificeren na verbinding:
{
"channels": {
"irc": {
"nickserv": {
"enabled": true,
"service": "NickServ",
"password": "your-nickserv-password"
}
}
}
}
Optionele eenmalige registratie bij verbinding:
{
"channels": {
"irc": {
"nickserv": {
"register": true,
"registerEmail": "[email protected]"
}
}
}
}
Schakel register uit nadat de nick is geregistreerd om herhaalde REGISTER-pogingen te voorkomen.
Omgevingsvariabelen
Het standaardaccount ondersteunt:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(kommagescheiden)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
Probleemoplossing
- Als de bot verbinding maakt maar nooit antwoordt in kanalen, controleer dan
channels.irc.groupsen of mention-gating berichten dropt (missing-mention). Als je wilt dat de bot antwoordt zonder pings, stel danrequireMention:falsein voor het kanaal. - Als inloggen mislukt, controleer dan de beschikbaarheid van de nick en het serverwachtwoord.
- Als TLS mislukt op een aangepast netwerk, controleer dan host/poort en certificaatinstellingen.