v0.20.6

Hermes Agent v0.20.6


Overview

v0.20.6 — The Steady Roll Release. Publicada el 27 de agosto de 2026. ~525 PRs fusionados · ~1,313 commits · ~1,557 archivos modificados (+177,113 / −21,682) desde v0.20.5.

Esta ventana de desarrollo es un flujo constante de avances sustanciales: la noticia principal es la navegación con perfil real bajo consentimiento explícito — el agente ahora puede conducir un snapshot de tu propio perfil de browser, de modo que navega como tú, con tus inicios de sesión y cookies existentes, siempre bajo consentimiento explícito y desactivada por defecto. Alrededor de eso, el Browser de escritorio gana su propia ventana del sistema operativo y un motor gestionado de actualización remota por SSH; el catálogo remoto de MCP integrado supera los 50 servidores de proveedores verificados en vivo (Cloudflare, Grafana Cloud, Better Stack, Railway y más); web_search/web_extract añaden caché de resultados con TTL para que las búsquedas repetidas dejen de volver a facturar a los proveedores; la compresión lean-tail pasa a ser la opción predeterminada; tool_search aprende búsquedas multi-query con stemming; los secretos almacenados pueden optar por el cifrado con el keychain del sistema operativo (se acabaron los avisos del keychain de macOS en cada arranque); los actualizadores pausan los gateways a través del control socket en lugar de matarlos con tree-kill; y aparecen nuevos modelos en los selectores (GLM-5.3-Flash, MiniMax M3 free, MiniMax H3 Max video).

Esta es una versión de mantenimiento (patch release), así que las notas oficiales son breves y la documentación completa y curada llegará con v0.21.0. Esta página cubre las partes más valiosas de esta ventana.


Highlights

1. Navegación con perfil real: el agente navega como tú

