v0.18.0

Hermes Agent v0.18.0 — A Versão do Julgamento


Visão Geral

v0.18.0 — A Versão do Julgamento. Lançada em 1º de julho de 2026. ~1.720 commits · 998 PRs mesclados · 2.215 arquivos modificados · ~251.000 inserções · ~41.000 exclusões · 949 issues fechadas · 370+ colaboradores da comunidade.

A Versão do Julgamento representa uma mudança fundamental: o Hermes Agent aprendeu a provar seu trabalho com evidências em vez de apenas afirmar sucesso por feeling. O Mixture-of-Agents deixou de ser um modo de alternância e se tornou um sistema de modelo de primeira classe, onde o raciocínio de cada modelo de referência é visível e o agregador transmite ao vivo. O /goal ganhou completion contracts, e o /learn e o /journey tornaram o autoaperfeiçoamento visível e controlável. Nos bastidores, o Gateway implementou scale-to-zero com coordenação de drain para implantações em produção, e o aplicativo desktop ganhou um verdadeiro cockpit de codificação com Projetos de primeira classe.

E há também a varredura completa: a equipe resolveu todas as issues P0 e P1 em todo o repositório em doze dias. Zero P0s abertas. Zero P1s abertas. Esta é a nova linha de base.


A Varredura Completa de P0/P1

Prioridade Issues fechadas PRs mesclados
P0 (crítica) 3 8
P1 (alta) 493 188
Total 496 196

