Hermes Agent é seguro? O que avaliar antes de dar acesso às suas contas

O Hermes Agent é seguro? A resposta honesta é: depende do que você configurar. A arquitetura é local-first, o projeto é open source sob licença MIT da Nous Research e a documentação declara não coletar telemetria, dados de uso ou analytics. Conversas, memória e skills ficam em ~/.hermes/ e os segredos em ~/.hermes/.env, na sua máquina. O que sai são as chamadas para o provedor de LLM configurado, e existe caminho documentado com Ollama local para nem isso sair. O resto (aprovações, lista de usuários, dashboard em loopback) é decisão sua, item por item.
Fala aí, beleza? Um agente autônomo com acesso ao seu WhatsApp, à sua conta do GitHub e às suas chaves de API é o tipo de coisa que dá um frio na barriga antes mesmo do primeiro comando
E aqui vai o pulo do gato: a pergunta "o Hermes Agent é seguro?" não tem resposta binária
O que existe é uma arquitetura local-first com um monte de chavinha que VOCÊ decide se liga ou desliga, e o nível de segurança do seu setup é exatamente o que você configurou nelas
Então bora separar três coisas neste post: o que fica parado na sua máquina, o que atravessa a fronteira e sai, e o que só depende da sua mão…
O que fica na sua máquina e o que sai dela
Antes de discutir proteção, é bom saber onde os dados moram
O Hermes Agent é um agente open source da Nous Research publicado sob licença MIT, o que já ajuda: dá pra ler o código em vez de acreditar em marketing
O desenho é local-first, e a documentação declara que o projeto não coleta telemetria, dados de uso ou analytics
| O quê | Onde fica |
|---|---|
| Conversas, memória e skills | ~/.hermes/, na sua própria máquina |
| Chaves de API, tokens e segredos | ~/.hermes/.env, o local padrão dos segredos gerenciados por você |
| Chamadas do modelo | saem da máquina, mas só para o provedor de LLM que você configurar (ex: OpenRouter) ou para a instância local |
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Ou seja: o que atravessa a fronteira é a chamada de API, não um pacotinho de telemetria indo pro fabricante
E se você quiser fechar até essa porta, existe um guia oficial de setup local com Ollama: sem chave de API, sem assinatura, sem dados saindo da máquina
Esse é o modo mais paranoico possível, e é o que eu sugiro pra quem vai testar com dado real na primeira semana
As proteções que já vêm no Hermes Agent (e onde elas param)
Tem defesa embutida, sim
Mas cada uma tem um limite, e ignorar esse limite é onde a galera se ferra
Modo de aprovação de comandos:
O approvals.mode, no arquivo ~/.hermes/config.yaml, aceita três valores: manual, smart e off
O smart usa um LLM auxiliar pra aprovar comandos de baixo risco, negar os perigosos e escalar os incertos pra um prompt manual
O off desliga toda a checagem, e aí você está no modo confia
Detalhe que eu achei muito massa: o prompt de aprovação tem tempo limite e falha fechado
Se você não responder dentro do tempo configurado, o comando é negado por padrão (fail-closed), em vez de passar por omissão
E o modo YOLO?
Existe hermes --yolo (ou hermes chat --yolo), que desativa as checagens de comando perigoso daquela sessão
Porém uma blocklist rígida continua valendo, e essa não tem flag de override: apagamento irreversível de sistema de arquivos, fork bomb, escrita direta em dispositivo de bloco
Os rm -rf da vida seguem barrados, mas o resto do juízo passa a ser seu
Credenciais e servidores MCP:
As variáveis de ambiente com chaves de API, tokens e segredos são retiradas antes de passar para servidores MCP
E as mensagens de erro de ferramentas MCP são sanitizadas antes de voltar pro modelo, que é um vetor de vazamento que muita gente esquece que existe
Validação de URL:
Busca web, extração de página, visão e navegador validam o destino antes de buscar
Endereços de rede privada ficam bloqueados, e aqui entram as faixas RFC 1918: 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16
Mas a rejeição padrão do gateway é mais ampla que só essas faixas: loopback, link-local, CGNAT e endpoints de metadados de nuvem também entram na lista de destinos barrados, e eu volto nisso lá embaixo, na parte de acesso a rede privada
Cadeias de redirect são revalidadas a cada salto (o truque clássico é justamente redirecionar pra rede interna depois da checagem) e falha de DNS é tratada como bloqueio
Varredura de prompt injection:
O Hermes escaneia arquivos de contexto do projeto atrás de padrões de prompt injection antes deles entrarem no contexto do modelo, e o Skills Guard escaneia skills instaláveis
Agora vem a parte honesta, e ponto pra documentação por assumir isso: ela mesma classifica essas varreduras como heurísticas, não como fronteiras
Uma injeção formulada de um jeito novo pode passar
Traduzindo pro dia a dia: skill de terceiro e arquivo de contexto que você não escreveu continuam sendo código que você está executando
Os pontos de exposição que dependem só de você
Aqui é onde a configuração é a ÚNICA barreira, beleza?
A pasta de sessão do WhatsApp é uma credencial:
O diretório ~/.hermes/platforms/whatsapp/session contém as credenciais completas da sessão
A documentação orienta chmod 700 nessa pasta e usar um número dedicado pro bot
Tome cuidado! Copiar essa pasta pra outro lugar é o mesmo que copiar o seu login
Quem pode falar com o agente:
No WhatsApp, sem WHATSAPP_ALLOWED_USERS, sem * e sem WHATSAPP_ALLOW_ALL_USERS=true, o gateway nega todas as mensagens recebidas por segurança
O padrão é fechar a porta, e isso é ótimo
O problema aparece quando alguém, cansado de não receber nada, resolve resolver na marra com o curinga
No Telegram, o assistente de configuração pede o token do bot e os IDs de usuário permitidos, e escreve a configuração
O painel web:
O dashboard sobe em http://127.0.0.1:9119, ou seja, em loopback
A flag HERMES_DASHBOARD_INSECURE=1 virou um no-op depreciado e não desativa mais o gate de autenticação, então bind público sempre exige provedor de auth
A alternativa recomendada é manter HERMES_DASHBOARD_HOST=127.0.0.1 e acessar por túnel SSH ou Tailscale
Acesso a rede privada:
Essa é a fronteira de confiança mais perigosa do conjunto, e vem desligada por padrão
Ao habilitar, as ferramentas web, o navegador, a visão e os downloads de mídia do gateway deixam de rejeitar destinos RFC 1918, loopback, link-local, CGNAT e endpoints de metadados de nuvem
Ou seja: cai a lista inteira de destinos internos que o Hermes barra por padrão, não só as três faixas privadas que eu citei na validação de URL
A própria documentação recomenda deixar isso desligado em gateways expostos
Anonimizar identificadores:
Com privacy.redact_pii habilitado, o gateway transforma números de telefone e IDs de usuário em user_<sha256> antes de mandar pro provedor de LLM
A redação vale pras plataformas de mensagem conectadas ao gateway, WhatsApp e Telegram incluídos, onde esses IDs são só metadado de roteamento
Se você atende cliente por mensagem, isso muda bastante a conversa
O que eu vi na prática rodando o Hermes Agent
No vídeo abaixo eu mostro o meu agente instalando uma skill que dá acesso à internet pra ele, e algumas coisas dessa rodada conversam direto com o assunto deste post
A instalação foi por prompt: passei o link do repositório como guia e pedi pro próprio agente instalar
Só que precisei citar no prompt qual agente eu usava e em qual pasta de skills instalar, senão não dava certo
Aí acompanhei o processo e vi o agente baixando pacotes por conta própria, o que demorou, porque não era só um arquivo de texto sendo copiado
Para aí um segundo e pensa nisso: um agente instalando dependência sozinho na sua máquina é exatamente o cenário que o modo de aprovação existe pra vigiar
No fim da instalação ele avisou que parte dos serviços tinha sido instalada e parte não, e perguntou se eu queria instalar todos ou só alguns
Escolhi Twitter e Reddit e fazer login autenticado no GitHub, e ele concluiu a autenticação do que eu pedi
Depois rodei o comando de diagnóstico da skill pra conferir o estado: GitHub apareceu funcionando, Twitter e Reddit apareceram pedindo login pra resolver a questão dos cookies
Não travou nada, dava pra usar assim mesmo e resolver depois
No teste eu pedi os 5 pontos principais de um vídeo do YouTube: a skill fez a transcrição e devolveu o resumo em texto, sem serviço pago de transcrição no meio
Também pedi uma busca no GitHub por repositórios populares de um assunto e voltou uma lista de projetos relevantes
E pedi a leitura do README e das issues abertas de um repositório, pra entender o que a ferramenta faz e quais problemas os usuários relatam
Por baixo o processo executa scripts em Python, e cada consulta leva um tempinho pra retornar
A resposta volta em texto limpo, em vez de HTML pra converter depois, o que é muito massa quando o agente vai encadear aquilo em outra tarefa
A skill escolhe o canal de busca conforme o pedido em linguagem natural e, se um caminho é bloqueado, tenta outro pra extrair a informação
Ela foi pensada pra agente autônomo, mas como é composta de arquivos de instrução, acredito que rodaria em outros ambientes de agente também
E o ponto de cautela que eu repito sempre: eu mantenho o meu agente rodando em VPS, num ambiente isolado
É o mesmo raciocínio de quem separa ambientes ao rodar várias instâncias de n8n isoladas: se algo der ruim, o estrago fica dentro de uma caixa, não na sua máquina de trabalho com tudo logado
(a hospedagem que eu cito no vídeo é parceira do canal, tá registrado ali)
Checklist de decisão antes de conectar qualquer conta
Não é passo a passo de instalação, é decisão
Rode esta lista ANTES de plugar a primeira conta de verdade:
- Decida o provedor de modelo ou vá de Ollama local. Se a sua dúvida é "o que sai da minha máquina", o caminho documentado com Ollama resolve na raiz: sem chave de API e sem dados saindo
- Defina o
approvals.modeconscientemente. Abra o~/.hermes/config.yamle veja o que está lá antes de sair usando, em vez de descobrir depois do comando - Não use o modo YOLO em máquina com dado sensível. A blocklist rígida continua valendo, mas ela cobre catástrofe de sistema de arquivos, não o seu segredo vazando num log
- Trave a pasta de sessão do WhatsApp.
chmod 700em~/.hermes/platforms/whatsapp/sessione número dedicado pro bot, como a documentação orienta - Configure a lista de quem pode falar com o agente.
WHATSAPP_ALLOWED_USERSno WhatsApp e os IDs autorizados no Telegram. O erro comum aqui é liberar geral com*ouWHATSAPP_ALLOW_ALL_USERS=truesó pra "destravar o teste" e nunca mais voltar atrás - Mantenha o dashboard em loopback.
HERMES_DASHBOARD_HOST=127.0.0.1e acesso por túnel SSH ou Tailscale quando precisar de fora - Deixe o acesso a rede privada desligado. Ligar derruba a rejeição de RFC 1918, loopback, link-local, CGNAT e endpoints de metadados de nuvem, e em gateway exposto isso é pedir pra alguém passear na sua rede interna
- Avalie o
privacy.redact_pii. Se você lida com telefone de cliente, viraruser_<sha256>antes de ir pro provedor muda o risco de lugar - Lembre que o gateway é UM processo só. Ele conecta todas as plataformas que você configurou, administra as sessões e entrega as mensagens. Quem tem acesso a esse processo tem acesso ao conjunto, não a um canal isolado
- Se for pedir ajuda, o relatório de diagnóstico já vem redigido. Por padrão os uploads são redigidos pra não incluir segredos, e o pacote leva info de sistema, versão do Python, versão do Hermes, logs recentes (limite de 512 KB por arquivo) e o status redigido das chaves de API
Conclusão
O Hermes Agent é seguro? O veredito honesto é que a arquitetura joga a favor e a configuração decide o resto
A favor você tem: projeto open source sob licença MIT, dados de conversa, memória e skills parados em ~/.hermes/ na sua máquina, declaração de zero telemetria, aprovação que falha fechado, credenciais retiradas antes de ir pra servidor MCP e validação de URL barrando rede privada
Contra, ou melhor, sob sua responsabilidade: a pasta de sessão do WhatsApp é uma credencial completa, a lista de usuários permitidos é sua, o bind do dashboard é seu, e a varredura de prompt injection é heurística por admissão da própria documentação
Não existe modo mágico que te isente de decidir, e desconfie de quem te vender isso
Meu próximo passo sugerido, se você está começando agora: sobe com Ollama local e approvals em manual, brinca com tarefa sem risco por alguns dias, e só depois pensa em conectar uma conta de mensagem de verdade
Depois me conta como foi no seu setup, bora trocar uma ideia 🙂
até o próximo post!
Perguntas frequentes
O Hermes Agent envia dados de uso para a Nous Research?
Não, a documentação declara que o projeto não coleta telemetria, dados de uso ou analytics. O que sai da máquina é só a chamada de API para o provedor de LLM que você configurar (como o OpenRouter) ou para a instância local, nada de pacotinho de telemetria voltando pro fabricante
Dá pra usar o Hermes Agent sem enviar nada pra fora, tipo 100% offline?
Dá sim. Existe um guia oficial de setup local com Ollama, sem chave de API, sem assinatura e sem dados saindo da máquina. É o modo mais fechado que o Hermes Agent permite rodar
O modo YOLO do Hermes Agent desativa todas as proteções de segurança?
Não desativa tudo. O hermes –yolo desliga as checagens de comando perigoso daquela sessão, mas uma blocklist rígida sem flag de override continua valendo, cobrindo apagamento irreversível de sistema de arquivos, fork bomb e escrita direta em dispositivo de bloco
O que acontece se eu não responder o pedido de aprovação de comando do Hermes Agent?
O comando é negado. O prompt de aprovação tem tempo limite e falha fechado (fail-closed), então passar do tempo sem responder bloqueia a execução em vez de liberar por omissão
Preciso configurar quem pode falar com o agente no WhatsApp?
Precisa, senão nada funciona: sem WHATSAPP_ALLOWED_USERS, sem * e sem WHATSAPP_ALLOW_ALL_USERS=true, o gateway nega todas as mensagens recebidas por segurança. No Telegram o assistente de configuração pede o token do bot e os IDs de usuário permitidos
Posso deixar o painel web do Hermes Agent acessível de fora da minha máquina?
Dá, mas exige autenticação: qualquer bind público sempre pede um provedor de auth, já que a flag antiga HERMES_DASHBOARD_INSECURE=1 virou um no-op depreciado. A recomendação é manter HERMES_DASHBOARD_HOST=127.0.0.1 e acessar por túnel SSH ou Tailscale
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
