Hermes Agent no Telegram: vale a pena usar o agente pelo mensageiro em vez do terminal?

Hermes Agent Telegram é o jeito de conversar com o agente open source da Nous Research pelo mensageiro, sem terminal aberto. Quem faz a ponte é o gateway de mensageria: um único processo em segundo plano que conecta as plataformas configuradas (Telegram, Discord, Slack, WhatsApp, Signal e e-mail), cuida das sessões, roda os cron jobs e entrega mensagens de voz. No chat dá pra mandar texto, voz, imagem e arquivo, trocar de modelo com /model e definir onde as tarefas agendadas caem com /sethome. O terminal segue melhor pra sessão longa e contínua na máquina
Fala aí, beleza? Teu agente não precisa mais morar num terminal aberto esperando você lembrar dele
Ele pode simplesmente te chamar no chat, igual qualquer contato
O Hermes Agent é um agente de IA open source da Nous Research, publicado sob licença MIT no repositório NousResearch/hermes-agent, com 222,6 mil estrelas no GitHub segundo o star-history (dado com referência de 30/07/2026)
E aí vem a pergunta que move este post: pra quê serve conversar com ele pelo mensageiro, se o terminal já está ali? 🙂
Bora destrinchar isso
Como o Hermes chega no Telegram: TUI, gateway e painel web
O Hermes tem dois pontos de entrada oficiais, e um painel de administração por cima
O primeiro é a TUI: o comando hermes abre a interface de terminal e você conversa ali mesmo
O segundo é o gateway de mensageria, que é onde o Telegram entra
E o que é esse gateway? É um único processo em segundo plano que conecta todas as plataformas configuradas (Telegram, Discord, Slack, WhatsApp, Signal ou e-mail), cuida das sessões, roda os cron jobs e entrega as mensagens de voz
Se você conhece aquele daemon que fica de plantão no fundo enquanto tu faz outra coisa, é exatamente essa vibe: um processo só, várias portas de entrada
E dá pra ter mais de um? Dá, o Hermes trabalha com perfis, e aí a regra é um gateway por perfil, cada perfil com o próprio token de bot (voltamos nisso lá nos problemas comuns)
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
A integração com o Telegram é construída sobre a biblioteca python-telegram-bot, e aceita texto, voz, imagens e anexos de arquivo
E tem o terceiro elemento, que muita gente ignora: o painel web oficial, que roda localmente em http://127.0.0.1:9119, tudo na própria máquina
Por ele você administra configuração, chaves de API, gateway, memória, sessões, logs, cron jobs e skills
O painel ainda traz uma aba Chat embutida com o TUI via PTY/WebSocket, ou seja: dá pra conversar por ali também, mas o espírito dele é administrar
Telegram x terminal x painel web: o que cada interface entrega
Antes da tabela, um aviso: as três interfaces falam com o MESMO agente
Não é um Hermes do Telegram e outro do terminal, é o mesmo bicho com portas diferentes
| O que muda | Telegram (gateway) | TUI no terminal | Painel web local |
|---|---|---|---|
| Notificação quando termina | tarefa agendada entrega o resultado no destino configurado, e /sethome define o chat atual (DM ou grupo) como esse destino |
o comando hermes abre a sessão e a conversa acontece na máquina, com você na frente dela |
serve pra administrar cron jobs, sessões e logs, não pra receber a entrega |
| Mão dupla na entrega | por padrão a entrega do cron é sem retorno, mas com a opção continuable o resumo vira conversa com contexto preservado |
conversa contínua na sessão aberta | aba Chat embutida com o TUI via PTY/WebSocket |
| Histórico como memória | toda conversa vira sessão com histórico completo, igual à CLI | ao sair, a CLI imprime um comando de retomada e o histórico é restaurado do SQLite | lista e administra as sessões |
| Voz e imagem | aceita texto, voz, imagens e anexos de arquivo | entrada pelo terminal | administração |
| Envio de arquivo | o agente inclui a tag MEDIA:/caminho/do/arquivo na resposta e o gateway remove a tag e entrega o arquivo como anexo nativo |
arquivo fica no sistema de arquivos da máquina | acesso via painel local |
| Uso em grupo | sessões separadas por usuário no grupo (group_sessions_per_user: true), e prompts de sistema efêmeros por grupo ou tópico |
sessão individual na máquina | não é interface de grupo |
| Administração | comandos no chat, como /model e /sethome |
comando hermes |
configuração, chaves, gateway, memória, sessões, logs, cron e skills |
Dois pontos dessa tabela são onde o mensageiro REALMENTE muda o jogo
O primeiro é a entrega: quando o Hermes roda uma tarefa agendada, quem entrega a resposta final é o próprio sistema, no destino configurado
Rodando /sethome no chat que você quiser (DM ou grupo), aquele chat vira o canal de entrega
Traduzindo: o agente te procura, você não precisa procurar ele
O segundo ponto é a mão dupla
Por padrão a entrega de uma tarefa agendada é sem retorno, tipo um recado colado na geladeira
Mas se o job for marcado como continuable, o resumo entregue vira uma conversa em que dá pra responder ali mesmo, com o contexto preservado
É a diferença entre receber um relatório e poder perguntar "e por que esse número subiu?" sem abrir mais nada 😀
Em que tarefas o mensageiro ganha do terminal
Agora vamos ao concreto, porque interface bonita sem caso de uso é só enfeite
Briefing diário. A documentação oficial tem um guia de bot de briefing diário, que é exatamente esse padrão: a tarefa agendada roda sozinha e o resumo cai no mensageiro
Casa perfeito com o /sethome e com o continuable
Assistente de time. Também existe um guia oficial de assistente de time no Telegram, com autorização por usuário pro uso compartilhado
Aqui o mensageiro ganha por um motivo bobo e decisivo: o time JÁ está lá
Grupo sem bagunça de contexto. Em grupos, o Hermes usa por padrão sessões separadas por usuário (group_sessions_per_user: true)
Então duas pessoas no mesmo canal não compartilham histórico nem poluem o contexto uma da outra
E dá pra dar prompts de sistema efêmeros pra grupos ou tópicos específicos: eles são injetados a cada turno e nunca gravados no histórico da transcrição
Trocar de modelo sem sair do chat. O comando /model sem argumentos abre um teclado inline dentro do Telegram, com navegação por provedor e paginação editando a mesma mensagem (Prev/Next, Back, Cancel)
Isso é mto massa pra quem quer testar modelo diferente no meio de uma conversa
Ditar em vez de digitar. A transcrição de áudio pode rodar local com faster-whisper ou por API, com as chaves definidas no arquivo de ambiente do Hermes
Andando na rua, mandar áudio é imbatível
Agora o contraponto honesto, porque não é tudo festa
Memória e histórico são do AGENTE, não do Telegram
As sessões guardam metadados em SQLite (~/.hermes/state.db) e transcrições brutas em JSONL (~/.hermes/sessions/), e existe a ferramenta session_search, que faz busca full-text do SQLite (FTS5) nas conversas passadas, sem chamada de LLM e sem resumo
A memória persistente é coisa separada do histórico: fica em arquivos em ~/.hermes/memories/, injetada no system prompt como snapshot no início da sessão, e o próprio agente gerencia isso com a ferramenta memory
Ou seja: o chat do Telegram é uma janela bonita pra esse acervo, não é o acervo
Quem vive em sessão longa e quer retomar do ponto exato continua muito bem servido pela TUI, que imprime um comando de retomada ao sair e restaura o histórico completo do SQLite
Se você ainda está decidindo qual agente colocar pra rodar, vale olhar essa comparação entre Hermes e OpenClaw antes de investir tempo na configuração
Como conectar o Hermes Agent ao Telegram
Aqui vai o caminho curto, só com o que está documentado
- Crie o bot no @BotFather e copie o token. O
@BotFather(t.me/BotFather) é a ferramenta oficial do Telegram pra gerenciar bots, e é ele quem emite o token
Guarde esse token como se fosse senha, porque é
O erro comum deste passo: colar o token em lugar público e achar que não deu nada
Se vazar, o /revoke no próprio BotFather invalida o token vazado
- Descubra o seu ID numérico de usuário. Mande uma mensagem pro
@userinfobote ele te devolve o ID (algo no formato123456789)
O erro comum deste passo: usar o @username no lugar do ID numérico
A allowlist do Hermes trabalha com ID numérico, ponto
- Rode o assistente de configuração do gateway. É ele quem pergunta o token do bot e os IDs de usuário permitidos e escreve a configuração pra você
hermes gateway setup
Na hora de escolher a plataforma, selecione Telegram e responda o que ele pedir
O erro comum deste passo: deixar a lista de usuários permitidos vazia achando que "depois eu preencho"
Sem ela, o gateway nega todos os usuários por padrão, por segurança
- Confira onde as coisas ficam. Os arquivos de configuração do Hermes moram no diretório
~/.hermes
~/.hermes/config.yaml
~/.hermes/.env
~/.hermes/logs/gateway.log
As credenciais do Telegram ficam em duas variáveis:
TELEGRAM_BOT_TOKEN=token_gerado_pelo_botfather
TELEGRAM_ALLOWED_USERS=123456789,987654321
Repare que os IDs numéricos vão separados por vírgula
- No chat, defina o canal de entrega. Rode
/sethomeno chat do Telegram que você quer usar (DM ou grupo) e é ali que as tarefas agendadas vão entregar o resultado
A variável correspondente é TELEGRAM_HOME_CHANNEL
O erro comum deste passo: rodar o /sethome no chat errado e depois procurar a entrega no lugar onde ela nunca foi mandada
Quem já mexeu com agente por mensageiro reconhece o padrão: é bem parecido com o fluxo de conversar com o agente pelo WhatsApp, muda o mensageiro e muda a burocracia de credencial
Problemas comuns do Hermes no Telegram (e como evitar)
Tome cuidado com estes três, porque eles parecem bug e não são
Sintoma: o bot não responde a ninguém.
Causa: TELEGRAM_ALLOWED_USERS vazio
O gateway nega todos os usuários por padrão quando não existe allowlist, e isso é decisão de segurança, não falha
Solução: preencher a variável com os IDs numéricos separados por vírgula (de novo: ID numérico, não @username)
Sintoma: o polling é rejeitado quando você sobe um segundo gateway.
Causa: o mesmo token de bot reutilizado em dois perfis rodando ao mesmo tempo
O Telegram rejeita o polling concorrente
Solução: um token de bot por perfil, um gateway por perfil
Sintoma: confusão sobre quem pode acionar o bot e qual sessão de grupo serve de contexto.
Causa: são DUAS chaves diferentes fazendo coisas diferentes, e é fácil trocar uma pela outra
Solução: allowed_chats controla onde o bot responde, e group_allowed_chats autoriza a sessão de grupo usada como contexto observado
Pra prevenção, três hábitos simples
Primeiro: acompanhe o log em ~/.hermes/logs/gateway.log, que é onde a verdade aparece
Segundo: ligue o indicador de status (status_indicator), que altera a descrição curta do perfil do bot pra Online ao conectar e Offline no desligamento limpo, com textos personalizáveis
Assim você bate o olho no perfil e já sabe se o gateway está de pé
Terceiro: ajuste o menu de comandos do bot com max_commands (padrão 60) e priority_mode em prepend, append ou replace
Veredito: quando usar o Telegram e quando voltar para o terminal
Sem cima de muro, vamos lá
Use o Telegram quando o trabalho for assíncrono, agendado, em grupo ou móvel
Briefing que chega sozinho, time compartilhando o mesmo assistente com autorização por usuário, anexo entregue como arquivo nativo pela tag MEDIA, áudio ditado no caminho de casa
Aqui o mensageiro ganha porque ele NOTIFICA e porque você responde de dentro da própria entrega
Volte pro terminal quando a sessão for longa e contínua, com você sentado na máquina
A TUI imprime o comando de retomada ao sair e restaura o histórico completo a partir do SQLite, o que é o ambiente natural de quem está no meio de um trabalho pesado
Use o painel web quando o assunto for administrar, e não conversar
Chaves de API, gateway, memória, sessões, logs, cron jobs e skills: é tudo local, em http://127.0.0.1:9119
E o ponto mais importante do veredito: a escolha é POR TAREFA, não por lealdade a uma interface
Como o histórico e a memória são do agente e valem pros dois pontos de entrada, trocar de porta não te custa contexto
Conclusão
O mensageiro ganha do terminal em três coisas bem específicas: notificação (o agente te procura), mão dupla (você responde de dentro da entrega, se o job for continuable) e histórico da conversa como registro do que foi pedido, guardado em sessão e pesquisável pelo session_search
O terminal segue imbatível na sessão longa, e o painel web é o lugar de administrar
Se quiser sentir a diferença na prática antes de decidir onde o teu agente vai morar, o roteiro é curto: cria o bot no BotFather, roda o hermes gateway setup com o teu ID numérico na allowlist, dá /sethome no chat certo e monta um cron de briefing marcado como continuável
Aí é só esperar a primeira mensagem chegar sozinha e ver se você volta pro terminal ou não 😀
até o próximo post!
Perguntas frequentes
Como conectar o Hermes Agent ao Telegram?
Rode hermes gateway setup e escolha a plataforma Telegram: o assistente pergunta o token do bot e os IDs de usuário permitidos e já escreve a configuração pra você. O token vem do @BotFather (t.me/BotFather), e os arquivos de configuração ficam no diretório ~/.hermes.
Preciso liberar cada usuário manualmente no Telegram?
Sim, a allowlist usa o ID numérico do usuário (tipo 123456789), obtido enviando mensagem para @userinfobot, e não o @username. Sem a lista de usuários permitidos configurada, o gateway nega todos os usuários por padrão, então esse passo não é opcional.
Dá pra usar o mesmo bot do Telegram em dois gateways do Hermes ao mesmo tempo?
Não. Cada perfil de gateway precisa do próprio token de bot, e reutilizar o mesmo token em dois gateways rodando junto faz o Telegram rejeitar o polling concorrente. A regra é um token por perfil, um gateway por perfil.
Como fazer as tarefas agendadas do Hermes chegarem no chat certo do Telegram?
Rode /sethome no chat que você quiser (DM ou grupo) e ele vira o destino de entrega das tarefas agendadas, com a variável correspondente TELEGRAM_HOME_CHANNEL. Por padrão essa entrega é sem retorno, mas o job marcado como continuable transforma o resumo numa conversa com o contexto preservado.
Onde ficam guardadas as conversas do Hermes feitas pelo Telegram?
Toda conversa, seja da CLI ou dos mensageiros, vira sessão com histórico completo: os metadados ficam em SQLite (~/.hermes/state.db) e a transcrição bruta em JSONL (~/.hermes/sessions/). É a mesma base usada pela TUI no terminal.
Dá pra buscar em conversas antigas do Hermes no Telegram?
Sim, o Hermes tem a ferramenta interna session_search, que faz busca full-text (FTS5) do SQLite em todas as sessões, sem chamar LLM e sem resumo. Isso vale pra qualquer sessão gravada, incluindo as que rolaram no Telegram.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Hermes Agent é gratuito para usar em trabalho de cliente?
Hermes Agent é licenciado em MIT: uso comercial liberado sem taxa. Veja o que isso cobre, o que fica de fora e as regras para trabalho de cliente.
Como testar o Hermes Agent em ambiente controlado antes de dar acesso ao que importa?
Aprenda a testar o Hermes Agent em ambiente controlado: perfil isolado, container descartável, aprovação manual e skills sob revisão antes do acesso real.
Hermes Agent e Claude Code: onde cada um entra no fluxo de quem programa?
Hermes Agent e Claude Code fazem coisas diferentes: veja onde cada um entra no fluxo de quem programa e como a skill claude-code liga os dois.
