Hermes Agent v0.20.2
Overview
v0.20.2 — The Connections Patch. Publicado el 16 de agosto de 2026. ~397 PR fusionados · 967 commits · 1.279 archivos modificados (+128.522 / −7.622) desde v0.20.1.
Tres días después de v0.20.1, Hermes publica el cambio estructural que la app de escritorio necesitaba desde hace años: el modelo de conexiones deja de ser «una conexión global con overrides por profile» y se convierte en un registro real. El escritorio ahora puede albergar cualquier número de fuentes de agente con nombre — runtime local, gateways remotos, Hermes Cloud, hosts SSH — mientras MCP incorpora instalaciones de un clic vía hermes:// y comprobaciones de salud en segundo plano, y la CLI por fin recuerda qué sesión pertenece a cada terminal.
Es un parche, así que las notas oficiales son breves y la documentación curada completa llega con v0.21.0. Esta página cubre las partes más valiosas de esta ventana.
Destacados
1. Registro multi-conexión en el escritorio
Settings → Connections es ahora un registro real de fuentes de agente con nombre: locales, gateways remotos (LAN/Tailscale/público), Hermes Cloud y hosts SSH, todo persistido en un solo lugar con etiquetas únicas sin distinguir mayúsculas. El enrutamiento del pool de backends se clavea por (connection, profile), y un roster de agentes multi-fuente + SDK aparece en el escritorio. El descubrimiento viene después: una píldora «Connect another Hermes gateway…» en la barra de profiles y una entrada ⌘K para Settings → Connections.
2. Instalaciones MCP de un clic vía deep links hermes://
Los proveedores de MCP y su documentación pueden ofrecer un botón «Add to Hermes» vía hermes://mcp/install?name=NAME&config=B64. El enlace se valida estrictamente (nombre ^[A-Za-z0-9._-]{1,64}$, config JSON en base64url) y muestra un diálogo de confirmación explícito antes de escribir nada en la configuración.
3. Comprobaciones de salud MCP en segundo plano
Al conectar el gateway y cada 30 minutos, el escritorio barre los servidores MCP HTTP/SSE habilitados del profile activo. Un servidor que pasa a needs-auth (o error) dispara un aviso dentro de la app — «GitHub MCP needs re-authentication» — con una acción Sign in que hace deep-link al panel de configuración del servidor y lo hace parpadear. Los servidores stdio quedan excluidos porque cada sondeo es un spawn real.
4. Breadcrumbs de terminal: -c por terminal
Un hermes -c / --continue a secas ahora reanuda la sesión que pertenece a esta terminal (tty, panel de tmux, ventana de kitty, panel de wezterm, panel de Zellij, Windows Terminal) en lugar de la sesión más reciente a nivel global. Los breadcrumbs viven en $HERMES_HOME/terminal-sessions/, se escriben de forma atómica y caducan a los 30 días.
5. chat -c falla ruidosamente + --create-if-missing
hermes chat -c "<title>" sin coincidencias ahora imprime en stderr y sale con código 1 (se acabó el no-op silencioso). La nueva bandera --create-if-missing crea una sesión nueva con título y reanuda en ella — una primitiva determinista de «envía a este hilo con nombre, créalo si hace falta» para scripts y plugins.
6. El upscaling de imágenes es opt-in
El cambio del 8 de agosto que encadenaba el Clarity Upscaler tras cada generación FAL/Krea de menos de 2MP (degradando visiblemente el renderizado de texto/CJK de GPT Image 2, la tipografía de Ideogram y los rostros fotorrealistas) queda revertido: el upscaling está desactivado por defecto y solo se ejecuta con un upscale: true explícito.
7. Toda herramienta es interrumpible
El ejecutor secuencial de herramientas ahora consulta la bandera de interrupción cada segundo y abandona una herramienta en marcha en un período de gracia de 3 segundos; image_generate además aborta su espera FAL en curso de forma cooperativa. Ctrl+C termina las herramientas en lugar de retener el turno durante ~40 s.
Mejoras
- Protocolo de teclado de Kitty restaurado (
CSI >1u) con la tabla de alias de teclas extendidas de 294 entradas completada — los usuarios de kitty recuperan Ctrl+C y las combinaciones funcionales. /statusya no empareja un modelo con el provider/URL base de una ruta de fallback distinta; las rutas de modelo persistidas se mantienen coherentes.- Las claves de API de Bedrock se entregan a través de un provider con nombre (
custom:bedrock-mantle+key_env) en lugar de descartarse comoapi_key="no-key-required". skills.disabledyagent.disabled_toolsetsrespetan las formas de cadena de arrays JSON (["a","b"]) guardadas conhermes config set.- Los turnos
already_senten streaming completan su tick de /loop (marcador LOOP_COMPLETE + ejecución del judge) en lugar de reprogramarse sin fin. - Las conexiones multi-gateway se cierran y reciclan limpiamente al eliminar o editar, con un tope de pool.
- Las claves de autodetección de providers se resuelven a través del ámbito del profile; Bedrock y las rutas de autenticación respetan los ámbitos de secretos por profile.
Correcciones
- Windows: sondeos de escaneo de procesos acotados para que un escaneo WMI lento no pueda bloquear
hermes update; rutas de scripts cron con NUL rechazadas antes de cualquier llamada aPath; las unidades systemdhermes-servese reinician junto con los gateways. - Los gateways de tareas programadas de Windows sin pidfiles se salvan del reaper de huérfanos.
- El invariante del catálogo de
image_genfija los valores por defecto de upscaling totalmente desactivado. - Las llamadas secuenciales de herramientas se vinculan a
timeouts.tools.sequential_call; el par dedupe/suelo de razonamiento de llamadas a herramientas que causaba regresiones fue revertido y rehecho. - TUI: Enter modificado y LF simple insertan saltos de línea en el composer en terminales de IDE y macOS.
Actualización
hermes update
Tras actualizar, ejecuta hermes doctor para verificar la instalación, reinicia el gateway (hermes gateway) para que los cambios de plataforma surtan efecto y abre Settings → Connections para explorar el registro multi-conexión.