Hermes Agent Lab

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

Últimos artículos y perspectivas.

Una memoria que puede cambiar de opinión

Le contaste al agente que tu cliente se había pasado de Postgres a MariaDB; el agente sigue respondiendo Postgres, porque la mayoría de las memorias solo se sobrescriben, nunca se corrigen. El almacén local de hechos holographic ganó la otra mitad en la 0.13.0: change/correct/end/revert conservan todas las versiones, la búsqueda acepta una fecha as_of y forget las borra todas detrás de una lápida.

Leer más

Dijo que el trabajo estaba creado. El trabajo nunca existió.

La compactación de contexto puede desmontar un turno que ya emitió llamadas a herramientas: la llamada ocurrió, el resultado nunca llegó y no queda nada registrado. agent-ledger lleva un registro write-ahead para que esas llamadas fantasma se detecten y se inyecten de vuelta en el siguiente turno como advertencia, además de puntuar la actividad registrada contra la lista agéntica de OWASP.

Leer más

Los plugins de escritorio por fin pueden pulsar los botones de la propia app: ctx.runAction y ctx.pet.say

Antes los plugins de escritorio disparaban funciones integradas falsificando un evento de teclado: bastaba con que alguien reasignara el atajo para que el botón muriera en silencio. Ahora ctx.runAction(id) ejecuta el mismo handler que el atajo y la paleta de comandos, expone solo acciones de vista y navegación, y siempre devuelve un valor en lugar de lanzar una excepción. A su lado, ctx.pet.say permite que un plugin hable a través de la burbuja pet del núcleo sin tocar el DOM de la app.

Leer más

Los invitados del plan gratuito dejan de recibir el desafío del navegador para los connectors: el token de invitado con scope

Un cambio fusionado en la ventana de v0.21.7 hace que un invitado del plan gratuito que solo usa connectors o herramientas gestionadas ya no se tope con el desafío del navegador. Hermes ahora acuña un token cuyo único scope es connectors:invoke — las compuertas de desafío y PoW quedan exentas para él, y el gateway de inferencia lo rechaza. Aquí verás en qué se diferencian los dos tokens, cómo se elige un slot y qué rutas de segundo plano acuñaban inferencia por accidente.

Leer más

Cambian los valores por defecto de imagen para suscriptores: Krea 2 Medium Turbo, con FAL detrás

Una instalación de pago que nunca abrió hermes tools solía recibir el FLUX 2 Klein 9B de FAL. Las cuentas de pago ahora usan Krea 2 Medium Turbo por defecto, escrito solo cuando la sección de imagen nunca se configuró, no tiene modelo almacenado y la cuenta tiene derecho a Krea. Las imágenes de referencia ahora se describen como copiar un estilo en vez de editar una imagen, y un rechazo de Krea que demuestre que no creó ningún trabajo se reejecuta en FAL, con el resultado indicando quién lo ejecutó realmente.

Leer más

El modelo ya no olvida lo que pensó: el razonamiento se reproduce entre turnos, recargas y compactación

Una tabla de portadores de razonamiento por ruta, un registro privado hermes.native_assistant y un fallback de «registra el rechazo y reintenta una vez»: Hermes ahora reproduce el razonamiento por defecto en todos los providers que pueden leerlo, y la compactación y el branching dejan de borrar el razonamiento de turnos anteriores. Aquí verás qué campo recibe cada ruta y dónde mirar cuando se porta mal.

Leer más

Después de v0.21.7, `hermes update` sigue solo los releases etiquetados — aprende en qué canal estás

v0.21.7 (11 de octubre de 2026) cambia cómo se actualizan las instalaciones desde código fuente: por defecto solo pasas al último release publicado, y seguir main ahora es una elección explícita. La misma ventana también corrige el razonamiento que se perdía al reanudar sesiones y los fallos de actualización tras firewalls regionales. Aquí está qué cambia, cómo cambiar de canal y qué no le pasará a tu instalación.

Leer más

Un clic en Regenerar y 107 mensajes desaparecieron

