IRC
Use IRC quando quiser o OpenClaw em canais clássicos (#room) e mensagens diretas.
O IRC é distribuído como um plugin de extensão, mas é configurado na configuração principal em channels.irc.
Início rápido
- Ative a configuração de IRC em
~/.openclaw/openclaw.json. - Defina pelo menos:
- Inicie/reinicie o gateway:
Padrões de segurança
channels.irc.dmPolicytem como padrão"pairing".channels.irc.groupPolicytem como padrão"allowlist".- Com
groupPolicy="allowlist", definachannels.irc.groupspara definir os canais permitidos. - Use TLS (
channels.irc.tls=true) a menos que você intencionalmente aceite transporte em texto simples.
Controle de acesso
Há dois “gates” separados para canais IRC:- Acesso ao canal (
groupPolicy+groups): se o bot aceita mensagens de um canal. - Acesso do remetente (
groupAllowFrom/groups["#channel"].allowFrompor canal): quem tem permissão para acionar o bot dentro desse canal.
- Allowlist de DM (acesso do remetente em DM):
channels.irc.allowFrom - Allowlist de remetentes de grupo (acesso do remetente no canal):
channels.irc.groupAllowFrom - Controles por canal (canal + remetente + regras de menção):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"permite canais não configurados (ainda com gating por menção por padrão)
nick!user@host).
A correspondência por nick simples é mutável e só é ativada quando channels.irc.dangerouslyAllowNameMatching: true.
Armadilha comum: allowFrom é para DMs, não para canais
Se você vir logs como:
irc: drop group sender alice!ident@host (policy=allowlist)
- definindo
channels.irc.groupAllowFrom(global para todos os canais), ou - definindo allowlists de remetente por canal:
channels.irc.groups["#channel"].allowFrom
#tuirc-dev fale com o bot):
Acionamento de resposta (menções)
Mesmo que um canal seja permitido (viagroupPolicy + groups) e o remetente seja permitido, o OpenClaw usa por padrão gating por menção em contextos de grupo.
Isso significa que você pode ver logs como drop channel … (missing-mention) a menos que a mensagem inclua um padrão de menção que corresponda ao bot.
Para fazer o bot responder em um canal IRC sem precisar de uma menção, desative o gating por menção para esse canal:
Observação de segurança (recomendado para canais públicos)
Se você permitirallowFrom: ["*"] em um canal público, qualquer pessoa poderá fazer prompts para o bot.
Para reduzir o risco, restrinja as ferramentas para esse canal.
As mesmas ferramentas para todos no canal
Ferramentas diferentes por remetente (o proprietário recebe mais poder)
UsetoolsBySender para aplicar uma política mais rígida a "*" e uma mais flexível ao seu nick:
- As chaves de
toolsBySenderdevem usarid:para valores de identidade do remetente IRC:id:eigenouid:eigen!~eigen@174.127.248.171para correspondência mais forte. - Chaves legadas sem prefixo ainda são aceitas e correspondem apenas como
id:. - A primeira política de remetente correspondente vence;
"*"é o fallback curinga.
NickServ
Para se identificar com o NickServ após a conexão:register depois que o nick estiver registrado para evitar tentativas repetidas de REGISTER.
Variáveis de ambiente
A conta padrão oferece suporte a:IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(separado por vírgulas)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
Solução de problemas
- Se o bot se conectar, mas nunca responder nos canais, verifique
channels.irc.groupse se o gating por menção está descartando mensagens (missing-mention). Se você quiser que ele responda sem pings, definarequireMention:falsepara o canal. - Se o login falhar, verifique a disponibilidade do nick e a senha do servidor.
- Se o TLS falhar em uma rede personalizada, verifique host/porta e a configuração do certificado.
Relacionado
- Visão geral dos canais — todos os canais compatíveis
- Pairing — autenticação por DM e fluxo de pairing
- Grupos — comportamento de chat em grupo e gating por menção
- Roteamento de Canais — roteamento de sessão para mensagens
- Segurança — modelo de acesso e hardening