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 runStandaardbeveiliging
- 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