En Hermes Desktop, regenerate podía reproducir un turn de cuatro horas antes y archivar en silencio 107 mensajes posteriores. Ahora, cualquier rewind que fuera a descartar un turn de usuario posterior pregunta primero — además del recuento de turns en el servidor, el rechazo 4033 y el interruptor de aplicación forzosa de la próxima versión.

Leer más

Cuando un subagente terminaba, se apoderaba del chat

Un proceso en segundo plano lanzado dentro de un hijo de delegate_task registraba a ese hijo como dueño de la finalización, así que el gateway trasladó la ruta del chat al hijo y descartó el resultado de la delegación del padre. Aquí están la cadena, la corrección y los límites que no se movieron.

Leer más

Un navegador en la nube con rate limit ya no mata a browser_exec

Cuando el proveedor de navegador en la nube devuelve 429 o se cae, browser_exec ahora recurre al Chromium local empaquetado en lugar de fallar la llamada, y las páginas localhost o de la LAN se abren en un sidecar local para que las URL privadas nunca lleguen a la nube.

Leer más

Dos Gmails, un solo Hermes: las cuentas de los connectors por fin tienen nombre

Los connectors de Hermes ya admiten varias cuentas de la misma app con un alias corto (trabajo, casa), te dicen bajo qué cuenta se ejecutó cada llamada y permiten reparar una sola cuenta. Cubre el CLI hermes connectors, el overlay /connectors del TUI y la interfaz de escritorio.

Leer más

El Hermes en Docker perdió la mitad de su árbol de dependencias — la imagen nunca registró una línea base

Abres el Hermes que corre en Docker y el servidor de API dice que aiohttp no está instalado. Los adaptadores de mensajería y los servidores MCP han desaparecido, los agentes alojados se reportan como degradados. No has cambiado nada. La causa: desde v0.21.6 los ocho extras integrados en la imagen nunca se registraron como línea base de dependencias, así que la primera generación que el contenedor construyó por su cuenta se convirtió en la nueva línea base. Ahora la imagen la registra, y cada arranque restaura lo que faltaba — los volúmenes que ya están rotos se curan solos.

Leer más

Solo abriste esa skill de la comunidad — y ejecutó un comando de shell

Instalas una skill desde un hub comunitario y un día la abres solo para leer qué hace. Esa simple mirada bastaba para ejecutar el fragmento de inline-shell de la skill. Peor aún: cuando otro perfil llegaba a la misma skill a través de external_dirs, el comando también se ejecutaba allí. Se endurecieron cuatro fronteras de confianza — las skills anidadas, las vistas entre perfiles y un lock del hub ilegible ahora fallan en cerrado. La misma semana trajo arreglos de falsos positivos en skills-guard-v9, unas 1.900 filas no instalables eliminadas del índice y dos instalaciones que nunca podían tener éxito.

Leer más

hermes update cambió su valor por defecto en silencio: se acabó el seguir cada commit

Ejecutas hermes update el miércoles por la mañana y te dice que no hay una release más nueva, mientras te avisa de que vas cientos de commits por detrás de main. No has cambiado nada. El canal de actualización por defecto de una instalación oficial desde código fuente pasó de main a stable, que solo se mueve entre releases publicadas vX.Y.Z. Aquí tienes qué significa stable, dónde se guarda el canal, la diferencia entre --set-channel y --channel y la regla que sorprende a todos: el valor por defecto solo avanza hacia delante.

Leer más

Hermes le dijo a una máquina de 16 GB que ejecutara un modelo de 27B: ahora dice que no

A una GTX 1080 con 16 GB de RAM se le dijo que Qwen3.8 27B cabe en esta máquina, y a una GPU integrada se le presupuestó toda la RAM del sistema. Hermes corrigió tres bugs apilados detrás de una mala recomendación de modelo local.

Leer más

El recall de tu proveedor de memoria estaba siendo truncado: spill opcional y otros dos fallos silenciosos

El recall de memoria externa se sustituía por una vista previa de cabeza y cola antes de llegar siquiera al modelo. Ahora Hermes lo mantiene intacto por defecto (memory.prefetch_spill_enabled), y corrige un límite de descubrimiento de 8 KB más un bucle de reintento de instalación al arrancar.

Leer más