Ir al contenido

Configura IRC en OpenClaw: Guía rápida en 5 minutos

¿Alguna vez has sentido que configurar un bot en IRC es como volver a los años 90, pero con la complejidad de seguridad de hoy en día? Es frustrante lidiar con permisos que no funcionan o bots que ignoran tus mensajes sin dar ninguna explicación.

OpenClaw simplifica esta integración para que puedas tener tu Gateway funcionando en canales clásicos y mensajes directos sin complicaciones innecesarias. Aquí tienes cómo configurarlo correctamente.

Usa IRC cuando quieras OpenClaw en canales clásicos (#room) y mensajes directos. IRC se distribuye como un plugin de extensión, pero se configura en el archivo de configuración principal bajo channels.irc.

  1. Activa la configuración de IRC en ~/.openclaw/openclaw.json.
  2. Configura al menos estos parámetros:
{
channels: {
irc: {
enabled: true,
host: "irc.libera.chat",
port: 6697,
tls: true,
nick: "openclaw-bot",
channels: ["#openclaw"],
},
},
}
  1. Inicia o reinicia el Gateway:
Ventana de terminal
openclaw gateway run
  • channels.irc.dmPolicy tiene como valor predeterminado "pairing".
  • channels.irc.groupPolicy tiene como valor predeterminado "allowlist".
  • Con groupPolicy="allowlist", usa channels.irc.groups para definir los canales permitidos.
  • Usa siempre TLS (channels.irc.tls=true) a menos que aceptes el riesgo de usar transporte en texto plano.

Existen dos “puertas” de acceso separadas para los canales de IRC:

  1. Acceso al canal (groupPolicy + groups): determina si el bot acepta mensajes de un canal en absoluto.
  2. Acceso del remitente (groupAllowFrom / groups["#channel"].allowFrom por canal): define quién puede activar el bot dentro de ese canal.

Claves de configuración:

  • Lista de permitidos para DM (acceso de remitente en DM): channels.irc.allowFrom
  • Lista de permitidos para grupos (acceso de remitente en canales): channels.irc.groupAllowFrom
  • Controles por canal (reglas de canal + remitente + menciones): channels.irc.groups["#channel"]
  • channels.irc.groupPolicy="open" permite canales no configurados (aunque siguen filtrados por mención por defecto).

Las entradas de la lista de permitidos deben usar identidades de remitente estables (nick!user@host). La coincidencia solo por nick es mutable y solo se activa si channels.irc.dangerouslyAllowNameMatching: true.

Error común: allowFrom es para DMs, no para canales

Sección titulada «Error común: allowFrom es para DMs, no para canales»

Si ves logs como este:

  • irc: drop group sender alice!ident@host (policy=allowlist)

…significa que el remitente no tiene permiso para enviar mensajes de grupo o canal. Puedes solucionarlo de dos formas:

  • Configurando channels.irc.groupAllowFrom (global para todos los canales).
  • Configurando listas de remitentes permitidos por canal: channels.irc.groups["#channel"].allowFrom.

Ejemplo (permitir que cualquiera en #tuirc-dev hable con el bot):

{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": { allowFrom: ["*"] },
},
},
},
}

Incluso si un canal y el remitente están permitidos, OpenClaw requiere por defecto una mención obligatoria en contextos de grupo.

Esto significa que podrías ver logs como drop channel … (missing-mention) a menos que el mensaje incluya un patrón de mención que coincida con el bot.

Para que el bot responda en un canal de IRC sin necesidad de mencionarlo, desactiva el requisito de mención para ese canal:

{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": {
requireMention: false,
allowFrom: ["*"],
},
},
},
},
}

O para permitir todos los canales de IRC (sin lista específica por canal) y responder 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 usas allowFrom: ["*"] en un canal público, cualquier usuario podrá interactuar con el bot. Para reducir riesgos, te recomiendo restringir las herramientas disponibles en ese canal.

{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
tools: {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
},
},
},
},
}

Diferentes herramientas por remitente (el dueño tiene más poder)

Sección titulada «Diferentes herramientas por remitente (el dueño tiene más poder)»

Usa toolsBySender para aplicar una política estricta a "*" y una más flexible a tu propio nick:

{
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 en toolsBySender deben usar el prefijo id: para identidades de IRC: id:eigen o id:eigen!~eigen@174.127.248.171 para una coincidencia más precisa.
  • Las claves antiguas sin prefijo se siguen aceptando y se tratan como id:.
  • La primera política de remitente que coincida es la que se aplica; "*" funciona como comodín final.

Para saber más sobre el acceso a grupos frente al filtrado por menciones, consulta: /channels/groups.

Para identificarte con NickServ después de conectar:

{
channels: {
irc: {
nickserv: {
enabled: true,
service: "NickServ",
password: "your-nickserv-password",
},
},
},
}

Registro opcional por única vez al conectar:

{
channels: {
irc: {
nickserv: {
register: true,
registerEmail: "bot@example.com",
},
},
},
}

Desactiva register una vez que el nick esté registrado para evitar intentos repetidos de registro.

La cuenta por defecto soporta estas variables:

  • IRC_HOST
  • IRC_PORT
  • IRC_TLS
  • IRC_NICK
  • IRC_USERNAME
  • IRC_REALNAME
  • IRC_PASSWORD
  • IRC_CHANNELS (separados por comas)
  • IRC_NICKSERV_PASSWORD
  • IRC_NICKSERV_REGISTER_EMAIL
  • Si el bot conecta pero no responde en los canales, verifica channels.irc.groups.
  • Comprueba si el filtrado por menciones está descartando mensajes (missing-mention). Si quieres respuestas sin pings, usa requireMention:false.
  • Si el login falla, verifica que el nick esté disponible y que la contraseña del servidor sea correcta.
  • Si falla TLS en una red personalizada, revisa la configuración del host, el puerto y el certificado.
  • Channels Overview — todos los canales soportados
  • Pairing — autenticación en DM y flujo de emparejamiento
  • Groups — comportamiento en chats grupales y menciones
  • Channel Routing — enrutamiento de sesiones para mensajes
  • Security — modelo de acceso y endurecimiento de seguridad
  • Configura tu primer canal siguiendo la guía de Groups.
  • Aprende a proteger tus herramientas en la sección de Security.

AI Setup Assistant

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.