El browser del agente solía ejecutarse en un mundo limpio y sin sesiones iniciadas — perfecto para investigar en público, frustrante en cuanto una tarea necesita tu estado de sesión. v0.20.6 añade la navegación con perfil real bajo consentimiento explícito (#1f4d095fd8, #830e4a29be): al activarla, Hermes copia el perfil activo de tu browser por defecto (cookies, inicios de sesión guardados, preferencias) en un snapshot gestionado en ~/.hermes/browser-profile/, y luego conduce ese snapshot con su Chromium integrado. Tu perfil en vivo nunca se abre directamente, y los archivos de autenticación se resincronizan cada vez que se lanza una sesión nueva, de modo que los inicios de sesión que hagas en tu propio browser aparecen en la sesión del agente.

# ~/.hermes/config.yaml
browser:
  use_real_profile: true

La tool browser_exec expone un argumento local (solo cuando el toggle está activado) que fuerza una sesión con perfil real incluso bajo un backend de browser en la nube. En Windows, el browser debe estar completamente cerrado antes de copiar el perfil (Chrome/Edge/Brave bloquean sus bases de datos de cookies), y browser.real_profile_autoclose: true permite que Hermes ofrezca cerrarlo por ti — nunca lo cierra por su cuenta. Al desactivar el toggle se elimina el almacén de snapshots, así que las credenciales copiadas no quedan rondando después de que revoques el consentimiento. Browsers compatibles: Chrome, Edge, Brave, Chromium; si el browser por defecto no es Chromium (p. ej. Firefox), falla en modo seguro (fail closed) con un mensaje claro. También en escritorio: Settings → Browser → Use My Real Browser Profile.

2. Browser de escritorio en su propia ventana del sistema operativo + motor gestionado de actualización remota por SSH

El Browser de escritorio se gradúa de panel incrustado: ahora puede abrirse en su propia ventana del sistema operativo — redimensiónala, muévela entre monitores, mantenla junto a tu editor. El escritorio también gana un motor gestionado de actualización remota por SSH: actualizaciones por conexión vía SSH para gateways remotos, de modo que una fleet de máquinas se mantiene al día desde una sola app de escritorio (incluida la barra de perfiles de fleet — cambia de perfil y los objetivos de actualización te siguen).

3. Catálogo remoto de MCP: más de 50 servidores de proveedores verificados en vivo

El catálogo remoto de MCP integrado crece hasta más de 50 servidores de proveedores verificados en vivo — Cloudflare, Grafana Cloud, Better Stack, Railway, Canva, Dropbox, GitLab, Strava y más. Cada entrada se verifica contra el endpoint en vivo del proveedor, y ?codemode=false queda fijado para que tool_search vea la superficie completa de endpoints de cada entrada del catálogo. Un solo comando para ver lo que hay disponible:

hermes mcp catalog list --remote

4. Caché de resultados con TTL para web_search / web_extract

Las búsquedas y extracciones repetidas dentro de una ventana corta ya no vuelven a facturar al proveedor: los resultados de web_search/web_extract se guardan en caché con un TTL (configurable a través de web.cache_ttl), de modo que un reintento, la re-ejecución del mismo prompt o un cron job que comprueba la misma URL dos veces obtiene la respuesta de la caché en lugar de una llamada nueva (de pago). Ahorra dinero en ejecuciones largas del agente y en trabajos recurrentes.

5. La compresión lean-tail pasa a ser la opción predeterminada

La compresión se ha vuelto más discreta y barata: lean-tail es el modo predeterminado — en lugar de conservar una cola larga de turnos de bajo valor, el compresor mantiene un resumen compacto más una cola corta de alto valor, recortando lo que cada turno vuelve a enviar después de la compresión. Las configuraciones existentes que nunca definieron agent.compression.tail_mode adoptan el nuevo valor por defecto al actualizar; los ajustes explícitos quedan intactos.

6. tool_search: multi-query con stemming

tool_search ahora acepta queries: string[] — se buscan de forma independiente contra el mismo catálogo, el límite se aplica por query (5 por defecto, máximo 25) — y devuelve resultados agrupados: los grupos por query solo llevan nombres de tools, con un único mapa compartido de tools que contiene la fuente, la descripción y los parámetros requeridos de cada tool encontrada. tool_describe acepta names: string[] y devuelve un mapa indexado por nombre, de modo que un nombre incorrecto ya no hace fallar toda la llamada. El stemming de Snowball hace coincidir ‘browsing’ con ‘browser’ y ‘searches’ con ‘search’.

{ "queries": ["browser snapshot", "web search cache", "read pdf"] }

7. Cifrado opt-in con el keychain del sistema operativo para secretos almacenados

El safeStorage de Electron solía depositar una clave por app en el keychain de inicio de sesión de macOS, y en máquinas con el keychain bloqueado o ausente, eso convertía cada arranque del Desktop en un diálogo bloqueante de «Keychain Not Found». El cifrado respaldado por keychain ahora es una opción explícita (opt-in) (Settings → Gateway): la ruta por defecto nunca llama a ninguna API de safeStorage, y una migración de un solo paso convierte los blobs cifrados existentes en archivos planos 0600 en el primer arranque. Activa el toggle y cada almacén de secretos (connection.json, connections.json, native-oauth-tokens.json) se recodifica en su sitio.

8. Los actualizadores pausan los gateways a través del control socket

hermes update ya no mata por tree-kill los gateways en ejecución: los actualizadores pausan los gateways a través del control socket — los servicios se aquietan con elegancia, la actualización aterriza y los gateways se reanudan — de modo que los turnos en curso y las conexiones de mensajería sobreviven a la actualización. Las instalaciones gestionadas por imagen/paquete también rechazan las actualizaciones in-place inseguras a través de un único punto de control compartido (#91277 Phase 3), y los archivos de usuario gitignored bloquean el ZIP overlay destructivo.

Improvements

  • Cron: acks de incidencias duraderos (un job que se topó con una incidencia puede confirmarse una sola vez, y el ack persiste), y fallos de code-skew más claros cuando el scheduler y el gateway no coinciden en la versión del código.
  • Slack: controles de link-unfurl (unfurl_links/unfurl_media estampados en los metadatos de los frames salientes) — los equipos pueden evitar que los enlaces del agente se expandan en tarjetas.
  • Docker: los perfiles de confianza pueden optar por un único contenedor persistente compartido en lugar de dividirse por chat; el bootstrap de API_SERVER_KEY en stage2 ya no depende de que exista .env.
  • Terminal: los sandboxes de terceros se conectan como backends de terminal sin tocar el core.
  • Models: GLM-5.3-Flash llega a los selectores z.ai + OpenCode; MiniMax M3 free se une a OpenRouter; MiniMax H3 Max se une al selector de video FAL (t2v + i2v).
  • state.db: las opciones de journal_mode ya no se ignoran en silencio; synchronous se puede fijar en todas las plataformas.
  • browser_exec: las filas de tools se titulan con su comentario # step inicial, y el schema adelgazó ~17 % (803 → 663 tokens/llamada) manteniendo la misma precisión.

Fixes

  • Gateway: liveness del bucle de dos testigos — el heartbeat propio del watchdog ya no puede congelar ni matar un gateway sano (#92315, rescate de #90502).
  • Gateway: corregido el doble kill de launchd --replace — reinicio elegante con SIGUSR1 en lugar de la toma de control del argv supervisado (#96427).
  • Sessions: el barrido de sesiones vacías ya no elimina una transcripción archivada (#96401); las sesiones heredadas sin owner reciben el backfill de un único owner coincidente + reanudación de transcripciones almacenadas en solo lectura (#96110).
  • MCP: la puerta de fast-fail de stdio solicita un respawn cuando encuentra un subproceso muerto; se ha corregido la inversión de la comprobación de liveness de los hijos (#94339).
  • Gemini 3.x: las imágenes se incrustan en functionResponse.parts para que los resultados multimodales de las tools lleguen realmente al modelo (#96466).
  • Desktop: los chats de grupo dejan de filtrar centinelas vacíos y de tragarse las respuestas reales; un bot mencionado con @ siempre recibe su turno (#96239, #96240).
  • Update: los archivos de usuario gitignored también bloquean el ZIP overlay destructivo (#96440).
  • Approval: un approvals.timeout desmesurado ya no provoca fallos en los lotes de tools paralelos — se recorta al leer la configuración (#86412).

Upgrade

hermes update

Después de actualizar, ejecuta hermes doctor para verificar la instalación y reinicia el gateway (hermes gateway) para que los cambios de plataforma surtan efecto. Para ver qué tocará la próxima actualización antes de ejecutarla: hermes update --plan.

← Hermes Agent Changelog