Hermes Agent Lab

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

Últimos artículos y perspectivas.

Tu bot respondió dos veces: ¿se ejecutó el modelo dos veces?

El delivery ledger marca los reenvíos ambiguos con un prefijo de recuperación visible, y dos arreglos ponen freno a los duplicados sin marca: una caída a mitad de reenvío ya no envía una segunda copia, y un adapter reconectado ya no pierde su caché de dedup de entrada.

Leer más

Tu cron job se disparó una hora antes: el bug de DST que Hermes acaba de arreglar

La noche en que los relojes atrasan, un cron job con una zona horaria configurada podía dispararse hasta una hora antes —o una hora tarde— porque Python compara datetimes aware dentro de una misma zona por reloj de pared e ignora fold. Esto es lo que ha cambiado y cómo comprobar tus propios jobs.

Leer más

Todo el mundo habla de Jev: esto es lo que cambia de verdad en Hermes

Jev es un decision model: entra texto y salen respuestas probabilísticas tipadas. Ya hay once plugins de Jev en el catálogo de plugins de Hermes, desde una puerta de juicio previa a la herramienta hasta un router de modelo y reasoning effort por turno: esto es lo que decide cada uno y qué sale de tu máquina cuando lo instalas.

Leer más

Por qué Hermes decía que tu ejecución había costado $0.00

Las ejecuciones directas contra OpenAI, xAI, Anthropic, Google y DeepSeek ahora recurren al precio de lista del propio vendor en lugar de reportar un coste desconocido o cero, mientras que los relays, los proxies y las rutas de suscripción se quedan deliberadamente sin precio.

Leer más

Servidores MCP respaldados por una aplicación: por qué Hermes ahora comprueba antes si esa app está instalada

Un plugin portable de Hermes ya puede declarar de qué aplicación local depende: la instalación se rechaza si la app no está, el runtime solo confía en el archivo de endpoint vivo que escribe la propia app, y las herramientas no disponibles explican qué hacer al respecto.

Leer más

Un interruptor, dos escritorios: los modos de interfaz Simple / Advanced de Hermes

La app de escritorio ahora tiene dos modos de interfaz. Simple conserva la conversación y aparta la statusbar, el terminal, los payloads de los tool call y el estado de los subagentes; Advanced es la app que ya conoces. Un modo cambia lo que se muestra, nunca lo que Hermes puede hacer.

Leer más

Instalar un plugin sin reiniciar el gateway: Hermes ahora lo cablea en vivo

Un gateway en ejecución ya cablea al instante un plugin recién instalado: los comandos de barra, los callbacks de botón y las transformaciones de entrada funcionan de inmediato, mientras que las herramientas y las secciones del system prompt esperan a la siguiente sesión y los servidores MCP portables esperan un mcp.reload.

Leer más

Cada mensaje lee tu config: Hermes acaba de quitar el lock de esa ruta caliente

Las lecturas de config antes tomaban un lock global y volvían a parsear el YAML cada vez. Ahora los aciertos de cache son lock-free, y la misma lectura que esperaba 2 segundos termina en menos de 2 milisegundos. Aquí explicamos por qué eso es seguro.

Leer más

Fijar skills en cada session: skills.auto_load para que el agent nunca olvide tu proceso

