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; roteiareasoning_effortpara 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_headerspara providers personalizados - Bedrock: fallback para
InvokeModelnão-streaming quando IAM nega a variante de streaming - Ollama: padrão
max_tokens=65536; expor recusas de modelo comocontent_filter
Melhorias na Arquitetura Central
Loop de agente e ferramentas:
search_filesdensificação sem perdas — menos tokens por resultado, mesmas correspondências- Removida ferramenta
send_messageacessí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_groupingconfigurá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 |
| 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;/billingfaturamento 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_generateem 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 vidasession:compress+thread_id/chat_typeno contexto do agente - Gate de aprovação de escrita de memória/skill (desativado por padrão) — booleano
write_approvalsubstituiwrite_modetri-estado
Fleet, Relay e Automação
- Managed scope — configuração e segredos fixados pelo administrador, imutáveis pelo usuário, a partir de
/etc/hermesde 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
/chatdo dashboard via ConPTY (win_pty_bridge) - Resolver host PowerShell em vez de
powershellsimples para instalação uv - Resolver
powershell.exepor 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.
← Notas de versão