São ~692 itens de prioridade máxima resolvidos. A última P0 a cair: o bug de sibling-fork com compressão protegida por interrupção (#56391, corrigido por #56416), fechado em uma maratona noturna pouco antes do corte da release.

Menção especial para @kshitijk4poor, que liderou a onda de confiabilidade do cron, a correção do fork de compressão, o endurecimento contra exfiltração de credenciais e uma grande parte dos fechamentos de P1.

Manteremos P0/P1 em zero daqui para frente.


Principais Funcionalidades

1. Mixture-of-Agents (MoA) — Seletor de Modelos de Primeira Classe

O MoA deixou de ser um toggle de modo e se tornou parte de primeira classe do sistema de modelos. Cada preset nomeado de MoA agora aparece como um modelo selecionável sob o provider moa — lado a lado com Claude, GPT e Grok em todos os seletores de modelo (CLI, TUI, desktop, gateway).

Selecione um ensemble como qualquer outro modelo:

# Na CLI, alterne para um preset MoA através do seletor de modelos
/hermes model:moa/my-council

# /moa agora é um atalho one-shot — executa pelo preset padrão, restaura o modelo anterior
/moa Revise esta decisão de arquitetura

O raciocínio de cada modelo de referência visível como blocos rotulados. Na CLI, TUI e desktop, a saída completa de cada modelo de referência é renderizada em seu próprio bloco antes que o agregador sintetize a resposta final. Você pode ler o que o GPT-5 pensou, o que o Claude pensou e o que o Grok pensou — e então assistir ao comitê deliberar.

A resposta do agregador é transmitida ao vivo. Chega de longos silêncios seguidos por uma parede de texto. A resposta final chega token por token em todas as três superfícies.

Configuração:

# hermes.config.yaml
moa:
  presets:
    my-council:
      references:
        - provider: anthropic
          model: claude-sonnet-4-20250514
          role: reference
        - provider: openai
          model: gpt-5
          role: reference
        - provider: xai
          model: grok-3
          role: reference
      aggregator:
        provider: openai
        model: gpt-5
  save_traces: true  # persiste rastros completos dos turnos em JSONL para debugging/avaliação

Como funciona nos bastidores:

  • As referências veem o estado completo das ferramentas e disparam a cada resposta do usuário/ferramenta, não apenas no prompt inicial
  • Referências consultivas terminam em um turno do usuário e recebem um system prompt com papel de referência
  • Modelos de referência e agregador são chamados pela rota real do seu provider — sem atalhos
  • Janela de contexto resolvida a partir do agregador, não do padrão de 256K
  • Tarefas auxiliares são resolvidas automaticamente para o agregador
  • Provider virtual bloqueado como slot de referência/agregador — sem ensembles recursivos
  • Tolerante a configuração de preset editada manualmente — não quebra com pequenos problemas de formatação
  • Identidade de provider dos slots MoA unificada no único ponto de estrangulamento call_llm
  • Resultados do HermesBench documentados para referência

2. Verificação — O Agente Prova Seu Trabalho

O Hermes agora registra evidências de verificação para trabalho de codificação e decide a conclusão executando de fato as verificações do seu projeto — não apenas afirmando sucesso.

/goal Completion Contracts:

# Defina uma meta com um completion contract
/goal "Corrija a condição de corrida no handler de autenticação"
# O Hermes solicita que você defina "pronto":
# "pronto = testes unitários passam + sem erros de lint + suíte concorrente passa 10x sem falha"

# O loop de standing-goal julga com base em evidências, não na palavra do modelo.
# Ele não para até que o contrato seja satisfeito.
# Estacione o loop de goal em um processo em background em vez de cutucar o agente novamente
/goal wait 12345

Registro de Evidências de Verificação:

# hermes.config.yaml
coding_context:
  verify_on_stop: auto     # detecta automaticamente o tipo de projeto, executa as verificações apropriadas
  pre_verify:              # hooks de verificação personalizados executados antes de declarar conclusão
    - command: "npm run test -- --coverage"
    - command: "npm run lint"
    - command: "npm run typecheck"

Detalhes de implementação:

  • Registro de evidências com escopo de perfil detectado automaticamente por agent.coding_context
  • Gateway expõe o status de verificação em GET /api/verification/status
  • O hook pre_verify aceita scripts arbitrários como portões de verificação
  • Loop de parada de verificação com suporte a scripts ad-hoc
  • verify-on-stop vem DESLIGADO por padrão com migração única v32 — pula edições apenas de documentação, desabilitado para superfícies de mensagens
  • Padrão “auto” sensível à superfície restaurado (interativo vs. não interativo)

3. /learn — Transforme Qualquer Coisa em uma Skill Reutilizável

Execute /learn <qualquer coisa> e o Hermes destila uma skill reutilizável a partir do que você apontar. Ele escreve seguindo os padrões do CONTRIBUTING.md automaticamente.

# Aprenda de um diretório — package.json, scripts, README, tudo analisado
/learn ./meus-scripts-de-deploy

# Aprenda de uma URL — documentação, referência de API, post de blog
/learn https://docs.exemplo.com/api-reference

# Aprenda do fluxo de trabalho que você acabou de executar — Hermes observa os últimos N turnos
/learn workflow  # detecta automaticamente o último padrão de fluxo de trabalho

O que acontece nos bastidores:

  • Analisa a estrutura (conteúdo do diretório, conteúdo da URL ou histórico de conversa)
  • Identifica padrões reutilizáveis e procedimentos específicos do domínio
  • Gera um arquivo de skill seguindo os padrões do CONTRIBUTING.md do seu projeto
  • Respeita requisitos mistos — se o CONTRIBUTING.md especificar um formato particular, esse formato é usado
  • Na próxima vez que você precisar desse fluxo de trabalho, ele já estará na biblioteca de skills

Ferramentas de skill adicionais nesta release:

  • cloudflare-temporary-deploy — skill opcional para implantações rápidas no Cloudflare
  • creative-ideation v2.1.0 — biblioteca de métodos criativos

4. /journey — Uma Linha do Tempo Interativa de Tudo que o Hermes Sabe

A CLI e a TUI ganharam o /journey — uma linha do tempo de aprendizado com memórias e skills acumuladas, com edição/exclusão no local. Combine-o com o novo gráfico de memória do desktop (uma linha do tempo radial interativa de cima para baixo com memórias e skills ao longo do tempo) e, pela primeira vez, você pode realmente ver o que seu agente sabe, observá-lo crescer e podar o que estiver errado.

/journey
# Exibe uma linha do tempo navegável de todas as memórias e skills
# Teclas de seta: navegar
# Enter: expandir detalhes
# e: editar no local
# d: excluir

Gráfico de memória do desktop: Uma visualização de linha do tempo radial (visão de cima para baixo, nós interativos) mostrando memórias e skills agrupadas por período de tempo. Interativo — percorra a linha do tempo, dê zoom em períodos específicos, toque em um nó para ver o conteúdo completo da memória.

5. Fan-Out em Background — Delegação Paralela de Subagentes

delegate_task agora pode disparar múltiplos subagentes que rodam todos em background — seu chat nunca é bloqueado, e quando todos terminam, os resultados voltam como um único turno consolidado.

# Delegação de pesquisa paralela
/delegate_task "Pesquise os concorrentes A, B, C em paralelo — liste preços, funcionalidades e financiamento recente"

# O que acontece:
# 1. Três subagentes em background são iniciados simultaneamente
# 2. A barra de status da CLI/TUI mostra a contagem de agentes em background ativos
# 3. Seu chat principal permanece responsivo — continue trabalhando em outra coisa
# 4. Quando todos os três terminam, um resumo consolidado chega

Infraestrutura:

  • Barra de status da CLI + TUI acompanha subagentes em background em tempo real
  • Indicador tranquilo de “vai retomar” quando há trabalho em background em andamento
  • Um retorno consolidado — sem necessidade de monitorar agentes individuais

6. Aplicativo Desktop — Projetos de Codificação de Primeira Classe

O aplicativo desktop ganhou Projetos reais por perfil, sustentados por um modelo projeto → repo → lane. Seu trabalho de codificação é organizado em projetos que o agente entende e sobre os quais pode agir.

Anatomia do projeto:

Projeto "auth-service"
  ├── Repo: github.com/minhaorg/auth-service
  │     ├── Lane: main (branch de trabalho atual)
  │     ├── Lane: feat/oauth-refactor (worktree)
  │     └── Lane: fix/race-condition (worktree)
  └── Ferramentas: ferramentas de projeto voltadas ao agente (lint, teste, build)

Funcionalidades do cockpit de codificação:

  • Barra lateral: lista de projetos por perfil com painel de codificação
  • Painel de revisão: status do git, visualização de diff, gerenciamento de worktrees
  • Seletor de pastas com reconhecimento de gateway remoto: funciona com gateways hospedados
  • Cockpit Git: status inline, revisão de diff estilo PR, criar/trocar/excluir worktrees

Painel multi-terminal:

  • Terminais do agente somente leitura — observe o que o agente está fazendo
  • Abas de terminal e scrollback persistem e restauram entre reinicializações

Diffs de arquivo estilo PR no chat:

  • Alterações de arquivo renderizadas como diffs lado a lado ou unificados
  • Editor local no aplicativo para o painel de pré-visualização de arquivos
  • Embeds ricos inline, diagramas e alertas no markdown do assistente

Melhorias de UX:

  • Painel de linha do tempo da conversa para navegar em threads longas
  • Popover de detalhamento de uso de contexto — veja exatamente o que está consumindo sua janela de contexto
  • Transcrição de espectador para janelas de observação de subagentes (somente leitura)
  • Compositor flutuante arrastável — destaque a caixa de entrada para sua própria janela
  • Toggle de TTS automático no compositor — leia as respostas em voz alta
  • Persistência do estado da janela — tamanho, posição, maximizado lembrados entre inicializações
  • Prompt de esclarecimento redesenhado
  • Primitiva de Painel de sobreposição compartilhada para gerenciamento de cron/perfis/agentes

Pets de Desktop:

  • Pet opcional com comportamento de roaming mais calmo e realista
  • Escala com Alt+roda do mouse — nunca corta o pet
  • Fluxo de eclosão frame-perfect com renderização chroma segura para CPU
  • Sobreposição pop-out com notificações

Onda de refatoração:

  • Compositor decomposto em hooks de engine isolados
  • Engines de branch/esc/url/placeholder/popout extraídas como módulos separados
  • Arquivos monolíticos divididos: thread.tsx, sidebar/index.tsx, overlay de onboarding, use-prompt-actions todos divididos em módulos focados
  • Camada WebSocket compartilhada desacoplando desktop do dashboard (hermes serve)
  • Performance: renderização de resultados de ferramentas com limite evita que execuções grandes de /learn congelem; troca rápida de sessão sob carga

7. Gateway — Scale-to-Zero e Coordenação de Drain

O gateway agora pode ficar dormente quando ocioso e se aquietar de forma limpa antes de reinicialização, migração ou atualização automática — sem interromper conversas em andamento.

Fluxo de scale-to-zero:

# Inicie o gateway com scale-to-zero habilitado
hermes serve --scale-to-zero --drain-timeout 30s

# O que acontece:
# 1. O Gateway monitora conexões ativas
# 2. Após período de inatividade (configurável), transita para dormente
# 3. Em nova conexão, desperta de forma transparente
# 4. Custo zero de computação enquanto ocioso

Coordenação de drain (desligamento seguro):

# Drain gracioso antes de manutenção/reinicialização
hermes serve --drain

# Conversas em andamento concluem naturalmente
# Novas conexões são rejeitadas com sinal de retry-after
# Transcrições persistidas no timeout de drain
# Leitura de ocupado/ocioso para orquestração de ciclo de vida

Endurecimento para produção:

  • restart_drain_timeout padrão definido como 0 para eliminar loops de crash do systemd
  • Auto-recuperação de estado draining/degraded encalhado
  • Suprimir broadcast de desligamento do home-channel em drains sinalizados
  • Endurecer o portão de dormência contra plataformas placeholder desabilitadas

8. Relay (Fase 5 / 6)

A infraestrutura de relay amadureceu significativamente para implantações multi-plataforma e multi-agente:

  • Primitiva Wake (lado do gateway) — relay remoto pode despertar um gateway dormente
  • Primitiva going-idle / buffered-flip — handoff limpo durante transições de estado
  • passthrough_forward sobre WebSocket — proxy leve para mensagens retransmitidas
  • Identidade multi-plataforma por agente — um agente, múltiplas plataformas de mensagens, identidade unificada
  • Egress por frame — controle refinado sobre quais mensagens saem por qual canal
  • Instance id estável encaminhado no self-provision para rastreamento confiável
  • Política de relevância declarada ao conector — filtra ruído na camada de relay
  • Autorização baseada em entrega para eventos retransmitidos (autorizar por entrega, não por source.platform)
  • Adoção da chave wire scope_id — elimina terminologia de escopo específica de plataforma

9. Google Vertex AI — Provider de Primeira Classe

O Vertex AI agora é um provider de primeira classe para modelos Gemini sobre o endpoint compatível com OpenAI do Vertex. O avanço principal: o Hermes gera e atualiza automaticamente tokens OAuth2 de curta duração a partir do JSON da sua conta de serviço ou das Application Default Credentials — sem necessidade de chave de API estática.

# hermes.config.yaml
providers:
  - name: vertex-gemini
    provider: vertex
    credentials: /caminho/para/service-account.json
    model: gemini-2.5-pro
    region: us-central1

  # Ou use Application Default Credentials (ADC) — sem necessidade de caminho de arquivo
  - name: vertex-gemini-adc
    provider: vertex
    model: gemini-2.5-flash
    region: europe-west4

Por que isso importa: Configurações comuns de custom provider com Vertex sempre morriam no meio da sessão porque os tokens expiram em ~1 hora. O Hermes agora gerencia todo o ciclo de vida OAuth2 — geração, atualização e repetição — de forma transparente. Aponte para sua conta de serviço e simplesmente funciona.

Recupera e moderniza o PR original #8427 de @slawt.

10. Plataformas de Mensagens — Atualizações Importantes

Continuações de Cron:

  • Jobs de cron agora suportam continuação com preferência por thread com fallback para espelhamento em DM
  • Entrega de cron continuável plana no canal para Slack
  • Verificação de gateway em execução alerta na criação/listagem de cron se o gateway não estiver ativo

Atualizações específicas por plataforma:

Plataforma Funcionalidade
Telegram Menu de comandos configurável + limite padrão elevado para que skills permaneçam visíveis; controle separado de pré-visualizações rich de rascunhos; drenagem do pool geral de envio no timeout antes de retentar
Slack Renderização opt-in com Block Kit para mensagens do agente; flag --no-assistant para geração de manifesto
Discord Renderização de raciocínio como subtexto via prefixo -#; display.reasoning_style configurável
WhatsApp Entrega nativa de mídia (send_video/send_voice/send_document) via ponte Baileys
Teams Suporte nativo a send_video/send_voice/send_document
Signal Remux de notas de voz AAC + formatação markdown compartilhada
iMessage Sidecar Photon atualizado para spectrum-ts v8 com correlação de tapback
Raft Assistente de configuração do gateway para novas implantações

Migração de adaptadores: Os adaptadores do Slack, DingTalk, WhatsApp, Matrix, Feishu, Telegram, WeCom, Email e SMS foram todos migrados para o formato bundled, para carregamento mais rápido e melhor versionamento.


Novas Ferramentas e Comandos Integrados

Ferramenta / Comando Descrição Uso
web_extract Trunca e armazena conteúdo web (substitui sumarização por LLM, mais barato e rápido) web_extract https://exemplo.com
/reasoning full Tokens de pensamento sem limite — remove o teto do orçamento de raciocínio para análises profundas /reasoning full e então sua consulta
llm.oneshot Chamada LLM one-shot via Gateway RPC — disparar e esquecer hermes rpc llm.oneshot '{"prompt": "..."}'
project.facts Expõe fatos do projeto de coding-context via Gateway RPC hermes rpc project.facts
/timestamps Alterna exibição de timestamps nas mensagens do histórico de chat /timestamps
/history Visualização de histórico combinável com busca e filtros /history palavra-chave
/prompt Componha no $EDITOR — escreva o prompt completo em markdown, salve e enfileire /prompt
/journey Linha do tempo interativa de memórias/skills com edição/exclusão no local /journey
/learn Destila skills reutilizáveis de diretório, URL ou fluxo de trabalho /learn ./caminho
/moa Prompt MoA one-shot pelo preset padrão /moa <consulta>
/goal wait <pid> Estaciona o loop de goal em um processo em background /goal wait 12345
ctx.profile_name Acesso a perfil independente de sessão em plugins ctx.profile_name
Blank Slate Modo de configuração mínima do agente — opt-in para tudo Config: setup: blank_slate
cloudflare-temporary-deploy Skill opcional para implantações rápidas no Cloudflare Instalação de skill
creative-ideation v2.1.0 Biblioteca de métodos criativos expandida Instalação de skill

Melhorias

Agente Principal e Ferramentas

  • Expansão concorrente de referências @: múltiplas referências @file e @url agora são resolvidas em paralelo em vez de serialmente — significativamente mais rápido para prompts com múltiplas referências
  • Rótulos de ferramentas amigáveis: todas as ferramentas integradas agora têm descrições legíveis em inglês, reduzindo a curva de aprendizado
  • HERMES_WRITE_SAFE_ROOT: suporte a múltiplos diretórios de escrita permitidos — restringe escritas de arquivo do agente a caminhos aprovados
  • Captura opt-in de corpo HTTP/WS: registra corpos de requisição/resposta em um gui_bodies.log isolado (excluído de compartilhamento, apenas opt-in)
  • Piso de stale-timeout por modelo de raciocínio: detecção de timeout separada para chamadas LLM com streaming vs. sem streaming, prevenindo falsos positivos
  • Escalonamento SIGTERM→SIGKILL: ao encerrar host-pid após período de graça, escalona para garantir limpeza

Compressão e Sessões

  • Compactação in-place: compacta uma única sessão sem criar um novo id; padrão alterado para true com correção de guarda
  • Expansão de backup: snapshots pré-atualização agora incluem projects.db e quadros kanban para preservação completa do estado

Providers e Modelos

  • Krea disponível via gateway gerenciado de assinatura Nous
  • Z.AI seletor de endpoint (Global/China/Coding Plan) para roteamento com reconhecimento de região
  • Ollama-cloud conexão de reasoning_effort
  • Removidos providers OAuth google-gemini-cli e google-antigravity (consolidação)
  • Respeita override de env NOUS_INFERENCE_BASE_URL para Nous OAuth
  • Mantém autenticação Nous fresca para agentes de dashboard/gateway ociosos (prevê expiração de sessão durante inatividade)

Kanban

  • Hooks de plugin de ciclo de vida de tarefa: eventos claimed, completed, blocked
  • Razões de bloqueio tipadas com quebrador de loop de desbloqueio — previne ciclos infinitos de bloqueio/desbloqueio
  • Carimbo de frescor de handoff — rastreia quando a propriedade da tarefa foi transferida pela última vez

LSP

  • Servidor de linguagem PowerShellEditorServices adicionado — diagnósticos PowerShell agora disponíveis
  • API mem0 v3 + modo OSS + ferramentas de update/delete para gerenciamento de memória

Web Dashboard

  • Redirecionamento SSO auto-iniciado ao carregar sem autenticação
  • Orientação interativa de configuração de autenticação em bind sem loopback e sem provider
  • OIDC de cliente confidencial (client_secret) para provedores de identidade auto-hospedados
  • Catálogo de chaves de API: todas as chaves de provedores de memória listadas em OPTIONAL_ENV_VARS
  • Chaves .env personalizadas: liste e adicione variáveis de ambiente arbitrárias na página Keys
  • Campos de execução de cron expostos para monitoramento
  • Gerenciamento de backup: importar/criar/baixar pela interface Web
  • Offload de PTY: operações de spawn/close movidas para fora do event loop para evitar bloqueios

Performance

  • Otimização de cold start: adaptadores de plataforma do gateway agora carregados sob demanda (lazy-loaded); manifestos de config e plugin analisados com CSafeLoader (libyaml) em vez de YAML em Python puro
  • Contenção de write-lock do FTS5: segmentos mesclados e indexados para reduzir contenção de lock do banco de dados durante escritas concorrentes
  • Listagem de perfis: mapa de alias em passagem única + cache de contagem de skills + offload do event loop para list_profiles — significativamente mais rápido em sistemas com muitos perfis
  • Servidor da API do Gateway: limite configurável de execuções concorrentes previne cenários de DoS sob carga

Segurança e Confiabilidade

Endurecimento da Superfície de Ataque

  • Superfície de ataque de persistência de config MCP bloqueada — previne persistência maliciosa de skills entre sessões
  • Exfiltração de credenciais via base_url do Cron bloqueada — jobs de cron não podem mais sobrescrever URLs base de providers para interceptar credenciais
  • Sentinela não reutilizável para segredos de prefixo em leituras de arquivo — padrões específicos que poderiam vazar segredos são capturados e rejeitados
  • Redação de token xapp- do Slack — tokens de nível de aplicação automaticamente redigidos de logs e diagnósticos
  • Piso de cloud-metadata do navegador aplicado em todos os backends CDP (mesmo não locais)
  • Re-verificação de guarda de rede privada após navegação — previne bypass via redirecionamentos
  • /resume e /sessions com escopo na origem do chamador — previne ataques de Insecure Direct Object Reference (IDOR)
  • Piso de CVE do aiohttp definido para 3.14.1 em todos os caminhos lazy de mensagens com guarda contra deriva de pin

Onda de Confiabilidade do Cron

  • Falha fechada quando o provider de um job não fixado deriva — sem fallbacks silenciosos
  • Jobs com graça perdida executam uma vez em vez de adiar para sempre — previne loops infinitos de recuperação
  • Sobrevivência do ticker em BaseException + status com heartbeat — cron não morre silenciosamente
  • Servidores MCP sobrepostos aos conjuntos de ferramentas por job — cada job de cron recebe as ferramentas corretas
  • Guarda de caminho model-tool + quebrador de loop de auto-resume — previne cadeias de ferramentas descontroladas

Confiabilidade no Windows

  • Suprime flashes de console durante operações do gateway
  • Endurece reinicializações do gateway contra casos limite
  • Prefere shim npm do cmd no fallback do PATH
  • Re-inicia o gateway sem janela após atualização da GUI
  • Prefere node gerenciado para integrações WhatsApp/desktop

Reversões (dentro da janela)

  • Armazenamento de jobs de cron retornou para por perfil (reverte armazenamento centralizado de #32117 + #50993)
  • Clonagem de auth.json desabilitada — duplicar concessões OAuth causa revogação entre irmãos
  • PRs de popup de terminal do Windows revertidos para reavaliação de estabilidade
  • Toggle prompt_caching.enabled recuado pendente de reavaliação

Breaking Changes

  • verify-on-stop vem DESLIGADO por padrão: migração única v32; pula edições apenas de documentação; desabilitado para superfícies de mensagens. Para habilitar:
coding_context:
  verify_on_stop: auto
  • Removidos providers OAuth google-gemini-cli e google-antigravity — migre para o provider Vertex AI
  • Migração de adaptadores: adaptadores de plataforma de mensagens agora são bundled — caminhos de adaptadores personalizados podem precisar de atualizações

Atualização

hermes update

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


Changelog completo no GitHub

← Notas de versão