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 setupe 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ável | Obrigatória | Descrição |
|---|---|---|
IRC_SERVER | Sim | Nome do servidor (por exemplo, irc.libera.chat) |
IRC_CHANNEL | Sim | Canal ou canais — separe por vírgula |
IRC_NICKNAME | Sim | Apelido 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.