v0.5.0

Hermes Agent v0.5.0 — La Versión de Endurecimiento


Resumen

v0.5.0 — La Versión de Endurecimiento. Publicada el 28 de marzo de 2026. Esta versión tiene como objetivo hacer que Hermes Agent esté listo para producción: más de 50 correcciones de seguridad y fiabilidad, una auditoría completa de la cadena de suministro y expansiones importantes de plataforma que posicionan a Hermes como un competidor serio en el espacio de agentes autónomos.

Para este momento, el proyecto ya había superado las 15.700 estrellas en GitHub desde su lanzamiento público inicial en febrero de 2026, con más de 242 colaboradores. Nous Research describió esta versión como la que “endurece” cada capa del stack — desde el bloqueo de versiones de dependencias y el parcheo de CVEs, hasta las protecciones SSRF y la prevención de inyección de shell.


Funcionalidades Principales

1. Hugging Face como Proveedor de Inferencia de Primera Clase

Hermes Agent ahora se integra de forma nativa con la API de Inferencia de Hugging Face, incluyendo autenticación, asistente de configuración y un selector inteligente de modelos que mapea los valores predeterminados agénticos de OpenRouter a sus equivalentes en HF.

# Durante la configuración, Hugging Face aparece como opción de proveedor
hermes setup
# Selecciona "Hugging Face" → introduce tu token de API de HF → elige entre los modelos agénticos seleccionados

# Cambiar a un modelo de Hugging Face en tiempo de ejecución
hermes model --provider huggingface

Funcionamiento interno:

  • Lista de modelos seleccionados que mapea los valores predeterminados de OpenRouter a equivalentes de HF, para que elijas el modelo correcto sin dudar
  • Los proveedores con 8+ modelos seleccionados omiten la consulta en vivo del endpoint /models para un inicio instantáneo
  • Flujo completo de autenticación con tu token de API de HF, almacenado de forma segura en el almacén de credenciales de Hermes

2. Telegram Private Chat Topics

Conversaciones basadas en proyectos con vinculación de habilidades funcionales por tema — ahora puedes ejecutar flujos de trabajo aislados dentro de un solo chat de Telegram. Cada tema tiene su propio conjunto de habilidades, su propio contexto y su propia personalidad de agente.

# hermes.config.yaml
telegram:
  private_chat_topics: true
  topic_skills:
    - topic: "ml-experiments"
      skills: [python-ml, data-analysis, notebook]
    - topic: "devops"
      skills: [docker, terraform, kubernetes]

Esto significa que un solo chat de Telegram puede alojar tu flujo de trabajo de ML, tu gestión de infraestructura y tu revisión de código — todo aislado, todo persistente, todo en un solo lugar.

3. Backend Nativo Modal SDK

Se reemplazó la dependencia swe-rex con el SDK nativo de Modal (Sandbox.create.aio + exec.aio), eliminando los túneles SSH y simplificando drásticamente el backend de terminal de Modal.

# Antes: swe-rex creaba túneles SSH para cada operación en el sandbox
# Después: llamadas directas al SDK — más rápido, más simple, sin gestión de túneles

# El agente ahora usa las primitivas asíncronas nativas de Modal:
# Sandbox.create.aio()  — crea sandboxes sin sobrecarga de túneles
# exec.aio()            — ejecuta comandos directamente a través del SDK

Este cambio elimina una dependencia arquitectónica significativa y hace que la ejecución en sandbox sea más fiable y fácil de depurar.

4. Activación de Hooks del Ciclo de Vida de Plugins

El sistema de hooks de plugins ahora está completamente operativo. Cuatro hooks del ciclo de vida se disparan en puntos clave del bucle del agente:

Hook Punto de Activación Caso de Uso
pre_llm_call Antes de cada llamada a la API del LLM Modificar prompts, inyectar contexto, registrar peticiones
post_llm_call Después de cada llamada a la API del LLM Post-procesar respuestas, extraer datos estructurados
on_session_start Cuando una sesión comienza Inicializar recursos, configurar espacio de trabajo
on_session_end Cuando una sesión termina Limpiar, persistir estado, enviar notificaciones
# Ejemplo de plugin usando hooks del ciclo de vida
# my_plugin.py
def pre_llm_call(context, messages):
    # Añadir contexto del sistema personalizado antes de que el LLM vea el prompt
    messages.insert(0, {"role": "system", "content": "Fecha de hoy: 2026-03-28"})
    return messages

def post_llm_call(context, response):
    # Registrar el uso de tokens en tu plataforma de análisis
    log_usage(response.usage)
    return response

Estos hooks se disparan en CLI, gateway y todas las plataformas de mensajería — completando una funcionalidad de extensibilidad muy solicitada.

5. Enforcement de Uso de Herramientas GPT

