v0.17.0

Hermes Agent v0.17.0 — A Versão Reach


Visão Geral

v0.17.0 — A Versão Reach. Lançada em 19 de junho de 2026. ~1.475 commits · ~800 PRs mesclados · 1.693 arquivos modificados · 235.390 inserções · 50.730 exclusões · 300+ issues fechadas · 245 colaboradores da comunidade.

A v0.16.0 colocou o Hermes no seu desktop. A v0.17.0 trata de até onde esse alcance se estende — por novos lugares para conversar com ele, mais profundamente nas ferramentas que você já usa, e até as pessoas que executam o Hermes para uma equipe. Dois novos canais de mensagens chegaram (iMessage via Photon, rede de agentes Raft). O app desktop se aprofundou substancialmente. Subagentes agora podem rodar em background. A geração de imagens aprendeu a editar. O modelo Composer do Cursor está acessível através de uma assinatura xAI Grok. O dashboard ganhou um construtor completo de perfil e login seguro. O Skills Hub foi reformulado. A ferramenta memory recebeu operações atômicas em lote. E o curador parou de gastar orçamento de modelo auxiliar em execuções rotineiras. Além de uma rodada de segurança e mais de 300 issues fechadas.


Principais Funcionalidades

1. iMessage via Photon Spectrum — Sem Necessidade de Relay Mac

O Hermes agora fala iMessage através do pool de linhas gerenciadas da Photon. Sem Mac no armário rodando relay, sem ponte BlueBubbles para monitorar.

# Autentique-se com OAuth device-code
hermes photon login

# O Hermes agora está no iMessage — canal nativo gRPC (sem webhook)
# Renderização Markdown, reações emoji, mídia de saída via spectrum-ts

