v0.7.0

Hermes Agent v0.7.0 — O Release da Resiliência


Visão Geral

v0.7.0 — O Release da Resiliência. Lançada em 3 de abril de 2026. 168 PRs mesclados · 46 issues resolvidas · centenas de arquivos alterados.

A v0.7.0 tem um único foco — resiliência. Nada de funcionalidades chamativas. Apenas respostas sistemáticas às perguntas que toda implantação real de agentes enfrenta: O que acontece quando sua chave de API atinge o limite de cota? Quando o navegador é detectado? Quando o backend de memória não é flexível o suficiente? Quando o Gateway trava sob concorrência? Quando secrets vazam pela saída do LLM?

A resposta em todos os casos: o Hermes agora resolve.


Principais Funcionalidades

1. Interface de Provedores de Memória Plugáveis

O sistema de memória foi refatorado de uma única implementação embutida para uma arquitetura de plugins extensível. Backends de memória de terceiros — Honcho, bancos de dados vetoriais, armazenamento customizado — implementam uma interface ABC simples e se registram através do sistema de plugins. A memória embutida é o provedor padrão; o Honcho foi restaurado à paridade total de funcionalidades como o plugin de referência, com resolução de host/peer com escopo de perfil.

Escolha o backend de memória certo para cada tarefa: embutido para desenvolvimento e testes, Honcho para armazenamento persistente em produção, ou conecte seu próprio banco de dados vetorial para memória semântica.

