Developer and self-hosted
IRC
Gebruik IRC wanneer je OpenClaw wilt gebruiken in klassieke kanalen (#room) en directe berichten.
IRC wordt geleverd als een gebundelde Plugin, maar wordt geconfigureerd in de hoofdconfiguratie onder channels.irc.
Snel starten
- Schakel IRC-configuratie in
~/.openclaw/openclaw.jsonin. - Stel minimaal het volgende in:
{
channels: {
irc: {
enabled: true,
host: "irc.example.com",
port: 6697,
tls: true,
nick: "openclaw-bot",
channels: ["#openclaw"],
},
},
}
Gebruik bij voorkeur een private IRC-server voor botcoördinatie. Als je bewust een publiek IRC-netwerk gebruikt, zijn veelvoorkomende keuzes Libera.Chat, OFTC en Snoonet. Vermijd voorspelbare publieke kanalen voor bot- of swarm-backchannelverkeer.
- Start/herstart de Gateway:
openclaw gateway run
Standaardbeveiliging
- IRC gebruikt ruwe TCP/TLS-sockets buiten de door OpenClaw-operators beheerde forward-proxyroutering. Zet in implementaties die vereisen dat alle uitgaande verbindingen via die forward proxy lopen
channels.irc.enabled=false, tenzij directe uitgaande IRC-verbindingen expliciet zijn goedgekeurd. channels.irc.dmPolicystaat standaard op"pairing".channels.irc.groupPolicystaat standaard op"allowlist".- Stel bij
groupPolicy="allowlist"channels.irc.groupsin om toegestane kanalen te definiëren. - Gebruik TLS (
channels.irc.tls=true), tenzij je bewust transport in platte tekst accepteert.
Toegangscontrole
Er zijn twee afzonderlijke "poorten" voor IRC-kanalen:
- Kanaaltoegang (
groupPolicy+groups): of de bot berichten uit een kanaal überhaupt accepteert. - Afzendertoegang (
groupAllowFrom/ per-kanaalgroups["#channel"].allowFrom): wie de bot binnen dat kanaal mag activeren.
Configuratiesleutels:
- DM-allowlist (DM-afzendertoegang):
channels.irc.allowFrom - Groepsafzender-allowlist (kanaalafzendertoegang):
channels.irc.groupAllowFrom - Per-kanaal instellingen (kanaal + afzender + vermeldingsregels):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"staat ongeconfigureerde kanalen toe (standaard nog steeds gated op vermeldingen)
Allowlist-vermeldingen moeten stabiele afzenderidentiteiten gebruiken (nick!user@host).
Matching op alleen nick is veranderlijk en 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 (sta iedereen in #tuirc-dev toe om met de bot te praten):
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": { allowFrom: ["*"] },
},
},
},
}
Antwoorden activeren (vermeldingen)
Zelfs als een kanaal is toegestaan (via groupPolicy + groups) en de afzender is toegestaan, gebruikt OpenClaw standaard vermeldingsgating in groepscontexten.
Dat betekent dat je logs kunt zien zoals drop channel … (missing-mention), tenzij het bericht een vermeldingspatroon bevat dat overeenkomt met de bot.
Schakel vermeldingsgating voor dat kanaal uit om de bot in een IRC-kanaal te laten antwoorden zonder dat een vermelding nodig is:
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": {
requireMention: false,
allowFrom: ["*"],
},
},
},
},
}
Of om alle IRC-kanalen toe te staan (zonder per-kanaal allowlist) en toch zonder vermeldingen te antwoorden:
{
channels: {
irc: {
groupPolicy: "open",
groups: {
"*": { requireMention: false, allowFrom: ["*"] },
},
},
},
}
Beveiligingsopmerking (aanbevolen voor publieke kanalen)
Als je allowFrom: ["*"] toestaat in een publiek kanaal, kan iedereen de bot prompten.
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 strikter beleid toe te passen op "*" en een ruimer beleid op je 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.- Verouderde sleutels zonder prefix worden nog steeds geaccepteerd en alleen als
id:gematcht. - Het eerste overeenkomende afzenderbeleid wint;
"*"is de wildcard-fallback.
Zie voor meer over groepstoegang versus vermeldingsgating (en hoe ze samen werken): /channels/groups.
NickServ
Om je na verbinden te identificeren bij NickServ:
{
channels: {
irc: {
nickserv: {
enabled: true,
service: "NickServ",
password: "your-nickserv-password",
},
},
},
}
Optionele eenmalige registratie bij verbinden:
{
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(komma-gescheiden)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST kan niet worden ingesteld vanuit een workspace-.env; zie Workspace-.env-bestanden.
Probleemoplossing
- Als de bot verbinding maakt maar nooit antwoordt in kanalen, controleer
channels.irc.groupsen of vermeldingsgating berichten laat vallen (missing-mention). Als je wilt dat de bot zonder pings antwoordt, stel danrequireMention:falsein voor het kanaal. - Als aanmelden mislukt, controleer de beschikbaarheid van de nick en het serverwachtwoord.
- Als TLS faalt op een aangepast netwerk, controleer de host/poort en certificaatconfiguratie.
Gerelateerd
- Kanalenoverzicht — alle ondersteunde kanalen
- Pairing — DM-authenticatie en pairing-flow
- Groepen — gedrag van groepschats en vermeldingsgating
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en hardening