#room) y mensajes directos.
Instala el plugin oficial de IRC y configúralo en channels.irc.
Inicio rápido
- Instala el plugin:
- Configura al menos el host, el apodo y los canales a los que se debe unir en
~/.openclaw/openclaw.json:
- Inicia o reinicia el Gateway:
Durabilidad de la entrada
OpenClaw escribe cadaPRIVMSG de IRC aceptado en su cola de entrada duradera antes de las comprobaciones normales de políticas y del envío al agente. Los mensajes pendientes o reintentables sobreviven a un reinicio del Gateway y permanecen serializados por canal o interlocutor de mensajes directos.
IRC no proporciona un ID de entrega reproducible ni reenvía los mensajes perdidos por un cliente desconectado. Por ello, OpenClaw asigna un ID local que solo es estable dentro de la conexión TCP actual. La cola protege el intervalo local entre la aceptación y el envío; no puede recuperar un mensaje que nunca llegó a OpenClaw ni deduplicar un reenvío del servidor entre conexiones.
Ajustes de conexión
Valores de seguridad predeterminados
- IRC utiliza sockets TCP/TLS sin procesar fuera del enrutamiento mediante el proxy de reenvío administrado por el operador de OpenClaw. En implementaciones que requieran que todo el tráfico saliente pase por ese proxy de reenvío, establece
channels.irc.enabled=false, salvo que se haya aprobado explícitamente el tráfico IRC saliente directo. channels.irc.dmPolicytiene como valor predeterminado"pairing": los remitentes desconocidos de mensajes directos reciben un código de emparejamiento que se aprueba conopenclaw pairing approve irc <code>.channels.irc.groupPolicytiene como valor predeterminado"allowlist".- Con
groupPolicy="allowlist", establecechannels.irc.groupspara definir los canales permitidos. - Usa TLS (
channels.irc.tls=true), salvo que se acepte deliberadamente el transporte de texto sin cifrar.
Control de acceso
Existen dos «barreras» independientes para los canales IRC:- Acceso al canal (
groupPolicy+groups): determina si el bot acepta mensajes de un canal. - Acceso del remitente (
groupAllowFrom/groups["#channel"].allowFrompor canal): determina quién puede activar el bot dentro de ese canal.
- Lista de permitidos de mensajes directos (acceso del remitente de mensajes directos):
channels.irc.allowFrom - Lista de permitidos de remitentes de grupos (acceso de remitentes del canal):
channels.irc.groupAllowFrom - Controles por canal (reglas de canal, remitente y mención):
channels.irc.groups["#channel"]conrequireMention,allowFrom,enabled,tools,toolsBySender,skillsysystemPrompt channels.irc.groupPolicy="open"permite canales sin configurar (siguen requiriendo una mención de forma predeterminada)
nick!user@host).
La coincidencia solo por apodo es mutable y únicamente se habilita cuando channels.irc.dangerouslyAllowNameMatching: true.
Error habitual: allowFrom es para mensajes directos, no para canales
Si aparecen registros como:
irc: drop group sender alice!ident@host (policy=allowlist)
- estableciendo
channels.irc.groupAllowFrom(global para todos los canales), o - estableciendo listas de permitidos de remitentes por canal:
channels.irc.groups["#channel"].allowFrom
#openclaw hable con el bot):
Activación de respuestas (menciones)
Aunque un canal esté permitido (mediantegroupPolicy + groups) y el remitente tenga permiso, OpenClaw exige menciones de forma predeterminada en contextos de grupo. Se considera que se ha mencionado al bot cuando el mensaje contiene el apodo del bot conectado o coincide con los patrones de mención configurados.
Esto significa que pueden aparecer registros como drop channel … (missing-mention), salvo 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 requisito de mención para ese canal:
Nota de seguridad (recomendado para canales públicos)
Si se permiteallowFrom: ["*"] en un canal público, cualquiera puede enviar instrucciones al bot.
Para reducir el riesgo, restringe las herramientas de ese canal.
Las mismas herramientas para todos los participantes del canal
Herramientas diferentes por remitente (el propietario obtiene más privilegios)
UsatoolsBySender para aplicar una política más estricta a "*" y una más permisiva al apodo del propietario:
- Las claves de
toolsBySenderdeben usar prefijos explícitos (channel:,id:,e164:,username:,name:). Para IRC, usaid:con el valor de identidad del remitente:id:aliceoid:alice!~alice@203.0.113.7para obtener una coincidencia más sólida. - Las claves heredadas sin prefijo todavía se aceptan, solo se comparan como
id:y generan una advertencia de obsolescencia. - Se aplica la primera política de remitente que coincida;
"*"es la alternativa comodín.
NickServ
Para identificarse con NickServ después de conectarse:enabled solo debe ser false para inhabilitarla). El valor predeterminado de service es NickServ; passwordFile es una alternativa a password insertado directamente.
Registro único opcional al conectarse (register: true requiere registerEmail):
register después de registrar el apodo para evitar intentos repetidos de REGISTER.
Variables de entorno
La cuenta predeterminada admite: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
- Si el bot se conecta, pero nunca responde en los canales, verifica
channels.irc.groupsy si el requisito de mención está descartando mensajes (missing-mention). Para que responda sin menciones, establecerequireMention:falsepara el canal. - Si falla el inicio de sesión, verifica la disponibilidad del apodo y la contraseña del servidor.
- Si TLS falla en una red personalizada, verifica el host, el puerto y la configuración del certificado.
Contenido relacionado
- Descripción general de los canales — todos los canales compatibles
- Emparejamiento — autenticación de mensajes directos y flujo de emparejamiento
- Grupos — comportamiento de los chats grupales y requisito de mención
- Enrutamiento de canales — enrutamiento de sesiones para mensajes
- Seguridad — modelo de acceso y protección