Hermes Agent Lab

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

Últimos artículos y perspectivas.

Decía success: true y el adjunto nunca salió: Hermes cerró los dos extremos de la entrega de MEDIA

Le pides al agente que envíe su informe a Telegram, informa de éxito y tu compañero no recibe nada: el archivo sigue dentro del sandbox. La otra dirección es más sutil: un nombre de archivo manipulado que viaja dentro de un output_path de TTS podía colar una directiva de entrega extra en el resultado. Dos cambios fusionados el 20 de septiembre (#116842 / #116826) arreglan la mitad que faltaba y la mitad falsificada.

Leer más

Tu UI de chat autoalojada por fin puede ver pensar al agente

Antes, si apuntabas Open WebUI, LobeChat o tu propio frontend con el Vercel AI SDK hacia Hermes, lo único que veías durante toda la fase de reasoning era un spinner en blanco. El PR #115797 conecta el flujo de reasoning del agente a la superficie compatible con OpenAI: deltas de reasoning_content en vivo en /v1/chat/completions, items de reasoning nativos de la spec en /v1/responses y un flag de capacidad para que los clientes detecten el soporte.

Leer más

Qué le hacen 40 rondas de compactación a una sesión de tres días

Hermes ejecutó una eval controlada sobre tres linajes de sesión reales de 500K tokens, con 15 preguntas de recuerdo cada uno: la ruta de producción (resumen más un puntero de recuperación por búsqueda de sesión) alcanzó un 78.9% de recuerdo reteniendo 55K tokens, y la alternativa que conserva cada palabra del diálogo puntúa peor mientras carga 2.1x el contexto, con el espacio liberado por ciclo cayendo del 89% al 8% a lo largo de 32-40 rondas.

Leer más

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