Hermes Agent: guia de referência para profissionais (2026)
# Um guia de referência para profissionais sobre o Hermes Agent, o agente de IA de código aberto e autoaprimorável da Nous Research: autenticação de provedores, arquivos de configuração, sistema de skills e execução como gateway de mensagens multiplataforma.
TL;DR: Hermes Agent é um agente de IA open source e autoaperfeiçoável da Nous Research. Ele funciona como uma CLI e como um gateway de mensagens multiplataforma, armazena em disco uma identidade durável e memória persistente, reúne skills que melhoram com o uso e funciona com qualquer provedor de LLM compatível com OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Qwen Cloud, Hugging Face, Google, xAI/SuperGrok ou seu próprio endpoint auto-hospedado.1219 A versão atual é a v0.21.5 (tag
v2026.9.24, de 24 de setembro de 2026), um patch cumulativo da linha v0.21; Novidades da v0.21.5 explica o que mudou, e as seções de versões seguintes estão ordenadas da mais recente para a mais antiga.52 Para a maioria dos novos usuários, a parte mais difícil é a autenticação com provedores: na tagv2026.9.24, o Hermes inclui 39 provedores em sua lista estática de seleção e amplia essa lista automaticamente com 38 plugins de provedores integrados, além de endpoints personalizados e três caminhos distintos de autenticação (chave API no.env, OAuth por meio dehermes modelou endpoint personalizado noconfig.yaml).53 O modelo de autenticação é a primeira coisa que você deve aprender — todo o restante depende de qual provedor é resolvido.
O Hermes Agent funciona como um runtime completo de agente, não como uma simples camada de chat. Ele lê seu sistema de arquivos, executa comandos em backends isolados por sandbox, extrai conteúdo da web, cria subagentes, executa tarefas cron agendadas, conversa com Telegram/Discord/Slack/WhatsApp/Signal/Email a partir de um único processo de gateway e cria suas próprias skills com base na experiência.1 A CLI é uma interface de terminal construída sobre um loop de conversa em run_agent.py; o gateway é um processo de longa duração que encaminha mensagens das plataformas de mensagens pelo mesmo loop de conversa.3
A diferença entre o uso casual e avançado do Hermes se resume a cinco sistemas. Domine-os e o Hermes se tornará um multiplicador de produtividade:
- Resolução de provedores: como os fluxos de autenticação são convertidos em chamadas de API
- Hierarquia de configuração:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - Sistema de ferramentas + toolsets: o que o agente pode fazer, com permissões definidas por plataforma
- Sistema de skills: memória procedural que o agente cria e aprimora
- Gateway + cron + profiles: execução do Hermes onde você atua, não apenas onde você está
Principais conclusões
- A autenticação com provedores tem três caminhos, não apenas um. Chave API no
.env, OAuth por meio dehermes model/hermes authou endpoint personalizado noconfig.yaml. Escolha o caminho adequado ao seu provedor, não aquele que parece mais familiar. - Para trocar de provedor, basta um único comando.
hermes modelorienta você interativamente por todos os provedores compatíveis, incluindo logins com OAuth, e/model provider:modelpermite trocar durante a sessão sem perder o histórico.2 - Dois arquivos formam a superfície de configuração editável pelo usuário.
~/.hermes/config.yamlarmazena as configurações e~/.hermes/.envarmazena os segredos.auth.json,SOUL.md,MEMORY.mdeskills/são gerenciados diretamente pelo Hermes — você pode editarSOUL.mdmanualmente, mas os demais são modificados pelo próprio agente.4 - O Hermes é o sucessor do OpenClaw. Se você estiver migrando,
hermes claw migrateimporta automaticamente mais de 30 categorias de estado.5 - Por padrão, as tarefas auxiliares usam seu modelo principal. Visão, classificação de aprovações, compactação e títulos de sessões são executados como chamadas “auxiliares” separadas de LLM e, nessa tag,
autoencaminha todas elas ao seu modelo principal de chat — não há nada para configurar, mas, em modelos de raciocínio caros, essas tarefas secundárias acrescentam um custo considerável. Quando isso for importante, configure cada slotauxiliary.<task>para usar modelos rápidos e baratos.434
Todas as seções abaixo se baseiam na documentação oficial em hermes-agent.nousresearch.com/docs e na árvore de código-fonte em github.com/NousResearch/hermes-agent. Cada afirmação factual tem uma nota de rodapé que aponta para a página oficial específica da qual ela foi extraída.
Escolha seu caminho
| O que você precisa | Acesse |
|---|---|
| Instalar o Hermes | Instalação — instalador de uma linha ou etapas manuais |
| Entrar em um provedor | Autenticação e provedores — a seção que você veio procurar |
| Trocar de modelo durante a sessão | O comando hermes auth e Endpoints personalizados e auto-hospedados para consultar a sintaxe de /model |
| Executar uma LLM local | Endpoints personalizados e auto-hospedados — Ollama, vLLM, SGLang, llama.cpp, LM Studio |
| Conectar plataformas de mensagens | Gateway de mensagens — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat, ntfy, Buzz (28 na tabela comparativa da documentação) |
| Criar ou instalar uma skill | Sistema de skills — divulgação progressiva + hub de skills |
| Referência detalhada de todos os comandos da CLI | Continue lendo — e acesse diretamente Comandos da CLI |
Como o Hermes funciona: o modelo mental
O Hermes é estruturado em torno de um único loop de conversa que pode ser invocado por qualquer ponto de entrada. Os pontos de entrada são a CLI (cli.py), o gateway de mensagens (gateway/run.py), o adaptador ACP para integração com editores, o executor em lote e um servidor API.3 Todos eles acabam chamando AIAgent.run_conversation() em run_agent.py, que:
- Monta o prompt do sistema a partir de
SOUL.md,MEMORY.md,USER.md, skills, arquivos de contexto e orientações de ferramentas por meio deagent/prompt_builder.py(a reorganização de setembro de 2026 o moveu para o novo pacoteagent/)3 - Resolve o provedor de execução por meio de
runtime_provider.py— é nessa etapa que são escolhidos seu método de autenticação, a URL base e o modo API3 - Chama o provedor usando um dos três modos API:
chat_completions,codex_responsesouanthropic_messages3 - Encaminha todas as chamadas de ferramentas retornadas por meio de
model_tools.pye do registro central de ferramentas (tools/registry.py)3 - Repete o loop até que o modelo produza uma resposta final e, em seguida, salva a sessão no SQLite com FTS53
Entender esse loop é importante porque todos os recursos — personalidades, memória, skills, compressão e fallback — se conectam a uma dessas etapas. Quando você estiver lendo uma chave de configuração e se perguntando o que ela faz, a resposta geralmente será: “é um controle da etapa 1, 2, 3 ou 4 do loop acima”.
Núcleo independente de plataforma. Uma única classe AIAgent atende à CLI, ao gateway, ao ACP, ao processamento em lote e ao servidor API. As diferenças entre plataformas ficam no ponto de entrada, não no próprio agente.3 É por isso que os mesmos comandos slash funcionam no terminal e no Telegram — eles são encaminhados por um COMMAND_REGISTRY compartilhado em hermes_cli/commands.py.6
A estrutura de diretórios é o sistema. O Hermes armazena tudo em ~/.hermes/ (ou em $HERMES_HOME para profiles que não sejam o padrão):4
~/.hermes/
├── config.yaml # Settings (model, terminal, TTS, compression, etc.)
├── .env # API keys and secrets
├── auth.json # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md # Primary agent identity (slot #1 in system prompt)
├── memories/ # Persistent memory (MEMORY.md, USER.md)
├── skills/ # Bundled + agent-created + hub-installed skills
├── cron/ # Scheduled jobs
├── sessions/ # Gateway session state
└── logs/ # agent.log, gateway.log, errors.log (secrets auto-redacted)
Cada arquivo acima tem uma função específica; nenhum deles se sobrepõe aos demais. Se você quer saber “onde o Hermes armazena X”, a resposta está entre eles.
Novidades da v0.21.5 (o pacote de atualizações de 24 de setembro)
O Hermes Agent v0.21.5 (tag v2026.9.24, de 24 de setembro de 2026) é a versão atual, o terceiro pacote enxuto de atualizações da linha v0.21.x: “Esta tag reúne os cerca de 460 PRs integrados desde a v0.21.4 em uma versão estável com tag para consumidores downstream”. As notas selecionadas foram novamente adiadas para a v0.22.0. Estas são as mudanças voltadas aos operadores, verificadas no código-fonte correspondente à tag:5253
- A memória Hindsight deixa a árvore principal. O provedor Hindsight incluído e o extra
hermes-agent[hindsight]do pip foram removidos; agora o Hindsight é instalado pelo catálogo de plugins e mantido pela Vectorize; as notas da versão não mencionam essa mudança. Se sua configuração definirmemory.provider: hindsight,hermes updateinstalará o plugin do catálogo em todos os diretórios iniciais de profiles que o mencionarem. Se ele ainda estiver ausente, a primeira inicialização do agente também o instalará, a menos quesecurity.allow_lazy_installssejafalse(nesse caso, executehermes plugins install hindsight). As configurações, as chaves do.enve os dados da memória permanecem intactos. Consulte Provedores externos de memória. gateway.multiplex_profiles: falsefoi descontinuado. O gateway altera esse valor paratrueno próprio arquivo e exibe uma única vez um aviso dentro de uma caixa. Um profile nomeado que precise manter seu próprio gateway deve definirgateway.standalone: trueem seuconfig.yaml; para colocar offline um dos profiles atendidos,hermes -p <name> gateway stopagora o suspende sem interromper o host. Consulte Gateway de mensagens.- Novos modelos nos seletores da Nous e do OpenRouter: GPT-6 Sol e GPT-6 Luna (cada um com uma variante
-pro) e Claude Opus 5.5. - A compatibilidade com plugins não mudou:
plugins.allow_deprecated_imports: truecontinua funcionando.
Para atualizar: hermes update ou o comando de uma linha do instalador; as imagens do Docker e do Hermes Cloud são criadas a partir de nousresearch/hermes-agent:v2026.9.24.52
Novidades da v0.21.4 (o segundo patch cumulativo)
O Hermes Agent v0.21.4 (tag v2026.9.21, 21 de setembro de 2026) é o segundo rollup deliberadamente enxuto da linha v0.21.x. Nas palavras da própria versão: “Versão de patch. Esta tag reúne os cerca de 1.800 PRs incorporados desde a v0.21.3 em uma versão estável com tag para consumidores downstream (imagens Docker, Hermes Cloud, implantações hospedadas).” O período desde a v0.21.3 abrange “5.071 commits sem merge” em “5.169 arquivos alterados”, “1.812 PRs incorporados” e “2.116 issues encerradas”. Pela quantidade de commits, esse é o segundo maior intervalo entre tags na história do projeto, atrás apenas dos 5.139 da v0.21.1; pela quantidade de PRs incorporados, é o maior. A narrativa organizada foi adiada novamente, literalmente: “As notas de versão completas e organizadas para este período serão publicadas com a v0.22.0, que documentará tudo a partir da v0.21.0” e “Nada deste período será ignorado.” As notas listam o que deixam sem documentar, e cada item abaixo foi conferido no código-fonte da tag; quando um item altera uma seção permanente deste guia, o link correspondente aparece no próprio texto.5051
- Um gateway por host, e o Desktop se conecta em vez de iniciar outro processo. A regra é um
hermes servee umhermes gateway runpor host e por usuário do sistema operacional, cada um multiplexando todos os profiles — imposta por uma nova camada singleton para todo o host: um bloqueio do host mantido durante toda a vida útil do processo vencedor, além de um registro de rendezvous contendo(pid, createTime), para que uma segunda invocação possa comprovar que o proprietário é o mesmo processo ainda ativo e se conectar a ele em vez de vincular uma segunda porta. O estado obsoleto é comprovado, nunca presumido, e o aplicativo Desktop aplica a mesma ideia do seu lado, conectando-se ao backend do host em execução em vez de iniciar outro. Gateway de mensagens apresenta os detalhes do funcionamento.51 - Os conectores se tornam uma única operação controlada pelo backend, com um único cartão de configuração. Uma chamada da ferramenta
manage_connectionsaciona no backend uma máquina de estados de conexão baseada apenas em dados, e Desktop, TUI e CLI exibem o mesmo cartão de configuração: um campo para cada credencial ausente, com a ação do cartão indisponível até que todos os campos obrigatórios tenham texto. Consulte a subseção sobre o nível gratuito do Nous.51 --format stream-json: execuções únicas legíveis por máquina.hermes chat -q ... --format stream-jsonemite um objeto JSON por linha no stdout para executores de CI e orquestradores: um eventosystem/init, seguido por deltas detext/ eventostool_use/tool_resulte, por fim, um envelope terminalresultcontendo o código de saída, o texto final e as estatísticas de tokens. Os diagnósticos e o ID da sessão permanecem no stderr, a saída das ferramentas é limitada a 5.000 caracteres por evento, a flag implica--quiet, exige-qou--query-file(código de saída 2 sem uma dessas opções) e não pode ser combinada com--tui. A tabela de opções dehermes chatinclui essa flag.51skills.auto_loadfixa skills em todas as sessões. Os nomes listados emskills.auto_loadnoconfig.yamlsão carregados integralmente em cada nova sessão — seja CLI, TUI, gateway, cron ou API — e resolvidos uma única vez quando o prompt é criado pela primeira vez. O sistema de skills ganha uma subseção sobre skills fixadas.51- Uma opção
declinepara DMs não autorizadas.unauthorized_dm_behaviorganha um terceiro valor além depaireignore:declineenvia uma única recusa educada e depois permanece em silêncio para esse remetente por 24 horas. Consulte Autorização e pareamento de usuários.51 mcp.discovery_concurrencylimita as conexões de descoberta do MCP. O padrão é 4, e0= ilimitado; todos os servidores configurados continuam se conectando, mas deixam de fazer isso de uma só vez. Consulte Integração com o MCP.51session_searchganha limites de tempo e uma nova tentativa para melhorar a recuperação. O formato de descoberta aceita limitesafter/before(ISO ou durações relativas, como7d), e uma consulta com várias palavras que não retorna resultados é repetida buscando QUALQUER termo, em vez do AND implícito entre todos os termos do FTS5. Consulte Busca de sessões.51hermes sessions set-journal-mode delete|wal: o conversor offline do modo de journal. Este é o caminho de autoatendimento para umstate.dbpreso no modo incorreto de journal do SQLite — algo que antes exigia executar manualmentePRAGMA journal_mode=DELETE. Primeiro, interrompa o gateway, o dashboard e todas as instâncias de CLI: o comando se recusa a prosseguir enquanto qualquer processo externo mantiver o banco de dados aberto, faz a alteração sem aguardar o encerramento desses processos e depois verifica os bytes do cabeçalho do SQLite. O Windows não conta com uma verificação dos processos que mantêm o arquivo aberto; portanto, nesse sistema, o comando se recusa a prosseguir até que você use--force, depois de encerrar por conta própria todos os processos do Hermes. Agora,hermes doctororienta você a usá-lo. A linha dehermes sessionsem Comandos de nível superior inclui esse recurso.51- Desktop: uma configuração de fonte, atualizações do mecanismo com um clique e desinstalação de plugins. As configurações ganham um campo para a família de fontes, persistido por profile em
desktop.font_family— ele substitui a fonte sem serifa do tema em todo o chat e na interface, a lista de sugestões começa com fontes voltadas à acessibilidade (OpenDyslexic, Atkinson Hyperlegible, Lexend) e, se o campo estiver vazio, o tema decide. O runtime gerenciado de modelos locais exibe um botão “Atualizar mecanismo” quando há uma atualização disponível, e uma atualização malsucedida permanece visível para que você possa tentar novamente diretamente. Além disso, o hub de Plugins permite desinstalar um plugin após uma caixa de diálogo de confirmação.51 - Catálogos de vídeo: LTX 2.5 e Kling O3. O plugin de vídeo FAL adiciona
ltx-2.5(o modelo de áudio e vídeo de código aberto da Lightricks: áudio nativo, conversão de imagem em vídeo de até 20 s / 4K, predefinições de movimento de câmera e nível econômico — o fal rejeita clipes acima de 10 s em 1440p/2160p) ekling-o3(a família de ponta da Kuaishou, no nível premium: narrativa nativa com várias tomadas, áudio opcional e duração de 3 a 15 s).51 - O catálogo de plugins se torna um diretório distribuído e um site. O diretório
plugin-catalog/do repositório cresceu de 9 entradas emv2026.9.14para 228 nesta tag — um YAML revisado por plugin, fixado em um SHA de commit exato — e o site da documentação agora gera uma página para cada plugin e cada autor, exibindo em cada uma o README do plugin proveniente do commit fixado. Os dez plugins da comunidade mencionados na versão estão todos presentes no catálogo dessa tag. O sistema de plugins apresenta os detalhes.51 - E uma grande rodada de correções envolvendo isolamento de profiles/multiplexação, cron, kanban, Desktop e
state.db, mencionada pela versão apenas como uma categoria; caberá à v0.22.0 registrar essas correções de forma organizada.50
A reversão da compatibilidade de plugins ainda não entrou neste período. COMPAT_MANIFEST.md, compat_manifest.json e os shims de compatibilidade estão todos presentes em v2026.9.21; as únicas alterações em hermes_cli/plugin_compat.py durante o período são um cache de varredura compartilhado por todo o processo (um gateway multiplexado descobre os plugins uma vez para cada profile servido, e reanalisar o código-fonte de cada plugin custava cerca de 0,4 s por profile durante a inicialização) e caminhos de resultados no formato POSIX no Windows (#112576) — o bloqueio por data e a válvula de escape com booleano literal permanecem inalterados, portanto plugins.allow_deprecated_imports: true ainda mantém os plugins afetados em funcionamento. O quadro de compatibilidade em Sistema de plugins apresenta o estado atual.42
O processo de atualização não mudou: hermes update (para instalações via git) ou o instalador de shell para novas instalações; as imagens Docker e do Hermes Cloud são criadas a partir desta tag (nousresearch/hermes-agent:v2026.9.21).50
Novidades da v0.21.3 (o patch de 14 de setembro)
O Hermes Agent v0.21.3 (tag v2026.9.14, 14 de setembro de 2026) representa mais três dias da branch main resumidos em uma nota de dois itens. A versão foi lançada porque os agentes do Cloud são atualizados automaticamente para a tag de versão mais recente e precisavam das correções de login do gateway remoto para continuar acessíveis. (1) As sessões remotas do dashboard não são mais revogadas por rajadas de atualizações: os dois fluxos de atualização no gateway (a verificação por cookie e a rota bearer nativa do Desktop) agora agrupam solicitações simultâneas que carregam o mesmo refresh token rotativo em uma única operação. Assim, uma rajada ao despertar o Desktop não pode mais reutilizar no Portal um token já rotacionado, acionar a detecção de reutilização e revogar toda a sessão — além disso, a atualização é executada fora do event loop, de modo que um provedor de identidade lento não congela mais /api/status. (2) Os processos de longa duração deixam de criar identificadores de gravação duplicados para o state.db: gateway, backend do dashboard/Desktop, ACP e leitores do CLI se conectam no modo somente leitura, enquanto os gravadores no mesmo processo compartilham o identificador do registro. Estatísticas do período: “1.036 commits sem merge” em “2.642 arquivos alterados” e “338 PRs incorporados”. Todo o restante foi adiado de propósito: a versão informa o que não está documentando (seletores de esforço de raciocínio em todos os seletores de modelo, PKCE do OAuth do OpenRouter, decodificação de HEIF/HEIC/AVIF, uma onda de adições ao catálogo FAL, tabelas coladas no Slack e o API de Sessões do Agente, a recusa do WAL do state.db em sistemas de arquivos entre VMs e outros itens) e se compromete com o registro organizado, literalmente: “As notas de versão completas e organizadas para este período serão publicadas com a v0.22.0, que documentará tudo a partir da v0.21.0” e “Nada deste período será ignorado.”49
E o prazo da compatibilidade de plugins chegou conforme programado. A remoção em 14 de setembro de 2026 anunciada pela v0.21.1 entrou em vigor como um bloqueio por data no código distribuído, não como uma reversão do código: na tag v2026.9.14, hermes_cli/plugin_compat.py contém COMPAT_REMOVAL_DATE = 2026-09-14, e removal_in_effect() retorna true a partir dessa data (ou assim que o arquivo de manifesto desaparecer). Com isso, um plugin externo afetado passa a ser desativado durante o carregamento e exibe o aviso em vermelho. O que ainda NÃO aconteceu: a reversão que realmente exclui os caminhos antigos de importação. COMPAT_MANIFEST.md, compat_manifest.json e os shims de compatibilidade ainda estão presentes na tag — e continuam presentes em v2026.9.21 e na main em 22 de setembro — por isso plugins.allow_deprecated_imports: true ainda funciona como válvula de escape: os caminhos antigos continuam sendo resolvidos quando o carregador recebe permissão para prosseguir. Há duas ressalvas importantes: a chave precisa ser um booleano YAML literal (o código aceita apenas o booleano True; uma string entre aspas, como "true" ou "false", é tratada como não definida, conforme o comentário no código “Literal boolean only”), e essa válvula de escape deixa de funcionar assim que a reversão entrar, pois os próprios caminhos desaparecerão. O quadro de compatibilidade em Sistema de plugins apresenta o estado atual.4249
Novidades na v0.21.2 (a versão de correção do state.db)
O Hermes Agent v0.21.2 (tag v2026.9.11, 11 de setembro de 2026) existe, antes de tudo, para corrigir o que a v0.21.0 quebrou. A versão diz isso claramente: “A v0.21.0 trouxe uma grande reformulação do gerenciamento de conexões do armazenamento de sessões e, em algumas instalações, tornou o state.db frágil: segundos processos de escrita cancelavam os bloqueios uns dos outros, bancos de dados íntegros eram identificados como corrompidos e uma única linha inválida interrompia o sessions list. Esta versão elimina essa categoria de problemas e reúne tudo o que chegou à main nos quatro dias desde a v0.21.1.” Ao contrário das notas deliberadamente sucintas da v0.21.1, esta versão documenta seus próprios destaques; as estatísticas do período são “947 commits sem merge” em “1.869 arquivos alterados” e “312 PRs mesclados” de “140 colaboradores”, enquanto o registro selecionado de todo o ciclo v0.21.x ainda ficará a cargo da v0.22.0.48
- A campanha de confiabilidade do state.db: seis PRs e 44 problemas resolvidos. A recomendação da versão para operadores vem primeiro — e você também deve segui-la: se o seu
state.dbapresentou problemas na 0.21.0 ou 0.21.1, executehermes doctor— agora ele distingue danos estruturais de danos no índice de pesquisa de texto completo, em vez de chamar tudo de “corrupção de escrita no FTS”, e indicahermes sessions recover --inspect-only(offline, não destrutivo e fixado ao profile; informa se a tabela canônica pode ser lida sem criar um banco de dados de saída) quando uma reconstrução não basta. O trabalho na causa raiz elimina todos os processos secundários de escrita no armazenamento: os gateways dos profiles gravavam o estado das salas hospedadas nostate.dbraiz a cada 5 segundos, e agora essa coordenação fica em umshared-state.dbdedicado, de modo que os gateways dos profiles nunca abrem o armazenamento principal de sessões para escrita; o dashboard tenta primeiro abri-lo como somente leitura; a proteção do ciclo de vida do cron passa pelo registro de conexões monitoradas, em vez de usar umopen()bruto em um banco de dados ativo (o que cancela os bloqueios POSIX do gateway — a receita clássica para corromper seu SQLite); edoctor --fixrecusa um checkpoint quando não consegue comprovar que ele é seguro. Além dos processos de escrita: agora, danos ao índice FTS apenas limitam a pesquisa e fazem com que o índice seja reconstruído depois, em vez de encerrar todo o turno com falha; uma linha corrompida não interrompe maissessions list, a exportação ou os insights (linhas inválidas são exibidas como?, com um aviso que identifica a sessão); as sessões nunca se vinculam ao banco de dados de outro profile nem o leem; e a abertura no modo somente leitura não adquire mais o bloqueio de escrita, fazendo com que uma execução pontual dohermespor trás de um gateway ocupado passe de uma espera seguida de falha de 4 a 20 segundos para 0,01 segundo.48 - Reforço do isolamento entre vários profiles. Desde a v0.19.0, este guia repete a afirmação do projeto de que o roteamento por profile oferece a cada profile “configurações, skills, memória e segredos totalmente isolados”. Na v0.21.2, essa promessa ainda tinha brechas, que agora foram fechadas: bots de profiles secundários herdavam as listas de permissões do profile padrão, adaptadores podiam enviar credenciais ao host do profile padrão, servidores MCP via stdio recebiam os segredos do cofre do profile padrão, a entrega por
MEDIA:podia anexar o.env,auth.jsonoustate.dbde outro profile, callbacks de webhook e do Feishu podiam sair do profile para o qual foram roteados, e profiles secundários podiam receber o bearer do Nous de outro profile por meio de memos por processo (#107609-#107630). Se você executa vários profiles em um único gateway multiplexado, esta é a versão em que a promessa de isolamento realmente se concretiza.48 - O cofre de credenciais invisível a senhas. Agora, o agente pode fazer login, pagar e preencher endereços no navegador usando o 1Password, o Bitwarden ou o cofre local do Hermes sem jamais ver um segredo, e os códigos de autenticação de dois fatores vêm de uma chave de autenticador salva (TOTP: uma semente em base32 ou um URI
otpauth://totp; HOTP baseado em contador não é aceito) ou são solicitados na sua interface. Todos os backends fornecem ao agente o mesmo formato — metadados de login e um identificador opaco com namespace (vault_local,op:,bw:), enquanto a senha só é obtida no momento do preenchimento; gerenciadores externos permanecem bloqueados até que você os desbloqueie para a sessão, e a senha mestra “nunca é um argumento de ferramenta, nunca aparece em argv e nunca é persistida”. Isso amplia o trabalho comSecretSourceda v0.19.0, que retirou as chaves API dos provedores do.envem texto simples; agora, o cofre faz o mesmo pelas credenciais de navegação do agente.48 - Um catálogo selecionado de plugins fixados por SHA.
hermes plugins browselista “todas as entradas selecionadas do catálogo de plugins”,hermes plugins searchpesquisa no catálogo ehermes plugins installresolve nomes do catálogo, além de URLs do Git eowner/repo.hermes plugins packcompleta o conjunto com “coleções de plugins declarativas e compartilháveis”: um únicohermes-pack.yamlfixa um conjunto de plugins em SHAs de commits exatos,pack installdistribui a execução entre instalações fixadas comuns, mantendo o consentimento de recursos individual para cada plugin,pack exportgera um pack da instalação atual epack showfunciona como uma simulação. O bloco de comandos do sistema de plugins inclui os novos subcomandos.48 - Plano gratuito do Nous e primeira inicialização guiada. Instalações novas recebem inferência gratuita e conectores prontos para uso com um único comando de login,
/loginfunciona dentro de um chat e as ferramentas dos conectores (Gmail, Linear, Notion e outras) podem ser pesquisadas por meio detool_search. A primeira inicialização guiada do aplicativo para desktop fica condicionada aHERMES_GUEST_ONBOARDING=1, e somente o valor literal1a ativa: o teste do próprio aplicativo confirma que'true','0'e um valor vazio a mantêm desativada, e a decisão tomada na inicialização é registrada no ambiente do backend iniciado, impedindo que um valor herdado seja propagado. Consulte Nous Tool Gateway.48 - As tempestades de inicialização do backend no aplicativo para desktop acabaram. Antes, o Bot Mode iniciava ou se conectava a um backend por profile na inicialização e a cada atualização da lista, passar o cursor sobre a lista de Bots iniciava um backend por linha, e trocar de profile podia iniciar uma cópia duplicada do backend principal. Tudo isso foi corrigido nesta versão.48
A atualização continua igual: hermes update em uma instalação existente ou o instalador via shell em uma instalação nova.48
O que há de novo na v0.21.1 (o patch cumulativo)
O Hermes Agent v0.21.1 (tag v2026.9.7, 7 de setembro de 2026) é deliberadamente enxuto: uma “versão de correção” que “reúne o estado atual da main desde a v0.21.0 para implantações com tag e consumidores downstream”. O texto apresenta as estatísticas do período — “5.139 commits sem merge em 4.364 arquivos alterados (+601.014 / -768.419)” e “632 PRs mesclados” — e então adia a história: “As notas de versão completas e selecionadas para este período serão publicadas com a v0.22.0”. Isso faz deste o maior intervalo entre tags da história do projeto (nenhum intervalo anterior entre tags adjacentes supera os 2.790 commits sem merge de v2026.7.20..v2026.7.30), publicado com as menores notas de versão. Até que a v0.22.0 apresente o registro selecionado, os seis grupos abaixo são o que muda na forma como você opera o Hermes nessa tag, cada um verificado no código-fonte.41
- A base de código foi decomposta, e o prazo de compatibilidade dos plugins terminou em 14 de setembro. A decomposição de setembro de 2026 (PR nº 102117) dividiu os grandes módulos do repositório em arquivos focados: um novo pacote
agent/contém os componentes internos do loop de conversação (214 módulos no nível superior, além de sete subpacotes;prompt_builder.pyagora fica emagent/prompt_builder.py, enquantorun_agent.pycontinua sendo o local deAIAgent), os parsers de subcomandos da CLI foram movidos para um pacotehermes_cli/subcommands/(61 módulos), a lista estáticaCANONICAL_PROVIDERSfoi movida dehermes_cli/models.pyparahermes_cli/models_catalog_static.py(a lista em si não mudou: 39 entradas estáticas, ainda estendidas automaticamente a partir dos 39 diretórios de plugins de provedores incluídos), edelegate_taskfoi dividido em aproximadamente uma dúzia de módulostools/delegate_tool_*. Caminhos de importação internos não são uma API estável, então um novoCOMPAT_MANIFEST.mdna raiz do repositório reexporta 1.148 nomes públicos “moved-lazy” dos caminhos de módulo antigos, cada um emitindo umHermesPluginCompatWarninguma vez por nome, por processo, quando resolvido. A camada de compatibilidade era temporária, e sua remoção entrou em vigor conforme programado em 14 de setembro de 2026, seis dias após a tag — não como uma reversão de código, mas como uma condição baseada em data já presente no código publicado. Desde essa data, um plugin de terceiros afetado não é carregado: o banner da CLI,hermes doctorehermes updatemostram um aviso vermelho com o nome do plugin desativado, o desktop exibe uma caixa de diálogo uma única vez, ehermes plugins listmostra o motivo. Se você usa plugins externos, verifique-os:hermes plugins compat <path>exibe cadafile:linecom caminho antigo -> caminho novo e retorna o código 1 enquanto ainda houver algo pendente (--jsonpara uma saída legível por máquina; execute sem argumentos para verificar todo o conjunto instalado). A saída de emergência para um plugin cujo autor ainda não se atualizou éplugins.allow_deprecated_imports: trueemconfig.yaml, e ela ainda funciona: a reversão que realmente exclui os caminhos de importação antigos ainda não foi incorporada até 22 de setembro (verificado até a tagv2026.9.21e namain), portanto os caminhos antigos ainda são resolvidos quando o carregador recebe permissão para prosseguir. Os detalhes das consequências estão em O que há de novo na v0.21.2 acima; a seção Sistema de plugins contém o quadro com o estado atual.42 - As conversas do gateway não são mais alternadas por temporizadores, em nenhuma circunstância. A documentação do ciclo de vida da sessão agora declara o contrato explicitamente: “A inatividade e o tempo decorrido nunca alternam uma conversa.
/newe/resetcriam um limite explícito; a compactação do contexto continua gerenciando históricos longos. A configuração legada de temporizadores é ignorada. O tipo de dadoSessionResetPolicyexistente é um dado de compatibilidade inerte, não uma política de runtime.” Os limites são explícitos e definidos pelo usuário; se você trouxe temporizadores de redefinição de sessão da era do OpenClaw por meio dehermes claw migrate, agora eles são dados inertes. Consulte Gateway de mensagens.43 - A autorização da MCP ganha um fluxo por código de dispositivo.
hermes mcp login <name>ganha--flow {browser,device}:browseré o fluxo PKCE existente,deviceé um login por código de dispositivo conforme a RFC 8628 para máquinas nas quais um callback do navegador não é prático, e a flag substitui a configuraçãooauth.flowdo servidor. O período também reforçou o restante da superfície de autenticação da MCP: a propriedade do profile é aplicada em todas as sessões da OAuth, caches de metadados malformados da OAuth são ignorados em vez de travar um servidor, e o desktop retransmite a OAuth da MCP por callbacks locais do cliente. Além disso,-t/--toolsetsagora também filtra quais servidores da MCP configurados chegam a ser iniciados, portanto uma execução pontual dehermes -z -t <toolsets>evita iniciar a frio servidores desnecessários. O bloco de comandos de Integração da MCP agora incluiloginereauth [--all], ambos anteriores a este período, mas que ainda não haviam sido documentados aqui.44 - A delegação passa a tratar o trabalho em segundo plano com transparência. Seis mudanças de confiabilidade em
delegate_task, todas extraídas do código-fonte da ferramenta de delegação nessa tag. (1) Por padrão, um lote em segundo plano retorna como UMA conclusão; habilitardelegation.independent_completionsdivide a chamada em unidades de conclusão: tarefas que compartilham um valor degroupsão agrupadas e reportadas juntas, enquanto cada tarefa sem grupo é reportada individualmente quando termina. Esse padrão é intencional — o código-fonte observa que uma enxurrada de conclusões por tarefa “fragmentava orquestradores que não tinham um plano para isso”. (2) Os processos em segundo plano de um filho são encerrados durante sua desmontagem, a menos que o filho os transfira ao pai comprocess_manage(action="handoff"); processos restantes que não foram transferidos são identificados no resultado comoorphaned_processes, e processos filhos que terminaram sem nunca terem sido lidos aparecem comounread_completions, acompanhados do trecho final da saída. A posição do projeto, conforme a docstring no código-fonte: o pai “precisa ouvir isso do runtime”, em vez de confiar na afirmação de um filho de que há um “watcher em execução”. (3)delegation.fallback_providerstorna-se uma configuração real:nullherda a cadeia do pai para filhos sem fixação,[]desativa o fallback, e um filho fixado por provedor, endpoint ou modelo não recebe fallback, a menos que essa configuração declare um. (4) A cadeia de fallback do filho é resolvida pelo normalizador canônico, portanto entradas malformadas são descartadas em vez de impedir a criação. (5) Uma falha no meio de uma unidade não perde mais os filhos concluídos: cada filho concluído de uma unidade com vários filhos é registrado de forma durável na própria linha da unidade e permanece no resultado recuperado como parcial. (6) Subagentes nunca herdam o nível de cache de prompt de 1 hora: um filho delegado passa para o nível de 5 minutos, porque o nível de 1 hora tem preço voltado para uma pessoa que se afasta, não para uma sequência de filhos paralelos.45 - Provedores e modelos. Os catálogos passam a incluir GPT-6 Astra e Astra Pro da OpenAI, com variantes de velocidade
-fast/-flex(“preço 2x, nível prioritário” / “preço 0,5x, nível flex”) nos catálogos do Nous Portal e OpenRouter. Na rota da OAuth do ChatGPT/Codex, o Astra é restrito por conta (somente a descoberta ativa no escopo da conta pode anunciá-lo) e ganha uma variante opcional-900kno seletor, que eleva a janela anunciada de 272K para cerca de 900K, verificados ao vivo; o sufixo nunca é enviado pela rede. Também chegam:anthropic/claude-fable-5.1,google/gemini-3.7-flashegemini-3.8-flash,qwen/qwen3.8-max-0902eqwen3.8-flash, além da família Muse Spark 1.3 da Meta (contexto de 1M, incluindo variantes de colaboradores) e um plugin de provedor de geração de imagensmuse-imageda Meta. O Tavily chega como backend de pesquisa e extração na web (TAVILY_API_KEY; funciona sem chave quando o Tavily é selecionado por meio dehermes tools). Um runtime gerenciado do llama.cpp transforma modelos locais em uma opção de primeira classe (binários oficiais, um únicollama-serversupervisionado e configuração com um clique pelo desktop), enquanto provedores de processos externos fora do repositório ganham uma ramificação própria de resolução. Em termos operacionais, os catálogos remotos do seletor agora são atualizados a cada 20 minutos (model_catalog.ttl_minutes, padrão 20; a chave legadattl_hourssó é respeitada quando um usuário a definiu explicitamente).46 - Desktop: faça anotações na página e controle a sessão. O navegador integrado ganha o modo de comentários: clique em Anotar, depois clique em qualquer elemento (ou arraste para desenhar uma caixa) na página ativa e digite uma observação; os comentários salvos permanecem como marcadores numerados e nunca enviam um turno por conta própria. Quando terminar, “Adicionar N comentários” transfere o lote para o compositor com uma captura de tela recortada por marcador, e cada comentário de elemento inclui seu seletor da CSS, sua marcação e os estilos computados relevantes para o layout, permitindo que o agente encontre o elemento no seu código-fonte em vez de tentar adivinhar pela imagem (senhas, valores ocultos e atributos que parecem conter chaves são removidos antes que a marcação saia da página). Lotes maiores chegam agrupados por região da página, de modo que cerca de vinte comentários se transformam em algumas unidades de trabalho que normalmente afetam arquivos distintos — o que torna seguro distribuí-las entre workers paralelos. Ao redor desse recurso: controles estruturados de sessão e controles de automação de sessão, criação de sessões por arrastar, uma visualização de importação de sessões para transcrições de agentes de programação externos,
display.resume_last_session(padrão true: uma inicialização a frio reabre o último chat ou página), uma solicitação de consentimento na primeira abertura oferecendobrowser.use_real_profilequando um painel do Browser é aberto com essa opção desativada, um catálogo integrado de skills opcionais em Recursos -> Skills com instalação em um clique e um novo idioma russo para a interface do desktop (os 17 catálogos de idiomas da CLI permanecem inalterados).47
A atualização não mudou: hermes update para uma instalação existente ou o instalador shell para instalações novas. Cabe à v0.22.0 registrar esse período de forma organizada; os grupos acima são o que muda nessa tag.41
Novidades da v0.21.0 (The Pantheon Release)
Hermes Agent v0.21.0 (tag v2026.8.31, 31 de agosto de 2026) é a versão atual com novos recursos e o registro consolidado para o qual toda a sequência de atualizações v0.20.x vinha apontando: “Esta versão reúne tudo o que foi lançado nos patches de infraestrutura v0.20.1 a v0.20.6 — esses períodos estão totalmente documentados aqui.” A proposta é uma continuação do Herald: “A v0.20.0 transformou Hermes no mensageiro — ele falou e levou a mensagem a outros agentes. Na v0.21.0, os deuses se reúnem.” Os números, literalmente: “Desde a v0.20.0: cerca de 5.800 commits · cerca de 2.475 PRs mesclados · cerca de 5.680 arquivos alterados · cerca de 869.000 inserções · cerca de 135.000 exclusões · cerca de 2.100 issues fechadas · mais de 760 colaboradores”.35
A versão está organizada por área de recurso, assim como este resumo. Quando um recurso altera uma seção permanente deste guia, o link aparece no próprio item.
- Bot Mode: seus agentes se tornam uma sociedade integrada. O Bot Mode deixa de ser o plugin
hermes-botsincluído na versão v0.20.3 e passa a ser uma parte do aplicativo para desktop ativada por padrão. Cada profile de agente recebe um nome, um rosto de avatar determinístico com controles para gerar outro ou bloqueá-lo e um lugar em uma lista compartilhada; você cria conversas em grupo no estilo do Discord, nas quais vários bots e você conversam na mesma sala, menciona qualquer bot com @ no campo de mensagem e dá nomes e imagens às salas. O conjunto de recursos inclui cartões de mensagens entre agentes com identificação do remetente, avisos de entrega para quem enviou, hidratação com prioridade para a renderização para ativações instantâneas, um painel Routines e uma reconstrução baseada no sistema de design do aplicativo. Nas palavras da própria versão: “Antes, ‘multi-agent’ significava infraestrutura; agora, parece um aplicativo de chat cheio de colegas de trabalho.”35 hermes peer: mensagens diretas entre seus agentes. Qualquer agente Hermes pode enviar mensagens a qualquer outro usando seu identificador, entre diferentes profiles e gateways, por meio da CLI ou de dentro de uma conversa — peça ao seu bot de pesquisa que envie as descobertas ao seu bot de programação e leia a resposta onde você estiver. “As respostas chegam ao Bot Chat canônico de cada agente, então as conversas entre agentes são duráveis e podem ser inspecionadas, em vez de serem enviadas e esquecidas.” O comandohermes peer(adicionar/listar/remover peers,dm) está na tabela de comandos de nível superior.35- Cron jobs que se lembram. As tarefas agendadas deixam de ter memória curta: agentes de cron carregam e atualizam memória persistente como qualquer outro agente,
continuity=trueleva a saída de cada execução para a seguinte para que um monitor possa eliminar duplicatas com base no que já informou, cada tarefa recebe um bloco de notas durável, tarefas no modo monitor ignoram totalmente a LLM quando nada mudou, o nível de esforço de raciocínio pode ser fixado por tarefa e a saída do cron pode chegar ao Bot Chat canônico de um bot, onde ele realmente responde. A seção Tarefas agendadas (Cron) agora documenta os mecanismos disponíveis no tag para cada um desses recursos.3537 - Orquestração de subagentes em tempo real.
delegate_taskganha ações de controle: listar filhos em execução, redirecionar um deles durante a execução com uma correção de rumo ou interrompê-lo antecipadamente e preservar o resultado parcial. As saídas dos filhos podem ser validadas em relação a um schema JSON, o custo de cada delegação aparece nos resultados e os padrões aumentam para 250 iterações por subagente e 10 filhos simultâneos (os limites unificados que substituírammax_async_childrenna v0.19.0).3538 - A central de comando de MCP. Os servidores MCP e o catálogo são reunidos em uma única página do aplicativo para desktop, com importação por arrastar e soltar no estilo “cole qualquer coisa”, verificações de integridade em segundo plano que avisam você para refazer a autenticação antes que uma chamada de ferramenta falhe, uma sobreposição de custos e uso da frota (estimativas de tokens do schema e uso de 30 dias por servidor) e deep links
hermes://que instalam um servidor MCP mediante confirmação explícita. Consulte Integração com MCP.35 - Uma onda de recursos avançados na CLI. Ctrl+P abre uma paleta de comandos com busca aproximada (também disponível como
/palette), o seletor/modelfiltra conforme você digita,/statusmostra o modo de raciocínio, as aprovações pendentes e o uso do contexto, e a barra de status pode exibir em tempo real a porcentagem de acertos do cache, a latência e os tokens por segundo, com controles individuais para cada campo. Há também uma parada de emergência global, a opção de fixar ou desafixar sessões, placeholders rotativos no campo de mensagem e mascotes no terminal. Uma observação sobre nomenclatura: a versão anuncia um verificador de aprovações em modo de simulação comohermes approval-check; nesse tag, essa funcionalidade éhermes approvals test— não existe o subcomandoapproval-check.3540 - O agente controla o navegador do aplicativo para desktop. O navegador integrado deixa de ser uma janela que o agente só consegue observar: Hermes navega, clica e lê diretamente, e as páginas podem ser abertas no navegador do sistema com menus de contexto completos para links.35
- Seis novos providers e uma onda de novidades no catálogo de modelos. Meta Model API (Muse Spark), CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router e Actual Computer. Três deles (Meta AI, CommandCode e Actual Computer) chegaram durante períodos anteriores da consolidação e já estavam na matriz de providers; agora, a matriz inclui Tencent TokenPlan, Nebius Token Factory e Ramp Router, além do novo SKU Alibaba Token Plan apresentado na documentação. Os catálogos recebem GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 free, Nemotron 3.5 Lightning e Muse Spark 1.2. Duas mudanças estruturais acompanham as novidades:
model_overridesemconfig.yamlpermite ajustar a janela de contexto ou o preço de qualquer modelo sem esperar por uma nova versão, e agora os providers podem ser distribuídos como pacotes instalados pelo pip e descobertos por meio de entry points; um registro unificado de verificações de seleção também emite alertas em todos os seletores quando um modelo é treinado com seus dados.3536 - Reforço de segurança em todas as frentes. Gravações em arquivos protegidos de instruções do agente (AGENTS.md, skills e repositórios de memória) agora sempre exigem aprovação, impedindo que um agente afetado por prompt injection reescreva silenciosamente suas próprias instruções permanentes; uma ampla revisão de redação fecha brechas de vazamento de segredos em erros do terminal, leituras de
.env, checkpoints e logs do ACP; o sistema de aprovação passa a reconhecer comandos destrutivos do Windows; as permissões concedidas no macOS sobrevivem às atualizações graças a uma identidade estável de assinatura TCC (hermes desktop --setup-tcc-identity); e a entrada do Blender no catálogo de MCP e sua skill foram removidas após o comprometimento do projeto upstream. Consulte Reforço de segurança para ver os detalhes disponíveis no tag.3539 - Amadurecimento do gateway. O Slack recebe cartões dinâmicos nativos (respostas transmitidas em tempo real e cartões opcionais de planos e tarefas), além da supressão de prévias de links enviados; o Telegram ganha um seletor inline que permite pesquisar todos os comandos e skills por meio de @botname, contornando o limite do menu de comandos do Telegram; o canal de retransmissão amadurece (inicialização nativa de plugins, operações de cartões dinâmicos com streaming de rascunhos, segmentação por intervalos da sessão e restauração da conversão de mensagens de voz em texto); um socket de controle do gateway permite que consumidores da frota consultem o gateway e que atualizadores o pausem de forma controlada, em vez de encerrar toda a árvore de processos; e o mecanismo de encerramento de turnos captura as pilhas de workers travados quando o watchdog é acionado.35
- Uma onda de skills. Oito skills de produtividade recuperadas (document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar), clientes de API derivados de HAR (“observe um site uma vez e depois chame diretamente a API oculta dele, sem navegador”), publish-site, session-librarian, blocked-page-recovery, merge-reconciler, plan-interrogation e um linter consultivo de SKILL.md durante a criação.35
Revertidos neste período (não incluídos na versão): tanto o modo Model Council (/council) quanto o context engine DCP chegaram a ser implementados e depois revertidos; o servidor de gateway exclusivo para WS (#94245) foi mesclado e depois revertido (#96118), portanto FastAPI continua no fluxo de inicialização do aplicativo para desktop — mas a repetição de eventos com números de sequência (#94219) e a reconexão sem perdas do aplicativo para desktop por WebSocket FORAM incluídas. O Electron voltou para a versão 40.10.2. Caso a cobertura da comunidade sobre as versões v0.20.x tenha mencionado algum desses recursos, eles não fazem parte desta versão.35
O processo de atualização não mudou: use hermes update em uma instalação existente ou o instalador via shell para instalações novas. A subseção de consolidação dentro da versão Herald abaixo continua sendo o registro por tag do que foi incluído em cada período.35
Novidades da v0.20.0 (The Herald Release)
O Hermes Agent v0.20.0 (tag v2026.8.3, 3 de agosto de 2026) foi a versão de recursos lançada antes de a v0.21.0 consolidar tudo; a v0.20.1 (13 de agosto) e a v0.20.2 (16 de agosto) são tags de estabilização criadas sobre ela, e a v0.20.3 (tag v2026.8.16.2, publicada em 17 de agosto), a v0.20.4 (tag v2026.8.18, 18 de agosto), a v0.20.5 (tag v2026.8.19, publicada em 21 de agosto) e a v0.20.6 (tag v2026.8.27, 27 de agosto) mantêm a sequência de consolidações com janelas que também trazem recursos próprios — veja a subseção abaixo. A janela desde a v0.19.0 abrange aproximadamente 3.650 commits, 1.400 PRs mesclados e 1.200 issues encerradas, com mais de 650 colaboradores.55
Três mudanças invalidam as instruções que as versões anteriores deste guia deram a você. Leia-as antes de qualquer outra coisa:
- Agora, o Node 26 é obrigatório. O instalador fixa
NODE_VERSION="26"e recusa runtimes mais antigos com a mensagem “Node.js … is too old (Hermes requires Node >=26).” Os instaladores,healeupgradeaplicam essa exigência. Observe que a página de instalação do site da documentação ainda informa Node v22 — o script do instalador e as notas da versão são as fontes mais recentes e confiáveis.55 - pip e Homebrew foram descontinuados, não apenas depreciados. Nas palavras da própria nota: “brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels).” Se você ainda usa uma instalação via pip ou brew, esse canal não recebe mais versões.55
- O limite padrão de iterações para chamadas de ferramentas passou de 90 para 500. Execuções autônomas longas deixaram de atingir uma barreira artificial, e todos os limites de pressão do orçamento abaixo são calculados com base nesse novo teto. O padrão de
read_filetambém passou de 500 para 2.000 linhas.55
O restante da versão:
- Voz conversacional. TTS por streaming com interrupção por voz e palavras de ativação processadas no dispositivo.55
- A2A v1.0. Um plugin de protocolo entre agentes que atende à antiga solicitação da issue nº 514.55
- Webhooks de saída assinados. Antes,
hermes webhookaceitava apenas entradas; a v0.20.0 adiciona webhooks de ciclo de vida de saída, assinados com HMAC, para eventos de sessão, turno e ferramenta.55 - Citações fundamentadas. Uma nova skill com um modo de verificação de fatos.55
- Uma onda de recursos para usuários avançados no CLI.
!commandexecuta instantaneamente um comando do shell sem gastar um turno do modelo;/initexamina o projeto e cria ou atualiza umAGENTS.md;/diffmostra alterações preparadas, todas as alterações ou as alterações da sessão em qualquer interface;/contextdetalha o que está preenchendo a janela de contexto;/focusoferece uma visualização com menos saída e permite recuperar linhas ocultas; Ctrl+S guarda temporariamente um prompt escrito pela metade.hermes import-agentmigra uma configuração do Claude Code ou do CLI do Codex com um único comando.55 - Novidades na interface de gerenciamento de segredos. Uma fonte de segredos baseada em comandos auxiliares que pode ser combinada com qualquer cofre, rotação de tokens com um único comando e erros de inicialização que indicam como agir, um cache emergencial criptografado e opcional para o Bitwarden, chaves injetadas pelo cofre com escopo definido por diretório inicial de profile e paridade de SecretRef
${env:VAR}entreconfig.yamle a configuração do MCP. O modelo de autenticação com três caminhos descrito abaixo permanece inalterado.55 - Inicialização mais rápida. A inicialização a frio de
hermes -wcaiu de aproximadamente 14s para 1,8s.55 - O desktop se tornou uma plataforma. Artifacts com cards versionados e visualização dinâmica em sandbox, um SDK de plugins com Kanban como plugin fundador do desktop, um atalho global para entrada rápida, várias janelas da GUI, modo de backend remoto do SSH e login nativo segundo o RFC 8252.55
As consolidações v0.20.3, v0.20.4, v0.20.5 e v0.20.6 (17 a 27 de agosto)
Após a v0.20.0, o projeto adotou um ritmo de consolidações frequentes com tags, que trouxeram mais do que apenas estabilização. As quatro adiaram as notas selecionadas da mesma forma — cada uma declarou que “full curated release notes for this window will ship with v0.21.0” — e a v0.21.0 já as entregou: Novidades da v0.21.0, acima, é o registro selecionado de todo esse período (a versão confirma que as janelas “are fully documented here”). Os blocos abaixo permanecem como o registro contemporâneo de cada tag — eles preservam o que foi incluído em cada uma, enquanto as notas selecionadas agrupam essas mudanças.54233035
v0.20.3 (cerca de 250 commits e 125 PRs desde a v0.20.2):
- Migração do SDK do MCP 2.x, com suporte ao protocolo sem estado de 28 de julho de 2026. O Hermes passa a usar a geração atual do SDK do MCP e oferece suporte à revisão sem estado do protocolo.54
- O Bot Mode é lançado como um plugin incluído (
hermes-bots) que contém o protocolo principal de colaboração em equipe.54 - Um plugin do provedor CommandCode passa a integrar o catálogo de provedores.54
- Contratos de runtime do Cua Driver 0.20 para uso do computador, além do reforço da propriedade do runtime do Python em subprocessos (isolamento de PYTHONHOME/PYTHONPATH).54
- Confiabilidade: recuperação automática do agendador cron (recuperação de EMFILE, reconciliação de reivindicações obsoletas e reativação de tarefas travadas), correções para perda de dados na transferência de sessões, recuperação automática da conexão com o gateway remoto do desktop e uma onda de melhorias no ecossistema (verificação de segurança na instalação de plugins,
/worktree, preservação de edições manuais pelo/rollbacke leitura de arquivos UTF-16).54
v0.20.4 (cerca de 146 commits e 74 PRs desde a v0.20.3):
- A superfície de vidro do desktop: efeitos de vidro fosco e translucidez, com um seletor de desfoque e pré-seleção para macOS.54
- Uma barra lateral com abas SESSIONS|BOTS, incluindo opções para ocultar e exibir cada bot, além de correções para conversas em grupo no Bot Mode (turnos longos de participantes, renderização de Markdown e roteamento entre máquinas).54
- Verificação consultiva NVIDIA SkillEvaluator Tier 1 durante a instalação de skills — verificações de licença e segurança são executadas quando você instala uma skill.54
- Reforço do envio de mídia pelo cron (timeout configurável, anexos em execuções manuais e exibição de acionamentos perdidos), correções de thread do loop de eventos e contenção no SessionDB, transparência do
hermes updateem branches estacionadas e notificações nativas do sistema operacional para o Kanban.54
v0.20.5 (cerca de 746 commits e 323 PRs desde a v0.20.4):
- A camada web sem chaves: a busca na web funciona em instalações novas sem nenhuma chave de API — com rotação gratuita entre 5 fornecedores e failover em anel.23
- Uma onda de refinamentos no CLI: seletor difuso de
/model, uma paleta de comandos aberta com Ctrl+P e um/statusmais completo.23 - O Bot Mode amadurece: threads em salas de grupo, resumos recolhíveis de conversas, avatares blob-face e anexos de PDF/arquivos com recurso de arrastar e soltar.23
- Ferramentas para frotas e worktrees: recibos do
hermes update,hermes update --plan(as notas da versão chamam isso de “fleet--planverification”; a flag pertence ahermes update, não a um comandofleet, e, segundo a ajuda do parser, ela irá “Show the update plan and exit without changing anything”) ehermes worktree list/prune.2327 - As tarefas cron ganham memória persistente e esforço de raciocínio por tarefa, além de disciplina de execução e proteções contra travamentos do runtime orientadas pelas descobertas da avaliação do Composio, esclarecimento com várias perguntas, o provedor sem opencode e sem autenticação e melhorias no desempenho do desktop (hidratação do Bot Mode com prioridade para a primeira renderização e React Compiler nos dois renderizadores).23
v0.20.6 (tag v2026.8.27, 27 de agosto — cerca de 1.313 commits e 525 PRs desde a v0.20.5):
A versão se descreve explicitamente como uma “Patch release. This tag rolls up the ~525 PRs merged since v0.20.5 into a stable tagged release for downstream consumers”, e sua própria descrição contabiliza cerca de 1.313 commits em aproximadamente 1.557 arquivos (+177.113 / −21.682) — cerca de 525 PRs mesclados.30 Estes são os destaques dessa descrição:
- Navegação com perfis reais sujeita a consentimento — a navegação local pode usar seu profile padrão do Chromium, com um fluxo no Windows para fechar o navegador após aprovação.30
- O Browser do desktop ganha sua própria janela do sistema operacional, além de um mecanismo gerenciado de atualização remota do SSH e uma barra de profiles da frota.30
- Expansão do catálogo remoto do MCP: mais de 50 servidores hospedados por fornecedores e verificados em operação, incluindo Cloudflare, Grafana Cloud, Better Stack e Railway.30
- Criptografia opcional dos segredos armazenados usando o chaveiro do sistema operacional — sem mais solicitações do Keychain do macOS a cada inicialização.30
- Novos modelos nos seletores: GLM-5.3-Flash, MiniMax M3 gratuito e MiniMax H3 Max video.30
- Cache de resultados com TTL para
web_search/web_extractetool_searchcom várias consultas e stemming.30 - A compressão lean-tail agora é o padrão — a seção Compressão de contexto abaixo documenta a configuração dessa tag.3031
- Os backends de terminal passaram a aceitar plugins — veja Backends de terminal.3032
- Transparência do atualizador e da frota: os atualizadores pausam os gateways pelo socket de controle em vez de encerrar suas árvores de processos, e instalações gerenciadas por imagens ou pacotes recusam atualizações inseguras no próprio local.30
- Confirmações persistentes de incidentes do cron, com falhas por divergência de código mais claras, controles de expansão de links no Slack e identidades de contêiner compartilhadas do Docker.30
O processo de atualização não mudou: use hermes update em uma instalação existente ou o instalador via shell em instalações novas.542330
Novidades da v0.19.0 (The Quicksilver Release)
Hermes Agent v0.19.0 (tag v2026.7.20, 20 de julho de 2026) recebe esse nome em referência à velocidade do próprio deus mensageiro: o eixo central da versão é a capacidade de resposta bruta, com uma redução de cerca de 80% no tempo até o primeiro token da primeira interação em todas as plataformas. Ao redor desse eixo estão o faturamento pelo terminal, fontes de segredos de gerenciadores de senhas, aprovações inteligentes por padrão, subagentes observáveis e entrega de respostas resistente a falhas. O período desde a v0.18.0 é o maior da história do projeto: cerca de 2.245 commits, 1.065 PRs mesclados, 3.300 issues encerradas e mais de 450 colaboradores da comunidade.56
- Cerca de 80% mais rápido até o primeiro token, em todos os lugares. O envio a frio→despacho caiu de cerca de 4,3 s para 0,9 s tanto no CLI quanto no gateway, na TUI, no desktop e no cron — a detecção de recursos do Discord saiu do caminho crítico, a verificação do Ollama é ignorada para provedores reconhecidamente não Ollama e tarefas bloqueantes foram removidas da inicialização do agente. A latência percebida também recebeu atenção: agora, os modelos de raciocínio transmitem seus pensamentos ao vivo por padrão (
display.show_reasoningfica ATIVADO), e a caixa de resposta é renderizada a cada token, em vez de a cada linha.56 - Ondas de melhorias na renderização do desktop e da TUI. O aplicativo para desktop recebeu uma reformulação de desempenho com cerca de 20 PRs: consumo de CPU 14 vezes menor no divisor de Markdown em streaming graças à análise léxica incremental por blocos, diffs virtualizados no painel de revisão, alternância ágil entre sessões com transcrições grandes e o fim das novas renderizações da barra lateral e das linhas de ferramentas a cada token. Agora, a TUI renderiza o Markdown transmitido incrementalmente por bloco.56
- Instalações via pip e Homebrew foram descontinuadas. Os dois métodos foram marcados como instalações “legadas e sem suporte”, com remoção prevista. Essa remoção já ocorreu na v0.20.0 — os canais brew e pip/PyPI wheel foram desativados, deixando o instalador via shell, Docker e Nix como canais compatíveis.5655
- Os segredos podem vir do seu gerenciador de senhas. Uma nova interface conectável
SecretSourcebusca segredos do Bitwarden e do 1Password (referênciasop://) durante o carregamento, com vários cofres ativados simultaneamente, precedência determinística, avisos de conflito e proveniência por variável — as chaves de API não precisam mais ficar em um arquivo.envde texto simples. Futuros provedores de cofres poderão ser adicionados como plugins.56 - As aprovações inteligentes agora são o padrão. Quando Hermes quer executar um comando sinalizado, um revisor LLM independente o avalia, em vez de solicitar sua autorização para cada comando — e cada veredito se aplica somente àquele comando específico. Regras de negação definidas pelo usuário bloqueiam comandos correspondentes mesmo no modo YOLO,
/deny <reason>transmite o motivo da sua recusa para que o agente corrija o rumo, e a ação de aprovaçãopre_tool_calldo plugin (reintroduzida com chaves de regras) encaminha uma chamada de ferramenta para aprovação humana.56 - Faturamento pelo terminal:
/subscriptione/topup. Gerencie seu plano do Nous Portal sem sair do terminal — consulte seu plano e o saldo restante, veja exatamente quanto custa um upgrade ou quando um downgrade entra em vigor e aplique a alteração com a opção de desfazer. O aplicativo para desktop ganha uma aba correspondente de configurações de faturamento.56 - Acompanhe o trabalho dos subagentes e nunca perca uma resposta concluída. Os despachos de
delegate_taskretornam arquivos de transcrição ao vivo que você pode acompanhar comtail -fassim que os subagentes são iniciados — cada chamada de ferramenta, resultado e resposta transmitida, com um log legível para cada agente filho. As conclusões de delegações em segundo plano persistem entre reinicializações, e as respostas finais do gateway são registradas em um livro-razão de obrigações de entrega nostate.dbe reenviadas na próxima inicialização caso o gateway falhe durante o envio. A opção de configuraçãomax_async_childrenfoi descontinuada em favor de limites unificados de concorrência para delegações.56 - Um gateway, vários profiles. Um único gateway multiplexado que compartilha um token de bot pode encaminhar guildas, canais ou threads específicos para diferentes profiles — cada um com configurações, skills, memória e segredos totalmente isolados — com uma substituição
GATEWAY_MULTIPLEX_PROFILES. O índice de roteamento foi movido parastate.db;sessions.jsonagora é um espelho legado opcional.56 - Onda de provedores e modelos. Fireworks AI ganha suporte nativo (estimativa de custos e 2ª posição no seletor de provedores), junto com DeepInfra e Upstage Solar. Os catálogos adicionam GPT-5.6 (Sol/Terra/Luna + Pro, integrado de ponta a ponta), grok-4.5 (GA), kimi-k3 (kimi-k2.x descontinuado) e Claude Sonnet 5 totalmente integrado. Uma flag
enabled: falsepor provedor e a configuraçãoexcluded_providersremovem provedores não utilizados dos seletores e da resolução de/model.56 - O nível de esforço de raciocínio vira um controle ajustável. Os novos níveis de esforço
maxeultrachegam a todas as interfaces, com substituições por modelo nas configurações, esforço por slot nas predefinições de MoA (os consultores pensam profundamente, enquanto o sintetizador permanece rápido), esforço por tarefa para modelos auxiliares e um/reasoningcom escopo de sessão no CLI.56 - Recursos de CLI e MCP.
hermes sessions exportgera arquivos nos formatos Markdown, Quarto, HTML, somente prompt e rastreamento do Hugging Face, com uma limpeza opcional via--redact;/model --oncepermite substituir o modelo por uma única interação; invocações de slash-skills podem ser encadeadas (/skill-a /skill-b do XYZ);--safe-modeajuda na solução de problemas;hermes config get/unsetcompletam o gerenciamento de configurações;hermes servese torna um verdadeiro backend headless; e as ferramentas de MCP adotam a convenção de nomenclaturamcp__server__tool.56
Se você estiver atualizando da v0.18.x, duas mudanças merecem atenção antes de qualquer outra coisa: uma instalação via pip ou Homebrew agora gera um aviso de que é legada e não tem suporte (migre para o instalador de uma linha), e max_async_children foi descontinuado em favor dos limites unificados de concorrência para delegações. Todo o restante é aditivo — os principais motivos para atualizar são a redução de cerca de 80% na latência da primeira interação, as aprovações inteligentes e o livro-razão de entregas que torna as respostas concluídas resistentes a falhas.
Novidades da v0.18.0 (The Judgment Release)
Hermes Agent v0.18.0 (tag v2026.7.1, 1º de julho de 2026) recebe esse nome em referência ao julgamento: o agente verifica o próprio trabalho em vez de simplesmente afirmar que teve sucesso, com um raciocínio em conjunto que você realmente pode inspecionar. A versão também elimina todo o backlog P0/P1 — cerca de 692 itens de prioridade máxima resolvidos em 12 dias.22
- Mixture-of-Agents como modelo nativo. Agora, o MoA pode ser selecionado como qualquer outro modelo em todas as interfaces, e o raciocínio em conjunto fica visível: a saída completa de cada modelo de referência é renderizada em um bloco próprio e identificado, com transmissão da resposta ao vivo — você pode acompanhar o conjunto pensando, em vez de receber uma resposta mesclada e opaca.22
- Contratos de conclusão para
/goal. O agente verifica o próprio trabalho executando as verificações do projeto antes de informar que um objetivo foi concluído, em vez de simplesmente afirmar que teve sucesso — aplicando julgamento a si mesmo.22 /learn— transforme qualquer descrição em uma skill. Converta um fluxo de trabalho em uma skill reutilizável descrevendo-o; as skills geradas seguem automaticamente as convenções do CONTRIBUTING.md do repositório.22- Linha do tempo de
/journey. Um histórico visual da memória e das skills ao longo do tempo, com edição, além de um grafo de memória no desktop.22 - Distribuição de subagentes em segundo plano. Delegue várias tarefas que são executadas simultaneamente sem bloquear a conversa — o único subagente em segundo plano da v0.17.0 se transforma em uma frota.22
- Projects no desktop. Projects de programação nativos com um modelo de organização por projeto/repositório/lane.22
- Gateway com scale-to-zero. Gateways podem entrar em estado inativo quando não estão em uso e coordenar o encerramento de tarefas para implantações sem interrupção — algo relevante para quem executa Hermes como um serviço sempre ativo.22
- Suporte ao Google Vertex AI. Acesso ao Gemini por meio de contas de serviço do GCP com renovação automática de token OAuth2, passando a fazer parte do catálogo de provedores.22
- Comando de edição
/prompt. Abre$EDITORpara você compor prompts em várias linhas, em vez de ter que lutar com a linha de entrada.22
Se você estiver atualizando da v0.17.x, nada aqui quebra o CLI. Os principais motivos para atualizar são os contratos de conclusão (objetivos que verificam a si mesmos), o MoA nativo com conjuntos inspecionáveis e /learn para capturar skills.
Novidades da v0.17.0 (The Reach Release)
O Hermes Agent v0.17.0 (tag v2026.6.19, 19 de junho de 2026) recebeu esse nome devido ao alcance que o agente passou a ter — novos canais de mensagens, novos provedores de modelos e um controle mais profundo do desktop e do dashboard. Ele adiciona recursos à v0.16.x; a interface CLI permanece inalterada.21
- Novos canais de mensagens. Agora, o iMessage funciona sem um Mac como relay por meio do Photon Spectrum (OAuth com código do dispositivo,
hermes photon login); a API do WhatsApp Business Cloud é um adaptador oficial da Meta que elimina a necessidade de um processo de bridge; o SimpleX ganha grupos, anexos nativos, agrupamento de texto e aceitação automática; e o Raft passa a fazer parte dos plugins de plataforma incluídos, com um design de canal de ativação cuja privacidade é garantida por contrato.21 - Novos modelos e provedores. O catálogo agora inclui
z-ai/glm-5.2(contexto de 1M),anthropic/claude-fable-5,laguna-m.1,nemotron-3-ultraegrok-composer-2.5-fast(modelo do Cursor via OAuth da xAI, com contexto de 200k). O padrão da xAI mudou paragrok-build-0.1, e os modelos adaptativos da Anthropic agora seguem o contrato moderno de raciocínio (eles nunca enviam um camporeasoning).21 - Desktop e dashboard. O desktop adiciona subagentes em segundo plano, com “watch-windows” que transmitem a atividade delegada em tempo real (
delegate_task(background=true)), um seletor de modelos no Composer, atalhos de teclado reconfiguráveis, notificações nativas do sistema operacional, rascunhos do Composer por thread, temas do VS Code Marketplace e interface em japonês e chinês tradicional. O dashboard adiciona um construtor completo de profiles (modelos/skills/MCPs sem editar oconfig.yaml), um seletor global de profile, um Skills Hub reformulado com verificação de segurança, Automation Blueprints (templates parametrizados para formulários, comandos slash, conversas e documentação) e um login seguro que retorna 401 quando está atrás da camada de proteção OAuth.21 - Skills e ferramentas. Agora,
image_generatepode editar e transformar uma imagem de origem, não apenas criar uma do zero, em todos os provedores de imagem compatíveis; a ferramentamemoryganhou um arrayoperationspara adicionar, substituir ou remover itens em lote de forma atômica em uma única chamada; uma nova skillsimplify-codeexecuta uma etapa paralela de revisão e limpeza com três agentes, controlada por um nível de risco baseado no princípio da Cerca de Chesterton; e umwrite_approvalbooleano substitui owrite_modede três estados.21 - Arquitetura. Subagentes em segundo plano retornam imediatamente um identificador e reinserem seus resultados como um novo turno; um handler de elicitação de MCP permite solicitar confirmação durante uma chamada de ferramenta, e as ferramentas MCP que se conectam mais tarde são disponibilizadas entre os turnos (sem invalidar o cache); o cron se torna um CronScheduler conectável, com um provedor Chronos de cron gerenciado; e um novo escopo Managed (
/etc/hermes) permite que um administrador fixe configurações que o usuário não pode alterar, além de um relay Gateway-Gateway para topologias com vários gateways.21 - Novos comandos.
/version,/billing(faturamento interativo no terminal),hermes photon login(autenticação do iMessage) ehermes curator run --consolidate— agora, a consolidação precisa ser ativada explicitamente, portanto a curadoria rotineira em segundo plano não consome tokens.21 - Segurança. A v0.17.0 corrige uma forma de contornar a lista de bloqueio de escapes do shell, aplica bloqueio seguro quando módulos de aprovação ou adaptadores de gateway com políticas próprias estão ausentes, sanitiza o ambiente dos subprocessos de scripts de tarefas cron, oculta segredos nos dumps de depuração de requisições, verifica configurações stdio de MCP em busca de padrões de exfiltração e atualiza urllib3 e PyJWT para corrigir CVEs.21
Se você estiver atualizando da v0.16.x, nada disso causa incompatibilidade com a CLI; são novos canais, modelos e interfaces em torno do mesmo agente. O iMessage sem relay, os adaptadores oficiais do WhatsApp e o escopo Managed para administradores são os principais motivos para atualizar.
Novidades da v0.16.0 (The Surface Release)
O Hermes Agent v0.16.0 (tag v2026.6.5, 5 de junho de 2026) recebeu esse nome devido às novas interfaces que oferece ao agente centrado na CLI. A principal novidade é que o Hermes não se limita mais ao terminal.20
- Aplicativo desktop nativo. O Hermes Desktop é um novo aplicativo Electron para macOS, Linux e Windows, com instalação em um clique e atualização automática dentro do próprio aplicativo. Ele oferece uma janela de chat com streaming, arquivos por arrastar e soltar, colagem de imagens da área de transferência, uma paleta
Cmd+K, uma lista de sessões com arquivamento e busca e um seletor de modelos na barra de status. Ele pode se conectar a um Hermes gateway remoto por meio de uma WebSocket segura, com autenticação via OAuth ou nome de usuário e senha, hosts remotos específicos para cada profile e sessões simultâneas em vários profiles vinculadas por referências@sessionentre profiles. A interface desktop também inclui uma tradução completa para chinês simplificado (简体中文) por meio de uma camada i18n tipada (display.language; o inglês continua sendo o idioma padrão).20 - Painel administrativo no navegador. O dashboard web local deixou de ser apenas uma visualização de status e se tornou um painel administrativo completo: um catálogo de MCP com controles para ativar e desativar itens, gerenciamento de credenciais, criação de webhooks e hooks, configuração de memória, controles do gateway e uma página System com verificação antes da atualização e Debug Share em um clique. Uma nova página Channels permite configurar todas as plataformas de mensagens do gateway (Telegram, Discord, Slack e as demais) pelo navegador. Agora, a autenticação é conectável: login com nome de usuário e senha, um provedor OIDC genérico auto-hospedado,
hermes dashboard registerpara um cliente OAuth auto-hospedado e rotação de sessões por refresh token.20 - Novos comandos de CLI e slash.
/undo [N]desfaz os últimos N turnos do usuário com preenchimento prévio e exclusão reversível, e funciona na CLI, na TUI e nas plataformas de mensagens. Uma interface padrão configurável (clioutui) chega com a opção--cli; a TUI ganha um comando/modelunificado e uma sobreposição Sessions.hermes portalé um alias fácil de entender para o fluxo de integração do Nous Portal, com novos caminhos de primeira execução Quick Setup e Full Setup, além de dois novos diagnósticos:hermes prompt-sizeehermes sessions optimize.20 - Novos modelos e provedores. O seletor agora inclui
deepseek-v4-flash,MiniMax-M3(contexto de 1M, provedores nativos da MiniMax),qwen3.7-plus(Nous + OpenRouter) egemini-3.5-flash(OAuth do Gemini + chave de API). Um provedor OAuth oficial para o Grok da xAI passa a fazer parte do inicializador desktop, o seletor de modelos agora oferece busca aproximada em todas as interfaces, provedores com vários endpoints são agrupados em uma única linha e a atualização do catálogo passou de diária para horária.20 (Desde então, a v0.21.1 alterou novamente a frequência: os catálogos remotos do seletor são atualizados a cada 20 minutos,model_catalog.ttl_minutes.46) - Skills mais enxutas e divulgação progressiva. O conjunto padrão de skills deixou de incluir skills redundantes e inativas (o Spotify migrou para um plugin nativo, o Linear para
hermes mcp install lineare várias entradas desatualizadas foram removidas), moveu outras para o conjunto opcional e adicionou um filtro de relevânciaenvironments:no frontmatter (kanban/docker/s6), que mantém as skills específicas de determinado contexto fora do índice até que sejam solicitadas.NVIDIA/skillsagora é uma fonte confiável padrão do Skills Hub, ao lado de OpenAI, Anthropic e HuggingFace. As ferramentas de MCP e de plugins ganharam divulgação progressiva (com escopo), e foi corrigido um bug de MCP que indicava falsamente o sucesso da OAuth quando nenhum token era obtido.20 - Segurança. A v0.16.0 fixa a versão corrigida do Starlette (≥1.0.1) para a CVE-2026-48710 (BadHost), retira as verificações de URLs contra SSRF do event loop em caminhos assíncronos, remove o bearer token de inferência do Bedrock do ambiente dos subprocessos, adiciona
bws_cache.jsonà proteção de segurança de leitura de arquivos, incluidocker restart/stop/killna lista de padrões perigosos e sanitiza caracteres Unicode invisíveis no conteúdo de skills verificadas. A versão corrigiu 2 problemas P0 e 62 problemas P1, dos quais 16 estavam relacionados à segurança.20
Se você estiver atualizando da v0.15.x, nada disso representa uma mudança incompatível na própria CLI; são interfaces e provedores adicionais em torno do mesmo agente. O aplicativo desktop e o painel administrativo são os motivos para atualizar se você quiser disponibilizar o Hermes a usuários que não utilizam o terminal ou administrar um gateway remoto pelo navegador.
Novidades da v0.14.0 (The Foundation Release)
A v0.14.0 não gira tanto em torno de um único recurso de destaque, mas de reduzir o atrito da configuração e ampliar os ambientes em que o Hermes pode ser executado.19 As principais mudanças operacionais:
- A instalação e a inicialização estão mais leves.
pip install hermes-agentfunciona pelo PyPI, adaptadores pesados são instalados sob demanda no primeiro uso, e o fluxo de inicialização posterga trabalho suficiente para reduzir a inicialização a frio em cerca de 19 segundos. (Desde então, a v0.19.0 descontinuou as instalações via pip — consulte Instalação.) - Assinaturas podem se transformar em endpoints API locais.
hermes proxytransforma provedores baseados em OAuth, como Claude Pro, ChatGPT Pro e SuperGrok, em um endpoint local compatível com OpenAI para ferramentas como Codex, Aider, Cline e Continue. - O alcance do gateway aumenta. LINE e SimpleX Chat passam a integrar o gateway (a tabela de comparação de plataformas da documentação lista 28 plataformas na tag
v2026.8.31; a seção Gateway de mensagens explica o que esse número inclui), o Microsoft Teams recebe integração de ponta a ponta, o preenchimento retroativo do histórico do Discord vem ativado por padrão e as solicitaçõesclarifydo Telegram/Discord agora usam botões nativos. - A verificação após a gravação melhora. Depois das edições, o Hermes pode exibir resumos das alterações em arquivos por turno e diagnósticos semânticos do servidor de linguagem antes do próximo turno, aproximando-se de um trabalho de agente baseado em evidências.
- As ferramentas de desktop e mídia foram ampliadas.
computer_usefunciona por meio do cua-driver para provedores que não são da Anthropic,video_generatefoi unificado por trás de backends conectáveis evision_analyzeenvia os pixels brutos aos modelos que realmente têm recursos de visão.
Instalação
O instalador de uma linha é o método de instalação oficial. Ele cuida do Python, uv, Node.js, ripgrep, ffmpeg, da clonagem do repositório, do ambiente virtual e do comando global hermes.7
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
As instalações via pip e Homebrew estão obsoletas desde a v0.19.0. O pacote PyPI introduzido pela v0.14.0 (
pip install hermes-agent) e a fórmula do Homebrew agora são classificados como instalações “legadas sem suporte” — todas as interfaces exibem um aviso (sem bloquear a execução) quando o Hermes detecta uma delas, e está prevista a descontinuação da publicação no PyPI/Homebrew. Se você instalou via pip ou brew, migre para o instalador acima.56
Funciona no Linux, macOS, WSL2 e Android/Termux (o instalador detecta o Termux automaticamente e usa um pacote testado para Android).7 O Windows nativo agora é uma plataforma de Tier 1, e não mais a versão beta inicial lançada na v0.14.0 — instale-o com iex (irm https://hermes-agent.nousresearch.com/install.ps1). Uma ressalva que a documentação deixa clara: o suporte ao macOS é exclusivo para Apple Silicon, e Macs com processadores Intel não são compatíveis.55 Historicamente, a v0.14.0 adicionou suporte nativo ao Windows em versão beta inicial por meio de um instalador PowerShell, mas o WSL2 continua sendo a recomendação mais segura para uso em produção até que a opção para Windows amadureça.19
Após a conclusão:
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
O único pré-requisito é o git. O instalador provisiona automaticamente o Python 3.11 por meio do uv (sem exigir sudo), o Node.js 26 (para automação de navegador e a ponte do WhatsApp), o ripgrep e o ffmpeg. O Node 26 é a versão mínima obrigatória desde a v0.20.0 — o instalador rejeita qualquer versão anterior e instala uma versão do Node gerenciada pelo Hermes.557
Verifique a instalação
hermes --version # Check version (global flag; there is no `version` subcommand)
hermes doctor # Diagnose config/dependency issues
hermes status # Show current configuration + auth state
hermes dump # Copy-pasteable setup summary for debugging
O hermes doctor informa exatamente o que está faltando e como corrigir o problema.7 O hermes dump é o comando de diagnóstico que você deve colar em uma issue do GitHub ou em uma conversa no Discord ao pedir ajuda — ele gera um resumo em texto simples de toda a sua configuração, com os dados secretos ocultados.8
Instalação manual
Se você precisar de controle total — uma versão personalizada do Python, extras específicos ou integração com Nix/NixOS —, o processo manual está documentado passo a passo no guia de instalação oficial.7 Estes são os principais extras opcionais que você pode combinar com uv pip install -e ".[<extras>]":
| Extra | O que adiciona |
|---|---|
all |
Tudo abaixo |
messaging |
gateway para Telegram e Discord |
cron |
Processamento de expressões cron |
cli |
Interface de menu no terminal para o assistente de configuração |
modal |
Backend de execução na nuvem Modal |
voice |
Entrada de microfone CLI + reprodução de áudio |
tts-premium |
Vozes premium do ElevenLabs |
honcho |
Memória nativa para IA (integração com Honcho) |
mcp |
Suporte ao Model Context Protocol |
homeassistant |
Integração com Home Assistant |
acp |
Suporte à integração com editores via ACP |
slack |
Mensagens pelo Slack |
pty |
Suporte a terminal PTY (ferramentas interativas CLI) |
dev |
pytest e utilitários de teste |
termux |
Pacote testado para Android (inclui cron, cli, pty, mcp, honcho, acp) |
O comando de instalação no Termux é diferente — ele usa pip com um arquivo de restrições, não uv pip:
python -m pip install -e ".[termux]" -c constraints-termux.txt
Isso ocorre porque .[all] no Android instala o faster-whisper por meio do extra voice, que depende de wheels do ctranslate2 que não são publicados para Android.7
Autenticação e provedores
Na tag v2026.9.7, hermes_cli/models_catalog_static.py contém 39 entradas estáticas de CANONICAL_PROVIDERS na linha 311 (a reorganização de setembro de 2026 moveu a lista para fora de hermes_cli/models.py; as entradas em si não mudaram, incluindo tencent-tokenplan da v0.21.0) e amplia automaticamente essa lista com base em plugins/model-providers/ (39 diretórios incluídos; nove deles — actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage — não têm uma entrada estática e são incorporados pela extensão automática porque usam o tipo de autenticação padrão api_key). As tabelas da página de documentação sobre provedores incluem 45 provedores de nuvem e assinatura, além de uma linha para endpoints personalizados, e apresentam separadamente os servidores locais e auto-hospedados (Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM, ClawRouter e qualquer endpoint compatível com OpenAI).26 Na tag v2026.9.24, a lista estática ainda contém 39 entradas, mas plugins/model-providers/ contém 38 diretórios: o provedor sem chave opencode-free foi removido em 18 de setembro porque o nível gratuito do OpenCode passou a rejeitar tráfego anônimo vindo de fora do próprio cliente.53 Além disso, há endpoints personalizados e três caminhos distintos de autenticação. A seguir está toda a superfície de autenticação, organizada por caminho para que você encontre aquele que corresponde ao que tem disponível.
Os três caminhos de autenticação
Todos os provedores do Hermes se encaixam em um destes três padrões de autenticação:
Caminho 1 — chave de API no .env. Coloque sua chave em ~/.hermes/.env, e o Hermes a lerá na inicialização. Esse caminho é usado por OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (e MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini e pela maioria dos provedores de terceiros.2 Desde a v0.19.0, a chave não precisa mais ficar em um arquivo de texto simples: uma interface conectável SecretSource pode buscar segredos no Bitwarden ou 1Password (referências op://) durante o carregamento, com vários cofres ativados simultaneamente, precedência determinística, avisos de conflito e rastreabilidade da origem de cada variável — o .env continua sendo a alternativa. (Isso é diferente do token de bootstrap do Bitwarden Secrets Manager introduzido na v0.15.0, que consolidava as chaves dos provedores por trás de um único token; o SecretSource substitui o próprio arquivo de texto simples, e futuros provedores de cofres podem ser adicionados como plugins.)56
Caminho 2 — OAuth via hermes model ou hermes auth. Inicia um fluxo de código de dispositivo, abre um navegador, armazena as credenciais em ~/.hermes/auth.json (e pode importar credenciais existentes de ferramentas como Claude Code ou Codex CLI). É usado por Nous Portal, OpenAI Codex (conta do ChatGPT), GitHub Copilot e Anthropic (Claude Pro/Max).2
Caminho 3 — endpoint personalizado no config.yaml. Para qualquer API compatível com OpenAI — Ollama, vLLM, SGLang, llama.cpp, LM Studio, proxy LiteLLM, Together AI, Groq, Azure OpenAI ou seu próprio servidor auto-hospedado. Configure uma vez em hermes model → Custom endpoint; depois, a configuração será salva no config.yaml.2
A matriz completa de provedores
Esta matriz abrange os provedores presentes nas tabelas da página de documentação, com o fluxo exato de configuração de cada um; o seletor da tag lista mais provedores do que a documentação (consulte a contagem acima), e qualquer serviço compatível com OpenAI pode usar a linha de endpoint personalizado.226
| Provedor | Caminho de autenticação | Configuração |
|---|---|---|
| Nous Portal | OAuth | hermes model (login com OAuth, baseado em assinatura) |
| OpenAI Codex | OAuth | hermes model (código de dispositivo do ChatGPT, usa modelos Codex) |
| GitHub Copilot | OAuth ou token | hermes model (código de dispositivo com OAuth), ou COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token |
| GitHub Copilot ACP | Subprocesso local | hermes model (requer o CLI copilot no PATH + copilot login) |
| Anthropic | OAuth ou chave de API | hermes model (prioriza as credenciais do Claude Code), ou ANTHROPIC_API_KEY, ou token de configuração ANTHROPIC_TOKEN |
| OpenRouter | Chave de API | OPENROUTER_API_KEY em ~/.hermes/.env |
| AI Gateway (Vercel) | Chave de API | AI_GATEWAY_API_KEY em ~/.hermes/.env (provedor: ai-gateway) |
| z.ai / GLM (ZhipuAI) | Chave de API | GLM_API_KEY em ~/.hermes/.env (provedor: zai) |
| Kimi / Moonshot | Chave de API | KIMI_API_KEY em ~/.hermes/.env (provedor: kimi-coding). A v0.19.0 adiciona o kimi-k3 aos catálogos (o kimi-k2.x foi descontinuado).56 |
| MiniMax (global) | Chave de API | MINIMAX_API_KEY em ~/.hermes/.env (provedor: minimax) |
| MiniMax China | Chave de API | MINIMAX_CN_API_KEY em ~/.hermes/.env (provedor: minimax-cn) |
| Alibaba Cloud (Qwen) | Chave de API | DASHSCOPE_API_KEY em ~/.hermes/.env (provedor: alibaba, aliases: dashscope, qwen) |
| Kilo Code | Chave de API | KILOCODE_API_KEY em ~/.hermes/.env (provedor: kilocode) |
| OpenCode Zen | Chave de API | OPENCODE_ZEN_API_KEY em ~/.hermes/.env (provedor: opencode-zen) |
| OpenCode Go | Chave de API | OPENCODE_GO_API_KEY em ~/.hermes/.env (provedor: opencode-go) |
| DeepSeek | Chave de API | DEEPSEEK_API_KEY em ~/.hermes/.env (provedor: deepseek) |
| Hugging Face | Chave de API | HF_TOKEN em ~/.hermes/.env (provedor: huggingface, alias: hf) |
| Google / Gemini | Chave de API | GOOGLE_API_KEY ou GEMINI_API_KEY em ~/.hermes/.env (provedor: gemini) |
| Fireworks AI | Chave de API | Provedor nativo com estimativa de custos e colunas de preços em cache no seletor de modelos; promovido para a 2ª posição nos seletores de provedores. Novo na v0.19.0.56 |
| DeepInfra | Chave de API | Provedor nativo com uma integração reforçada. Novo na v0.19.0.56 |
| Upstage Solar | Chave de API | Provedor nativo. Novo na v0.19.0.56 |
| xAI (Grok) | Provedor nativo / OAuth do SuperGrok | Provedor nativo com acesso direto por API e catálogo de modelos (v0.9.0+). A v0.14.0 adiciona OAuth do SuperGrok e amplia a janela de contexto do grok-4.3 para 1 milhão em contas qualificadas.21619 A v0.17.0 adiciona grok-composer-2.5-fast (modelo do Cursor via OAuth da xAI, com contexto de 200 mil) e altera o padrão da xAI para grok-build-0.1.21 A v0.19.0 promove o grok-4.5 para disponibilidade geral no catálogo.56 |
| xAI Custom Voices | Chave de API | Provedor de TTS com clonagem de voz. Novo na v0.13.0; configure em tts: no config.yaml e forneça a chave da xAI no .env.18 |
| Xiaomi MiMo | Provedor nativo | Provedor nativo com assistente de configuração e catálogo de modelos. MiMo v2 Pro gratuito no Nous Portal para tarefas auxiliares (v0.9.0+).1615 |
| Google AI Studio | Chave de API | GOOGLE_API_KEY ou GEMINI_API_KEY em ~/.hermes/.env. Acesso direto ao Gemini com tamanhos de contexto detectados automaticamente pelo registro models.dev (v0.8.0+).15 |
| Qwen OAuth (Portal) | OAuth | hermes model → “Qwen OAuth (Portal)” (provedor: qwen-oauth; login PKCE pelo navegador que reutiliza um login local do Qwen CLI). Provedor de OAuth com suporte a solicitações pelo portal (v0.8.0+). O caminho do DashScope com chave de API acima foi renomeado de Alibaba Cloud para Qwen Cloud na v0.14.0; as chaves de configuração existentes continuam funcionando.151926 |
| OpenCode Free (removido) | Sem chave | Removido em 18 de setembro de 2026 e ausente das tags v2026.9.21 e v2026.9.24. Uma configuração que ainda indique opencode-free, free ou opencode_free recebe um erro informando a remoção; mude para opencode-zen (pagamento conforme o uso, OPENCODE_ZEN_API_KEY) ou opencode-go (assinatura, OPENCODE_GO_API_KEY) usando hermes model. O provedor havia sido lançado durante o ciclo da v0.20.5 como “the opencode-free zero-auth provider”.2353 |
| OpenAI API (direto) | Chave de API | OPENAI_API_KEY em ~/.hermes/.env (provedor: openai-api, OPENAI_BASE_URL opcional)26 |
| Google Vertex AI | OAuth2 / ADC | hermes model → “Google Vertex AI” (provedor: vertex; OAuth2 por meio do JSON de uma conta de serviço ou Application Default Credentials, cobrado do seu projeto do GCP)26 |
| Azure AI Foundry | Endpoint + chave | hermes model → “Azure AI Foundry” (provedor: azure-foundry; usa seu endpoint e sua chave do Azure OpenAI / Foundry; o seletor o descreve como “endpoint no estilo OpenAI ou Anthropic”)26 |
| AWS Bedrock | Credenciais da AWS | hermes model → “AWS Bedrock” (provedor: bedrock; cadeia padrão de credenciais da AWS via boto3, IAM ou chave de API; Claude, Nova, Llama, DeepSeek)26 |
| NVIDIA NIM / Build | Chave de API | NVIDIA_API_KEY em ~/.hermes/.env (provedor: nvidia; Nemotron e outros modelos hospedados pelo NIM no build.nvidia.com, ou um endpoint NIM local por meio da substituição da URL base)26 |
| Ollama Cloud | OAuth ou chave de API | hermes model → “Ollama Cloud” (provedor: ollama-cloud; cole OLLAMA_API_KEY e escolha entre os modelos hospedados na nuvem encontrados)26 |
| StepFun Step Plan | Chave de API | STEPFUN_API_KEY em ~/.hermes/.env (provedor: stepfun; modelos de agentes e programação por meio da API do Step Plan)26 |
| MiniMax (OAuth) | OAuth | hermes model → “MiniMax (OAuth)” (provedor: minimax-oauth; login PKCE pelo navegador para o Coding Plan, na região global ou CN)26 |
| Meta AI | Chave de API | MODEL_API_KEY em ~/.hermes/.env (provedor: meta-ai; API do Meta Model, família Muse Spark)26 |
| NovitaAI | Chave de API | NOVITA_API_KEY em ~/.hermes/.env (provider: novita; mais de 200 modelos, Model API, Agent Sandbox, GPU Cloud)26 |
| Arcee AI | Chave de API | ARCEEAI_API_KEY em ~/.hermes/.env (provider: arcee; aliases: arcee-ai, arceeai; modelos Trinity)26 |
| GMI Cloud | Chave de API | GMI_API_KEY em ~/.hermes/.env (provider: gmi; aliases: gmi-cloud, gmicloud). Use o ID exato do modelo retornado pelo endpoint /v1/models da GMI26 |
| Actual Computer | Chave de API ou daemon local | ACTUAL_API_KEY em ~/.hermes/.env para o relay hospedado ou ACTUAL_BASE_URL=http://127.0.0.1:8080 para o daemon local sem chave no loopback (provider: actual; aliases: actual-computer, actualcomputer, aci)26 |
| Tencent TokenHub | Chave de API | TOKENHUB_API_KEY em ~/.hermes/.env (provider: tencent-tokenhub; aliases: tencent, tokenhub, tencentmaas; Hy3 Preview)26 |
| CommandCode | Chave de API | COMMANDCODE_API_KEY em ~/.hermes/.env (provider: commandcode, alias commandcode-chat; modelos Claude via commandcode-anthropic, alias commandcode-claude). Funciona com os planos GOAT/Pro/Max/Provider, mas não com o plano Go de US$ 1, que não oferece acesso à API. O plugin foi lançado no período da v0.20.3.5426 |
| Alibaba Cloud (Coding Plan) | Chave de API | DASHSCOPE_API_KEY (provider: alibaba-coding-plan, alias alibaba_coding); uma SKU de cobrança separada, em um endpoint diferente do provider alibaba do DashScope26 |
| Tencent TokenPlan | Chave de API | TOKENPLAN_API_KEY em ~/.hermes/.env (provider: tencent-tokenplan, aliases: tokenplan, tencent-lkeap; prévia do Hy4 pelo endpoint Messages da Anthropic em api.lkeap.cloud.tencent.com). Novo na v0.21.0; o seletor agrupa TokenHub e TokenPlan em uma única linha de exibição chamada “Tencent Hy”3536 |
| Nebius Token Factory | Chave de API | NEBIUS_API_KEY em ~/.hermes/.env (provider: nebius-token-factory; aliases: nebius, nebius-tf, tokenfactory). Novo na v0.21.03536 |
| Ramp Router | Chave de API | RAMP_ROUTER_API_KEY em ~/.hermes/.env (provider: router; aliases: ramp-router, ramp, router.com). Gateway LLM nativo do OpenAI Responses da Ramp em api.router.com, com um catálogo ativo específico da conta — os IDs de modelo válidos são os retornados por /v1/models para a sua chave, então o seletor os busca em vez de fixá-los no código. Novo na v0.21.03536 |
| Alibaba Cloud (Token Plan) | Chave de API | ALIBABA_TOKEN_PLAN_API_KEY em ~/.hermes/.env (provider: alibaba-token-plan; endpoint da China continental: alibaba-token-plan-cn) — a modalidade de tokens por preço fixo do Model Studio, uma terceira SKU da Alibaba ao lado de alibaba e alibaba-coding-plan36 |
| Endpoint personalizado | config.yaml | hermes model → “Custom endpoint” (salvo em config.yaml). A lista de serviços compatíveis com OpenAI na documentação inclui Together AI, Groq, Cerebras (https://api.cerebras.ai/v1), Mistral, Azure OpenAI, LocalAI e Jan26 |
Desde a v0.19.0, você também pode ocultar os providers que não usa: uma flag enabled: false para cada provider e uma chave de configuração excluded_providers os removem dos seletores de /model e da resolução integrada de providers.56 |
Anthropic: três métodos de autenticação
A Anthropic tem uma seção própria porque o Hermes oferece três caminhos distintos para acessar a Claude, e escolher o correto faz diferença. Segundo a documentação upstream:2
# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6
# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model
# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic
# Auto-detect Claude Code credentials
hermes chat --provider anthropic # reads Claude Code files automatically
Quando você escolhe a OAuth da Anthropic pelo hermes model, o Hermes prioriza o armazenamento de credenciais do próprio Claude Code em vez de copiar o token para ~/.hermes/.env. Assim, as credenciais atualizáveis da Claude continuam podendo ser renovadas.2 Se você já usa o Claude Code na mesma máquina, esse é o caminho mais simples.
Para fixar permanentemente a Anthropic no config.yaml:
model:
provider: "anthropic"
default: "claude-sonnet-4-6"
--provider claude e --provider claude-code também funcionam como atalhos para --provider anthropic.2
Copilot da GitHub: dois modos
O Copilot é compatível com dois modos: API direta do Copilot (recomendado) e Copilot ACP (que inicia a CLI local do Copilot como um subprocesso).2
# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4
# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp
Segundo a documentação upstream, a autenticação é verificada nesta ordem:2
1. Variável de ambiente COPILOT_GITHUB_TOKEN
2. Variável de ambiente GH_TOKEN
3. Variável de ambiente GITHUB_TOKEN
4. Fallback para gh auth token na CLI
5. Login por código de dispositivo da OAuth via hermes model
O tipo de token é importante. A API do Copilot não aceita Personal Access Tokens clássicos (ghp_*). Os tipos compatíveis são tokens da OAuth (gho_*), PATs refinados (github_pat_* com a permissão Copilot Requests) e tokens de App da GitHub (ghu_*). Se o comando gh auth token retornar um token ghp_*, use hermes model para se autenticar pela OAuth.2
Providers chineses de IA (suporte nativo)
O Hermes oferece suporte integrado a z.ai/GLM, Kimi/Moonshot, MiniMax (endpoints globais e da China) e Alibaba Cloud, com IDs de provider dedicados.2
# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5 # Requires: GLM_API_KEY
# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding # Requires: KIMI_API_KEY
# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7 # Requires: MINIMAX_API_KEY
# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7 # Requires: MINIMAX_CN_API_KEY
# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus # Requires: DASHSCOPE_API_KEY
As URLs-base podem ser substituídas pelas variáveis de ambiente GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL ou DASHSCOPE_BASE_URL.2
O Z.AI detecta o endpoint automaticamente. Ao usar o provider z.ai/GLM, o Hermes testa vários endpoints (globais, da China e variantes para programação) para encontrar um que aceite a sua chave de API. O endpoint funcional é armazenado em cache automaticamente — a maioria dos usuários não precisa definir GLM_BASE_URL.2
A xAI (Grok) ativa automaticamente o cache de prompts. Quando a URL-base contém x.ai, o Hermes envia o cabeçalho x-grok-conv-id em todas as solicitações para encaminhá-las ao mesmo servidor durante uma sessão de conversa, reutilizando os prompts de sistema e o histórico armazenados em cache.2 É automático; nenhuma configuração é necessária.
O comando hermes auth
hermes auth é o comando de gerenciamento de credenciais para pools e credenciais da OAuth.6
hermes auth # Interactive wizard
hermes auth list # Show all credential pools
hermes auth list openrouter # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2 # Remove by index
hermes auth reset openrouter # Clear cooldowns
Os pools de credenciais permitem alternar entre várias chaves de API ou tokens da OAuth para o mesmo provider — algo útil para distribuir os limites de uso entre várias chaves sem alterar o código.6 Os comandos legados hermes login / hermes logout foram removidos; use hermes auth no lugar deles.6
Endpoints personalizados e auto-hospedados
O Hermes funciona com qualquer endpoint de API compatível com OpenAI. Se um servidor implementar /v1/chat/completions, você poderá direcionar o Hermes para ele.2
Configuração interativa (recomendada):
hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name
Configuração manual no config.yaml:
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
As duas abordagens salvam as configurações no config.yaml, que é a única fonte da verdade para o modelo principal, o provider e a URL-base.2 As variáveis de ambiente legadas OPENAI_BASE_URL e LLM_MODEL não são mais lidas para configurar o modelo principal — use hermes model ou edite o config.yaml diretamente.2 (OPENAI_BASE_URL + OPENAI_API_KEY ainda são aceitas como fallback para o caminho de roteamento auxiliar provider: "main", portanto, não as exclua sem verificar se você as usa nesse contexto.)4
Como alternar endpoints personalizados durante uma sessão:
/model custom:qwen-2.5 # Custom endpoint with explicit model
/model custom # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5 # Named custom provider "local"
/model custom:work:llama3 # Named custom provider "work"
/model openrouter:claude-sonnet-4 # Back to a cloud provider
/model custom (sem o nome do modelo) consulta o API /v1/models do seu endpoint e seleciona automaticamente o modelo caso apenas um esteja carregado — útil para servidores locais que executam um único modelo.2
Servidores LLM locais (modelos de configuração)
A documentação upstream contém guias completos de configuração para Ollama, vLLM, SGLang, llama.cpp e LM Studio. Veja os principais comandos que você realmente vai executar. Cada um foi criado para produzir um endpoint funcional para o qual o Hermes possa apontar.2
Ollama — o caminho local mais fácil, sem nenhuma configuração:
ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve # Raise from 4k default
hermes model # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b
Armadilha crítica do Ollama: por padrão, o Ollama usa janelas de contexto muito pequenas (4.096 tokens com menos de 24 GB de VRAM). Você precisa aumentá-las por meio de OLLAMA_CONTEXT_LENGTH ou de um Modelfile — o API compatível com OpenAI não aceita o tamanho do contexto enviado pelo cliente, portanto o Hermes não pode configurá-lo para você.2 Para usar com agentes, defina pelo menos 16k–32k.
vLLM — servidor GPU de alto desempenho:
pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--port 8000 \
--max-model-len 65536 \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser hermes
As chamadas de ferramentas exigem --enable-auto-tool-choice e --tool-call-parser <name>. Parsers compatíveis: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Sem essas flags, as chamadas de ferramentas serão retornadas como texto simples.2
SGLang — servidor rápido com RadixAttention para reutilização do cache KV:
pip install "sglang[all]"
python -m sglang.launch_server \
--model meta-llama/Llama-3.1-70B-Instruct \
--port 30000 \
--context-length 65536 \
--tp 2 \
--tool-call-parser qwen
Armadilha do SGLang: o valor padrão de max_tokens é 128. Defina --default-max-tokens no servidor ou configure model.max_tokens no config.yaml se as respostas estiverem sendo cortadas.2
llama.cpp / llama-server — CPU e Metal no Apple Silicon:
./build/bin/llama-server \
--jinja -fa \
-c 32768 \
-ngl 99 \
-m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
--port 8080 --host 0.0.0.0
--jinja é obrigatório para chamadas de ferramentas. Sem essa opção, o llama-server ignora completamente o parâmetro tools, e o modelo tenta chamar ferramentas escrevendo JSON no texto da resposta — algo que o Hermes não consegue interpretar como chamadas de ferramentas reais.2
LM Studio — aplicativo para desktop com interface gráfica:
Inicie o servidor pelo aplicativo LM Studio (aba Developer → Start Server) ou pelo CLI: lms server start (inicia na porta 1234) e lms load qwen2.5-coder --context-length 32768.2 Depois, aponte hermes model para http://localhost:1234/v1.
Armadilha crítica do LM Studio: o LM Studio lê o tamanho do contexto nos metadados do modelo, mas muitos modelos GGUF informam valores padrão de 2048 ou 4096. Sempre defina explicitamente o tamanho do contexto nas configurações de modelo do LM Studio — clique no ícone de engrenagem ao lado do seletor de modelos, defina “Context Length” como pelo menos 16384 (de preferência 32768) e recarregue o modelo.2
Provedores personalizados nomeados
Se você trabalha com vários endpoints personalizados (por exemplo, um servidor local de desenvolvimento e um servidor GPU remoto), defina-os como provedores personalizados nomeados no config.yaml:2
custom_providers:
- name: local
base_url: http://localhost:8080/v1
# api_key omitted — Hermes uses "no-key-required" for keyless local servers
- name: work
base_url: https://gpu-server.internal.corp/v1
api_key: corp-api-key
api_mode: chat_completions # optional, auto-detected from URL
- name: anthropic-proxy
base_url: https://proxy.example.com/anthropic
api_key: proxy-key
api_mode: anthropic_messages # for Anthropic-compatible proxies
Depois, alterne entre eles durante a sessão com a sintaxe tripla:
/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4
Você também pode selecionar provedores personalizados nomeados no menu interativo de hermes model.2
Arquitetura de provedores extensível (v0.13.0+)
A v0.13.0 inclui uma ABC ProviderProfile e uma pasta plugins/model-providers/, permitindo adicionar provedores de inferência de terceiros sem modificar o núcleo.18 Se um provedor oferece um modo de API compatível com OpenAI, Anthropic ou Codex, você pode implementar uma subclasse de ProviderProfile que declare o fluxo de autenticação, a URL base, o catálogo de modelos e os cabeçalhos de cache; o Hermes faz a resolução pelo mesmo fluxo de runtime_provider.py usado pelos provedores integrados. Essa é a mudança arquitetural por trás da expansão de provedores na v0.13.0: em vez de editar o código principal para adicionar um provedor, você distribui um plugin.
Proxy local compatível com OpenAI (v0.14.0+)
hermes proxy disponibiliza um endpoint local compatível com OpenAI, apoiado pelo provedor OAuth no qual o Hermes já está autenticado — Claude Pro, ChatGPT Pro, SuperGrok ou outro provedor compatível configurado.19 Isso significa que ferramentas que esperam um API no estilo OpenAI, incluindo Codex CLI, Aider, Cline, Continue ou scripts personalizados, podem reutilizar sua autenticação do Hermes vinculada à assinatura sem precisar de uma chave API separada. Trate o proxy como infraestrutura local de desenvolvimento: vincule-o a uma interface de rede de forma intencional, não o exponha amplamente e considere os termos específicos do provedor.
Detecção do tamanho do contexto
Segundo a documentação upstream, duas configurações são confundidas constantemente:2
context_length— a janela de contexto total (orçamento combinado de tokens de entrada e saída, por exemplo, 1.000.000 para Claude Opus 4.7 ou 200.000 para Sonnet 4.6). O Hermes usa esse valor para decidir quando comprimir o histórico.model.max_tokens— o limite de saída (número máximo de tokens que o modelo pode gerar em uma única resposta). Não está relacionado ao tamanho do histórico.
Defina context_length quando a detecção automática identificar incorretamente o tamanho da janela:
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
O Hermes usa uma cadeia de resolução com várias fontes para detectar janelas de contexto: substituição na configuração → configuração por modelo do provedor personalizado → cache persistente → /models do endpoint → /v1/models do Anthropic → API do OpenRouter → Nous Portal → models.dev (registro mantido pela comunidade com mais de 3.800 modelos) → valores padrão de fallback (128K).2 O sistema considera o provedor, portanto o mesmo modelo pode ter limites de contexto diferentes dependendo de quem o fornece (por exemplo, claude-opus-4.6 tem 1M diretamente no Anthropic, mas 128K no GitHub Copilot).2
Roteamento inteligente de modelos: rotação de provedores e fallback
O Hermes não limita você a um modelo em um único provedor. Roteamento inteligente de modelos é o conjunto de mecanismos que decide qual provedor e modelo realmente atende a uma determinada solicitação: pools de credenciais distribuem a carga entre as chaves, um fallback configurado assume quando o provedor principal falha e os slots auxiliares abaixo encaminham tarefas secundárias para modelos mais baratos, independentemente do seu modelo principal.26 Configure esses três recursos em conjunto – eles fazem a diferença entre um agente que para ao atingir um limite de requisições e outro que continua trabalhando.
Pools de credenciais. Quando você tem várias chaves API para o mesmo provedor, configure uma estratégia de rotação por meio de hermes auth. É assim que você distribui os limites de requisições entre várias chaves.6
Modelo de fallback. Configure um provider:model alternativo, para o qual o Hermes muda automaticamente quando o modelo principal falha (limites de requisições, erros do servidor ou falhas de autenticação):2
fallback_model:
provider: openrouter # required
model: anthropic/claude-sonnet-4 # required
# base_url: http://localhost:8000/v1 # optional, for custom endpoints
# api_key_env: MY_CUSTOM_KEY # optional, env var name
O fallback troca o modelo e o provedor durante a sessão sem perder sua conversa. Ele é acionado no máximo uma vez por sessão.2 Provedores compatíveis com fallback: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2
Modelos auxiliares
O Hermes usa modelos “auxiliares” para tarefas secundárias: análise de imagens (visão), classificação de aprovação de comandos perigosos, compressão de contexto, geração de títulos de sessões, inserção de tags de áudio TTS, correspondência de skills, encaminhamento de ferramentas MCP e a família de especificadores/decompositores do Kanban.434 Por padrão (auxiliary.*.provider: "auto"), todas as tarefas auxiliares são executadas pelo seu modelo principal de chat – o mesmo provedor/modelo que você escolheu em hermes model. A documentação deixa claro que isso substituiu a antiga detecção automática de provedores baratos: “Versões anteriores direcionavam usuários de agregadores (OpenRouter, Nous Portal) para uma opção padrão barata do provedor. Isso era inesperado … agora, auto usa o modelo principal para todos, e as substituições por tarefa no config.yaml continuam prevalecendo.”34 Você não precisa configurar nada para começar; a desvantagem é o custo – em modelos de raciocínio caros, as tarefas auxiliares geram gastos consideráveis, portanto direcione tarefas específicas para modelos rápidos e baratos quando isso for importante.
Duas antigas tarefas auxiliares deixaram de usar qualquer LLM: a extração da web (“web_extract e os snapshots do navegador truncam conteúdos longos de forma determinística e armazenam o texto completo para paginação com read_file – sem envolver LLM”) e a busca de sessões (a ferramenta de formato único retorna o conteúdo do banco de dados diretamente). Os antigos blocos auxiliary.web_extract.* e auxiliary.session_search.* foram removidos das configurações padrão – valores remanescentes em um config.yaml existente são “resíduos inofensivos e ignorados” – e o slot flush_memories também não está presente nas configurações padrão dessa tag.34
Você pode configurar o modelo e o provedor usados por cada tarefa auxiliar. Todos os slots auxiliares usam as mesmas opções: provider, model, base_url (além de api_key, timeout, extra_body e um reasoning_effort específico para cada tarefa).434
auxiliary:
vision: # vision_analyze + browser screenshots
provider: "auto" # "auto" (= main model), "openrouter", "nous", "main", etc.
model: "" # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
base_url: "" # Custom OpenAI-compatible endpoint
api_key: "" # Falls back to OPENAI_API_KEY
timeout: 120
download_timeout: 30
approval: # dangerous-command approval classifier
provider: "auto"
model: ""
timeout: 30
compression: # summarizer -- legacy compression.summary_* keys migrate here (config v17)
provider: "auto"
model: ""
base_url: ""
timeout: 120
title_generation: # auto-generated session titles after the first exchange
enabled: true # set false to disable auto-titles
provider: "auto"
model: ""
language: "" # empty follows the conversation; e.g. "English" pins titles to one language
tts_audio_tags: { provider: "auto", model: "" } # Gemini 3.1 TTS hidden audio-tag insertion
skills_hub: { provider: "auto", model: "" } # skill matching and search
mcp: { provider: "auto", model: "" } # MCP tool dispatch
triage_specifier: { provider: "auto", model: "" } # hermes kanban specify: rough one-liner into a concrete spec, promoted to todo
kanban_decomposer: { provider: "auto", model: "" } # hermes kanban decompose: triage task into a graph of child tasks routed to specialist profiles
profile_describer: { provider: "auto", model: "" } # hermes profile describe --auto: 1-2 sentence profile descriptions
Outros slots especializados seguem o mesmo formato – goal_judge (avalia se o contrato de /goal foi cumprido), curator (o fork de revisão do uso de skills), background_review (o fork de autoaperfeiçoamento executado após o turno), review (o subagente revisor de /review), moa_reference e moa_aggregator (Mixture-of-Agents), memory_query_rewrite e monitor – e você não precisa editar YAML manualmente: execute hermes model e escolha “Configure auxiliary models” para abrir um seletor interativo por tarefa.34
A opção de provedor "main" significa “usar o mesmo provedor que o meu agente principal usa” – válida somente em auxiliary:, compression: e nas entradas principais de fallback (fallback_providers: ou o antigo fallback_model:). Ela não é válida na configuração de nível superior model.provider. Se você usar um endpoint personalizado compatível com OpenAI como modelo principal, defina provider: custom na seção model:.4
Por que isso importa: como auto já usa o seu modelo principal, a antiga armadilha de “configure o OpenRouter ou as tarefas auxiliares perderão recursos silenciosamente” deixou de existir – agora, o ponto de atenção é o custo. Se o seu modelo principal for um modelo de raciocínio caro, encaminhe as tarefas secundárias mais frequentes para algo barato e rápido:
auxiliary:
vision:
provider: "openrouter"
model: "google/gemini-2.5-flash"
compression:
provider: "openrouter"
model: "google/gemini-2.5-flash"
Sistema de configuração
O Hermes tem um sistema de configuração em camadas. Entender a ordem de precedência é essencial, pois as camadas superiores substituem as inferiores, e uma delas é um registro global de provedores que você não pode ver no config.yaml.
Estrutura dos arquivos de configuração
De acordo com a documentação oficial, estes são os arquivos que compõem uma configuração do Hermes:4
~/.hermes/
├── config.yaml # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env # Secrets (API keys, bot tokens, passwords)
├── auth.json # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md # Primary agent identity (slot #1 in system prompt)
├── memories/ # Persistent memory (MEMORY.md, USER.md)
├── skills/ # Bundled + agent-created + hub-installed skills
├── cron/ # Scheduled jobs
├── sessions/ # Gateway session state
└── logs/ # agent.log, gateway.log, errors.log (secrets auto-redacted)
config.yaml vs .env — quando ambos estão definidos, config.yaml prevalece para configurações que não são secretas.4 A regra é:
- Segredos (chaves API, tokens de bots, senhas) → .env
- Todo o restante (modelo, backend do terminal, configurações de compactação, limites de memória, toolsets) → config.yaml
Os segredos podem ser referenciados no config.yaml usando interpolação no estilo shell:4
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
Gerenciamento da configuração
hermes config # View current configuration
hermes config show # Same as above
hermes config edit # Open config.yaml in your editor
hermes config set KEY VAL # Set a specific value
hermes config get KEY # Print a single value (v0.19.0+)
hermes config unset KEY # Remove a key so the default applies again (v0.19.0+)
hermes config path # Print the config file path
hermes config env-path # Print the .env file path
hermes config check # Check for missing options (after updates)
hermes config migrate # Interactively add missing options
Exemplos:4
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-... # Saves to .env
hermes config check e hermes config migrate são os comandos que você deve executar após cada hermes update — eles detectam novas opções de configuração que ainda não estão no seu arquivo.6
Precedência da configuração
O Hermes carrega a configuração de várias fontes. Quando várias fontes definem o mesmo valor, a fonte com maior prioridade prevalece:4
- Argumentos de CLI —
hermes chat --model anthropic/claude-sonnet-4(substituição para uma única execução) - Variáveis de ambiente — aplicadas na inicialização do processo
config.yaml— o arquivo principal de configurações.env— apenas segredos- Valores padrão integrados — aplicados quando nenhuma outra fonte define um valor
As flags de CLI sempre prevalecem naquela execução específica. O config.yaml é a fonte da verdade de longo prazo.
Localização (v0.13.0+)
A v0.13.0 adicionou 7 idiomas às mensagens de CLI e do gateway: chinês (simplificado), japonês, alemão, espanhol, francês, ucraniano e turco.18 A v0.14.0 traduz todos os comandos do gateway e o painel web, adiciona mais 8 idiomas e eleva o total para 16.19 Na tag v2026.8.31, a árvore locales/ contém 17 catálogos de mensagens – inglês e 16 traduções (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh).33 No momento, a documentação está disponível apenas em zh-Hans, além do inglês. O idioma é determinado pelas variáveis de ambiente LC_ALL / LANG ou por uma chave locale: explícita no config.yaml. O inglês continua sendo o padrão e a fonte da verdade para qualquer texto que uma tradução ainda não cubra.
Profiles — várias instâncias isoladas do Hermes
Os profiles oferecem várias instâncias isoladas do Hermes, cada uma com sua própria configuração, sessões, skills, memória e PID do gateway. É assim que você executa um “Hermes de trabalho” e um “Hermes pessoal” lado a lado, sem que um tenha acesso ao estado do outro.6
hermes profile list
hermes profile create work --clone # Clone from current profile
hermes profile use work # Set sticky default
hermes profile alias work --name h-work # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile" # One-off without switching
Cada profile recebe seu próprio HERMES_HOME (~/.hermes-<name>/ por padrão), permitindo que vários profiles executem o gateway simultaneamente sem interferir uns nos outros.63
O limite de isolamento passou a ser aplicado com mais rigor a partir da v0.21.2: um conjunto de correções eliminou vazamentos reais entre profiles em configurações com gateways multiplexados, nas quais profiles secundários podiam herdar as listas de permissões do profile padrão, enviar credenciais ao host dele, fornecer os segredos do cofre dele a servidores MCP via stdio ou anexar o .env/auth.json/state.db de outro profile à entrega por MEDIA: (#107609-#107630). Se você multiplexa profiles, a v0.21.2 é a tag em que a alegação de isolamento realmente passa a valer – consulte Novidades da v0.21.2.48
Comandos do CLI
Esta seção é a referência prática dos comandos de nível superior do CLI. Para consultar a referência oficial derivada do código, consulte a Referência de comandos do CLI.6
Opções globais
hermes [global-options] <command> [subcommand/options]
| Opção | Descrição |
|---|---|
--version, -V |
Exibe a versão e encerra |
--profile <name>, -p <name> |
Seleciona qual profile do Hermes usar |
--resume <session>, -r <session> |
Retoma uma sessão pelo ID ou título |
--continue [name], -c [name] |
Retoma a sessão mais recente (ou encontra um título correspondente) |
--worktree, -w |
Inicia em um git worktree isolado |
--in <dir> |
Entra em DIR antes de iniciar ou retomar. Combinado com --resume latest ou -c, seleciona a sessão mais recente do workspace de DIR, e a sessão permanece em DIR (ignora a restauração do diretório de trabalho registrado)27 |
--ignore-user-config |
Ignora ~/.hermes/config.yaml e usa os padrões integrados (as credenciais em .env ainda são carregadas)27 |
--ignore-rules |
Ignora a injeção automática de AGENTS.md, SOUL.md, .cursorrules, memória e skills pré-carregadas27 |
--tui |
Inicia a TUI moderna em vez do REPL clássico27 |
--cli |
Força o REPL clássico do prompt_toolkit (substitui display.interface=tui)27 |
--dev |
Com --tui: executa os fontes do TypeScript via tsx (ignora o build de dist)27 |
--yolo |
Ignora os prompts de aprovação de comandos perigosos |
--safe-mode |
Flag de solução de problemas — inicia o Hermes em um modo seguro mínimo para isolar problemas de inicialização (v0.19.0+)56 |
--pass-session-id |
Inclui o ID da sessão no prompt de sistema do agente |
Comandos de nível superior
| Comando | Finalidade |
|---|---|
hermes chat |
Chat interativo ou de execução única |
hermes model |
Escolhe interativamente o provedor e o modelo padrão |
hermes gateway |
Executa ou gerencia o gateway de mensagens |
hermes setup |
Assistente de configuração interativo |
hermes auth |
Gerencia credenciais — adiciona, lista, remove, redefine e define a estratégia |
hermes status |
Exibe o status do agente, da autenticação e das plataformas |
hermes cron |
Inspeciona e aciona o agendador cron |
hermes webhook |
Gerencia assinaturas dinâmicas de webhook |
hermes doctor |
Diagnostica problemas de configuração e dependências |
hermes dump |
Gera um resumo da configuração pronto para copiar e colar em solicitações de suporte ou debugging |
hermes logs |
Visualiza, acompanha e filtra logs do agente, gateway e erros |
hermes config |
Exibe, edita, migra e consulta a configuração |
hermes pairing |
Aprova ou revoga códigos de pareamento de mensagens |
hermes skills |
Explora, instala, publica e audita skills |
hermes honcho |
Gerencia a memória entre sessões do Honcho. Condicional ao plugin: a documentação afirma que “subcomandos específicos de plugins (por exemplo, hermes honcho) são registrados automaticamente quando o provedor correspondente está ativo”, portanto ele não aparece em hermes --help, a menos que o Honcho seja o provedor de memória ativo6 |
hermes memory |
Configura um provedor externo de memória |
hermes acp |
Executa o Hermes como servidor ACP (integração com editores) |
hermes mcp |
Gerencia a configuração do servidor MCP; executa o Hermes como servidor MCP |
hermes plugins |
Gerencia plugins |
hermes tools |
Configura as ferramentas habilitadas por plataforma |
hermes sessions |
Explora, exporta, limpa e exclui sessões. A v0.19.0 expande hermes sessions export para os formatos Markdown, Quarto, HTML, somente prompt e trace do Hugging Face, com uma etapa opcional --redact para remover segredos e filtros por idade, workspace e plataforma56; hermes sessions recover reconstrói os dados canônicos da sessão a partir de um state.db danificado em um banco de dados NOVO e separado, de forma offline e não destrutiva, com --inspect-only relatando a legibilidade da tabela canônica sem criar um banco (o caminho de recuperação indicado na v0.21.2)48; hermes sessions set-journal-mode delete\|wal (na janela da v0.21.4) converte um armazenamento entre WAL e rollback journal offline — ele se recusa a prosseguir enquanto qualquer processo externo mantiver o banco de dados ou um arquivo auxiliar aberto, faz a alteração sem esperar esses processos terminarem, verifica depois os bytes 18/19 do cabeçalho SQLite e aceita --db para um armazenamento fora do padrão. Interrompa primeiro o gateway, o dashboard e todos os CLI; no Windows, onde não há verificação de processos que mantêm arquivos abertos, ele se recusa a prosseguir até você usar --force, depois de encerrar manualmente todos os processos do Hermes. O despacho é deliberadamente offline para que o comando nunca abra o armazenamento que está convertendo, e hermes doctor agora direciona para ele51 |
hermes insights |
Exibe análises de tokens, custos e atividades |
hermes claw |
Ferramentas auxiliares de migração do OpenClaw |
hermes profile |
Gerencia profiles (várias instâncias isoladas) |
hermes completion |
Exibe scripts de preenchimento automático do shell (bash/zsh) |
hermes whatsapp |
Configura e pareia a ponte do WhatsApp |
hermes --version (-V) |
Exibe informações da versão. É uma flag global, não um subcomando: na tag v2026.8.31, o conjunto _BUILTIN_SUBCOMMANDS não contém uma entrada version, e o caminho rápido da inicialização reconhece somente --version / -V27 |
hermes update |
Baixa o código mais recente e reinstala as dependências |
hermes uninstall |
Remove o Hermes do sistema (--full também exclui configurações e dados) |
hermes backup |
Backup completo de configurações, sessões, skills e memória (v0.9.0+)16 |
hermes import |
Restaura a partir de um arquivo de backup — migra entre máquinas ou reverte para uma versão anterior (v0.9.0+)16 |
hermes dashboard |
Inicia o dashboard web local para gerenciar o agente pelo navegador (v0.9.0+)16 |
hermes serve |
Executa o servidor API de backend sem interface gráfica — desde a v0.19.0, ele não compila nem monta mais a interface web56 |
hermes debug share |
Faz upload de um relatório de debugging completo para um pastebin, permitindo compartilhá-lo durante a solução de problemas (v0.9.0+)16 |
hermes approvals |
Ferramentas de prompts de aprovação: suggest analisa o histórico de aprovações para gerar propostas de command_allowlist; test simula a decisão de aprovação de um comando sem executá-lo (“nunca o executa”, com --backend e --json). As notas da versão v0.21.0 apresentam essa simulação como hermes approval-check, mas não existe um subcomando approval-check na tag v2026.8.31 — a interface disponível é hermes approvals test2740 |
hermes bundles |
Cria, lista e gerencia pacotes de skills (aliases de várias skills sob um único comando de barra /<name>)27 |
hermes checkpoints |
Inspeciona, limpa ou esvazia ~/.hermes/checkpoints/, o armazenamento paralelo por trás de /rollback; execute sem argumentos para obter uma visão geral do status27 |
hermes computer-use |
Gerencia o backend Computer Use (cua-driver) (macOS/Windows/Linux)27 |
hermes console |
Abre o console seguro de comandos do Hermes27 |
hermes curator |
Manutenção de skills em segundo plano (curator): status, execução, pausa e fixação27 |
hermes egress |
Gerencia o firewall iron-proxy para injeção de credenciais de saída em sandboxes de terminal remotas (desabilitado por padrão)27 |
hermes fallback |
Gerencia provedores de fallback, usados quando o modelo principal falha27 |
hermes hooks |
Inspeciona e gerencia hooks de scripts do shell: list, test <event>, revoke e doctor (bit de execução, allowlist, divergência de mtime, validade do JSON e duração da execução sintética)27 |
hermes import-agent |
Importa uma configuração do Claude Code (~/.claude) ou do Codex CLI (~/.codex) para o Hermes27 |
hermes desktop (alias gui) |
Compila e inicia o aplicativo desktop nativo em Electron27 |
hermes kanban |
Quadro de colaboração entre vários profiles (tarefas, links e comentários), com quadros, um grafo de swarm (swarm: workers paralelos → verificador → sintetizador) e um despachante27 |
hermes login / hermes logout |
Obsoletos. Use hermes auth para gerenciar credenciais, hermes model para selecionar um provedor ou hermes setup para fazer a configuração completa27 |
hermes lsp |
Gerenciamento do Language Server Protocol: status, list, install <server>, install-all e restart (encerra os clientes LSP em execução; a próxima edição os inicia novamente)27 |
hermes migrate |
Migra a configuração de modelos descontinuados ou configurações obsoletas27 |
hermes moa |
Configura slots de provedores/modelos Mixture of Agents (predefinições nomeadas que podem ser selecionadas no seletor de modelos)27 |
hermes journey (aliases learning, memory-graph) |
Linha do tempo das skills aprendidas e memórias ao longo do tempo27 |
hermes monitoring |
Inspeciona o monitoramento do gateway (exportação de integridade e diagnósticos); status exibe as configurações, o estado da exportação e a postura de redação de dados sensíveis27 |
hermes pause / hermes resume |
Parada de emergência: pause interrompe os despachos de cron/kanban e novos turnos do gateway; resume retoma as operações27 |
hermes peer |
Mensagens diretas entre bots em máquinas diferentes: add, list e remove gerenciam gateways Hermes pares, enquanto dm envia uma mensagem a um agente em um deles e exibe a resposta27 |
hermes pets |
Explora, instala e seleciona pets animados do petdex27 |
hermes portal |
Configura o Nous Portal (login, seleção de modelo e Tool Gateway): login (padrão), info, open, tools; consulte Nous Tool Gateway2728 |
hermes project |
Gerencia projetos (workspaces nomeados com várias pastas): cria, lista, exibe, adiciona/remove pastas, renomeia, define a pasta principal, ativa, arquiva, restaura e vincula um quadro kanban27 |
hermes proxy |
Proxy local compatível com OpenAI para provedores OAuth: start, status, providers27 |
hermes prompt-size |
Exibe um detalhamento em bytes do prompt de sistema e dos schemas de ferramentas; funciona offline27 |
hermes send |
Envia uma mensagem para uma plataforma configurada sem loop do agente e sem LLM (scripts, tarefas cron e CI)27 |
hermes skin |
Lista, troca e ajusta skins (list, use, set)27 |
hermes slack |
Ferramentas auxiliares de integração com o Slack: manifest exibe ou grava um manifesto de aplicativo do Slack com todos os comandos do gateway registrados como comandos de barra nativos27 |
hermes sync |
Skill Sync entre dispositivos e com sua equipe: status, pull, push, now, enable, disable, device, propose27 |
hermes whatsapp-cloud |
Configura a integração do API com o WhatsApp Business Cloud (diferente da ponte Baileys para contas pessoais do hermes whatsapp)27 |
hermes worktree |
Audita e recupera git worktrees e branches mescladas acumuladas. list (aliases ls, audit; o padrão) classifica cada árvore por idade, tamanho, veredito e motivo; prune remove árvores seguras e exclui branches locais totalmente mescladas. Ambos aceitam --repo <root>; prune também oferece --dry-run (exibe o plano sem alterar nada), --trees-only e --branches-only. Ele nunca exclui alterações rastreadas sem commit, commits exclusivos que ainda não foram enviados nem árvores em uso; rascunhos contendo apenas arquivos não rastreados são arquivados em ~/.hermes/archive/worktree-prune/ antes da remoção27 |
hermes secrets |
Gerencia fontes externas de segredos (Bitwarden, 1Password) para obter chaves do API na inicialização do processo27 |
hermes security |
Auditoria da cadeia de suprimentos (OSV.dev) para o venv, plugins e servidores MCP (audit)27 |
hermes verify |
Detecta a receita de execução de um projeto e realiza um teste de fumaça27 |
hermes chat — O principal ponto de entrada
Executar hermes sem argumentos abre o chat interativo. hermes chat é a forma explícita com opções:6
hermes chat -q "Summarize the latest PRs" --oneshot # Answer and exit (without --oneshot, a TTY seeds an interactive session)
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills # Enable specific toolsets
hermes chat --quiet -q "Return only JSON" # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"
Principais opções:
| Opção | Descrição |
|---|---|
-q, --query "..." |
Consulta a executar. Alterado na v0.21.0: em um TTY real, agora inicia uma sessão interativa (enviada literalmente como o primeiro turno); combinado com --oneshot ou -Q, ou em um ambiente sem TTY, responde e encerra — o comportamento antigo de execução única40 |
--query-file PATH |
Lê a consulta única de um arquivo em vez da linha de comando (- lê stdin). Nada é interpretado pelo shell, portanto aspas, $(...) e acentos graves chegam literalmente; mutuamente exclusivo com -q51 |
--oneshot |
Com -q/--query-file: responde à consulta e encerra (comportamento legado de consulta única). Implícito em stdio sem TTY e com -Q/--quiet40 |
-m, --model <model> |
Substitui o modelo nesta execução |
-t, --toolsets <csv> |
Habilita um conjunto de toolsets separados por vírgulas |
--provider <provider> |
Força o uso de um provedor (consulte a lista completa) |
-s, --skills <name> |
Pré-carrega uma ou mais skills nesta sessão |
-v, --verbose |
Saída detalhada |
-Q, --quiet |
Modo programático (sem banner, indicador de carregamento ou prévias) |
--format <fmt> |
Formato de saída para o modo de consulta única (-q ou --query-file): text (padrão) exibe a resposta final como texto simples; stream-json emite eventos JSON delimitados por novas linhas (JSONL) — um evento system/init, deltas de text, eventos tool_use/tool_result e, por fim, um envelope result terminal com o código de saída, o texto final e as estatísticas de tokens. stream-json implica --quiet, exige -q ou --query-file (encerra com o código 2 sem um deles) e não pode ser combinado com --tui; os diagnósticos e o ID da sessão permanecem em stderr, e a saída das ferramentas é limitada a 5.000 caracteres por evento (janela da v0.21.4)51 |
--resume <session> |
Retoma uma sessão diretamente pelo chat |
--worktree |
Cria um git worktree isolado |
--checkpoints |
Habilita checkpoints do sistema de arquivos antes de alterações destrutivas |
--yolo |
Ignora prompts de aprovação |
--source <tag> |
Tag de origem da sessão (padrão: cli; use tool para integrações) |
--max-turns <N> |
Número máximo de iterações de chamadas de ferramentas por turno da conversa (padrão: 500 desde a v0.20.0, ou agent.max_turns na configuração)40 |
hermes setup — Assistente completo
Executa o assistente completo de configuração ou abre diretamente uma seção:6
hermes setup # Full wizard
hermes setup model # Provider and model only
hermes setup terminal # Terminal backend only
hermes setup gateway # Messaging platforms only
hermes setup tools # Tool enable/disable per platform
hermes setup agent # Agent behavior only
hermes setup --non-interactive
hermes setup --reset # Reset config to defaults before setup
hermes logs — Consulta estruturada de logs
hermes logs é mais poderoso do que tail -f nos arquivos de log porque permite filtrar simultaneamente por nível, ID da sessão e intervalo de tempo.6
hermes logs # Last 50 lines of agent.log
hermes logs -f # Follow in real time
hermes logs gateway -n 100 # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h # Warnings from the last hour
hermes logs --session abc123 # Filter by session ID substring
hermes logs errors --since 30m -f # Follow errors.log from 30m ago
hermes logs list # List all log files with sizes
Os arquivos de log ficam em ~/.hermes/logs/:6
- agent.log — todas as atividades do agente (chamadas do API, despacho de ferramentas, ciclo de vida da sessão, INFO+)
- errors.log — apenas avisos e erros (um subconjunto filtrado de agent.log)
- gateway.log — atividades do gateway de mensagens (conexões com plataformas, despachos e webhooks)
A rotação é automática por meio do RotatingFileHandler do Python — procure por agent.log.1, agent.log.2 etc.6
hermes doctor — Diagnósticos
hermes doctor [--fix] é o primeiro comando que você deve executar quando algo dá errado. Ele verifica a validade da configuração, a presença de dependências, a disponibilidade da chave do API e o status dos serviços, além de poder tentar correções automáticas com --fix.6
Para compartilhar diagnósticos com outra pessoa, use hermes dump — ele produz um resumo compacto em texto simples, com as chaves do API ocultadas, pronto para ser colado em uma issue do GitHub ou em uma conversa no Discord.6
Comandos slash
Os comandos slash são executados dentro de uma sessão de chat ativa (CLI ou plataforma de mensagens). Eles são despachados de um COMMAND_REGISTRY compartilhado em hermes_cli/commands.py, por isso a maioria dos comandos funciona da mesma forma em todas as interfaces.9
Controle da sessão
| Comando | Descrição |
|---|---|
/new (alias /reset) |
Inicia uma nova sessão |
/clear |
Limpa a tela e inicia uma nova sessão |
/history |
Mostra o histórico da conversa |
/save |
Salva a conversa atual |
/retry |
Tenta novamente a última mensagem |
/undo |
Remove a última troca entre usuário e assistente |
/title <name> |
Define um título para a sessão atual |
/compress |
Comprime manualmente o context da conversa |
/rollback [number] |
Lista ou restaura checkpoints do sistema de arquivos |
/stop |
Encerra todos os processos em segundo plano em execução |
/status |
Mostra informações sobre sessão, modelo, tokens e context – desde a janela da v0.20.5, também exibe o modo de raciocínio, as aprovações pendentes e o uso do context4035 |
/queue <prompt> |
Coloca um prompt na fila para o próximo turno. Atenção: /q é usado tanto por /queue quanto por /quit; o último registro prevalece e, na prática, /q é resolvido como /quit — sempre digite /queue por extenso.9 |
/resume [name] |
Retoma uma sessão nomeada anteriormente |
/statusbar (alias /sb) |
Ativa ou desativa a barra de status do context/modelo |
/background <prompt> (alias /bg) |
Executa um prompt em uma sessão separada em segundo plano |
/btw <question> |
Faz uma pergunta paralela temporária (sem ferramentas e sem persistência) |
/plan [request] |
Carrega a skill plan incluída para elaborar um plano em vez de executá-lo |
/branch [name] (alias /fork) |
Cria uma ramificação da sessão atual |
/goal <target> |
Mantém o agente concentrado em um objetivo entre os turnos. Padrão de loop do Ralph como recurso de primeira classe. Limite de turnos configurável. Novo na v0.13.0.18 |
/subgoal <criterion> |
Adiciona critérios de sucesso a um /goal ativo sem reiniciar o loop. Novo na v0.14.0.19 |
/handoff <target> |
Transfere a sessão ativa — mensagens, chamadas de ferramentas e context — para outro modelo, persona ou profile. Novo na v0.14.0.19 |
/worktree [new [name]\|list\|prune [--dry-run]] |
Inspeciona, cria ou recupera worktrees isolados do git sem sair da sessão. new cria um worktree em .worktrees/ no repositório e move a sessão para ele; list os relaciona; prune executa a mesma recuperação assistida que hermes worktree prune e, segundo a documentação, “nunca altera a árvore na qual a sessão está sendo executada”27 |
Configuração e modelo
| Comando | Descrição |
|---|---|
/config |
Mostra a configuração atual |
/model [model-name] |
Mostra ou altera o modelo atual |
/provider |
Mostra os provedores disponíveis e o provedor atual |
/personality [name] |
Define uma camada de personalidade |
/verbose |
Alterna entre os modos de exibição do progresso das ferramentas |
/reasoning |
Gerencia o esforço e a exibição do raciocínio. A v0.19.0 adiciona os níveis de esforço max e ultra e limita /reasoning ao escopo da sessão, além de permitir substituir o esforço por modelo e por slot de MoA na configuração56 |
/skin |
Mostra ou altera a aparência/o tema da interface |
/voice [on\|off\|tts\|status] |
Ativa ou desativa o modo de voz do CLI |
/yolo |
Ativa ou desativa o modo YOLO (ignora as solicitações de aprovação). Desde a v0.19.0, regras de negação definidas pelo usuário continuam bloqueando comandos correspondentes mesmo no modo YOLO56 |
/fast |
Ativa ou desativa o Fast Mode — processamento prioritário para modelos da OpenAI e Anthropic (v0.9.0+)16 |
/debug |
Executa diagnósticos rápidos em todas as plataformas (v0.9.0+)16 |
/subscription |
Gerencia seu plano do Nous Portal pelo terminal — plano e saldo restante, prévia do custo de upgrade/downgrade e aplicação com opção de desfazer (v0.19.0+)56 |
/topup |
Adiciona créditos ao saldo do Nous Portal sem sair do terminal (v0.19.0+)56 |
O comando /model é o principal recurso para trocar de provedor durante uma sessão:9
/model # Show current model and options
/model claude-sonnet-4 # Switch model (auto-detect provider)
/model zai:glm-5 # Switch provider:model
/model custom:qwen-2.5 # Use model on custom endpoint
/model custom # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5 # Named custom provider
/model openrouter:anthropic/claude-sonnet-4 # Back to cloud
A v0.19.0 adiciona /model --once — uma substituição do modelo por um único turno que retorna automaticamente ao modelo anterior após a resposta.56 Desde a janela da v0.20.5, o seletor de /model também usa busca aproximada: ele filtra à medida que você digita.2335
Ferramentas, skills e informações
| Comando | Descrição |
|---|---|
/tools [list\|disable\|enable] [name...] |
Gerencia as ferramentas da sessão atual |
/toolsets |
Lista os toolsets disponíveis |
/browser [connect\|disconnect\|status] |
Gerencia a conexão CDP local com o Chrome |
/skills |
Pesquisa, instala, inspeciona ou gerencia skills |
/cron |
Gerencia tarefas agendadas |
/reload-mcp |
Recarrega os servidores MCP do config.yaml |
/plugins |
Lista os plugins instalados |
/help |
Mostra todos os comandos |
/usage |
Mostra o uso de tokens, o custo e a duração |
/insights |
Mostra análises de uso (últimos 30 dias) |
/platforms |
Mostra o status das plataformas de mensagens |
/profile |
Mostra o nome e o diretório inicial do profile ativo |
/palette |
Abre a paleta de comandos com busca aproximada (também Ctrl+P) – pesquise qualquer comando e skill por correspondência aproximada. Disponível desde a janela da v0.20.54035 |
Comandos slash dinâmicos de skills
Cada skill instalada é exposta automaticamente como um comando slash:9
/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw # Just the skill name loads it and lets the agent ask what you need
Desde a v0.19.0, as invocações de skills por comando slash podem ser encadeadas: /skill-a /skill-b do XYZ carrega as duas skills em ordem, em um único turno, com preenchimento automático e texto fantasma para os nomes encadeados.56
Você também pode definir comandos rápidos no config.yaml que associam um nome curto a um prompt mais longo:9
quick_commands:
review: "Review my latest git diff and suggest improvements"
deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
morning: "Check my calendar, unread emails, and summarize today's priorities"
Depois, digite /review, /deploy ou /morning no CLI.
Correspondência por prefixo
Os comandos permitem correspondência por prefixo: digitar /h resulta em /help, enquanto /mod resulta em /model. Quando um prefixo é ambíguo, prevalece o primeiro registro na ordem do registro. Nomes completos de comandos e aliases registrados sempre têm prioridade sobre correspondências por prefixo.9
Comandos específicos para plataformas de mensagens
Alguns comandos funcionam apenas em plataformas de mensagens (Telegram, Discord, Slack, WhatsApp, Signal, Email, Home Assistant):9
/status— mostra informações da sessão (não é mais exclusivo das plataformas de mensagens; consulte Controle da sessão)/sethome(alias/set-home) — define o chat atual como a página inicial da plataforma/approve [session|always]— aprova um comando perigoso pendente/deny [reason]— rejeita um comando perigoso pendente. Desde a v0.19.0,/deny <reason>informa ao agente o motivo da recusa para que ele corrija o rumo em vez de tentar novamente sem saber o motivo56/update— atualiza o Hermes Agent para a versão mais recente/commands [page]— permite navegar por todos os comandos e skills (com paginação)
E alguns são exclusivos do CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9
Tools e Toolsets
O Hermes vem com um amplo registro de tools integradas que abrange pesquisa na web, automação de navegador, execução no terminal, edição de arquivos, memória, delegação, treinamento por RL, envio de mensagens, integração com o Home Assistant e muito mais.10 As tools são organizadas em toolsets lógicos que podem ser ativados ou desativados por plataforma.
Categorias de alto nível
| Categoria | Exemplos | Descrição |
|---|---|---|
| Web | web_search, web_extract |
Pesquisa na web e extração de conteúdo de páginas |
| Terminal e arquivos | terminal, process, read_file, patch |
Execução de comandos e manipulação de arquivos |
| Navegador | browser_navigate, browser_snapshot, browser_vision |
Automação interativa do navegador com texto e visão |
| Mídia | vision_analyze, video_analyze, video_generate, image_generate, text_to_speech |
Análise e geração multimodal. video_analyze prioriza o Gemini e oferece suporte extensível a provedores multimodais compatíveis (v0.13.0+). A v0.14.0 adiciona o video_generate unificado, com backends de provedores intercambiáveis, e envia pixels brutos por vision_analyze quando o modelo ativo oferece suporte a visão.1819 |
| Orquestração de agentes | todo, clarify, execute_code, delegate_task |
Planejamento, esclarecimento, execução de código e delegação a subagentes |
| Uso do computador | computer_use |
Controle da área de trabalho pelo backend cua-driver; a v0.14.0 permite usar esse recurso com provedores compatíveis com visão que não sejam Anthropic.19 |
| Memória e recuperação | memory, session_search |
Memória persistente + pesquisa de sessões |
| Automação e envio | cronjob, send_message |
Tarefas agendadas e envio de mensagens |
| Integrações | ha_*, tools do MCP, rl_* |
Home Assistant, MCP, treinamento por RL |
Entre os nomes comuns de toolsets estão web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant e rl.10
Gerenciamento de tools
hermes chat --toolsets "web,terminal" # Use specific toolsets
hermes tools # Interactive per-platform tool config
hermes tools --summary # Print enabled-tools summary
Também é possível ativar ou desativar tools durante uma sessão usando /tools disable <name> e /tools enable <name>. Isso reinicia a sessão para que o novo conjunto de tools entre em vigor.9
Backends de terminal
A tool de terminal inclui 7 backends de execução integrados — e, desde a v0.20.6, esse conjunto pode ser ampliado por plugins, assim como o seletor de provedores (veja abaixo):1024
| Backend | Caso de uso |
|---|---|
local |
Execução na sua máquina (padrão) — desenvolvimento e tarefas confiáveis |
docker |
Contêineres isolados — segurança e reprodutibilidade |
ssh |
Servidor remoto — sandbox que mantém o agente longe do próprio código |
singularity |
Contêineres de HPC — computação em cluster sem root |
modal |
Execução serverless na nuvem |
daytona |
Workspace de sandbox na nuvem — ambiente persistente de desenvolvimento remoto |
vercel_sandbox |
MicroVM na nuvem do Vercel Sandbox — execução na nuvem com persistência do sistema de arquivos baseada em snapshots. Instale hermes-agent[vercel], defina terminal.vercel_runtime (node24, node22 ou python3.13) e faça a autenticação com VERCEL_TOKEN, VERCEL_PROJECT_ID e VERCEL_TEAM_ID; por padrão, a raiz do workspace remoto é /vercel/sandbox24 |
Alterne entre backends com hermes config set terminal.backend <name> ou no config.yaml:
terminal:
backend: docker # or: local, ssh, singularity, modal, daytona, vercel_sandbox
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
Backends de plugins (v0.20.6+). Os fornecedores terceirizados de sandbox não precisam mais ser incorporados ao repositório principal: um plugin registra um TerminalEnvironmentProvider durante o carregamento por meio de PluginContext.register_terminal_environment_provider, e o nome registrado passa a ser selecionável em terminal.backend exatamente como um backend integrado. Os nomes integrados são reservados — o registro rejeita provedores cujos nomes entrem em conflito com um backend do próprio repositório — e um backend registrado participa automaticamente de todas as interfaces principais (o seletor de backends do hermes setup, o status das verificações no dashboard, as verificações do hermes doctor, o tratamento de caminhos e cwd dos contêineres e a remoção de segredos), pois o núcleo consulta o registro em cada ponto de classificação, em vez de usar uma lista de nomes fixa no código.32
Backend SSH (recomendado por segurança — o agente não consegue modificar o próprio código):10
terminal:
backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Backend Docker:
terminal:
backend: docker
docker_image: python:3.11-slim
Recursos dos contêineres (aplicável a docker, singularity, modal e daytona):10
terminal:
container_cpu: 1
container_memory: 5120 # MB (default 5GB)
container_disk: 51200 # MB (default 50GB)
container_persistent: true # Persist filesystem across sessions
Com container_persistent: true, os pacotes instalados, arquivos e configurações são preservados entre as sessões.10
Todos os backends de contêiner são executados com reforço de segurança: sistema de arquivos raiz somente leitura (Docker), todas as capabilities do Linux removidas, exceto DAC_OVERRIDE, CHOWN e FOWNER, sem escalonamento de privilégios, limites de PID (256 processos), isolamento completo de namespaces e workspace persistente por meio de volumes.10
Processos em segundo plano
A tool de terminal oferece suporte à execução em segundo plano com gerenciamento explícito de processos:10
terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}
process(action="list") # Show all running processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until done
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input
O modo PTY (pty=true) permite usar tools interativas do CLI, como Codex e Claude Code.10
Sudo
Se um comando precisar de sudo, o Hermes solicitará sua senha, que ficará armazenada em cache durante a sessão. Outra opção é definir SUDO_PASSWORD em ~/.hermes/.env.10
Kanban multiagente (v0.13.0+)
A v0.13.0 transforma a colaboração multiagente em um recurso fundamental: um quadro Kanban persistente que acompanha tarefas, status e a identidade dos workers entre agentes e reinicializações.18 É o quadro que permite que um swarm de workers do Hermes realmente conclua o trabalho, em vez de ficar parado por causa de transferências interrompidas.
| Mecanismo | O que faz |
|---|---|
| Heartbeats | Cada worker envia pulsos enquanto é responsável por uma tarefa. A ausência de um heartbeat marca o worker como suspeito e libera a tarefa para ser retomada. |
| Retomada | Outro worker pode assumir uma tarefa abandonada, com acesso ao estado completo da tarefa e ao resultado parcial anterior. |
| Detecção de zumbis | Workers que encerram sem marcar uma tarefa como concluída são impedidos automaticamente de assumir novos trabalhos, evitando o acúmulo de identidades inativas no swarm. |
| Barreira contra alucinações | Quando um resultado não passa pela verificação, a tarefa volta para o quadro com o motivo registrado, em vez de ser marcada como concluída. |
max_retries por tarefa |
Substitui o limite padrão de novas tentativas em uma tarefa que você sabe ser frágil. |
| Quadros para vários projetos | Uma única pasta inicial do Hermes pode hospedar vários quadros independentes. |
O quadro Kanban combina naturalmente o /goal (loop Ralph com objetivo bloqueado) para definir o objetivo e a tool delegate_task existente para a semântica de criação de agentes. O resultado é um padrão de swarm no qual todos os agentes compartilham uma única fonte da verdade sobre o que fazer a seguir, quem está fazendo o quê e onde há bloqueios.
O que é um swarm do Hermes?
Um swarm é formado por vários workers do Hermes executados em paralelo com um único quadro Kanban compartilhado. Não é um subsistema separado que você precisa ativar — é o que o quadro torna possível. O quadro fornece o único elemento que agentes paralelos não conseguem fornecer por conta própria: uma resposta única e definitiva para o que devo assumir agora e alguém já está trabalhando nisso?
A v0.15.0 elevou esse padrão a uma topologia com suporte oficial, adicionando a topologia de swarm para a coordenação de workers paralelos, a decomposição automática de um objetivo de alto nível em subtarefas, substituições de modelo por tarefa, tarefas agendadas e gerenciamento de worktrees, para que workers paralelos não entrem em conflito no mesmo checkout.59
| Problema em uma configuração multiagente ingênua | O que o quadro faz no lugar |
|---|---|
| Dois workers assumem a mesma tarefa | A tarefa é reivindicada e a identidade do worker fica registrada |
| Um worker para de funcionar no meio da tarefa e o trabalho desaparece | O heartbeat expira e a tarefa é retomada com o resultado parcial anterior |
| Um worker que falhou continua “retendo” tarefas para sempre | A detecção de zumbis impede que ele assuma novos trabalhos |
| Um único modelo caro para todas as subtarefas | Substituições de modelo por tarefa — modelos baratos para subtarefas mecânicas |
| Workers paralelos editando os mesmos arquivos | O gerenciamento de worktrees isola o checkout de cada worker |
Na prática: forneça um objetivo ao swarm, deixe a decomposição automática dividi-lo em tarefas no quadro
e permita que os workers assumam, executem e retornem resultados. O limite de novas tentativas é definido por tarefa (max_retries),
para que uma única subtarefa frágil não consuma toda a tolerância da execução. Como o quadro é
persistente, um swarm sobrevive a reinicializações — os workers se reconectam e retomam o trabalho usando o mesmo estado.
Um swarm só é tão bom quanto sua decomposição. O quadro coordena os workers, mas não transforma um objetivo mal dividido em um bom objetivo. Tarefas que compartilham um estado oculto ainda entrarão em conflito, com ou sem worktrees.
Sistema de skills
Skills são documentos de conhecimento sob demanda que o agente pode carregar quando necessário. Elas seguem um padrão de divulgação progressiva para minimizar o uso de tokens e são compatíveis com o padrão aberto agentskills.io.11
Todas as skills ficam em ~/.hermes/skills/ — o diretório principal e a fonte da verdade. Em uma instalação nova, as skills incluídas são copiadas do repositório. As skills instaladas pelo Hub e criadas pelo agente também ficam aqui.11
Divulgação progressiva
Level 0: skills_list() → [{name, description, category}, ...] (~3k tokens)
Level 1: skill_view(name) → Full content + metadata (varies)
Level 2: skill_view(name, path) → Specific reference file (varies)
O agente só carrega o conteúdo completo da skill quando realmente precisa dele.11
Formato do SKILL.md
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux] # Optional — restrict to OS platforms
metadata:
hermes:
tags: [python, automation]
category: devops
fallback_for_toolsets: [web] # Conditional activation
requires_toolsets: [terminal] # Conditional activation
config: # Config.yaml settings
- key: my.setting
description: "What this controls"
default: "value"
prompt: "Prompt for setup"
---
# Skill Title
## When to Use
Trigger conditions for this skill.
## Procedure
1. Step one
2. Step two
## Pitfalls
- Known failure modes and fixes
## Verification
How to confirm it worked.
Ativação condicional
As skills podem se exibir ou se ocultar conforme as ferramentas disponíveis. Isso é especialmente útil para skills de fallback — alternativas gratuitas ou locais que só devem aparecer quando uma ferramenta premium não estiver disponível:11
| Campo | Comportamento |
|---|---|
fallback_for_toolsets |
A skill fica oculta quando os toolsets listados estão disponíveis |
fallback_for_tools |
O mesmo, mas verifica ferramentas individuais |
requires_toolsets |
A skill fica oculta quando os toolsets listados não estão disponíveis |
requires_tools |
O mesmo, mas verifica ferramentas individuais |
Exemplo: a skill integrada duckduckgo-search usa fallback_for_toolsets: [web]. Quando você tem FIRECRAWL_API_KEY definido, o toolset web fica disponível e o agente usa web_search — a skill do DuckDuckGo permanece oculta. Sem a chave API, a skill do DuckDuckGo aparece automaticamente como fallback.11
Skills gerenciadas pelo agente
O agente pode criar, atualizar e excluir as próprias skills por meio da ferramenta skill_manage. Essa é a memória procedural do agente — quando ele descobre um fluxo de trabalho não trivial, salva a abordagem como uma skill para reutilizá-la no futuro.11
Quando o agente cria skills:11 - Depois de concluir com sucesso uma tarefa complexa (mais de 5 chamadas de ferramentas) - Quando encontrou erros ou becos sem saída e descobriu o caminho que funciona - Quando o usuário corrigiu sua abordagem - Quando descobriu um fluxo de trabalho não trivial
Ações:11
| Ação | Uso |
|---|---|
create |
Criar uma skill do zero |
patch |
Fazer correções pontuais (opção preferencial — mais eficiente no uso de tokens) |
edit |
Fazer grandes reformulações estruturais |
delete |
Remover completamente uma skill |
write_file |
Adicionar/atualizar arquivos auxiliares |
remove_file |
Remover um arquivo auxiliar |
Skill Hub
Navegue, pesquise, instale e gerencie skills de registros online:611
hermes skills browse # Browse all hub skills
hermes skills browse --source official # Browse official optional skills
hermes skills search kubernetes # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s # Preview before installing
hermes skills install openai/skills/k8s # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check # Check for upstream updates
hermes skills update # Reinstall changed hub skills
hermes skills audit # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo # Add custom GitHub source
Fontes integradas do Hub:11
| Fonte | Exemplo | Observações |
|---|---|---|
official |
official/security/1password |
Skills opcionais fornecidas com o Hermes (confiança integrada) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Diretório público de skills da Vercel |
well-known |
well-known:https://mintlify.com/docs/.well-known/skills/mintlify |
Descoberta baseada em URL em sites que publicam /.well-known/skills/index.json |
github |
openai/skills/k8s |
Instalações diretas de repositório/caminho do GitHub |
clawhub |
— | Marketplace de skills de terceiros |
lobehub |
— | Conversão do catálogo de agentes do LobeHub |
browse-sh |
— | Fonte de skills do Browserbase |
Taps padrão do GitHub (navegáveis sem configuração): openai/skills, anthropics/skills, huggingface/skills, NVIDIA/skills, garrytan/gstack. A fonte claude-marketplace foi removida na v0.20.0; browse-sh a substituiu na lista de fontes.1155
Verificação de segurança
Todas as skills instaladas pelo Hub passam por um verificador de segurança que procura exfiltração de dados, injeção de prompts, comandos destrutivos, sinais de ataques à cadeia de suprimentos e outras ameaças.11
Níveis de confiança:11
| Nível | Fonte | Política |
|---|---|---|
builtin |
Fornecida com o Hermes | Sempre confiável |
official |
optional-skills/ no repositório |
Confiança integrada, sem aviso sobre terceiros |
trusted |
Registros confiáveis (openai/skills, anthropics/skills) |
Política mais permissiva |
community |
Todas as demais | Constatações não perigosas podem ser ignoradas com --force; veredictos dangerous continuam bloqueados |
--force pode ignorar bloqueios de política não perigosos para skills da comunidade. Ele não ignora um veredicto dangerous da verificação.11
Diretórios externos de skills
Você pode indicar ao Hermes outros diretórios de skills que serão verificados junto com o diretório local:11
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
Os caminhos oferecem suporte à expansão de ~ e à substituição de variáveis de ambiente ${VAR}. Os diretórios externos são somente leitura — quando o agente cria ou edita uma skill, ele sempre grava em ~/.hermes/skills/. A versão local tem precedência quando existe uma skill com o mesmo nome nos dois lugares.11
Skills fixadas: skills.auto_load (período da v0.21.4)
Os nomes de skills listados em skills.auto_load no config.yaml são fixados e carregados integralmente em cada nova sessão – CLI, TUI, gateway, cron e API:51
skills:
auto_load:
- team-conventions
- deploy-checklist
A lista é resolvida uma única vez, quando o prompt do agente é criado pela primeira vez; um nome ausente ou desabilitado gera um aviso e é ignorado, em vez de provocar uma falha na sessão, e HERMES_IGNORE_RULES (o mecanismo por trás de --ignore-rules) suprime a lista, assim como o restante do contexto injetado automaticamente. Esse é o complemento de instruções permanentes para -s/--skills, que pré-carrega skills somente para uma sessão.51
Memória persistente
Hermes tem uma memória limitada e selecionada que persiste entre sessões. Dois arquivos compõem a memória do agent, ambos armazenados em ~/.hermes/memories/:12
| Arquivo | Finalidade | Limite de caracteres |
|---|---|---|
MEMORY.md |
Notas pessoais do agent — informações sobre o ambiente, convenções e aprendizados | 2.200 caracteres (~800 tokens) |
USER.md |
Perfil do usuário — preferências, estilo de comunicação e expectativas | 1.375 caracteres (~500 tokens) |
Ambos são inseridos no prompt do sistema como um snapshot congelado no início da sessão. O agent gerencia a própria memória por meio da ferramenta memory — add, replace ou remove.12
Padrão de snapshot congelado: a inserção no prompt do sistema é capturada uma única vez no início da sessão e nunca muda durante a sessão. Isso é intencional — preserva o cache de prefixo do LLM para melhorar o desempenho. As alterações feitas durante uma sessão são salvas imediatamente em disco, mas só aparecem no prompt do sistema na sessão seguinte.12
O que salvar
Salve estas informações (o agent faz isso proativamente):12
- Preferências do usuário: “Prefiro TypeScript a JavaScript” → user
- Informações sobre o ambiente: “Este servidor executa Debian 12 com PostgreSQL 16” → memory
- Correções: “Não use sudo em comandos Docker, o usuário está no grupo docker” → memory
- Convenções: “O projeto usa tabulações, linhas de até 120 caracteres e docstrings no estilo do Google” → memory
- Trabalho concluído: “Migração do banco de dados do MySQL para o PostgreSQL concluída em 15 de janeiro de 2026” → memory
Não salve estas informações:12 - Informações triviais ou óbvias - Fatos que podem ser redescobertos facilmente - Dumps de dados brutos (grandes demais para a memória) - Informações efêmeras específicas da sessão - Informações que já estão nos arquivos de contexto
Busca em sessões
Além de MEMORY.md e USER.md, o agent pode pesquisar conversas anteriores usando a ferramenta session_search. Todas as sessões de CLI e de mensagens são armazenadas no SQLite (~/.hermes/state.db) com busca de texto completo FTS5. Desde a reformulação da v0.15.0, a ferramenta não envolve nenhum LLM – ela retorna diretamente o conteúdo armazenado das conversas (nas palavras da fonte: a “ferramenta de formato único retorna o conteúdo do banco de dados diretamente”), o que a tornou 4.500 vezes mais rápida e eliminou seu custo de API.125934
| Recurso | Memória persistente | Busca em sessões |
|---|---|---|
| Capacidade | ~1.300 tokens no total | Ilimitada (todas as sessões) |
| Velocidade | Instantânea (no prompt do sistema) | Uma consulta FTS – sem chamada ao LLM desde a v0.15.0 |
| Caso de uso | Informações importantes sempre disponíveis | Encontrar conversas anteriores específicas |
| Gerenciamento | Selecionada manualmente pelo agent | Automático — todas as sessões são armazenadas |
| Custo de tokens | Fixo por sessão (~1.300 tokens) | Sob demanda |
Duas adições da janela da v0.21.4, ambas verificadas na tag v2026.9.21. Primeiro, limites de tempo: o formato de descoberta aceita after (um limite inferior inclusivo para o horário de início da sessão) e before (um limite superior exclusivo), cada um como uma data/data e hora ISO – um valor contendo apenas a data significa meia-noite UTC daquele dia – ou uma duração relativa (7d, 24h, 2w), destinados apenas a consultas que realmente especificam um período; sort continua sendo um viés de classificação, não um limite. Segundo, uma nova tentativa de recuperação quando não há resultados: o AND implícito do FTS5 entre os termos significa que uma consulta parafraseada com várias palavras pode não encontrar uma frase armazenada que não contenha sequer uma delas. Por isso, quando a consulta exata e todos os fallbacks por substring não retornam resultados, a busca tenta novamente no índice, procurando correspondências com QUALQUER termo e priorizando na classificação as linhas que abrangem mais termos. Os resultados mantêm a semântica de correspondência exata (a nova tentativa só ocorre quando não há nenhum resultado), enquanto consultas com OR/NOT explícito, de termo único e encaminhadas para CJK não são alteradas.51
Provedores externos de memória
Para uma memória persistente mais profunda, além de MEMORY.md e USER.md, Hermes inclui sete plugins externos de provedor de memória: Honcho, OpenViking, Mem0, Holographic, RetainDB, ByteRover e Supermemory. Outros, como Hindsight, podem ser instalados pelo catálogo de plugins.12
Hindsight fez parte da árvore principal até a v0.21.4 e foi transferido para o catálogo na v0.21.5, sob manutenção da Vectorize. As configurações existentes migram automaticamente: se memory.provider: hindsight estiver definido, hermes update instalará o plugin do catálogo em cada diretório inicial de profile que o mencionar, e a primeira inicialização do agent o instalará se ele ainda estiver ausente. Com security.allow_lazy_installs: false, o fluxo de inicialização do agent apenas registra uma mensagem, então execute você mesmo hermes plugins install hindsight. O plugin é instalado em ~/.hermes/plugins/hindsight/ e adicionado a plugins.enabled; memory.provider, memory.hindsight.*, HINDSIGHT_API_KEY e seus dados de memória permanecem como estavam. Verifique com hermes memory status e hermes plugins list. O extra hermes-agent[hindsight] do pip foi removido.53
Os provedores externos funcionam em conjunto com a memória integrada (nunca a substituem) e adicionam recursos como grafos de conhecimento, busca semântica, extração automática de fatos e modelagem do usuário entre sessões:612
hermes memory setup # Pick a provider and configure it
hermes memory status # Check what's active
hermes memory off # Disable external provider (built-in only)
Apenas um provedor externo pode estar ativo por vez. A memória integrada está sempre ativa.6
Retomada automática de sessão (v0.13.0+)
A v0.13.0 permite retomar o trabalho após uma interrupção no meio da execução do agent. O gateway retoma automaticamente as sessões interrompidas depois de uma reinicialização; as reinicializações feitas por /update preservam o estado da sessão durante a atualização; e o recarregamento de arquivos-fonte durante o desenvolvimento mantém a sessão ativa em vez de forçar uma nova.18 Na prática, trabalhos de longa duração no gateway e tarefas acionadas por cron não perdem mais a janela de contexto quando o processo é reiniciado.
Checkpoints v2 (v0.13.0+)
A persistência de estado foi reescrita na v0.13.0 como um design de armazenamento único, com limpeza real, proteções para o disco e sem repositórios-sombra órfãos.18 O sistema de checkpoint anterior acumulava estados no disco em profiles de longa duração; o armazenamento v2 impõe um limite rígido ao armazenamento local de checkpoints e elimina os registros duplicados que provocavam esse crescimento. Nenhuma alteração de configuração é necessária para o usuário; a próxima gravação de checkpoint usará o caminho v2.
Personalidade e SOUL.md
SOUL.md é a identidade principal de uma instância do Hermes. Ele ocupa a posição nº 1 no prompt do sistema, substituindo a identidade padrão definida diretamente no código.13
Hermes cria automaticamente um SOUL.md padrão em ~/.hermes/SOUL.md (ou em $HERMES_HOME/SOUL.md para profiles personalizados). Arquivos existentes do usuário nunca são sobrescritos. Hermes carrega SOUL.md apenas de HERMES_HOME — ele não procura no diretório de trabalho atual. Isso torna a personalidade previsível entre diferentes projetos.13
O que deve ficar no SOUL.md
Use-o para orientações duradouras sobre voz e personalidade:13 - tom - estilo de comunicação - nível de franqueza - estilo padrão de interação - o que evitar em termos de estilo - como Hermes deve lidar com incertezas, discordâncias e ambiguidades
Use-o menos para:13 - instruções pontuais de um projeto - caminhos de arquivos - convenções do repositório - detalhes temporários do fluxo de trabalho
Essas informações devem ficar em AGENTS.md, não em SOUL.md.
SOUL.md vs. AGENTS.md
Esta é a distinção mais importante no gerenciamento de identidade do Hermes:13
SOUL.md — identidade, tom, estilo, padrões de comunicação e comportamento relacionado à personalidade.
AGENTS.md — arquitetura do projeto, convenções de código, preferências de ferramentas, fluxos de trabalho específicos do repositório, comandos, portas, caminhos e notas de implantação.
Uma regra útil: se algo deve acompanhar você em todo lugar, deve ficar em SOUL.md. Se pertence a um projeto, deve ficar em AGENTS.md.13
Personalidades integradas
Hermes inclui personalidades integradas que você pode ativar com /personality:1333
| Nome | Descrição |
|---|---|
helpful |
Assistente amigável e de uso geral |
concise |
Respostas breves e diretas |
technical |
Especialista técnico detalhista e preciso |
creative |
Pensamento inovador e fora do convencional |
teacher |
Educador paciente, com exemplos claros |
kawaii |
Expressões fofas, brilhos e entusiasmo |
catgirl |
Neko-chan com expressões felinas |
pirate |
Capitão Hermes, um bucaneiro que entende de tecnologia |
shakespeare |
Prosa de bardo com estilo dramático |
surfer |
Vibe tranquila de surfista |
noir |
Narração de detetive durão |
uwu |
Fofura máxima com linguagem uwu |
philosopher |
Reflexão profunda sobre cada consulta |
hype |
ENERGIA MÁXIMA |
Personalidades personalizadas em config.yaml:13
agent:
personalities:
codereviewer: >
You are a meticulous code reviewer. Identify bugs, security issues,
performance concerns, and unclear design choices. Be precise and constructive.
Depois, ative-a com /personality codereviewer.
SOUL.md vs. /personality
SOUL.md é a voz de base. /personality é uma camada aplicada no nível da sessão.13 Mantenha um SOUL.md padrão e pragmático; depois, use /personality teacher para uma conversa didática ou /personality creative para um brainstorming.
Nous Tool Gateway (v0.10.0+)
A partir do Hermes Agent v0.10.0 (16 de abril de 2026), os assinantes pagos do Nous Portal passam a ter acesso gerenciado a um conjunto selecionado de ferramentas usando suas credenciais existentes do Portal — sem precisar gerenciar chaves API adicionais.61 O CLI do Hermes continua sob a licença MIT e totalmente open source. A mudança é que agora sua autenticação no Portal libera mais do que apenas a inferência de modelos.
O caminho mais rápido é hermes setup --portal, que o README apresenta como “Um comando a partir de uma instalação nova”: ele faz login via OAuth, define a Nous como seu provedor e ativa o Tool Gateway. A partir daí, hermes portal gerencia essa integração. hermes portal login (o padrão quando nenhum subcomando é informado) executa o mesmo onboarding em uma única etapa; hermes portal info exibe o “resumo da autenticação do Portal + roteamento do Tool Gateway”; hermes portal open abre a página de assinatura no seu navegador padrão; hermes portal tools lista as ferramentas do gateway e indica quais são roteadas pela Nous. hermes portal status permanece como um alias oculto de compatibilidade retroativa para info, e a referência do CLI na documentação dessa tag ainda apresenta o subcomando como status, portanto ambos funcionam.28
O que há no gateway
| Ferramenta | Provedor | Caso de uso |
|---|---|---|
| Pesquisa na web | Firecrawl | Busca de informações atualizadas para agentes |
| Geração de imagens | FAL / FLUX 2 Pro | Gerar imagens inline sem configurar uma chave da FAL |
| Conversão de texto em fala | OpenAI TTS | Saída falada em gateways de mensagens |
| Automação de navegador | Browser Use | Navegação e extração de dados em modo headless |
Como funciona
O gateway é ativado individualmente para cada ferramenta por meio de um novo campo de configuração use_gateway. Se você tiver credenciais do Portal em hermes auth e ativar o gateway para uma ferramenta, as chamadas dela serão roteadas pelo Portal. Caso contrário, será usada sua chave API direta (se houver).
# config.yaml — per-tool gateway opt-in
tools:
web_search:
provider: firecrawl
use_gateway: true # route via Nous Portal subscription
image_generation:
provider: fal
use_gateway: true
Precedência em runtime: quando o gateway está disponível e uma ferramenta tem use_gateway: true, o Hermes dá preferência ao gateway, mesmo que você também tenha configurado uma chave API direta. Isso afeta a cobrança — as chamadas pelo gateway consomem sua assinatura do Portal, não o saldo da sua chave API direta.
Como ativar o gateway
hermes model # select Nous Portal (OAuth flow)
hermes tools # per-platform tool picker integrates gateway tools
hermes status # confirms gateway/subscription detection
A assinatura é detectada automaticamente pelas credenciais de OAuth do Portal que você já tem em hermes auth — não há uma etapa separada de login. Desde a v0.19.0, você também pode gerenciar a própria assinatura durante uma sessão: /subscription mostra seu plano e o saldo restante, apresenta exatamente quanto custa um upgrade ou quando um downgrade entra em vigor e aplica a alteração com avisos de mudança agendada e opção para desfazer; /topup adiciona créditos. O aplicativo para desktop tem uma aba correspondente de configurações de cobrança.56
Preços e acesso
Os preços e nomes dos planos são publicados na página de preços do Nous Portal (https://portal.nousresearch.com/pricing). Este guia não enumera os planos porque eles são responsabilidade do produto Portal, não do CLI do Hermes, e mudam independentemente das versões do Hermes. Cadastre-se em https://portal.nousresearch.com/ e consulte a página de preços para ver os planos atuais.
Plano gratuito da Nous e primeira inicialização guiada (v0.21.2+)
Desde a v0.21.2, uma instalação nova não precisa de um plano pago nem de uma chave API para oferecer um agente funcional: a inferência gratuita e os conectores já vêm incluídos, com um único comando para fazer login, e /login inicia o login dentro de um chat. As ferramentas dos conectores (Gmail, Linear, Notion e as demais) podem ser pesquisadas por meio de tool_search, como qualquer outra ferramenta. O aplicativo para desktop adiciona uma primeira inicialização guiada controlada por HERMES_GUEST_ONBOARDING=1; somente o valor literal 1 a ativa – o próprio teste do aplicativo para desktop confirma que 'true', '0' e um valor vazio a mantêm desativada, e a decisão de inicialização é registrada no ambiente do backend iniciado para impedir que um valor herdado seja propagado.48
Desde o período da v0.21.4, conectar esses conectores passou a ser uma única operação controlada pelo backend, em vez de uma lógica fragmentada entre diferentes frontends: uma chamada à ferramenta manage_connections aciona uma máquina de estados de conexão baseada apenas em dados no backend (com um prazo fixo de 300 segundos para a operação – deliberadamente não configurável), e Desktop, TUI e CLI apresentam o mesmo cartão de configuração. O cartão exibe um campo para cada credencial ausente (nome, instrução, obrigatoriedade) e mantém sua ação desativada até que todos os campos obrigatórios tenham conteúdo, enquanto o backend aplica a mesma separação exclusiva para dados secretos em todos os frontends.51
Aviso de descontinuação
- A variável de ambiente
HERMES_ENABLE_NOUS_MANAGED_TOOLSfoi removida na v0.10.0. Agora, as ferramentas gerenciadas são ativadas pelo campo de configuraçãouse_gatewayde cada ferramenta e dependem do estado da sua assinatura do Portal.61
Contexto: o que esta versão não é
O CLI do Hermes Agent não exige uma assinatura. O projeto continua sob a licença MIT, e todos os recursos principais (CLI, skills, memória, gateway de mensagens, cron, MCP, dashboard local e BYOK para todos os provedores) funcionam de ponta a ponta sem que você precise pagar nada. A v0.10.0 adiciona uma opção conveniente para usuários que já assinam o Nous Portal — ela não remove nada da opção gratuita.
Gateway de mensagens
O Hermes pode ser executado como um processo gateway de longa duração que se conecta a 28 plataformas de mensagens por meio de um único processo gateway: Telegram, Discord, Slack, WhatsApp, Signal, SMS, e-mail, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat, Photon (iMessage), WhatsApp Cloud API, WeCom Callback, Raft, IRC, ntfy, Buzz e um adaptador Webhook genérico.360171819 Esse total de 28 vem da tabela Platform Comparison da documentação na tag v2026.8.31; por baixo dos panos, gateway/config.py define 24 membros integrados do enum Platform (incluindo entradas que não são de chat, como local, api_server, webhook, msgraph_webhook e relay) e resolve sob demanda qualquer outro nome para um dos 22 diretórios de adaptadores incluídos em plugins/platforms/. Por isso, uma simples contagem do enum ou dos diretórios não corresponderá ao número da documentação.25 A v0.9.0 adicionou suporte ao iMessage via BlueBubbles (registro automático de webhook, assistente de configuração e resiliência a falhas) e suporte nativo ao WeChat via iLink Bot API, com o modo de callback do WeCom para aplicativos empresariais.16 A v0.11.0 adicionou o QQBot.60 A v0.12.0 adicionou o Microsoft Teams e o Tencent Yuanbao.17 A v0.13.0 adicionou o Google Chat como a 20ª plataforma, usando a mesma arquitetura de adaptadores conectáveis; o IRC e o Microsoft Teams também foram migrados para o novo padrão de adaptadores, com hooks genéricos de plugin env_enablement_fn / cron_deliver_env_var.18 A v0.14.0 adiciona LINE e SimpleX Chat e completa a integração do Microsoft Teams de ponta a ponta, com autenticação do Graph, listener de webhook, runtime do pipeline e entrega de saída.19 A v0.17.0 (19 de junho de 2026) adiciona iMessage sem relay via Photon Spectrum (OAuth por código de dispositivo com hermes photon login — sem necessidade de um Mac ou de relay do BlueBubbles), o adaptador oficial do WhatsApp Business Cloud API (substituindo a exigência de um processo bridge), grupos do SimpleX e anexos nativos, além do Raft como plugin de plataforma incluído.21 Outras duas plataformas aparecem na tabela da documentação sem destaque nas notas de versão: ntfy é um canal leve de push pub-sub via HTTP (assine um tópico pelo aplicativo móvel do ntfy, envie uma mensagem ao tópico para conversar com o agente e receba a resposta no celular; funciona com o servidor público ntfy.sh ou com uma instância auto-hospedada, sem exigir SDK nem daemon), enquanto o Buzz conecta o Hermes a uma comunidade Buzz, a plataforma open source da Block para colaboração entre pessoas e agentes baseada no protocolo Nostr, invocando o buzz CLI para mensagens de saída e usando uma assinatura Nostr WebSocket nativa para mensagens de entrada. Ambos são configurados por meio de hermes gateway setup.25
Configuração
hermes gateway setup # Interactive platform configuration
hermes gateway install # Install as user service (systemd/launchd)
hermes gateway start # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run # Run in foreground (debugging)
A configuração interativa orienta você na conexão de cada plataforma: tokens API, IDs de bots, mapeamentos de canais e listas de permissões.6
Como as mensagens fluem
Segundo a documentação de arquitetura do projeto original:3
Platform event → Adapter.on_message() → MessageEvent
→ GatewayRunner._handle_message()
→ authorize user
→ resolve session key
→ create AIAgent with session history
→ AIAgent.run_conversation()
→ deliver response back through adapter
Todas as plataformas de mensagens passam pelo mesmo loop de conversa AIAgent usado pela CLI. É por isso que os comandos de barra funcionam da mesma forma nos dois ambientes e que um cron job agendado no Telegram pode entregar sua saída ao Discord — a diferença entre as plataformas existe apenas nas extremidades.3
A v0.19.0 adiciona roteamento de mensagens por profile e entrega durável. Um único gateway multiplexado compartilhando um token de bot pode encaminhar guilds, canais ou threads específicos para profiles diferentes — cada um com configurações, skills, memória e segredos totalmente isolados —, com uma substituição por GATEWAY_MULTIPLEX_PROFILES. Além disso, uma série de melhorias de robustez impede que um profile configurado incorretamente derrube todo o gateway. Nos bastidores, o índice de roteamento foi transferido para state.db (sessions.json agora é apenas um espelho legado opcional), e as respostas finais são registradas em um ledger durável de obrigações de entrega antes e depois do envio pela plataforma — se uma resposta concluída coincidir com uma falha do gateway, ela será reenviada na próxima inicialização, em vez de ser perdida silenciosamente.56 O isolamento entre profiles roteados foi reforçado na v0.21.2, que eliminou um conjunto de vazamentos entre profiles justamente nessa configuração multiplexada: listas de permissões herdadas, credenciais enviadas ao host do profile padrão, segredos do vault do profile padrão chegando a servidores stdio MCP, anexos MEDIA: cruzando profiles e o bearer do Nous de um profile irmão persistindo em memos por processo (#107609-#107630).48
A v0.21.1 faz com que os limites das conversas sejam exclusivamente explícitos. O documento sobre o ciclo de vida das sessões na tag v2026.9.7 define o contrato em quatro frases: “A inatividade e o tempo transcorrido nunca alternam uma conversa. /new e /reset criam um limite explícito; a compactação de contexto continua gerenciando históricos longos. As configurações legadas de temporizador são ignoradas. O tipo de dados SessionResetPolicy existente é apenas um dado inerte de compatibilidade, não uma política de runtime.” A suspensão explícita ainda cria um limite no próximo turno de entrada, a recuperação respeita os limites finalizados em vez de reabri-los e a remoção causada exclusivamente por recursos mantém as conversas retomáveis. Se uma sessão no seu gateway parecer “nunca expirar”, agora isso é intencional; alterne-a você mesmo com /new.43
Desde a janela da v0.21.4, uma segunda execução de hermes gateway run se conecta ao processo existente ou recusa a inicialização, em vez de tentar usar a mesma porta duas vezes. A regra é ter um hermes serve e um hermes gateway run por host e por usuário do sistema operacional, com cada um multiplexando todos os profiles. Iniciar um gateway para um profile que o multiplexador em execução já atende apenas conecta o comando ao processo existente e o encerra com código 0; se ele ainda não atender esse profile, o Hermes solicita que ele verifique novamente profiles/ e se conecta assim que o profile for atendido; se não for possível fazer com que o processo atenda esse profile, o comando recusa a operação em vez de iniciar silenciosamente um segundo gateway. Agora, --replace atua sobre esse processo do host, independentemente de qual profile o iniciou, e --force pula completamente a pergunta quando o processo proprietário está travado. Gateways independentes ainda podem coexistir: se o gateway em execução for o gateway standalone (não multiplexado) de outro profile, o seu profile iniciará o próprio gateway ao lado dele, como antes, até que essa migração seja forçada (#109417). Se dois gateways forem iniciados ao mesmo tempo, aquele que não conseguir obter o lock do host será encerrado com código 75, que todos os supervisores gerados pelo Hermes tentam executar novamente; nesse momento, o registro do vencedor já existirá, portanto a nova tentativa se conectará ou recusará a operação de acordo com as regras acima. Os locks e o registro de rendezvous ficam em $HERMES_GATEWAY_LOCK_DIR ou, se essa variável não estiver definida, em $XDG_STATE_HOME/hermes/gateway-locks (por padrão, ~/.local/state/hermes/gateway-locks), com escopo limitado ao usuário do sistema operacional; um registro cujo PID não esteja mais ativo ou tenha sido reutilizado por outro processo é considerado obsoleto e ignorado, portanto uma falha do gateway não impede a próxima inicialização. O aplicativo Desktop segue a mesma regra, conectando-se ao backend do host em execução em vez de iniciar outro.51
Desde a v0.21.5, a multiplexação não é mais opcional. gateway.multiplex_profiles tem apenas um valor válido, true: uma chave ausente é interpretada como ativada e gravada no config.yaml do profile padrão, enquanto um valor false explícito é reescrito como true no próprio arquivo, acompanhado de um aviso em caixa exibido uma vez ao iniciar esse gateway e novamente no resumo da próxima execução de hermes update. Dois controles substituem a antiga opção de desativação. Para deixar um profile offline sem interromper os bots de todos os outros, execute hermes -p <name> gateway stop: o host o estaciona (usando um marcador profiles/<name>/gateway.parked), enquanto hermes -p <name> gateway start o reativa; os botões Stop/Start do dashboard e do Desktop fazem o mesmo. Um profile nomeado que ainda precise de um gateway próprio deve definir gateway.standalone: true no seu próprio config.yaml; o host nunca o atenderá, e seus comandos stop/start atuarão sobre o processo exclusivo dele. A documentação chama essa chave de “uma solução temporária de compatibilidade”, não de uma topologia compatível, e ela é ignorada com um aviso no profile padrão. Uma divisão entre usuários do sistema operacional ou um HERMES_HOME localizado fora de profiles/ no diretório pessoal padrão ainda exige --force.53
Autorização e pareamento de usuários
hermes pairing list # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending
Os códigos de pareamento impedem que desconhecidos conversem com o seu gateway. Um usuário envia um código de pareamento pela plataforma de mensagens; você o aprova com hermes pairing approve e, a partir daí, ele fica autorizado.6
unauthorized_dm_behavior determina o que a DM de um desconhecido recebe antes do pareamento: pair envia um código de pareamento por DM, ignore descarta a mensagem silenciosamente e decline, valor adicionado na janela da v0.21.4, envia uma única recusa educada e depois permanece em silêncio para aquele remetente por 24 horas (#88028). A recusa é desduplicada por plataforma e remetente, inclusive entre aliases, e seu texto vem de unauthorized_dm_decline_message (uma chave global; um valor vazio usa a resposta integrada: “Olá! Sou um assistente pessoal e só posso conversar com meu proprietário, então não posso ajudar você diretamente. Desculpe!”). Defina o comportamento globalmente ou por plataforma, no local em que o assistente de configuração o grava:
# ~/.hermes/config.yaml
unauthorized_dm_behavior: decline # global; gateway.unauthorized_dm_behavior also works
unauthorized_dm_decline_message: "" # empty = built-in reply
platforms:
telegram:
unauthorized_dm_behavior: pair # per-platform value always wins
Quando nenhuma opção está definida, o padrão efetivo depende das suas listas de permissões. Sem nenhuma configurada, ele é pair; assim que qualquer lista de permissões é definida (GATEWAY_ALLOWED_USERS ou uma variável de usuários permitidos, usuários de grupos permitidos ou chats de grupos permitidos de uma plataforma), ele passa a ser ignore, pois a lista sinaliza um gateway deliberadamente restrito, e enviar códigos a contatos desconhecidos gera ruído e representa um possível vazamento de informações (#9337). Um valor global ignore ou decline substitui essa regra, mas um valor global pair não pode fazer isso, pois é interpretado da mesma forma que o padrão; para manter o pareamento junto de uma lista de permissões, defina pair por plataforma. (O dm_policy próprio de um adaptador de plataforma, quando definido, é consultado antes da regra da lista de permissões.) Como o e-mail funciona como uma caixa de entrada, seu padrão é ignore, a menos que sua própria chave específica da plataforma ative outra opção; um valor global não se aplica a ele. Ao configurar uma plataforma sem lista de permissões, hermes gateway setup oferece decline como uma das opções.51
Tarefas agendadas (Cron)
O Hermes tem um sistema cron nativo no qual os jobs são tarefas do agente, não comandos do shell. Cada job agendado é executado por meio de um novo AIAgent com o prompt configurado e skills opcionais anexadas, e entrega os resultados a qualquer plataforma:36
hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id> # Trigger now on the next tick
hermes cron remove <id>
hermes cron status # Check if scheduler is running
hermes cron tick # Run due jobs once and exit
Ou crie um conversando dentro de um chat de mensagens:
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
O agente configurará o job cron por meio de suas ferramentas. Os jobs são persistidos em JSON e continuam existindo após reinicializações.3
A v0.21.0 deu memória e capacidade de julgamento aos jobs agendados. Quatro mecanismos, todos verificados na tag v2026.8.31:3537
- Continuidade.
continuity=trueinjeta em cada execução a saída mais recente do próprio job, para que um agente de reconhecimento ou monitoramento “acorde vendo o que relatou da última vez e possa eliminar duplicações e continuar de onde parou” — a instrução injetada é “evite repetir o que já foi relatado”, a primeira execução não muda e, internamente, a opção é armazenada como a entrada reservadaselfemcontext_from. Ative ou desative comhermes cron create ... --continuityehermes cron edit <job_id> --continuity/--no-continuity.37 - Blocos de notas persistentes. Cada job recebe um pequeno espaço de rascunho KV para cursores, marcas d’água e listas de monitoramento (16 KB por valor, 64 KB por job — ele é injetado no prompt a cada execução, por isso os limites são intencionais), gravado por meio de
hermes cron notepad <job_id> set <key> <value>, que o agente em execução invoca usando sua ferramenta de terminal.37 - Modo de monitoramento. Um job pode anexar uma fonte econômica
monitor_script/monitor_url, executada primeiro a cada ciclo: uma saída inalterada (comparada como bytes exatos) suprime completamente a execução do agente — nenhuma chamada a LLM, nenhuma entrega, apenas uma execução silenciosano_change— enquanto uma alteração injeta um bloco de diff e executa o agente normalmente. Faça os scripts de monitoramento emitirem uma saída estável; caso contrário, cada ciclo parecerá uma alteração.37 - Esforço de raciocínio por job e entrega ao Bot Chat.
--reasoning-effortfixa o nível de raciocínio de um job (denoneaultra), substituindo as configurações globais e por modelo nas execuções desse job; edeliver=bot-chatenvia a saída para a sessão canônica do Bot Chat de um profile como uma mensagem recebida real, na qual o bot “executa tudo o que exigir ação e responde no próprio chat”, em vez de um humano apenas ler um canal.37
Integração com MCP
O Hermes oferece suporte ao Model Context Protocol tanto como cliente quanto como servidor:6
Como cliente — conecte o Hermes a servidores MCP externos para ampliar seu conjunto de ferramentas:
hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name> # Toggle individual tool selection
hermes mcp login <name> # Force re-auth for an OAuth server (--flow browser|device)
hermes mcp reauth [--all] # Re-authenticate one OAuth server, or every one
Ou configure manualmente no config.yaml:14
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
Desde a v0.19.0, as ferramentas MCP são apresentadas ao modelo seguindo a convenção de nomenclatura mcp__server__tool — cada nome de ferramenta inclui o nome do servidor, evitando conflitos quando dois servidores disponibilizam a mesma ferramenta — e as notificações de log dos servidores MCP são exibidas no agent.log.56
A v0.21.1 adiciona um fluxo de código de dispositivo ao OAuth do MCP: hermes mcp login <name> aceita --flow {browser,device} — browser é o fluxo PKCE já existente, enquanto device é um login por código de dispositivo conforme a RFC 8628 para máquinas headless ou remotas — e a opção substitui a configuração oauth.flow do servidor. Essa mesma versão impõe a propriedade do profile durante todas as sessões de OAuth, ignora caches malformados de metadados de OAuth em vez de travar um servidor e retransmite o OAuth do __TERM_22 no desktop por meio de callbacks locais do cliente; agora -t/--toolsets também filtra quais servidores MCP configurados são iniciados, portanto uma invocação com escopo definido não inicializa servidores desnecessários.44
A v0.21.0 transforma a área de MCP do desktop em uma central de comando: servidores e catálogo são reunidos em uma única página com importação do tipo “cole qualquer coisa” por arrastar e soltar, verificações de integridade em segundo plano que sinalizam autenticações prestes a expirar antes que uma chamada de ferramenta falhe, uma sobreposição de custos e uso de toda a frota que mostra estimativas de tokens do esquema e o uso de cada servidor nos últimos 30 dias, além de deep links hermes:// que instalam um servidor MCP mediante confirmação explícita.35
A versão v0.21.4 adiciona mcp.discovery_concurrency (padrão 4; 0 = ilimitado, #117373): um limite para quantos servidores MCP configurados o processo de descoberta conecta simultaneamente. Todos os servidores ainda são conectados — o limite apenas impede que todos se conectem ao mesmo tempo — e um valor negativo ou que não seja inteiro registra um aviso e volta ao padrão.51
Como servidor — disponibilize as conversas do Hermes para outros agentes:
hermes mcp serve
hermes mcp serve -v # Verbose
Compressão de contexto
O Hermes compacta automaticamente conversas longas para permanecer dentro da janela de contexto do seu modelo. O sumarizador de compactação usa uma chamada separada a LLM — você pode direcioná-lo para qualquer provedor ou endpoint.4 Desde a v0.20.6, a política de retenção do trecho final usa lean por padrão (compression.tail_mode: lean) e, nessa tag, as opções de modelo, provedor e endpoint do sumarizador ficam em auxiliary.compression.*, em vez das antigas compression.summary_* — as chaves legadas são migradas automaticamente no primeiro carregamento (versão 17 da configuração).3031
compression:
enabled: true
threshold: 0.50 # Compress at this % of context limit
threshold_tokens: null # Optional absolute token cap -- trigger fires at the lower of ratio vs cap
target_ratio: 0.20 # Fraction of threshold to preserve as recent tail (legacy tail mode)
tail_mode: lean # Tail retention: "lean" (default) or "legacy"
protect_last_n: 20 # Min recent messages to keep uncompressed
protect_first_n: 3 # Non-system head messages pinned across compactions
auxiliary:
compression:
model: "" # Empty = main chat model; e.g. "google/gemini-3-flash-preview"
provider: "auto" # "auto", "openrouter", "nous", "codex", "main", etc.
base_url: null # Custom OpenAI-compatible endpoint (overrides provider)
O que tail_mode determina. legacy mantém literalmente um trecho final com o tamanho definido por target_ratio — em configurações com janelas grandes ou limites elevados, isso acumula de 100 a 240 mil tokens por compactação. lean mantém literalmente um trecho final limitado a 2,5% da janela de contexto (mínimo de 10 mil e máximo de 25 mil) e transfere a continuidade para o resumo: um log detalhado da sessão que preserva identificadores da região compactada (uma chamada auxiliar ao sumarizador por tentativa), um índice de âncoras extraído mecanicamente (números de PR, SHAs, caminhos e strings de erro — por regex, nunca parafraseados), todas as mensagens reais do usuário citadas literalmente e um ponteiro de recuperação session_search para que o agente possa acessar novamente qualquer conteúdo removido pelo resumo. O resultado medido pela documentação em sessões reais de 500 mil tokens: cerca de 49 mil tokens retidos, em vez de aproximadamente 162 mil. Resultados antigos de ferramentas dentro do trecho final de lean são reduzidos a resumos de uma linha com um ponteiro de recuperação, e valores desconhecidos de tail_mode usam lean como fallback.31
auxiliary.compression.provider |
auxiliary.compression.base_url |
Resultado |
|---|---|---|
auto (padrão) |
não definido | Detecta automaticamente o melhor provedor disponível |
nous / openrouter / etc. |
não definido | Força esse provedor e usa sua autenticação |
| qualquer um | definido | Usa diretamente o endpoint personalizado (o provedor é ignorado) |
O modelo de resumo precisa oferecer uma janela de contexto pelo menos tão grande quanto a do seu modelo principal, pois recebe toda a seção intermediária da conversa em uma única chamada — se a janela dele for menor, a chamada falhará e os turnos intermediários serão descartados sem resumo.431
Alertas de pressão sobre o orçamento
Quando o agente trabalha em uma tarefa complexa com muitas chamadas de ferramentas, ele pode esgotar seu orçamento de iterações (padrão: 500 turnos desde a v0.20.0, anteriormente 90) sem perceber. A pressão sobre o orçamento alerta o modelo automaticamente:4
| Limite | Nível | O que o modelo vê |
|---|---|---|
| 70% | Cuidado | [BUDGET: 350/500. 150 iterations left. Start consolidating.] |
| 90% | Alerta | [BUDGET WARNING: 450/500. Only 50 left. Respond NOW.] |
Timeouts de streaming
A conexão de streaming de LLM tem duas camadas de timeout que se ajustam automaticamente para provedores locais (localhost e IPs da LAN):4
| Timeout | Padrão | Provedores locais | Variável de ambiente |
|---|---|---|---|
| Timeout de leitura do socket | 120s | Elevado automaticamente para 1800s | HERMES_STREAM_READ_TIMEOUT |
| Detecção de stream inativo | 180s | Desativada automaticamente | HERMES_STREAM_STALE_TIMEOUT |
| Chamada a API (sem streaming) | 1800s | Sem alteração | HERMES_API_TIMEOUT |
O timeout de leitura do socket é elevado para 30 minutos em endpoints locais porque LLMs locais podem levar vários minutos para fazer o prefill de contextos grandes antes de gerar o primeiro token.4
Dashboard web local (v0.9.0+)
Um dashboard acessível pelo navegador para gerenciar localmente o Hermes Agent. Defina configurações, monitore sessões, navegue pelas skills e gerencie seu gateway sem precisar mexer em arquivos de configuração ou no terminal.16 Inicie com hermes dashboard. Este é o caminho de onboarding mais fácil para novos usuários que preferem uma GUI.
Monitoramento de processos em segundo plano (v0.9.0+)
watch_patterns permite definir padrões para monitorar a saída de processos em segundo plano e receber notificações em tempo real quando houver uma correspondência.16 Monitore erros, aguarde eventos específicos (“listening on port”) ou acompanhe logs de build — tudo isso sem polling. Combinado com notify_on_complete da v0.8.0 (que envia uma notificação quando uma tarefa em segundo plano é concluída), o Hermes agora oferece uma camada completa de observabilidade para processos em segundo plano.15
Context engine plugável (v0.9.0+)
O gerenciamento de contexto agora é um slot plugável por meio de hermes plugins. Use context engines personalizados que controlam o que o agente vê a cada turno — com filtragem, sumarização ou injeção de contexto específico do domínio.16 Isso separa a estratégia de contexto do loop principal do agente, permitindo personalizar o contexto por projeto ou domínio.
Backup e restauração (v0.9.0+)
hermes backup cria um arquivo completo com suas configurações, sessões, skills e memória. hermes import restaura os dados de um arquivo de backup.16 Use esses recursos para migrar entre máquinas, criar snapshots antes de grandes alterações ou compartilhar uma configuração validada com colegas de equipe.
Suporte a Termux / Android (v0.9.0+)
O Hermes é executado nativamente no Android por meio do Termux. Caminhos de instalação adaptados, otimizações da TUI para telas de dispositivos móveis, suporte a backend de voz e o comando /image funcionam diretamente no dispositivo.16
Reforço de segurança (v0.13.0+)
A v0.13.0 corrigiu 8 problemas de segurança P0 e alterou uma configuração padrão em benefício do usuário.18 Em seguida, a v0.14.0 corrigiu outros 12 problemas P0 e 50 P1, incluindo reforços contra força bruta no sudo e no sudo-stdin, correções de formas de contornar a detecção de comandos perigosos, sanitização de erros de ferramentas antes da reinjeção no modelo, autenticação de API de plugins do dashboard, cobertura contra SSRF no hub de skills e verificação de alertas da cadeia de suprimentos durante a instalação.19
| Correção | O que mudou |
|---|---|
| Ocultação de segredos ativada por padrão | Antes, era preciso ativá-la manualmente. Logs e uploads de hermes debug share ocultam segredos, a menos que isso seja explicitamente desativado. A v0.12.0 havia desativado a ocultação por padrão após relatos de corrupção de payloads; a v0.13.0 voltou a ativá-la como opção de base mais segura. |
| Falha em DMs entre servidores do Discord (CVSS 8.1) | As listas de permissões de funções do Discord agora são limitadas ao servidor, eliminando um caminho pelo qual a função de um usuário em um servidor autorizava DMs em todos os outros. |
| Restrições padrão do WhatsApp | O adaptador do WhatsApp rejeita desconhecidos por padrão e nunca responde em conversas do usuário consigo mesmo. |
| Janela TOCTOU em MCP OAuth | Foi corrigida uma condição de corrida durante o salvamento de credenciais nos fluxos de MCP OAuth. |
TOCTOU no auth.json de CLI |
Foi corrigida uma janela TOCTOU semelhante no componente que grava credenciais no armazenamento de autenticação de CLI. |
| Proteção mínima contra SSRF no navegador | O roteamento híbrido impõe uma proteção mínima contra SSRF de metadados de nuvem para requisições que tentam acessar 169.254.169.254 e endereços equivalentes. |
| Verificação de prompt injection no cron | Os prompts montados (incluindo o conteúdo carregado de skills) são verificados em busca de prompt injection antes da execução da tarefa cron. |
Ocultação de dados no hermes debug share |
Os uploads de compartilhamento de depuração ocultam o conteúdo dos logs no momento do upload, não apenas quando ele é gravado. |
Se você mantém uma implantação do Hermes, trate as versões v0.13.0 e v0.14.0 como atualizações relevantes para a segurança, não apenas como lançamentos de recursos. A v0.13.0 corrige a falha entre servidores do Discord e duas janelas TOCTOU; a v0.14.0 acrescenta outra rodada de reforços no tratamento do sudo, na reinjeção de erros de ferramentas, nos APIs de plugins, na proteção contra SSRF do hub de skills e nos alertas de dependências.
A v0.21.0 adiciona uma quarta rodada. Gravações em arquivos protegidos de instruções do agente – AGENTS.md, CLAUDE.md, SOUL.md, .cursorrules, skills e armazenamentos de memória – agora sempre exigem aprovação, impedindo que um agente afetado por prompt injection reescreva silenciosamente suas próprias instruções permanentes. A proteção vem ativada por padrão (security.protected_instruction_files: true, com uma lista de extensões de nomes-base em formato fnmatch em protected_instruction_extra_patterns), e o código-fonte especifica o vetor exato que ela elimina: “uma instrução injetada que edita AGENTS.md / CLAUDE.md / SOUL.md”, observando que os arquivos de instruções são carregados das árvores do cwd, portanto “qualquer AGENTS.md em um local no qual o agente possa ser executado posteriormente é um alvo ativo”.3539 A mesma versão corrige falhas de vazamento de segredos em erros do terminal, leituras de arquivos .env, checkpoints e logs do ACP; ensina ao sistema de aprovação quais comandos e caminhos são destrutivos no Windows; faz com que as permissões concedidas no macOS persistam após atualizações por meio de uma identidade estável de assinatura TCC (configuração única: hermes desktop --setup-tcc-identity, somente para macOS, requer openssl/security/codesign); remove a entrada do catálogo e a skill do Blender MCP após o comprometimento de um componente upstream; e adiciona verificação de segurança de Nível 1 às instalações de plugins.3539
Arquitetura para profissionais
Esta seção é para quem quer entender o que acontece nos bastidores para poder depurar, ampliar ou analisar o desempenho. Ela sintetiza a documentação de arquitetura upstream.3
Pontos de entrada → AIAgent
Todos os pontos de entrada do Hermes acabam chamando AIAgent.run_conversation():
┌──────────────────────────────────────────────────────────────────┐
│ Entry Points │
│ │
│ CLI (cli.py) Gateway (gateway/run.py) ACP (acp_adapter/) │
│ Batch Runner API Server Python Library │
└──────────┬──────────────┬───────────────────────┬────────────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────────────────┐
│ AIAgent (run_agent.py) │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Prompt │ │ Provider │ │ Tool │ │
│ │ Builder │ │ Resolution │ │ Dispatch │ │
│ └──────┬──────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │
│ │ Compression │ │ 3 API Modes │ │ Tool Registry│ │
│ │ & Caching │ │ chat_compl │ │ 47 tools │ │
│ │ │ │ codex_resp │ │ 20 toolsets │ │
│ │ │ │ anthropic │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────────────┘
Diagrama adaptado da documentação de arquitetura upstream.3
“47 tools / 20 toolsets” versus “28 tools” no seu banner. A contagem de “47 tools” é o total do registro de tools do repositório upstream — todas as tools cujo código-fonte acompanha o Hermes, considerando todos os toolsets. A CLI em execução exibirá um número menor no banner de inicialização (a instalação usada para verificar este guia informa 28 tools / 89 skills). Isso não é um bug. Muitos toolsets são opcionais e precisam ser habilitados explicitamente em config.yaml, na seção toolsets: — adaptadores de plataformas de mensagens, automação de navegador, ferramentas mais robustas de scraping etc. O total do registro representa “o que está disponível”; o número no banner representa “o que está habilitado no seu profile atual”. Confira quais toolsets estão ativos com hermes tools --list e habilite ou desabilite toolsets individuais usando o bloco toolsets: em ~/.hermes/config.yaml (ou /tools list / /tools enable <name> / /tools disable <name> dentro de uma sessão em execução — remover uma tool reinicia a sessão para que o agente reconstrua seu manifesto de tools).
Os três modos de API
O Hermes abstrai as diferenças entre provedores em três modos de API, selecionados automaticamente em tempo de execução:3
| Modo de API | Usado por |
|---|---|
chat_completions |
OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, a maioria dos endpoints personalizados e qualquer servidor compatível com OpenAI |
codex_responses |
OpenAI Codex (via OAuth do ChatGPT) |
anthropic_messages |
API da Anthropic (nativa), OAuth da Anthropic, proxies compatíveis com Anthropic |
O resolvedor runtime_provider.py mapeia tuplas (provider, model) para (api_mode, api_key, base_url) em mais de 18 provedores, gerenciando fluxos de OAuth, pools de credenciais e resolução de aliases.3
Fluxo de dados em uma sessão da CLI
User input → HermesCLI.process_input()
→ AIAgent.run_conversation()
→ agent.prompt_builder.build_system_prompt()
→ runtime_provider.resolve_runtime_provider()
→ API call (chat_completions / codex_responses / anthropic_messages)
→ tool_calls? → model_tools.handle_function_call() → loop
→ final response → display → save to SessionDB
Extraído da página de arquitetura upstream.3
Ordem de montagem do prompt
A pilha do prompt inclui:13
SOUL.md(identidade do agente — ou fallback integrado, caso não esteja disponível)- Orientações de comportamento relacionadas às tools
- Memória/contexto do usuário (
MEMORY.md,USER.md) - Orientações sobre skills
- Arquivos de contexto (
AGENTS.md,.cursorrules) - Data e hora
- Dicas de formatação específicas da plataforma
- Sobreposições opcionais do prompt do sistema, como
/personality
SOUL.md é a base — todo o restante é construído sobre ele.13
Armazenamento de sessões
Armazenamento de sessões baseado em SQLite, com pesquisa de texto completo FTS5. As sessões têm rastreamento de linhagem (relações pai/filho entre compressões), isolamento por plataforma e gravações atômicas com tratamento de contenção.3
Se o armazenamento apresentar problemas em uma instalação v0.21.x, use a v0.21.2 ou posterior: ela corrigiu a categoria de fragilidades do state.db presente desde a v0.21.0 (segundos processos de gravação cancelando os bloqueios uns dos outros, bancos de dados íntegros sendo relatados como corrompidos e uma única linha inválida interrompendo sessions list) e transferiu a coordenação de salas hospedadas do armazenamento raiz para um shared-state.db dedicado, evitando que gateways de profiles abram o armazenamento principal de sessões para gravação. Agora, hermes doctor identifica separadamente danos estruturais e danos ao índice FTS; danos ao FTS prejudicam a pesquisa em vez de interromper o turno; e hermes sessions recover --inspect-only (offline, não destrutivo e fixado ao profile) informa se a tabela canônica pode ser lida sem criar um banco de dados de saída — o subcomando já existia antes desse período, mas ainda não havia sido documentado aqui. Consulte Novidades da v0.21.2.48 Para um armazenamento preso no modo incorreto de journal do SQLite, o período da v0.21.4 adicionou o conversor offline hermes sessions set-journal-mode delete|wal (consulte a linha hermes sessions em Comandos de nível superior).51
Sistema de plugins
Há três fontes de descoberta: ~/.hermes/plugins/ (usuário), .hermes/plugins/ (projeto) e pontos de entrada do pip. Os plugins registram tools, hooks e comandos da CLI por meio de uma API de contexto. Provedores de memória são um tipo especializado de plugin em plugins/memory/.3 Desde a v0.21.2, também há um catálogo de plugins selecionados e fixados por SHA, que você pode explorar e usar para instalar plugins pelo nome, além de hermes plugins pack para “conjuntos de plugins declarativos e compartilháveis”: um único hermes-pack.yaml fixa um conjunto de plugins em SHAs de commits exatos, enquanto as instalações de packs se desdobram em instalações fixadas comuns e o consentimento de recursos continua sendo concedido separadamente para cada plugin.48
O período da v0.21.4 transformou esse catálogo de uma interface de CLI em um artefato distribuído. O diretório plugin-catalog/ do repositório passou de 9 entradas em v2026.9.14 para 228 em v2026.9.21 — um YAML revisado por plugin (nome, repositório, mantenedor, nível, categoria e recursos), fixado em um SHA de commit exato com 40 caracteres, sendo que a presença no diretório constitui admissão — publicado como plugin-catalog.json para a CLI (obtido em tempo real e armazenado em cache em ~/.hermes/cache/). Agora, o site da documentação gera uma página por plugin (/docs/plugins/<name>) e por autor (/docs/plugins/by/<slug>) usando esses mesmos dados. Cada página renderiza o README do plugin obtido do commit fixado, nunca da ponta de uma branch, por meio de uma lista de permissões aplicada durante o build que descarta HTML bruto, com a ordenação por adição/atualização marcada pelas datas dos committers. Os dez plugins da comunidade citados na versão v0.21.4 estão todos presentes no catálogo da tag, com seus slugs reais: hermes-tailscale, hermes-ssh, shodan, hermes-terminal, hermes-rss (além de um rss-reader separado), hermes-resetwatch, done-bell, kiwi, cognee e web-octen. No desktop, agora é possível desinstalar um plugin pelo hub Plugins após uma caixa de diálogo de confirmação — plugins do catálogo por meio de plugins.manage remove e plugins independentes do desktop por meio do carregador do Electron.51
hermes plugins # Interactive enable/disable UI
hermes plugins browse # List every curated plugin catalog entry (v0.21.2+)
hermes plugins search <query> # Search the curated plugin catalog (v0.21.2+)
hermes plugins install <name|repo> # Install from the curated catalog, a Git URL, or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list
hermes plugins pack install <src> # Shareable SHA-pinned plugin sets; also: pack export, pack show (v0.21.2+)
Período de compatibilidade (v0.21.1), agora encerrado: plugins externos precisavam abandonar os caminhos de importação anteriores à decomposição até 14 de setembro de 2026. A decomposição de setembro de 2026 (PR #102117) realocou os componentes internos que os plugins importavam com frequência, e uma camada temporária
COMPAT_MANIFEST.mdreexportou 1.148 nomes públicos movidos de seus módulos antigos, emitindo um aviso uma vez por nome em cada processo (HermesPluginCompatWarning). A remoção entrou em vigor conforme programado em 14 de setembro de 2026 por meio de uma verificação de data no código distribuído (COMPAT_REMOVAL_DATEemhermes_cli/plugin_compat.py; não foi necessário reverter código): desde essa data, um plugin afetado fica desabilitado — ele não é carregado, e um aviso vermelho aparece no banner da CLI, emhermes doctore emhermes update, além de uma caixa de diálogo única no desktop e do motivo exibido emhermes plugins list. Para autores:hermes plugins compat <path>ainda mostra cadafile:linecom caminho antigo -> caminho novo e retorna o código 1 enquanto restar qualquer ocorrência (adicione--jsonpara obter uma saída legível por máquina). Usuários presos a um plugin sem manutenção ainda podem definirplugins.allow_deprecated_imports: trueemconfig.yaml— o valor precisa ser um booleano YAML literal, não uma string entre aspas — e isso ainda funciona porque a reversão que exclui os caminhos antigos ainda não foi incorporada: o manifesto e os shims estão presentes emv2026.9.14, emv2026.9.21, emv2026.9.24e emmaindesde 24 de setembro (o período da v0.21.4 alterou o módulo de compatibilidade apenas para armazenar as varreduras de plugins em cache e normalizar caminhos do Windows; o período da v0.21.5 não alterouhermes_cli/plugin_compat.pye removeu apenas as entradas do manifesto referentes ao módulo Hindsight excluído). Essa saída de emergência deixará de funcionar assim que a reversão for incorporada, pois os próprios caminhos antigos desaparecerão. Apenas nomes públicos de nível superior foram contemplados; nomes privados e pontos de monkeypatch de testes nunca fizeram parte da interface e não foram restaurados.4253
Princípios de design
Da página de arquitetura upstream:3
| Princípio | O que significa na prática |
|---|---|
| Estabilidade do prompt | O prompt do sistema não muda no meio da conversa. Não há alterações que invalidem o cache, exceto por ações explícitas do usuário (/model) |
| Execução observável | Todas as chamadas de tools ficam visíveis para o usuário por meio de callbacks. Atualizações de progresso na CLI (indicador giratório) e no gateway (mensagens do chat) |
| Interrompível | Chamadas de API e a execução de tools podem ser canceladas durante o processamento por entradas do usuário ou sinais |
| Núcleo independente de plataforma | Uma única classe AIAgent atende à CLI, ao gateway, ao ACP, ao processamento em lote e ao servidor de API. As diferenças entre plataformas ficam no ponto de entrada |
| Baixo acoplamento | Subsistemas opcionais (MCP, plugins, provedores de memória e ambientes de RL) usam padrões de registro e controle por check_fn, não dependências rígidas |
| Isolamento de profiles | Cada profile recebe seu próprio HERMES_HOME, suas próprias configurações, memória, sessões e PID do gateway. Vários profiles são executados simultaneamente |
Migração do OpenClaw
Hermes Agent é o sucessor do OpenClaw. Se você estiver migrando uma instalação existente do OpenClaw:65
hermes claw migrate --dry-run # Preview what would be migrated
hermes claw migrate --preset full # Full migration including API keys
hermes claw migrate --preset user-data --overwrite # User data only, no secrets
hermes claw migrate --source /custom/path # Non-default OpenClaw location
hermes claw migrate lê ~/.openclaw por padrão (e também detecta automaticamente os diretórios legados ~/.clawdbot e ~/.moldbot) e grava em ~/.hermes.6
Importados diretamente (mais de 30 categorias): SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills de 4 diretórios de origem, modelo padrão, provedores personalizados, servidores MCP, tokens e listas de permissões de plataformas de mensagens (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), configurações padrão do agente (esforço de raciocínio, compactação, atraso humano, fuso horário, sandbox), políticas de redefinição de sessão (agora inativas: desde a v0.21.1, os temporizadores nunca alternam uma conversa43), regras de aprovação, configuração de TTS, configurações do navegador, configurações de ferramentas, tempo limite de execução, lista de comandos permitidos, configuração do gateway e chaves API de 3 fontes.6
Arquivados para revisão manual: tarefas cron, plugins, hooks/webhooks, backend de memória (QMD), configuração do registro de skills, interface/identidade, registros, configuração multiagente, associações de canais, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6
A resolução da chave API verifica três fontes nesta ordem de prioridade: valores de configuração → ~/.openclaw/.env → auth-profiles.json.6
Solução de problemas
“Nenhum provedor de inferência configurado. Execute ‘hermes model’ para escolher um provedor e um modelo”
Este é o primeiro erro que toda instalação nova encontra: o Hermes ainda não tem um provedor definido. A mensagem quer dizer exatamente isso — nenhum dos três métodos de autenticação resultou em um provedor utilizável. Execute:
hermes model
O seletor interativo orienta você por todos os provedores compatíveis, inclusive os fluxos de código de dispositivo OAuth (Nous Portal, GitHub Copilot, Anthropic, OpenAI Codex) e endpoints personalizados para servidores auto-hospedados. Se você esperava que um provedor já estivesse configurado, hermes doctor mostra quais credenciais o Hermes realmente consegue acessar. As causas mais comuns são uma chave API definida no lugar errado (ela deve ficar no .env ou ser configurada com hermes config set, não no seu perfil do shell), uma credencial OAuth expirada em ~/.hermes/auth.json ou um endpoint personalizado em config.yaml que perdeu seu base_url. Os métodos de autenticação são explicados em detalhes em Autenticação e provedores.27
“Chave API não definida”
Execute hermes model para configurar seu provedor interativamente ou hermes config set OPENROUTER_API_KEY your_key. O comando hermes doctor informará exatamente quais chaves estão ausentes.7
“Limite de contexto: 2048 tokens” na inicialização (modelos locais)
O Hermes detecta automaticamente o tamanho do contexto pelo endpoint /v1/models do seu servidor, mas muitos servidores locais informam valores padrão baixos. Defina-o explicitamente no config.yaml:2
model:
default: your-model
provider: custom
base_url: http://localhost:11434/v1
context_length: 32768
As chamadas de ferramentas aparecem como texto em vez de serem executadas
Seu servidor não está com a chamada de ferramentas ativada ou o modelo não oferece suporte a ela por meio da implementação do servidor.2
| Servidor | Correção |
|---|---|
| llama.cpp | Adicione --jinja ao comando de inicialização |
| vLLM | Adicione --enable-auto-tool-choice --tool-call-parser hermes |
| SGLang | Adicione --tool-call-parser qwen (ou o parser apropriado) |
| Ollama | A chamada de ferramentas é ativada por padrão — verifique se o seu modelo oferece suporte a ela com ollama show <model> |
| LM Studio | Atualize para a versão 0.3.6 ou posterior e use um modelo com suporte nativo a ferramentas |
As respostas são interrompidas no meio de uma frase
Há duas causas possíveis:2
- Limite de saída baixo (
max_tokens) no servidor — o padrão do SGLang é 128 tokens por resposta. Defina--default-max-tokensno servidor ou configuremodel.max_tokensnoconfig.yaml. - Esgotamento do contexto — o modelo preencheu toda a janela de contexto. Aumente
model.context_lengthou ative a compactação de contexto no Hermes.
“Conexão recusada” do WSL2 para um servidor de modelos hospedado no Windows
O WSL2 usa um adaptador de rede virtual com sua própria sub-rede — localhost dentro do WSL2 se refere à máquina virtual Linux, não ao host Windows. Há duas opções:2
Rede espelhada (Windows 11 22H2 ou posterior): edite %USERPROFILE%\.wslconfig:
[wsl2]
networkingMode=mirrored
Depois, execute wsl --shutdown e reinicie. Agora localhost funciona nos dois sentidos.
Alternativa com o IP do host (versões anteriores do Windows): obtenha o IP do host Windows de dentro do WSL2 e use-o no lugar de localhost:
ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host
Você também precisa configurar o servidor de modelos para usar 0.0.0.0, e não 127.0.0.1 — defina OLLAMA_HOST=0.0.0.0 para o Ollama, adicione --host 0.0.0.0 ao llama-server/SGLang ou ative “Serve on Network” no LM Studio.2
O orçamento de iterações ignora agent.max_turns
Se a linha de atividade mostrar N/90 (ou outro limite desatualizado), embora o config.yaml contenha agent.max_turns: 500, a causa provável é uma linha HERMES_MAX_ITERATIONS obsoleta em ~/.hermes/.env: anteriormente, o assistente de configuração gravava o orçamento nos dois locais e, se a integração de inicialização for interrompida devido a um erro anterior de análise da configuração, o valor residual do .env prevalecerá silenciosamente. Desde a v0.21.1, hermes doctor detecta o par conflitante, e hermes doctor --fix exclui a linha do .env, deixando o config.yaml como fonte oficial.41
Onde fica cada coisa?
hermes status e hermes dump são seus aliados aqui. hermes logs list mostra todos os arquivos de log e seus tamanhos. hermes config path exibe a localização do arquivo de configuração. hermes config env-path exibe a localização do .env.6
Perguntas frequentes
Qual é a diferença entre Hermes Agent e Claude Code?
Claude Code é o CLI oficial da Anthropic, restrito aos modelos da Anthropic. Hermes Agent é um framework de agentes open source da Nous Research que funciona com qualquer provedor compatível com OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google ou seu próprio endpoint auto-hospedado.12 Hermes também inclui um gateway de mensagens para Telegram/Discord/Slack/WhatsApp/Signal, recurso que Claude Code não oferece.
Posso usar Hermes com uma chave API da Anthropic?
Sim. Há três maneiras:2
- Defina
ANTHROPIC_API_KEYem~/.hermes/.enve executehermes chat --provider anthropic --model claude-sonnet-4-6 - Execute
hermes modele selecione Anthropic — Hermes usará o armazenamento de credenciais do Claude Code quando estiver disponível - Defina manualmente um
ANTHROPIC_TOKEN(setup-token ou token OAuth) como alternativa
A opção 2 é a preferida se você já usa Claude Code na mesma máquina — ela mantém atualizáveis as credenciais Claude que permitem renovação.
Como posso trocar de provedor sem perder minha conversa?
Use /model provider:model durante uma sessão. O histórico da conversa, a memória e as skills são mantidos:9
/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5
Configurei a Anthropic, mas visão/web/compressão não funcionam
Nas versões atuais, isso praticamente não pode mais acontecer da forma antiga. Por padrão (auxiliary.*.provider: "auto"), todas as tarefas auxiliares — visão, classificação de aprovações, compressão e títulos de sessões — são executadas no seu modelo principal de chat. Portanto, uma configuração que usa somente a Anthropic atende a essas tarefas com o OAuth que já possui. O padrão antigo (Gemini Flash via OpenRouter → Nous → detecção automática do Codex, com degradação silenciosa quando nenhum deles estava configurado) foi removido: “auto agora usa o modelo principal para todos, e as substituições específicas por tarefa em config.yaml continuam tendo prioridade”.34
Se uma tarefa auxiliar ainda falhar, procure uma substituição explícita para essa tarefa apontando para um provedor que você nunca configurou (auxiliary.<task>.provider / .model em config.yaml) ou chaves legadas obsoletas: desde a tag v2026.8.31, o sumarizador de compressão é configurado como qualquer outro slot auxiliar — auxiliary.compression.provider — e as chaves legadas compression.summary_* são migradas automaticamente para esse local (versão 17 da configuração).31 A extração da web deixou de ser uma tarefa do LLM (“nenhum LLM envolvido”), portanto, nas versões atuais, uma falha de sumarização da web não é um problema do modelo auxiliar.34 Para vincular explicitamente uma tarefa ao seu provedor principal:
auxiliary:
vision: { provider: "main" }
compression: { provider: "main" }
Qual é a diferença entre SOUL.md e AGENTS.md?
SOUL.md é a identidade do seu agente — tom, estilo e padrões de comunicação. Ele fica em ~/.hermes/SOUL.md e acompanha você em todos os lugares. AGENTS.md é específico do projeto — arquitetura, convenções, comandos e caminhos — e fica no diretório do seu projeto.13 Se algo deve acompanhar você em todos os lugares, use SOUL.md. Se pertence a um projeto, use AGENTS.md.
Como posso executar várias instâncias do Hermes lado a lado?
Use profiles. Cada profile tem seu próprio HERMES_HOME, configuração, memória, sessões e PID do gateway:6
hermes profile create work --clone
hermes profile use work # Sticky default
hermes -p work chat -q "..." # One-off without switching
hermes profile alias work --name h-work # Wrapper script
Hermes oferece suporte a LLMs locais?
Sim, por meio do caminho de endpoint personalizado. Hermes funciona com qualquer servidor compatível com OpenAI: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan ou o seu próprio.2 Consulte Endpoints personalizados e auto-hospedados para ver a configuração de cada servidor.
Por que meu banner de inicialização mostra menos ferramentas do que o guia afirma que o Hermes possui?
O guia menciona 47 ferramentas e 20 toolsets do registro de arquitetura upstream — essa é a contagem total das ferramentas cujo código-fonte o Hermes inclui em todos os toolsets. Sua instalação em execução mostra um número menor no banner (a instalação de referência usada neste guia informa 28 ferramentas) porque o Hermes habilita apenas o conjunto padrão de toolsets na inicialização. Muitos toolsets precisam ser ativados: adaptadores do gateway de mensagens, automação de navegador, stacks de scraping mais pesados e várias integrações especializadas precisam ser listados explicitamente em toolsets: no arquivo ~/.hermes/config.yaml antes de serem carregados. Total do registro = “o que está disponível se você habilitar”. Total do banner = “o que seu profile atual realmente carregou”. Use hermes tools --list para ver quais toolsets estão ativos e quais estão disponíveis, mas desabilitados. Ative ou desative toolsets individuais durante a execução com /tools enable <name> e /tools disable <name> (a desativação reinicia a sessão para que o agente reconstrua seu manifesto de ferramentas com o novo formato).
Como o Hermes gerencia o modelo alternativo quando meu provedor principal falha?
Configure um bloco fallback_model em config.yaml:2
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
Quando o provedor principal falha (limite de requisições, erro do servidor ou falha de autenticação), o Hermes muda para o modelo alternativo durante a sessão sem perder o histórico da conversa. Isso ocorre no máximo uma vez por sessão.
O agente pode aprimorar suas próprias skills ao longo do tempo?
Sim — essa é a parte de “autoaperfeiçoamento” do Hermes Agent. O agente pode criar, atualizar e excluir skills por meio da ferramenta skill_manage. Quando descobre como executar um fluxo de trabalho não trivial, ele salva a abordagem como uma skill para reutilização futura.11 O agente cria skills após tarefas complexas (mais de 5 chamadas de ferramentas), quando encontra erros e descobre o caminho que funciona, quando você corrige sua abordagem ou quando ele descobre um fluxo de trabalho não trivial.
Existe uma integração com IDE?
Sim — Hermes pode ser executado como um servidor ACP (Agent Client Protocol) para VS Code, Zed e JetBrains:6
pip install -e '.[acp]'
hermes acp
Changelog
| Data | Alteração | Fonte |
|---|---|---|
| 2026-09-24 | Guia v1.23: o bloco de orientação da v0.14.0, que permanecia acima da versão atual desde a primeira versão do guia, agora encerra o histórico de Novidades como a seção mais antiga, seguindo a ordem da mais recente para a mais antiga usada no restante do histórico. Nenhuma alteração de conteúdo; agora, o resumo segue diretamente dos Principais pontos para a nota sobre as fontes e Escolha seu caminho. | Estrutura do guia |
| 2026-09-24 | Guia v1.22: Hermes v0.21.5 (tag v2026.9.24, 24 de setembro) — terceiro patch cumulativo, com notas selecionadas adiadas para a v0.22.0. Nova seção de Novidades no início; o resumo aponta para ela. Cobertura detalhada no nível da tag: Hindsight foi movido da árvore principal para o catálogo de plugins (algo ausente nas notas da versão), com sua migração automática; gateway.multiplex_profiles: false foi descontinuado, além de estacionamento por profile e gateway.standalone; GPT-6 Sol/Luna e Claude Opus 5.5 nos seletores da Nous e do OpenRouter. Provedores externos de memória agora lista sete provedores incluídos, além do Hindsight disponível no catálogo. Messaging Gateway ganhou um parágrafo sobre a opção de desativação descontinuada. A caixa de compatibilidade foi verificada novamente na tag: plugin_compat.py não mudou, e a solução alternativa ainda funciona. Correção: há 38 plugins de provedores incluídos, não 39, e a linha OpenCode Free está marcada como removida; ambas as alterações são de 18 de setembro. |
5253 |
| 2026-09-23 | Guia v1.21: revisão de correção e legibilidade, ainda na Hermes v0.21.4 (tag v2026.9.21; nenhuma versão mais recente). Agora, Novidades segue da versão mais recente para a mais antiga, a v0.21.3 tem sua própria seção e o resumo começa pela versão atual. Pareamento: decline é o único valor novo; o padrão efetivo passa a ser ignore quando qualquer lista de permissões é definida; o formato de YAML é platforms.<name>.unauthorized_dm_behavior ou a chave de nível superior. stream-json aceita --query-file, que ganhou uma linha na tabela de opções. set-journal-mode menciona a regra de interromper tudo e a opção --force no Windows. O parágrafo sobre a instância única por host agora começa pelo comportamento para o operador. As frases sobre processos de gravação foram removidas. |
5051 |
| 2026-09-22 | Guia v1.20: Hermes v0.21.4 (tag v2026.9.21, 21 de setembro) — o segundo patch cumulativo: “5.071 commits sem merge”, “5.169 arquivos alterados”, “1.812 PRs mesclados” e “2.116 issues encerradas” desde a v0.21.3, em uma nota breve que adia a cobertura selecionada para a v0.22.0. Nova seção de Novidades abaixo do bloco da v0.21.3. Todos os cinco números em destaque foram reproduzidos exatamente no clone local, no commit de medição indicado 4b8a8134 (a tag acrescenta um commit de versão: 5.072 sem merge; compare o total de 5.173 com merges, correspondente à comparação de GitHub em API); a segunda maior janela entre tags já registrada, atrás apenas dos 5.139 da v0.21.1 (essa afirmação foi verificada novamente e continua verdadeira). A lista deliberadamente não documentada da versão foi abordada SOMENTE após a verificação do código-fonte na tag, com cada item colocado em sua seção permanente: instância única por host (gateway/host_rendezvous.py: um hermes serve + um hermes gateway run por host e por usuário do sistema operacional, com bloqueio do host + registro de rendezvous e comprovação de atividade por (pid, createTime); cinco resultados em host_attach.py: ATTACH/RESCAN/REPLACE_HOST/REFUSE/START; no Desktop, a sequência de host-backend-attach.ts: ledger -> HTTP -> token -> WS, com um bloqueio de inicialização no nível do host — Messaging Gateway ganhou o parágrafo); uma operação de conector gerenciada pelo backend (tools/connectors/operation.py “Dados puros, sem E/S”, prazo de 300 s deliberadamente não configurável por uma chave, cartão de configuração de manage_connections no Desktop/TUI/CLI, conforme o teste na tag — subseção do nível gratuito da Nous ampliada); --format stream-json (_parser.py:247-249 + hermes_cli/stream_json.py: system/init -> text/tool_use/tool_result -> um envelope result; exige -q, implica --quiet, recusa --tui, limite de 5.000 caracteres para ferramentas — a tabela de opções do chat ganhou a linha); skills.auto_load (config_defaults.py:1435, “fixadas como totalmente carregadas em cada nova sessão (CLI, TUI, gateway, cron, API)”, resolvidas uma única vez durante a criação do prompt, nomes ausentes geram um aviso e são ignorados, HERMES_IGNORE_RULES suprime — nova subseção Skills fixadas); decline no gateway (gateway/config.py:139, uma recusa educada seguida por 24 h de silêncio conforme DECLINE_DEDUPE_SECONDS #88028, unauthorized_dm_decline_message, configurável por plataforma via platforms.<name>.extra, Email usa ignore por padrão — seção Pareamento ampliada); mcp.discovery_concurrency (config_defaults.py:526, padrão 4, 0 = ilimitado #117373, valores inválidos geram um aviso e usam o padrão, todos os servidores ainda estabelecem conexão — seção MCP ampliada); session_search com after/before + nova tentativa mais flexível com OR (esquema da ferramenta :708-725, limites inclusivos/exclusivos, ISO ou 7d/24h/2w; hermes_state_search.py:1151-1163, nova tentativa com QUALQUER termo quando não há resultados no índice unicode61, mantendo a semântica de correspondência exata, com isenção para OR/NOT/termo único/CJK — Busca de sessões ampliada, e a afirmação desatualizada dessa seção sobre “resumo com Gemini Flash” foi CORRIGIDA para o design de formato único sem LLM da v0.15.0, conforme 34); hermes sessions set-journal-mode delete\|wal (subcommands/sessions.py:177 + sessions_cmd_journal_mode.py, autoatendimento offline para #100896, recusa processos externos que estejam mantendo o arquivo aberto, verifica os bytes 18/19 do cabeçalho, doctor aponta para ele — linha de sessões + Armazenamento de sessões ampliados); onda do Desktop (campo de fonte desktop.font_family substituindo o --dt-font-sans do tema, sugestões priorizando acessibilidade; “Mecanismo de atualização” para atualizar o runtime com um clique, com falha visível e possibilidade de tentar novamente; desinstalação no hub de Plugins mediante confirmação, via plugins.manage remove / carregador do Electron); catálogos de vídeo (plugins/video_gen/fal, ltx-2.5 + kling-o3 com as strings de recursos presentes na tag; linha no catálogo de referência de toolsets); expansão do catálogo de plugins (plugin-catalog/ passou de 9 para 228 entradas no período, admissão de YAML fixada por SHA, páginas de site por plugin/autor com READMEs de commits fixados renderizados por uma lista de permissões, ordenação por adição/atualização baseada nas datas dos committers; os dez plugins da comunidade citados na versão foram confirmados nos slugs reais hermes-tailscale/hermes-ssh/shodan/hermes-terminal/hermes-rss/hermes-resetwatch/done-bell/kiwi/cognee/web-octen — Sistema de plugins ampliado). A categoria de correções (isolamento de profile/multiplex, cron, kanban, Desktop, state.db) foi MANTIDA para a análise da v0.22.0, conforme o adiamento indicado pela própria versão. Estado de compatibilidade verificado novamente: a reversão que exclui caminhos AINDA não foi incorporada — manifesto + shims presentes em v2026.9.21 E em main no commit a53b42ddea (2026-09-22, obtido no mesmo dia); as alterações da janela de plugin_compat.py se limitam a um cache de análise de plugins + caminhos do Windows no formato POSIX (#112576), e a proteção de booleano literal foi movida de :261-268 para :296-303, continuando como is True; a atualidade das informações foi renovada no item da v0.21.1, no bloco da v0.21.3, na caixa Sistema de plugins e em 42. Novas contagens em v2026.9.21: 39 provedores estáticos (contagem da AST em models_catalog_static.py:311) e 39 pastas de plugins de provedores, ambos inalterados; a referência de contagem de provedores no resumo passou de v2026.9.14 para v2026.9.21; a expressão “versão atual” da v0.21.3 foi removida. |
505142 |
| 2026-09-15 | Guia v1.19: Hermes v0.21.2 (tag v2026.9.11, 11 de setembro), “The state.db Patch Release”, + v0.21.3 (tag v2026.9.14, 14 de setembro) e as consequências do prazo de compatibilidade de plugins. Nova seção de novidades abaixo da seção da v0.21.1. A v0.21.2 (“947 commits sem merge”, “312 PRs mesclados”, “140 colaboradores”) começa com a campanha de confiabilidade do state.db (seis PRs, 44 problemas: a coordenação de salas hospedadas saiu do armazenamento raiz e foi para shared-state.db – gateway/hosted_rooms.py:398-426 verificado no tag; o dashboard abre primeiro em modo somente leitura; proteção do cron por meio do registro de conexões rastreadas; doctor --fix recusa checkpoints cuja segurança não pode ser comprovada; danos ao índice FTS degradam a busca em vez de encerrar o turno com falha; linhas corrompidas exibem ? em vez de interromper sessions list; vinculação fixada ao profile; aberturas somente leitura deixam de obter o bloqueio de escrita, de 4-20 s para 0,01 s; mantida a orientação da versão para operadores: primeiro hermes doctor, depois hermes sessions recover --inspect-only – parser em hermes_cli/subcommands/sessions.py:185-196, e o subcomando É ANTERIOR ao período (presente em v2026.8.31), portanto está documentado como recém-abordado, não como novo); reforço do isolamento entre vários profiles (#107609-#107630 corrigiram falhas reais na promessa de “isolamento completo” mantida desde a v0.19.0 – listas de permissões herdadas, credenciais enviadas ao host do profile padrão, segredos do cofre enviados a servidores MCP por stdio, anexos MEDIA: entre profiles, tokens bearer da Nous entre profiles irmãos; notas com uma descrição mais transparente adicionadas em Profiles e no parágrafo sobre multiplexação do Messaging Gateway); o cofre de credenciais sem acesso a senhas (faça login, pague e preencha automaticamente usando 1Password, Bitwarden ou o cofre local por meio de identificadores com namespace contendo apenas metadados, com a senha resolvida no momento do preenchimento; a senha mestra nunca é um argumento de ferramenta; TOTP gerado com uma chave de autenticação salva – agent/vault_backends/ + agent/vault_store.py:74-105 verificados no tag); o catálogo de plugins (hermes plugins browse/search + install integrado ao catálogo + pack install/export/show, fixados por SHA – subparsers verificados no tag; bloco de comandos do Plugin System atualizado); o plano gratuito da Nous + primeira inicialização guiada (inferência e conectores gratuitos, /login em um chat, HERMES_GUEST_ONBOARDING=1, em que SOMENTE o valor literal 1 habilita o recurso – guest-onboarding-flag.test.ts verificado; nova subseção em Nous Tool Gateway); e correções para tempestades de geração de processos no desktop. Pequeno bloco da v0.21.3 (“1.036 commits sem merge”, “338 PRs mesclados”; tag criado para que agentes do Cloud com atualização automática o recebam): a atualização de token single-flight encerra a revogação de sessões causada por rajadas de atualização (commit 5dea46d13d, #110061), identificadores duplicados de escrita do state.db foram eliminados (commit 939a2f64b4, #110934), ambos verificados apenas no período v2026.9.11..v2026.9.14; o adiamento declarado pela própria versão foi citado (“As notas completas e selecionadas desta versão serão publicadas com a v0.22.0, que documentará tudo a partir da v0.21.0” … “Nada deste período foi ignorado”), e a lista propositalmente não documentada (seletores de esforço de raciocínio, PKCE do OpenRouter, HEIF/AVIF, a onda do FAL, API do Slack Agent Sessions, recusa de WAL entre VMs) foi mencionada na linha e RETIDA para a análise da v0.22.0. Consequências do prazo de compatibilidade reescritas no passado no item de decomposição da v0.21.1, na caixa do Plugin System e em 42: a remoção entrou em vigor CONFORME O CRONOGRAMA por meio de uma condição de data, não de uma reversão de código (hermes_cli/plugin_compat.py:32 em v2026.9.14 define COMPAT_REMOVAL_DATE; removal_in_effect() em :86-90 retorna true a partir de 2026-09-14), e os plugins afetados agora ficam desabilitados com o aviso vermelho – porém, a reversão que exclui os caminhos de importação antigos ainda NÃO foi incorporada (COMPAT_MANIFEST.md + compat_manifest.json + shims presentes no tag E em main no commit 5d59366010, obtido em 2026-09-15 às 12:55 PT), portanto plugins.allow_deprecated_imports: true ainda mantém os plugins afetados carregando; somente o booleano literal (plugin_compat.py:261-268, is True – uma string entre aspas nunca habilita a exceção). Apenas no changelog, verificado na versão ou no código-fonte: bots_require_mention do Telegram faz com que bots exijam uma @menção, interrompendo loops entre bots; hermes -z --resume continua a sessão (-z = --oneshot, hermes_cli/_parser.py:113); verificações passivas de atualização acessam o GitHub API no máximo uma vez por dia, em vez de executar git fetch a cada 30 min (banner.py:129-131 em v2026.9.11, :136-139 em v2026.9.14); hermes backup -k/--keep mantém por padrão os 3 arquivos zip mais recentes (subcommands/backup.py:24-26), e os backups de config.yaml ficam em uma única pasta limitada, backups/config/; as chaves de model_thresholds podem ter escopo de provedor no formato provider:substr (agent/context_compressor.py:1558-1567); --clone-all não copia mais tarefas cron (a flag pertence a hermes profile, subcommands/profile.py:24, NÃO a hermes cron); kanban promote recusa itens pais não concluídos, e kanban_request_review rejeita profiles de revisores desconhecidos; /model e o modo automático auxiliar nunca cobram de um provedor que você não selecionou nem alternam automaticamente para um sem credenciais; os seletores adicionam DeepSeek V4.1 Flash (Nous Portal + OpenRouter), GPT Image 2.5 e Opus 5 + Fable 5.1 ao seletor nativo de Anthropic; a retenção de debug share foi reduzida para 1 dia no fallback do dpaste. Novas aferições em v2026.9.14: 39 provedores estáticos (contagem da AST de CANONICAL_PROVIDERS em models_catalog_static.py:314) e 39 pastas de plugins de provedores, ambos sem alteração; o padrão de --max-turns é 500, agora em cli.py:404 (cli.py:400 de 41 continua correto para seu tag); model_catalog.ttl_minutes é 20 (config_defaults.py:1866); a afirmação da v0.21.1 sobre o maior período (5.139) continua válida em comparação com os dois novos períodos (contagens locais de 959 e 1.037 commits sem merge); a aferição da contagem de provedores no TL;DR passou de v2026.9.7 para v2026.9.14. |
484942 |
| 2026-09-08 | Guia v1.18: Hermes v0.21.1 (tag v2026.9.7, 7 de setembro) — o patch de consolidação: a maior janela entre tags até agora (“5.139 commits sem merge”, “632 PRs mesclados”), com uma nota de patch deliberadamente enxuta que adia as notas selecionadas para a v0.22.0. Nova seção de novidades acima da seção Pantheon, com seis grupos verificados nas fontes: a decomposição de setembro + o prazo de compatibilidade de plugins em 2026-09-14 (COMPAT_MANIFEST.md: 1.148 nomes movidos para carregamento lazy, HermesPluginCompatWarning uma vez por nome, o verificador hermes plugins compat, a alternativa plugins.allow_deprecated_imports; uma caixa sobre a janela de compatibilidade adicionada ao Sistema de Plugins), limites de conversa do gateway apenas explícitos (SessionResetPolicy agora está inerte — Gateway de Mensagens atualizado, lista de migração do claw anotada), MCP device-code OAuth (hermes mcp login --flow device, RFC 8628; login e reauth --all adicionados ao bloco de comandos MCP; propriedade do profile por meio de sessões OAuth, caches de metadados malformados ignorados, callbacks locais do cliente desktop, filtros -t para iniciar servidores MCP), confiabilidade da delegação (unidades de conclusão por meio de delegation.independent_completions com group por tarefa, uma conclusão por chamada como padrão; transferência de processos em segundo plano com orphaned_processes e unread_completions identificados nos resultados; delegation.fallback_providers; cadeias de filhos validadas pelo normalizador; resultados parciais resistentes a falhas; filhos nunca herdam a camada de cache de 1h — tudo lido no código-fonte da ferramenta delegate na tag), provedores/modelos (GPT-6 Astra + Astra Pro com camadas fast/flex, restritos por conta no Codex OAuth com uma variante opcional -900k; claude-fable-5.1; gemini-3.7/3.8-flash; qwen3.8-max-0902; Muse Spark 1.3 + o plugin image_gen muse-image; pesquisa/extração do Tavily; o runtime gerenciado llama.cpp; provedores de processos externos; atualização do catálogo a cada 20 minutos por meio de model_catalog.ttl_minutes) e a onda do desktop (modo de comentários do navegador no app, transportando seletor/marcação/estilos por anotação com lotes agrupados por região; controles estruturados de sessão + automação; arrastar para criar sessões; importação de sessões com transcrições externas; display.resume_last_session; consentimento para usar o profile real na primeira abertura; catálogo integrado de skills opcionais; localização do desktop em russo). Apenas no changelog, verificado por commit ou código-fonte: confiabilidade do cron (transferência após reinicialização reforçada em três commits de correção verificados, desduplicação de entrega serializada com retenção terminal, condição de corrida na criação de jobs pausados eliminada, mídia do cron no Discord encaminhada ao destino correto com falhas de upload informadas, continuidade preservada durante ciclos silenciosos de auditoria), análise sintática do shell para aprovações (escapes de divisão do GNU env e operandos argv0, limites de argv do env e de comentários do shell, corpos entre aspas de substituição de comandos preservam os limites dos comandos, approvals.deny dentro de containers isolados), o watchdog de atividade na inicialização do gateway (hermes_startup_watchdog.py; gateway.startup_watchdog com prazo de 300s, encerramento forçado 75), resiliência do state.db (recuperação de achados perdidos com .recover do sqlite3, roteamento FTS de like_scan, novo docs/state-db-recovery.md), desempenho (search_files executa ripgrep nativamente em hosts POSIX locais, transcrições de filhos delegados excluídas do índice FTS de trigramas no schema v30, um cliente httpx compartilhado da OpenAI nos fluxos principal e auxiliares), gateway.trust_env, o seletor /model do Slack Block Kit e entrega de mídia em sandbox remoto (credenciais e links simbólicos para elas nunca saem da sandbox); Solução de Problemas recebe a verificação do doctor para o resquício obsoleto de HERMES_MAX_ITERATIONS. Atualizações na tag de v2026.8.31 para v2026.9.7: provedores estáticos 39 e pastas de plugins de provedores 39, ambos com entradas idênticas às da v0.21.0 — a afirmação da pré-verificação de “38 estáticos, xai incorporado ao plugin” foi refutada no código-fonte (a tupla xai ainda está na lista estática; apenas o arquivo mudou, de hermes_cli/models.py para hermes_cli/models_catalog_static.py:311); caminho de prompt_builder.py atualizado para agent/prompt_builder.py no modelo mental e no fluxo de dados CLI; a afirmação da v0.16 sobre atualização horária do catálogo foi mantida no escopo da versão, com a cadência de 20 minutos adicionada ao lado. Afirmações permanentes verificadas novamente, sem alterações: a observação sobre o nome hermes approvals test, padrão 500 para --max-turns (cli.py:400 na tag; a docstring obsoleta que dizia 60 não foi propagada), 2.000 linhas em read_file, limites de delegação 250/10, compression.tail_mode: lean, Node 26, 17 localidades CLI. |
41424344454647 |
| 2026-07-28 | Guia v1.12: Revisão de cobertura orientada pela demanda de pesquisa — dois temas com boa conversão não tinham um título de seção para onde direcionar os usuários. Nenhuma nova versão. O GSC mostra hermes swarm e hermes agent swarm convertendo entre 4,4% e 6,3% na posição ~8, e hermes smart model routing com 4,9% na posição 6,7, embora nenhum desses termos tivesse uma seção: swarm aparecia apenas no texto do Kanban Multiagente e em linhas do changelog, e “smart model routing” não aparecia em nenhum lugar além de uma nota de rodapé. Adicionada O que é um Hermes Swarm? em Kanban Multiagente — define swarm como workers paralelos sobre um único quadro persistente, documenta a topologia de swarm da v0.15.0, decomposição automática, substituições de modelo por tarefa, tarefas agendadas e gerenciamento de worktrees, além de apresentar em uma tabela a falha que cada mecanismo evita. Rotação e fallback de provedores renomeada para Smart Model Routing: rotação e fallback de provedores, com uma introdução que reúne pools de credenciais, modelo de fallback e roteamento auxiliar em um único sistema. Nenhuma âncora era referenciada internamente, portanto a renomeação não causa problemas. |
59 2 6 |
| 2026-08-31 | Guia v1.17: Hermes v0.21.0 “The Pantheon Release” (tag v2026.8.31, 31 de agosto) — a consolidação selecionada foi lançada. Nova seção de novidades acima da seção Herald, organizada pelas próprias áreas de recursos da versão: Bot Mode incluído e ativado por padrão no desktop (profiles nomeados, avatares determinísticos, conversas em grupo com @menções), DMs de bot para bot com hermes peer (as respostas chegam ao Bot Chat canônico de cada agente), continuidade do cron (continuity=true, blocos de notas persistentes, omissão de LLM no modo de monitoramento, fixação de esforço por job — a seção Tarefas Agendadas recebeu a mecânica dos quatro itens na tag), orquestração de subagentes em tempo real (delegate_task para listar/orientar/interromper, saídas de filhos no schema JSON, padrões aumentados para 250 iterações/10 filhos simultâneos — verificados no código-fonte em config_defaults.py, enquanto a página de documentação sobre delegação está desatualizada com 3/50), a central de comandos MCP (+links de instalação hermes:// — seção MCP atualizada), a onda de recursos CLI (/palette + Ctrl+P e um /status de registro compartilhado adicionados às tabelas de comandos slash, /model com filtragem conforme você digita documentado; o nome hermes approval-check das notas da versão demonstrado como hermes approvals test na tag — esse subcomando não existe), o navegador no app controlado pelo agente, a onda de provedores/modelos (seis novos provedores; a matriz recebe linhas para Tencent TokenPlan, Nebius Token Factory, Ramp Router e Alibaba Token Plan, com variáveis de ambiente citadas da documentação; model_overrides; avisos sobre camadas de treinamento de dados; plugins de provedores via pip), a onda de segurança (gravações em AGENTS.md/skills/memory sempre exigem aprovação — security.protected_instruction_files: true e o bloqueio em tools/file_tools.py verificados na tag; varredura de redação; cobertura de aprovações no Windows; hermes desktop --setup-tcc-identity; Blender MCP removido — Reforço de Segurança recebe uma quarta onda), amadurecimento do gateway, a onda de 8 skills e a lista de itens REVERTIDOS (Model Council /council, context engine DCP, servidor de gateway somente WS — a reprodução com carimbo de sequência nº 94219 FOI lançada; Electron voltou para 40.10.2; o grep confirma que o guia nunca documentou nenhum dos recursos revertidos). O enquadramento de notas adiadas da subseção de consolidação foi RESOLVIDO e agora aponta para a seção selecionada; blocos de janela mantidos como registro por tag. Atualizações na tag de v2026.8.27 para v2026.8.31: provedores estáticos de 38 para 39 (+tencent-tokenplan), pastas de plugins de provedores de 37 para 39 (+nebius-token-factory, +router, ambos com auth_type="api_key"), linhas de provedores na documentação de 41 para 45; sem alterações e verificados novamente: 28 linhas de plataformas na documentação/24 membros do enum Platform (lista idêntica)/22 pastas de adaptadores, _BUILTIN_SUBCOMMANDS idêntico (73, peer presente desde as janelas de consolidação, sem version), 7 backends de terminal + registro de plugins (registro idêntico byte por byte), 14 personalidades e 17 localidades (arquivos idênticos byte por byte/listas idênticas), padrão lean de compressão e conjunto de slots auxiliares, _startup_fast.py/portal_cli.py idênticos byte por byte. Divergência corrigida durante a verificação: hermes chat -q em um TTY agora inicia uma sessão interativa (o novo --oneshot restaura o comportamento de responder e sair), e o padrão de --max-turns na tabela de chat foi corrigido de 90 para 500, conforme a ajuda do parser na tag. |
35363738394033 |
| 2026-08-27 | Guia v1.16: Hermes v0.20.6 (tag v2026.8.27, 27 de agosto) — quarto pacote cumulativo. A subseção do pacote cumulativo recebe sua quarta janela, conforme a descrição da própria versão (~1.313 commits em ~1.557 arquivos, +177.113 / −21.682 — ~525 PRs mesclados desde a v0.20.5): navegação com profile real condicionada ao consentimento (profile padrão do Chromium, fluxo de fechamento com aprovação no Windows), o Browser para desktop em sua própria janela do sistema operacional, um mecanismo gerenciado de atualização remota de SSH e painel de profiles da frota, expansão do catálogo remoto de MCP (mais de 50 servidores hospedados por fornecedores e verificados em produção, incluindo Cloudflare, Grafana Cloud, Better Stack e Railway), criptografia opcional pelo chaveiro do sistema operacional para segredos armazenados, novos modelos no seletor (GLM-5.3-Flash, MiniMax M3 gratuito, MiniMax H3 Max para vídeo), cache de resultados com TTL para web_search/web_extract, tool_search com múltiplas consultas e stemming, atualizadores que pausam gateways pelo socket de controle, instalações gerenciadas por imagem/pacote que recusam atualizações inseguras no local, confirmações de incidentes duráveis do cron, controles de pré-visualização de links no Slack e identidades compartilhadas de containers Docker. Duas alegações da versão contradiziam seções existentes; ambas foram confirmadas no tag e corrigidas: a compressão lean-tail é o padrão (a seção Compressão de contexto foi reescrita com as chaves presentes no tag — tail_mode: lean, threshold_tokens, protect_first_n, opções do resumidor em auxiliary.compression.* com a migração automática da versão 17 da configuração; a observação invertida de solução de problemas foi corrigida) e os backends de terminal são extensíveis por plugins (reformulado como sete backends integrados mais um registro de plugins, no estilo do seletor de providers; os nomes integrados são reservados). As verificações no tag foram refeitas e atualizadas de v2026.8.19 → v2026.8.27: 38 providers estáticos + 37 pastas de plugins de provider, 24 membros do enum Platform / 22 pastas de adaptadores / 28 linhas na tabela da documentação, nenhum subcomando version (73 entradas em _BUILTIN_SUBCOMMANDS, com worktree presente), opções do parser e textos de ajuda entre aspas inalterados, BUILTIN_PERSONALITIES ainda com 14 opções (de helpful a hype); locales/ agora contém 17 catálogos (en + 16 traduções; contagem no tag adicionada). A main está NO tag (ahead_by: 0, status idêntico). Também foi corrigida uma divergência encontrada durante a verificação: o padrão desatualizado do sistema auxiliar — agora, auto direciona todas as tarefas auxiliares ao modelo principal do chat, não ao Gemini Flash por meio da detecção OpenRouter → Nous → Codex; a seção Modelos auxiliares foi reescrita com a lista de slots presente no tag (title_generation, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer adicionados com descrições de uma linha baseadas nas fontes; os slots web_extract e session_search foram removidos upstream — nenhum deles usa mais um LLM — e flush_memories deixou de fazer parte dos padrões), e a entrada de solução de problemas exclusiva de Anthropic foi novamente fundamentada. A instrução para novas instalações da versão usa a URL bruta do script GitHub; o guia mantém o endereço canônico hermes-agent.nousresearch.com/install.sh. As notas selecionadas continuam prometidas para a v0.21.0. |
293031323334 |
| 2026-08-26 | Guia v1.15: CORREÇÃO — nenhuma nova versão (tag mais recente: v2026.8.19 / v0.20.5, 21 de agosto); as alegações existentes foram verificadas novamente no tag. Backends de terminal: seis → sete, com vercel_sandbox adicionado à tabela e ao comentário da configuração. Plataformas de mensagens: as contagens isoladas de “22” foram reconciliadas com as 28 da tabela comparativa da documentação no tag, com a base da contagem declarada (24 membros integrados do enum Platform, 22 pastas de adaptadores incluídos), e ntfy e Buzz foram adicionados à lista de gateways. Providers: “~20 / ~22 de primeira classe” foi substituído pela contagem baseada nas fontes (38 entradas estáticas em CANONICAL_PROVIDERS, além da extensão automática por 37 plugins de provider incluídos; 41 linhas de nuvem/assinatura na página da documentação), “lista completa” foi removido, a linha do Qwen OAuth foi corrigida e 17 linhas foram adicionadas à matriz (OpenCode Free, OpenAI API direto, Vertex AI, Azure Foundry, Bedrock, NVIDIA NIM, Ollama Cloud, StepFun, MiniMax OAuth, Meta AI, NovitaAI, Arcee AI, GMI Cloud, Actual Computer, Tencent TokenHub, CommandCode, Alibaba Coding Plan). hermes version → hermes --version (não é um subcomando no tag). hermes honcho foi identificado como dependente de plugin. “fleet --plan” → hermes update --plan. Opções globais recebe --in, --tui, --cli, --dev, --ignore-rules, --ignore-user-config; Comandos de nível superior recebe 34 linhas de _BUILTIN_SUBCOMMANDS, incluindo hermes worktree list\|prune com suas flags; o comando de barra /worktree foi adicionado; hermes setup --portal e hermes portal login\|info\|open\|tools foram documentados. A main estava 1.104 commits à frente do tag no momento da verificação (todos incorporados desde então ao v2026.8.27); notas selecionadas estão prometidas para a v0.21.0. |
23242526272829 |
| 2026-08-24 | Guia v1.14: v0.20.5 (tag v2026.8.19, publicada em 21 de agosto). A subseção do pacote cumulativo recebe sua terceira janela (~746 commits / ~323 PRs desde a v0.20.4): a camada web sem chaves (rotação gratuita entre 5 fornecedores com failover em anel — pesquisa na web em novas instalações sem nenhuma chave), refinamentos de CLI (seletor difuso de /model, paleta de comandos com Ctrl+P, /status mais completo), threads para salas de grupo no Bot Mode + resumos recolhíveis + arrastar e soltar PDFs/arquivos, hermes worktree list/prune, comprovantes do hermes update e verificação de --plan da frota, memória persistente do cron com esforço de raciocínio por tarefa, proteções contra estagnação na disciplina de execução com base nas descobertas da avaliação da Composio, o provider opencode-free sem autenticação e desempenho do desktop (hidratação com pintura primeiro, React Compiler nos dois renderizadores). A v0.21.0 com todas as notas selecionadas ainda está pendente — resumos baseados na descrição da janela fornecida pela própria versão. A linhagem do cabeçalho foi atualizada. |
23 |
| 2026-08-20 | Guia v1.13: v0.20.3 (tag v2026.8.16.2, publicada em 17 de agosto) e v0.20.4 (tag v2026.8.18, 18 de agosto). Nova subseção em The Herald Release: a sequência de pacotes cumulativos agora inclui recursos, não apenas estabilização. v0.20.3 (~250 commits / ~125 PRs): migração de SDK do MCP 2.x com suporte ao protocolo sem estado de 2026-07-28, plugin incluído do Bot Mode (hermes-bots) com o protocolo central de colegas de equipe, plugin do provider CommandCode, contratos de runtime para uso do computador do Cua Driver 0.20, reforço da propriedade do runtime de Python, autorrecuperação do agendador cron, correções de perda de dados na transferência de sessões, ports do ecossistema (/worktree, preservação de edições manuais no /rollback, verificação de segurança na instalação de plugins). v0.20.4 (~146 commits / ~74 PRs): superfície de vidro/translúcida no desktop com seletor de efeito fosco, barra lateral SESSIONS|BOTS com abas e opção de ocultar/exibir cada bot, verificação consultiva Tier 1 do NVIDIA SkillEvaluator durante instalações de skills (licença + segurança), reforço do envio de mídia pelo cron, transparência do hermes update sobre branches estacionados. Ambas as versões afirmam que as notas selecionadas completas serão lançadas com a v0.21.0 — resumos baseados nas descrições das janelas fornecidas pelas próprias versões. A frase do cabeçalho e a linhagem dos tags foram atualizadas. |
54 |
| 2026-08-16 | Guia v1.12: v0.20.0 “The Herald Release” (3 de agosto, tag v2026.8.3), além dos tags de estabilização v0.20.1 (13 de agosto) e v0.20.2 (16 de agosto). Três correções ajustam instruções que não funcionam mais: Node 26 é obrigatório (o instalador fixa NODE_VERSION="26" e rejeita runtimes mais antigos — a indicação de Node v22 no site da documentação está desatualizada, portanto prevalecem o instalador e as notas da versão), pip e Homebrew foram descontinuados, em vez de apenas depreciados (“instalador shell / Docker / Nix são os canais compatíveis”), e o limite padrão de iterações passou de 90 → 500, invalidando todos os números da tabela de pressão sobre o orçamento. O comando de instalação foi corrigido para o endereço canônico https://hermes-agent.nousresearch.com/install.sh. Superfície removida: a fonte de skills claude-marketplace não existe mais e foi substituída por browse-sh na lista de fontes; os taps padrão de GitHub agora são openai, anthropics, huggingface, NVIDIA e gstack. O gateway de mensagens foi recontado de 22 → 28 plataformas pela enumeração direta da tabela comparativa da documentação (a documentação não publica um total oficial). Windows (nativo) é Tier 1, não uma versão beta inicial; o macOS é exclusivo para Apple Silicon. Uma nova seção aborda a própria versão: voz conversacional com interrupção, A2A v1.0, webhooks de ciclo de vida de saída assinados, skill de citações fundamentadas, a leva de CLI !//init//diff//context//focus e hermes import-agent, fonte de segredos do assistente de comandos, inicialização a frio do hermes -w reduzida de ~14 s → ~1,8 s e artefatos para desktop, além de um SDK de plugins. Confirmados sem alterações: os três caminhos de autenticação, a estrutura de ~/.hermes/, hermes update e a lista documentada de ferramentas. |
55 |
| 2026-07-21 | Guia v1.11: v0.19.0 “The Quicksilver Release” (20 de julho de 2026, tag v2026.7.20). Adicionada a seção “Novidades na v0.19.0”: redução de ~80% no TTFT do primeiro turno (envio a frio→despacho de ~4,3 s → ~0,9 s no CLI/gateway/TUI/desktop/cron), raciocínio transmitido ao vivo por padrão (display.show_reasoning ativado), onda de desempenho no desktop com cerca de 20 PRs (renderização de Markdown em streaming 14× mais rápida) + Markdown incremental na TUI; instalações via pip/Homebrew descontinuadas (apenas aviso de “legado sem suporte”, com remoção planejada da publicação no PyPI/Homebrew) — a seção de instalação e o resumo foram corrigidos para indicar o instalador de uma linha; SecretSource conectável com provedores Bitwarden + 1Password (referências op://, vários cofres, precedência determinística, procedência por variável); aprovações inteligentes por padrão (revisor LLM independente para cada comando sinalizado) + regras de negação definidas pelo usuário que continuam valendo no modo YOLO + /deny <reason> + escalonamento de aprovação por pre_tool_call de plugins reintroduzido; cobrança pelo terminal com /subscription + /topup + aba de cobrança no desktop (removida a afirmação de que “não há um comando separado para assinatura”); transcrições ao vivo de subagentes + delegação durável em segundo plano + registro de obrigações de entrega em state.db; max_async_children descontinuado em favor de limites unificados de concorrência de delegação; roteamento de mensagens do gateway baseado em profile (um token de bot multiplexado → profiles isolados, GATEWAY_MULTIPLEX_PROFILES, índice de roteamento em state.db, sessions.json como espelho legado opcional); provedores/modelos: Fireworks AI (2ª posição no seletor), DeepInfra, Upstage Solar, GPT-5.6 (Sol/Terra/Luna + Pro) de ponta a ponta, grok-4.5 em disponibilidade geral, kimi-k3 (kimi-k2.x descontinuado), Claude Sonnet 5 totalmente integrado, enabled: false por provedor + excluded_providers, níveis max/ultra de esforço de raciocínio com substituições por modelo/posição de MoA e /reasoning com escopo de sessão; CLI/MCP: hermes sessions export (Markdown/Quarto/HTML/somente prompt/HF-trace, --redact), /model --once, invocações empilhadas de slash-skills, --safe-mode, hermes config get/unset, hermes serve realmente headless, nomenclatura MCP mcp__server__tool. Também registra as tags de patch não documentadas v0.18.1 (tag v2026.7.7) e v0.18.2 (tag v2026.7.7.2), de 7 a 8 de julho de 2026 — pacotes cumulativos de patches de infraestrutura; a correção relevante da v0.18.2 remove a fixação do WhatsApp Baileys na versão 7.0.0-rc13 para garantir builds Docker confiáveis. |
56 57 |
| 2026-07-16 | Adicionada uma primeira entrada de solução de problemas para o erro literal de inicialização “No inference provider configured. Run ‘hermes model’ to choose a provider and model” — motivada pela demanda de buscas; direciona para o seletor interativo, hermes doctor e as três formas de autenticação. Nenhuma alteração no produto. |
2 7 |
| 2026-07-01 | Guia v1.10: v0.18.0 “The Judgment Release” (1º de julho de 2026, tag v2026.7.1). Adicionada a seção “Novidades na v0.18.0”: backlog completo de P0/P1 concluído (cerca de 692 itens); Mixture-of-Agents como recurso de primeira classe, com saída de ensemble identificada por modelo e streaming ao vivo; contratos de conclusão — /goal verifica o próprio trabalho executando as verificações do projeto; /learn (descreva um fluxo de trabalho → skill reutilizável e compatível com CONTRIBUTING.md); /journey com linha do tempo de memória/skills + gráfico de memória no desktop; distribuição de subagentes em segundo plano (tarefas delegadas simultâneas); Projetos no desktop (projeto/repositório/lane); gateway com escalonamento até zero e coordenação de drenagem; Google Vertex AI (Gemini por meio de contas de serviço do GCP, atualização automática de OAuth2); /prompt como editor baseado em \$EDITOR. Fonte: releases do hermes-agent. |
22 |
| 2026-06-21 | Guia v1.9: v0.17.0 “The Reach Release” (19 de junho de 2026, tag v2026.6.19). Adicionada a seção “Novidades na v0.17.0”. Mensagens: iMessage sem relay via Photon Spectrum (hermes photon login, OAuth por código de dispositivo), adaptador oficial API para WhatsApp Business Cloud (sem bridge), grupos + anexos no SimpleX, plugin de plataforma Raft. Modelos: z-ai/glm-5.2 (1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (OAuth da xAI, 200k); padrão da xAI → grok-build-0.1; modelos adaptativos Anthropic removem o campo reasoning. Desktop/dashboard: subagentes em segundo plano com janelas de acompanhamento ao vivo (delegate_task(background=true)), construtor completo de profiles, Skills Hub reformulado, Automation Blueprints, login seguro com 401, temas do VS Code Marketplace, interface em japonês + chinês tradicional. Skills/ferramentas: edição de imagem para imagem com image_generate, lote atômico de operations de memory, skill simplify-code, write_approval booleano (substitui write_mode). Arquitetura: manipulador de elicitação MCP, CronScheduler conectável + Chronos, escopo Managed (/etc/hermes), relay entre gateways. Comandos: /version, /billing, hermes curator run --consolidate (opcional). Segurança: brecha na lista de negação de escape do shell corrigida, adaptadores de aprovação/gateway configurados para falhar de forma segura, ambiente do cron higienizado, segredos ocultados em dumps de depuração, filtragem de exfiltração via stdio no MCP, atualizações de urllib3 + PyJWT contra CVEs. |
21 |
| 2026-06-08 | Guia v1.8: v0.16.0 “The Surface Release” (5 de junho de 2026, tag v2026.6.5). O guia foi renomeado para v0.16 e a seção “Novidades na v0.16.0” foi adicionada. Destaque: o Hermes deixou de funcionar apenas no terminal. Aplicativo nativo Hermes Desktop (Electron, macOS/Linux/Windows) com instalação em um clique, atualização automática dentro do aplicativo, chat com streaming, arrastar e soltar + colagem de imagens da área de transferência, paleta Cmd+K, arquivamento/pesquisa de sessões, seletor de modelos na barra de status, conexão a gateway remoto por WebSocket seguro (OAuth ou usuário/senha, hosts por profile, links @session entre profiles) e tradução completa para chinês simplificado por meio de i18n tipada. Painel administrativo no navegador (dashboard web → administração completa): ativação/desativação do catálogo MCP, gerenciamento de credenciais, criação de webhooks/hooks, configuração de memória, controles do gateway, página do sistema com verificação antes da atualização + Debug Share, nova página de canais e autenticação conectável (usuário/senha, OIDC auto-hospedado, hermes dashboard register). Novos comandos: /undo [N] (CLI/TUI/mensagens), interface padrão configurável (cli/tui, --cli), /model unificado na TUI + sobreposição de sessões, hermes portal, hermes prompt-size, hermes sessions optimize. Novos modelos: deepseek-v4-flash, MiniMax-M3 (contexto de 1M), qwen3.7-plus, gemini-3.5-flash; OAuth do Grok da xAI como recurso de primeira classe no inicializador do desktop; seletor de modelos com busca aproximada; atualização do catálogo a cada hora. Skills: conjunto padrão mais enxuto (Spotify → plugin nativo, Linear → hermes mcp install linear, skills obsoletas removidas), critério de relevância environments: (kanban/docker/s6), tap confiável NVIDIA/skills por padrão, divulgação progressiva e com escopo das ferramentas MCP/de plugins. Segurança: CVE-2026-48710 (Starlette BadHost) fixada em ≥1.0.1; verificações de SSRF removidas do loop de eventos; token bearer do Bedrock removido do ambiente de subprocessos; leitura de bws_cache.json protegida; docker restart/stop/kill adicionados aos padrões perigosos; higienização de Unicode invisível. Resolvidos 2 P0 + 62 P1 (16 marcados como segurança). |
20 |
| 2026-05-31 | Guia v1.7.1: v0.15.1 (29 de maio de 2026, 01:12 UTC) — patch Velocity. Hotfix lançado no mesmo dia após o Velocity; linha fixada na tag v2026.5.29. Corrige o loop de recarregamento com erro 401 no dashboard que afetava implantações no modo loopback. O Docker não trata mais --insecure como implícito — defina HERMES_DASHBOARD_INSECURE=1 explicitamente para reativá-lo. Comandos simples do MCP (npx, npm, node) voltam a ser resolvidos corretamente dentro de contêineres Docker. Os indicadores de origem e a barra lateral de categorias da página de skills são renderizados. Os workers do Kanban respondem corretamente ao SIGTERM, sem deixar processos órfãos. O catálogo do Skills.sh aumentou de 858 para 19.932 entradas por meio da descoberta via sitemap. 28 commits, 21 PRs integrados, 9 colaboradores. v0.15.2 (29 de maio de 2026, 13:37 UTC) — patch de empacotamento do Velocity. Corrige as distribuições wheel e sdist para incluir manifestos plugin.yaml, permitindo que instalações pelo PyPI funcionem sem carregar a árvore de código-fonte separadamente. Hotfix exclusivo de empacotamento, 4 colaboradores. |
58 |
| 2026-05-28 | Guia v1.7: Adicionado v0.15.0 (28 de maio de 2026) — versão Velocity (tag v2026.5.28). Destaque: uma enorme rodada de refatoração + novos recursos primitivos de orquestração. Refatoração da base de código: run_agent.py foi reduzido em 76% (de 16.083 para 3.821 linhas), distribuído entre 14 módulos coesos. Kanban multiagente v2: decomposição automática de objetivos de alto nível em subtarefas, topologia de swarm para coordenar workers em paralelo, substituições de modelo por tarefa, tarefas agendadas e gerenciamento de worktrees. Desempenho: mais 1 segundo economizado na inicialização a frio; redução de 47% nas chamadas de função por conversa; session_search foi reformulado e ficou 4.500× mais rápido, com a dependência LLM removida (e seu custo de API eliminado). Segurança: a defesa contra Promptware protege contra injeções de prompt da classe Brainworm em três pontos críticos de segurança; a integração com o Bitwarden Secrets Manager substitui várias chaves API, uma por provedor, por um único token de bootstrap. Pacotes de skills: carregue várias skills simultaneamente com um único comando slash. Orquestrador de sessões na TUI: gerenciamento de várias sessões em uma única janela de terminal. Novos provedores: Krea 2 (Medium/Large) e suporte ao plugin FAL para geração de imagens; uma nova rodada de integração com xAI adiciona um plugin de pesquisa na web, OAuth upstream, detecção de modelos descontinuados e pausas naturais no TTS. Números: 1.302 commits, 747 PRs integrados e 321 colaboradores da comunidade. Segundo as notas da versão GitHub, uma atualização corretiva lançada no mesmo dia ou no dia seguinte resolve o loop de recarregamento com erro 401 no dashboard, a variável de ambiente explícita --insecure do Docker, a resolução de comandos sem caminho no MCP dentro do Docker (npx, npm, node), a restauração da página Skills, o tratamento de SIGTERM pelos workers do Kanban e o catálogo completo de Skills com 19.932 entradas via sitemap. |
59 |
| 2026-05-21 | Guia v1.6: Adicionado v0.14.0 (16 de maio de 2026) — versão Foundation. Destaque: uma base mais leve para instalação e execução, além de maior cobertura de provedores, gateway, mídia e verificação. Foram adicionados SuperGrok OAuth com contexto de 1 milhão do grok-4.3, hermes proxy compatível com OpenAI para provedores OAuth, x_search com suporte nativo, pip install hermes-agent, instalação sob demanda de dependências, inicialização cerca de 19 segundos mais rápida, chamadas CDP do navegador 180 vezes mais rápidas, LINE + SimpleX Chat totalizando 22 plataformas de mensagens, Microsoft Teams de ponta a ponta, /handoff, /subgoal, botões nativos de esclarecimento no Telegram/Discord, preenchimento retroativo do histórico do Discord, vision_analyze com pixels brutos, rodapé do verificador de alterações em arquivos a cada turno, diagnósticos semânticos de LSP a cada gravação, video_generate unificado, computer_use via cua-driver para provedores que não sejam Anthropic, URLs clicáveis com OSC8, suporte ao Zed ACP Registry, roteador OpenRouter Pareto Code, NovitaAI, runtime do app-server do Codex, fonte confiável huggingface/skills, 9 skills opcionais, ctx.llm / tool_override em plugins, pesquisa na web com Brave/DDGS, renomeação do Qwen Cloud, beta nativo para Windows e resolução de 12 itens P0 / 50 P1. |
19 |
| 2026-05-07 | Guia v1.5: Adicionado v0.13.0 (7 de maio de 2026) — versão Tenacity. Destaque: um quadro Kanban multiagente robusto (heartbeat, recuperação de tarefas, detecção de zumbis, barreira contra alucinações, max_retries por tarefa e quadros para vários projetos) que transforma swarms em um recurso primitivo nativo, em vez de um padrão de delegação. O comando /goal mantém o agente focado em um objetivo entre turnos (padrão de loop Ralph como comando slash). Nova ferramenta video_analyze, priorizando Gemini e com suporte extensível a modelos compatíveis. Provedor de TTS xAI Custom Voices com clonagem de voz. i18n em 7 idiomas (zh-Hans, ja, de, es, fr, uk, tr) para mensagens da CLI e do gateway; documentação somente em zh-Hans. Google Chat como a 20ª plataforma de mensagens, usando o padrão de adaptadores conectáveis; IRC + Microsoft Teams foram migrados para o mesmo padrão. ProviderProfile ABC + plugins/model-providers/ para provedores de terceiros conectáveis sem alterações no núcleo. Retomada automática de sessões após reinicialização do gateway, /update e recarregamento de arquivos-fonte. Reformulação do Checkpoints v2 com armazenamento único, limpeza efetiva e proteções de uso do disco. Oito correções de segurança P0: ocultação de segredos ativada por padrão, bypass de DM entre servidores do Discord (CVSS 8.1), rejeição de desconhecidos + silenciamento de conversas consigo mesmo no WhatsApp, TOCTOU de OAuth no MCP, TOCTOU de auth.json na CLI, proteção mínima contra SSRF no navegador, verificação de injeção de prompt no cron e ocultação de dados em hermes debug share. Lint após gravação para Python/JSON/YAML/TOML, modo no_agent do cron exclusivo para scripts, listas de permissões de plataforma no Slack/Telegram/Mattermost/Matrix/DingTalk e melhorias no MCP (transporte SSE, encaminhamento de OAuth, tags MEDIA para imagens). Números desde a v0.12.0: 864 commits, 588 PRs integrados, 829 arquivos alterados, 295 colaboradores da comunidade e 282 issues encerradas (13 P0, 36 P1). |
18 |
| 2026-05-06 | Guia v1.4: Adicionado v0.12.0 (30 de abril de 2026) — versão Curator. Destaque: um Curator autônomo em segundo plano, executado pelo temporizador cron do gateway (ciclo padrão de 7 dias), que avalia a biblioteca de skills segundo critérios definidos, remove skills obsoletas, consolida skills relacionadas e gera relatórios a cada execução — o Hermes faz sua própria manutenção entre sessões ativas. O loop de autoaperfeiçoamento foi aprimorado com avaliação baseada em critérios, preferência por atualizações ativas, herança correta do runtime e toolsets com escopo restrito à memória e às skills. Quatro novos provedores de inferência: GMI Cloud, Azure AI Foundry, MiniMax OAuth e Tencent Tokenhub. LM Studio passou a ter suporte nativo. Agora, os manifestos remotos do catálogo de modelos são atualizados automaticamente sem exigir novas versões. Duas novas plataformas de mensagens: Microsoft Teams (19ª, por meio da arquitetura conectável do gateway) e Tencent Yuanbao (18ª, com texto + mídia nativos). Spotify nativo via OAuth com PKCE e skill incluída; plugin do Google Meet para chamadas e transcrição; provedor local de TTS Piper. ComfyUI v5 + TouchDesigner-MCP deixaram de ser opcionais e passaram a vir incluídos por padrão. Novas skills: Humanizer, claude-design, design-md e airtable. Adições à CLI: modo de execução única hermes -z, verificação preliminar hermes update --check, comando slash /reload-skills e estilos conectáveis para o indicador de atividade. O tempo visível de inicialização a frio da TUI caiu cerca de 57% com a inicialização e as importações do agente sob demanda. Segurança: a ocultação de segredos foi desativada por padrão para evitar a corrupção de payloads; lista rígida de bloqueio para comandos irrecuperáveis. Números: 1.096 commits, 550 PRs integrados e 213 colaboradores da comunidade. |
17 |
| 2026-04-25 | Guia v1.3: Adicionado v0.11.0 (23 de abril de 2026) — versão Interface. Reformulação completa da TUI interativa em React/Ink, com um backend RPC Python JSON (tui_gateway); campo de composição fixo, streaming ao vivo com suporte à área de transferência OSC-52, teclas estáveis nos seletores, barra de status com cronômetro por turno e branch do git, confirmação em /clear, predefinição de tema claro e overlay de observabilidade para criação de subagentes. Arquitetura de transporte conectável — a conversão de formatos e o transporte HTTP foram extraídos para agent/transports/, simplificando a integração dos provedores. AWS Bedrock nativo via Converse API. Cinco novos caminhos de inferência: NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth e Vercel ai-gateway. GPT-5.5 via Codex OAuth — o novo modelo principal da OpenAI agora pode ser acessado por meio do ChatGPT Codex OAuth, sem uma chave API separada. QQBot (17ª plataforma de mensagens) com configuração por leitura de QR code e streaming. Expansão da superfície de plugins: comandos slash, despacho de ferramentas, bloqueio de execução e transformação de resultados. /steer <prompt> — direcionamentos durante a execução que inserem uma observação vista pelo agente em execução após sua próxima chamada de ferramenta, sem interromper o turno nem invalidar o cache do prompt. Hooks de shell conectam scripts como hooks de ciclo de vida sem plugins Python. O modo de entrega direta por webhook encaminha payloads diretamente para uma conversa da plataforma, ignorando o agente para distribuição em massa. Delegação mais inteligente, com funções de orquestrador, profundidade de criação configurável e coordenação de arquivos. O dashboard ganha um sistema de plugins, troca de tema em tempo real, i18n e responsividade para dispositivos móveis. Números desde a v0.9.0: 1.556 commits, 761 PRs integrados, 1.314 arquivos alterados, 224.174 inserções e 29 colaboradores da comunidade. |
60 |
| 2026-04-16 | Guia v1.2: Adicionado v0.10.0 — Nous Tool Gateway. Assinantes pagos do Nous Portal agora têm acesso a ferramentas gerenciadas (pesquisa na web com Firecrawl, geração de imagens com FAL / FLUX 2 Pro, TTS da OpenAI e automação do navegador com Browser Use) sem chaves API adicionais. Ativação individual por ferramenta por meio do novo campo de configuração use_gateway. Quando ambos estão configurados, o runtime prioriza o gateway em vez das chaves API diretas. A variável de ambiente HERMES_ENABLE_NOUS_MANAGED_TOOLS foi removida. A CLI do Hermes Agent continua licenciada sob MIT e totalmente gratuita. |
61 |
| 2026-04-13 | Guia v1.1: Adicionados os recursos das versões v0.8.0 e v0.9.0. Dashboard web local, modo /fast, plataformas iMessage + WeChat (16 no total), monitoramento de processos em segundo plano (watch_patterns), context engine conectável, hermes backup/hermes import, Termux/Android, provedores xAI + MiMo + Google AI Studio + Qwen, comando /debug e reforço abrangente da segurança. |
15 16 |
| 2026-04-10 | Guia v1.0: Versão inicial cobrindo o Hermes Agent v0.7.0. Autenticação de provedores, configuração, CLI, comandos slash, ferramentas, skills, memória, gateway, cron, MCP, compactação, arquitetura, migração do OpenClaw, solução de problemas e perguntas frequentes. | |
| — |
Referências
-
Nous Research, README do projeto “Hermes Agent” no GitHub. Fonte primária para a descrição do produto (agente com autoaperfeiçoamento, vários provedores, gateway de mensagens, backends de terminal, evolução de skills, agendador cron e delegação) e para o comando de uma linha da “Instalação rápida”. ↩↩↩
-
Nous Research, “Provedores de IA” na documentação do Hermes Agent. Fonte primária para a lista completa de provedores, os métodos de autenticação de cada provedor (Nous Portal OAuth, código de dispositivo do Codex, tipos de token do GitHub Copilot, três métodos de autenticação do Anthropic, provedores chineses de IA, roteamento do Hugging Face e endpoints personalizados), os três caminhos de autenticação (chave API no
.env, OAuth viahermes modele endpoint personalizado noconfig.yaml), a sintaxe do comando de barra/model(incluindocustom:name:model), os modelos de configuração do Ollama/vLLM/SGLang/llama.cpp/LM Studio, as instruções de rede do WSL2, a cadeia de detecção do tamanho do contexto, a configuração de modelo de fallback, o roteamento inteligente de modelos e os provedores personalizados nomeados. Todos os nomes de variáveis de ambiente específicos de provedores, tipos de token, substituições da URL base e identificadores de modelos deste artigo vêm dessa página. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Arquitetura” no guia para desenvolvedores do Hermes Agent. Fonte primária para o diagrama de visão geral do sistema, a estrutura de diretórios, o fluxo de dados pelos caminhos de sessão e mensagens do gateway do CLI, os três modos de API (
chat_completions,codex_responses,anthropic_messages), a resolução de provedores viaruntime_provider.py, a persistência de sessões via SQLite + FTS5, a lista de plataformas do gateway de mensagens, as fontes de descoberta do sistema de plugins, o isolamento de profiles e os seis princípios de design. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Configuração” no guia do usuário do Hermes Agent. Fonte primária para a estrutura do diretório de configuração, a regra entre
config.yamle.env(“config.yamltem precedência para configurações que não sejam secretas”), a cadeia de precedência da configuração (argumentos do CLI → env → config.yaml → .env → valores padrão), as configurações de compressão de contexto (blococompression.*comthreshold,threshold_tokens,target_ratio,tail_mode,protect_last_n,protect_first_n; o modelo/provedor/endpoint do sumarizador fica emauxiliary.compression.*desde a migração para a versão 17 da configuração), os limites de pressão do orçamento (atenção aos 70%, aviso aos 90%), os timeouts de streaming com ajuste automático para provedores locais e o bloco completo de configuração dos modelos auxiliares (auxiliary:com slotsvision,web_extract,approval,compression,session_search,skills_hub,mcp,flush_memories). A restrição do provedor"main"aos slots auxiliares/de compressão/de fallback também vem dessa página. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Migrar do OpenClaw” nos guias do Hermes Agent. Fonte do fluxo de migração do OpenClaw → Hermes. ↩↩
-
Nous Research, “Referência de comandos do CLI” na documentação de referência do Hermes Agent. Fonte primária para todos os comandos de nível superior do CLI documentados neste artigo, incluindo
hermes chat,hermes model,hermes gateway,hermes setup,hermes auth,hermes status,hermes cron,hermes webhook,hermes doctor,hermes dump,hermes logs,hermes config,hermes pairing,hermes skills,hermes honcho,hermes memory,hermes acp,hermes mcp,hermes plugins,hermes tools,hermes sessions,hermes insights,hermes claw,hermes profile,hermes completion,hermes updateehermes uninstall. Todas as flags dos subcomandos, descrições de opções, comportamento do pool de credenciais, sintaxe de filtragem de logs, flags de migração do OpenClaw, comandos de gerenciamento de profiles e comandos de instalação de serviços deste artigo vêm dessa página. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Instalação” no guia de primeiros passos do Hermes Agent. Fonte primária para o comando de instalação de uma linha, o comportamento do instalador (pré-requisitos, suporte a plataformas, detecção automática do Termux e requisitos do Windows/WSL2), a tabela de extras opcionais, as etapas de instalação manual e os comandos de verificação. ↩↩↩↩↩↩↩↩↩
-
Nous Research, “Referência de comandos do CLI” — consulte especificamente a seção
hermes dump, que descreve o formato de saída do comando (cabeçalho, ambiente, identidade, modelo, terminal, chaves de API, recursos, serviços, carga de trabalho e substituições da configuração) e sua finalidade para compartilhar diagnósticos. ↩ -
Nous Research, “Referência de comandos de barra” na documentação de referência do Hermes Agent. Fonte primária para todos os comandos de barra listados neste artigo, a arquitetura
COMMAND_REGISTRY, a divisão entre CLI e mensagens, os comandos de barra dinâmicos das skills, os comandos rápidos noconfig.yaml, o comportamento de correspondência de prefixos e os comandos exclusivos de mensagens (/status,/sethome,/approve,/deny,/update,/commands). ↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Ferramentas e toolsets” no guia do usuário do Hermes Agent. Fonte primária para a visão geral das categorias de ferramentas, os comandos de uso de toolsets, os sete backends de terminal (local, docker, ssh, singularity, modal, daytona, vercel_sandbox), a configuração de contêineres (cpu, memória, disco, persistência), o reforço de segurança para contêineres, o gerenciamento de processos em segundo plano do API e o suporte a sudo. ↩↩↩↩↩↩↩↩↩↩
-
Nous Research, “Sistema de skills” no guia do usuário do Hermes Agent. Fonte primária para a divulgação progressiva, o formato de
SKILL.md, as skills específicas de cada plataforma, a ativação condicional (fallback_for_toolsets,requires_toolsets,fallback_for_tools,requires_tools), as skills gerenciadas pelo agente viaskill_manage, os comandos e a lista de fontes do hub de skills (official,skills-sh,well-known,github,clawhub,claude-marketplace,lobehub), a verificação de segurança e os níveis de confiança, além dos diretórios externos de skills. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Memória persistente” no guia do usuário do Hermes Agent. Fonte primária para os limites de caracteres de
MEMORY.md/USER.md, o padrão de snapshot congelado, as ações da ferramenta de memória (add,replace,remove), o que salvar ou ignorar, a comparação entre memória e pesquisa de sessões e os provedores externos de memória. Na tagv2026.9.24, a página complementar Provedores de memória (linha 9) informa que “o Hermes Agent inclui 7 plugins de provedores externos de memória” e acrescenta que “outros (como o Hindsight) estão disponíveis no catálogo de plugins”; na tag,plugins/memory/contémbyterover,holographic,honcho,mem0,openviking,retaindbesupermemory. ↩↩↩↩↩↩↩↩ -
Nous Research, “Personalidade e SOUL.md” no guia do usuário do Hermes Agent. Fonte primária para o comportamento do
SOUL.md(fica emHERMES_HOME, nunca é sobrescrito, ocupa a posição nº 1 no prompt do sistema e passa por uma verificação de segurança antes da inclusão), a distinção entre SOUL.md e AGENTS.md, a lista de personalidades integradas (14 personalidades, dehelpfulahype), as personalidades personalizadas noconfig.yaml, o padrão de sobreposição de/personalitye a ordem completa de montagem da pilha de prompts. ↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Usar MCP com o Hermes” e Referência de configuração do MCP nos guias e na referência do Hermes Agent. Fonte do formato de configuração
mcp_servers:noconfig.yaml, com os camposcommand,argseenv. ↩ -
Notas da versão 0.8.0 do Hermes Agent. 8 de abril de 2026. Notificações automáticas de processos em segundo plano, MiMo v2 Pro gratuito no Nous Portal, troca ao vivo com
/modelentre plataformas, provedor nativo do Google AI Studio, Qwen OAuth, timeouts baseados em inatividade, botões de aprovação no Slack/Telegram, MCP OAuth 2.1 PKCE, registro centralizado de logs e expansão do sistema de plugins. ↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.9.0. 13 de abril de 2026. Dashboard web local, Fast Mode (
/fast), iMessage via BlueBubbles, WeChat + WeCom, Termux/Android, monitoramento de processos em segundo plano (watch_patterns), provedores nativos xAI + Xiaomi MiMo, context engine modular, suporte unificado a proxy, reforço de segurança (correções para travessia de caminho, injeção de shell, SSRF e RCE),hermes backup/hermes import,/debug+hermes debug share, 16 plataformas compatíveis. 487 commits, 269 PRs mesclados, 24 colaboradores. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.12.0. 30 de abril de 2026. “A versão Curator.” Curator autônomo em segundo plano que avalia, remove e consolida a biblioteca de skills em um ciclo padrão de 7 dias executado pelo cron do gateway. Loop de autoaperfeiçoamento atualizado: avaliação baseada em critérios, preferência por atualizações ativas, herança adequada do ambiente de execução e toolsets com escopo restrito à memória e às skills. Quatro novos provedores de inferência: GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio promovido a recurso de primeira classe. Manifestos remotos de catálogos de modelos são atualizados automaticamente, sem novos lançamentos. Duas novas plataformas de mensagens: Microsoft Teams (19ª, por meio da arquitetura modular do gateway) e Tencent Yuanbao (18ª, com texto + mídia nativos). Spotify nativo via PKCE OAuth com skill incluída; plugin do Google Meet para chamadas e transcrição; provedor local de TTS Piper. ComfyUI v5 + TouchDesigner-MCP incluídos por padrão. Novas skills: Humanizer, claude-design, design-md, airtable. CLI: modo de execução única
hermes -z, verificação preliminarhermes update --check, comando de barra/reload-skills, estilos modulares de indicador de atividade. Inicialização a frio da TUI reduzida em cerca de 57% por meio de inicialização sob demanda. Segurança: ocultação de segredos desativada por padrão; lista rígida de bloqueio para comandos irrecuperáveis. Estatísticas desde a v0.11.0: 1.096 commits, 550 PRs mesclados, 213 colaboradores da comunidade. Veja também: tag da versão v2026.4.30. ↩↩↩ -
Notas de lançamento do Hermes Agent v0.13.0. 7 de maio de 2026. “A versão Tenacity.” Quadro Kanban multiagente com heartbeat, retomada, detecção de agentes zumbis, bloqueio contra alucinações,
max_retriespor tarefa e quadros para vários projetos. Comando de barra/goalpara fixar objetivos entre turnos (primitiva do loop Ralph), com limite configurável de turnos. Ferramentavideo_analyze, priorizando Gemini e com extensibilidade multimodal compatível. Provedor de TTS xAI Custom Voices com clonagem de voz. i18n em 7 idiomas: zh-Hans, ja, de, es, fr, uk, tr (CLI + mensagens do gateway; documentação apenas em zh-Hans). Google Chat como a 20ª plataforma de mensagens, por meio de um padrão de adaptadores modulares com hooks genéricos de pluginenv_enablement_fn/cron_deliver_env_var; IRC e Microsoft Teams migrados para o mesmo padrão. ABCProviderProfile+plugins/model-providers/para provedores externos modulares. Retomada automática de sessões após reinicializações do gateway,/updatee recarregamentos de arquivos-fonte. Reescrita do Checkpoints v2 com armazenamento único, limpeza real, proteções de disco e sem repositórios-sombra órfãos. Oito correções de segurança P0: ocultação de segredos ativada por padrão, desvio de DM entre servidores do Discord (CVSS 8.1, listas de permissões de funções limitadas ao servidor), WhatsApp rejeita desconhecidos por padrão + nunca responde no chat consigo mesmo, condição de corrida TOCTOU ao salvar credenciais em MCP OAuth, condição de corrida TOCTOU emauth.jsonnos gravadores de credenciais de CLI, proteção mínima contra SSRF de metadados de nuvem no roteamento híbrido do navegador, verificação dos prompts montados pelo cron (incluindo conteúdo de skills) contra injeção de prompt, ocultação do conteúdo de logs no momento do upload emhermes debug share. Outros itens de destaque: lint após gravação para Python/JSON/YAML/TOML, modo watchdogno_agentdo cron somente para scripts, listas de permissões de plataforma no Slack/Telegram/Mattermost/Matrix/DingTalk, melhorias em MCP (transporte SSE, encaminhamento de OAuth, resultados de imagem como tags MEDIA). Estatísticas desde a v0.12.0: 864 commits, 588 PRs mesclados, 829 arquivos alterados, 295 colaboradores da comunidade, 282 issues encerradas (13 P0, 36 P1). ↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.14.0. 16 de maio de 2026. “A versão Foundation.” Desde a v0.13.0: 808 commits, 633 PRs mesclados, 1.393 arquivos alterados, 165.061 inserções, 545 issues encerradas (12 P0, 50 P1) e 215 colaboradores da comunidade. Adiciona SuperGrok OAuth com contexto de 1 milhão do grok-4.3,
hermes proxy,x_search, empacotamento para PyPI, dependências carregadas sob demanda, cache de prompt Claude de 1 hora entre sessões, inicialização cerca de 19 segundos mais rápida, chamadas CDP do navegador 180 vezes mais rápidas, LINE e SimpleX Chat, totalizando 22 plataformas de mensagens,/handoff, botões nativos de esclarecimento, preenchimento retroativo do histórico do Discord,vision_analyzecom pixels brutos, rodapé de verificação de alterações em arquivos a cada turno, diagnósticos semânticos via LSP,video_generateunificado,computer_usedo cua-driver, links OSC8, suporte ao Zed ACP Registry, roteador OpenRouter Pareto Code, NovitaAI, ambiente de execução do Codex app-server,huggingface/skills,ctx.llmde plugin,tool_override, busca com Brave/DDGS, reforço contra comandos perigosos,/subgoal, renomeação do Qwen Cloud, beta nativo para Windows, 16 localidades no total e amplas atualizações na documentação e nos testes. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.16.0, “The Surface Release”, tag
v2026.6.5, publicada em 6 de junho de 2026 às 00:55:58 UTC (data da tag de lançamento: 5 de junho de 2026); versão mais recente em 8 de junho de 2026. Novo Hermes Desktop nativo (Electron, macOS/Linux/Windows; conexão com gateway remoto por WebSocket seguro com OAuth ou usuário/senha; hosts remotos por profile; links@sessionentre profiles; interface em chinês simplificado por meio de i18n tipada,display.language). O dashboard web foi ampliado e se tornou um painel administrativo completo (alternadores do catálogo de MCP, gerenciamento de credenciais, criação de webhooks/hooks, configuração de memória, controles do gateway, página System com verificação antes da atualização + Debug Share, página Channels; autenticação extensível, incluindo OIDC auto-hospedado ehermes dashboard register). Novos comandos:/undo [N], interface padrão configurável (cli/tui,--cli),/modelna TUI + sobreposição Sessions,hermes portal,hermes prompt-size,hermes sessions optimize. Novos modelos:deepseek-v4-flash,MiniMax-M3(contexto de 1M),qwen3.7-plus,gemini-3.5-flash; OAuth do xAI Grok; seletor por correspondência aproximada; atualização do catálogo a cada hora. Skills: conjunto padrão mais enxuto, filtro de relevânciaenvironments:,NVIDIA/skillscomo tap confiável padrão, divulgação progressiva de ferramentas, correção do falso sucesso de OAuth do MCP. Segurança: CVE-2026-48710 (Starlette BadHost) fixada em ≥1.0.1, verificações de SSRF fora do loop de eventos, token bearer do Bedrock removido do ambiente de subprocessos, leitura debws_cache.jsonprotegida, inclusão dedocker restart/stop/killnos padrões perigosos, sanitização de Unicode invisível; 2 P0 + 62 P1 encerrados (16 marcados como segurança). O enquadramento de marketing das notas de lançamento (quantidades de PRs/commits, “none of this existed a week ago”) foi excluído; foram registrados apenas fatos concretos sobre recursos e versões vinculados à tag. Verificação na sessão atual em 8 de junho de 2026. ↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.17.0, “The Reach Release”, tag
v2026.6.19, 19 de junho de 2026; versão mais recente em 21 de junho de 2026. Mensagens: iMessage via Photon Spectrum (OAuth por código do dispositivo,hermes photon login, sem retransmissão por Mac); adaptador oficial da API do WhatsApp Business Cloud (substitui o processo de bridge); grupos do SimpleX, anexos nativos, agrupamento de texto e aceitação automática; plugin de plataforma Raft incluído. Modelos/provedores:z-ai/glm-5.2(contexto de 1M),anthropic/claude-fable-5,laguna-m.1,nemotron-3-ultra,grok-composer-2.5-fast(OAuth da xAI, contexto de 200k); padrão da xAI →grok-build-0.1; modelos adaptativos do Anthropic usam o contrato moderno de raciocínio (sem o camporeasoning). CLI/comandos de barra:/version,/billing,hermes photon login,hermes curator run --consolidate(opcional), interface gráfica dehermes model, clonagem de profiles. Desktop: janelas de acompanhamento para subagentes em segundo plano (delegate_task(background=true)), seletor de modelos no Composer, atalhos reconfiguráveis, notificações nativas do sistema operacional, rascunhos por thread, temas do VS Code Marketplace, interface em japonês + chinês tradicional. Dashboard: criador completo de profiles, seletor global de profile, reformulação do Skills Hub com verificação de segurança, Automation Blueprints, login seguro (401 protegido por OAuth). Skills/ferramentas: edição de imagem para imagem comimage_generateentre provedores, lote atômico deoperationsdememory, skill de revisão paralelasimplify-code,write_approvalbooleano substituiwrite_mode. Arquitetura: subagentes em segundo plano (o identificador é retornado imediatamente e o resultado volta como um turno), manipulador de elicitação do MCP para confirmação durante uma chamada de ferramenta, ferramentas do MCP que se conectam posteriormente são expostas entre turnos, CronScheduler extensível + cron gerenciado pelo Chronos, escopo Managed (fixado pelo administrador em/etc/hermes), retransmissão Gateway-Gateway. Segurança: contorno da lista de bloqueio de escape de shell corrigido, bloqueio por padrão quando o módulo de aprovação ou adaptadores do gateway com política própria estão ausentes, ambiente de scripts de tarefas cron sanitizado, segredos ocultados em dumps de depuração, metadados do host omitidos do status público, triagem de padrões de exfiltração no stdio do MCP, atualizações do urllib3 + PyJWT para corrigir CVEs. O enquadramento de marketing do lançamento (quantidades de commits/PRs) foi excluído. Verificação na sessão atual em 21 de junho de 2026. ↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.18.0 (tag
v2026.7.1), 1º de julho de 2026 — “The Judgment Release”. Revisão do backlog prioritário (todos os P0/P1 encerrados, cerca de 692 itens em 12 dias); Mixture-of-Agents selecionável como modelo de primeira classe em todas as interfaces, com a saída completa de cada modelo de referência renderizada em seu próprio bloco identificado e transmissão ao vivo da resposta; contratos de conclusão para/goal(o agente verifica o próprio trabalho executando as verificações do projeto); comando/learn(transforme qualquer coisa em uma skill reutilizável descrevendo-a, com conformidade automática ao CONTRIBUTING.md);/journey, uma linha do tempo visual de memória/skills com edição e um grafo de memória no desktop; distribuição em leque de subagentes em segundo plano (várias tarefas delegadas simultâneas); Desktop Projects (modelo de projeto/repositório/lane); gateway com redução a zero e coordenação de drenagem; compatibilidade com Google Vertex AI (Gemini via contas de serviço do GCP, atualização automática do token OAuth2); comando/promptpara $EDITOR. Verificação na sessão atual em 1º de julho de 2026 (PST) na página de lançamentos do GitHub; v0.18.0 é a versão mais recente. ↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.20.5 (tag
v2026.8.19, data de lançamento informada como 19 de agosto, publicada em 21 de agosto de 2026; consultada pela API do GitHub em 24 de agosto de 2026 — prerelease: false). Descrição literal do período: “~746 commits em ~1.250 arquivos (+111.500 / -20.701) — ~323 PRs mesclados, incluindo threads de salas em grupo do Bot Mode, resumos de conversas recolhíveis, avatares com rosto em forma de bolha e anexos de PDF/arquivos com recurso de arrastar e soltar; a camada web sem chaves (rotação gratuita entre 5 fornecedores com failover em anel, pesquisa na web em instalações novas sem nenhuma chave); uma onda de refinamentos no CLI (seletor aproximado de /model, paleta de comandos com Ctrl+P, /status mais completo); disciplina de execução e proteções contra travamentos em tempo de execução provenientes das conclusões da avaliação do Composio; recibos dehermes updatee verificação de frota com--plan;hermes worktree list/prune; o provedor sem opencode e sem autenticação; esclarecimento com várias perguntas; trabalho de desempenho no desktop (hidratação do Bot Mode priorizando a primeira renderização, spinners no compositor, React Compiler nos dois renderizadores); e tarefas cron com memória persistente e nível de esforço de raciocínio por tarefa.” O lançamento repete: “As notas de lançamento completas e selecionadas para este período serão publicadas com a v0.21.0.” ↩↩↩↩↩↩↩↩↩↩↩ -
Backends de terminal na tag
v2026.8.31(verificados novamente para a versão 1.17 do guia;agent/terminal_env_registry.pyé idêntico byte a byte à sua versão emv2026.8.31, os fatos na docstring detools/terminal_tool.pynão mudaram etools/environments/ainda contém os mesmos 7 módulos de backend, agora junto de um auxiliarpath_utils.py): docstring do módulotools/terminal_tool.py, literalmente: “Uma ferramenta de terminal que executa comandos em ambientes local, Docker, Modal, SSH, Singularity, Daytona e Vercel Sandbox” e, na lista de seleção de ambientes, a entradavercel_sandbox“Executar em sandboxes na nuvem do Vercel Sandbox”; o módulo de backendtools/environments/vercel_sandbox.pyexiste na tag junto dedaytona.py,docker.py,local.py,modal.py,singularity.pyessh.py. O README na tag: “Sete backends de terminal — local, Docker, SSH, Singularity, Modal, Daytona e Vercel Sandbox.” A página da documentação Tools & Toolsets (fontewebsite/docs/user-guide/features/tools.mdna tag) apresentavercel_sandboxem uma tabela como “microVM na nuvem do Vercel Sandbox” para “Execução na nuvem com persistência do sistema de arquivos apoiada por snapshots”, mostra o comentário de configuração# or: docker, ssh, singularity, modal, daytona, vercel_sandboxe afirma: “Faça a autenticação com os três:VERCEL_TOKEN,VERCEL_PROJECT_IDeVERCEL_TEAM_ID. … Os runtimes compatíveis sãonode24,node22epython3.13; por padrão, o Hermes usa/vercel/sandboxcomo raiz do workspace remoto.” Emv2026.8.31, o pacotetools/environments/também contém a infraestrutura compartilhada (base.pycom a ABCBaseEnvironment,file_sync.py,modal_utils.py,managed_modal.py); a docstring do pacote considera o Modal gerenciado como um modo do Modal, não como um 8º backend: “O Modal também tem modos direto e gerenciado pela Nous, selecionados por terminal.modal_mode.” ↩↩↩ -
Contagem de plataformas de mensagens na tag
v2026.8.31(verificada novamente para o guia v1.17; idêntica àv2026.8.31— 28 linhas na tabela da documentação, os mesmos 24 membros do enumPlatforme as mesmas 22 pastas de adaptadores). A página da documentação do Messaging Gateway (fontewebsite/docs/user-guide/messaging/index.mdna tag) tem uma tabela “Comparação de plataformas” com 28 linhas: Telegram, Discord, Slack, Google Chat, WhatsApp, WhatsApp Cloud API, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, WeCom Callback, Weixin, BlueBubbles, Photon (iMessage), QQ, Yuanbao, Microsoft Teams, LINE, ntfy, Raft, IRC, Buzz, SimpleX.gateway/config.pydefineclass Platform(Enum)com 24 membros explícitos (local,telegram,discord,whatsapp,whatsapp_cloud,slack,signal,mattermost,matrix,homeassistant,email,sms,dingtalk,api_server,webhook,msgraph_webhook,feishu,wecom,wecom_callback,weixin,bluebubbles,qqbot,yuanbao,relay) e documenta: “As plataformas de plugins usam membros dinâmicos criados sob demanda por_missing_(), de modo quePlatform("irc")funcione sem modificar esse enum.” A árvoreplugins/platforms/da tag contém 22 pastas de adaptadores:a2a buzz dingtalk discord email feishu google_chat homeassistant irc line matrix mattermost ntfy photon raft simplex slack sms teams telegram wecom whatsapp. Descrições das plataformas: a página do ntfy, literalmente: “O ntfy é um serviço simples de notificações pub-sub baseado em HTTP. Ele funciona com o servidor público gratuito emntfy.shou com qualquer instância auto-hospedada… assine um tópico pelo aplicativo móvel do ntfy, envie mensagens ao tópico para conversar com o agente e receba a resposta no seu celular.” A página do Buzz, literalmente: “O adaptador do Buzz conecta o Hermes a uma comunidade do Buzz — a plataforma open source de colaboração entre humanos e agentes da Block, desenvolvida sobre o protocolo Nostr — e retransmite mensagens entre os canais do Buzz (ou DMs) e o agente. O tráfego de saída executa o bináriobuzzCLI por meio do shell… o tráfego de entrada usa uma assinatura nativa do Nostr WebSocket.” Ambas as páginas: “Executehermes gateway setupe escolha… para seguir uma configuração guiada.” ↩↩↩ -
Contagem de provedores na tag
v2026.8.31(verificada novamente para o guia v1.17; a v0.21.0 ALTEROU essas contagens em relação às 38 entradas estáticas, 37 pastas de plugins e 41 linhas da documentação dav2026.8.31).hermes_cli/models.pydeclaraCANONICAL_PROVIDERS: list[ProviderEntry]com 39 entradas estáticas (nous,fireworks,openrouter,moa,novita,lmstudio,anthropic,openai-codex,openai-api,alibaba,xai-oauth,xiaomi,tencent-tokenhub,tencent-tokenplan,nvidia,copilot,copilot-acp,huggingface,gemini,vertex,deepseek,xai,zai,kimi-coding,kimi-coding-cn,stepfun,minimax,minimax-oauth,minimax-cn,ollama-cloud,arcee,gmi,kilocode,opencode-zen,opencode-go,bedrock,azure-foundry,ai-gateway,qwen-oauth), seguidas pelo comentário “Estenda automaticamenteCANONICAL_PROVIDERScom qualquer provedor registrado emproviders/que ainda não esteja na lista acima. Adicionarplugins/model-providers/<name>/é suficiente para disponibilizar um novo provedor no seletor de modelos”; o loop ignora apenas os tipos de autenticaçãooauth_device_code,oauth_external,external_process,aws_sdk,copilotevertex(sem alterações). A árvoreplugins/model-providers/da tag contém 39 pastas de provedores (nebius-token-factoryerouterforam adicionados no período da v0.21.0); os nove sem uma entrada estática (actual,alibaba-coding-plan,commandcode,deepinfra,meta-ai,nebius-token-factory,opencode-free,router,upstage) são todos resolvidos para o tipo de autenticaçãoapi_key— sete declaramauth_type="api_key"explicitamente (incluindo os dois novos plugins), enquantocommandcodeeopencode-freeherdamauth_type: str = "api_key"deproviders/base.py. A página da documentação de provedores de IA (fontewebsite/docs/integrations/providers.mdna tag) apresenta em uma tabela 45 provedores nomeados, além de uma linha “Endpoint personalizado” (linhas adicionadas desdev2026.8.31: Ramp Router, Nebius Token Factory, Tencent TokenPlan, Alibaba Cloud (Token Plan) — citadas em 36); cada nome de variável de ambiente, slug de provedor, alias e observação sobre autenticação nas novas linhas da matriz é citado dessa tabela, incluindo “OpenCode Free | Sem chave — nenhuma chave API ou conta necessária (provedor:opencode-free, aliases:free,opencode_free). Selecione por meio dehermes modelou/model free; as solicitações são enviadas anonimamente”, “Google Vertex AI | … OAuth2 por meio de JSON de conta de serviço ou ADC, faturamento do GCP”, “AWS Bedrock | … cadeia padrão de credenciais da AWS por meio do boto3” e “CommandCode | … Funciona com os planos GOAT/Pro/Max/Provider (não com o plano Go de US$ 1 — sem acesso API)”. A linha da Meta AI vem do bloco de chave API de primeira classe da mesma página: “Meta Model API (família Muse Spark)…hermes chat --provider meta-ai --model muse-spark-1.2… Requer: MODEL_API_KEY”. O Cerebras aparece apenas na tabela “Outros provedores compatíveis” da página (https://api.cerebras.ai/v1, “Inferência em chips em escala de wafer”), por isso é listado na linha de endpoint personalizado, e não como provedor de primeira classe. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Superfície de CLI na tag
v2026.8.31(verificada novamente para o guia v1.17; os textos de ajuda citados das opções globais e todos os fatos sobre_BUILTIN_SUBCOMMANDSpermanecem inalterados desdev2026.8.31— o frozenset é idêntico, com 73 entradas — enquantohermes_cli/_parser.pymudou apenas dentro dehermes chat, documentado em 40). As opções globais e seus textos de ajuda vêm dehermes_cli/_parser.py:--in(“Mude para DIR antes de iniciar ou retomar. Combinado com ‘–resume latest’ ou -c, seleciona a sessão mais recente do workspace de DIR, e a sessão permanece em DIR (ignora a restauração do cwd registrado).”),--ignore-user-config(“Ignore ~/.hermes/config.yaml e use os padrões integrados (as credenciais em .env ainda são carregadas)”),--ignore-rules(“Ignore a injeção automática de AGENTS.md, SOUL.md, .cursorrules, memória e skills pré-carregadas”),--tui(“Inicie a TUI moderna em vez do REPL clássico”),--cli(“Force o REPL clássico do prompt_toolkit (substitui display.interface=tui)”),--dev(“Com –tui: execute as fontes de TypeScript via tsx (ignore o build de dist)”), e--version/-V(“Mostre a versão e saia”).hermes_cli/_startup_fast.pyusa o caminho rápido apenas paraargv in (["--version"], ["-V"]), e o frozenset_BUILTIN_SUBCOMMANDSemhermes_cli/main.pynão contém nenhuma entradaversion; a Referência de comandos do CLI documentahermes --version(“Mostre informações da versão”), mas nãohermes version. As descrições dos comandos são os textoshelp=do parser emhermes_cli/main.pyehermes_cli/subcommands/*.pyna tag (por exemplo,approvals: “Ferramentas de solicitação de aprovação (extraia propostas de lista de permissões do histórico)”;pause: “Parada de emergência: pause o despacho de cron/kanban e novos turnos do gateway”;sync: “Skill Sync — sincronize suas skills entre dispositivos e com sua equipe”;verify: “Detecte a receita de execução de um projeto e faça um teste básico”;login: “Obsoleto. Usehermes authpara gerenciar credenciais,hermes modelpara selecionar um provedor ouhermes setuppara a configuração completa.”), conferidos com a tabela de comandos de nível superior da documentação.hermes update --planestá emhermes_cli/subcommands/update.py: “Mostre o plano de atualização e saia sem alterar nada: o tipo de instalação (git/docker/nix), todos os serviços Hermes em execução em todos os profiles, com seu supervisor e a versão do código em execução, além de como cada um será reiniciado. Somente leitura; seguro para uma frota ativa.”; não existe nenhum comandofleetem_BUILTIN_SUBCOMMANDS.hermes worktreeé registrado emhermes_cli/main.py(ajuda: “Audite e recupere worktrees do git e branches mescladas acumuladas”) comlist(aliasesls,audit; “Classifique cada árvore: idade, tamanho, veredito, motivo (ação padrão)”),prune(“Remova árvores seguras e exclua branches locais totalmente mescladas”),--repo,--dry-run(“Mostre o plano sem alterar nada”),--trees-only(“Remova apenas worktrees; não altere as branches locais”) e--branches-only(“Exclua apenas branches locais mescladas; não altere os worktrees”). O comando slash/worktreeé_handle_worktree_commandemhermes_cli/cli_commands_mixin.py(bloco de sintaxe:/worktree,/worktree new [name],/worktree list,/worktree prune [--dry-run]); a seção “Limpeza de worktrees” do guia do usuário do CLI acrescenta: “Dentro de uma sessão,/worktree prune [--dry-run]faz o mesmo (e nunca altera a árvore em que a sessão está sendo executada).” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Comandos do Nous Portal na tag
v2026.8.31(verificados novamente para o guia v1.17;hermes_cli/portal_cli.pyé idêntico byte a byte à sua versão emv2026.8.31). O README na tag, na seção “Ignore a coleta de chaves de API — Nous Portal”: “Um comando em uma instalação nova:hermes setup --portal… Isso faz seu login via OAuth, define Nous como seu provedor e ativa o Tool Gateway. Confira a qualquer momento o que está conectado comhermes portal info.”hermes_cli/portal_cli.pyregistraportal(ajuda: “Configure o Nous Portal (login, seleção de modelo, Tool Gateway); consulte tambémportal info”) comlogin(“Faça login no Nous Portal e configure-o (padrão; onboarding em uma única etapa)”),info(“Mostre um resumo da autenticação do Portal e do roteamento do Tool Gateway”),open(“Abra a página de assinatura do Portal no navegador padrão”),tools(“Liste as ferramentas do Tool Gateway e quais são roteadas pela Nous”) e o comentário no código “statusmantido como alias oculto para compatibilidade retroativa cominfo.” A página da documentação do Tool Gateway mostrahermes setup --portal # Fresh install: Nous OAuth + set Nous as provider + turn on the Tool Gateway in one goehermes portal info # Portal auth + Tool Gateway routing summary; a Referência de comandos do CLI na mesma tag ainda documentahermes portal [status|open|tools]. ↩↩↩ -
Comparação de GitHub de API,
NousResearch/hermes-agent,v2026.8.19...main, obtida em 26 de agosto de 2026:ahead_by: 1104,behind_by: 0. A página de releases de API listav2026.8.19(Hermes Agent v0.20.5, publicado em 2026-08-21T12:16:39Z) como a tag mais recente, cujas notas afirmam: “As notas de release completas e selecionadas para este período serão lançadas com a v0.21.0, que documentará tudo a partir da v0.20.0.” Verificado novamente em 27 de agosto de 2026 em relação à nova tag:v2026.8.27...mainretornaahead_by: 0,behind_by: 0,status: identical— agoramainestá exatamente na tag v0.20.6. ↩↩ -
Notas de release do Hermes Agent v0.20.6 (tag
v2026.8.27, data de lançamento informada como 27 de agosto, publicada em 2026-08-27T12:06:53Z; obtida via GitHub de API em 27 de agosto de 2026 — pré-release: false). Contextualização literal: “Release de correção. Esta tag reúne os cerca de 525 PRs mesclados desde a v0.20.5 em uma release estável com tag para consumidores downstream (imagens Docker, implantações hospedadas, instalações novas).” Descrição literal do período: “Desde a v0.20.5 (v2026.8.19, marcada em 21 de agosto), este período trouxe cerca de 1.313 commits em aproximadamente 1.557 arquivos (+177.113 / -21.682) — cerca de 525 PRs mesclados, incluindo navegação com profile real condicionada ao consentimento (use seu profile padrão do Chromium para navegação local, com fluxo de fechamento mediante aprovação no Windows); o Browser para desktop ganhou sua própria janela do sistema operacional, além de um mecanismo gerenciado de atualização remota de SSH e uma barra de profiles da frota; uma grande expansão do catálogo remoto de MCP (mais de 50 servidores hospedados por fornecedores e verificados ao vivo, incluindo Cloudflare, Grafana Cloud, Better Stack e Railway); cache de resultados com TTL para web_search/web_extract; compressão lean-tail como padrão; tool_search com múltiplas consultas e stemming; criptografia opcional no chaveiro do sistema operacional para segredos armazenados (eliminando as solicitações do Chaves do macOS a cada inicialização); atualizadores que pausam gateways pelo socket de controle em vez de encerrar suas árvores de processos; instalações gerenciadas por imagem/pacote que recusam atualizações inseguras no próprio local (#91277 Fase 3); confirmações de incidentes duráveis do cron e falhas de divergência de código mais claras; controles de pré-visualização de links do Slack; identidades compartilhadas de containers Docker; backends conectáveis de ambiente de terminal; e novos modelos nos seletores (GLM-5.3-Flash, MiniMax M3 gratuito, MiniMax H3 Max video).” A release repete: “As notas de release completas e selecionadas para este período serão lançadas com a v0.21.0, que documentará tudo a partir da v0.20.0 — destaques, áreas de recursos e créditos completos dos colaboradores. Nada deste período será omitido.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Compressão na tag
v2026.8.31, verificada novamente nav2026.8.31para o guia v1.17:tail_mode: str = "lean", a validação("legacy", "lean"), o padrão"lean"de agent_init, a migração da versão 17 da configuração e a observação abaixo sobre o comentário auxiliar desatualizado continuam válidos na nova tag (context_compressor.pyganhou um caminho de nova tentativa para a rota de resumo fixada, que não altera nenhum dos padrões citados).agent/context_compressor.pyusatail_mode: str = "lean"como padrão emContextCompressor.__init__, com o comentário “Modo de cauda lean (#compaction-v2): ‘lean’ = pequena cauda de recência limitada + seção de resumo com mensagens literais do usuário + ponteiros de recuperação; ‘legacy’ = cauda de 0,20janela (comportamento em produção)” e a validaçãoself.tail_mode = tail_mode if tail_mode in ("legacy", "lean") else "lean".agent/agent_init.pylêcompression.tail_modecom o padrão"lean"; seu comentário quantifica ambos os modos: “‘lean’ (padrão) mantém uma cauda literal limitada de 2,5%/10K-25K com o mecanismo de ponteiros de recuperação… ‘legacy’ restaura a cauda literal pré-#87326 de 0,20limite, que, em configurações com janelas grandes/limites elevados, acumula 100-240K tokens por compactação.” A página da documentação de configuração (fontewebsite/docs/user-guide/configuration.mdna tag) mostra o blococompression:comenabled,threshold: 0.50,threshold_tokens: null,target_ratio: 0.20,tail_mode: lean(anotado nav2026.8.31: “‘lean’ (padrão — cauda limitada de 2,5%, 10K-25K, com um log detalhado da sessão + índice de âncoras + ponteiros de recuperação de session_search no resumo, tudo proveniente de UMA chamada ao sumarizador auxiliar; cerca de 3 vezes menos tokens retidos após a compactação) ou ‘legacy’ (cauda literal de 0,20×limite)”),protect_last_n: 20eprotect_first_n: 3, coloca as opções do sumarizador emauxiliary.compression(model,provider,base_url) e observa: “Configurações mais antigas comcompression.summary_model,compression.summary_providerecompression.summary_base_urlsão migradas automaticamente paraauxiliary.compression.*no primeiro carregamento (versão 17 da configuração). Nenhuma ação manual é necessária.” A migração é_migrate_to_17emhermes_cli/config_migrations.py(“Versão 16 -> 17: remover as chaves antigas compression.summary_”). A página para desenvolvedores sobre compressão de contexto (fontewebsite/docs/developer-guide/context-compression-and-caching.mdna tag) apresentatail_modeem uma tabela com o padrãolean, informa “Resultado em sessões reais com 500K tokens: cerca de 49K retidos contra cerca de 162K” e “Resultados antigos de ferramentas dentro da cauda lean são reduzidos a resumos de uma linha com um ponteiro de recuperação”, além de trazer o alerta sobre o modelo de resumo (nav2026.8.31): “O modelo de resumo precisa ter uma janela de contexto pelo menos tão grande quanto a do modelo principal do agente. … O compressor então descarta os turnos intermediários sem um resumo, perdendo silenciosamente o contexto da conversa.” (Um ponto desatualizado no upstream: a “Referência completa da configuração auxiliar” da página de configuração ainda descreve a opçãoauxiliary.compressioncomo “Tempo limite da compressão de contexto (separado da configuração compression.)”; o código de migração, o seletor auxiliar interativo dehermes modele a própria seção de compressão da página são as fontes mais recentes e concordantes.) ↩↩↩↩↩↩↩ -
Backends de terminal conectáveis na tag
v2026.8.31(verificados novamente para o guia v1.17;agent/terminal_env_registry.pyé idêntico, byte por byte, à sua versão nav2026.8.31). Docstring do móduloagent/terminal_env_registry.py, literalmente: “Mapa central dos backends de terminal conectáveis registrados. Preenchido pelos plugins no momento do carregamento por meio de PluginContext.register_terminal_environment_provider; consumido por tools.terminal_tool._create_environment” e “Os nomes dos backends integrados são reservados — register_provider rejeita um provider cujo nome entre em conflito com algum deles, portanto um plugin nunca pode substituir as implementações docker/modal/… incluídas no repositório”; deliberadamente, “não há resolução do provider ativo aqui: o backend ativo é aquele indicado por TERMINAL_ENV / terminal.backend, exatamente como ocorre com os backends integrados.” Seu frozensetBUILTIN_BACKEND_NAMEScontém os sete backends mais o alias do modo internomanaged_modal: local, docker, singularity, modal, managed_modal, daytona, vercel_sandbox, ssh. A nova página da documentação Plugins de provider de ambiente de terminal (fontewebsite/docs/developer-guide/terminal-environment-plugin.mdna tag), literalmente: “O Hermes executa comandos do shell por meio de um conjunto conectável de backends de terminal. Os backends integrados (local, Docker, Singularity, Modal, Daytona, Vercel Sandbox, SSH) ficam no repositório principal em tools/environments/. Fornecedores terceirizados de sandboxes são integrados como plugins — um repositório independente de plugin instalado em ~/.hermes/plugins/, que registra um backend selecionado pelo usuário exatamente como um backend integrado por meio de terminal.backend em config.yaml”; ela apresenta em uma tabela as áreas controladas por um provider registrado (encaminhamento de comandos, seletor de backend dohermes setup, status da sondagem no dashboard, verificações dehermes status/hermes doctor, dicas do ambiente no prompt do sistema, tratamento de caminhos/cwd do container, remoção de secrets e isolamento de sandbox por sessão) e declara o objetivo do design: “Declarar essas flags no provider elimina a clássica categoria de bugs ‘o novo backend não foi incluído no ponto de classificação N’ — o núcleo consulta o registro em cada ponto, em vez de usar uma lista fixa de nomes.” ↩↩↩ -
Rodada de nova verificação na tag
v2026.8.31(guia v1.17). Locales: a árvorelocales/contém 17 catálogos de mensagens —en.yamlmais 16 traduções (af,ar,de,es,fr,ga,hu,it,ja,ko,pt,ru,tr,uk,zh-hant,zh) — idênticos aos dav2026.8.27. Personalidades:BUILTIN_PERSONALITIESemhermes_cli/personality.pycontém as mesmas 14 entradas, dehelpfulahype(helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype); o arquivo é idêntico, byte por byte, à sua versão nav2026.8.27. Contagens que MUDARAM na tag: 39 entradas estáticas deCANONICAL_PROVIDERS(eram 38) e 39 pastas emplugins/model-providers/(eram 37) — consulte 26 e 36. Contagens inalteradas: 24 membros do enumPlatform(lista de membros idêntica emgateway/config.py, que ganhou apenas o campo de gatewayroom_link_url), 22 pastas de adaptadores emplugins/platforms/, 28 linhas na tabela de comparação de plataformas da documentação;_BUILTIN_SUBCOMMANDScontém as mesmas 73 entradas (peereworktreepresentes, ainda semversione semapproval-check— o nome usado nas notas de versão parahermes approvals test);hermes_cli/_startup_fast.pyehermes_cli/portal_cli.pysão idênticos, byte por byte, às suas versões nav2026.8.27. ↩↩↩↩ -
Roteamento de modelos auxiliares na tag
v2026.8.31(verificado novamente para o guia v1.17; o bloco de padrões"auxiliary"na nova tag contém a mesma lista de slots, notas de remoção e configurações que não são de slots, e as citações da documentação abaixo permanecem idênticas). A página da documentação de configuração (fontewebsite/docs/user-guide/configuration.mdna tag), literalmente: “Por padrão (auxiliary.*.provider: "auto"), o Hermes encaminha todas as tarefas auxiliares para seu modelo principal de chat — o mesmo provedor/modelo que você escolheu emhermes model. Você não precisa configurar nada para começar, mas saiba que, em modelos de raciocínio caros (Opus, MiniMax M2.7 etc.), as tarefas auxiliares geram um custo considerável.”; sua observação “Por que ‘auto’ usa seu modelo principal”: “Versões anteriores direcionavam usuários de agregadores (OpenRouter, Nous Portal) para um padrão barato do próprio provedor. Isso era inesperado — usuários que pagavam pela assinatura de um agregador viam um modelo diferente processar seu tráfego auxiliar. Agora,autousa o modelo principal para todos, e as substituições por tarefa emconfig.yamlcontinuam tendo precedência.”; e, sobre extração da web: “(A extração da web não é uma tarefa auxiliar:web_extracte os snapshots do navegador truncam conteúdos longos de forma determinística e armazenam o texto completo para paginação comread_file— sem envolver LLM.)” A lista oficial de slots é o bloco de padrões"auxiliary"emhermes_cli/config_defaults.pyna tag: vision, compression, skills_hub, approval, review, mcp, title_generation, memory_query_rewrite, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer, goal_judge, curator, monitor, background_review, moa_reference e moa_aggregator (além das configurações que não são de slots transient_retries, free_only, openrouter_model e stream_only_base_urls); os slots incluemprovider,model,base_url,api_key,timeout,extra_bodye umreasoning_effortpor tarefa. Notas de remoção no mesmo arquivo, literalmente: “web_extract não usa mais um LLM auxiliar — as páginas são truncadas e armazenadas com um ponteiro de read_file (sem resumo), e os snapshots do navegador seguem o mesmo padrão. O antigo blocoauxiliary.web_extract.*foi removido daqui. Valores existentes nos arquivos config.yaml dos usuários são resíduos inofensivos e ignorados.” e “session_search não usa mais um LLM auxiliar (PR #27590 — a ferramenta de formato único retorna diretamente o conteúdo do banco de dados)”; não existe uma chaveflush_memoriesno bloco. As descrições resumidas dos slots são os comentários do mesmo arquivo (“Especificador de triagem — transforma uma frase preliminar na coluna Kanban Triage em uma especificação concreta e depois a promove paratodo. Acionado porhermes kanban specify”; “Decompositor do Kanban — decompõe uma tarefa de triagem em um grafo de tarefas filhas encaminhadas a profiles especializados conforme a descrição. Acionado porhermes kanban decomposee pelo dispatcher de decomposição automática do kanban”; “Descritor de profile — gera automaticamente uma descrição de 1 a 2 frases sobre aquilo em que um profile é bom. Acionado porhermes profile describe <name> --autoe pelo botão de geração automática do dashboard”; “Avaliador de objetivo — avalia se a resposta mais recente de uma execução de /goal satisfaz o objetivo/contrato”; “Curador — fork de revisão do uso de skills”; “Revisão em segundo plano — o fork de autoaperfeiçoamento após o turno que decide se deve salvar uma memória/corrigir uma skill”), os comentários da referência completa da página de configuração (“Inserção oculta de tags de áudio no TTS do Gemini 3.1”; “Títulos de sessão gerados automaticamente. Quando o idioma está vazio, segue a conversa”;auxiliary.title_generation.enabled: falsedesativa os títulos automáticos) e a tabela de configuração da página da documentação do Kanban (“auxiliary.kanban_decomposer| Modelo que produz o grafo de tarefas (chamado por Decompose)”; “auxiliary.profile_describer| Modelo que gera automaticamente as descrições dos profiles (chamado porhermes profile describe --auto)”). Caminho interativo: executehermes modele escolha “Configurar modelos auxiliares” para abrir um seletor por tarefa (vision, title_generation, tts_audio_tags, compression, approval, triage_specifier, kanban_decomposer, profile_describer, delegation); a entrada Delegation é persistida emdelegation.*no nível superior porque os subagentes “são agentes filhos completos, não chamadas LLM paralelas.” ↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.21.0, “The Pantheon Release”, tag
v2026.8.31, com data de lançamento declarada de 31 de agosto e publicação em 2026-08-31T19:29:49Z. Linha de estatísticas, literalmente: “Desde a v0.20.0: cerca de 5.800 commits · cerca de 2.475 PRs mesclados · cerca de 5.680 arquivos alterados · cerca de 869.000 inserções · cerca de 135.000 exclusões · cerca de 2.100 issues encerradas · mais de 760 colaboradores”. Apresentação, literalmente: “The Pantheon Release. A v0.20.0 fez do Hermes o arauto — ele falava e levava a mensagem a outros agentes. Na v0.21.0, os deuses se reúnem.” e “Este lançamento reúne tudo das tags de correção de infraestrutura v0.20.1–v0.20.6 — esses períodos estão integralmente documentados aqui.” Citações das áreas de recursos usadas acima, literalmente: Bot Mode — “O Bot Mode agora é uma parte integrada e ativada por padrão no aplicativo para desktop: cada profile de agente recebe um nome, um rosto de avatar determinístico (com controles para randomizar/bloquear) e um lugar em uma lista compartilhada” e “Antes, ‘multiagente’ significava infraestrutura; agora, parece um aplicativo de chat cheio de colegas de trabalho” (#87886, #88243, #89386, #96726);hermes peer— “As respostas chegam ao Bot Chat canônico de cada agente, portanto as conversas entre agentes são duráveis e inspecionáveis, não algo disparado e esquecido” (#88725, #88178, #91487); cron — “continuity=trueleva a saída de cada execução para a próxima (para que um monitor possa eliminar duplicatas comparando com o que já informou), cada job recebe um scratchpad persistente para anotações, e jobs no modo monitor ignoram totalmente o LLM quando nada mudou” (#91447, #80774, #81139, #81138); delegation — “liste os agentes filhos em execução, redirecione um deles durante a execução com uma correção de rumo ou interrompa-o antecipadamente e preserve o resultado parcial. Adicione validação opcional de esquema JSON às saídas dos agentes filhos, o custo de cada delegação exibido nos resultados e padrões ampliados (250 iterações, 10 agentes filhos simultâneos)” (#85232, #81144, #81142, #86506, #86745); MCP — “deep linkshermes://que instalam um servidor MCP com confirmação explícita” (#87525-#87581); CLI — “Ctrl+P abre uma paleta de comandos com pesquisa aproximada, o seletor/modelfiltra enquanto você digita,/statusmostra o modo de raciocínio, as aprovações pendentes e o uso do contexto, e a barra de status pode exibir em tempo real a porcentagem de cache hit, a latência e os tokens por segundo, com controles individuais para cada campo” (#90730, #90717, #90745, #98250, #98282, #97666); navegador — “Agora, o Hermes navega, clica e lê diretamente” (#90197, #89366); provedores — “O API da Meta Model (Muse Spark) chega como provedor integrado, junto com CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router e Actual Computer” (#88565, #88308, #97917, #97916, #97915 e recuperação de #79644/#26491); segurança — “Arquivos protegidos de instruções do agente (AGENTS.md, skills e armazenamentos de memória) agora sempre exigem aprovação para escrita, de modo que um agente vítima de prompt injection não possa reescrever silenciosamente suas próprias instruções permanentes” (#81152), além da revisão geral de redação de dados sensíveis (#80965), cobertura de aprovação no Windows (#84428), identidade TCC (#95091) e remoção do MCP do Blender (#83404). Seção de reversões, literalmente: “Modo Model Council (/council) — implementado e depois revertido; não está neste lançamento.”; “Context engine DCP — implementado e depois revertido; não está neste lançamento.”; “Servidor gateway somente WS (#94245) — mesclado e depois revertido (#96118); FastAPI permanece no caminho de inicialização do desktop. A repetição de eventos com carimbo de sequência (#94219) FOI incluída.”; “O Electron voltou para a versão 40.10.2; a âncora do interpretador TCC foi removida (substituída pela abordagem baseada em identidade de assinatura que foi lançada).” A seção de correções de bugs termina assim: “…e o equivalente a cerca de outras duas mil issues encerradas — esse período teve uma média de aproximadamente 85 PRs mesclados por dia.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Novos provedores na tag
v2026.8.31.hermes_cli/models.pyrecebeProviderEntry("tencent-tokenplan", "Tencent TokenPlan", "Tencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages)")(entrada estática nº 39), os modelos de catálogohy4-preview,hy3,hy3-previewe um grupo somente para exibição no seletor"tencent": ("Tencent Hy", "Hy4 / Hy3 via TokenHub & TokenPlan", ["tencent-tokenhub", "tencent-tokenplan"]).plugins/model-providers/recebenebius-token-factory/erouter/, ambos declarandoauth_type="api_key", portanto a extensão automática os incorpora. A docstring do plugin router, literalmente: “Perfil de provedor para Ramp Router, gateway de LLM da Ramp: um endpoint compatível com OpenAI Responses emhttps://api.router.com/v1, que encaminha cada solicitação entre provedores upstream (OpenAI, Anthropic, xAI, Fireworks, …) e gerencia fallbacks e controles de gastos no servidor” … “Responses API é o formato nativo de comunicação.” … “Os IDs de modelo válidos são os retornados peloGET /v1/modelsda chave (contas BYOK veem entradas adicionais), portanto este perfil não incluifallback_models— o seletor depende da consulta ao vivo, seguindo a própria orientação do Router de nunca fixar nomes de modelos no código.” A página da documentação de provedores de IA na tag lista 45 provedores nomeados, além da linha Custom Endpoint; as quatro linhas adicionadas desdev2026.8.27, citadas: “Ramp Router |RAMP_ROUTER_API_KEYem~/.hermes/.env(provedor:router; aliases:ramp-router,ramp,router.com; gateway nativo de Responses, catálogo ao vivo vinculado à conta)”; “Nebius Token Factory |NEBIUS_API_KEYem~/.hermes/.env(provedor:nebius-token-factory; aliases:nebius,nebius-tf,tokenfactory)”; “Tencent TokenPlan |TOKENPLAN_API_KEYem~/.hermes/.env(provedor:tencent-tokenplan, aliases:tokenplan,tencent-lkeap; endpoint de Anthropic Messages)”; “Alibaba Cloud (Token Plan) |ALIBABA_TOKEN_PLAN_API_KEYem~/.hermes/.env(provedor:alibaba-token-plan; endpoint da China continental:alibaba-token-plan-cn) — plano de tokens fixos do Model Studio”.model_overridesestá emhermes_cli/config_defaults.pyna tag ("model_overrides": {}; entradas explícitas emmodel_overrides.<provider>.<model_id>prevalecem sobre o catálogo, enquanto entradas_defaultpreenchem lacunas somente para modelos não cobertos pelo catálogo). ↩↩↩↩↩↩↩↩ -
Continuidade de cron na tag
v2026.8.31. A página da documentação de cron (fontewebsite/docs/user-guide/features/cron.mdna tag), literalmente: “Definacontinuity=truepara que o job injete sua própria saída mais recente em cada execução. Normalmente, jobs recorrentes iniciam cada execução sem memória — um agente que busca notícias relata novamente as mesmas histórias, e um monitor volta a alertar sobre a mesma condição. Com a continuidade ativada, o job desperta vendo o que relatou da última vez e pode eliminar duplicações e continuar de onde parou”; “Nas execuções posteriores, a saída anterior é adicionada no início com instruções de continuidade (‘evite repetir o que já foi relatado’) … Internamente, a flag é armazenada como a entrada reservadaselfemcontext_from.”; “No CLI:hermes cron create "every 6h" "Scan for news" --continuity, ehermes cron edit <job_id> --continuity/--no-continuitypara ativá-la ou desativá-la em um job existente. A mesma opção aparece no editor de cron do dashboard e na caixa de diálogo de rotinas do Bot Mode para desktop.” Nível de raciocínio por job, literalmente: “Um job pode fixar seu próprio nível de raciocínio, independentemente do modelo fixado: um entrenone,minimal,low,medium,high,xhigh,max,ultra. Quando definido, ele substitui tantoagent.reasoning_effortglobal quantoagent.reasoning_overridespor modelo nas execuções desse job”; defina por meio dehermes cron create/edit --reasoning-effort high. Entrega no Bot Chat, literalmente: “bot-chatentrega a saída na sessão canônica “Bot Chat” de um profile como uma mensagem real … nesse caso, o destinatário é o próprio bot: ele recebe a saída como uma mensagem, executa tudo o que exigir uma ação e responde no chat.” Notepads: a docstring do módulocron/notepad.py— “Um pequeno bloco de rascunho de chave-valor que cada job de cron pode usar para manter estado entre ativações agendadas (cursores, marcas d’água, listas de monitoramento)”, com limites de “MAX_VALUE_BYTES(16 KB)” e “MAX_JOB_TOTAL_BYTES(64 KB)” (“o notepad é injetado no prompt a cada execução, portanto um crescimento ilimitado aumentaria o prompt de cada ativação”), e “O caminho de escrita é o CLI (hermes cron notepad <job_id> set <key> <value>), que o agente em execução invoca por meio de sua ferramenta de terminal; nenhuma ferramenta de modelo é adicionada.” Modo monitor: a docstring decron/monitor.py— “Suporte a cron no modo monitor — detecção de alterações com supressão por hash”, anexando uma “fonte de monitoramento leve (monitor_scriptoumonitor_url)”; “sem alterações -> a execução do agente é totalmente suprimida (sem LLM, sem entrega); o ciclo é registrado como uma execução silenciosano_change”; “A saída é comparada como BYTES EXATOS — sem remoção de timestamps nem normalização de espaços em branco. Scripts de monitoramento devem emitir uma saída estável … ou cada ciclo parecerá uma alteração.”; “habilitador: #80774.” ↩↩↩↩↩↩↩ -
Orquestração de subagentes em tempo real na tag
v2026.8.31. A página da documentação de delegação (fontewebsite/docs/user-guide/features/delegation.mdna tag), “Como orientar um subagente em execução”: a superfície de controle é{"action": "list"},{"action": "steer", "subagent_id": "sa-0-1a2b3c4d", "message": "focus on pricing instead"},{"action": "stop", "subagent_id": "sa-0-1a2b3c4d"}; literalmente: “listretorna os filhos ativos da conversa:subagent_id, objetivo, status,running_seconds,accepting_steere o caminho da transcrição em tempo real”; “stopencerra um filho antecipadamente no próximo limite de iteração; o resultado parcial ainda retorna à conversa como uma mensagem normal de conclusão”; as ações de controle são “restritas à árvore de geração do próprio chamador — uma conversa nunca pode ver nem controlar os filhos de outra sessão — e nunca consomem o limite de geração de subagentes por turno, portantostopcontinua funcionando mesmo após o limite ser atingido”; a entrega de instruções reconhece a condição de corrida (“Enfileirado não significa entregue, mas nunca há uma confirmação de sucesso artificial”, compending_steerdrenado para os resultados emissed_steermarcado quando um filho termina primeiro). Padrões:hermes_cli/config_defaults.pydefinedelegation.max_iterations: 250(“limite de iterações por subagente (cada subagente recebe seu próprio orçamento, independentemente do max_iterations do pai)”) edelegation.max_concurrent_children: 10(“limite unificado de simultaneidade: número máximo de filhos paralelos por lote E número máximo de unidades de delegação simultâneas em segundo plano (background=true) … (Substitui o max_async_children obsoleto.)”). Um ponto desatualizado no upstream: a própria página da documentação de delegação ainda diz “3 tarefas por padrão” e mostra “max_iterations: 50 … (padrão: 50)” em sua referência de configuração; oconfig_defaults.pydistribuído e as notas de versão (“limites padrão aumentados (250 iterações, 10 filhos simultâneos)”) são as fontes mais recentes e concordantes. ↩↩ -
Onda de segurança na tag
v2026.8.31. Arquivos de instruções protegidos:hermes_cli/config_defaults.pydefine como padrãosecurity.protected_instruction_files: True(comentário: “Gravações em arquivos de instruções do agente (AGENTS.md/CLAUDE.md/SOUL.md/…)”) junto comprotected_instruction_extra_patterns: [](fnmatch no nome-base);tools/file_tools.pyimplementa o bloqueio — “Arquivos de instruções protegidos do agente (bloqueio de aprovação que sempre solicita confirmação)” sobre_PROTECTED_INSTRUCTION_BASENAMES = frozenset({"agents.md", "claude.md", "soul.md", ".cursorrules", ...})— e descreve o modelo de ameaça literalmente: “vetor: uma instrução injetada que edita AGENTS.md / CLAUDE.md / SOUL.md” e “arquivos de instruções do contexto do projeto são carregados a partir das árvores do cwd — um AGENTS.md em qualquer lugar de onde o agente possa ser executado posteriormente é um alvo ativo”. Identidade TCC:hermes desktop --setup-tcc-identityé implementado emhermes_cli/main.py—_desktop_macos_setup_tcc_identity(identity: str = "Hermes Local Signing"), “Configuração única parahermes desktop --setup-tcc-identity”, protegida por “(–setup-tcc-identity é exclusivo do macOS; ignorando)” e “(–setup-tcc-identity requer openssl, security e codesign …)”. A revisão de redação (#80965, #80964, #81675, #81686, #88232), a cobertura de aprovação no Windows (#84428), a remoção do MCP do Blender (#83404) e a verificação de instalação de plugins Tier-1 (#80728) estão descritas nas notas de versão.35 ↩↩↩↩ -
Alterações na superfície de CLI na tag
v2026.8.31.COMMAND_REGISTRYemhermes_cli/commands.pyregistraCommandDef("palette", "Open the fuzzy command palette (also Ctrl+P)", "Info", ...)eCommandDef("status", "Show session, model, token, and context info", "Session", ...)—/statusé um comando de sessão do registro compartilhado, não exclusivo de mensagens. Não há nenhuma entradaapproval-checkem_BUILTIN_SUBCOMMANDS(73 entradas, idênticas às dev2026.8.27); a simulação que as notas de versão da v0.21.0 chamam dehermes approval-check(#81137) éhermes approvals test— a ajuda do parser emhermes_cli/subcommands/approvals.pyna tag diz: “Simula a decisão de aprovação de um comando (nunca o executa)”, com--backend(“Tipo de backend do terminal usado na avaliação (padrão: local …”) e--json.hermes_cli/_parser.pymudou apenas dentro dehermes chat: a ajuda de-q/--queryagora é “Consulta a ser executada. Em um TTY real, o prompt inicia uma sessão interativa (enviado literalmente como o primeiro turno); combinado com –oneshot ou -Q, ou em um ambiente que não seja TTY, ele responde e encerra.”; uma nova flag--oneshotdocumenta “Com -q/–query-file: responde à consulta e encerra (comportamento legado de consulta única), em vez de iniciar uma sessão interativa. Implícito em stdio que não seja TTY e por -Q/–quiet.”; e--max-turnsdocumenta “Número máximo de iterações de chamadas de ferramentas por turno da conversa (padrão: 500 ou agent.max_turns na configuração)”. ↩↩↩↩↩↩↩↩↩ -
Notas de versão do Hermes Agent v0.21.1, tag
v2026.9.7, data de lançamento informada como 7 de setembro, publicadas em 2026-09-07T22:17Z. O conteúdo é deliberadamente sucinto; literalmente: uma “Versão de correção” que “consolida o estado atual da main desde a v0.21.0 para implantações com tag e consumidores downstream”; estatísticas do período de “5.139 commits sem merge em 4.364 arquivos alterados (+601.014 / -768.419)” e “632 PRs mesclados” no momento da preparação; e “As notas de versão completas e selecionadas para este período serão publicadas com a v0.22.0.” Verificação no clone local:git rev-list --count --no-merges v2026.8.31..v2026.9.7= 5.140 egit diff --shortstat= +601.018 / -768.423 — os números no conteúdo representam o snapshot anterior ao commit de lançamento, com uma diferença exata de um commit de lançamento; o maior período anterior entre tags adjacentes év2026.7.20..v2026.7.30, com 2.790 commits sem merge (todos os pares adjacentes desdev2026.3.12foram medidos no clone local). A verificação do doctor na entrada de Solução de problemas está emhermes_cli/doctor_config.py:330-362na tag (_drift_max_iterations_ghost): umHERMES_MAX_ITERATIONSobsoleto em.envsobrepõeagent.max_turnsquando a ponte de inicialização é interrompida por um erro anterior de análise da configuração (issue #17534), ehermes doctor --fixremove a linha do.env. Verificação da sessão atual em 8 de setembro de 2026. ↩↩↩↩↩ -
COMPAT_MANIFEST.mdna tagv2026.9.7(raiz do repositório, 3.869 linhas). Literalmente: “A decomposição de setembro de 2026 (PR #102117) dividiu os grandes módulos do Hermes Agent em arquivos específicos”; “Os caminhos internos de importação não são uma API estável”; “Esta camada é temporária e será removida em 14 de setembro de 2026. Ela foi adicionada como um único commit e será removida revertendo esse commit.”; a tabela do que acontece (antes de 14 de setembro de 2026: aviso amarelo que identifica o plugin, a data ehermes plugins compat; o plugin “é carregado; cada resolução de caminho antigo emiteHermesPluginCompatWarninguma vez”; a partir de 14 de setembro de 2026: “aviso vermelho: plugin DESATIVADO” e “não é carregado;hermes plugins listmostra o motivo”; Desktop: “modal exibido uma única vez”); a alternativa de emergência, literalmente: “plugins.allow_deprecated_imports: trueemconfig.yamlmantém os plugins afetados carregando após a data, até que a reversão realmente remova os caminhos.”; contagem por tipo: moved-lazy 1.148, import 592, restored-def 290, restored-helper 41, restored-import 17, module-stub 3, unrestorable 34; escopo: apenas nomes públicos de nível superior, “Pontos de monkeypatch em testes também não são preservados.” Parser do verificador emhermes_cli/subcommands/plugins.py:104-112:hermes plugins compat [path] [--json], descrição literal: “Verifica estaticamente todos os plugins externos ativados em busca de importações de caminhos de módulos anteriores à decomposição (consulte COMPAT_MANIFEST.md) e exibe arquivo:linha, caminho antigo -> caminho novo. Encerra com código 1 quando algum plugin é afetado.” Estrutura da decomposição verificada na tag:agent/= 214 módulos de nível superior + 7 subpacotes (lsp,monitoring,pet,proxy_sources,secret_sources,transports,verify),hermes_cli/subcommands/= 61 módulos,CANONICAL_PROVIDERSemhermes_cli/models_catalog_static.py:311com 39 entradas cujos slugs são idênticos à lista dev2026.8.31emhermes_cli/models.py(incluindo a tupla estáticaxai;plugins/model-providers/ainda tem 39 pastas), o antigoprompt_builder.pyde nível superior não existe mais (agora éagent/prompt_builder.py), erun_agent.pycontinua sendo o local deAIAgentna raiz. Situação posterior, verificada novamente para o guia v1.19 (15 de setembro de 2026): a remoção entrou em vigor conforme o cronograma por meio de uma condição baseada na data, não de uma reversão — na tagv2026.9.14,hermes_cli/plugin_compat.py:32defineCOMPAT_REMOVAL_DATE = _dt.date(2026, 9, 14),removal_in_effect()(linhas 86–90) retorna true a partir dessa data ou quando o arquivo de manifesto não existe, eallow_deprecated_imports()(linhas 261–268) aceita somente um booleano literal (a condição é... is True; comentário no código-fonte: “Somente booleano literal”, portanto uma string YAML como"false"ou"no"jamais pode ativar a alternativa pós-remoção). A reversão que excluiria os caminhos antigos NÃO foi aplicada:COMPAT_MANIFEST.md,compat_manifest.jsonehermes_cli/plugin_compat.pycontinuam presentes emv2026.9.14e namainno commit5d59366010(2026-09-15 12:55 PT, obtido no mesmo dia), portanto a alternativa de emergência ainda resolve os caminhos antigos; ela deixa de funcionar assim que a reversão for aplicada. Verificado novamente para o guia v1.20 (22 de setembro de 2026): a reversão ainda não foi aplicada — os três arquivos continuam presentes na tagv2026.9.21e namainno commita53b42ddea(commit realizado em 22 de setembro de 2026, obtido no mesmo dia). Emv2026.9.21, a condição e a proteção permanecem essencialmente inalteradas:COMPAT_REMOVAL_DATEcontinua emplugin_compat.py:32,removal_in_effect()em :86 eallow_deprecated_imports()agora está em :296-303, com a mesma condição de booleano literal (... is True; o comentário agora diz “Somente booleano literal: YAML"false"/"no"não deve ativar a alternativa pós-remoção.”). As únicas mudanças no módulo durante o período da v0.21.4 tratam de desempenho e portabilidade: um cache de verificação compartilhado por todo o processo, indexado pela assinatura de arquivo(relpath, mtime_ns, size)de cada pasta de plugin (um gateway multiplexado detecta os plugins uma vez por profile atendido, e analisar novamente o código-fonte de cada plugin custava cerca de 0,4 s por profile no fluxo de inicialização), além de caminhos de resultados no formato POSIX no Windows nativo (#112576); o próprio manifesto removeu duas linhas relacionadas ao opencode (_OPENCODE_KEYLESS_EXTRA_SLUGS,is_opencode_zen_free_model) — nada estrutural. ↩↩↩↩↩↩↩↩↩ -
docs/session-lifecycle.mdna tagv2026.9.7, seção “6. Limites explícitos de conversa”, literalmente e na íntegra: “A inatividade e o tempo de relógio nunca alternam uma conversa./newe/resetcriam um limite explícito; a compactação de contexto continua gerenciando históricos longos. A configuração legada de temporizador é ignorada. O tipo de dadosSessionResetPolicyexistente contém dados inertes de compatibilidade, não uma política de runtime. A suspensão explícita ainda cria um limite no próximo turno recebido. A recuperação respeita limites finalizados explícitos e históricos, em vez de reabri-los. A remoção apenas de recursos e a coleta de órfãos de WebSocket mantêm as conversas retomáveis.” ↩↩↩↩ -
Autorização de MCP na tag
v2026.9.7. Parser:hermes_cli/subcommands/mcp.py:55-66—login(“Forçar a reautenticação de um servidor MCP baseado em OAuth”) aceita--flowcom as opçõesbrowser/device, texto de ajuda literal: “Fluxo de OAuth (substitui oauth.flow): PKCE no navegador ou código de dispositivo RFC 8628”;reauth(“Reautenticar um servidor MCP de OAuth, ou todos eles (–all)”) aceita um nome opcional mais--all. O fluxo de código de dispositivo foi incluído durante esse período: commitf5afe8bd40“feat: autorizar servidores MCP com códigos de dispositivo do CLI”. Reforços adicionais, conforme os títulos dos commits feitos durante o período:f914c9b070“fix(mcp): impor a propriedade do profile em todas as sessões de OAuth”;f94307a7f7“fix: ignorar caches malformados de metadados de OAuth do MCP”;e3ba651b6d“fix(desktop): retransmitir OAuth do MCP por callbacks locais do cliente”. Inicialização filtrada por toolset:tools/mcp_tool_discovery.py:412-426— o filtro existe para que “hermes -z -t <toolsets>” possa “evitar inicializar a frio servidores de que o chamador não precisa”, e um filtro vazio ignora por completo o carregamento de MCP. ↩↩↩ -
Confiabilidade da delegação na tag
v2026.9.7, obtida do código-fonte da ferramenta de delegação. Unidades de conclusão:tools/delegate_tool_dispatch.py:326-341(_units_of) — literalmente: “Desativado por padrão (delegation.independent_completions): a chamada inteira é UMA unidade e retorna como uma única mensagem. Uma enxurrada de conclusões por tarefa (um novo turno para cada uma) fragmentava orquestradores que não estavam preparados para isso.”; há uma unidade para cadagroupde tarefas distinto (na ordem da primeira ocorrência), mais uma para cada tarefa sem grupo, e cada uma reentra na conversa separadamente; commit feito durante o períodoc89f3b8800“fix(delegation): uma conclusão por chamada por padrão; unidades na fila não ficam mais paralisadas”. Transferência de processos em segundo plano: commit3c0d90e8ef“feat(delegation): subagentes transferem processos em segundo plano para o pai; processos restantes são identificados, não considerados confiáveis”; na tag,tools/delegate_tool_child_run.py:744-763(account_background_processes) registra no resultado os processos transferidos, lista os que ainda estão em execução e não foram transferidos comoorphaned_processese os que foram encerrados, mas nunca lidos, comounread_completions(com o trecho final da saída), antes decleanupencerrá-los; segundo a docstring, o pai “precisa receber essa informação do runtime”, em vez de confiar na alegação de um filho de que há um “observador em execução”; o verbo de transferência éprocess_manage(action="handoff")(apenas para filhos), que alteraProcessSession.owner_task_idenquanto mantém o bloqueio do registro por meio deprocess_registry.transfer_ownership(tools/AGENTS.md, seção Delegação, na tag). Superfície de fallback:delegation.fallback_providersemhermes_cli/config_defaults.py, comentário literal: “Para um filho não fixado, null = herdar a cadeia do pai; [] = desativar o fallback. Um filho fixado por provedor, endpoint ou modelo não recebe fallback, a menos que essa configuração declare um explicitamente.”; validação da cadeia emtools/delegate_tool_config.py:417-425(_resolve_child_fallback_chain): “Entradas malformadas são descartadas pelo normalizador canônico.” Durabilidade em caso de falha:tools/async_delegation.py:222-246registra de forma durável cada filho concluído de uma unidade com vários filhos que ainda está em execução na própria linha da unidade ("partial": True), portanto, uma falha antes da conclusão da unidade preserva os filhos concluídos. Camada de cache:tools/delegate_tool.py:106-112(_apply_child_cache_ttl), literalmente: “Um filho delegado nunca usa a camada de cache de 1h.”; um filho com_cache_ttl == "1h"é configurado como"5m". ↩↩ -
Provedores e modelos na tag
v2026.9.7. Camadas do Astra:hermes_cli/models_catalog_static.py:22-25—openai/gpt-6-astra-fast“preço 2x, camada prioritária”,-flex“preço 0,5x, camada flex”, além de-pro-fast/-pro-flex;gpt-6-astrae-proestão emOPENROUTER_MODELSe não fazem parte do conjunto de exclusão_OPENROUTER_ONLY, portanto, o Nous Portal também os oferece. Restrição do Astra e 900K:hermes_cli/codex_models.py:96-101(“O Astra é restrito por conta: somente o catálogo em tempo real, específico da conta, pode anunciá-lo”) eagent/model_metadata.py:1447-1462— o Codex OAuth anuncia 272K,gpt-6-astraé compatível com 900K, com o comentário “272K anunciados; entrada de 920.043 aceita, 1.000.043 rejeitada (ao vivo em 2026-09-04)”, eCODEX_CONTEXT_VARIANT_SUFFIX = "-900k"é um “sufixo opcional somente para o seletor; nunca enviado pela conexão” (o contexto do Astra no lado do OpenRouter é 1.050.000, conformemodel_metadata.py:334). Novas entradas de catálogo no mesmo arquivo estático (linhas 30-42):anthropic/claude-fable-5.1,google/gemini-3.8-flashegemini-3.7-flash,qwen/qwen3.8-max-0902eqwen/qwen3.8-flash,meta/muse-spark-1.3e-contributor(contexto de 1M conformeagent/model_metadata.py:349).muse-image:plugins/image_gen/meta-ai/__init__.py(“API de modelo da Meta (muse-image): compatível com OpenAI (https://api.meta.ai/v1)”, modelos incluindomuse-image-1.0). Tavily:hermes_cli/config_defaults.py:2522-2525, literalmente “Chave de API da Tavily para pesquisa e extração na web nativas para IA (opcional — funciona sem chave quando a Tavily está selecionada)”, ferramentasweb_searcheweb_extract; o blocowebobserva que a Tavily “é opcional e funciona sem chave por meio dehermes tools; não faz parte do anel”. Runtime gerenciado do llama.cpp: o pacotehermes_cli/local_runtime/(“runtime gerenciado do llama.cpp”), o bloco de configuração emconfig_defaults.py:2327(“binários oficiais, um servidor supervisionado”; referência à documentaçãouser-guide/local-models) e a interface para desktopapps/desktop/src/api/local-models.ts. Provedores de processos externos:agent/auxiliary_client.py:4740-4799(_resolve_external_process_branch, “provedoresexternal_processde PROVIDER_REGISTRY, disponibilizados por meio do profile registrado correspondente”, indexados pelo profile registrado “para que um provedor ACP externo à árvore” seja resolvido). Frequência do catálogo: migração de configuração 39 -> 40 emhermes_cli/config_migrations.py:622-627(“model_catalog.ttl_hours -> ttl_minutes (padrão 20)”, mensagem ao usuário “O catálogo de modelos agora é atualizado a cada 20 minutos (model_catalog.ttl_minutes)”), comhermes_cli/model_catalog.pyrespeitando ottl_hourslegado “somente quandottl_minutesainda está com o valor padrão”. ↩↩↩ -
Onda de novidades do Desktop na tag
v2026.9.7. Modo de comentários:website/docs/user-guide/desktop.mdna tag, estrutura textual literal: “clique em Annotate na barra do navegador de pré-visualização, depois clique em qualquer elemento (ou arraste para criar uma caixa) na página ativa e digite uma nota; cada comentário salvo permanece como um marcador numerado na página”; “Salvar um marcador nunca envia um turno”; “Add N comments anexa ao compositor uma captura de tela recortada por marcador e um breve prompt que identifica cada comentário”; “Cada comentário de elemento inclui seu seletor CSS, sua marcação e os estilos computados relevantes para o layout, para que o agente possa encontrar o elemento no seu código-fonte em vez de tentar adivinhar pela imagem”; “Os valores de campos de senha e ocultos, além de qualquer atributo que pareça uma chave ou um token, são ocultados na página antes que a marcação saia dela”; “Lotes maiores chegam agrupados conforme a parte da página em que cada comentário está, de modo que cerca de vinte comentários se tornam um pequeno conjunto de tarefas, em vez de uma tarefa para cada um”; “como os grupos são subárvores DOM separadas, eles geralmente afetam arquivos diferentes, o que permite delegá-los com segurança a workers paralelos”. Commits incluídos no intervalo:10f2a20966“feat(desktop): adiciona o modo de comentários ao navegador integrado ao aplicativo”;e4bda3ff77“feat(desktop): comentários do navegador incluem seletor, marcação e estilos do elemento”; controles de sessão8cb2bcc8c1“expõe controles estruturados de sessão” +bfddf556bf“carrega controles estruturados de sessão” +dffd8d62c2“adiciona controles de automação de sessão”;6b1e12c7f4“arrastar para criar sessões a partir de New session, projeto + controles e grupos de profile”;9186e3ebc5“visualização de importação de sessão para transcrições de agentes de programação externos”;a1c25d393a“catálogo integrado de skills opcionais em Capabilities → Skills com instalação em um clique”; localização em russoa922dad9d8“feat(desktop): adiciona localização em russo (ru)” +269e5bde33(registrarunos testes/documentos de localização;apps/desktop/src/i18n/ru.tsé novo no intervalo, enquantolocales/do CLI continua com 17 catálogos).display.resume_last_session:hermes_cli/config_defaults.py:777, padrãoTrue, comentário literal “O Desktop reabre o último chat/página ao iniciar do zero (também em Settings → Appearance).” Consentimento para profile real:apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx(“Prompt de consentimento exibido na primeira abertura para navegação com profile real”, mostrado quando um painel Browser é aberto enquantobrowser.use_real_profileestá desativado; aceitar grava a mesma chave de configuração usada pelo controle de Capabilities, “Not now” silencia o aviso durante a execução do aplicativo, “Don’t show again” mantém essa preferência entre inicializações). ↩↩ -
Notas de lançamento do Hermes Agent v0.21.2, “A versão de correção do state.db”, tag
v2026.9.11, data de lançamento informada como 11 de setembro, publicada em 2026-09-11T19:20Z. Contextualização literal: “a v0.21.0 trouxe uma ampla reescrita do gerenciamento de conexões do armazenamento de sessões e, em algumas instalações, tornou ostate.dbfrágil: segundos processos de gravação cancelavam os bloqueios uns dos outros, bancos de dados íntegros eram identificados como corrompidos e uma única linha inválida interrompia osessions list.” Estatísticas medidas no commit04dd80a977: “947 commits sem merge”, “1.869 arquivos alterados”, “312 PRs mesclados”, “140 colaboradores” (verificação no clone local:git rev-list --count --no-merges v2026.9.7..v2026.9.11= 959 — o número no corpo é um retrato da pré-versão, seguindo o mesmo padrão da v0.21.1). Título literal da campanha: “campanha de confiabilidade do state.db (seis PRs, 44 problemas resolvidos)” (PRs #108076, #108082, #108130, #108086, #108074, #108067); orientação de atualização literal: “executehermes doctorprimeiro; agora ele identifica corretamente danos estruturais e de índice e indicahermes sessions recover --inspect-only(vinculado ao profile) quando uma reconstrução não é suficiente.” Verificação do código-fonte na tag: estado das salas hospedadas fora do armazenamento raiz emgateway/hosted_rooms.py:398-426—default_db_pathdireciona os gateways de profile para “oshared-state.dbcompartilhado na RAIZ em vez dostate.dbprincipal”, e sua docstring aponta o vetor recorrente de corrupção por vários processos de gravação observado em uma frota de 6 gateways (2026-09-03) como o motivo pelo qual gateways de profile nunca devem abrir o armazenamento principal de sessões para gravação. Parser dehermes sessions recoveremhermes_cli/subcommands/sessions.py:185-196, com o texto de ajuda literal de--inspect-only: “Apenas informa se a tabela canônica pode ser lida; não cria um banco de dados de saída”; o subcomando é anterior ao intervalo (já estava presente emhermes_cli/main.pynav2026.8.31), mas ainda não havia sido documentado neste guia. Cofre de credenciais: docstring deagent/vault_backends/__init__.py(“Backends de login para o cofre de credenciais do navegador”; identificadores recebem namespace por backend para que as ferramentas do navegador façam o roteamento sem alterações de esquema; gerenciadores externos permanecem bloqueados até serem desbloqueados por sessão; a senha mestra “nunca é um argumento de ferramenta, nunca aparece em argv e nunca é armazenada”),agent/vault_backends/base.py(umLoginBackend“lista metadados de login (nunca segredos) e resolve UMA senha no momento do preenchimento”) eagent/vault_store.py:74-105(chaves de autenticação apenas como seeds em base32 ou URIsotpauth://totp, HOTP baseado em contador rejeitado, códigos gerados portotp_now); os backendslocal.py,onepassword.py,bitwarden.pye tambémagent/secret_sources/{onepassword,bitwarden,command}.pyestão todos presentes na tag. Subparsers do catálogo de plugins emhermes_cli/subcommands/plugins.py: ajuda deinstall“Instala um plugin do catálogo selecionado, de uma URL Git ou de owner/repo”,search“Pesquisa no catálogo selecionado de plugins do Hermes”,browse“Lista todas as entradas do catálogo selecionado de plugins”,pack“Conjuntos declarativos e compartilháveis de plugins (hermes-pack.yaml)”, cominstall/export/show. Onboarding de convidados emapps/desktop/electron/guest-onboarding-flag.test.ts: título literal do teste ‘guestOnboardingEnabled: apenas “1” no ambiente ou –guest-onboarding em argv ativa o nível gratuito’; a suíte confirma que'true','0'e um valor vazio ficam todos desativados e quedesktopBackendSpawnEnv“registra a decisão de inicialização por último e nunca permite que um valor herdado vaze”. Conjunto de problemas de reforço para múltiplos profiles #107609-#107630, conforme listado no lançamento. Verificação na sessão atual em 15 de setembro de 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.21.3, tag
v2026.9.14, data de lançamento informada como 14 de setembro, publicada em 2026-09-14T16:04Z. Finalidade literal: a tag “existe para que as correções de login do gateway remoto abaixo cheguem aos agentes na Cloud, que são atualizados automaticamente para a tag de lançamento mais recente.” Estatísticas medidas no commit9b419a2d3c: “1.036 commits sem merge”, “2.642 arquivos alterados”, “338 PRs mesclados” (verificação no clone local:git rev-list --count --no-merges v2026.9.11..v2026.9.14= 1.037, novamente incluindo o commit de lançamento). Os dois itens documentados foram verificados no clone local e aparecem somente neste intervalo: commit5dea46d13d“fix(dashboard-auth): single-flight de uma única atualização para a barreira de cookies e a rota nativa, fora do loop de eventos” (#110061, corrige #55712; combinado com hermes-portal#1209 no Portal, um período móvel de inatividade de 30 dias com uma tolerância de 5 minutos para o token rotacionado) e commit939a2f64b4“fix: processos de longa duração deixam de criar identificadores duplicados de gravação do state.db” (#110934, corrige #100896 e #103339). Adiamento literal: “As notas de lançamento selecionadas completas deste intervalo acompanham a v0.22.0, que documentará tudo a partir da v0.21.0” e “Nada neste intervalo será ignorado”; a lista do lançamento propositalmente não documentada inclui solicitações JSON-RPC do servidor para o cliente, além de um registro de contratos de comunicação Pydantic, seleção do nível de esforço de raciocínio em todos os seletores de modelo, PKCE do OAuth do OpenRouter, decodificação de HEIF/HEIC/AVIF, a reformulação dos modelos pares do Honcho, adições ao catálogo FAL (Wan 3.0, Kling 3.0 / Kling Image v3, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1, Meta Muse), tabelas coladas no Slack e o API de Agent Sessions, correções de isolamento de profiles multiplexados e de atividade do gateway, além da recusa do WAL do state.db em sistemas de arquivos entre VMs — tudo reservado para a análise da v0.22.0, conforme a própria apresentação do lançamento. Verificação na sessão atual em 15 de setembro de 2026. ↩↩↩ -
Notas de lançamento do Hermes Agent v0.21.4, tag
v2026.9.21, data de lançamento declarada de 21 de setembro, publicação em 2026-09-21T18:10:55Z. Objetivo, literalmente: “Lançamento de correção. Esta tag reúne os cerca de 1.800 PRs incorporados desde a v0.21.3 em uma versão estável com tag para consumidores downstream (imagens Docker, Hermes Cloud, implantações hospedadas). As notas completas e selecionadas deste período foram adiadas para a v0.22.0.” Estatísticas medidas no commit4b8a8134009a: “5.071 commits sem merge” em “5.169 arquivos alterados” (+312.961 / -62.855), “1.812 PRs incorporados” e “2.116 issues encerradas” — as verificações em clone local reproduzem os cinco números exatamente (git rev-list --count --no-merges v2026.9.14..4b8a8134= 5.071;git diff --shortstat= 5.169 arquivos, +312.961 / -62.855; o commit da tagd337b736aa“chore(release): v0.21.4 (v2026.9.21)” é filho de4b8a8134, resultando em 5.072 sem merge e 5.173 no total com merges, e o API de comparação da GitHub parav2026.9.14...v2026.9.21informatotal_commits: 5173, ahead_by: 5173, behind_by: 0). Classificação por período (verificada novamente para a versão 1.21 do guia, em 23 de setembro): por commits sem merge entre cada par adjacente de tagsv2026.*,v2026.8.31..v2026.9.7(5.140 com seu commit de lançamento) lidera, ev2026.9.14..v2026.9.21(5.072) fica em segundo lugar, à frente dev2026.7.20..v2026.7.30(2.790); pelo número de PRs incorporados declarado no lançamento, 1.812 é o maior de qualquer nota consolidada de um único período (v0.21.1, “632 PRs incorporados”; v0.19.1, “cerca de 1.000+ PRs”; os “cerca de 2.475” da v0.21.0 abrangem as seis tags v0.20.x desde a v0.20.0, portanto não correspondem a um único período entre tags). Adiamento, literalmente: “As notas de lançamento completas e selecionadas deste período serão publicadas com a v0.22.0, que documentará tudo a partir da v0.21.0” e “Nada deste período foi deixado de fora.” A lista do que ficou intencionalmente sem documentação menciona o bloqueio singleton do gateway e o registro de rendezvous, com o Desktop se conectando ao backend do host em execução; a operação de conectores controlada pelo backend, com seu cartão de configuração para Desktop/TUI/CLI;--format stream-json;skills.auto_load; o seletor de fontes da interface e do chat do Desktop, as atualizações do mecanismo local com um clique e a desinstalação pelo hub de Plugins; o comportamentodeclinepara DMs não autorizadas;mcp.discovery_concurrency; limites after/before emsession_searche nova tentativa de recuperação com OR mais flexível;hermes sessions set-journal-mode; LTX 2.5 e Kling O3 nos catálogos de vídeo; páginas do site do catálogo para cada plugin/autor, com READMEs de commits fixados e ordenação por adição/atualização; “uma dúzia de novos plugins da comunidade no catálogo (tailscale, ssh, shodan, terminal, rss, resetwatch, done-bell, kiwi, cognee, Octen)” (forma abreviada usada no lançamento; as entradas do catálogo nessa tag sãohermes-tailscale,hermes-ssh,shodan,hermes-terminal,hermes-rss,hermes-resetwatch,done-bell,kiwi,cognee,web-octen); e “uma grande sequência de correções de isolamento de profile/multiplex, cron, kanban, Desktop e state.db”. Para atualizar:hermes update(instalações via git) ou o comando de uma linha do instalador; “Docker / Hermes Cloud: as imagens são criadas a partir desta tag (nousresearch/hermes-agent:v2026.9.21)”. Verificação na sessão atual em 22 de setembro de 2026. ↩↩↩↩↩↩ -
Itens divulgados na v0.21.4 verificados no código-fonte na tag
v2026.9.21(guia v1.20, 22 de setembro de 2026; adições às regras do operador no guia v1.21, 23 de setembro). Singleton do host: docstring degateway/host_rendezvous.py— “Ponto de encontro singleton em todo o host: um bloqueio + um registro por ROLE por usuário do sistema operacional”; “exatamente UMhermes servee UMhermes gateway runpor host, cada um multiplexando todos os profiles”; um bloqueio de host flock/msvcrt“mantido durante toda a vida útil do processo vencedor”, além de um registro de ponto de encontro para que uma segunda invocação possa “comprovar que é o mesmo processo ativo e se ANEXAR, em vez de vincular uma segunda porta”; “A obsolescência é comprovada, nunca presumida” por meio de(pid, createTime)(“um cliente que esteja se anexando nunca deve se conectar à porta de um PID reutilizado”); raiz do bloqueio em$HERMES_GATEWAY_LOCK_DIRou, caso contrário,$XDG_STATE_HOME/hermes/gateway-locks, com escopo limitado ao usuário do sistema operacional (gateway/status.py:308-324: umXDG_STATE_HOMErelativo é ignorado e o fallback é~/.local/state). Caminho do operador:_host_attach_or_noneemgateway/run.py:5466-5499exibe a mensagem de anexação e encerra com código 0 em caso deATTACH, recusa em caso deREFUSE, envia--replacepara “o processo do HOST, independentemente de qual home o iniciou” em caso deREPLACE_HOSTe pula a pergunta com--force(“a saída de emergência do operador quando o proprietário está travado ou mentindo”);_claim_host_gateway_role(gateway/run.py:5331-5346) faz o perdedor da disputa pelo bloqueio encerrar comEX_TEMPFAIL(75), pois “Todo supervisor que geramos tenta novamente após o código 75 e, na nova tentativa, o registro do proprietário já existe”. Cinco resultados emgateway/host_attach.py:ATTACH,RESCAN->ATTACH(rescan-profilesdo socket de controle),REPLACE_HOST,REFUSE(“Nunca inicie um segundo silenciosamente”),START(gateways independentes por profile coexistem “até que essa migração seja forçada (#109417)”). Metade do Desktop:apps/desktop/electron/host-backend-attach.ts(“Anexa ao backend Hermes em execução no host (somente multiplexação, metade do Desktop)”; a sequência de E/S lê o registro de inicialização da raiz da máquina, valida um candidato por “prontidão HTTP -> token da sessão atendida -> autenticação WebSocket” e mantém “uma trava no nível do host para que dois aplicativos iniciados ao mesmo tempo produzam um backend em vez de dois”;HOST_SPAWN_GATE_STALE_MS = 60_000). Operação do conector:tools/connectors/operation.py:1, literalmente, “Uma operação de conexão controlada pelo backend por chamada demanage_connections. Dados puros, sem E/S.”;OPERATION_DEADLINE_SECONDS = 300.0com o comentário “Não é uma chave de configuração: uma espera ajustável pelo usuário com limites de contenção era uma armadilha (a PR1 incluiu uma, mas ela não foi integrada)”; a ferramenta registrada comomanage_connections(tools/connectors/tool.py:16,48,113);required_envpor destino “({name, prompt, required}); o card exibe um campo para cada entrada e retém sua ação até que todas as entradas obrigatórias contenham texto”; o card das três interfaces nomeado emtests/hermes_cli/test_mcp_catalog_env_boundary.py:330(“O backend do card do conector (card de configuração do Desktop/TUI/CLI) faz a mesma separação exclusiva de segredos”). stream-json:hermes_cli/_parser.py:247-249no parser do chat —--formatcom as opçõestext/stream-json, padrãotext, ajuda literalmente “‘stream-json’ emite eventos JSON delimitados por novas linhas (JSONL), implica –quiet e não pode ser combinado com –tui”; docstring do módulohermes_cli/stream_json.py: “um objeto JSON por linha da saída padrão …system/init-> deltas detext/tool_use/tool_result-> um enveloperesultfinal (código de saída, texto final, estatísticas de tokens). Diagnósticos esession_idpermanecem na saída de erro padrão”,_TOOL_OUTPUT_CAP = 5000, saída 2 nas combinações proibidas,stream_json_requestedemhermes_cli/stream_json.py:23aceitandoqueryouquery_fileantes de encerrar com 2 (o ponto de entrada Fire emcli.py:1703-1705verifica a consulta já resolvida);--query-file PATHemhermes_cli/_parser.py:218-222, em um grupo mutuamente exclusivo com-q(ajuda literalmente “Lê a única consulta de um arquivo em vez da linha de comando (‘-’ lê stdin). Seguro para texto arbitrário: nada é interpretado pelo shell”), lido por_read_query_file(hermes_cli/main.py:1735-1762), presente desde a tagv2026.8.19; testes de contrato emtests/hermes_cli/test_stream_json.py(incluindo “nunca deve chegar à saída padrão com stream-json”). skills.auto_load:hermes_cli/config_defaults.py:1435, padrão[], comentário literalmente “Nomes de skills fixados como totalmente carregados em cada nova sessão (CLI, TUI, gateway, cron, API). Resolvidos uma vez quando o prompt do agente é criado pela primeira vez; nomes ausentes/desativados geram um aviso e são ignorados; HERMES_IGNORE_RULES suprime a lista, assim como os outros contextos injetados automaticamente.” decline:gateway/config.py:137-139— comentário literalmente “‘pair’ envia um código de pareamento por DM, ‘ignore’ descarta silenciosamente, ‘decline’ envia uma recusa educada e depois permanece em silêncio para esse remetente durante gateway.pairing.DECLINE_DEDUPE_SECONDS (#88028)”,UNAUTHORIZED_DM_BEHAVIORS = {"pair", "ignore", "decline"}, padrão do campo"pair"(:626),unauthorized_dm_decline_messagevazio ->DEFAULT_UNAUTHORIZED_DM_DECLINE_MESSAGE(a resposta citada na seção sobre pareamento);DECLINE_DEDUPE_SECONDS = 24 * 3600e registros de horário de recusa que reconhecem aliases emgateway/pairing.py:37,565-576; resolução por plataforma e o padrão do Email emget_unauthorized_dm_behavior(gateway/config.py:803-809, “O Email tem formato de caixa de entrada, portanto usa"ignore"como padrão, a menos que seu própriounauthorized_dm_behaviorhabilite outro comportamento (um padrão global não faz isso)”). A própria chave, compair/ignoree a regra do Email, é anterior a esse período (presente emv2026.9.14,gateway/config.py:564,736-742; introduzida pela #1919 em março de 2026); somentedeclineé novo. Padrão efetivo:_get_unauthorized_dm_behavioremgateway/authz_mixin.py:699-740, na ordem indicada por sua docstring: “configuração explícita por plataforma; Email -> “ignore”; configuração global explícita que não seja a padrão; dm_policy do adaptador (pairing -> “pair”, allowlist/disabled -> “ignore”); qualquer lista de permissões configurada -> “ignore” …; caso contrário, “pair”” (#9337), com a configuração global consultada somente quando!= "pair". Formato de YAML: chaves por plataforma emplatforms.<name>são promovidas paraPlatformConfig.extra(gateway/config.py:456-460, #10206), a chave de nível superior ou a chave aninhadagateway.unauthorized_dm_behavioré conectada porgateway/config_loader.py:39-46,102, ehermes gateway setupgravaplatforms.<name>.unauthorized_dm_behaviorpor meio dewrite_platform_config_field(hermes_cli/config.py:2061-2069;hermes_cli/gateway_setup_wizard.py:182-184,219-249, opção “Recusar educadamente remetentes desconhecidos (mensagem única, seguida de silêncio)”). A mensagem de recusa é somente global (gateway/run_inbound.py:139). discovery_concurrency: padrão 4 emhermes_cli/config_defaults.py:526;tools/mcp_tool_discovery.py:27-40(“mcp.discovery_concurrencysubstitui esse valor, 0 = ilimitado (#117373)”; um valor não inteiro ou negativo registra “não é um inteiro não negativo; usando %d” e usa o padrão); semântica de limite, e não de trava, fixada portests/tools/test_mcp_tool.py:2813(“limita conexões simultâneas (ainda concorrentes, todos os servidores” se conectam). Limites de session_search + nova tentativa:tools/session_search_tool.py:578,621-635,708-725—after“Limite inferior inclusivo para o horário de início da sessão. Data/data e hora ISO (por exemplo, 2026-06-01) ou duração relativa (7d, 24h, 2w = nos últimos N)”,before“Limite superior exclusivo para o horário de início da sessão. Data/data e hora ISO (um valor contendo somente a data representa meia-noite UTC daquele dia) ou duração relativa (7d = há mais de uma semana)”, ambos “Somente formato de descoberta”, com “a ordenação é um viés de classificação, não um limite”, e os novos parâmetros “adicionados apósdetail” para manter a estabilidade do schema; a nova tentativa com OR mais flexível emhermes_state_search.py:1151-1163, comentário literalmente: “o AND implícito entre os termos faz com que uma consulta parafraseada com várias palavras não encontre uma frase armazenada que não contenha sequer UMA das palavras … Depois que a consulta exata e todos os fallbacks de substring não encontrarem nada, tente novamente no índice unicode61 correspondendo a QUALQUER termo. … Restrito a uma falha sem resultados para que os acertos mantenham a semântica de correspondência exata; consultas com OR/NOT explícito, com um único termo e encaminhadas para CJK permanecem inalteradas”; suíte dedicadatests/hermes_state/test_search_or_relaxed_fallback.py. set-journal-mode: parser emhermes_cli/subcommands/sessions.py:177, ajuda literalmente “Converte state.db offline entre journal_mode=WAL e DELETE (com todos os processos que o mantêm aberto interrompidos)”; docstring dehermes_cli/sessions_cmd_journal_mode.py— o caminho offline de autoatendimento para #100896 (antes dele, “a única saída de emergência era executar manualmente o comando não documentadoPRAGMA journal_mode=DELETE”), “recusa enquanto QUALQUER processo externo mantiver o arquivo ou um arquivo auxiliar aberto (foreign_state_db_holders), altera sem esperar que os processos que o abriram sejam encerrados (_set_journal_mode_no_wait) e depois verifica os bytes 18/19 do cabeçalho que o SQLite grava para o modo”; despacho marcado como “offline: não deve abrir o armazenamento que está convertendo” (hermes_cli/sessions_cmd.py:982);hermes doctorrecomenda o comando com--dbpara armazenamentos fora do padrão (hermes_cli/doctor_platform.py:148,163). Descrição do parser, literalmente: “Execute isto com o gateway, o dashboard e todos os CLI interrompidos: o comando recusa enquanto qualquer processo mantiver o arquivo aberto, muda o modo e verifica o cabeçalho do arquivo”; ajuda de--force: “Somente Windows: prossegue sem verificar os processos que mantêm o arquivo aberto (essa verificação não existe nessa plataforma) depois que você interromper manualmente todos os processos do Hermes” (hermes_cli/subcommands/sessions.py:176-189), aplicado em_refusal(sessions_cmd_journal_mode.py:40-44: “não é possível comprovar que o banco de dados está inativo no Windows — não há verificação de processos que o mantêm aberto”). Onda do Desktop: campo de fonte emapps/desktop/src/app/settings/chat-font-setting.tsx(CONFIG_PATH = 'desktop.font_family', salvamento automático após 550 ms) comthemes/chat-font.ts(sugestões: OpenDyslexic, Atkinson Hyperlegible, Lexend, Inter, IBM Plex Sans, Source Sans 3, Noto Sans, Segoe UI, SF Pro Text; vazio significa usar a fonte do tema), aplicado porthemes/context.tsx:279, que substitui o token de tema--dt-font-sans; atualizações do mecanismo emapps/desktop/src/app/settings/local-models-settings.tsx+ teste (um botão “Atualizar mecanismo” quando o runtime local gerenciado informaupdate_available, acionandoinstallLocalRuntimecomo um trabalhoruntime-installque relata o progresso; o teste “mantém uma atualização explícita com falha visível, com nova tentativa direta e nenhum modelo preparado”); desinstalação no hub de Plugins emapps/desktop/src/app/capabilities/plugins/plugins-tab.tsx+ teste (“desinstala por meio de plugins.manage remove somente depois que a caixa de diálogo de confirmação é aceita”; plugins independentes do Desktop por meio deuninstallDiskPluginno carregador do Electron). Catálogos de vídeo:plugins/video_gen/fal/__init__.py:43-44,99-101—ltx-2.5(“LTX 2.5”, “Modelo de áudio e vídeo de código aberto da Lightricks. Áudio nativo, até 20s / 4K (i2v), predefinições de movimento de câmera.”, categoria econômica,lightricks/ltx-2.5/text-to-video/faste/image-to-video/fast, proporções 16:9/9:16, durações inteiras;:128“fal rejeita LTX 2.5 acima de 10s em 1440p/2160p”) ekling-o3(“Kling O3 (Standard)”, “Tecnologia de ponta da Kuaishou. Narrativa nativa em várias tomadas, áudio opcional, 3-15s.”, categoria premium, duração em string de 3-15, i2v deriva a proporção da imagem,generate_audioé um controle real); testes de payload emtests/plugins/video_gen/test_fal_plugin.py:641,681; linha da lista emwebsite/docs/reference/toolsets-reference.md:72. Expansão do catálogo:plugin-catalog/emv2026.9.14= 9 entradas +removed.yaml; emv2026.9.21= 228 entradas +removed.yaml; formato das entradas conformeplugin-catalog/hermes-tailscale.yaml(nome, repositório,shahexadecimal de 40 caracteres, descrição, mantenedor,tier: community, categoria, docs_url, funcionalidades); modelo de admissão e publicação emhermes_cli/plugin_catalog.py:4-10,33(“fixado a um SHA de commit exato com 40 caracteres. A presença no diretório É” a admissão;website/scripts/extract-plugins.pypublica/docs/api/plugin-catalog.json;LIVE_CATALOG_URLé obtido e armazenado em cache em~/.hermes/cache/plugin-catalog.json); páginas do site emwebsite/plugins/plugin-catalog-pages/index.js(“/docs/plugins/, uma página por entrada”, “/docs/plugins/by/, uma página por mantenedor”, “uma PR integrada ao catálogo é a única maneira de uma página aparecer, mudar ou desaparecer”, e o site “se degrada, mas nunca falha”) ereadme.js(o README de cada entrada é renderizado “a partir do commit FIXADO” por meio de uma URL bruta no sha, “nunca da ponta de um branch”, portanto a página mostra exatamente o README que o revisor do catálogo leu; renderização durante o build com lista de permissões que remove HTML bruto, limite de 512 KB, hosts restritos a raw.githubusercontent.com e gitlab.com; desative comreadme: false); slugs de autores e marcas de data de adição/atualização baseadas na data do committer emwebsite/scripts/extract-plugins.py:80,142; todos os dez plugins da comunidade mencionados na versão estão presentes como entradas na tag, sob os slugs listados em 50. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.21.5, tag
v2026.9.24, data de lançamento informada de 24 de setembro, publicado em 2026-09-24T10:09:38Z. Objetivo na íntegra: “Lançamento de correção. Este tag reúne os cerca de 460 PRs incorporados desde a v0.21.4 em uma versão estável com tag para consumidores downstream (imagens Docker, Hermes Cloud, implantações hospedadas). As notas completas e organizadas deste período foram adiadas para a v0.22.0.” Estatísticas medidas no commit do tagf97608f178(“chore: release v0.21.5 (2026.9.24)”): “1.610 commits sem merge” em “4.828 arquivos alterados” (+164.132 / -149.440), “460 PRs incorporados” e “475 issues fechadas”. As verificações em um clone local reproduzem exatamente os números de commits e do diff (git rev-list --count --no-merges v2026.9.21..v2026.9.24= 1.610; 1.638 com merges;git diff --shortstat= 4.828 arquivos, +164.132 / -149.440); as contagens de PRs e issues não foram verificadas de forma independente. A lista de itens propositalmente não documentados no corpo menciona GPT-6 “Sol/Terra/Luna” e Claude Opus 5.5 nos catálogos da Nous e do OpenRouter, operações de parar/iniciar/reiniciar por profile comgateway.standalonee uma leva de SDK de plugins para Desktop; ela não menciona Hindsight. Caminho de atualização na íntegra: “hermes update(instalações via git) ou execute novamente o comando de uma linha do instalador” e “as imagens são criadas a partir deste tag (nousresearch/hermes-agent:v2026.9.24)”. ↩↩↩↩ -
Itens da v0.21.5 verificados no código-fonte no tag
v2026.9.24(guia v1.22, 24 de setembro de 2026). Hindsight: o commit4cbf862abe“chore(memory): remove the bundled hindsight provider (moved to the plugin catalog)” (22 de setembro) é um ancestral do tag; no tag,plugins/memory/contém 7 pastas de providers (byterover,holographic,honcho,mem0,openviking,retaindb,supermemory), contra 8 emv2026.9.21; o commit73c598e319“build: drop the hermes-agent[hindsight] extra” o removeu depyproject.toml.plugin-catalog/hindsight.yaml:repo: https://github.com/vectorize-io/hindsight,maintainer: vectorize-io,tier: community,requires_hermes: ">=0.21.4". Migração: a docstring dehermes_cli/memory_provider_migration.py(linhas 1–14) menciona 2 hooks, “hermes update” e “inicialização do agente”; a linha 75 exibe “O provider de memória ‘{name}’ foi removido do núcleo — seu plugin foi instalado por meio do catálogo”;recover_at_startup()(linha 110) “respeitasecurity.allow_lazy_installs”; ele é chamado emhermes_cli/update_cmd_deps.py:535-536eagent/agent_init.py:1315-1316. Efeitos no disco e comandos de verificação:memory-providers.md:482-490. Multiplex:hermes_cli/gateway_multiplex_mode.py, linha 10, “Umfalseexplícito foi DESCONTINUADO”, e linhas 43–44, “gateway.multiplex_profiles: false foi descontinuado e reescrito como true” (commitb936546561, 23 de setembro).gateway.standalone:hermes_cli/profiles.py:979-982, “O profile DEFAULT nunca é standalone — ele É o host — e emite um aviso uma vez por processo se a chave estiver definida nele” (commit0238c9d740). Estacionamento: commit4c342c05de“parar, iniciar e reiniciar um profile no multiplexador do host”;multi-profile-gateways.md:120-138, 233-244(“uma camada temporária de compatibilidade”; “gateway.standalonetem precedência”). Modelos:hermes_cli/models_catalog_static.py,OPENROUTER_MODELSnas linhas 32 e 36–37 (anthropic/claude-opus-5.5,openai/gpt-6-sol,-sol-pro,gpt-6-luna,-luna-pro); a listanousna linha 162 deriva dela. Nenhum ID de modelogpt-6-terraaparece nos catálogos do seletor nesse tag, portanto apenas Sol e Luna são listados aqui. Providers:CANONICAL_PROVIDERSna linha 314 resulta em 39 entradas após o parsing (contagem da AST, sem alteração);plugins/model-providers/contém 38 pastas tanto emv2026.9.21quanto emv2026.9.24, contra 39 emv2026.9.14. O commit998f614c7f“feat(providers): remove the keyless opencode-free tier” (18 de setembro) excluiu o plugin; sua mensagem diz que “o nível gratuito do OpenCode agora retorna HTTP 403 para tráfego anônimo fora do cliente OpenCode”.hermes_cli/auth.py:1255-1259mantém um erro paraopencode-free,freeeopencode_freeque direciona paraopencode-zeneopencode-go. Compatibilidade:COMPAT_MANIFEST.md,compat_manifest.jsonehermes_cli/plugin_compat.pyestão presentes no tag e emmainno commitaa8a33d22d(24 de setembro).git diff v2026.9.21 v2026.9.24 -- hermes_cli/plugin_compat.pynão apresenta diferenças (COMPAT_REMOVAL_DATEna linha 32; a verificação “Apenas booleanos literais” nas linhas 296–303). O par de manifestos perdeu somente as entradas removidas deplugins.memory.hindsight(-7 / -12 linhas). ↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.20.3 (tag
v2026.8.16.2, data de lançamento informada de 16 de agosto, publicado em 17 de agosto de 2026) e notas de lançamento da v0.20.4 (tagv2026.8.18, 18 de agosto de 2026); ambas obtidas por meio da GitHub API em 20 de agosto de 2026 (prerelease: false). Texto integral da v0.20.3: “a migração de SDK do MCP 2.x e o suporte ao protocolo sem estado de 28 de julho de 2026, o plugin Bot Mode (hermes-bots) incluído com o protocolo principal de integrantes da equipe, o plugin do provider CommandCode, o reforço do isolamento de propriedade do runtime de Python em subprocessos (isolamento de PYTHONHOME/PYTHONPATH), os contratos de runtime do Cua Driver 0.20 para uso do computador.” Texto integral da v0.20.4: “o trabalho de vidro/translucidez na interface do desktop (vidro fosco, seletor de efeito fosco, pré-seleção no macOS), a barra lateral com abas SESSIONS|BOTS e opção de ocultar/exibir cada bot, … a análise consultiva NVIDIA SkillEvaluator Tier 1 durante a instalação de skills (verificações de licença e segurança).” Ambas as versões: “As notas completas e organizadas deste período serão lançadas com a v0.21.0.” ↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.20.0, “O lançamento Herald”, tag
v2026.8.3, 3 de agosto de 2026, com os tags de estabilização v2026.8.13 e v2026.8.16. Texto integral da versão: “Node 26 obrigatório em instaladores/recuperação/upgrade”; “os canais brew + wheel via pip/PyPI foram descontinuados (instalador shell / Docker / Nix são os canais compatíveis)”; “limite padrão de iterações 90 → 500”; “fonte claude-marketplace removida”. A versão mínima do Node foi confirmada de forma independente no código-fonte do instalador em scripts/install.sh —NODE_VERSION="26"e a verificação “Node.js $(node –version) is too old (Hermes requires Node >=26)” —, que também documenta o comando canônico de uma linhacurl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashem seu comentário de cabeçalho. Observe o conflito: a página de instalação da documentação ainda informa Node v22 e está desatualizada em relação a ambos. Níveis de suporte das plataformas em suporte a plataformas; fontes de skills e taps padrão em skills; a contagem de 28 plataformas foi obtida enumerando a tabela comparativa em mensagens, que não publica um total oficial. Tudo foi obtido e verificado em 16 de agosto de 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.19.0, “The Quicksilver Release”, tag
v2026.7.20, 20 de julho de 2026; versão mais recente em 21 de julho de 2026. Estatísticas desde a v0.18.0: cerca de 2.245 commits, cerca de 1.065 PRs mesclados, cerca de 3.300 issues encerradas e mais de 450 colaboradores da comunidade. Eixo de desempenho: redução de cerca de 80% no TTFT do primeiro turno e de cerca de 4,3 s para cerca de 0,9 s entre o envio a frio e o despacho no CLI/gateway/TUI/desktop/cron (PR #59332); raciocínio transmitido ao vivo por padrão, comdisplay.show_reasoningativado e renderização da resposta a cada token (PR #59389); onda de desempenho no desktop com cerca de 20 PRs, incluindo renderização de Markdown em streaming 14× mais rápida; Markdown incremental na TUI. Instalações via pip/Homebrew foram descontinuadas e agora exibem apenas um aviso de “legado sem suporte”, com a remoção da publicação no PyPI/Homebrew planejada (PR #57225). Interface conectávelSecretSourcecom provedores Bitwarden e 1Password, referênciasop://, vários cofres, precedência determinística e proveniência por variável (PR #59498). Aprovações inteligentes por padrão (um revisor LLM independente para cada comando sinalizado), regras de negação definidas pelo usuário que continuam valendo no modo YOLO e/deny <reason>(PRs #62661, #59164, #54518); escalonamento de aprovação do pluginpre_tool_callreintegrado (PR #60504). Cobrança pelo terminal com/subscription+/topup+ aba de cobrança no desktop (PR #51639). Arquivos de transcrição de subagentes em tempo real + delegação durável em segundo plano (PRs #67479, #63494); registro de obrigações de entrega nostate.db(PR #67181);max_async_childrendescontinuado em favor de limites unificados de concorrência para delegação (PR #56955). Roteamento do gateway baseado em profile +GATEWAY_MULTIPLEX_PROFILES+ índice de roteamento movido parastate.db, comsessions.jsoncomo espelho legado opcional (PRs #64835, #65700, #60589, #59203). Provedores/modelos: suporte nativo ao Fireworks AI na posição nº 2 do seletor (PR #62593), DeepInfra, Upstage Solar, suporte completo de ponta a ponta ao GPT-5.6 Sol/Terra/Luna + Pro (PR #61616), grok-4.5 em disponibilidade geral, kimi-k3 (kimi-k2.x descontinuado), Claude Sonnet 5 totalmente integrado,enabled: falsepor provedor +excluded_providers(PR #67971); níveismax/ultrade esforço de raciocínio, com substituições por modelo/posição de MoA e/reasoningcom escopo de sessão (PRs #62650, #64458). CLI/MCP:hermes sessions exportpara Markdown/Quarto/HTML/somente prompt/rastreamento do HF com--redact(PR #60186),/model --once(PR #67113), invocações empilhadas de skills por comando com barra (PR #57987),--safe-mode,hermes config get/unset(PR #65540),hermes serverealmente sem interface gráfica (PR #55923), nomenclatura MCPmcp__server__tool(PR #52750). O enquadramento de marketing do lançamento foi excluído; itens revertidos durante o período (firewall de saída iron-proxy, skill dynamic-workflow e ações de provedor de memória) não foram deliberadamente registrados como entregues. Verificação da sessão atual em 21 de julho de 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Tag de lançamento do Hermes Agent v0.18.1 e tag de lançamento da v0.18.2, 7–8 de julho de 2026. Pacotes cumulativos de patches de infraestrutura para a linha v0.18; a correção relevante da v0.18.2 remove a fixação do WhatsApp Baileys para usar a versão 7.0.0-rc13 e garantir builds confiáveis do Docker. Os dois períodos de patches foram incorporados e totalmente documentados nas notas de lançamento da v0.19.0. ↩
-
Notas de lançamento do Hermes Agent v0.15.1 e notas de lançamento do Hermes Agent v0.15.2. A v0.15.1 (29 de maio de 2026, 01:12 UTC) é o hotfix Velocity lançado no mesmo dia: correção do loop de recarregamento com erro 401 no dashboard em modo loopback; o Docker agora exige
HERMES_DASHBOARD_INSECURE=1explicitamente; comandos MCP simples (npx,npm,node) são resolvidos nos contêineres Docker; os indicadores de origem e a barra lateral de categorias da página Skills foram restaurados; workers do Kanban respondem a SIGTERM; o catálogo Skills.sh cresceu de 858 para 19.932 entradas via sitemap. 28 commits, 21 PRs mesclados e 9 colaboradores. A v0.15.2 (29 de maio de 2026, 13:37 UTC) é um hotfix exclusivamente de empacotamento que inclui os manifestosplugin.yamlnas distribuições wheel e sdist para que instalações via PyPI funcionem sem carregar o código-fonte separadamente. 4 colaboradores. ↩ -
Notas de lançamento do Hermes Agent v0.15.0 e a página de lançamentos do Hermes Agent. “The Velocity release”, tag
v2026.5.28. Estatísticas: 1.302 commits, 747 PRs mesclados e 321 colaboradores da comunidade. Refatora 76% derun_agent.py(de 16.083 para 3.821 linhas distribuídas em 14 módulos). Adiciona a plataforma Kanban multiagente (decomposição automática, topologia de swarm, substituições de modelo por tarefa, tarefas agendadas e gerenciamento de worktrees).session_searchfoi reformulado e ficou 4.500× mais rápido, com a remoção da dependência LLM. Defesa contra promptware para injeções de prompt da classe Brainworm em três pontos críticos de segurança. A integração com o Bitwarden Secrets Manager substitui várias chaves API específicas de cada provedor por um único token de inicialização. Pacotes de skills permitem carregar várias skills com um único comando com barra. Orquestrador de sessões na TUI para gerenciar várias sessões em uma única janela do terminal. Suporte ao Krea 2 (Medium/Large) e ao plugin FAL para geração de imagens. A rodada de integração com a xAI adiciona um plugin de pesquisa na web, OAuth upstream, detecção de modelos descontinuados e pausas naturais de TTS na saída de voz. Um patch mencionado no GitHub corrige o loop de recarregamento com erro 401 no dashboard, a exigência da variável de ambienteHERMES_DASHBOARD_INSECURE=1explícita para usar--insecureno Docker, a resolução de comandos MCP simples (npx,npm,node) no Docker, a renderização da página Skills, o tratamento de SIGTERM pelos workers do Kanban, o catálogo completo de Skills com 19.932 entradas via sitemap e um pequeno lote de correções na entrega de arquivos.md, segurança de sondagem do gateway, ocultação de URLs da web, capacidade de visão do worker do Kanban e padrões de observação retrospectiva. ↩↩↩↩ -
Notas de lançamento do Hermes Agent v0.11.0. 23 de abril de 2026. “The Interface release” — reescrita completa em React/Ink do CLI interativo, com um backend Python JSON-RPC (
tui_gateway); arquitetura de transporte conectável (agent/transports/); suporte nativo ao AWS Bedrock via Converse API; cinco novos caminhos de inferência (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 via Codex OAuth; QQBot como a 17ª plataforma de mensagens, com configuração por leitura de código QR; superfície de plugins ampliada (comandos com barra, despacho de ferramentas, bloqueio de execução e transformação de resultados);/steer <prompt>para orientar o agente durante a execução, injetando contexto após a próxima chamada de ferramenta sem invalidar o cache de prompts; hooks de shell para eventos do ciclo de vida sem plugins Python; modo de entrega direta por webhook, que encaminha payloads diretamente para um chat da plataforma; delegação mais inteligente com funções de orquestração + profundidade de spawn configurável + coordenação de arquivos; sistema de plugins do dashboard, troca de tema em tempo real, i18n e responsividade em dispositivos móveis. Estatísticas desde a v0.9.0: 1.556 commits · 761 PRs mesclados · 1.314 arquivos alterados · 224.174 inserções · 29 colaboradores da comunidade. Consulte também: tag de lançamento GitHub do Hermes Agent v0.11.0. ↩↩↩ -
Notas de lançamento do Hermes Agent v0.10.0. 16 de abril de 2026. “O lançamento do Tool Gateway.” Integração com o Nous Tool Gateway para assinantes pagos do Nous Portal — acesso gerenciado à pesquisa na web do Firecrawl, à geração de imagens do FAL / FLUX 2 Pro, ao TTS da OpenAI e à automação de navegador do Browser Use, sem chaves API adicionais. Ativação individual por ferramenta por meio do novo campo de configuração
use_gateway. Durante a execução, o gateway tem prioridade sobre as chaves API diretas quando ambos estão configurados. Integração completa comhermes toolsehermes status. Substitui a variável de ambiente obsoletaHERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementação de @jquesnelle (emozilla). O CLI do Hermes Agent continua licenciado sob a licença MIT e totalmente open source; o gateway é uma integração com o produto de assinatura existente do Portal, não um paywall para o CLI. Veja também: Nous Portal para consultar os preços das assinaturas e se cadastrar. ↩↩↩