Hermes Agent Lab

Blog do Hermes Agent — Guias Práticos e Insights

Últimos artigos e insights.

Sua exportação de perfil estava enviando suas credenciais de nuvem

Um tar.gz de hermes profile export deveria deixar um colega reproduzir a sua configuração — mas ele também carregava os armazenamentos de credenciais .docker, .azure, .config/gh e .config/gcloud. Dois PRs fecharam a brecha.

Ler mais

Home Assistant saiu do núcleo: o que acontece com a sua configuração

A plataforma de gateway do Home Assistant e suas ferramentas saíram do núcleo do Hermes para um plugin oficial do catálogo — com uma migração automática que o instala por perfil, deixando chaves de configuração, variáveis de ambiente e nomes de ferramenta intactos.

Ler mais

Hermes parou de acreditar no dmarc=pass do próprio remetente

Um header Authentication-Results é texto que o remetente pode escrever. O Hermes agora exige um pin de authserv-id e descarta mensagens até que um seja definido — uma mudança de comportamento deliberada com uma correção de uma linha.

Ler mais

A memória tem um orçamento: por que ela acaba parando de lembrar

A memória de longo prazo do Hermes tem um limite de caracteres e, quando ela enche, as escritas são ignoradas silenciosamente. O plugin hermes-dreaming adiciona uma passagem noturna determinística que registra o que importa e aposenta o que não importa.

Ler mais

Plugins de terceiros saem do processo principal: por dentro de plugins.isolation: host

Um plugin que você instala costumava dividir um único processo Python com cada sessão, cada secret e cada chave em memória que você possui. O novo plugins.isolation: host dá a cada profile seu próprio processo host de plugins — sem mudanças no código do plugin e com uma lista curta e documentada do que não pode sair de lá.

Ler mais

Seu agente escreveu na sua crontab de verdade às 2 da manhã: isolando HOME e cron

Um sandbox que isola o HERMES_HOME ainda deixa o agente gravar no diretório home real, na crontab real e no barramento de usuário real do systemd. Três tarefas cron fantasma deixadas por uma única execução de eval mostram quais saídas qualquer história de isolamento precisa cobrir.

Ler mais

Rodar o Hermes dentro do Codex: uma extensão MCP da comunidade

Editar código no Codex enquanto o Hermes roda suas automações costuma significar duas janelas e um fio de raciocínio perdido. Esta extensão MCP da comunidade embute os chats, os profiles, a troca de modelo e o agendador do Hermes dentro do Codex, mantendo as credenciais no processo bridge local.

Ler mais

Por que sua exportação /save estava perdendo turnos — e o limite por trás disso

A mesma sessão podia ser exportada por completo pela CLI e sair incompleta no aplicativo de desktop, perdendo turnos que a compactação no local havia arquivado; além disso, uma sessão muito grande podia esgotar a memória. A correção unifica as três superfícies em um único caminho de código e aplica o limite de exportação próprio de cada perfil.

Ler mais

Por que embeds de terceiros no app desktop precisam ser isolados em sandbox

Como o Hermes isola embeds do X, Instagram e YouTube no app desktop, um problema de segurança já público e sua correção, e o status de versão hoje.

Ler mais

Três ferramentas em um único tool_call já não é erro: o Hermes divide o batch

Quando um modelo empacotou três ferramentas MCP em um único tool_call, a regra de uma ferramenta local por vez devolveu tudo e queimou um round trip inteiro. Agora o agente divide o batch em chamadas individuais antes de o turno ser salvo.

Ler mais

Revertido após 11 horas: por que os prompts de aprovação do Hermes mantêm um prazo

A mudança que fazia os prompts de aprovação esperarem por você para sempre foi revertida na mesma noite em que foi mesclada — não por indecisão, mas porque travou uma sessão que não tem ninguém para responder. Veja a linha do tempo e o que de fato vale agora.

Ler mais

Um commit, três falhas silenciosas: o backup apagou o arquivo errado, o JSON foi gravado errado, as aspas foram achatadas

Um keep negativo apaga seu backup mais recente, uma gravação deixa passar NaN e o replace_all achata aspas tipográficas para ASCII — três bugs que retornavam sucesso enquanto faziam a coisa errada. O PR #130619 corrige os três.

Ler mais

O prompt de aprovação que sumia no meio do café agora espera por você

Você estourava o approvals.timeout e o prompt expirava, negando o comando em silêncio — você só estava numa reunião. O PR #130167 mantém os prompts do CLI, do TUI e do Desktop abertos até você responder ou interromper o turno, enquanto as plataformas de mensagens conservam o prazo de 300 segundos.

Ler mais

Fez login numa conta Nous — então por que a busca rápida gratuita ainda é recusada?

Três portões locais bloquearam a requisição antes de ela sequer ser enviada: direito pago, um tool pool vivo e uma escada de autodetecção que só reconhecia o Firecrawl. O PR #130660 cria uma rota de busca gratuita com escopo por identidade — qualquer conta registrada se qualifica, convidados anônimos continuam no keyless ring, e uma consulta de conta que falha falha fechado.

Ler mais

Sua cota do Codex reabriu há dias, mas o Hermes continua no fallback

Uma sessão de longa duração fixada no fallback nunca chama a sonda que percebe uma reabertura antecipada da cota, então ela fica lá até reiniciar. O PR #130716 liga essa verificação ao caminho de restauração — e limita sua frequência, para que uma sonda que mente não faça a sessão ficar alternando a cada turno.

Ler mais

Antes de abrir um PR no catálogo de plugins, veja o que o gate dele realmente verifica

O gate de admissão do catálogo faz duas coisas, mas é mais exigente do que você imagina: uma entrada renomeada, um subdir que escapa do clone fixado e um sha que nomeia um tag object — todos são rejeitados. O PR #130712 fecha esses desvios — e corrige uma regra rígida demais que teria reprovado um terço de todos os PRs do catálogo.

Ler mais