Hermes Agent Lab

Blog do Hermes Agent — Guias Práticos e Insights

Últimos artigos e insights.

O scan disse seguro — aí olhar para a skill a executou

A guarda de skills tinha três pontos cegos: deletes destrutivos que usavam um til puro, nenhuma regra para a sintaxe de auto-execução do inline-shell, e instalações bloqueadas pelo scan reportando sucesso. O PR #128443 corrige os três e sobe o scanner para a v7.

Ler mais

Sair de uma sessão apagou código que você nunca commitou

A limpeza de saída do worktree só checa commits não enviados e nunca lê a working tree, então git worktree remove --force leva junto seus arquivos não commitados e não rastreados — enquanto a documentação promete que trees sujas são mantidas.

Ler mais

Uma atualização preencheu um buraco de 434 GB no disco

Uma checagem de versão no desktop percorreu um histórico filtrado por caminho num clone tree:0, deixou 2.659 promisor packs para trás e encheu um SSD de 1 TB — enquanto a build anterior à correção ficava em loop.

Ler mais

A chave de API de outra pessoa rodou dentro do seu cron job

Um commit de limpeza de UX apagou o isolamento de secrets por profile do cron, deixando um routed fire gravar o .env de outro profile no ambiente compartilhado do processo. O PR #126982 recoloca isso no lugar.

Ler mais

Você colou um hermes dump pedindo ajuda — e ele levou junto a sua própria API key

O bundle de debug imprimia a api_key de cada provider de fallback e qualquer credencial escondida numa base_url. Os patches mesclados em 2026-09-29 forçam a redação do próprio dump e da fronteira de upload; veja o que é mascarado, o que --no-redact realmente significa e como compartilhar logs com segurança.

Ler mais

O /rollback reportou sucesso — e engoliu silenciosamente o trabalho não commitado no seu repositório aninhado

Um checkpoint armazena um repositório git aninhado como um gitlink, uma referência de commit, nunca como arquivos. Então o /rollback sobrescreveu o trabalho do sub-repo enquanto imprimia sucesso. Um patch mesclado em 2026-09-29 faz o rollback recusar antes de mudar qualquer coisa e rotula checkpoints que não capturaram um repositório aninhado.

Ler mais

Config rot: o hermes config check agora avisa sobre seleções renomeadas, desinstaladas e desativadas

Um toolset renomeado, um plugin desinstalado, uma plataforma desativada enquanto o token dela ainda está configurado — seleções salvas que não resolvem mais costumavam simplesmente desaparecer. Agora o hermes config check as reporta, julgadas pelo mesmo resolver que o hermes config migrate usa.

Ler mais

O modelo mandou um array como string — então por que só algumas ferramentas reclamam?

Ferramentas do registry ganham um reparo automático de argumentos para o mesmo erro que faz clarify, todo_list, memory e session_search falharem: essas ferramentas inline passam longe do único lugar que corrige tipos de argumento. Um patch mesclado em 2026-09-29 dá a elas o mesmo reparo.

Ler mais

Mixture of Agents, explicado: pague duas vezes, receba uma resposta melhor

O MoA reúne as opiniões de vários modelos em uma resposta só e fica cerca de seis pontos acima do seu componente mais forte no bench oficial. O que ele roda de fato, quem é cobrado, como as três cadências de fanout diferem e por que a linha MoA no seu seletor de modelos agora significa que você configurou algo.

Ler mais

Seu plugin parou de carregar? Os caminhos de import antigos morreram em 2026-09-14

A decomposição de módulos de setembro moveu os internos do Hermes para novos arquivos, e a camada de compatibilidade que mantinha os caminhos de import antigos resolvendo não existe mais. Como diagnosticar um ImportError, como corrigir e quais superfícies nunca fizeram parte do contrato de plugins.

Ler mais

Por que reiniciar seu gateway paga duas vezes pelo mesmo cache

Um gateway multiplexado pagando uma escrita de cache completa por profile, uma primeira mensagem depois de cada restart que se comporta como cold start e uma sobra de /steer que derruba o channel prompt — três correções mescladas em 2026-09-28, todas atrás da mesma coisa: um prefixo que mudou sem motivo.

Ler mais

hermes update travou, mentiu sobre estar atualizado ou recusou sua CA — quatro correções mescladas

Clones shallow que dão timeout, um checkout detached que mexe no seu código enquanto imprime “Already up to date!”, CAs raiz corporativas que nunca chegam ao git e falhas registradas como sucessos. Quatro patches de update mesclados em 2026-09-28, explicados.

Ler mais

A sessão que você apagou voltou: dois bugs e uma nova proteção

Apagar uma sessão que ainda estava rodando costumava não fazer nada da pior forma possível: o objeto do agente continuava vivo, cada turno seguinte batia em uma falha de chave estrangeira e era descartado em silêncio, e no desktop a linha podia ser ressuscitada pela próxima escrita. O PR #125157, mesclado em 2026-09-27, passa a recusar a exclusão — em par com a correção de rebuild do #124117.

Ler mais

"Chat out of date": quando o desktop recusava cada envio

Num chat longo e pesado em chamadas de ferramenta, o app desktop podia recusar cada envio com "Chat out of date" — sobrevivendo a recarregar e a reiniciar. Nada estava de fato desatualizado: um componente libera histórico por peso, o outro julgava a atualidade pela contagem de mensagens. O PR #125523 compara a cauda do transcript em vez dos totais.

Ler mais

190 chamadas desperdiçadas e nenhuma guarda disse nada

Para esperar por 10 subagents em background, um modelo manteve o turno aberto com chamadas execute_code sem efeito: 190 chamadas do modelo principal, 31 milhões de tokens de entrada, 49 minutos — e zero avisos do loop guard. O hash do veredito carregava dois campos de contabilidade que mudam a cada chamada. O PR #124724 remove exatamente esses dois.

Ler mais

Seu endereço está na allowlist — isso faz do remetente você?

Dois patches de segurança mesclados em 2026-09-27 fecharam a mesma classe de brecha em dois gateways: e-mail e SimpleX tratavam como identidade um campo que o remetente pode escrever livremente. Um deles deixava qualquer contato renomear a si mesmo para burlar a allowlist; o outro deixava um cabeçalho From: carregar um segundo endereço e se passar por você.

Ler mais