v0.15.0

Hermes Agent v0.15.0 — The Velocity Release (La Versión Velocity)


Resumen

v0.15.0 — La Versión Velocity. Publicada el 28 de mayo de 2026. 1.302 commits · 747 PRs fusionados · 1.746 archivos modificados · 282.712 inserciones · 36.699 eliminaciones · más de 560 issues cerrados (15 P0, 65 P1, 19 con etiqueta de seguridad) · 321 colaboradores de la comunidad.

Esta es la versión en la que Hermes se volvió drásticamente más rápido — para iniciar, para ejecutar, para entregar trabajo y para crecer. El archivo run_agent.py de 16.083 líneas se redujo a 3.821 (-76%), redistribuido en 14 módulos cohesivos bajo el directorio agent/*. Kanban pasó de ser un simple tablero de tareas a una auténtica plataforma multi-agente: descomposición automática por el orquestador, topología swarm, tareas programadas, worktree por tarea, anulaciones de modelo por tarea — 104 PRs de principio a fin. session_search fue reconstruido desde cero para ser instantáneo y gratuito. La defensa Promptware aterrizó para bloquear ataques de clase Brainworm. Bitwarden Secrets Manager reemplazó cada clave API por proveedor con un único token de arranque. Dos nuevos proveedores de image_gen, paquetes de skills, ntfy como la 23ª plataforma de mensajería y una profunda ronda de integración con xAI completaron una de las versiones más ambiciosas hasta la fecha.


Funcionalidades Principales

1. La Gran Refactorización — run_agent.py pasa de 16k a 3.8k líneas

Esta es la historia de ingeniería más destacada de la versión. El archivo central de Hermes — el bucle de conversación del agente — se redujo de 16.083 líneas a 3.821 (-76%). El código extraído se redistribuyó en 14 módulos cohesivos bajo el directorio agent/. Solo la función run_conversation ya ocupaba 3.877 líneas antes de la refactorización.

Lo importante es el impacto: cada extracción mantiene un reenviador delgado en AIAgent, cada ruta de parcheo de tests se conserva y todos los llamadores externos siguen siendo compatibles. El archivo que tardaba 90 segundos en cargarse en tu editor ahora se abre en un instante. Los autores de plugins por fin pueden hacer grep en el código base. El desarrollo futuro de Hermes avanza más rápido.

# El código base ahora es navegable — explora las entrañas del agente:
ls agent/
# agent/loop.py        agent/conversation.py  agent/tools.py
# agent/memory.py      agent/review.py        agent/compression.py
# ... y 8 módulos cohesivos más

2. Kanban se Convierte en una Verdadera Plataforma Multi-Agente

104 PRs transformaron Kanban de un tablero de tareas a una capa de orquestación multi-agente lista para producción. Esto es todo lo que cambió:

Orquestación y Despacho:

  • Descomposición automática al clasificar — suelta una tarea y el orquestador la descompone en un árbol de sub-tareas. Se acabó planificar manualmente la descomposición.
  • Topología swarm en un solo comandohermes kanban swarm crea un grafo Swarm v1 completo: raíz → workers paralelos → verificador con puerta → sintetizador con puerta, todo conectado mediante una pizarra compartida.
  • Agentes de revisión se despachan desde la columna de revisión — el trabajo completado recibe una revisión automática antes de aterrizar.
# Crea una topología swarm completa para trabajo complejo
hermes kanban swarm --title "Construir la API"

# Observa a tus workers en tiempo real
hermes kanban inspect

Configuración y Programación de Tareas:

  • Anulaciones de modelo por tarea — usa modelos baratos para tareas repetitivas y modelos caros para sub-tareas difíciles. Una configuración por tarjeta de tarea.
  • Horarios de inicio programados — programa una tarea para que comience a las 3 AM el martes. Útil para trabajos por lotes y ventanas de mantenimiento.
  • Directorio de trabajo predeterminado por tablero — cada tarea del tablero hereda un directorio de trabajo a menos que se sobrescriba.
  • Rutas de worktree y ramas configurables — cada worker se ejecuta en un git worktree aislado.
  • Límite de concurrencia max_in_progress — limita cuántas tareas se ejecutan simultáneamente por tablero.
  • TTL de reclamación, huellas de reintento, detección de tareas obsoletas y protecciones de regeneración previenen tormentas de workers.
# Ejemplo de configuración por tarea
tasks:
  - title: "Refactorizar módulo de autenticación"
    model_override: "claude-sonnet-4-20250514"  # modelo caro para trabajo difícil
  - title: "Actualizar documentación"
    model_override: "gpt-4.1-mini"              # modelo barato para tareas repetitivas
  - title: "Copia de seguridad nocturna"
    scheduled_at: "2026-06-01T03:00:00Z"

Panel de Control y Fiabilidad:

  • Zona de arrastrar para eliminar + eliminación masiva.
  • Endpoints de visibilidad de workers: /workers/active, /runs/{id}, /inspect.
  • Trabajos cron entre perfiles visibles en el panel.
  • Huellas digitales de errores de crash para prevenir el agotamiento de reintentos en toda la flota.
  • Pulido de UX del panel móvil para gestión desde cualquier lugar.

3. session_search Reconstruido — 4.500× Más Rápido, Costo Cero

El antiguo session_search era una herramienta con LLM auxiliar que costaba ~$0,30 por llamada, tardaba ~90 segundos en resumir tres sesiones y a veces confabulaba resultados cuando la sesión correcta ni siquiera aparecía en los resultados de búsqueda.

El nuevo session_search es una herramienta con tres modos (discovery, scroll, browse) inferidos a partir de los argumentos proporcionados — sin parámetro mode, sin LLM auxiliar, sin ajustes de configuración, sin skill complementaria.

Discovery: ~20ms (antes ~90s)  →  4.500× más rápido
Scroll:     ~1ms               →  instantáneo
Costo:      $0,00              →  completamente gratuito
# Modo Discovery — encuentra sesiones pasadas relevantes
session_search(query="refactorizar autenticación de usuario")

# Modo Scroll — navega por el contenido de las sesiones
session_search(session_id="abc123", scroll_offset=0)

# Modo Browse — inmersión profunda en una sesión específica
session_search(session_id="abc123", browse=True)

4. Defensa Promptware — Ataques de Clase Brainworm Bloqueados

Inspirada en la reciente investigación sobre Brainworm / Promptware Kill Chain, Hermes ahora defiende la ventana de contexto contra ataques de inyección de prompt que intentan secuestrar al agente a través de la salida de herramientas, memoria recuperada o skills almacenadas.

Tres capas de defensa:

  1. Fuente única de verdadtools/threat_patterns.py con ~15 nuevos patrones Brainworm/C2 compartidos en todo el código de escaneo.
  2. Escaneo de memoria al cargar — la memoria recuperada se escanea antes de entrar en la ventana de contexto.
  3. Delimitadores de resultado de herramientas — archivos maliciosos o servicios remotos ya no pueden hacerse pasar por las instrucciones del sistema de Hermes.

Complementado con un nuevo plugin security-guidance que detecta por patrones escrituras de código peligrosas antes de que se ejecuten.

5. Bitwarden Secrets Manager — Un Token Reemplaza Todas las Claves API

Deja de guardar claves API en texto plano en ~/.hermes/.env. Bitwarden Secrets Manager se integra de forma nativa — bws se autoinstala de forma diferida en el primer uso, y configuras Hermes con un único token de arranque:

# Configura tu token de acceso de Bitwarden
export BWS_ACCESS_TOKEN="tu-token-de-arranque"

# Hermes obtiene cada credencial de Bitwarden al iniciar
hermes chat

Características clave:

  • Rota una clave en la aplicación web de Bitwarden → la rotación realmente surte efecto. Bitwarden actúa por defecto como fuente de verdad, sobrescribiendo las variables de entorno coincidentes al iniciar.
  • Las credenciales se etiquetan con su origen para que puedas ver qué claves provienen de Bitwarden vs. del entorno local.
  • Soportadas URLs de EU Cloud y servidores Bitwarden autoalojados.
  • Configura secrets.bitwarden.override_existing: false para que las variables de entorno locales tengan prioridad.

6. Paquetes de Skills — Un Comando Slash, Múltiples Skills

Un paquete de skills es un grupo con nombre de skills que se cargan todas juntas con un solo comando slash. Configura tu paquete “día de escritura” y /writing-day activa todo para la sesión.

# Define un paquete en tu configuración
# Luego actívalo con un solo comando:
/writing-day
# Carga: humanizer + ideation + obsidian + youtube-content

Mejoras del Skills Hub:

  • Verificaciones de estado e insignias de actualización en cada skill.
  • Un trabajo cron watchdog mantiene tus skills instaladas al día.
  • Tres nuevas skills opcionales: code-wiki (LLM-Wiki de Karpathy, wiki de desarrollo indexada y persistente), openhands (delega en OpenHands para agentes de codificación paralelos) y web-pentest (recetas de pentest web OWASP).

7. Integración Profunda con xAI

Seis mejoras interconectadas de xAI:

Funcionalidad Descripción
Búsqueda Web xAI Nuevo proveedor plugins/web/xai/ — reutiliza tu OAuth de Grok existente o XAI_API_KEY, sin nuevas variables de entorno
hermes proxy upstream xAI Endpoint local compatible con OpenAI respaldado por xai-oauth — sin código PKCE que escribir en tu cliente
Detección de modelos retirados grok-4, grok-3 y otros modelos retirados se detectan al iniciar con hermes migrate xai para migración de configuración en un solo paso
Pausas naturales en TTS auto_speech_tags opcional inserta etiquetas [pause] entre párrafos para una voz con sonido más natural
Seguridad de base_url base_url de xai-oauth fijada al origen x.ai — cierra un vector de fuga de credenciales
Guía de ejecución Los modelos Grok reciben la misma disciplina de ejecución específica por familia que GPT/Codex — evita que afirmen finalización sin llamadas a herramientas
# Migra desde modelos xAI retirados
hermes migrate xai

# Verifica qué modelos siguen activos
hermes doctor

8. Generación de Imágenes Krea + Arquitectura de Plugins FAL

Dos nuevos proveedores de image_gen aterrizan y la arquitectura se vuelve más limpia:

  • Krea 2 Medium ($0,03) y Krea 2 Large ($0,06) — autodetectados, seleccionables mediante hermes tools → Image Generation → Krea.
  • Backend FAL.ai migrado de una herramienta monolítica a plugins/image_gen/fal/ — ahora es un solo archivo, no un fork. Los nuevos proveedores de imágenes están a un plugin de distancia.

9. ntfy — 23ª Plataforma de Mensajería

ntfy se une como la 23ª plataforma de mensajería — un servicio de notificaciones push autoalojable sin registro, sin clave API, solo una URL de topic. Tu agente puede enviarte notificaciones push desde cualquier trabajo cron, finalización de tarea kanban o llamada send_message — a tu teléfono, reloj, escritorio o homelab.

# Tu agente te envía una notificación cuando una tarea kanban se completa:
# "Tarea 'Refactorizar autenticación' completada — 3 archivos modificados, 45 tests superados"

# Todo mediante una única URL de topic ntfy, sin necesidad de cuenta

10. Orquestador de Sesiones TUI

El TUI Ink ganó una superposición de cambio de sesión activa. Lista, cambia entre, actualiza y cierra múltiples sesiones en vivo de proceso local sin salir del TUI. Despacha una nueva sesión con un selector de modelo con ámbito de sesión. Además, preajustes de modo DEC de seguimiento de ratón, preservación del historial de desplazamiento, mejoras en el renderizado de entrada IME y más.


Rendimiento

La ola de optimización de arranque en frío continuó con cuatro rondas principales:

Optimización Impacto
Importación diferida de openai._base_client -240ms, -17MB en cada invocación CLI
Optimizaciones de ruta caliente del bucle del agente 47% menos llamadas a funciones por turno (399k → 213k para chat de 31 turnos)
Verificación de viabilidad de compresión diferida -170 a -290ms por construcción de agente
Sondeo adaptativo de subprocesos ~195ms por llamada a herramienta, 1+ segundo por turno

Resultados de benchmark:

  • Arranque en frío en Termux: 2,9s → 0,8s (en dispositivos móviles)
  • hermes --version en frío: 701ms → 258ms (-63%)
  • Benchmark cara a cara contra Codex CLI pasó de 5/11 victorias a 6/11

Seguridad y Fiabilidad

Promptware y Endurecimiento de Memoria

  • Defensa Promptware con patrones de amenaza compartidos, escaneo de memoria al cargar y delimitadores de resultado de herramientas.
  • Archivos del plano de control de Hermes protegidos contra inyección de prompt (auth.json, config.yaml, webhook_subscriptions.json, mcp-tokens/).
  • Denegación de escritura en <root>/.env al ejecutarse bajo un perfil.
  • Defensa en profundidad con denegación de lectura en almacenes de credenciales.

Seguridad de Credenciales

  • Las claves API obtenidas del entorno en tiempo de ejecución ya no se filtran a auth.json.
  • base_url de xai-oauth fijada al origen x.ai — vector de fuga de credenciales cerrado.
  • Tokens OAuth caducados puestos en cuarentena al fallar la renovación (xAI, Codex, MiniMax).
  • inference_base_url de Nous Portal validado contra lista blanca de hosts.

Cadena de Suministro

  • Auditoría de cadena de suministro bajo demandahermes audit verifica dependencias contra OSV.dev.
  • hermes update valida sintácticamente archivos críticos después de pull, con reversión automática en caso de fallo.

Nuevas Herramientas y Comandos Integrados

Herramienta / Comando Descripción
session_search Reconstruido — tres modos (discovery/scroll/browse), costo cero, 4.500× más rápido
hermes kanban swarm Crea una topología multi-agente Swarm v1 completa en un solo comando
hermes migrate xai Migración en un paso desde modelos xAI retirados
hermes audit Auditoría de cadena de suministro bajo demanda mediante OSV.dev
hermes proxy Nuevo upstream xAI — endpoint local compatible con OpenAI respaldado por xai-oauth
/exit --delete Elimina la sesión al salir
/update Comando slash para actualizar Hermes desde CLI/TUI

Agente Central y Arquitectura

Bucle del Agente y Conversación

  • Respaldo en capas para tareas auxiliares (primario → cadena → agente principal → fallo controlado) ante errores de capacidad (402/429/conexión).
  • Estado de reintento/respaldo en buffer — solo se muestra en fallo terminal (sin ruido de “reintentando…” a mitad de ejecución).
  • Contrato de host para motores de contexto externos.
  • Respaldo inmediato ante bloqueos de política de contenido del proveedor.
  • Verificador de resultado de herramienta por turno para la herramienta patch — preservación de sangría, preservación de CRLF, escalado de fallos por archivo.
  • Visión nativa con un solo ajuste para modelos de proveedores personalizados.
  • Recuperación ante proveedores que devuelven contenido de herramienta de tipo lista.
  • ContextVars se propagan a hilos de trabajo de herramientas concurrentes.

Sesiones y Memoria

  • Persistencia de platform_message_id para recuperación entre reinicios de gateway.
  • Las menciones de contexto de memoria en línea permanecen visibles en la conversación.
  • La memoria recuperada se etiqueta como informativa, no autoritativa.
  • La inyección de herramientas de memoria + motor de contexto está condicionada por enabled_toolsets.
  • Protección contra derivas externas en MEMORY.md / USER.md.
  • Mapeo de pares en tiempo de ejecución Honcho con asistente de configuración y documentación.

Maduración de Codex / Responses-API

  • Watchdog TTFB para streams de Codex Responses estancados.
  • Sugerencia práctica cuando el detector de llamadas obsoletas se activa ante un patrón conocido de rechazo silencioso.
  • Eliminado el helper responses.stream() del SDK — consumo directo de eventos.
  • El código 429 de cuota de Codex ahora se clasifica como límite de tasa, no como credenciales faltantes.

Plataformas de Mensajería (Gateway)

  • Modo entregable — los agentes envían artefactos como subidas nativas desde cualquier plataforma (Slack/Discord/Telegram/Teams/Email).
  • hermes send — canaliza la salida de cualquier script a cualquier plataforma de mensajería.
  • Adaptador de Discord migrado a plugin empaquetado.
  • Adaptador de Mattermost migrado a plugin empaquetado.
  • Telegram: edición de mensajes de estado in situ, ruta de audio sin STT, enrutamiento de documentos de imagen por el pipeline de visión, autenticación con ámbito de chat, disable_topic_auto_rename configurable.
  • Signal: filtro require_mention para chats grupales.
  • Matrix: advertencia ante pérdidas silenciosas de mensajes por desfase de reloj + conjunto completo de dependencias E2EE.
  • Feishu: requiere secreto de autenticación para webhook + exige autenticación para botones de aprobación.
  • DingTalk: transcripción de notas de voz nativas.
  • WeCom: análisis seguro de XML no confiable.

Sistema de Herramientas

  • Todos los proveedores de navegador en la nube (Browserbase, Anchor, Camofox, Hyperbrowser) migrados a plugins estilo image_gen.
  • Lanzamiento automático de navegador de la familia Chromium para CDP.
  • Respuestas de URL efímeras de xAI almacenadas en caché en disco.

MCP

  • Catálogo MCP aprobado por Nous con selector interactivo — hermes mcp presenta un catálogo seleccionado de servidores revisados por Nous, instálalos con una sola pulsación.
  • Soporte de certificado de cliente TLS (mTLS) para servidores MCP HTTP y SSE.
  • Respaldo de pegado de stdin para flujo OAuth sin interfaz gráfica.

CLI y TUI

  • Comando slash /update en CLI y TUI con reversión automática ante fallo de verificación sintáctica.
  • Bandera --branch para hermes update.
  • Indicador ▶ N en la barra de estado para tareas /background en ejecución.
  • Umbrales de colapso de pegado configurables (TUI + CLI).
  • /resume acepta números de posición.
  • Orquestador de sesiones TUI — múltiples sesiones en vivo en una sola ventana TUI.
  • Preajustes de modo DEC mouse_tracking + preservación del historial de desplazamiento entre ramas y Termux.
  • Perfil activo mostrado en el prompt del TUI.
  • Copia al portapapeles en linux/wayland.
  • Texto completo del asistente en el historial de desplazamiento (sin truncamiento de historial).

Docker

  • Supervisión de contenedores con s6-overlay — protocolo ServiceManager (backends systemd/launchd/Windows/s6), supervisión de gateway por perfil, reconciliación de reinicio de contenedor.
  • Actualización de Node a 22 LTS mediante multi-stage desde node:22-bookworm-slim.
  • SHA de git del momento de compilación incrustado en la imagen para informes de hermes dump.
  • hermes update imprime instrucciones de docker pull dentro del contenedor.
  • Descubrimiento del binario Chromium del navegador del agente al arrancar.

Actualización

hermes update

Si estás usando modelos xAI retirados el 15 de mayo, ejecuta primero la migración:

hermes migrate xai
hermes update

Para nuevas instalaciones, visita la guía de instalación.


Changelog completo en GitHub

← Hermes Agent Changelog