Hermes Agent Lab

Blog de Hermes Agent — Guías Prácticas y Perspectivas

Últimos artículos y perspectivas.

Cierra el portátil y tu /loop muere: por qué los horarios desacoplados ahora sobreviven

Un /loop o /heartbeat definido en la app de escritorio, el dashboard o la TUI se desmontaba en el momento en que el cliente se desconectaba. Ahora Hermes exime a la session que aún tiene un horario activo, así que los wakeups siguen disparándose en segundo plano.

Leer más

Una llamada TTS fallida borró un archivo del usuario: dentro del arreglo P0 de la ruta de salida de Hermes

Apunta text_to_speech a un archivo que ya existe y una síntesis fallida se llevaba por delante ese archivo con su propia salida temporal. Ahora Hermes sintetiza en un archivo hermano oculto y solo reemplaza el destino cuando la síntesis tiene éxito.

Leer más

Un servidor MCP envió una captura y tu modelo solo vio una ruta de archivo

Conecta un servidor MCP que captura la pantalla, pídele al agent que la lea, y te dice que solo ve una ruta — la imagen estaba en caché, pero el modelo nunca recibió los píxeles. El arreglo reúne «¿puede llegar esta imagen al modelo?» en una sola puerta (vision_tools._native_tool_result_images), compartida por MCP ImageContent, las capturas del navegador, las capturas de computer_use y vision_analyze. Aquí tienes qué hacen realmente auto / native / text, además de dos detalles de seguridad fáciles de pasar por alto.

Leer más

Plugins que solo funcionaban a medias: Hermes por fin unificó la resolución de nombres de plugins

Se instala por nombre de catálogo, se habilita por nombre de manifest y se empareja con su mitad de escritorio por nombre de carpeta — el mismo plugin respondía a tres nombres, así que `install` funcionaba y `enable` devolvía «No plugin named …», y un paquete con mitad de escritorio nunca se encendía. El PR #135030 fusionó cinco resolutores de nombres en uno y convirtió activar un paquete en un solo interruptor. Aquí tienes el síntoma, la causa y el nuevo orden de resolución, además del arreglo para el desarrollo de plugins de escritorio (#135017).

Leer más

v0.21.6 cambió cómo se cortan los releases — confirma qué instalaste realmente

v0.21.6 (publicada el 8 de octubre de 2026) es el primer tag cortado por el nuevo pipeline de releases estables: un attempt ref, una imagen Docker probada y un tag de comprobante al publicar. La ventana desde la v0.21.5 acumuló 8.342 archivos modificados (+772.490 / −225.600) y 2.106 PR fusionados, mientras que las notas completas y curadas siguen llegando con la v0.22.0. Aquí tienes cómo verificar qué instalaste, además de los tres grupos de correcciones de seguridad de esta ventana.

Leer más

Un turno hablado ya no tiene que usar tu modelo de escritura

Dices algo y el modelo con el que escribes se gasta su presupuesto de razonamiento antes de responder en voz alta — así que las preguntas por voz van medio compás lentas y te facturan al precio de tu modelo principal. Ahora los turnos hablados tienen su propio slot auxiliary.voice_chat y por defecto vienen con el razonamiento desactivado; y si quieres reemplazar toda la cadena «transcribir, pensar, hablar», un único modelo de voz full-duplex puede tomar el relevo (voice.voice_chat_mode: gpt-live). Aquí tienes cómo encajan los tres ajustes — y cuándo no usarlos.

Leer más

Creías que YOLO seguía activado. El reinicio lo desactivó.

Escribes /yolo en una plataforma de mensajería y das por hecho que las aprobaciones están desactivadas. Luego el gateway se reinicia — hermes update, un crash, systemd, la reapertura del escritorio — y ese chat ha vuelto en silencio a las aprobaciones manuales mientras tú sigues creyendo que las está saltando. El arreglo guarda /yolo en la propia sesión (SessionEntry.yolo en gateway_routing), mientras que /new, /resume y /branch lo borran para siempre. Aquí tienes las dos direcciones en que esto puede sorprenderte, y cómo sobrevive a un reinicio sin revivir un bypass que ya habías quitado.

