Hermes Flightplan #1: O guia definitivo para criar um agente de IA no Telegram sempre ativo (Código completo para copiar e colar)

@witcheer
INGLÊShá 4 semanas · 22/06/2026
111K
232
34
5
759

TL;DR

Este guia oferece um passo a passo abrangente para implantar o agente de IA Hermes em um VPS ou Mac, incluindo integração com o Telegram, recuperação automatizada após falhas e configuração segura usando o Nous Portal.

Você quer um agente de IA que possa receber mensagens pelo celular, que continue rodando depois que você fechar o notebook e volte sozinho após uma reinicialização? O Hermes Agent faz isso: ele funciona como um gateway com o qual você conversa pelo Telegram e, uma vez configurado corretamente, reinicia sozinho após uma falha ou queda de energia.

Montei a mesma configuração em duas máquinas, um VPS barato na nuvem e o Mac Mini na minha mesa, para poder documentar todo o caminho sem pular nada. É uma rota única. A máquina só muda o que você digita em dois lugares: o comando de instalação e a parte que mantém o gateway ativo. Todo o resto é idêntico.

Tudo abaixo foi executado no meu próprio hardware. O caminho Linux é um Hetzner CX23 (x86, 2 vCPU, 4GB RAM, 40GB de disco) no Ubuntu 24.04.4 LTS - o caminho Mac é um Mac Mini M4 no macOS 15. Ambos rodaram o Hermes Agent v0.16.0.

o que você terá no final

  • Hermes Agent instalado, rodando como um usuário normal, não como root
  • Um bot do Telegram que você pode enviar mensagens pelo celular, bloqueado apenas para sua conta
  • O gateway rodando como um serviço gerenciado, para que volte após uma falha ou reinicialização
  • No VPS, uma máquina protegida: SSH apenas com chave, sem login root, um firewall

escolha sua máquina

Um VPS é a opção mais barata. Qualquer máquina x86 com 4GB de RAM e cerca de 20GB de espaço livre em disco roda isso; o meu é um Hetzner CX23 a $7,79/mês (preços Hetzner EUA, 18/06/2026). Alugue-o e ele estará sempre ligado por definição.

Um Mac que você já possui é a outra opção. Qualquer Mac com chip Apple Silicon que fique ligado funciona, e o custo operacional é zero além do modelo. A troca é que a camada de durabilidade é mais complicada no macOS, o que abordo no final.

Você precisa de uma chave SSH na sua própria máquina (ssh-keygen -t ed25519 se não tiver uma), uma conta no Telegram e um modelo para o agente. Este guia aponta para o Nous Portal, que usa OAuth, então não há chave de API para manter em um arquivo. O Hermes precisa de um modelo com pelo menos 64k de contexto.

passo 1: prepare a máquina

em um VPS

Crie o servidor no seu provedor: Ubuntu 24.04, uma instância x86 (não Arm, veja a nota de custo) e cole sua chave pública SSH no momento da criação.

Uma máquina pública nova precisa de alguns minutos de proteção antes de colocar um agente nela. O secure-box.sh na receita faz isso em uma passada: um apt upgrade, um arquivo de swap de 2GB, um usuário sudo não root com sua chave, SSH apenas com chave com login root desativado e um firewall que permite apenas SSH. Edite as duas variáveis no topo, copie-o, execute-o como root:

bash
1scp secure-box.sh root@<seu-ip-vps>:
2ssh root@<seu-ip-vps> 'bash secure-box.sh'

Esta imagem Ubuntu veio com PasswordAuthentication definido como yes, mesmo eu tendo criado a máquina com uma chave SSH. O script desativa isso. Antes de fechar a sessão root, abra um segundo terminal e confirme que o novo usuário faz login, para que um erro não o bloqueie:

bash
1ssh hermes@<seu-ip-vps>

A partir daqui, você é hermes, não root.

em um Mac

Nenhuma etapa de proteção. É sua máquina em sua própria rede, não uma máquina pública. Instale o Homebrew se não tiver (o instalador o usa na próxima etapa) e você estará pronto.

passo 2: instale o Hermes

A instalação é um comando, o mesmo em ambas as máquinas, executado como seu usuário normal:

bash
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
2source ~/.bashrc
3hermes --version

O instalador detecta seu SO e baixa sua própria cadeia de ferramentas (uv, Python 3.11, Node.js 22, ripgrep, ffmpeg, um Playwright Chromium para ferramentas de navegador) para ~/.hermes, então nunca toca no Python do sistema. Na minha máquina Hetzner, ele instalou o Hermes Agent v0.16.0 no Python 3.11.15.

Este é o passo pesado. No VPS, o disco foi de 1,2 GB usados para 7,8 GB, cerca de 6,6 GB, a maior parte do mecanismo do navegador e Node. Planeje 20 GB livres e pare de se preocupar. Execute-o em um comando SSH simples sem terminal; o instalador exibe "Assistente de configuração ignorado (nenhum terminal disponível)", o que é normal, a configuração é o próximo passo.