Los skills son bajo demanda por defecto: el agent lee gratis las descripciones cortas y solo carga un skill cuando una tarea lo requiere. skills.auto_load cambia ese paso — los skills listados en config.yaml se cargan por completo al inicio de cada nueva session, tanto en agentes de CLI, TUI y gateway como en cron y API (PR #92048). Aquí tienes la configuración, en qué se diferencia de --skills y de los skills locales del proyecto, y por qué no rompe tu caché de prompt.

Leer más

Enseñar a CI a leer Hermes: el flujo de eventos stream-json en lugar de raspar la pantalla

hermes chat -q "..." --format stream-json emite JSONL legible por máquinas — un registro init, texto transmitido en streaming, llamadas a herramientas con sus resultados, y un sobre result final que lleva las estadísticas de token y un código de salida (PR #90411). Aquí tienes la tabla completa de campos de evento, la semántica de los códigos de salida (0/1/130/75), consumidores en jq y Python, y el límite de 5.000 caracteres de salida con el que debes contar.

Leer más

Ya pagas Claude Pro/Max: ahora Hermes puede usarlo

El plugin oficial claude-subscription-directsdk hace que Hermes maneje el CLI oficial claude sin modificar como cliente de modelo con alcance de petición, ejecutando todo el bucle del agent sobre tu suscripción Claude Pro/Max mientras Hermes conserva las herramientas, las aprobaciones y la compactación. Requiere Hermes 0.21.4+, Python 3.10+, un CLI claude con la sesión iniciada, y trae un relé de admisión que reenvía exactamente una petición upstream por cada llamada de Hermes.

Leer más

Un gateway por host: la migración a multiplex-only, tres incidentes reales y una checklist posterior a la actualización

Desde v0.21.4, Hermes ya no ejecuta un gateway por profile: un gateway de host por usuario del sistema operativo sirve todos los profiles (PRs #118273 / #118097 / #118433). El antiguo interruptor multiplex_profiles: false está retirado y --standalone ha desaparecido. Aquí tienes la ruta de migración, qué rechaza y los tres incidentes reales que la convergencia arregló, incluido un P1 que podía borrar la memoria del profile equivocado.

Leer más

v0.21.4 llega sin notas de versión: diez cambios que ya están corriendo en tu máquina

v0.21.4 (etiqueta v2026.9.21, publicada el 21 de septiembre de 2026) es una etiqueta de parche para consumidores downstream, y las notas dicen que el artículo completo llegará con v0.22.0. La ventana contiene 5.071 commits no merge y 1.812 PR mergeados desde v0.21.3. Diez cambios de comportamiento verificados, cada uno con el comando o la config que lo activa.

Leer más

Un disco lento, un asistente congelado: Hermes movió al segundo plano tres trabajos que bloqueaban la puerta

Arranca el backup nocturno y el gateway deja de responder. O cierras la tapa del portátil y la app de escritorio sigue devorando un núcleo entero de CPU. Ninguno de los dos casos es un modelo lento: lo que había en el bucle de eventos era una escritura a disco, un sondeo de procesos y un warm-up de arranque haciendo cola delante de cada mensaje entrante. Seis cambios fusionados entre el 18 y el 20 de septiembre (#117206 / #117063 / #117066 / #117201 / #117041 / #116967) los sacaron de la ruta crítica.

Leer más

Escribiste un plugin de provider para tu propio gateway. ¿Por qué Hermes lo sigue tratando como un ciudadano de segunda?

El modelo aparece y responde sin problema, pero el selector no muestra la insignia de razonamiento, una imagen que pegas se envía como texto plano, /usage se queda vacío y alguien del equipo todavía tiene que copiar un token a mano. Nada de eso es culpa del plugin: el núcleo solo sabía lo que sabía el catálogo de models.dev. Tres hooks fusionados el 20 de septiembre (#116570 / #116555 / #116576) devuelven al plugin la declaración de capacidades, el reporte de uso y el login.

Leer más

Cinco segundos para responder a un mensaje de una palabra: tres esperas silenciosas escondidas en la entrega de mensajes de Hermes

Una respuesta corta de WhatsApp tardaba 5 s (en Weixin, 3 s), un portátil que se apagó descartó en silencio todos los comandos de Telegram enviados mientras estaba apagado, y un canal de Discord sin menciones nunca podía crear hilos automáticamente. Lo que comparten: ni un error, ni una línea de log. Tres cambios fusionados el 19 y 20 de septiembre (#117104 / #116134 / #116168) los corrigen.

Leer más