IRC
Usa IRC cuando quieras tener OpenClaw en canales clásicos (#room) y mensajes directos.
IRC se distribuye como un plugin de extensión, pero se configura en la configuración principal bajo channels.irc.
Inicio rápido
Sección titulada «Inicio rápido»- Activa la configuración de IRC en
~/.openclaw/openclaw.json. - Establezca al menos:
{ channels: { irc: { enabled: true, host: "irc.libera.chat", port: 6697, tls: true, nick: "openclaw-bot", channels: ["#openclaw"], }, },}- Inicia/reinicia el gateway:
openclaw gateway runValores predeterminados de seguridad
Sección titulada «Valores predeterminados de seguridad»channels.irc.dmPolicypor defecto es"pairing".channels.irc.groupPolicypor defecto es"allowlist".- Con
groupPolicy="allowlist", establezcachannels.irc.groupspara definir los canales permitidos. - Use TLS (
channels.irc.tls=true) a menos que acepte intencionalmente el transporte en texto plano.
Control de acceso
Sección titulada «Control de acceso»Hay dos “puertas” separadas para los canales IRC:
- Acceso al canal (
groupPolicy+groups): si el bot acepta mensajes de un canal en absoluto. - Acceso del remitente (
groupAllowFrom/groups["#channel"].allowFrompor canal): quién tiene permiso para activar el bot dentro de ese canal.
Claves de configuración:
- Lista de permitidos de DM (acceso de remitente DM):
channels.irc.allowFrom - Lista de permitidos de remitentes de grupo (acceso de remitente del canal):
channels.irc.groupAllowFrom - Controles por canal (canal + remitente + reglas de mención):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"permite canales no configurados (todavía restringidos por mención de forma predeterminada)
Las entradas de la lista de permitidos deben usar identidades de remitente estables (nick!user@host).
La coincidencia de nick simple es mutable y solo se habilita cuando channels.irc.dangerouslyAllowNameMatching: true.
Error común: allowFrom es para MD, no para canales
Sección titulada «Error común: allowFrom es para MD, no para canales»Si ve registros como:
irc: drop group sender alice!ident@host (policy=allowlist)
…significa que al remitente no se le permitió para mensajes de grupo/canal. Soluciónelo mediante:
- estableciendo
channels.irc.groupAllowFrom(global para todos los canales), o - estableciendo listas de permitidos de remitentes por canal:
channels.irc.groups["#channel"].allowFrom
Ejemplo (permitir a cualquier persona en #tuirc-dev hablar con el bot):
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#tuirc-dev": { allowFrom: ["*"] }, }, }, },}Activación de respuesta (menciones)
Sección titulada «Activación de respuesta (menciones)»Incluso si un canal está permitido (vía groupPolicy + groups) y el remitente está permitido, OpenClaw usa por defecto el filtrado por menciones (mention-gating) en contextos de grupo.
Eso significa que puedes ver registros como drop channel … (missing-mention) a menos que el mensaje incluya un patrón de mención que coincida con el bot.
Para hacer que el bot responda en un canal IRC sin necesidad de una mención, desactiva el filtrado por menciones para ese canal:
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#tuirc-dev": { requireMention: false, allowFrom: ["*"], }, }, }, },}O para permitir todos los canales IRC (sin lista de permitidos por canal) y seguir respondiendo sin menciones:
{ channels: { irc: { groupPolicy: "open", groups: { "*": { requireMention: false, allowFrom: ["*"] }, }, }, },}Nota de seguridad (recomendado para canales públicos)
Sección titulada «Nota de seguridad (recomendado para canales públicos)»Si permites allowFrom: ["*"] en un canal público, cualquiera puede enviarle instrucciones al bot.
Para reducir el riesgo, restringe las herramientas para ese canal.
Mismas herramientas para todos en el canal
Sección titulada «Mismas herramientas para todos en el canal»{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], tools: { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, }, }, }, },}Diferentes herramientas por remitente (el propietario obtiene más poder)
Sección titulada «Diferentes herramientas por remitente (el propietario obtiene más poder)»Usa toolsBySender para aplicar una política más estricta a "*" y una más relajada a tu apodo:
{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], toolsBySender: { "*": { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, "id:eigen": { deny: ["gateway", "nodes", "cron"], }, }, }, }, }, },}Notas:
- Las claves de
toolsBySenderdeben usarid:para los valores de identidad del remitente de IRC:id:eigenoid:[email protected]para una coincidencia más fuerte. - Las claves heredadas sin prefijo todavía se aceptan y coinciden solo como
id:. - Gana la primera política de remitente que coincida;
"*"es el respaldo de comodín.
Para obtener más información sobre el acceso de grupos frente al filtrado por menciones (y cómo interactúan), consulte: /channels/groups.
NickServ
Sección titulada «NickServ»Para identificarse con NickServ después de conectarse:
{ channels: { irc: { nickserv: { enabled: true, service: "NickServ", password: "your-nickserv-password", }, }, },}Registro opcional de una sola vez al conectarse:
{ channels: { irc: { nickserv: { register: true, }, }, },}Deshabilita register después de que el apodo esté registrado para evitar intentos repetidos de REGISTER.
Variables de entorno
Sección titulada «Variables de entorno»La cuenta predeterminada admite:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(separadas por comas)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
Solución de problemas
Sección titulada «Solución de problemas»- Si el bot se conecta pero nunca responde en los canales, verifica
channels.irc.groupsy si el filtrado por menciones está descartando mensajes (missing-mention). Si quieres que responda sin pings, establecerequireMention:falsepara el canal. - Si el inicio de sesión falla, verifica la disponibilidad del nick y la contraseña del servidor.
- Si TLS falla en una red personalizada, verifica el host/puerto y la configuración del certificado.
Relacionado
Sección titulada «Relacionado»- Resumen de canales — todos los canales compatibles
- Emparejamiento — autenticación de DM y flujo de emparejamiento
- Grupos — comportamiento del chat grupal y filtrado de menciones
- Enrutamiento de canales — enrutamiento de sesión para mensajes
- Seguridad — modelo de acceso y endurecimiento