Em um Mac, o mesmo comando é executado, com uma peculiaridade: instale o Homebrew primeiro. Com o Homebrew presente, o instalador baixa o git e suas dependências sem solicitação. Sem ele, ele recorre às Ferramentas de Linha de Comando da Apple, que podem abrir uma caixa de diálogo do macOS que você precisa clicar, e uma caixa de diálogo não é boa via SSH (isso está no ramo macOS do instalador). Depois disso, é o mesmo fluxo acima.

passo 3: aponte para um modelo

bash
1hermes setup --portal

Isso é OAuth contra o Nous Portal: ele imprime uma URL e um código, você aprova no navegador e agora a máquina conversa com um modelo sem chave de API em um arquivo. O Nous Portal tem um nível gratuito, e executei tudo em um modelo gratuito. Se preferir trazer seu próprio provedor, execute hermes model e escolha um; a chave então fica em ~/.hermes/.env.

passo 4: converse com ele

em um VPS

No momento em que seu SSH cai, uma sessão em primeiro plano morre com ele. O tmux mantém a sessão ativa: inicie dentro do tmux, desanexe e ele continua rodando.

bash
1sudo apt-get install -y tmux
2tmux new -s hermes # então, dentro: hermes

Desanexe com Ctrl-b e depois d, e reconecte mais tarde de qualquer lugar:

bash
1ssh hermes@<seu-ip-vps>
2tmux attach -t hermes

A primeira inicialização do agente interativo leva um momento. O meu levou cerca de 30 segundos carregando o modelo e as habilidades antes que o prompt aparecesse. Uma vez ativo, os comandos de barra funcionam.

/goal é o que vale a pena mostrar: ele define uma meta permanente na qual o agente trabalha ao longo das interações, com um modelo juiz verificando após cada interação se ela foi concluída.

bash
1/goal verifique a RAM total e o disco livre desta máquina usando ferramentas de shell, depois relate ambos em uma linha e marque a meta como concluída

O meu executou o comando shell sozinho e retornou com "RAM total do VPS: 3,7 Gi, espaço livre em disco: 28 G" em cerca de 15 segundos. Esse é o agente usando suas próprias ferramentas.

Mantenha duas ideias separadas: o tmux mantém uma sessão interativa aberta em uma conexão SSH perdida, mas não após uma reinicialização. Para um gateway não supervisionado que sobrevive a uma reinicialização, você quer um serviço gerenciado, que é o passo 6.

em um Mac

Você está sentado na máquina, então pode executar hermes em um terminal. O tmux ainda ajuda se você fizer SSH do seu laptop, mas é opcional aqui.

passo 5: o gateway do Telegram

Esta parte é idêntica em ambas as máquinas. Crie um bot: envie uma mensagem para @BotFather no Telegram, envie /newbot e copie o token. Obtenha seu ID de usuário numérico de @userinfobot. Em seguida, configure o gateway:

bash
1hermes gateway setup

Escolha Telegram, cole o token e defina os usuários permitidos para seu ID numérico para que apenas você possa conversar com ele. O token vai para ~/.hermes/.env, o resto para ~/.hermes/gateway.json.

A configuração apenas escreve a configuração. Ela não inicia nada, então o bot permanece em silêncio, e isso pega as pessoas de surpresa: nada está consultando o Telegram ainda. Inicie-o em primeiro plano uma vez para verificar se ele conecta:

bash
1hermes gateway run

Você quer ver, no log:

bash
1gateway.run: Conectando ao telegram...
2[Telegram] Conectado ao Telegram (modo de polling)
3gateway.run: ✓ telegram conectado

Modo de polling significa que o gateway entra em contato com o Telegram; nada se conecta à sua máquina, e é por isso que o firewall não precisa de nenhuma porta de entrada além do SSH. Envie uma mensagem para seu bot; ele deve responder. Em seguida, pare o gateway em primeiro plano com Ctrl-C, porque você não pode ter duas coisas consultando o mesmo token ao mesmo tempo, e o próximo passo o executa como um serviço.

passo 6: faça-o sobreviver a uma reinicialização

Este é o único lugar onde as duas máquinas divergem.

em um VPS: systemd

hermes gateway install registra o gateway como um serviço systemd para que ele reinicie em caso de falha e volte após uma reinicialização. Nesta versão, o instalador faz duas perguntas [Y/n] e não há sinalizador para ignorá-las. Execute-o em um comando SSH não interativo, a coisa natural ao criar um script para uma máquina, e ele não recebe resposta, aborta e não instala nada. Alimente as respostas no stdin:

bash
1printf 'n\nY\n' | hermes gateway install

As duas perguntas são "iniciar o gateway agora?" e "iniciar automaticamente no login/inicialização?". O n e depois Y diz: não inicie agora, mas ative na inicialização. O instalador também ativa a persistência da sessão do usuário, que é o que permite que um serviço de usuário seja executado antes que você tenha feito login. Confirme, porque é isso que torna "sobrevive à reinicialização" verdadeiro e não apenas "sobrevive ao logout":

