Hermes Agent Lab

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

Últimos artículos y perspectivas.

Por qué una skill recién publicada devuelve cero resultados en una búsqueda

La búsqueda de skills sin filtros se responde desde un índice central que se reconstruye periódicamente, así que una skill publicada hace unos minutos puede faltar aunque exista. Los cambios del 16 al 18 de septiembre cierran esa brecha: un fallo del índice ahora vuelve a consultar skills.sh, ClawHub, LobeHub y otros endpoints conocidos con un presupuesto de 8 segundos, y la construcción del índice ya no descarta skills en silencio cuando un shard se agota.

Leer más

Dirigir tu agente desde un tren: guía de campo del WebUI de la comunidad

Hermes WebUI es un proyecto de la comunidad con unas 18K estrellas que lleva las capacidades del CLI al navegador: Python más JavaScript vanilla, sin paso de build, ligado a localhost por defecto, con túneles SSH o Tailscale para acceso desde el móvil y login opcional por contraseña, passkey u OIDC. Aquí tienes cómo instalarlo, cómo exponerlo con seguridad y dónde están sus límites.

Leer más

Por qué abrir un desplegable te cuesta tres segundos

Un spinner en el selector de modelos, un `hermes plugins list` que se queda colgado, un panel de Profiles que pierde frames: tres bloqueos que parecen no tener relación y tienen una sola causa: el camino de lectura estaba haciendo sondeos de red y recorridos del sistema de archivos a escondidas. Los PR #114994, #114811 y #114879 sacaron el cacheo, la memoria de fallos y los refrescos de ese camino.

Leer más

Hermes ya no descarga cualquier URL que alguien le ponga delante

URLs de imágenes que devuelve un proveedor de generación, imágenes de referencia que aporta un modelo, los manifests y spritesheets de la pet store, entradas del sitemap de skills.sh: ninguna de esas URLs la eliges tú. El PR #114887 enruta siete puntos de descarga por el SSRF guard que ya tenía el repositorio: comprobar antes del fetch, volver a comprobar en el connect TCP (cerrando la ventana de DNS rebinding), revalidar cada salto de redirección y fallar en cerrado ante un 3xx sin cabecera Location.

Leer más

La clave de API que imprimiste una vez no debería acabar en un log de chat

Dos arreglos aterrizaron el mismo día para cerrar dos costuras por las que se filtran secretos: el PR #114839 hace que las claves `sk-` con puntos y las claves `id.secret` sin prefijo de Zhipu queden totalmente enmascaradas en la salida de las tools, y el PR #114789 fuerza la redacción en todas las líneas de entrega de cron (chat, espejo de sesión, nombre del job, chat del bot), fallando en cerrado en lugar de enviar el texto en crudo.

Leer más

Tu proveedor de memoria se mudó fuera del core — la actualización lo devuelve a su sitio

Los proveedores de memoria integrados se van a los repos de sus mantenedores y al catalog de plugins. El PR #114569 añade dos hooks: tanto `hermes update` como agent init detectan un proveedor configurado cuyo código ya no está y lo reinstalan con el pin revisado del catalog. El nombre, la config `memory.<name>`, el directorio de datos y los nombres de las tools siguen igual.

Leer más

1,393 subagentes, 19 horas, un solo escritorio: cómo Nous refactorizó un millón de líneas con Hermes

Un solo /goal, 19 horas y 1,393 subagentes recortaron el 34.4% de las líneas de código del propio repositorio de Hermes. Aquí están las mediciones oficiales, las nueve cosas que se rompen a escala y los pasos para repetirlo en tu propio código.

Leer más

Un script de 16 KB congeló un gateway durante 23 segundos: la autopsia del escaneo de comandos

Le pasas a Hermes un heredoc de unos cientos de líneas y tu bot de Telegram deja de responder: un regex síncrono está reteniendo el event loop. El issue #113535 y el PR #114208 explican la ruta O(n³) y por qué la versión corregida llega a veredictos idénticos.

Leer más

Deja de regalar tu cuota a las imágenes: los dos ajustes de visión que merece la pena conocer

Las imágenes incrustadas de forma nativa se reenvían en cada llamada posterior a la API, y la antigua política de retirada podía reescribir 120.000 tokens de historial solo para soltar una imagen. Los PR #113953 y #113817 arreglaron ambas cosas y añadieron vision.embed_target_bytes y max_calls_per_image.

Leer más

El segundo modelo que nunca configuraste: el carril de llamadas auxiliares de Hermes

Títulos de sesión que acaban siendo fragmentos de JSON, aprobaciones que dejan de ser inteligentes, compresiones que se eternizan con un modelo local: la culpa muchas veces no es de tu modelo principal, sino de una de las 13 tareas auxiliares con nombre. Aquí tienes la forma de la configuración, los ajustes globales y los arreglos de fallos silenciosos fusionados el 17 de septiembre.

Leer más

Tu agente puede destrozar una base de datos SQLite en uso — ahora Hermes rechaza la escritura

write_file y patch leían un sidecar .db-wal como texto normal y reescribían el mojibake, destruyendo en silencio una base de datos SQLite en uso. El PR #114220 añade una protección de escritura de sidecars en la capa de herramientas. Aquí está cómo ocurrió el daño, qué cambió y si tu versión ya lo incluye.

Leer más

hermes doctor y el WAL grande: un aviso honesto

hermes doctor te mandaba a --fix con un WAL de state.db de más de 50 MB sin comprobar quién tenía abierta la base. El PR #113055 hace honesto ese aviso.

Leer más

Por qué la memoria Honcho de Hermes acaba en otro proyecto

Los títulos automáticos anulaban sessionStrategy y la memoria se resolvía desde el directorio de arranque del backend. PR #112602 corrige ambas cosas.

Leer más

Renombrar un profile de Hermes dejaba un fantasma

Renombrar un profile dejaba la state DB en el nombre viejo. El PR #112653 migra esa identidad, añade un comando de reintento y sella los profiles borrados.

Leer más

Multiplexación de perfiles: ya es lo predeterminado

gateway.multiplex_profiles ya viene activado, pero una guarda de arranque decide los valores sin definir: un gateway sirve todos los perfiles si es seguro.

Leer más

Por qué state.db se corrompe dentro de Docker Desktop, OrbStack y montajes WSL2

Haz bind mount de tu directorio de datos dentro de un container y virtiofs o 9p no pueden dar a SQLite WAL el lock compartido que necesita, así que dos escritores corrompen state.db en silencio mientras todos los integrity checks pasan. Desde el PR #111433, Hermes lo dice al arrancar y en hermes doctor, con dos arreglos concretos.

Leer más