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_verifyaceita 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 Cloudflarecreative-ideationv2.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-actionstodos 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
/learncongelem; 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_timeoutpadrã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_forwardsobre 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 |
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
@filee@urlagora 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.logisolado (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
truecom correção de guarda - Expansão de backup: snapshots pré-atualização agora incluem
projects.dbe 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_URLpara 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
.envpersonalizadas: 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_urldo 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
/resumee/sessionscom escopo na origem do chamador — previne ataques de Insecure Direct Object Reference (IDOR)- Piso de CVE do
aiohttpdefinido 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.jsondesabilitada — 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.enabledrecuado 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.
← Notas de versão