Los modelos GPT tenían una peculiaridad persistente: describían lo que pretendían hacer en lugar de realmente llamar a las herramientas. v0.5.0 añade GPT_TOOL_USE_GUIDANCE — una inyección especializada en el prompt del sistema que obliga a los modelos GPT a usar herramientas en lugar de narrar acciones.

# Interno: antes de cada llamada a la API de GPT, el agente inyecta orientación:
GPT_TOOL_USE_GUIDANCE = """
Cuando necesites realizar una acción, DEBES usar la herramienta apropiada.
NO describas lo que harías — llama directamente a la herramienta.
"""

Además, las advertencias de presupuesto obsoletas que se acumulaban en el historial de conversación (y hacían que los modelos evitaran usar herramientas en turnos sucesivos) ahora se eliminan automáticamente de la transcripción.

6. Corrección de Límites de Salida de Anthropic

Se reemplazó el límite rígido de 16K max_tokens con límites de salida nativos por modelo:

Modelo Límite Anterior Nuevo Límite
Claude Opus 4.6 16K 128K
Claude Sonnet 4.6 16K 64K
Otros modelos Claude 16K Específico del modelo

Esto corrige dos problemas de larga data:

  • Errores de “Response truncated” cuando el agente necesitaba más de 16K tokens de salida
  • Agotamiento del presupuesto de razonamiento — el agente ahora detecta cuando un modelo usa todos los tokens de salida en razonamiento y omite inteligentemente los reintentos de continuación inútiles

7. Soporte Nix Flake

Por @alt-glitch — compilación completa con uv2nix, módulo NixOS con modo contenedor persistente, claves de configuración autogeneradas desde el código fuente Python, y PATHs con sufijo para facilidad de uso del agente.

# flake.nix
{
  inputs.hermes-agent.url = "github:NousResearch/hermes-agent";
  # ...
  hermes-agent.nixosModules.default
  # Proporciona: servicio hermes-agent con modo contenedor persistente
}

8. Endurecimiento de la Cadena de Suministro

Esta versión implementó una defensa completa de la cadena de suministro:

  • Se eliminó la dependencia comprometida litellm — un incidente de cadena de suministro ampliamente publicitado
  • Se bloquearon todos los rangos de versión de dependencias — sin más desviaciones de versiones flotantes
  • Se regeneró uv.lock con hashes criptográficos — cada dependencia se verifica en el momento de la instalación
  • Se añadió un flujo de trabajo de CI que escanea cada PR en busca de patrones de ataque a la cadena de suministro
  • Se actualizaron las dependencias para corregir CVEs conocidos en todo el árbol de dependencias

Nuevas Habilidades

Habilidad Descripción
G0DM0D3 Habilidad de jailbreak Godmode para ingeniería avanzada de prompts y exploración de capacidades
Gestión de Docker Gestión del ciclo de vida de contenedores, construcción de imágenes y orquestación con compose
Migración OpenClaw v2 17 nuevos módulos para migrar de OpenClaw a Hermes Agent, incluyendo resumen de terminal

Mejoras del Sistema de Habilidades

  • Transferencia de variables de entorno — las habilidades pueden declarar qué variables de entorno necesitan, y Hermes las transmite de forma segura
  • Caché de prompts de habilidades con módulo compartido skill_utils para un tiempo hasta el primer token (TTFT) significativamente más rápido
  • API Git Trees utilizada para la instalación de habilidades para evitar la pérdida silenciosa de subdirectorios
  • Las habilidades creadas por el agente ahora se tratan correctamente como de confianza (no como contenido comunitario no confiable)

Plataformas de Mensajería

Telegram

  • Private Chat Topics con vinculación de habilidades por tema (ver Funcionalidades Principales arriba)
  • Descubrimiento automático de IPs alternativas vía DNS-over-HTTPS cuando api.telegram.org es inaccesible — el agente encuentra rutas alternativas
  • Modo de hilo de respuesta configurable — controla cómo el agente organiza sus respuestas en hilos
  • Reconexión auto-reprogramada cuando el sondeo falla después de errores 502

Discord

  • Corregido el indicador fantasma de “escribiendo” que persistía después de que el turno del agente terminara

Slack

  • Los mensajes de progreso de llamadas a herramientas ahora se enrutan correctamente al hilo de Slack correspondiente

WhatsApp

  • Soporte de descarga de medios — el agente ahora puede descargar documentos, audio y mensajes de video

Núcleo del Gateway

  • Comando /verbose para plataformas de mensajería — alternar la verbosidad de salida de herramientas desde cualquier chat
  • Notificaciones de revisión en segundo plano enviadas directamente al chat del usuario
  • Reintentar fallos de envío transitorios y notificar al usuario cuando se agotan los reintentos
  • /stop fuerza la liberación del bloqueo de sesión — recupera agentes colgados sin reiniciar el gateway
  • SessionStore seguro para hilos con threading.Lock
  • El gateway ya no desperdicia ~10K tokens cargando el AGENTS.md del repositorio de Hermes en cada sesión
  • Se añadieron tiempos de espera de solicitud a los adaptadores HA, Email, Mattermost y SMS