bash
1loginctl show-user $USER -p Linger # quer: Linger=yes

Inicie-o e verifique:

bash
1hermes gateway start
2systemctl --user status hermes-gateway

Você quer "active (running)" e NRestarts=0. Na minha máquina, o gateway usou cerca de 280 MB e toda a máquina ficou em cerca de 556 MB, confortável em 4 GB.

Agora o teste real. Reinicie e não toque nele:

bash
1sudo reboot

O meu voltou em cerca de 15 segundos, o gateway iniciou sozinho, reconectou ao Telegram e respondeu à próxima mensagem com o histórico da conversa anterior à reinicialização intacto. Esse é o objetivo principal.

em um Mac: launchd e um watchdog

O macOS usa launchd, não systemd, e há uma armadilha. No macOS 15 com Hermes v0.16.0, hermes gateway start pode falhar ao registrar o serviço launchd e recorrer, sem avisar, a um processo em segundo plano não supervisionado. Você vê isso:

bash
1Falha no bootstrap: 5: Erro de entrada/saída
2⚠ o launchd não pode gerenciar o gateway nesta versão do macOS (launchctl exit 5)
3✓ Gateway iniciado como um processo em segundo plano
4 Ele NÃO iniciará automaticamente no login nem reiniciará automaticamente em caso de falha.

Se você tinha um trabalho launchd funcionando antes, o comando o descarregou, e o fallback funciona bem até a primeira falha ou reinicialização, então seu agente desaparece sem nada para avisá-lo. O launchctl bruto funciona onde a CLI falha, inclusive via SSH:

bash
1launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist
2launchctl print gui/$(id -u)/ai.hermes.gateway | grep state # quer: state = running

O plist inicia o gateway no login, mas não o reinicia em caso de falha. Um watchdog cron fecha ambas as lacunas, e o cron é executado na inicialização sem necessidade de login. A receita fornece gateway-watchdog.sh; ele verifica a cada 5 minutos se o processo do gateway está ativo e o reinicializa se não estiver. Instale-o em um agendamento:

bash
1(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -

Eu vi esta sequência recuperar um gateway rebaixado no meu próprio Mac Mini. Reinicie-o e confirme que o gateway está de volta em cinco minutos sem fazer login.

verifique sua configuração

  1. O serviço está ativo: systemctl --user status hermes-gateway no Linux (active (running)), ou launchctl print gui/$(id -u)/ai.hermes.gateway | grep state no macOS (state = running)
  2. Envie uma mensagem para seu bot: ele responde a você e ignora qualquer pessoa que não esteja em seus usuários permitidos
  3. No Linux, loginctl show-user [$USER](https://x.com/search?q=%24USER&src=cashtag_click) -p Linger lê Linger=yes
  4. Reinicie a máquina, espere, envie uma mensagem para o bot novamente sem fazer login: ele responde

custo

No VPS, a máquina é o único gasto. O meu é um Hetzner CX23 a $0,012/hora, limitado a $7,79/mês (preços Hetzner EUA, 18/06/2026; o CX22 da UE tem a mesma configuração e é mais barato).

No Mac, é uma máquina que você já possui, zero serviços extras. O modelo é gratuito no nível gratuito do Nous Portal em ambos os casos.

Aqui, a memória não é o limite: o gateway usou cerca de 280 MB, toda a máquina cerca de 556 MB, então 1 GB de RAM é suficiente. O disco é o verdadeiro limite: a instalação tem cerca de 6,6 GB, então uma imagem de 1 GB ou 10 GB é apertada, dê a ela 20 GB. E use x86, é a escolha segura.

execute você mesmo, e o que vem a seguir

Ambas as máquinas têm uma receita completa com os scripts exatos, executáveis como estão:

Você agora tem um agente sempre ativo no Telegram que sobrevive a uma reinicialização.

O próximo Flightplan se baseia nisso: trabalhos agendados que enviam mensagens apenas quando algo é importante, um espaço de trabalho sincronizado com git que o agente lê e escreve, e o fluxo de rascunho e aprovação que mantém um humano em cada ação pública.

Obrigado por ler

Guardar com um clique

Faça leitura aprofundada de artigos virais com IA no YouMind

Guarde a fonte, faça perguntas específicas, resuma o argumento e transforme um artigo viral em notas reutilizáveis num único espaço de trabalho com IA.

Explorar o YouMind
Para criadores

Transforme o seu Markdown num artigo 𝕏 impecável

Quando publica os seus próprios textos longos, formatar imagens, tabelas e blocos de código para o 𝕏 é uma dor de cabeça. O YouMind transforma um rascunho completo em Markdown num artigo 𝕏 impecável e pronto a publicar.

Experimente Markdown para 𝕏

Mais padrões para decifrar

Artigos virais recentes

Explorar mais artigos virais