IRC
Use IRC cuando quiera tener OpenClaw en canales clásicos (#room) y mensajes directos.
IRC se distribuye como un complemento incluido, pero se configura en la configuración principal bajo channels.irc.
Inicio rápido
Sección titulada «Inicio rápido»- Habilite la configuración de IRC en
~/.openclaw/openclaw.json. - Establezca al menos:
{ channels: { irc: { enabled: true, host: "irc.example.com", port: 6697, tls: true, nick: "openclaw-bot", channels: ["#openclaw"], }, },}Prefiera un servidor IRC privado para la coordinación de bots. Si usa intencionalmente una red IRC pública, las opciones comunes incluyen Libera.Chat, OFTC y Snoonet. Evite canales públicos predecibles para el tráfico de bots o canales de retroalimentación de enjambres.
- Inicia/reinicia el gateway:
openclaw gateway runValores predeterminados de seguridad
Sección titulada «Valores predeterminados de seguridad»- IRC utiliza sockets TCP/TLS sin procesar fuera del enrutamiento del proxy de reenvío gestionado por el operador de OpenClaw. En los despliegues que requieren que todo el tráfico de salida pase a través de ese proxy de reenvío, establezca
channels.irc.enabled=falsea menos que se apruebe explícitamente el tráfico de salida directo de IRC. channels.irc.dmPolicyse establece de forma predeterminada en"pairing".channels.irc.groupPolicyse establece de forma predeterminada en"allowlist".- Con
groupPolicy="allowlist", establezcachannels.irc.groupspara definir los canales permitidos. - Utilice TLS (
channels.irc.tls=true) a menos que acepte intencionalmente el transporte en texto sin formato.
Control de acceso
Sección titulada «Control de acceso»Existen dos “puertas” separadas para los canales IRC:
- Acceso al canal (
groupPolicy+groups): si el bot acepta mensajes de un canal o no. - Acceso del remitente (
groupAllowFrom/ por canalgroups["#channel"].allowFrom): quién tiene permiso para activar el bot dentro de ese canal.
Claves de configuración:
- Lista de permitidos de DM (acceso de remitente de DM):
channels.irc.allowFrom - Lista de permitidos de remitentes de grupo (acceso de remitente de 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 el remitente no tenía permiso para mensajes de grupo/canal. Soluciónelo mediante:
- establecer
channels.irc.groupAllowFrom(global para todos los canales), o - establecer listas de permitidos de remitentes por canal:
channels.irc.groups["#channel"].allowFrom
Ejemplo (permitir a cualquiera 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 se permite un canal (vía groupPolicy + groups) y se permite el remitente, OpenClaw tiene como valor predeterminado el control por mención en contextos de grupo.
Eso significa que puede 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 mención 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 hacer solicitudes 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 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 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 comodín.
Para obtener más información sobre el acceso de grupos frente a las menciones (y cómo interactúan), consulta: /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 vez al conectarse:
{ channels: { irc: { nickserv: { register: true, }, }, },}Deshabilita register después de que el nick esté registrado para evitar intentos repetidos de REGISTER.
Variables de entorno
Sección titulada «Variables de entorno»La cuenta predeterminada soporta:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(separados por comas)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST no se puede establecer desde un .env del espacio de trabajo; consulta Archivos .env del espacio de trabajo.
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 falla el inicio de sesión, verifica la disponibilidad del nick y la contraseña del servidor.
- Si falla TLS 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 DM y flujo de emparejamiento
- Grupos — comportamiento del chat grupal y filtrado por menciones
- Enrutamiento de canales — enrutamiento de sesión para mensajes
- Seguridad — modelo de acceso y reforzamiento