CLI y Experiencia de Usuario

Mejoras de CLI Interactiva

  • Modo de entrada ocupada configurable — controla lo que sucede cuando escribes durante el procesamiento del agente
  • Pegado multilínea preservado — sin entrada distorsionada al pegar comandos de varias líneas
  • Callback de generación de herramientas — actualizaciones en streaming de “preparing terminal…” mientras el agente genera argumentos de herramientas
  • Correcciones de la barra de estado: los tokens con ceros finales ahora se muestran correctamente (260K en lugar de 26K), duplicados y degradación corregidos durante sesiones largas
  • El cuadro de razonamiento ya no se renderiza 3 veces durante los bucles de llamadas a herramientas
  • “Event loop is closed” / “Press ENTER to continue” durante sesiones inactivas — corregido con una solución de tres capas
  • El TUI se refresca antes de la salida de tareas en segundo plano para evitar solapamiento visual

Configuración y Ajustes

  • Revisión del comando /model — pipeline compartido extraído para CLI y gateway, soporte de endpoint personalizado
  • El menú de configuración para usuarios recurrentes ahora usa mapeo explícito de teclas en lugar de índice posicional frágil
  • hermes update endurecido contra historial divergente, ramas no principales y casos extremos del gateway
  • La migración de OpenClaw ya no sobrescribe los valores predeterminados; el asistente de configuración omite las secciones ya importadas
  • La carga de AGENTS.md ahora se detiene en el nivel superior — sin más recorrido recursivo de directorios
  • Rutas de Homebrew de macOS añadidas a la resolución de PATH del navegador y terminal
  • SOUL.md predeterminado restablecido al texto de identidad base

Sistema de Herramientas

Servidor API

  • Soporte de Idempotency-Key — semántica de reintento seguro para llamadas API
  • Límites de tamaño de cuerpo y envoltorio de error compatible con OpenAI
  • Cancela agentes huérfanos al desconectar SSE con interrupción real
  • El streaming ya no se interrumpe cuando el agente realiza llamadas a herramientas

Terminal y Operaciones de Archivos

  • El analizador de parches V4A ahora maneja correctamente bloques de solo adición
  • Retroceso exponencial para sondeo persistente de shell — reduce el uso de CPU
  • Se añadió tiempo de espera a las llamadas de subproceso en context_references
  • Protección SSRF añadida a browser_navigate, vision_tools y web_tools
  • Error de 402 créditos insuficientes manejado elegantemente en la herramienta de visión
  • El tiempo de espera del comando del navegador ahora es configurable vía config.yaml

MCP

  • Resolución unificada de conjuntos de herramientas MCP basada en tiempo de ejecución y configuración
  • Protección contra colisión de nombres de herramientas MCP — evita sobrescritura silenciosa de herramientas

Seguridad y Fiabilidad

Endurecimiento de Seguridad (más de 50 correcciones)

Categoría Corrección
Protección SSRF browser_navigate, vision_tools y web_tools ahora bloquean Server-Side Request Forgery
Restricción de Subagentes Los conjuntos de herramientas de subagentes restringidos al conjunto habilitado del padre — sin escalada de privilegios
Prevención Zip-Slip La auto-actualización endurecida contra ataques de path traversal
Inyección de Shell La expansión de ruta ~user ya no permite inyección de comandos
Detección de Comandos Entrada normalizada antes de la detección de comandos peligrosos
Tirith Los veredictos de bloqueo ahora son aprobables en lugar de bloqueo duro (humano en el bucle)
Dependencias Se eliminaron litellm/typer/platformdirs comprometidos, todos los rangos bloqueados, lockfile con hashes

Fiabilidad

  • Contención de bloqueo de escritura WAL de SQLite que causaba congelaciones de TUI de 15-20s — corregido
  • Concurrencia de SQLite endurecida con garantías de integridad de transcripción de sesión
  • Prevención de re-disparo de trabajos cron en bucles de crash/reinicio del gateway
  • Las sesiones cron correctamente marcadas como finalizadas después de completar el trabajo

Rendimiento

  • Optimizaciones de inicio TTFT — mejoras rápidas para arranques en frío más veloces
  • Caché de prompts de habilidades con módulo compartido skill_utils reduce la computación repetida
  • Lecturas redundantes de archivos eliminadas para condiciones de habilidades en el constructor de prompts
  • Tiempo de espera de API predeterminado aumentado de 900s a 1800s para modelos de razonamiento lento

Actualización

hermes update

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


Registro de cambios completo en GitHub

← Hermes Agent Changelog