Construído sobre um canal nativo gRPC sem dependência de webhook, com suporte a renderização Markdown, reações emoji e mídia de saída. Posicionado como o sucessor do BlueBubbles: gratuito para começar, nada para self-hosting. Se seus amigos e familiares vivem em bolhas azuis, o Hermes agora também vive lá. (#32348, #42582, #44713)

2. Raft — O Hermes Entra na Rede de Agentes

Um novo adaptador de plataforma Raft integrado permite que o Hermes se conecte ao Raft como um agente externo através de uma ponte wake-channel. Defina RAFT_PROFILE, execute a ponte, e o Raft pode despertar o Hermes para lidar com mensagens — com um design de privacidade por contrato onde os payloads de despertar carregam apenas metadados (IDs de eventos, timestamps), nunca corpos de mensagens. (#48210)

export RAFT_PROFILE=my-hermes-agent
hermes raft bridge

3. Um App Desktop Significativamente Mais Capaz

A v0.16.0 entregou o app desktop; a v0.17.0 o aprofundou em dezenas de PRs. O desktop agora é um driver diário sério.

Atalhos de teclado reconfiguráveis e notificações nativas do SO com alternâncias por tipo.

Janelas de observação ao vivo de subagentes:

Quando você delega uma tarefa, um painel dedicado transmite a atividade
do subagente em tempo real — chamadas de ferramentas, saídas, progresso.
Você pode observar o que ele está fazendo sem trocar de contexto.

Seletor de modelo do Composer com predefinições por modelo — exponha cada provider/modelo do hermes model na GUI. Direção automática de texto RTL/bidi. Um painel de terminal redimensionável com tema do VS Code. Rascunhos do Composer por thread.

Instale qualquer tema do VS Code Marketplace diretamente no app — atribuível por perfil. Controle deslizante de translucidez da janela. Sistema unificado de design de sobreposições.

Funcionalidades adicionais do desktop:

  • Alternador de sessões estilo Mac (^Tab / ^1-9)
  • Histórico com teclas de seta + edição de fila no Composer
  • Expandir comando completo inline a partir da barra de aprovação
  • Seguir streaming no final + botão pular para o final
  • Cron jobs de primeira classe na barra lateral
  • Agrupamento na barra lateral com reconhecimento de worktree
  • Revelação ao passar o mouse em barras laterais recolhidas
  • Pastas de origem de mensagens na barra lateral
  • Desktop pets — sobreposição pop-out + notificações
  • Troca de idioma para Japonês + Chinês Tradicional
  • Ação “Reiniciar gateway” na barra de status

Melhorias no gateway remoto:

  • Relay de mídia remota — anexe imagens/PDFs e exiba imagens geradas pelo agente pela rede pela primeira vez
  • Anexos de arquivos remotos via file.attach
  • Botões de versão do cliente + backend com fluxo de atualização remota
  • Navegar arquivos do backend remoto
  • Recuperar chat após suspensão/despertar revalidando backend remoto obsoleto

4. Subagentes em Background / Assíncronos — Delegue Trabalho e Continue

delegate_task(background=true) despacha um subagente que roda em background e retorna um handle imediatamente. Você e o modelo continuam trabalhando enquanto ele processa, e o resultado completo reentra na conversa como um novo turno no momento em que termina.

# Delegação em background — não bloqueante
/delegate_task "Pesquise todo o cenário de concorrentes" --background

# Você continua trabalhando. Quando o subagente terminar, os resultados chegam como um novo turno.

Nada de ficar bloqueado esperando uma longa pesquisa ou build de múltiplas etapas. Inicie e siga em frente. (#40946, #46968)

5. Edição Imagem-para-Imagem — Não Apenas Geração

image_generate agora pode editar e transformar uma imagem de origem, não apenas criar uma do zero. Passe uma imagem existente e um prompt — ela é roteada para o endpoint de edição do backend em todos os providers de imagem suportados.

# Editar uma imagem existente
image_generate --source logo.png --prompt "Deixe este logo azul e adicione um fundo gradiente"

# "Remova o fundo", "transforme este esboço em uma renderização" — tudo de uma ferramenta

Mesma ferramenta, mesmo padrão do video_generate. (#48705)

6. Automation Blueprints — Agendamento Sem Aprender Cron

Escolha uma automação pelo nome e o Hermes pergunta o que precisa — sem sintaxe cron, sem digitar slot=value. Uma definição de blueprint é renderizada nativamente em todas as superfícies: um formulário no dashboard, um slash command no CLI/TUI/messenger, uma conversa com o agente, uma entrada no catálogo de documentação.

# Agendamento sem cron
/hermes automation create "Resumo diário de notícias às 8h"
# O Hermes pergunta: quais fontes? qual formato? algum filtro?
# Pronto. Nenhum "0 8 * * *" em lugar nenhum.

“Resumo diário de notícias às 8h” se torna algo que você configura respondendo perguntas, não memorizando sintaxe cron. (#41309)

7. Modelo Composer do Cursor — Através da Sua Assinatura xAI Grok

grok-composer-2.5-fast agora está no seletor de modelos OAuth da xAI, com sua janela de contexto reconciliada para os 200k completos. O Composer é o modelo rápido de codificação por trás do Cursor — e se você tem uma assinatura xAI Grok, agora pode apontar o Hermes para ele diretamente via OAuth, sem chave de API separada.

/hermes model:xai/grok-composer-2.5-fast

Seu plano Grok, o loop de agente do Hermes, a velocidade de codificação do Composer. (#47908)

8. Construtor Completo de Perfil no Dashboard

Construa um perfil completo do Hermes pelo navegador — escolha seu modelo, selecione suas skills, anexe seus servidores MCP — sem editar manualmente o config.yaml. O dashboard unificou o gerenciamento de múltiplos perfis em uma visão global da máquina com um alternador de perfil global. (#39084, #44007)

9. Reformulação do Navegador Skills Hub

O Skills Hub do dashboard recebeu uma reformulação completa: hubs conectados, uma seção em Destaque, pré-visualizações completas de skills antes da instalação e uma verificação de segurança em cada skill. Navegar e instalar skills de taps confiáveis (OpenAI, Anthropic, HuggingFace, NVIDIA) agora é uma verdadeira experiência de navegação, não uma lista plana. Além disso, um editor SKILL.md na página de Skills e um seletor de anexar skill nos modais de cron. (#40384, #43398)

10. Ferramenta de Memória — Operações Atômicas em Lote

A ferramenta memory ganhou um array operations que aplica um lote de edições add/replace/remove atomicamente contra o orçamento final de caracteres. O modelo pode liberar espaço e adicionar novas entradas em uma única chamada — mesmo quando apenas um add excederia o orçamento.

{
  "operations": [
    { "action": "remove", "key": "fato-antigo-obsoleto" },
    { "action": "add", "key": "novo-fato-importante", "value": "..." },
    { "action": "replace", "key": "fato-atualizado", "value": "..." }
  ]
}

O que costumava ser uma dança frágil de múltiplos turnos agora é uma operação confiável. (#48507)

11. API Oficial WhatsApp Business Cloud

Junto com a ponte Baileys existente, o Hermes agora fala a API oficial WhatsApp Business Cloud — o caminho first-party da Meta, hospedado, sem processo de ponte. Aponte para suas credenciais da Business API e o Hermes fala WhatsApp pelo canal suportado, sem processo de ponte com QR code para manter ativo. (#44331, #43921)

12. Rich Text para Telegram — Bot API 10.1

As respostas do Telegram agora são renderizadas como mensagens rich text via Bot API 10.1: melhor formatação, tratamento mais limpo de mensagens longas, marcação nativa em vez de texto aplainado. Sempre ativo com opção de desativação. Além disso, indicador de status Online/Offline do bot opcional. (#44829, #45584)

13. Otimização de Custo do Curador — Zero Tokens em Execuções Rotineiras

O curador de skills agora remove skills obsoletas por padrão, mas não executa mais sua passagem de consolidação baseada em LLM a menos que você opte por participar (curator.consolidate: true ou hermes curator run --consolidate). A varredura determinística de inatividade continua rodando gratuitamente; o fork de “construir skills guarda-chuva” que consome modelo auxiliar agora está desativado por padrão. A curadoria rotineira em background custa zero tokens. (#47840)


Refatoração de God-Files — Grande Esforço de Qualidade de Código

Esta release entregou uma das maiores refatorações da história do Hermes, decompondo três god-files monolíticos em módulos focados:

Arquivo Antes Depois O que foi extraído
cli.py main() 3.297 linhas 954 linhas 28 parsers de subcomando → hermes_cli/subcommands/; 32 manipuladores de slash-command → CLICommandsMixin; 18 funções do wizard de fluxo de modelo → model_setup_flows; cluster de construção de agente → CLIAgentSetupMixin
gateway/run.py 19.157 linhas 15.870 linhas 42 manipuladores de slash-command → GatewaySlashCommandsMixin; cluster de autorização → GatewayAuthorizationMixin; loops do watcher kanban → GatewayKanbanWatchersMixin
run_agent.py loop de turno Prólogo extraído para TurnContext; cauda pós-loop para finalize_turn; flags de recuperação do loop de retry consolidadas em TurnRetryState

Novas Ferramentas e Comandos Integrados

Ferramenta / Comando Descrição Uso
/version Exibe a versão atual do Hermes /version
/billing Visualização interativa de faturamento no terminal (TUI + CLI) /billing
image_generate (editar) Edição imagem-para-imagem em todos os backends image_generate --source img.png --prompt "deixe azul"
memory (ops em lote) Array atômico add/replace/remove contra orçamento de caracteres Veja o exemplo JSON na Funcionalidade Principal 10
search_files (densificado) Densificação sem perdas — menos tokens por resultado, mesmas correspondências search_files --pattern "*.py"
read_file (notebooks) Extrai .ipynb/.docx/.xlsx para texto read_file notebook.ipynb
file.attach Anexos de arquivos no gateway remoto file.attach ./relatorio.pdf
Automation Blueprints Agendamento sem cron via templates nomeados hermes automation create "Resumo diário"
write_approval Portão booleano substituindo write_mode tri-estado para escritas de memória/skill Config: write_approval: true
session:compress Evento de ciclo de vida do plugin na compressão de sessão Hook de plugin
Plugins Hub (TUI) Sobreposição interativa de habilitar/desabilitar Sobreposição TUI

Suporte a Providers e Modelos

  • Novos modelos: z-ai/glm-5.2 (contexto verificado de 1M), anthropic/claude-fable-5, laguna-m.1 + nemotron-3-ultra, xAI Composer 2.5 no seletor OAuth
  • Seletor de modelos: Controle Refresh-Models para invalidar cache obsoleto; persistir modelos recomendados da Nous em disco; semear cache de catálogo em disco a partir do checkout na atualização; MiniMax-M3 reporta contexto real de 1M
  • Modelos adaptativos Anthropic: padrão para contrato de thinking moderno; nunca envia campo reasoning; roteia reasoning_effort para verbosidade; exige confirmação para seleções muito caras
  • Melhorias de autenticação: auto-detectar credencial OpenRouter do pool; manter contas do pool Codex OAuth distintas; resolver xAI OAuth entre perfis; honrar model.default_headers para providers personalizados
  • Bedrock: fallback para InvokeModel não-streaming quando IAM nega a variante de streaming
  • Ollama: padrão max_tokens=65536; expor recusas de modelo como content_filter

Melhorias na Arquitetura Central

Loop de agente e ferramentas:

  • search_files densificação sem perdas — menos tokens por resultado, mesmas correspondências
  • Removida ferramenta send_message acessível ao agente (consolidação)
  • Postura de contexto de codificação no CLI/TUI/desktop/ACP
  • Manipulação de context-file: limite de truncamento configurável + avisos; escalar para janela do modelo
  • Compressão: ancoragem temporal em resumos de compactação; elevar gatilho para 85% para gpt-5.5 no Codex OAuth
  • Middleware adaptativo (consumido pela telemetria do observador NeMo-Relay); direcionamento utilizável em meio de turno

Sessões, estado e multi-agente:

  • Limite máximo opcional de sessões; descartar sessões vazias ao sair do CLI
  • Metadados de proveniência de sessão ACP para rotação de compressão
  • Delegação: resolver pools de subagentes de endpoint personalizado por identidade de endpoint; remover timeout padrão de wall-clock
  • Kanban: auto-inscrição com gate de configuração no kanban_create; lock singleton global da máquina para dispatcher embutido; fixar conjuntos de ferramentas de perfil atribuídos para workers
  • Memória: Hindsight configurável retém escopos de observação; UX de configuração OpenViking; árvore de identidade com gate de gateway Honcho; ingestão em nível de sessão Supermemory

Plataformas de Mensagens

Novos canais:

  • iMessage via Photon Spectrum — OAuth device-code, nativo gRPC, sem webhook
  • WhatsApp Business Cloud API — oficial, sem processo de ponte
  • SimpleX — grupos, anexos nativos, agrupamento de texto, auto-aceitação
  • Raft — plugin de plataforma integrado com hooks de atividade

Núcleo do gateway e renderização:

  • Chamadas de ferramentas do terminal renderizadas como blocos de código bash nativos em plataformas markdown
  • Timestamps de mensagens opcionais para contexto do LLM
  • tool_progress_grouping configurável

Melhorias por plataforma:

Plataforma Melhoria
Telegram Mensagens rich text da Bot API 10.1 (sempre ativo); indicador de status Online/Offline; respostas longas em streaming não são mais cortadas; MarkdownV2 em edições de progresso
Discord Propagação role_authorized para DISCORD_ALLOWED_ROLES; recuperar de saídas de tarefas do gateway em runtime; parar de digitar após respostas
Slack Escopo de mensagens de canal de nível superior quando reply_in_thread=false; UX de aprovação em thread; anexos de vídeo disponíveis para agentes; API de plugin register_slack_action_handler
Signal/Email/Teams Anexos de documentos classificados corretamente; mídia respondida incluída
WhatsApp Reinicia processos de ponte obsoletos
Matrix Isolamento de contexto de sala
QQbot Correção de CPU-spin
Weixin Circuit breaker de rate-limit

CLI, TUI e Configuração

  • Slash command /version; /billing faturamento interativo no terminal
  • Mostrar tempo desde a última resposta final do agente na barra de status
  • Persistir prompts de aprovação/esclarecimento resolvidos no scrollback
  • Bloquear worktrees do Hermes para que processos concorrentes não conflitem
  • Clonar perfis de qualquer origem
  • Caminho estruturado de construção de perfil opcional no primeiro contato
  • Dicas de system-prompt por plataforma configuráveis
  • Notificações de memória/skill em background configuráveis
  • TUI: sobreposição interativa de habilitar/desabilitar Plugins Hub; nome da sessão na barra de título do terminal; quebrar comandos longos de aprovação em vez de truncar
  • TTS: prompts de persona Gemini + tags de áudio; tags de fala automática xAI + velocidade/streaming; Piper speaker_id; OGG para auto-TTS do Telegram

Sistema de Ferramentas, Skills e MCP

  • edição imagem-para-imagem no image_generate em todos os backends; auto-reduzir para limites de dimensão do provider
  • MCP: servidor MCP oficial do Unreal Engine 5.8 no catálogo; elicitation handler para que servidores MCP possam solicitar confirmação no meio da chamada de ferramenta (pagamento/OAuth) em qualquer superfície que possua a sessão; expor ferramentas MCP de conexão tardia entre turnos; keepalive ping para sessões HTTP com TTL curto; bloquear configurações stdio com formato suspeito de exfiltração; gate de capacidade tools/list
  • Skills: skill simplify-code (revisão e limpeza de código paralela com 3 agentes) com aplicação por nível de risco; encontrar e diff de skills integradas modificadas pelo usuário; skills de pagamento opcionais (Stripe Link, MPP, Projects); progresso de navegação ao vivo por origem
  • Plugins: instalar de subdiretório dentro de um repositório; aceitar URLs do GitHub coladas do navegador em hermes plugins install; evento de ciclo de vida session:compress + thread_id/chat_type no contexto do agente
  • Gate de aprovação de escrita de memória/skill (desativado por padrão) — booleano write_approval substitui write_mode tri-estado

Fleet, Relay e Automação

  • Managed scope — configuração e segredos fixados pelo administrador, imutáveis pelo usuário, a partir de /etc/hermes de propriedade do root
  • Multiplexar todos os perfis em um processo de gateway (opt-in)
  • CronScheduler plugável + provider de cron gerenciado Chronos (scale-to-zero)
  • Gateway-Gateway relay (fases 0-3): adaptador de relay + descritor de capacidade, autenticação de canal connector⇄gateway + inbound HTTP assinado, inbound somente WS, cliente de auto-provisionamento managed-boot

Docker, Nix e Instalador

Docker:

  • s6: detectar supervisor diretamente para reinicialização do gateway; registrar gateways de perfil sem auto-inicialização; limpar locks de log obsoletos
  • Otimizar tamanho da imagem (.dockerignore, remover dependências de dev, dividir camadas); pré-instalar dependências matrix; gateway supervisionado usa --replace; endurecer árvore de instalação hospedada

Nix:

  • Correções de build npm frio + fluxo de trabalho auto-fix-lockfiles
  • Dependências npm sem hash via importNpmLock
  • Atualizar npmDepsHash após fixação do Electron 40.10.2

Instalador:

  • Limpar índice git não mesclado antes do autostash
  • Escopo do carimbo de método de instalação para a árvore de código

Windows

  • Aba /chat do dashboard via ConPTY (win_pty_bridge)
  • Resolver host PowerShell em vez de powershell simples para instalação uv
  • Resolver powershell.exe por caminho absoluto para que a instalação do Desktop não trave
  • Reparar registro winget obsoleto + atualizar/mesclar PATH
  • Matar hermes antes de recriar venv para liberar lock _bcrypt.pyd
  • Ler HERMES_HOME do registro quando o env está obsoleto
  • Confiabilidade do watcher JOB-breakaway + sondas de status --deep
  • Decodificar saída de subprocesso como UTF-8

Segurança e Confiabilidade

  • Fail closed em adaptadores de gateway de política própria
  • Fail closed para autenticação de botão de aprovação no Slack/Feishu/Discord quando nenhuma allowlist está definida
  • Redigir segredos em dumps de depuração de requisições; reter metadados de host do status público
  • Bloquear configurações stdio do MCP com formato suspeito de exfiltração antes da sondagem
  • Fechar bypass de denylist de escape de shell + fail-closed em módulo de aprovação ausente
  • Limpar ambiente do operador antes de iniciar cua-driver MCP
  • Sanitizar env para subprocessos de script de job cron
  • Limitar comprimento/contagem de conteúdo do TodoStore
  • Escanear prompts de cron REST para paridade com ferramenta do agente
  • Atualizar urllib3 e PyJWT para limpar CVEs
  • Langfuse redige URIs de dados base64

Correções de Bugs Notáveis

  • Codificar em percentual componentes de URL não-ascii
  • Sanitizar : em consultas FTS5 para que buscas com dois-pontos não retornem vazio silenciosamente
  • Preservar conteúdo multimodal do usuário através da persistência de resiliência a crashes
  • Achatar conteúdo multimodal antes da sincronização com provider
  • Reentrar no loop de retry em 429 genuíno do Nous para que o fallback guard execute
  • Escopo de tags Nous para chamadas auxiliares do Nous
  • Cron: não fazer strict-scan de saída injetada por script em jobs sem skills
  • Cron: resolver provider “custom” por job para providers.custom
  • Cron: reparar propriedade do cron na reinicialização do container

(300+ issues fechadas nesta janela — a lista completa de correções por área é exaustiva.)


Revertido Nesta Janela

  • Skill html-artifact + fold sketch/architecture-diagram/concept-diagrams (#48899) — revertido (#49053)
  • Suporte a perfil por job de cron revertido (#43956)
  • Workaround patchPhase do Nix revertido (#42151)

Atualização

hermes update

Para novas instalações, visite o guia de instalação.


Changelog completo no GitHub

← Notas de versão