Leer más

Un plugin ahora puede pedirle a Hermes que controle su propio servidor MCP

Los paquetes de Portable Agent Plugins v1 pueden declarar `trust: untrusted` para sus propios servidores MCP en `plugin.json`, de modo que cada llamada a una herramienta con capacidad de escritura te pregunte primero. Hermes solo acepta restringir, nunca ampliar.

Leer más

Nous Research levanta $90M — y Hermes va a por las empresas. Esto es lo que cambia para ti.

Nous Research anunció una ronda de $90M con una valoración de $1.5B el 7 de octubre de 2026, con NVIDIA, Microsoft M12 y Samsung entre los inversores, además de una nueva dirección "Hermes for Businesses". Qué es lo declarado por la compañía, qué está prometido y cuáles son los dos interruptores que conviene vigilar.

Leer más

Por qué desaparecieron 90GB de tu disco: el estado de dependencias que dejan atrás los worktrees eliminados

Cada worktree de `hermes -w` o clon temporal obtiene su propio entorno de dependencias de ~200MB, y eliminar el árbol nunca lo borraba. La ruta de prune ahora recupera el estado cuyo checkout ya no existe — de 92GB a 18GB en un host medido.

Leer más

Un cron job saludable fue declarado "wedged" a las 2h02m — ahora el límite mide el silencio, no la duración de la ejecución

Cualquier ejecución de cron de más de dos horas se reclamaba como un owner muerto incluso mientras llamaba a herramientas activamente, y luego fallaba con "lost its durable fire claim ownership" y perdía la salida de esa ejecución. El arreglo mide cuánto tiempo lleva el owner en silencio en lugar de cuánto tiempo lleva ejecutándose.

Leer más

Un modelo barato en un canal y uno frontier en otro: cómo funciona channel_overrides (y el bug de caché que lo encarecía)

Un solo gateway puede ejecutar un modelo y una persona distintos en cada canal mediante platforms.<platform>.channel_overrides. Pero un bug P0 expulsaba el agente en caché tras cada turno justo en esas conversaciones, lo que obligaba a releer toda la conversación a precio completo.

Leer más

Ejecutar Hermes Agent en Kubernetes: sin Helm chart oficial, una sola réplica y un contenedor que arranca como root

Tres cosas de la imagen oficial chocan con los valores por defecto estándar de Kubernetes: el estado es de escritor único, s6-overlay necesita root en el init y no hay endpoint HTTP de recarga. Esto es lo que de verdad se rompe y lo que deberías escribir en tu manifiesto.

Leer más

Qué registra de verdad la telemetría de Hermes: dos interruptores, ambos desactivados por defecto, y nada que se parezca a tu contenido

Bajo telemetry.shared_metrics hay dos opt-ins independientes — enabled recopila en local, send transmite a Nous — y ambos son false por defecto. Esto es lo que contienen los contadores acotados, más las nuevas clases de motivo de fallo.

Leer más

¿Hermes acaba de pedirte que superes una comprobación de navegador? Esto es qué es el reto 428 en el free tier

Cuando el servicio de cuentas de Nous decide que un rango de IP necesita antes una comprobación de navegador, el intercambio de token anónimo responde 428 challenge_required. Hermes implementa una sola primitiva: abrir el enlace del portal, hacer polling del estado, intercambiar de nuevo — mientras las llamadas en segundo plano nunca se bloquean.

Leer más

El límite de inicio de sesión de tu dashboard se podía falsificar con una sola cabecera

Tres correcciones de endurecimiento de autenticación fusionadas el mismo día: un X-Forwarded-For falsificado reiniciaba el límite de tasa del inicio de sesión del dashboard, un campo de auditoría sin límite podía llenarte el disco, y las rutas de autenticación públicas no tenían límite de tamaño de cuerpo.

Leer más