(#4623, #4616, #4355)

2. Pool de Credenciais do Mesmo Provedor — Adeus Rate Limits

Configure múltiplas chaves de API para o mesmo provedor. O sistema distribui automaticamente a carga entre as chaves usando uma estratégia least_used thread-safe. Quando uma chave retorna 401, o sistema rotaciona para a próxima credencial do pool — sem necessidade de intervenção manual.

# config.yaml
credential_pool:
  openai:
    - sk-key-1
    - sk-key-2
    - sk-key-3

Ative pelo assistente de configuração ou editando credential_pool diretamente no config. Para usuários intensivos, isso virtualmente elimina interrupções de fluxo de trabalho por esgotamento de cota de uma única chave.

(#4188, #4300, #4361)

3. Backend de Navegador Anti-Detecção Camofox

Um novo backend de navegador local baseado no Camoufox (Camouflage + Firefox) para navegação furtiva. Para cenários de automação web que precisam contornar detecção anti-bot — scraping, preenchimento de formulários, testes automatizados — o Camofox é significativamente mais difícil de ser detectado pelos sites alvo do que o Chromium headless tradicional.

Principais capacidades:

  • Sessões persistentes: estado do navegador preservado entre chamadas
  • Descoberta de URL VNC: expõe automaticamente uma conexão VNC para depuração visual
  • Bypass de SSRF para backends locais: acesso configurável a endereços internos
  • Instalação com um comando: hermes tools install camofox
# Instalar o Camofox
hermes tools install camofox

# Configurar o Camofox como backend de navegador
hermes config set browser.backend camofox

(#4008, #4419, #4292)

4. Pré-Visualização Inline de Diffs

Operações de escrita e patch em arquivos agora mostram diffs inline diretamente no feed de atividade de ferramentas. Antes que o agente passe para o próximo passo, você vê exatamente o que mudou — adições e remoções destacadas, linha por linha.

É mais rápido do que executar git diff manualmente ou reverter para comparar. Tudo é renderizado em tempo real no seu terminal.

(#4411, #4423)

5. Continuidade de Sessão do API Server e Streaming de Ferramentas

O API Server (usado pelo Open WebUI e outras integrações frontend) recebe duas melhorias críticas:

  • Streaming em tempo real do progresso das ferramentas: eventos intermediários de execução de ferramentas são transmitidos via SSE para os clientes
  • Header X-Hermes-Session-Id: mantém a mesma sessão através de múltiplas requisições HTTP, com dados de sessão persistidos no SessionDB compartilhado

A experiência do Web UI agora se aproxima da paridade com o CLI — você pode ver em tempo real quais ferramentas o agente está chamando e onde ele está no fluxo de execução.

(#4092, #4478, #4802)

6. ACP: Servidores MCP Fornecidos pelo Cliente

Integrações com editores (VS Code, Zed, JetBrains) via ACP (Agent Communication Protocol) agora podem registrar seus servidores MCP diretamente como ferramentas do agente. O ecossistema MCP do seu editor — análise de código, capacidades LSP, indexação de projetos — flui perfeitamente para a chamada de ferramentas do Hermes.

(#4705)

7. Endurecimento do Gateway e Bloqueio de Exfiltração de Secrets

O Gateway (hub de plataformas de mensageria) recebeu uma grande atualização de estabilidade, combinada com endurecimento sistêmico de segurança.

Correções de estabilidade do Gateway:

  • Correções de race condition para perda de mídia de foto, controle de flood e sessões travadas
  • Correção de roteamento de aprovação: /approve e /deny agora roteiam corretamente quando o agente está bloqueado aguardando aprovação

Bloqueio de exfiltração de secrets:

  • URLs do navegador e respostas do LLM são automaticamente escaneados em busca de padrões de secrets (chaves de API, tokens, senhas)
  • Bloqueia exfiltração via codificação de URL, codificação Base64 ou vetores de prompt injection
  • A saída do sandbox execute_code é automaticamente redigida
  • Proteção de diretório de credenciais estendida para .docker, .azure, .config/gh

(#4727, #4750, #4483, #4360, #4305)


Agente Principal e Arquitetura

Suporte a Provedores e Modelos

  • Pool de credenciais do mesmo provedor — rotação automática multi-key com least_used + failover em 401
  • Pool de credenciais preservado através de roteamento inteligente — estado do pool sobrevive a trocas de provedor de fallback, adia fallback prematuro em 429
  • Restauração do runtime primário por turno — após fallback, restaura automaticamente o provedor primário no próximo turno com recuperação de transporte
  • Role developer para GPT-5 / Codex — usa a role de mensagem de sistema recomendada pela OpenAI para modelos mais recentes
  • Orientação operacional para modelos Google — Gemini e Gemma recebem orientação de prompting específica do provedor
  • Tratamento de 429 em contexto longo do Anthropic — reduz automaticamente o contexto para 200K ao atingir limites de tier
  • Novos modelos: Claude-sonnet-4.6 (listas de modelos OpenRouter / Nous), Qwen 3.6 Plus Preview, MiniMax M2.7
  • Detecção automática de comprimento de contexto do Fireworks
  • Correção do endpoint internacional do DashScope — provedor Alibaba não está mais hardcoded para o endereço errado
  • context_length de provedor customizado respeitado na compressão
  • Chaves não-sk-ant tratadas como chaves de API regulares, não como tokens OAuth
  • Detecção automática de modelos por sonda do servidor na configuração de endpoint customizado
  • Config.yaml como fonte única de verdade para URLs de endpoint — chega de conflitos entre env var e config.yaml
  • Assistente de configuração não sobrescreve mais configurações de endpoint customizado
  • Seleção de provedor unificada no assistente com hermes model — caminho de código único

Loop do Agente e Conversação

  • Preservar assinaturas de blocos de thinking do Anthropic entre turnos de uso de ferramentas
  • Classificar respostas vazias apenas de thinking antes de tentar novamente — evita loops infinitos de retentativa em modelos que produzem blocos de thinking sem conteúdo
  • Prevenir espiral de morte por compressão por desconexões de API — o loop onde a compressão dispara, falha e comprime novamente agora é detectado e interrompido
  • Compressão durante a execução persistida na sessão do gateway
  • Mensagens de erro de contexto excedido agora incluem orientação acionável
  • Remover tags </think> órfãs das respostas voltadas ao usuário
  • Endurecimento de preflight de resposta do Codex e tratamento de erros de stream
  • Fallbacks determinísticos de call_id — chega de UUIDs aleatórios, preservando consistência do cache de prompt
  • Spam de aviso de pressão de contexto evitado após compressão
  • AsyncOpenAI criado de forma lazy — evita erros de event loop fechado no compressor de trajetória

Memória e Sessões

  • Paridade total de integração do Honcho restaurada como plugin de provedor de memória de referência (por @erosika)
  • Honcho com escopo de perfil para resolução de host e peer
  • Estado de flush de memória persistido — evita re-flushes redundantes na reinicialização do gateway
  • Ferramentas do provedor de memória roteadas através do caminho de execução sequencial
  • Config do Honcho gravado em caminho local à instância para isolamento de perfil
  • Sessões do API Server persistidas no SessionDB compartilhado
  • Uso de tokens persistido para sessões não-CLI
  • Termos com ponto entre aspas em consultas FTS5 — corrige busca de sessões para termos contendo pontos (ex.: números de versão)

Plataformas de Mensageria (Gateway)

Núcleo do Gateway

  • Correções de race condition — perda de mídia de foto, controle de flood, sessões travadas, problemas de configuração de STT resolvidos em uma única atualização de endurecimento
  • Correção de roteamento de aprovação/approve e /deny roteiam corretamente quando o agente está bloqueado aguardando, em vez de serem engolidos como interrupções
  • Retomar agente após /approve — resultado da ferramenta não é mais perdido ao executar comandos bloqueados
  • Sessões de thread DM semeadas com transcrição pai para preservar o contexto
  • Slash commands com reconhecimento de skills — gateway registra dinamicamente skills instaladas como slash commands com lista paginada /commands
  • Skills desabilitadas por plataforma respeitadas no menu do Telegram e no dispatch do gateway
  • Remover avisos de compressão voltados ao usuário — fluxo de mensagens mais limpo
  • Flags -v/-q do serviço gateway conectadas ao logging stderr
  • HERMES_HOME remapeado para o usuário alvo na unidade de serviço systemd
  • Respeitar valor padrão para config booleana inválida
  • /update usa setsid em vez de systemd-run — evita problemas de permissão do systemd
  • “Inicializando agente…” exibido na primeira mensagem para melhor UX
  • Permitir execução do serviço gateway como root — suporte a ambientes LXC/container

Telegram

  • Limite de 32 caracteres em nomes de comando + prevenção de colisão
  • Ordem de prioridade imposta no menu — core > plugins > skills
  • Limitado a 50 comandos — API do Telegram rejeita acima de ~60
  • Pular texto vazio/espaço em branco para evitar erros 400
  • Testes E2E do gateway (por @pefontana)

Discord

  • UI de aprovação com botões — registra /approve e /deny como slash commands nativos com botões interativos
  • Reações configuráveis — opção discord.reactions para controlar reações de processamento de mensagens
  • Pular reações e auto-threading para usuários não autorizados

Slack

  • Responder na thread — opção de config slack.reply_in_thread, resolvendo uma solicitação da comunidade com um ano de espera

WhatsApp

  • Impor require_mention em chats de grupo — responde apenas quando mencionado explicitamente

Webhook

  • Correções de suporte à plataforma — pular prompt de canal home, desabilitar progresso de ferramentas para adaptadores webhook

Matrix

  • Endurecimento de descriptografia E2EE — solicitar chaves faltantes, auto-confiar em dispositivos, tentar novamente eventos em buffer

CLI e Experiência do Usuário

Novos Slash Commands

Comando Descrição
/yolo Alternar aprovações de comandos perigosos — pula todas as confirmações da sessão
/btw Pergunta lateral efêmera (By The Way) — não afeta o contexto da conversa principal
/profile Mostra informações do perfil ativo sem sair da sessão de chat
# Modo YOLO: pula todos os prompts de aprovação
/yolo

# Fazer uma pergunta não relacionada sem poluir o contexto
/btw qual algoritmo esta função usa?

# Verificação rápida do perfil
/profile

CLI Interativo

  • Pré-visualização inline de diffs para operações de escrita e patch no feed de atividade de ferramentas
  • TUI fixado na parte inferior na inicialização — chega de grandes espaços em branco entre resposta e entrada
  • /history e /resume mostram sessões recentes diretamente em vez de exigir busca
  • /insights mostra tokens de cache — totais agora somam corretamente
  • Flag CLI --max-turns para hermes chat limitar iterações do agente
  • Detectar caminhos de arquivos arrastados — não são mais tratados como slash commands (por @rolme)
  • config set aceita strings vazias e valores falsy
  • Modo de voz no WSL quando a bridge PulseAudio está configurada
  • Respeitar NO_COLOR e TERM=dumb para acessibilidade (por @SHL0MS)
  • Código de saída correto no modo quiet — consultas bem-sucedidas com -q retornam 0 em vez de valor diferente de zero (por @devorun)
  • Hook on_session_end dispara em saídas interrompidas
  • Lista de perfis lê corretamente a chave model.default

Configuração e Setup

  • allowed_users preservado durante o setup + avisos silenciosos de provedor não configurado (por @kshitijk4poor)
  • Salvar chave de API na config do modelo para endpoints customizados
  • Credenciais do Claude Code condicionadas a config explícita do Hermes no gatilho do assistente
  • Escritas atômicas em save_config_value — evita perda de config em interrupções
  • Campo scopes gravado nas credenciais do Claude Code na renovação de token

Sistema de Atualização

  • Detecção de fork e sincronização upstream no hermes update — suporta repositórios forkados
  • Preservar extras opcionais funcionais quando um extra falha durante a atualização
  • Tratar índice git com conflito — processo de atualização mais confiável
  • Evitar race de reinicialização do launchd no macOS
  • Instrução correta de recarga de shell para usuários macOS/zsh
  • Timeouts em subprocess.run() adicionados aos comandos doctor e status

Sistema de Ferramentas

  • Backend de navegador anti-detecção Camofox — instalação com um comando via hermes tools install camofox
  • Sessões persistentes do Camofox + descoberta automática de URL VNC
  • Pular verificação SSRF para backends locais — Camofox, Chromium headless
  • Verificação SSRF configurável — opção browser.allow_private_urls (por @nils010485)
  • CAMOFOX_PORT=9377 adicionado aos comandos Docker

Operações de Arquivo

  • Pré-visualização inline de diffs em ações de escrita e patch — veja adições e remoções com destaques
  • Detecção de arquivo desatualizado — avisa quando o arquivo foi modificado externamente desde a última leitura antes de sobrescrever
  • Timestamp de desatualização atualizado após escritas
  • read_file com guarda de tamanho, dedup e bloqueio de dispositivos

MCP

  • Pacote de correções de estabilidade — timeout de recarga, limpeza de shutdown, manipulador de event loop, inicialização não-bloqueante OAuth

Sistema de Skills

  • Limites de tamanho para escritas do agente + fuzzy matching para patch de skills — evita escritas excessivas, melhora a confiabilidade de edições
  • Validar caminhos de bundles do hub antes da instalação — bloqueia path traversal em bundles de skills
  • Unificar hermes-agent e hermes-agent-setup em uma única skill
  • Verificação de tipo de metadados de skill em extract_skill_conditions

Skills Novas e Atualizadas

  • research-paper-writing — pipeline completo de pesquisa ponta a ponta, substituindo ml-paper-writing (por @SHL0MS)
  • ascii-video — técnicas de legibilidade de texto e oráculo externo de layout (por @SHL0MS)
  • youtube-transcript atualizado para youtube-transcript-api v1.x (por @el-analista)
  • Página de busca e navegação de skills adicionada ao site de documentação (por @IAvecilla)

Segurança e Confiabilidade

Endurecimento de Segurança

  • Bloquear exfiltração de secrets via URLs do navegador e respostas do LLM — escaneia padrões de secrets em codificação de URL, Base64 e vetores de prompt injection
  • Redigir secrets da saída do sandbox execute_code — informações sensíveis automaticamente substituídas
  • Proteger diretórios de credenciais .docker, .azure, .config/gh contra leitura/escrita via ferramentas de arquivo e terminal (por @memosr)
  • Padrões de token OAuth do GitHub adicionados à redação + flag de redação de snapshot
  • Rejeitar IPs privados e de loopback no fallback DoH do Telegram
  • Rejeitar path traversal no registro de arquivos de credenciais
  • Validar caminhos de membros de arquivo tar na importação de perfil — bloqueia ataques zip-slip
  • Excluir auth.json e .env das exportações de perfil

Confiabilidade

  • Prevenir espiral de morte por compressão — loop de desconexão de API detectado e interrompido em vez de loop infinito
  • is_closed do SDK OpenAI como método e não propriedade — corrige falso positivo de detecção de fechamento de cliente
  • Excluir Matrix dos extras [all] — python-olm está quebrado no upstream, evita falhas de instalação
  • Roteamento de modelo OpenCode reparado
  • Imagem de container Docker otimizada (por @bcross)

Windows e Multi-Plataforma

  • Modo de voz no WSL com bridge PulseAudio
  • Preparação de empacotamento Homebrew
  • Condicionais de fork no CI — evita falhas de workflow em forks

Correções de Bugs Notáveis

  • Aprovação do gateway bloqueava thread do agente — aprovação agora bloqueia como o CLI, evitando perda de resultado de ferramenta
  • Espiral de morte por compressão por desconexões de API — detectada e interrompida em vez de loop infinito
  • Blocos de thinking do Anthropic perdidos entre turnos de uso de ferramentas — assinaturas agora corretamente preservadas
  • Config de modelo de perfil ignorada com flag -pmodel.model corretamente promovido para model.default
  • Espaço em branco no CLI entre resposta e área de entrada — TUI fixado na parte inferior
  • Caminhos de arquivos arrastados tratados como slash commands em vez de referências de arquivo — agora corretamente detectados
  • Tags </think> órfãs vazando para respostas voltadas ao usuário — agora removidas
  • is_closed do SDK OpenAI é um método, não uma propriedade — falso positivo de fechamento de cliente corrigido
  • Servidor OAuth do MCP bloqueando inicialização do Hermes — agora degrada graciosamente
  • Event loop do MCP fechado no shutdown — cenário de servidor HTTP corrigido
  • Provedor Alibaba hardcoded para endpoint errado — alterado para endpoint internacional padrão do DashScope
  • Config reply_in_thread do Slack ausente — suporte completo adicionado
  • Código de saída do modo quiet diferente de zero — consultas bem-sucedidas com -q agora retornam 0 corretamente
  • Sidebar mobile mostra apenas botão de fechar devido a problema de backdrop-filter no site de docs (por @xsmyile)
  • Restauração de config revertida por squash merge de branch desatualizada — _config_version corrigido

Testes

  • Testes E2E do gateway Telegram — suíte completa de testes de integração (por @pefontana)
  • 11 falhas de teste reais corrigidas + envenenador de cascade de sys.modules resolvido
  • 7 falhas de CI resolvidas em hooks, plugins e testes de skills
  • Testes de refresh 401 do Codex atualizados para compatibilidade com CI
  • Teste de OPENAI_BASE_URL desatualizado corrigido

Documentação

  • Auditoria abrangente de documentação — 9 lacunas HIGH e 20+ MEDIUM corrigidas em 21 arquivos
  • Navegação do site reestruturada — Funcionalidades e Plataformas promovidas ao nível superior
  • Streaming de progresso de ferramentas documentado para API Server e Open WebUI
  • Documentação do modo webhook do Telegram
  • Guias de provedores LLM locais — guias abrangentes de configuração com avisos de comprimento de contexto
  • Comportamento de allowlist do WhatsApp esclarecido com documentação de WHATSAPP_ALLOW_ALL_USERS
  • Opções de configuração do Slack — nova seção de config na documentação do Slack
  • Seção de backends de terminal expandida + correções de build da documentação
  • Guia de adição de provedores atualizado para o fluxo de configuração unificado
  • Config do ACP Zed corrigida
  • Entradas de FAQ da comunidade para fluxos de trabalho comuns e solução de problemas
  • Página de busca e navegação de skills disponível no site de documentação

Atualização

hermes update

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


Changelog completo no GitHub

← Hermes Agent Changelog