Pular para o conteúdo principal

Documentação oficial desta página · v0.20.6

IRC

O adaptador de IRC conecta o Hermes a qualquer servidor IRC e repassa mensagens entre um canal (ou mensagens diretas) e o agente. Ele fala o protocolo IRC pelo asyncio da biblioteca padrão do Python — sem dependência externa, sem SDK, sem daemon. Funciona com redes públicas como a Libera.Chat e com qualquer servidor próprio.

O IRC é texto puro: não há voz, imagem, arquivo, tópico, reação, indicação de digitação nem resposta em tempo real — as respostas saem como linhas PRIVMSG, com as mensagens longas divididas para caber no limite de linha do IRC.

Rode hermes gateway setup e escolha IRC para um passo a passo guiado.

Pré-requisitos​

  • Um servidor IRC (por exemplo, irc.libera.chat)
  • Um canal para entrar (por exemplo, #hermes) — separe por vírgula para entrar em vários
  • Um apelido para o bot (padrão: hermes-bot)
  • Opcional: um apelido registrado e a senha do NickServ, se a sua rede exigir identificação

Configurar o Hermes​

Dá para configurar de dois jeitos — por variáveis de ambiente (para uma configuração rápida) ou pelo bloco gateway do ~/.hermes/gateway-config.yaml.

Opção A — gateway-config.yaml​

gateway:
platforms:
irc:
enabled: true
extra:
server: irc.libera.chat
port: 6697
nickname: hermes-bot
channel: "#hermes"
use_tls: true
server_password: "" # senha do servidor, opcional
nickserv_password: "" # identificação no NickServ, opcional
allowed_users: [] # vazio = libera todos, ou lista de apelidos
max_message_length: 450 # limite de linha do IRC (padrão seguro)

Opção B — variáveis de ambiente​

VariávelObrigatóriaDescrição
IRC_SERVERSimNome do servidor (por exemplo, irc.libera.chat)
IRC_CHANNELSimCanal ou canais — separe por vírgula
IRC_NICKNAMESimApelido do bot (padrão: hermes-bot)
IRC_PORT—Porta (padrão: 6697 com TLS, 6667 sem)
IRC_USE_TLS—Usar TLS (true/false; padrão true na porta 6697)
IRC_SERVER_PASSWORD—Senha do servidor, para o comando PASS
IRC_NICKSERV_PASSWORD—Senha do NickServ, para identificar na conexão
IRC_ALLOWED_USERS—Apelidos autorizados a falar com o bot, separados por vírgula
IRC_ALLOW_ALL_USERS—Libera qualquer pessoa no canal (só para desenvolvimento)
IRC_HOME_CHANNEL—Canal para entrega de cron e notificações (padrão: o IRC_CHANNEL)

Controle de acesso​

Por padrão, só os apelidos em allowed_users (ou IRC_ALLOWED_USERS) podem falar com o bot. Deixe a lista vazia e defina IRC_ALLOW_ALL_USERS=true para liberar qualquer pessoa do canal — útil para testar, mas não recomendado em redes públicas, já que apelidos de IRC não são autenticados a menos que a rede exija NickServ.

Se a sua rede registra apelidos, defina IRC_NICKSERV_PASSWORD (ou nickserv_password), para o bot se identificar ao conectar e manter o apelido registrado.

Canais e mensagens diretas​

  • Mensagens num canal em que o bot entrou são tratadas como conversa de grupo.
  • Mensagens privadas ao bot são tratadas como mensagens diretas.

Tarefas de cron e notificações são entregues no canal principal — o IRC_HOME_CHANNEL, se definido, ou o primeiro IRC_CHANNEL.

Subir o gateway​

hermes gateway start

Confira com hermes gateway status — o estado da conexão IRC aparece ali, inclusive nas configurações feitas só por variável de ambiente.

Observações​

  • Respostas longas do agente são divididas automaticamente em várias linhas PRIVMSG, para caber no limite do IRC (max_message_length, padrão de 450 bytes depois do custo do protocolo).
  • O adaptador pega uma trava de credencial por servidor e apelido, então dois perfis do Hermes não brigam pela mesma identidade no IRC.