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.
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.
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
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.
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.
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:
/approvee/denyagora 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
developerpara 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 —
/approvee/denyroteiam 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/-qdo 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
/updateusa 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
/approvee/denycomo slash commands nativos com botões interativos - Reações configuráveis — opção
discord.reactionspara 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
- Impor
require_mentionem 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
/historye/resumemostram sessões recentes diretamente em vez de exigir busca/insightsmostra tokens de cache — totais agora somam corretamente- Flag CLI
--max-turnsparahermes chatlimitar iterações do agente - Detectar caminhos de arquivos arrastados — não são mais tratados como slash commands (por @rolme)
config setaceita strings vazias e valores falsy- Modo de voz no WSL quando a bridge PulseAudio está configurada
- Respeitar
NO_COLOReTERM=dumbpara acessibilidade (por @SHL0MS) - Código de saída correto no modo quiet — consultas bem-sucedidas com
-qretornam 0 em vez de valor diferente de zero (por @devorun) - Hook
on_session_enddispara em saídas interrompidas - Lista de perfis lê corretamente a chave
model.default
Configuração e Setup
allowed_userspreservado 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
Navegador
- 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_filecom 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-agentehermes-agent-setupem 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-apiv1.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/ghcontra 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.jsone.envdas 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_closeddo 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
-p—model.modelcorretamente promovido paramodel.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_closeddo 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_threaddo Slack ausente — suporte completo adicionado - Código de saída do modo quiet diferente de zero — consultas bem-sucedidas com
-qagora 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_versioncorrigido
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.
← Hermes Agent Changelog