hermes@agent:~/.hermes$ cat hermes.md

Hermes Agent: la referencia para profesionales (2026)

# v0.14 Foundation agrega SuperGrok OAuth, hermes proxy, x_search, instalación desde PyPI, 22 plataformas de mensajería, /handoff, diagnósticos de escritura LSP, video_generate, computer_use, beta nativa para Windows e instalaciones diferidas más ligeras.

words: 14937 read_time: 69m updated: 2026-05-22 04:34
$ less hermes.md

TL;DR: Hermes Agent es un agente de AI open-source que se mejora a sí mismo, creado por Nous Research. Funciona como CLI y como gateway de mensajería multiplataforma, almacena una identidad duradera y memoria persistente en disco, agrega skills que mejoran con el uso y trabaja con cualquier proveedor LLM compatible con OpenAI: Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Qwen Cloud, Hugging Face, Google, xAI/SuperGrok o tu propio endpoint autoalojado.1219 A partir de v0.14.0 (16 de mayo de 2026), Hermes agrega SuperGrok OAuth con contexto de 1M en grok-4.3, un proxy local compatible con OpenAI para proveedores OAuth (hermes proxy), x_search como función de primera clase, soporte de instalación desde PyPI, instalación diferida de dependencias, 22 plataformas de mensajería con LINE y SimpleX Chat, /handoff, diagnósticos semánticos LSP después de escrituras, video_generate unificado, computer_use mediante cua-driver para proveedores que no son Anthropic, beta nativa para Windows y el cierre de 12 P0 / 50 P1.19 La parte más difícil para la mayoría de los usuarios nuevos es la autenticación del proveedor: Hermes admite ~20 proveedores de primera clase más endpoints personalizados, y tres rutas de autenticación distintas (clave API en .env, OAuth mediante hermes model o endpoint personalizado en config.yaml). El modelo de autenticación es lo primero que debes aprender; todo lo demás depende de qué proveedor se resuelva.

Hermes Agent funciona como un runtime completo de agente, no como una envoltura de chat. Lee tu sistema de archivos, ejecuta comandos en backends con sandbox, extrae contenido de la web, lanza subagentes, ejecuta trabajos cron programados, habla con Telegram/Discord/Slack/WhatsApp/Signal/Email desde un único proceso gateway y crea sus propias skills a partir de la experiencia.1 El CLI es una interfaz de terminal construida sobre un bucle de conversación en run_agent.py; el gateway es un proceso de larga duración que enruta mensajes desde plataformas de mensajería a través del mismo bucle de conversación.3

La diferencia entre un uso casual y experto de Hermes se reduce a cinco sistemas. Domínalos y Hermes se convierte en un multiplicador de fuerza:

  1. Resolución de proveedores: cómo los flujos de autenticación se asignan a llamadas API
  2. Jerarquía de configuración: config.yaml + .env + auth.json + SOUL.md + AGENTS.md
  3. Sistema de tool + toolset: qué puede hacer el agente, limitado por plataforma
  4. Sistema de skills: memoria procedural que el agente crea y evoluciona
  5. Gateway + cron + profiles: ejecutar Hermes donde vives, no solo donde estás

Puntos clave

  • La autenticación de proveedores tiene tres rutas, no una. Clave API en .env, OAuth mediante hermes model/hermes auth o endpoint personalizado en config.yaml. Elige la ruta que corresponda a tu proveedor, no la que te resulte familiar.
  • Cambiar de proveedor es un solo comando. hermes model te guía de forma interactiva por todos los proveedores compatibles, incluidos los inicios de sesión con OAuth, y /model provider:model cambia a mitad de sesión sin perder el historial.2
  • Dos archivos son la superficie de configuración editable por el usuario. ~/.hermes/config.yaml contiene la configuración y ~/.hermes/.env contiene los secretos. auth.json, SOUL.md, MEMORY.md y skills/ los administra Hermes directamente; puedes editar SOUL.md a mano, pero el agente toca el resto por su cuenta.4
  • Hermes es el sucesor de OpenClaw. Si estás migrando, hermes claw migrate importa automáticamente más de 30 categorías de estado.5
  • La calidad del servicio depende de tu modelo auxiliar. La visión, el resumen web, la compresión y el volcado de memoria usan un LLM auxiliar separado. De forma predeterminada, es Gemini Flash mediante autodetección (OpenRouter → Nous → Codex); si ninguno de esos está configurado, estas funciones se degradan silenciosamente hasta que apuntes los espacios auxiliares a tu proveedor principal.4

Qué cambia en v0.14

v0.14.0 no se trata tanto de una sola función destacada, sino de reducir la fricción de configuración y ampliar los lugares donde Hermes puede ejecutarse.19 Los principales cambios operativos son:

  • La instalación y el inicio son más ligeros. pip install hermes-agent funciona desde PyPI, los adaptadores pesados se instalan de forma diferida en el primer uso, y la ruta de arranque posterga suficiente trabajo como para reducir el inicio en frío por unos 19 segundos.
  • Las suscripciones pueden convertirse en endpoints API locales. hermes proxy convierte proveedores respaldados por OAuth, como Claude Pro, ChatGPT Pro y SuperGrok, en un endpoint local compatible con OpenAI para herramientas como Codex, Aider, Cline y Continue.
  • El alcance del gateway se expande. LINE y SimpleX Chat elevan el conteo de plataformas a 22, Microsoft Teams está conectado de extremo a extremo, el backfill del historial de Discord está activado de forma predeterminada, y los prompts clarify de Telegram/Discord ahora usan botones nativos.
  • La verificación al escribir mejora. Después de editar, Hermes puede mostrar resúmenes de mutaciones de archivos por turno y diagnósticos semánticos del servidor de lenguaje antes del siguiente turno, lo que lo acerca más al trabajo de agentes basado en evidencia.
  • Las herramientas de escritorio y medios se amplían. computer_use funciona mediante cua-driver para proveedores que no son Anthropic, video_generate se unifica detrás de backends conectables, y vision_analyze envía píxeles sin procesar a modelos que realmente pueden ver.

Cada sección a continuación se basa en la documentación upstream en hermes-agent.nousresearch.com/docs y en el árbol de código fuente en github.com/NousResearch/hermes-agent. Cada afirmación factual tiene una nota al pie que apunta a la página upstream específica de donde proviene.

Elige tu ruta

Lo que necesitas Ve aquí
Instalar Hermes Instalación — instalador de una línea o pasos manuales
Iniciar sesión en un proveedor Autenticación y proveedores — la sección por la que llegaste aquí
Cambiar modelos a mitad de sesión El comando hermes auth y Endpoints personalizados y autoalojados para la sintaxis de /model
Ejecutar un LLM local Endpoints personalizados y autoalojados — Ollama, vLLM, SGLang, llama.cpp, LM Studio
Conectar plataformas de mensajería Gateway de mensajería — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat (22 en total)
Escribir o instalar una skill Sistema de skills — divulgación progresiva + skill hub
Referencia profunda para cada comando de CLI Sigue leyendo y enlaza directamente a Comandos de CLI

Cómo funciona Hermes: el modelo mental

Hermes está estructurado alrededor de un único bucle de conversación que cualquier punto de entrada puede invocar. Los puntos de entrada son la CLI (cli.py), el gateway de mensajería (gateway/run.py), el adaptador ACP para la integración con editores, el ejecutor por lotes y un servidor API.3 Todos ellos terminan llamando a AIAgent.run_conversation() en run_agent.py, que:

  1. Construye el system prompt a partir de SOUL.md, MEMORY.md, USER.md, skills, archivos de contexto y guía de herramientas mediante prompt_builder.py3
  2. Resuelve el proveedor en tiempo de ejecución mediante runtime_provider.py; este es el paso que elige tu autenticación, URL base y modo API3
  3. Llama al proveedor usando uno de tres modos API: chat_completions, codex_responses o anthropic_messages3
  4. Despacha cualquier llamada a herramientas devuelta mediante model_tools.py y el registro central de herramientas (tools/registry.py)3
  5. Repite el bucle hasta que el modelo produce una respuesta final y luego persiste la sesión en SQLite con FTS53

Entender este bucle importa porque cada función — personalidades, memoria, skills, compresión, fallback — se conecta a una de estas etapas. Cuando lees una clave de configuración y te preguntas qué hace, la respuesta suele ser: “es un ajuste en la etapa 1, 2, 3 o 4 del bucle anterior”.

Núcleo independiente de la plataforma. Una sola clase AIAgent sirve a CLI, gateway, ACP, lotes y servidor API. Las diferencias de plataforma viven en el punto de entrada, no en el agente en sí.3 Por eso los mismos slash commands funcionan en la terminal y en Telegram: se despachan desde un COMMAND_REGISTRY compartido en hermes_cli/commands.py.6

La estructura de directorios es el sistema. Hermes guarda todo bajo ~/.hermes/ (o $HERMES_HOME para perfiles no predeterminados):4

~/.hermes/
├── config.yaml        # Settings (model, terminal, TTS, compression, etc.)
├── .env               # API keys and secrets
├── auth.json          # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md            # Primary agent identity (slot #1 in system prompt)
├── memories/          # Persistent memory (MEMORY.md, USER.md)
├── skills/            # Bundled + agent-created + hub-installed skills
├── cron/              # Scheduled jobs
├── sessions/          # Gateway session state
└── logs/              # agent.log, gateway.log, errors.log (secrets auto-redacted)

Cada archivo anterior tiene un rol específico; ninguno se solapa con otro. Si estás buscando “dónde guarda Hermes X”, está en uno de estos.


Instalación

El instalador de una línea sigue siendo la ruta guiada para la mayoría de los usuarios. Gestiona Python, uv, Node.js, ripgrep, ffmpeg, la clonación del repo, el entorno virtual y el comando global hermes.7 v0.14.0 también incluye un paquete real de PyPI, así que pip install hermes-agent ahora es una instalación directa viable cuando ya controlas el entorno Python.19

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
pip install hermes-agent
hermes

Funciona en Linux, macOS, WSL2 y Android/Termux (el instalador detecta Termux automáticamente y cambia a un bundle probado para Android).7 v0.14.0 agrega soporte nativo para Windows en beta temprana mediante un instalador de PowerShell, pero WSL2 sigue siendo la recomendación más segura para uso en producción hasta que la ruta de Windows madure.19

Cuando termine:

source ~/.bashrc    # or ~/.zshrc
hermes              # Start chatting

El único requisito previo es git. El instalador aprovisiona automáticamente Python 3.11 mediante uv (sin sudo), Node.js v22 (para automatización del navegador y el puente de WhatsApp), ripgrep y ffmpeg.7

Verificar la instalación

hermes version      # Check version
hermes doctor       # Diagnose config/dependency issues
hermes status       # Show current configuration + auth state
hermes dump         # Copy-pasteable setup summary for debugging

hermes doctor te dice exactamente qué falta y cómo corregirlo.7 hermes dump es el comando de diagnóstico que debes pegar en un issue de GitHub o en un hilo de Discord cuando pidas ayuda: es un resumen en texto plano de toda tu configuración, con los secretos redactados.8

Instalación manual

Si necesitas control total — versión personalizada de Python, extras específicos, integración con Nix/NixOS — el flujo manual está documentado paso a paso en la guía de instalación upstream.7 Extras opcionales clave que puedes combinar con uv pip install -e ".[<extras>]":

Extra Qué agrega
all Todo lo siguiente
messaging Gateway de Telegram y Discord
cron Análisis de expresiones cron
cli UI de menú en terminal para el asistente de configuración
modal Backend de ejecución en la nube Modal
voice Entrada de micrófono de CLI + reproducción de audio
tts-premium Voces premium de ElevenLabs
honcho Memoria AI-native (integración con Honcho)
mcp Compatibilidad con Model Context Protocol
homeassistant Integración con Home Assistant
acp Compatibilidad con integración ACP para editores
slack Mensajería de Slack
pty Compatibilidad con terminal PTY (herramientas interactivas de CLI)
dev pytest y utilidades de prueba
termux Bundle probado para Android (incluye cron, cli, pty, mcp, honcho, acp)

El comando de instalación para Termux es diferente: usa pip con un archivo de constraints, no uv pip:

python -m pip install -e ".[termux]" -c constraints-termux.txt

Esto se debe a que .[all] en Android incluye faster-whisper mediante el extra voice, que depende de wheels de ctranslate2 que no se publican para Android.7


Autenticación y proveedores

Hermes admite ~19 proveedores de primera clase más endpoints personalizados, y tres rutas de autenticación distintas. Esta es toda la superficie de autenticación, organizada por ruta para que puedas encontrar la que coincide con lo que tienes.

Las tres rutas de autenticación

Cada proveedor en Hermes encaja en uno de tres patrones de autenticación:

Ruta 1 — clave API en .env. Coloca tu clave en ~/.hermes/.env y Hermes la lee al iniciar. La usan OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (y MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini y la mayoría de los proveedores externos.2

Ruta 2 — OAuth mediante hermes model o hermes auth. Inicia un flujo de código de dispositivo, abre un navegador, guarda credenciales en ~/.hermes/auth.json (y puede importar credenciales existentes de herramientas como Claude Code o Codex CLI). La usan Nous Portal, OpenAI Codex (cuenta de ChatGPT), GitHub Copilot y Anthropic (Claude Pro/Max).2

Ruta 3 — endpoint personalizado en config.yaml. Para cualquier API compatible con OpenAI: Ollama, vLLM, SGLang, llama.cpp, LM Studio, proxy LiteLLM, Together AI, Groq, Azure OpenAI o tu propio servidor autohospedado. Se configura una vez mediante hermes model → Custom endpoint y luego se conserva en config.yaml.2

La matriz completa de proveedores

Esta es la lista completa de proveedores de primera clase, con el flujo de configuración exacto para cada uno.2

Proveedor Ruta de autenticación Configuración
Nous Portal OAuth hermes model (inicio de sesión OAuth, basado en suscripción)
OpenAI Codex OAuth hermes model (código de dispositivo de ChatGPT, usa modelos Codex)
GitHub Copilot OAuth o token hermes model (código de dispositivo OAuth), o COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token
GitHub Copilot ACP Subproceso local hermes model (requiere CLI de copilot en PATH + copilot login)
Anthropic OAuth o clave API hermes model (prefiere credenciales de Claude Code), o ANTHROPIC_API_KEY, o token de configuración ANTHROPIC_TOKEN
OpenRouter clave API OPENROUTER_API_KEY en ~/.hermes/.env
AI Gateway (Vercel) clave API AI_GATEWAY_API_KEY en ~/.hermes/.env (proveedor: ai-gateway)
z.ai / GLM (ZhipuAI) clave API GLM_API_KEY en ~/.hermes/.env (proveedor: zai)
Kimi / Moonshot clave API KIMI_API_KEY en ~/.hermes/.env (proveedor: kimi-coding)
MiniMax (global) clave API MINIMAX_API_KEY en ~/.hermes/.env (proveedor: minimax)
MiniMax China clave API MINIMAX_CN_API_KEY en ~/.hermes/.env (proveedor: minimax-cn)
Alibaba Cloud (Qwen) clave API DASHSCOPE_API_KEY en ~/.hermes/.env (proveedor: alibaba, alias: dashscope, qwen)
Kilo Code clave API KILOCODE_API_KEY en ~/.hermes/.env (proveedor: kilocode)
OpenCode Zen clave API OPENCODE_ZEN_API_KEY en ~/.hermes/.env (proveedor: opencode-zen)
OpenCode Go clave API OPENCODE_GO_API_KEY en ~/.hermes/.env (proveedor: opencode-go)
DeepSeek clave API DEEPSEEK_API_KEY en ~/.hermes/.env (proveedor: deepseek)
Hugging Face clave API HF_TOKEN en ~/.hermes/.env (proveedor: huggingface, alias: hf)
Google / Gemini clave API GOOGLE_API_KEY o GEMINI_API_KEY en ~/.hermes/.env (proveedor: gemini)
xAI (Grok) Proveedor nativo / OAuth de SuperGrok Proveedor de primera clase con acceso API directo y catálogo de modelos (v0.9.0+). v0.14.0 agrega OAuth de SuperGrok y eleva grok-4.3 a una ventana de contexto de 1M para cuentas habilitadas.21619
xAI Custom Voices clave API Proveedor TTS con clonación de voz. Nuevo en v0.13.0; configúralo en tts: dentro de config.yaml y proporciona la clave de xAI en .env.18
Xiaomi MiMo Proveedor nativo Proveedor de primera clase con asistente de configuración y catálogo de modelos. MiMo v2 Pro gratis en Nous Portal para tareas auxiliares (v0.9.0+).1615
Google AI Studio clave API GOOGLE_API_KEY o GEMINI_API_KEY en ~/.hermes/.env. Acceso directo a Gemini con longitudes de contexto detectadas automáticamente mediante el registro models.dev (v0.8.0+).15
Qwen Cloud OAuth Proveedor OAuth con soporte para solicitudes de portal (v0.8.0+). El proveedor pasó de llamarse Alibaba Cloud a Qwen Cloud en v0.14.0; las claves de configuración existentes siguen funcionando.1519
Custom endpoint config.yaml hermes model → “Custom endpoint” (guardado en config.yaml)

Anthropic: tres métodos de autenticación

Anthropic tiene su propia sección porque Hermes admite tres rutas distintas hacia Claude, y elegir la correcta importa. Según la documentación upstream:2

# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model

# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic

# Auto-detect Claude Code credentials
hermes chat --provider anthropic   # reads Claude Code files automatically

Cuando eliges OAuth de Anthropic mediante hermes model, Hermes prefiere el almacén de credenciales propio de Claude Code antes que copiar el token en ~/.hermes/.env. Así las credenciales actualizables de Claude siguen siendo actualizables.2 Si ya usas Claude Code en la misma máquina, esta es la ruta más limpia.

Para fijar Anthropic de forma permanente en config.yaml:

model:
  provider: "anthropic"
  default: "claude-sonnet-4-6"

--provider claude y --provider claude-code también funcionan como atajos para --provider anthropic.2

GitHub Copilot: dos modos

Copilot es compatible en dos modos: API directo de Copilot (recomendado) y Copilot ACP (que inicia el CLI local de Copilot como subproceso).2

# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4

# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp

La autenticación se revisa en este orden, según la documentación upstream:2 1. Variable de entorno COPILOT_GITHUB_TOKEN 2. Variable de entorno GH_TOKEN 3. Variable de entorno GITHUB_TOKEN 4. Respaldo de CLI con gh auth token 5. Inicio de sesión con código de dispositivo OAuth mediante hermes model

El tipo de token importa. El API de Copilot no admite Personal Access Tokens clásicos (ghp_*). Los tipos admitidos son tokens OAuth (gho_*), PATs fine-grained (github_pat_* con permiso Copilot Requests) y tokens de GitHub App (ghu_*). Si tu gh auth token devuelve un token ghp_*, usa hermes model para autenticarte mediante OAuth en su lugar.2

Proveedores de IA chinos (soporte de primera clase)

Hermes tiene soporte integrado para z.ai/GLM, Kimi/Moonshot, MiniMax (endpoints globales + China) y Alibaba Cloud con IDs de proveedor dedicados.2

# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5                 # Requires: GLM_API_KEY

# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding   # Requires: KIMI_API_KEY

# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7          # Requires: MINIMAX_API_KEY

# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7       # Requires: MINIMAX_CN_API_KEY

# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus          # Requires: DASHSCOPE_API_KEY

Las URL base se pueden sobrescribir con las variables de entorno GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL o DASHSCOPE_BASE_URL.2

Z.AI detecta automáticamente el endpoint. Al usar el proveedor z.ai/GLM, Hermes prueba varios endpoints (global, China, variantes de codificación) para encontrar uno que acepte tu clave API. El endpoint funcional se guarda automáticamente en caché, por lo que la mayoría de los usuarios no necesitan GLM_BASE_URL.2

xAI (Grok) activa automáticamente el almacenamiento en caché de prompts. Cuando la URL base contiene x.ai, Hermes envía el encabezado x-grok-conv-id con cada solicitud para enrutarla al mismo servidor dentro de una sesión de conversación, reutilizando prompts de sistema e historial en caché.2 Es automático; no necesitas configuración.

El comando hermes auth

hermes auth es el comando de gestión de credenciales para pools y credenciales OAuth.6

hermes auth                              # Interactive wizard
hermes auth list                         # Show all credential pools
hermes auth list openrouter              # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2          # Remove by index
hermes auth reset openrouter             # Clear cooldowns

Los pools de credenciales te permiten rotar varias claves API o tokens OAuth para el mismo proveedor; son útiles para distribuir límites de tasa entre varias claves sin cambiar código.6 Los comandos heredados hermes login / hermes logout se eliminaron; usa hermes auth en su lugar.6

Endpoints personalizados y autohospedados

Hermes funciona con cualquier endpoint API compatible con OpenAI. Si un servidor implementa /v1/chat/completions, puedes apuntar Hermes a ese servidor.2

Configuración interactiva (recomendada):

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

config.yaml manual:

model:
  default: your-model-name
  provider: custom
  base_url: http://localhost:8000/v1
  api_key: your-key-or-leave-empty-for-local

Ambos enfoques se conservan en config.yaml, que es la única fuente de verdad para el modelo principal, el proveedor y la URL base.2 Las variables de entorno heredadas OPENAI_BASE_URL y LLM_MODEL ya no se leen para la configuración del modelo principal; usa hermes model o edita config.yaml directamente.2 (OPENAI_BASE_URL + OPENAI_API_KEY todavía se respetan como respaldo para la ruta auxiliar provider: "main", así que no las borres a ciegas si las usas ahí).4

Cambiar endpoints personalizados a mitad de sesión:

/model custom:qwen-2.5             # Custom endpoint with explicit model
/model custom                      # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5       # Named custom provider "local"
/model custom:work:llama3          # Named custom provider "work"
/model openrouter:claude-sonnet-4  # Back to a cloud provider

/model custom (solo eso, sin nombre de modelo) consulta el API /v1/models de tu endpoint y selecciona automáticamente el modelo si hay exactamente uno cargado; es útil para servidores locales que ejecutan un solo modelo.2

Servidores locales LLM (plantillas de configuración)

La documentación upstream tiene guías completas de configuración para Ollama, vLLM, SGLang, llama.cpp y LM Studio. Estos son los comandos clave que realmente vas a ejecutar. Cada uno está diseñado para producir un endpoint funcional al que Hermes pueda apuntar.2

Ollama — la ruta local más sencilla, sin configuración:

ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve   # Raise from 4k default
hermes model   # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b

Advertencia crítica de Ollama: Ollama usa por defecto longitudes de contexto muy bajas (4.096 tokens con menos de 24 GB de VRAM). Debes aumentarla mediante OLLAMA_CONTEXT_LENGTH o un Modelfile: el API compatible con OpenAI no acepta longitud de contexto desde el cliente, así que Hermes no puede configurarla por ti.2 Para uso con agentes, configura al menos 16k–32k.

vLLM — servicio GPU de alto rendimiento:

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --port 8000 \
  --max-model-len 65536 \
  --tensor-parallel-size 2 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

Las llamadas a herramientas requieren --enable-auto-tool-choice y --tool-call-parser <name>. Parsers compatibles: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Sin estas flags, las llamadas a herramientas volverán como texto sin formato.2

SGLang — servicio rápido con RadixAttention para reutilización de caché KV:

pip install "sglang[all]"
python -m sglang.launch_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --context-length 65536 \
  --tp 2 \
  --tool-call-parser qwen

Advertencia de SGLang: El valor predeterminado de max_tokens es 128. Configura --default-max-tokens en el servidor o model.max_tokens en config.yaml si las respuestas se cortan.2

llama.cpp / llama-server — CPU y Apple Silicon Metal:

./build/bin/llama-server \
  --jinja -fa \
  -c 32768 \
  -ngl 99 \
  -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
  --port 8080 --host 0.0.0.0

--jinja es obligatorio para llamadas a herramientas. Sin esa opción, llama-server ignora por completo el parámetro tools y el modelo intenta llamar herramientas escribiendo JSON en el texto de su respuesta, algo que Hermes no puede analizar como llamadas reales a herramientas.2

LM Studio — app de escritorio con GUI:

Inicia el servidor desde la app LM Studio (pestaña Developer → Start Server), o mediante CLI: lms server start (inicia en el puerto 1234) y lms load qwen2.5-coder --context-length 32768.2 Luego apunta hermes model a http://localhost:1234/v1.

Advertencia crítica de LM Studio: LM Studio lee la longitud de contexto desde los metadatos del modelo, pero muchos modelos GGUF informan valores predeterminados de 2048 o 4096. Configura siempre la longitud de contexto explícitamente en los ajustes del modelo de LM Studio: haz clic en el ícono de engranaje junto al selector de modelo, define “Context Length” en al menos 16384 (preferiblemente 32768) y recarga el modelo.2

Proveedores personalizados con nombre

Si trabajas con varios endpoints personalizados (por ejemplo, un servidor local de desarrollo y un servidor GPU remoto), defínelos como proveedores personalizados con nombre en config.yaml:2

custom_providers:
  - name: local
    base_url: http://localhost:8080/v1
    # api_key omitted — Hermes uses "no-key-required" for keyless local servers
  - name: work
    base_url: https://gpu-server.internal.corp/v1
    api_key: corp-api-key
    api_mode: chat_completions      # optional, auto-detected from URL
  - name: anthropic-proxy
    base_url: https://proxy.example.com/anthropic
    api_key: proxy-key
    api_mode: anthropic_messages    # for Anthropic-compatible proxies

Luego cambia entre ellos a mitad de sesión con la sintaxis triple:

/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4

También puedes seleccionar proveedores personalizados con nombre desde el menú interactivo de hermes model.2

Arquitectura de proveedores conectables (v0.13.0+)

v0.13.0 incluye un ABC ProviderProfile más un directorio plugins/model-providers/ para que proveedores de inferencia externos puedan integrarse sin modificar el núcleo.18 Si un proveedor habla un modo API compatible con OpenAI, Anthropic o Codex, puedes implementar una subclase de ProviderProfile que declare la ruta de autenticación, la URL base, el catálogo de modelos y los encabezados de caché; Hermes lo resuelve mediante la misma ruta runtime_provider.py que usan los proveedores integrados. Este es el cambio arquitectónico detrás de la expansión de proveedores en v0.13.0: en lugar de editar el código central para agregar un proveedor, publicas un plugin.

Proxy local compatible con OpenAI (v0.14.0+)

hermes proxy expone un endpoint local compatible con OpenAI respaldado por el proveedor OAuth en el que Hermes ya tiene sesión iniciada: Claude Pro, ChatGPT Pro, SuperGrok u otro proveedor compatible configurado.19 Eso significa que las herramientas que esperan un API estilo OpenAI, incluidas Codex CLI, Aider, Cline, Continue o scripts personalizados, pueden reutilizar tu autenticación de Hermes respaldada por suscripción sin una clave API separada. Trata el proxy como infraestructura local de desarrollo: enlázalo de forma deliberada, no lo expongas ampliamente y ten en cuenta los términos específicos de cada proveedor.

Detección de longitud de contexto

Según la documentación upstream, dos ajustes se confunden constantemente:2

  • context_length — la ventana de contexto total (presupuesto combinado de tokens de entrada + salida, por ejemplo, 1.000.000 para Claude Opus 4.7 o 200.000 para Sonnet 4.6). Hermes usa esto para decidir cuándo comprimir el historial.
  • model.max_tokens — el límite de salida (máximo de tokens que el modelo puede generar en una sola respuesta). No está relacionado con la longitud del historial.

Configura context_length cuando la detección automática se equivoca con el tamaño de la ventana:

model:
  default: "qwen3.5:9b"
  base_url: "http://localhost:8080/v1"
  context_length: 131072      # tokens

Hermes usa una cadena de resolución de varias fuentes para detectar ventanas de contexto: sobrescritura en configuración → proveedor personalizado por modelo → caché persistente → /models del endpoint → /v1/models de Anthropic → API de OpenRouter → Nous Portal → models.dev (registro mantenido por la comunidad para más de 3800 modelos) → valores predeterminados de respaldo (128K).2 El sistema conoce el proveedor, así que el mismo modelo puede tener límites de contexto distintos según quién lo sirva (por ejemplo, claude-opus-4.6 es 1M en Anthropic directo, pero 128K en GitHub Copilot).2

Rotación y fallback de proveedores

Pools de credenciales. Cuando tienes varias claves API para el mismo proveedor, configura una estrategia de rotación mediante hermes auth. Así distribuyes límites de tasa entre varias claves.6

Modelo de fallback. Configura un provider:model de respaldo al que Hermes cambie automáticamente cuando tu modelo principal falle (límites de tasa, errores del servidor, fallas de autenticación):2

fallback_model:
  provider: openrouter            # required
  model: anthropic/claude-sonnet-4  # required
  # base_url: http://localhost:8000/v1    # optional, for custom endpoints
  # api_key_env: MY_CUSTOM_KEY           # optional, env var name

El fallback cambia el modelo y el proveedor a mitad de sesión sin perder la conversación. Se activa como máximo una vez por sesión.2 Proveedores compatibles para fallback: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2

Modelos auxiliares

Hermes usa modelos “auxiliares” ligeros para tareas secundarias: análisis de imágenes, resumen de páginas web, análisis de capturas del navegador, clasificación de aprobación de comandos peligrosos, compresión de contexto, resumen de búsqueda de sesiones, emparejamiento de skill, despacho de herramientas MCP y vaciado de memoria.4 Por defecto, usan Gemini Flash mediante detección automática (OpenRouter → Nous → Codex).

Puedes configurar qué modelo y proveedor usa cada tarea auxiliar. Cada ranura auxiliar usa los mismos tres controles: provider, model, base_url.4

auxiliary:
  vision:
    provider: "auto"                # "auto", "openrouter", "nous", "codex", "main", etc.
    model: ""                       # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
    base_url: ""                    # Custom OpenAI-compatible endpoint
    api_key: ""                     # Falls back to OPENAI_API_KEY
    timeout: 30
    download_timeout: 30
  web_extract:
    provider: "auto"
    model: ""
    timeout: 360
  approval:
    provider: "auto"
    model: ""
    timeout: 30
  compression:
    timeout: 120
  session_search: { provider: "auto", model: "", timeout: 30 }
  skills_hub:    { provider: "auto", model: "", timeout: 30 }
  mcp:           { provider: "auto", model: "", timeout: 30 }
  flush_memories:{ provider: "auto", model: "", timeout: 30 }

La opción de proveedor "main" significa “usa el proveedor que esté usando mi agente principal”; es válida solo dentro de configuraciones auxiliary:, compression: y fallback_model:. No es válida para tu ajuste de nivel superior model.provider. Si usas un endpoint personalizado compatible con OpenAI como modelo principal, configura provider: custom en tu sección model:.4

Por qué importa: si solo configuraste OAuth de Anthropic (sin clave de OpenRouter), tu visión, resumen web y compresión se degradarán o fallarán porque la cadena de fallback auxiliar predeterminada prueba OpenRouter primero. Agrega una OPENROUTER_API_KEY para tareas auxiliares, o reconfigura cada ranura auxiliar para usar tu proveedor principal:

auxiliary:
  vision:
    provider: "main"
  web_extract:
    provider: "main"

Esta es la advertencia más común de “mis funciones no trabajan silenciosamente” para usuarios nuevos de Hermes.


Sistema de configuración

Hermes tiene un sistema de configuración por capas. Entender la precedencia es esencial porque las capas superiores anulan a las inferiores, y una de las capas es un registro global de proveedores que no puedes ver en config.yaml.

Estructura de archivos de configuración

Según la documentación upstream, estos son los archivos que conforman una configuración de Hermes:4

~/.hermes/
├── config.yaml       # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env              # Secrets (API keys, bot tokens, passwords)
├── auth.json         # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md           # Primary agent identity (slot #1 in system prompt)
├── memories/         # Persistent memory (MEMORY.md, USER.md)
├── skills/           # Bundled + agent-created + hub-installed skills
├── cron/             # Scheduled jobs
├── sessions/         # Gateway session state
└── logs/             # agent.log, gateway.log, errors.log (secrets auto-redacted)

config.yaml vs .env: cuando ambos están definidos, config.yaml tiene prioridad para la configuración que no sea secreta.4 La regla es: - Secretos (claves API, tokens de bots, contraseñas) → .env - Todo lo demás (modelo, backend de terminal, configuración de compresión, límites de memoria, toolsets) → config.yaml

Los secretos pueden referenciarse desde config.yaml usando interpolación estilo shell:4

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}
  delegation:
    api_key: ${DELEGATION_KEY}

Gestión de la configuración

hermes config                # View current configuration
hermes config show           # Same as above
hermes config edit           # Open config.yaml in your editor
hermes config set KEY VAL    # Set a specific value
hermes config path           # Print the config file path
hermes config env-path       # Print the .env file path
hermes config check          # Check for missing options (after updates)
hermes config migrate        # Interactively add missing options

Ejemplos:4

hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-...   # Saves to .env

hermes config check y hermes config migrate son los comandos que debes ejecutar después de cada hermes update: detectan opciones de configuración recién agregadas que tu archivo todavía no tiene.6

Precedencia de configuración

Hermes carga la configuración desde varias fuentes. Cuando varias fuentes definen el mismo valor, gana la fuente con mayor prioridad:4

  1. Argumentos de CLIhermes chat --model anthropic/claude-sonnet-4 (anulación por invocación)
  2. Variables de entorno — aplicadas al iniciar el proceso
  3. config.yaml — el archivo principal de configuración
  4. .env — solo secretos
  5. Valores predeterminados incorporados — aplicados cuando nada más define un valor

Las flags de CLI siempre tienen prioridad para esa invocación específica. config.yaml es la fuente de verdad a largo plazo.

Localización (v0.13.0+)

v0.13.0 agregó 7 locales para mensajes de CLI y gateway: chino (simplificado), japonés, alemán, español, francés, ucraniano y turco.18 v0.14.0 localiza todos los comandos de gateway y el dashboard web, agrega 8 locales más y eleva el total a 16.19 Actualmente, la documentación solo está localizada en zh-Hans. El locale se resuelve a partir de las variables de entorno LC_ALL / LANG o de una clave explícita locale: en config.yaml. El inglés sigue siendo el valor predeterminado y la fuente de verdad para cualquier cadena que una traducción aún no cubra.

Profiles: múltiples instancias aisladas de Hermes

Los profiles te dan múltiples instancias aisladas de Hermes, cada una con su propia configuración, sesiones, skills, memoria y PID de gateway. Así puedes ejecutar “Hermes de trabajo” y “Hermes personal” en paralelo sin que una instancia vea el estado de la otra.6

hermes profile list
hermes profile create work --clone                  # Clone from current profile
hermes profile use work                             # Set sticky default
hermes profile alias work --name h-work             # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile"    # One-off without switching

Cada profile obtiene su propio HERMES_HOME (~/.hermes-<name>/ de forma predeterminada), por lo que varios profiles pueden ejecutar el gateway al mismo tiempo sin interferir entre sí.63


Comandos CLI

Esta sección es la referencia práctica de los comandos de nivel superior de CLI. Para la referencia autoritativa derivada del código, consulta la documentación upstream CLI Commands Reference.6

Opciones globales

hermes [global-options] <command> [subcommand/options]
Opción Descripción
--version, -V Muestra la versión y sale
--profile <name>, -p <name> Selecciona qué profile de Hermes usar
--resume <session>, -r <session> Reanuda una sesión por ID o título
--continue [name], -c [name] Reanuda la sesión más reciente (o busca coincidencia por título)
--worktree, -w Inicia en un git worktree aislado
--yolo Omite las confirmaciones de comandos peligrosos
--pass-session-id Incluye el ID de sesión en el system prompt del agente

Comandos de nivel superior

Comando Propósito
hermes chat Chat interactivo o de un solo uso
hermes model Selecciona interactivamente el proveedor y modelo predeterminados
hermes gateway Ejecuta o administra el messaging gateway
hermes setup Asistente de configuración interactivo
hermes auth Administra credenciales: agregar, listar, eliminar, restablecer, definir estrategia
hermes status Muestra el estado del agente, autenticación y plataformas
hermes cron Inspecciona y ejecuta el programador cron
hermes webhook Administra suscripciones dinámicas de webhooks
hermes doctor Diagnostica problemas de configuración y dependencias
hermes dump Resumen de configuración listo para copiar y pegar, útil para soporte/depuración
hermes logs Visualiza, sigue en tiempo real y filtra logs del agente/gateway/errores
hermes config Muestra, edita, migra y consulta la configuración
hermes pairing Aprueba o revoca códigos de emparejamiento de mensajería
hermes skills Explora, instala, publica y audita skills
hermes honcho Administra la memoria entre sesiones de Honcho
hermes memory Configura el proveedor de memoria externa
hermes acp Ejecuta Hermes como servidor ACP (integración con editores)
hermes mcp Administra la configuración del servidor MCP; ejecuta Hermes como servidor MCP
hermes plugins Administra plugins
hermes tools Configura las herramientas habilitadas por plataforma
hermes sessions Explora, exporta, limpia y elimina sesiones
hermes insights Muestra analíticas de tokens, costos y actividad
hermes claw Utilidades de migración de OpenClaw
hermes profile Administra profiles (múltiples instancias aisladas)
hermes completion Imprime scripts de autocompletado para shell (bash/zsh)
hermes whatsapp Configura y empareja el puente de WhatsApp
hermes version Muestra información de la versión
hermes update Descarga el código más reciente y reinstala dependencias
hermes uninstall Elimina Hermes del sistema (--full también borra configuración y datos)
hermes backup Respaldo completo de configuración, sesiones, skills y memoria (v0.9.0+)16
hermes import Restaura desde un archivo de respaldo — permite migrar entre máquinas o revertir cambios (v0.9.0+)16
hermes dashboard Abre el panel web local para administrar el agente desde el navegador (v0.9.0+)16
hermes debug share Sube un reporte de depuración completo a un pastebin para compartir al resolver problemas (v0.9.0+)16

hermes chat — El punto de entrada principal

hermes sin argumentos te lleva al chat interactivo. hermes chat es la forma explícita con opciones:6

hermes chat -q "Summarize the latest PRs"           # One-shot, non-interactive
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills          # Enable specific toolsets
hermes chat --quiet -q "Return only JSON"           # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"

Opciones principales:

Opción Descripción
-q, --query "..." Prompt de un solo uso, no interactivo
-m, --model <model> Sobrescribe el modelo para esta ejecución
-t, --toolsets <csv> Habilita un conjunto de toolsets separados por comas
--provider <provider> Fuerza un proveedor (consulta la lista completa)
-s, --skills <name> Precarga uno o más skills para esta sesión
-v, --verbose Salida detallada
-Q, --quiet Modo programático (sin banner, spinner ni previsualizaciones)
--resume <session> Reanuda una sesión directamente desde chat
--worktree Crea un git worktree aislado
--checkpoints Habilita checkpoints del sistema de archivos antes de cambios destructivos
--yolo Omite las confirmaciones de aprobación
--source <tag> Etiqueta de origen de la sesión (por defecto: cli; usa tool para integraciones)
--max-turns <N> Máximo de iteraciones de llamadas a herramientas por turno (por defecto: 90)

hermes setup — Asistente completo

Ejecuta el asistente de configuración completo o salta directamente a una sección:6

hermes setup                 # Full wizard
hermes setup model           # Provider and model only
hermes setup terminal        # Terminal backend only
hermes setup gateway         # Messaging platforms only
hermes setup tools           # Tool enable/disable per platform
hermes setup agent           # Agent behavior only
hermes setup --non-interactive
hermes setup --reset         # Reset config to defaults before setup

hermes logs — Consulta estructurada de logs

hermes logs es más potente que un simple tail -f sobre los archivos de log, ya que permite filtrar por nivel, ID de sesión y rango de tiempo de forma simultánea.6

hermes logs                          # Last 50 lines of agent.log
hermes logs -f                       # Follow in real time
hermes logs gateway -n 100           # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h   # Warnings from the last hour
hermes logs --session abc123         # Filter by session ID substring
hermes logs errors --since 30m -f    # Follow errors.log from 30m ago
hermes logs list                     # List all log files with sizes

Los archivos de log se encuentran en ~/.hermes/logs/:6 - agent.log — toda la actividad del agente (llamadas a API, despacho de herramientas, ciclo de vida de sesiones, nivel INFO+) - errors.log — solo advertencias y errores (un subconjunto filtrado de agent.log) - gateway.log — actividad del messaging gateway (conexiones de plataforma, despacho, webhooks)

La rotación es automática mediante RotatingFileHandler de Python — busca archivos como agent.log.1, agent.log.2, etc.6

hermes doctor — Diagnósticos

hermes doctor [--fix] es el primer comando que debes ejecutar cuando algo falla. Verifica la validez de la configuración, la presencia de dependencias, la disponibilidad de claves API, el estado de los servicios, y puede intentar reparaciones automáticas con --fix.6

Para compartir diagnósticos con alguien más, usa hermes dump — genera un resumen compacto en texto plano con claves API redactadas, listo para pegar en un issue de GitHub o en un hilo de Discord.6


Comandos slash

Los comandos slash se ejecutan dentro de una sesión de chat activa (CLI o plataforma de mensajería). Se despachan desde un COMMAND_REGISTRY compartido en hermes_cli/commands.py, por eso la mayoría de los comandos funcionan igual en todas las superficies.9

Control de sesión

Comando Descripción
/new (alias /reset) Inicia una sesión nueva
/clear Limpia la pantalla + inicia una sesión nueva
/history Muestra el historial de conversación
/save Guarda la conversación actual
/retry Reintenta el último mensaje
/undo Elimina el último intercambio usuario/asistente
/title <name> Define un título para la sesión actual
/compress Comprime manualmente el contexto de la conversación
/rollback [number] Lista o restaura checkpoints del sistema de archivos
/stop Finaliza todos los procesos en segundo plano en ejecución
/queue <prompt> Pone un prompt en cola para el siguiente turno. Ojo: /q lo reclaman tanto /queue como /quit; gana el último registro y, en la práctica, /q se resuelve como /quit; escribe siempre /queue explícitamente.9
/resume [name] Reanuda una sesión con nombre previo
/statusbar (alias /sb) Activa o desactiva la barra de estado de contexto/modelo
/background <prompt> (alias /bg) Ejecuta un prompt en una sesión separada en segundo plano
/btw <question> Pregunta secundaria efímera (sin herramientas, no se conserva)
/plan [request] Carga el skill plan incluido para escribir un plan en lugar de ejecutar
/branch [name] (alias /fork) Ramifica la sesión actual
/goal <target> Fija el agente a un objetivo para que se mantenga enfocado entre turnos. Patrón Ralph-loop como primitiva de primera clase. Presupuesto de turnos configurable. Nuevo en v0.13.0.18
/subgoal <criterion> Agrega criterios de éxito a un /goal activo sin reiniciar el ciclo. Nuevo en v0.14.0.19
/handoff <target> Transfiere la sesión en vivo — mensajes, llamadas a herramientas y contexto — a otro modelo, persona o profile. Nuevo en v0.14.0.19

Configuración y modelo

Comando Descripción
/config Muestra la configuración actual
/model [model-name] Muestra o cambia el modelo actual
/provider Muestra los proveedores disponibles y el proveedor actual
/personality [name] Define una capa de personalidad
/verbose Alterna la visualización del progreso de herramientas
/reasoning Gestiona el esfuerzo de razonamiento y su visualización
/skin Muestra o cambia la skin/el tema de visualización
/voice [on\|off\|tts\|status] Activa o desactiva el modo de voz de CLI
/yolo Activa o desactiva el modo YOLO (omite prompts de aprobación)
/fast Activa o desactiva Fast Mode: procesamiento prioritario para modelos OpenAI y Anthropic (v0.9.0+)16
/debug Diagnóstico rápido en todas las plataformas (v0.9.0+)16

El comando /model es la herramienta principal para cambiar de proveedor a mitad de sesión:9

/model                              # Show current model and options
/model claude-sonnet-4              # Switch model (auto-detect provider)
/model zai:glm-5                    # Switch provider:model
/model custom:qwen-2.5              # Use model on custom endpoint
/model custom                       # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5        # Named custom provider
/model openrouter:anthropic/claude-sonnet-4   # Back to cloud

Herramientas, Skills e información

Comando Descripción
/tools [list\|disable\|enable] [name...] Gestiona herramientas para la sesión actual
/toolsets Lista los toolsets disponibles
/browser [connect\|disconnect\|status] Gestiona la conexión local Chrome CDP
/skills Busca, instala, inspecciona o gestiona skills
/cron Gestiona tareas programadas
/reload-mcp Recarga servidores MCP desde config.yaml
/plugins Lista los plugins instalados
/help Muestra todos los comandos
/usage Muestra uso de tokens, costo y duración
/insights Muestra analíticas de uso (últimos 30 días)
/platforms Muestra el estado de las plataformas de mensajería
/profile Muestra el nombre del profile activo y el inicio

Comandos slash dinámicos de Skills

Cada skill instalado se expone automáticamente como comando slash:9

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw       # Just the skill name loads it and lets the agent ask what you need

También puedes definir comandos rápidos en config.yaml que asignan un nombre corto a un prompt más largo:9

quick_commands:
  review: "Review my latest git diff and suggest improvements"
  deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
  morning: "Check my calendar, unread emails, and summarize today's priorities"

Luego escribe /review, /deploy o /morning en CLI.

Coincidencia por prefijo

Los comandos admiten coincidencia por prefijo: escribir /h se resuelve como /help; /mod, como /model. Cuando un prefijo es ambiguo, gana el primer registro según el orden del registry. Los nombres completos de comandos y los alias registrados siempre tienen prioridad sobre las coincidencias por prefijo.9

Comandos específicos de mensajería

Algunos comandos solo funcionan en plataformas de mensajería (Telegram, Discord, Slack, WhatsApp, Signal, Email, Home Assistant):9

  • /status — muestra información de la sesión
  • /sethome (alias /set-home) — marca el chat actual como inicio de la plataforma
  • /approve [session|always] — aprueba un comando peligroso pendiente
  • /deny — rechaza un comando peligroso pendiente
  • /update — actualiza Hermes Agent a la versión más reciente
  • /commands [page] — explora todos los comandos y skills (paginado)

Y algunos son solo para CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9


Herramientas y toolsets

Hermes incluye un registro amplio de herramientas integradas que cubre búsqueda web, automatización del navegador, ejecución en terminal, edición de archivos, memoria, delegación, entrenamiento RL, entrega de mensajes, integración con Home Assistant y más.10 Las herramientas se organizan en toolsets lógicos que pueden activarse o desactivarse por plataforma.

Categorías generales

Categoría Ejemplos Descripción
Web web_search, web_extract Busca en la web y extrae contenido de páginas
Terminal y archivos terminal, process, read_file, patch Ejecuta comandos y manipula archivos
Navegador browser_navigate, browser_snapshot, browser_vision Automatización interactiva del navegador con texto y visión
Medios vision_analyze, video_analyze, video_generate, image_generate, text_to_speech Análisis y generación multimodal. video_analyze prioriza Gemini y tiene soporte extensible para proveedores multimodales compatibles (v0.13.0+). v0.14.0 agrega video_generate unificado con backends de proveedor intercambiables y envía píxeles sin procesar a través de vision_analyze cuando el modelo activo admite visión.1819
Orquestación de agentes todo, clarify, execute_code, delegate_task Planificación, aclaración, ejecución de código, delegación a subagentes
Uso de computadora computer_use Control de escritorio mediante el backend cua-driver; v0.14.0 hace que esto funcione con proveedores compatibles con visión que no son Anthropic.19
Memoria y recuperación memory, session_search Memoria persistente + búsqueda de sesiones
Automatización y entrega cronjob, send_message Tareas programadas, mensajería saliente
Integraciones ha_*, herramientas MCP, rl_* Home Assistant, MCP, entrenamiento RL

Los nombres comunes de toolsets incluyen web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant y rl.10

Administrar herramientas

hermes chat --toolsets "web,terminal"       # Use specific toolsets
hermes tools                                # Interactive per-platform tool config
hermes tools --summary                      # Print enabled-tools summary

Las herramientas también se pueden activar o desactivar en medio de una sesión con /tools disable <name> y /tools enable <name>, lo que reinicia la sesión para que el nuevo conjunto de herramientas surta efecto.9

Backends de terminal

La herramienta de terminal puede ejecutar comandos en 6 entornos distintos:10

Backend Caso de uso
local Ejecutar en tu máquina (predeterminado): desarrollo, tareas confiables
docker Contenedores aislados: seguridad, reproducibilidad
ssh Servidor remoto: sandbox, mantiene al agente lejos de su propio código
singularity Contenedores HPC: cómputo en clúster, sin root
modal Ejecución serverless en la nube
daytona Espacio de trabajo sandbox en la nube: entorno de desarrollo remoto persistente

Cambia de backend con hermes config set terminal.backend <name> o en config.yaml:

terminal:
  backend: docker      # or: local, ssh, singularity, modal, daytona
  cwd: "."             # Working directory
  timeout: 180         # Command timeout in seconds

Backend SSH (recomendado por seguridad: el agente no puede modificar su propio código):10

terminal:
  backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Backend Docker:

terminal:
  backend: docker
  docker_image: python:3.11-slim

Recursos de contenedor (se aplica a docker, singularity, modal, daytona):10

terminal:
  container_cpu: 1
  container_memory: 5120          # MB (default 5GB)
  container_disk: 51200           # MB (default 50GB)
  container_persistent: true      # Persist filesystem across sessions

Con container_persistent: true, los paquetes instalados, archivos y configuración se conservan entre sesiones.10

Todos los backends de contenedor se ejecutan con refuerzo de seguridad: sistema de archivos raíz de solo lectura (Docker), todas las capacidades de Linux eliminadas excepto DAC_OVERRIDE, CHOWN y FOWNER, sin escalamiento de privilegios, límites PID (256 procesos), aislamiento completo de namespaces, espacio de trabajo persistente mediante volúmenes.10

Procesos en segundo plano

La herramienta de terminal admite ejecución en segundo plano con administración explícita de procesos:10

terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}

process(action="list")                            # Show all running processes
process(action="poll", session_id="proc_abc123")  # Check status
process(action="wait", session_id="proc_abc123")  # Block until done
process(action="log", session_id="proc_abc123")   # Full output
process(action="kill", session_id="proc_abc123")  # Terminate
process(action="write", session_id="proc_abc123", data="y")  # Send input

El modo PTY (pty=true) habilita herramientas interactivas CLI como Codex y Claude Code.10

Sudo

Si un comando necesita sudo, Hermes solicita tu contraseña (almacenada en caché durante la sesión). O configura SUDO_PASSWORD en ~/.hermes/.env.10


Kanban multiagente (v0.13.0+)

v0.13.0 convierte la colaboración multiagente en un primitivo de primera clase: un tablero Kanban duradero que rastrea tareas, estado e identidad de trabajadores entre agentes y reinicios.18 El tablero es lo que hace que un enjambre de trabajadores Hermes realmente termine el trabajo en lugar de quedarse estancado por handoffs muertos.

Mecanismo Qué hace
Heartbeats Cada trabajador emite pulsos mientras posee una tarea. Si falta un heartbeat, el trabajador se marca como sospechoso y la tarea queda libre para reclamarse.
Reclaim Un trabajador distinto puede tomar una tarea abandonada, con todo el estado de la tarea y el resultado parcial previo.
Detección de zombies Los trabajadores que salen sin marcar una tarea como completa se bloquean automáticamente para que no reclamen trabajo nuevo, lo que evita que el enjambre acumule identidades muertas.
Hallucination gate La salida que no supera el gate devuelve la tarea al tablero con un motivo anotado, en lugar de marcarla como terminada.
max_retries por tarea Anula el presupuesto de reintentos predeterminado en una tarea que sabes que es frágil.
Tableros multiproyecto Un solo home de Hermes puede alojar varios tableros independientes.

El tablero Kanban encaja de forma natural con /goal (bucle Ralph de objetivo bloqueado) para el lado del objetivo y con la herramienta existente delegate_task para la semántica de spawn. El resultado es un patrón de enjambre donde cada agente comparte una única fuente de verdad sobre qué hacer después, quién lo está haciendo y qué está atascado.

Sistema de Skills

Las skills son documentos de conocimiento bajo demanda que el agente puede cargar cuando los necesita. Siguen un patrón de divulgación progresiva para minimizar el uso de tokens y son compatibles con el estándar abierto agentskills.io.11

Todas las skills viven en ~/.hermes/skills/: el directorio principal y la fuente de verdad. En una instalación nueva, las skills incluidas se copian desde el repo. Las skills instaladas desde el hub y las creadas por el agente también van aquí.11

Divulgación progresiva

Level 0: skills_list()            [{name, description, category}, ...]   (~3k tokens)
Level 1: skill_view(name)         Full content + metadata                 (varies)
Level 2: skill_view(name, path)   Specific reference file                 (varies)

El agente solo carga el contenido completo de la skill cuando realmente lo necesita.11

Formato de SKILL.md

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]      # Optional — restrict to OS platforms
metadata:
  hermes:
    tags: [python, automation]
    category: devops
    fallback_for_toolsets: [web]     # Conditional activation
    requires_toolsets: [terminal]    # Conditional activation
    config:                          # Config.yaml settings
      - key: my.setting
        description: "What this controls"
        default: "value"
        prompt: "Prompt for setup"
---

# Skill Title

## When to Use
Trigger conditions for this skill.

## Procedure
1. Step one
2. Step two

## Pitfalls
- Known failure modes and fixes

## Verification
How to confirm it worked.

Activación condicional

Las skills pueden mostrarse u ocultarse según las herramientas disponibles. Esto es especialmente útil para skills de fallback: alternativas gratuitas o locales que solo deberían aparecer cuando una herramienta premium no está disponible:11

Campo Comportamiento
fallback_for_toolsets La skill se oculta cuando los toolsets listados están disponibles
fallback_for_tools Igual, pero revisa herramientas individuales
requires_toolsets La skill se oculta cuando los toolsets listados no están disponibles
requires_tools Igual, pero revisa herramientas individuales

Ejemplo: la skill integrada duckduckgo-search usa fallback_for_toolsets: [web]. Cuando tienes configurada FIRECRAWL_API_KEY, el toolset web está disponible y el agente usa web_search; la skill de DuckDuckGo permanece oculta. Sin la clave API, la skill de DuckDuckGo aparece automáticamente como fallback.11

Skills gestionadas por el agente

El agente puede crear, actualizar y eliminar sus propias skills mediante la herramienta skill_manage. Esta es la memoria procedimental del agente: cuando descubre un flujo de trabajo no trivial, guarda el enfoque como una skill para reutilizarlo en el futuro.11

Cuándo crea skills el agente:11 - Después de completar correctamente una tarea compleja (5+ llamadas a herramientas) - Cuando encontró errores o callejones sin salida y dio con el camino funcional - Cuando el usuario corrigió su enfoque - Cuando descubrió un flujo de trabajo no trivial

Acciones:11

Acción Úsala para
create Crear una skill nueva desde cero
patch Correcciones puntuales (preferida: la más eficiente en tokens)
edit Reescrituras estructurales importantes
delete Eliminar una skill por completo
write_file Agregar/actualizar archivos de soporte
remove_file Eliminar un archivo de soporte

Hub de Skills

Explora, busca, instala y gestiona skills desde registros en línea:611

hermes skills browse                          # Browse all hub skills
hermes skills browse --source official        # Browse official optional skills
hermes skills search kubernetes               # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s       # Preview before installing
hermes skills install openai/skills/k8s       # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check                           # Check for upstream updates
hermes skills update                          # Reinstall changed hub skills
hermes skills audit                           # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo       # Add custom GitHub source

Fuentes de hub integradas:11

Fuente Ejemplo Notas
official official/security/1password Skills opcionales incluidas con Hermes (confianza builtin)
skills-sh skills-sh/vercel-labs/agent-skills/vercel-react-best-practices Directorio público de skills de Vercel
well-known well-known:https://mintlify.com/docs/.well-known/skills/mintlify Descubrimiento basado en URL desde sitios que publican /.well-known/skills/index.json
github openai/skills/k8s Instalaciones directas desde repo/ruta de GitHub
clawhub Marketplace de skills de terceros
claude-marketplace Manifiestos de plugin/marketplace compatibles con Claude
lobehub Conversión del catálogo de agentes de LobeHub

Taps predeterminados de GitHub (explorables sin configuración): openai/skills, anthropics/skills, VoltAgent/awesome-agent-skills, garrytan/gstack.11

Escaneo de seguridad

Todas las skills instaladas desde el hub pasan por un escáner de seguridad que revisa exfiltración de datos, prompt injection, comandos destructivos, señales de supply-chain y otras amenazas.11

Niveles de confianza:11

Nivel Fuente Política
builtin Incluida con Hermes Siempre confiable
official optional-skills/ en el repo Confianza builtin, sin advertencia de terceros
trusted Registros confiables (openai/skills, anthropics/skills) Política más permisiva
community Todo lo demás Los hallazgos no peligrosos se pueden omitir con --force; los veredictos dangerous siguen bloqueados

--force puede omitir bloqueos de política no peligrosos para skills de la comunidad. No omite un veredicto de escaneo dangerous.11

Directorios externos de skills

Puedes apuntar Hermes a directorios adicionales de skills que se escanean junto con el local:11

skills:
  external_dirs:
    - ~/.agents/skills
    - /home/shared/team-skills
    - ${SKILLS_REPO}/skills

Las rutas admiten expansión de ~ y sustitución de variables de entorno ${VAR}. Los directorios externos son de solo lectura: cuando el agente crea o edita una skill, siempre escribe en ~/.hermes/skills/. La precedencia local gana si existe una skill con el mismo nombre en ambos lugares.11


Memoria persistente

Hermes tiene memoria acotada y curada que persiste entre sesiones. Dos archivos componen la memoria del agente, ambos almacenados en ~/.hermes/memories/:12

Archivo Propósito Límite de caracteres
MEMORY.md Notas personales del agente: datos del entorno, convenciones, cosas aprendidas 2.200 caracteres (~800 tokens)
USER.md Perfil del usuario: preferencias, estilo de comunicación, expectativas 1.375 caracteres (~500 tokens)

Ambos se inyectan en el system prompt como una instantánea congelada al inicio de la sesión. El agente administra su propia memoria mediante la herramienta memory: add, replace o remove.12

Patrón de instantánea congelada: la inyección en el system prompt se captura una sola vez al inicio de la sesión y nunca cambia durante la sesión. Esto es intencional: preserva la caché de prefijo de LLM para mejorar el rendimiento. Los cambios realizados durante una sesión se guardan en disco de inmediato, pero no aparecen en el system prompt hasta la siguiente sesión.12

Qué guardar

Guarda esto (el agente lo hace de forma proactiva):12 - Preferencias del usuario: “Prefiero TypeScript en lugar de JavaScript” → user - Datos del entorno: “Este servidor ejecuta Debian 12 con PostgreSQL 16” → memory - Correcciones: “No uses sudo para comandos de Docker; el usuario está en el grupo docker” → memory - Convenciones: “El proyecto usa tabs, ancho de línea de 120 caracteres y docstrings estilo Google” → memory - Trabajo completado: “Migré la base de datos de MySQL a PostgreSQL el 2026-01-15” → memory

Omite esto:12 - Información trivial u obvia - Datos fáciles de redescubrir - Volcados de datos sin procesar (demasiado grandes para la memoria) - Detalles efímeros específicos de la sesión - Información que ya está en archivos de contexto

Búsqueda de sesiones

Además de MEMORY.md y USER.md, el agente puede buscar en sus conversaciones pasadas con la herramienta session_search. Todas las sesiones de CLI y mensajería se almacenan en SQLite (~/.hermes/state.db) con búsqueda de texto completo FTS5. Las consultas devuelven conversaciones pasadas relevantes con resumen de Gemini Flash.12

Función Memoria persistente Búsqueda de sesiones
Capacidad ~1.300 tokens en total Ilimitada (todas las sesiones)
Velocidad Instantánea (en el system prompt) Requiere búsqueda + resumen de LLM
Caso de uso Datos clave siempre disponibles Encontrar conversaciones pasadas específicas
Administración Curada manualmente por el agente Automática: se almacenan todas las sesiones
Costo en tokens Fijo por sesión (~1.300 tokens) Bajo demanda

Proveedores externos de memoria

Para una memoria persistente más profunda, más allá de MEMORY.md y USER.md, Hermes incluye ocho plugins de proveedores externos de memoria: Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover y Supermemory.12

Los proveedores externos se ejecutan junto con la memoria integrada (nunca la reemplazan) y agregan capacidades como grafos de conocimiento, búsqueda semántica, extracción automática de hechos y modelado de usuario entre sesiones:612

hermes memory setup         # Pick a provider and configure it
hermes memory status        # Check what's active
hermes memory off           # Disable external provider (built-in only)

Solo puede haber un proveedor externo activo a la vez. La memoria integrada siempre está activa.6

Reanudación automática de sesiones (v0.13.0+)

v0.13.0 hace que una interrupción a mitad de ejecución del agente sea recuperable. El gateway reanuda automáticamente las sesiones interrumpidas después de un reinicio; los reinicios por /update conservan el estado de la sesión durante la actualización; las recargas de archivos fuente durante el desarrollo mantienen viva la sesión activa en lugar de forzar una nueva.18 Efecto práctico: el trabajo de larga duración del gateway y las tareas impulsadas por cron ya no reinician su ventana de contexto cuando el proceso se reinicia.

Checkpoints v2 (v0.13.0+)

La persistencia de estado se reescribe en v0.13.0 como un diseño de almacén único con poda real, límites de seguridad en disco y sin repos shadow huérfanos.18 El sistema anterior de checkpoint acumulaba estado en disco en profiles de larga duración; el almacén v2 impone un límite estricto al almacenamiento local de checkpoint y elimina la contabilidad duplicada que impulsaba ese crecimiento. No se requiere ningún cambio de configuración visible para el usuario; la siguiente escritura de checkpoint usa la ruta v2.


Personalidad y SOUL.md

SOUL.md es la identidad principal de una instancia de Hermes. Ocupa el slot #1 en el system prompt y reemplaza la identidad predeterminada hardcodeada.13

Hermes crea automáticamente un SOUL.md predeterminado en ~/.hermes/SOUL.md (o $HERMES_HOME/SOUL.md para profiles personalizados). Los archivos existentes del usuario nunca se sobrescriben. Hermes solo carga SOUL.md desde HERMES_HOME: no busca en el directorio de trabajo actual. Esto hace que la personalidad sea predecible entre proyectos.13

Qué pertenece en SOUL.md

Úsalo para guía duradera de voz y personalidad:13 - tono - estilo de comunicación - nivel de franqueza - estilo de interacción predeterminado - qué evitar en términos de estilo - cómo debe manejar Hermes la incertidumbre, el desacuerdo y la ambigüedad

Úsalo menos para:13 - instrucciones puntuales de proyecto - rutas de archivos - convenciones de repositorio - detalles temporales de workflow

Eso pertenece en AGENTS.md, no en SOUL.md.

SOUL.md vs AGENTS.md

Esta es la distinción más importante en la gestión de identidad de Hermes:13

SOUL.md: identidad, tono, estilo, valores predeterminados de comunicación, comportamiento a nivel de personalidad.

AGENTS.md: arquitectura del proyecto, convenciones de código, preferencias de herramientas, workflows específicos del repositorio, comandos, puertos, rutas, notas de despliegue.

Una regla útil: si debe acompañarte en todas partes, pertenece en SOUL.md. Si pertenece a un proyecto, pertenece en AGENTS.md.13

Personalidades integradas

Hermes incluye personalidades integradas que puedes activar con /personality:13

Nombre Descripción
helpful Asistente amigable de propósito general
concise Respuestas breves y directas
technical Experto técnico detallado y preciso
creative Pensamiento innovador y fuera de lo común
teacher Educador paciente con ejemplos claros
kawaii Expresiones tiernas, destellos y entusiasmo
catgirl Neko-chan con expresiones felinas
pirate Capitán Hermes, bucanero experto en tecnología
shakespeare Prosa de bardo con estilo dramático
surfer Vibra relajada de bro
noir Narración de detective hard-boiled
uwu Máxima ternura con habla uwu
philosopher Contemplación profunda en cada consulta
hype ENERGÍA MÁXIMA

Personalidades personalizadas en config.yaml:13

agent:
  personalities:
    codereviewer: >
      You are a meticulous code reviewer. Identify bugs, security issues,
      performance concerns, and unclear design choices. Be precise and constructive.

Luego cambia con /personality codereviewer.

SOUL.md vs /personality

SOUL.md es la voz base. /personality es una capa superpuesta a nivel de sesión.13 Mantén un SOUL.md predeterminado y pragmático; luego usa /personality teacher para una conversación de tutoría o /personality creative para una lluvia de ideas.


Nous Tool Gateway (v0.10.0+)

A partir de Hermes Agent v0.10.0 (2026-04-16), los suscriptores de pago de Nous Portal obtienen acceso administrado a un conjunto curado de herramientas mediante sus credenciales existentes de Portal, sin claves API adicionales que administrar.21 El CLI de Hermes sigue teniendo licencia MIT y siendo completamente open source. Lo que cambió es que tu autenticación de Portal ahora desbloquea más que inferencia de modelos.

Qué incluye el gateway

Herramienta Proveedor Caso de uso
Búsqueda web Firecrawl Recuperación para agentes que necesitan información reciente
Generación de imágenes FAL / FLUX 2 Pro Generar imágenes inline sin configurar una clave de FAL
Texto a voz OpenAI TTS Salida hablada en gateways de mensajería
Automatización de navegador Browser Use Navegación headless y scraping

Cómo funciona

El gateway es opt-in por herramienta mediante un nuevo campo de configuración use_gateway. Si tienes credenciales de Portal en hermes auth y habilitas el gateway para una herramienta, las llamadas de esa herramienta se enrutan por Portal. De lo contrario, se usa tu clave directa de API (si existe).

# config.yaml — per-tool gateway opt-in
tools:
  web_search:
    provider: firecrawl
    use_gateway: true          # route via Nous Portal subscription
  image_generation:
    provider: fal
    use_gateway: true

Precedencia en runtime: cuando el gateway está disponible y una herramienta tiene use_gateway: true, Hermes prefiere el gateway aunque también tengas configurada una clave directa de API. Esto importa para la facturación: las llamadas del gateway se descuentan de tu suscripción de Portal, no del saldo de tu clave directa de API.

Habilitar el gateway

hermes model                      # select Nous Portal (OAuth flow)
hermes tools                      # per-platform tool picker integrates gateway tools
hermes status                     # confirms gateway/subscription detection

No hay un comando separado hermes subscribe ni hermes login --portal. La suscripción se detecta automáticamente a partir de las credenciales OAuth de Portal que ya tienes en hermes auth.

Precios y acceso

Los precios y los nombres de tiers se publican en la página de precios de Nous Portal (https://portal.nousresearch.com/pricing). Esta guía no enumera tiers porque son responsabilidad del producto Portal, no del CLI de Hermes, y cambian de forma independiente a las versiones de Hermes. Regístrate en https://portal.nousresearch.com/ y consulta la página de precios para ver los tiers actuales.

Aviso de deprecación

  • La variable de entorno HERMES_ENABLE_NOUS_MANAGED_TOOLS se eliminó en v0.10.0. Las herramientas administradas ahora se habilitan mediante el campo de configuración use_gateway por herramienta y dependen del estado de tu suscripción de Portal.21

Marco: lo que esta versión no es

El CLI de Hermes Agent no está bloqueado detrás de una suscripción. El proyecto sigue teniendo licencia MIT; todas las funciones principales (CLI, skills, memoria, gateway de mensajería, cron, MCP, dashboard local, BYOK para cada proveedor) funcionan de extremo a extremo sin pagarle a nadie. v0.10.0 agrega una ruta conveniente para usuarios que ya pagan por Nous Portal; no elimina nada de la ruta gratuita.


Gateway de mensajería

Hermes puede ejecutarse como un proceso gateway de larga duración que se conecta a 22 plataformas de mensajería desde un solo proceso gateway: Telegram, Discord, Slack, WhatsApp, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat y un adaptador Webhook genérico.320171819 v0.9.0 agregó iMessage mediante BlueBubbles (registro automático de webhook, asistente de configuración, resistencia a bloqueos) y soporte nativo para WeChat mediante iLink Bot API, con modo de callback de WeCom para apps empresariales.16 v0.11.0 agregó QQBot.20 v0.12.0 agregó Microsoft Teams y Tencent Yuanbao.17 v0.13.0 agregó Google Chat como la plataforma número 20, sobre la misma arquitectura de adaptadores conectables; IRC y Microsoft Teams también se migraron al nuevo patrón de adaptadores con hooks de plugin genéricos env_enablement_fn / cron_deliver_env_var.18 v0.14.0 agrega LINE y SimpleX Chat y completa la pila de Microsoft Teams de extremo a extremo con autenticación Graph, listener de webhook, runtime de pipeline y entrega saliente.19

Configuración

hermes gateway setup                # Interactive platform configuration
hermes gateway install              # Install as user service (systemd/launchd)
hermes gateway start                # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run                  # Run in foreground (debugging)

La configuración interactiva te guía para conectar cada plataforma: tokens de API, IDs de bots, asignaciones de canales y allowlists.6

Cómo fluyen los mensajes

De la documentación de arquitectura upstream:3

Platform event → Adapter.on_message() → MessageEvent
  → GatewayRunner._handle_message()
    → authorize user
    → resolve session key
    → create AIAgent with session history
    → AIAgent.run_conversation()
    → deliver response back through adapter

Cada plataforma de mensajería pasa por el mismo bucle de conversación AIAgent que CLI. Por eso los comandos slash funcionan igual en ambos lugares y por eso un cron job programado en Telegram puede entregar su salida en Discord: la diferencia entre plataformas está solo en el borde.3

Autorización y emparejamiento de usuarios

hermes pairing list                    # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending

Los códigos de emparejamiento evitan que personas desconocidas hablen con tu gateway. Un usuario envía un código de emparejamiento desde su plataforma de mensajería; tú lo apruebas con hermes pairing approve; a partir de ese momento queda autorizado.6


Tareas programadas (Cron)

Hermes tiene un sistema cron de primera clase donde los jobs son tareas de agente, no comandos de shell. Cada job programado se ejecuta mediante un AIAgent nuevo con el prompt configurado, skills adjuntas opcionales, y entrega resultados a cualquier plataforma:36

hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id>         # Trigger now on the next tick
hermes cron remove <id>
hermes cron status           # Check if scheduler is running
hermes cron tick             # Run due jobs once and exit

O crea uno de forma conversacional dentro de un chat de mensajería:

Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.

El agente configurará el cron job mediante sus tools. Los jobs persisten en JSON y sobreviven a los reinicios.3


Integración con MCP

Hermes soporta Model Context Protocol como cliente y como servidor:6

Como cliente: conecta Hermes a servidores MCP externos para ampliar su superficie de tools:

hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name>   # Toggle individual tool selection

O manualmente en config.yaml:14

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

Como servidor: expón conversaciones de Hermes a otros agentes:

hermes mcp serve
hermes mcp serve -v    # Verbose

Compresión de contexto

Hermes comprime automáticamente las conversaciones largas para mantenerse dentro de la ventana de contexto de tu modelo. El resumidor de compresión es una llamada LLM separada: puedes apuntarlo a cualquier proveedor o endpoint.4

compression:
  enabled: true
  threshold: 0.50                           # Compress at this % of context limit
  target_ratio: 0.20                        # Fraction to preserve as recent tail
  protect_last_n: 20                        # Min recent messages to keep uncompressed
  summary_model: "google/gemini-3-flash-preview"
  summary_provider: "auto"                  # "auto", "openrouter", "nous", "codex", "main", etc.
  summary_base_url: null                    # Custom OpenAI-compatible endpoint

Opciones de proveedor:4

summary_provider summary_base_url Resultado
auto (predeterminado) no establecido Detecta automáticamente el mejor proveedor disponible
nous / openrouter / etc. no establecido Fuerza ese proveedor y usa su autenticación
cualquiera establecido Usa directamente el endpoint personalizado (se ignora el proveedor)

summary_model debe soportar una longitud de contexto al menos tan grande como la de tu modelo principal, ya que recibe toda la sección intermedia de la conversación para comprimirla.4

Advertencias de presión del presupuesto

Cuando el agente trabaja en una tarea compleja con muchas llamadas a tools, puede consumir su presupuesto de iteraciones (predeterminado: 90 turnos) sin darse cuenta. La presión del presupuesto advierte automáticamente al modelo:4

Umbral Nivel Lo que ve el modelo
70% Precaución [BUDGET: 63/90. 27 iterations left. Start consolidating.]
90% Advertencia [BUDGET WARNING: 81/90. Only 9 left. Respond NOW.]

Timeouts de streaming

La conexión de streaming de LLM tiene dos capas de timeout que se ajustan automáticamente para proveedores locales (localhost, IPs de LAN):4

Timeout Predeterminado Proveedores locales Env var
Timeout de lectura de socket 120s Se eleva automáticamente a 1800s HERMES_STREAM_READ_TIMEOUT
Detección de stream inactivo 180s Se desactiva automáticamente HERMES_STREAM_STALE_TIMEOUT
Llamada API (sin streaming) 1800s Sin cambios HERMES_API_TIMEOUT

El timeout de lectura de socket se eleva a 30 minutos para endpoints locales porque los LLM locales pueden tardar minutos en hacer prefill en contextos grandes antes de producir el primer token.4


Dashboard web local (v0.9.0+)

Un dashboard basado en navegador para administrar tu Hermes Agent localmente. Configura ajustes, monitorea sesiones, explora skills y administra tu gateway sin tocar archivos de configuración ni la terminal.16 Ejecútalo con hermes dashboard. Esta es la ruta de onboarding más sencilla para usuarios nuevos que prefieren una GUI.

Monitoreo de procesos en segundo plano (v0.9.0+)

watch_patterns te permite definir patrones para monitorear la salida de procesos en segundo plano y recibir notificaciones en tiempo real cuando coinciden.16 Monitorea errores, espera eventos específicos (“listening on port”) o revisa logs de build, todo sin polling. Combinado con notify_on_complete de v0.8.0 (que notifica cuando termina una tarea en segundo plano), Hermes ahora tiene una capa completa de observabilidad para procesos en segundo plano.15

Motor de contexto conectable (v0.9.0+)

La gestión del contexto ahora es un slot conectable mediante hermes plugins. Intercambia motores de contexto personalizados que controlan lo que el agente ve en cada turno: filtrado, resumido o inyección de contexto específica del dominio.16 Esto desacopla la estrategia de contexto del bucle central del agente y permite personalizar el contexto por proyecto o por dominio.

Backup y restauración (v0.9.0+)

hermes backup crea un archivo completo de tu configuración, sesiones, skills y memoria. hermes import restaura desde un archivo de backup.16 Usa esto para migrar entre máquinas, crear snapshots antes de cambios importantes o compartir una configuración conocida y funcional con compañeros de equipo.

Compatibilidad con Termux / Android (v0.9.0+)

Hermes se ejecuta de forma nativa en Android mediante Termux. Las rutas de instalación adaptadas, optimizaciones de TUI para pantallas móviles, soporte de backend de voz y el comando /image funcionan en el dispositivo.16

Refuerzo de seguridad (v0.13.0+)

v0.13.0 cerró 8 problemas de seguridad P0 y cambió un valor predeterminado a favor del usuario.18 v0.14.0 le sigue con otros 12 cierres P0 y 50 P1, incluidos el refuerzo contra fuerza bruta de sudo / sudo-stdin, correcciones para omisiones de comandos peligrosos, sanitización de errores de herramientas antes de reinyectarlos al modelo, autenticación de API del plugin del dashboard, cobertura SSRF de skills-hub y análisis de avisos de cadena de suministro durante la instalación.19

Corrección Qué cambió
Redacción de secretos activada por defecto Antes era opcional. Los logs y las cargas de hermes debug share redactan secretos salvo que se desactive explícitamente. v0.12.0 había desactivado la redacción por defecto después de reportes de corrupción de payloads; v0.13.0 la vuelve a activar como base más segura.
Omisión de DM entre guilds de Discord (CVSS 8.1) Las listas de permitidos por rol de Discord ahora tienen alcance de guild, lo que cierra una ruta en la que un rol de usuario en una guild autorizaba DM en todas las demás.
Restricciones predeterminadas de WhatsApp El adaptador de WhatsApp rechaza desconocidos por defecto y nunca responde en self-chat.
Ventana TOCTOU de MCP OAuth Se cerró una condición de carrera durante el guardado de credenciales en flujos de MCP OAuth.
TOCTOU de auth.json de CLI Se cerró una ventana TOCTOU análoga en el escritor de credenciales del almacén de autenticación de CLI.
Piso SSRF del navegador El enrutamiento híbrido impone un piso SSRF contra metadatos de nube para solicitudes que intentan alcanzar 169.254.169.254 y equivalentes.
Escaneo de inyección de prompts en cron Los prompts ensamblados (incluido el contenido de skills cargado) se escanean en busca de inyección de prompts antes de que se ejecute el cron job.
Redacción de hermes debug share Las cargas de debug share redactan el contenido de logs al momento de cargar, no solo al momento de escribir.

Si mantienes un despliegue de Hermes, trata v0.13.0 y v0.14.0 como actualizaciones relevantes para la seguridad, no solo como entregas de funciones. v0.13.0 cierra la omisión entre guilds de Discord y dos ventanas TOCTOU; v0.14.0 añade otra pasada de refuerzo en el manejo de sudo, la reinyección de errores de herramientas, los APIs de plugins, SSRF en skills-hub y avisos de dependencias.


Arquitectura para profesionales

Esta sección es para quienes quieren entender qué ocurre por debajo para poder depurarlo, extenderlo o razonar sobre el rendimiento. Es una síntesis de la documentación de arquitectura upstream.3

Puntos de entrada → AIAgent

Cada punto de entrada en Hermes termina llamando a AIAgent.run_conversation():

┌──────────────────────────────────────────────────────────────────┐
                        Entry Points                              
                                                                  
  CLI (cli.py)    Gateway (gateway/run.py)    ACP (acp_adapter/)  
  Batch Runner    API Server                  Python Library     
└──────────┬──────────────┬───────────────────────┬────────────────┘
                                                
                                                
┌──────────────────────────────────────────────────────────────────┐
                     AIAgent (run_agent.py)                       
                                                                  
  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐             
   Prompt         Provider        Tool                      
   Builder        Resolution      Dispatch                  
  └──────┬──────┘  └──────┬───────┘  └──────┬───────┘             
                                                              
  ┌──────┴───────┐ ┌──────┴───────┐  ┌──────┴───────┐             
   Compression    3 API Modes     Tool Registry             
   & Caching      chat_compl      47 tools                  
                  codex_resp      20 toolsets               
                  anthropic                                 
  └──────────────┘ └──────────────┘  └──────────────┘             
└──────────────────────────────────────────────────────────────────┘

Diagrama adaptado de la documentación de arquitectura upstream.3

“47 herramientas / 20 toolsets” frente a “28 herramientas” en tu banner. El conteo de “47 herramientas” es el registro total de herramientas del repositorio upstream: todas las herramientas cuyo código fuente incluye Hermes, en todos los toolsets. Tu CLI en ejecución real mostrará un número menor en su banner de inicio (la instalación con la que verifiqué esta guía reporta 28 tools / 89 skills). Eso no es un bug. Muchos toolsets son opcionales y deben habilitarse explícitamente en config.yaml bajo toolsets:: adaptadores de plataformas de mensajería, automatización del navegador, herramientas de scraping más pesadas, etc. El total del registro es “lo que está disponible”; el número del banner es “lo que está habilitado en tu profile actual”. Revisa qué toolsets están activos con hermes tools --list y habilita o deshabilita toolsets individuales con el bloque toolsets: en ~/.hermes/config.yaml (o /tools list / /tools enable <name> / /tools disable <name> dentro de una sesión en ejecución; quitar una herramienta dispara un reinicio de sesión para que el agente reconstruya su manifiesto de herramientas).

Los tres modos de API

Hermes abstrae las diferencias entre proveedores en tres modos de API, seleccionados automáticamente en tiempo de ejecución:3

Modo de API Usado por
chat_completions OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, la mayoría de endpoints personalizados, cualquier servidor compatible con OpenAI
codex_responses OpenAI Codex (vía ChatGPT OAuth)
anthropic_messages Anthropic API (nativo), Anthropic OAuth, proxies compatibles con Anthropic

El resolver runtime_provider.py asigna tuplas (provider, model) a (api_mode, api_key, base_url) para más de 18 proveedores, y maneja flujos de OAuth, pools de credenciales y resolución de alias.3

Flujo de datos a través de una sesión de CLI

User input  HermesCLI.process_input()
   AIAgent.run_conversation()
     prompt_builder.build_system_prompt()
     runtime_provider.resolve_runtime_provider()
     API call (chat_completions / codex_responses / anthropic_messages)
     tool_calls?  model_tools.handle_function_call()  loop
     final response  display  save to SessionDB

De la página de arquitectura upstream.3

Orden de ensamblado del prompt

La pila de prompts incluye:13

  1. SOUL.md (identidad del agente, o fallback integrado si no está disponible)
  2. Guía de comportamiento consciente de herramientas
  3. Memoria/contexto de usuario (MEMORY.md, USER.md)
  4. Guía de skills
  5. Archivos de contexto (AGENTS.md, .cursorrules)
  6. Marca de tiempo
  7. Sugerencias de formato específicas de la plataforma
  8. Superposiciones opcionales de system prompt, como /personality

SOUL.md es la base: todo lo demás se construye encima.13

Almacenamiento de sesiones

Almacenamiento de sesiones basado en SQLite con búsqueda de texto completo FTS5. Las sesiones tienen seguimiento de linaje (padre/hijo a través de compresiones), aislamiento por plataforma y escrituras atómicas con manejo de contención.3

Sistema de plugins

Tres fuentes de descubrimiento: ~/.hermes/plugins/ (usuario), .hermes/plugins/ (proyecto) y puntos de entrada de pip. Los plugins registran herramientas, hooks y comandos de CLI mediante un contexto de API. Los proveedores de memoria son un tipo especializado de plugin bajo plugins/memory/.3

hermes plugins                       # Interactive enable/disable UI
hermes plugins install <repo>        # Install from Git URL or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list

Principios de diseño

De la página de arquitectura upstream:3

Principio Qué significa en la práctica
Estabilidad del prompt El system prompt no cambia a mitad de conversación. No hay mutaciones que rompan caché salvo acciones explícitas del usuario (/model)
Ejecución observable Cada llamada a herramienta es visible para el usuario mediante callbacks. Actualizaciones de progreso en CLI (spinner) y gateway (mensajes de chat)
Interrumpible Las llamadas de API y la ejecución de herramientas pueden cancelarse en curso mediante entrada del usuario o señales
Núcleo agnóstico de plataforma Una clase AIAgent sirve a CLI, gateway, ACP, batch y servidor de API. Las diferencias de plataforma viven en el punto de entrada
Acoplamiento flexible Los subsistemas opcionales (MCP, plugins, proveedores de memoria, entornos RL) usan patrones de registro y compuertas check_fn, no dependencias rígidas
Aislamiento de profile Cada profile obtiene su propio HERMES_HOME, configuración, memoria, sesiones y PID de gateway. Varios profiles se ejecutan en paralelo

Migración desde OpenClaw

Hermes Agent es el sucesor de OpenClaw. Si estás migrando desde una instalación existente de OpenClaw:65

hermes claw migrate --dry-run                    # Preview what would be migrated
hermes claw migrate --preset full                # Full migration including API keys
hermes claw migrate --preset user-data --overwrite   # User data only, no secrets
hermes claw migrate --source /custom/path        # Non-default OpenClaw location

hermes claw migrate lee desde ~/.openclaw por defecto (también detecta automáticamente directorios heredados ~/.clawdbot y ~/.moldbot) y escribe en ~/.hermes.6

Importado directamente (más de 30 categorías): SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills desde 4 directorios fuente, modelo predeterminado, proveedores personalizados, servidores MCP, tokens y listas de permitidos de plataformas de mensajería (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), valores predeterminados del agente (razonamiento, compresión, demora humana, zona horaria, sandbox), políticas de reinicio de sesión, reglas de aprobación, configuración de TTS, configuración del navegador, configuración de herramientas, tiempo de espera de exec, lista de comandos permitidos, configuración de gateway y claves de API desde 3 fuentes.6

Archivado para revisión manual: cron jobs, plugins, hooks/webhooks, backend de memoria (QMD), configuración del registro de skills, UI/identidad, logging, configuración multiagente, bindings de canales, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6

La resolución de claves de API revisa tres fuentes en orden de prioridad: valores de configuración → ~/.openclaw/.envauth-profiles.json.6

Solución de problemas

“API key not set”

Ejecuta hermes model para configurar tu proveedor de forma interactiva, o hermes config set OPENROUTER_API_KEY your_key. El comando hermes doctor te dirá exactamente qué claves faltan.7

“Context limit: 2048 tokens” al iniciar (modelos locales)

Hermes detecta automáticamente la longitud del contexto desde el endpoint /v1/models de tu servidor, pero muchos servidores locales reportan valores predeterminados bajos. Configúralo explícitamente en config.yaml:2

model:
  default: your-model
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768

Las llamadas a herramientas aparecen como texto en lugar de ejecutarse

Tu servidor no tiene habilitada la invocación de herramientas, o el modelo no la admite a través de la implementación del servidor.2

Servidor Solución
llama.cpp Agrega --jinja al comando de inicio
vLLM Agrega --enable-auto-tool-choice --tool-call-parser hermes
SGLang Agrega --tool-call-parser qwen (o el parser apropiado)
Ollama La invocación de herramientas está habilitada por defecto — verifica que tu modelo lo admita con ollama show <model>
LM Studio Actualiza a la versión 0.3.6+ y usa un modelo con soporte nativo de herramientas

Las respuestas se cortan a la mitad de una oración

Dos posibles causas:2

  1. Límite de salida bajo (max_tokens) en el servidor — SGLang tiene un valor predeterminado de 128 tokens por respuesta. Configura --default-max-tokens en el servidor o ajusta model.max_tokens en config.yaml.
  2. Agotamiento del contexto — El modelo llenó su ventana de contexto. Aumenta model.context_length o habilita la compresión de contexto en Hermes.

“Connection refused” desde WSL2 hacia un servidor de modelos alojado en Windows

WSL2 usa un adaptador de red virtual con su propia subred — localhost dentro de WSL2 hace referencia a la VM de Linux, no al host de Windows. Dos opciones:2

Mirrored networking (Windows 11 22H2+): edita %USERPROFILE%\.wslconfig:

[wsl2]
networkingMode=mirrored

Luego ejecuta wsl --shutdown y reinicia. localhost ahora funciona de manera bidireccional.

Alternativa con la IP del host (Windows más antiguo): obtén la IP del host de Windows desde dentro de WSL2 y úsala en lugar de localhost:

ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host

También necesitas que el servidor del modelo escuche en 0.0.0.0, no en 127.0.0.1 — configura OLLAMA_HOST=0.0.0.0 para Ollama, agrega --host 0.0.0.0 para llama-server/SGLang, o habilita “Serve on Network” en LM Studio.2

¿Dónde está todo?

hermes status y hermes dump son tus aliados aquí. hermes logs list muestra todos los archivos de registro con sus tamaños. hermes config path imprime la ubicación del archivo de configuración. hermes config env-path imprime la ubicación del archivo .env.6


FAQ

¿Cuál es la diferencia entre Hermes Agent y Claude Code?

Claude Code es el CLI oficial de Anthropic, vinculado exclusivamente a los modelos de Anthropic. Hermes Agent es un framework de agentes de código abierto de Nous Research que funciona con cualquier proveedor compatible con OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google, o tu propio endpoint autoalojado.12 Hermes también incluye un gateway de mensajería para Telegram/Discord/Slack/WhatsApp/Signal que Claude Code no tiene.

¿Puedo usar Hermes con una API key de Anthropic?

Sí. Tres formas:2

  1. Configura ANTHROPIC_API_KEY en ~/.hermes/.env y ejecuta hermes chat --provider anthropic --model claude-sonnet-4-6
  2. Ejecuta hermes model y selecciona Anthropic — Hermes usará el almacén de credenciales de Claude Code cuando esté disponible
  3. Configura un ANTHROPIC_TOKEN manual (setup-token o token OAuth) como respaldo

La opción 2 es la preferida si ya usas Claude Code en la misma máquina — mantiene las credenciales refrescables de Claude refrescables.

¿Cómo cambio de proveedor sin perder mi conversación?

Usa /model provider:model dentro de una sesión. El historial de conversación, la memoria y los skills se conservan:9

/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5

Configuré Anthropic pero vision/web/compresión no funcionan

Estás encontrando el fallback del modelo auxiliar. Vision, resumen web, compresión y otras tareas secundarias usan un LLM auxiliar separado — por defecto Gemini Flash mediante autodetección (OpenRouter → Nous → Codex). Si ninguno de esos está configurado y solo tienes Anthropic configurado, estas funciones se degradan silenciosamente.4

Solución: agrega un OPENROUTER_API_KEY para tareas auxiliares, o reconfigura los slots auxiliares para que usen tu proveedor principal. Ten en cuenta que la compresión de contexto vive en su propio bloque de nivel superior compression: y toma summary_provider, no auxiliary.compression.provider — el slot auxiliary.compression solo expone un timeout. Solución completa:

auxiliary:
  vision:      { provider: "main" }
  web_extract: { provider: "main" }

compression:
  summary_provider: "main"

¿Cuál es la diferencia entre SOUL.md y AGENTS.md?

SOUL.md es la identidad de tu agente — tono, estilo, valores predeterminados de comunicación. Vive en ~/.hermes/SOUL.md y te acompaña a todas partes. AGENTS.md es específico del proyecto — arquitectura, convenciones, comandos, rutas — y vive en el directorio de tu proyecto.13 Si debe acompañarte a todas partes, SOUL.md. Si pertenece a un proyecto, AGENTS.md.

¿Cómo ejecuto múltiples instancias de Hermes en paralelo?

Profiles. Cada profile tiene su propio HERMES_HOME, config, memoria, sesiones y PID del gateway:6

hermes profile create work --clone
hermes profile use work                 # Sticky default
hermes -p work chat -q "..."            # One-off without switching
hermes profile alias work --name h-work # Wrapper script

¿Hermes admite LLMs locales?

Sí, a través de la ruta del endpoint personalizado. Hermes funciona con cualquier servidor compatible con OpenAI: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan, o el tuyo propio.2 Consulta Custom & Self-Hosted Endpoints para la configuración por servidor.

¿Por qué mi banner de inicio muestra menos herramientas de las que la guía dice que Hermes tiene?

La guía cita 47 herramientas / 20 toolsets del registro de arquitectura upstream — ese es el conteo total de herramientas para las que Hermes incluye código fuente en cada toolset. Tu instalación en ejecución muestra un número menor en el banner (la instalación de referencia usada para esta guía reporta 28 herramientas) porque Hermes solo habilita el conjunto de toolsets predeterminado al iniciar. Muchos toolsets son opt-in: los adaptadores del gateway de mensajería, la automatización del navegador, los stacks de scraping más pesados y varias integraciones especializadas deben listarse explícitamente bajo toolsets: en ~/.hermes/config.yaml antes de que se carguen. Total del registro = “lo que está disponible si lo habilitas”. Total del banner = “lo que tu profile actual realmente cargó”. Usa hermes tools --list para ver qué toolsets están activos y cuáles están disponibles pero deshabilitados. Activa o desactiva toolsets individuales en tiempo de ejecución con /tools enable <name> y /tools disable <name> (al deshabilitar se dispara un reinicio de sesión para que el agente reconstruya su manifiesto de herramientas con la nueva forma).

¿Cómo maneja Hermes el fallback de modelo cuando mi proveedor principal falla?

Configura un bloque fallback_model en config.yaml:2

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Cuando el principal falla (rate limit, error del servidor, fallo de autenticación), Hermes cambia al fallback a mitad de sesión sin perder el historial de conversación. Se activa como máximo una vez por sesión.

¿Puede el agente mejorar sus propios skills con el tiempo?

Sí — esa es la parte “self-improving” de Hermes Agent. El agente puede crear, actualizar y eliminar skills mediante la herramienta skill_manage. Cuando descubre un flujo de trabajo no trivial, guarda el enfoque como un skill para reutilizarlo en el futuro.11 El agente crea skills después de tareas complejas (más de 5 llamadas a herramientas), cuando se topa con errores y encuentra la ruta que funciona, cuando corriges su enfoque, o cuando descubre un flujo de trabajo no trivial.

¿Existe integración con IDE?

Sí — Hermes puede ejecutarse como un servidor ACP (Agent Client Protocol) para VS Code, Zed y JetBrains:6

pip install -e '.[acp]'
hermes acp

Registro de cambios

Fecha Cambio Fuente
2026-05-21 Guía v1.6: Se agregó v0.14.0 (16 de mayo de 2026) — The Foundation release. Titular: una base de instalación/ejecución más ligera, además de superficies más amplias para proveedores, gateway, medios y verificación. Se agregó SuperGrok OAuth con contexto de 1M en grok-4.3, hermes proxy compatible con OpenAI para proveedores OAuth, x_search de primera clase, pip install hermes-agent, instalaciones diferidas de dependencias, inicio ~19 s más rápido, llamadas CDP del navegador 180 veces más rápidas, LINE + SimpleX Chat para 22 plataformas de mensajería, Microsoft Teams de extremo a extremo, /handoff, /subgoal, botones nativos de aclaración en Telegram/Discord, relleno del historial de Discord, vision_analyze con píxeles sin procesar, pie de verificador de mutaciones de archivos por turno, diagnósticos semánticos LSP en cada escritura, video_generate unificado, computer_use vía cua-driver para proveedores que no son Anthropic, URLs clicables OSC8, compatibilidad con Zed ACP Registry, router Pareto Code de OpenRouter, NovitaAI, entorno de ejecución app-server de Codex, tap confiable huggingface/skills, 9 skills opcionales, plugin ctx.llm / tool_override, búsqueda web Brave/DDGS, cambio de nombre a Qwen Cloud, beta nativa de Windows y cierres de 12 P0 / 50 P1. 19
2026-05-07 Guía v1.5: Se agregó v0.13.0 (7 de mayo de 2026) — The Tenacity release. Titular: un tablero Kanban multiagente duradero (heartbeat, recuperación, detección de zombis, puerta contra alucinaciones, max_retries por tarea, tableros multiproyecto) que convierte los enjambres en una primitiva de primera clase en vez de un patrón de delegación. El comando /goal fija el agente a un objetivo entre turnos (patrón Ralph-loop como comando slash). Nueva herramienta video_analyze, primero con Gemini y con soporte extensible para modelos compatibles. Proveedor xAI Custom Voices TTS con clonación de voz. i18n en 7 idiomas (zh-Hans, ja, de, es, fr, uk, tr) para mensajes de CLI y gateway; documentación solo en zh-Hans. Google Chat como plataforma de mensajería número 20 mediante el patrón de adaptador conectable; IRC + Microsoft Teams migraron al mismo patrón. ProviderProfile ABC + plugins/model-providers/ para proveedores externos conectables sin cambios en el núcleo. Reanudación automática de sesión tras reinicio del gateway, /update y recarga de archivos fuente. Reescritura de Checkpoints v2 con diseño de almacén único, poda real y límites de protección de disco. Ocho cierres de seguridad P0: redacción de secretos activada por defecto, bypass de DM entre guilds en Discord (CVSS 8.1), rechazo de desconocidos + silenciamiento de chat propio en WhatsApp, TOCTOU de MCP OAuth, TOCTOU de auth.json en CLI, piso SSRF del navegador, escaneo de prompt injection en cron, redacción de hermes debug share. Linting posterior a escritura para Python/JSON/YAML/TOML, modo cron no_agent solo con scripts, allowlists de plataforma en Slack/Telegram/Mattermost/Matrix/DingTalk, mejoras de MCP (transporte SSE, reenvío de OAuth, etiquetas MEDIA de imagen). Estadísticas desde v0.12.0: 864 commits, 588 PR fusionados, 829 archivos modificados, 295 colaboradores de la comunidad, 282 issues cerrados (13 P0, 36 P1). 18
2026-05-06 Guía v1.4: Se agregó v0.12.0 (30 de abril de 2026) — The Curator release. Titular: un Curator autónomo en segundo plano que se ejecuta en el ticker cron del gateway (ciclo predeterminado de 7 días), califica la biblioteca de skills con una rúbrica, poda skills muertas, consolida skills relacionadas y escribe reportes por ejecución: Hermes se mantiene a sí mismo entre sesiones activas. El ciclo de mejora automática se actualizó con calificación basada en rúbricas, sesgo hacia actualizaciones activas, herencia correcta del runtime y toolsets acotados restringidos a memoria y skills. Cuatro nuevos proveedores de inferencia: GMI Cloud, Azure AI Foundry, MiniMax OAuth y Tencent Tokenhub. LM Studio ascendió a primera clase. Los manifiestos remotos del catálogo de modelos ahora se actualizan automáticamente sin releases. Dos nuevas plataformas de mensajería: Microsoft Teams (19.ª, mediante arquitectura de gateway conectable) y Tencent Yuanbao (18.ª, texto + medios nativos). Spotify nativo vía PKCE OAuth con skill incluida; plugin de Google Meet para llamadas y transcripción; proveedor Piper local TTS. ComfyUI v5 + TouchDesigner-MCP pasaron de opcionales a incluidos por defecto. Nuevas skills: Humanizer, claude-design, design-md, airtable. Adiciones a CLI: modo one-shot hermes -z, preflight hermes update --check, comando slash /reload-skills, estilos conectables de indicador de ocupado. El arranque en frío visible de la TUI se redujo ~57% mediante inicialización diferida de agentes e importaciones diferidas. Seguridad: redacción de secretos desactivada por defecto para evitar corrupción de payloads; blocklist estricta para comandos irrecuperables. Estadísticas: 1.096 commits, 550 PR fusionados, 213 colaboradores de la comunidad. 17
2026-04-25 Guía v1.3: Se agregó v0.11.0 (23 de abril de 2026) — The Interface release. Reescritura completa de la TUI interactiva en React/Ink con backend Python JSON-RPC (tui_gateway); compositor fijo, streaming en vivo con soporte de portapapeles OSC-52, teclas estables de selector, barra de estado con cronómetro por turno y rama de git, confirmación de /clear, preset de tema claro, superposición de observabilidad para creación de subagentes. Arquitectura de transporte conectable: conversión de formato y transporte HTTP extraídos a agent/transports/ para una integración de proveedores más limpia. AWS Bedrock nativo vía Converse API. Cinco nuevas rutas de inferencia: NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth y Vercel ai-gateway. GPT-5.5 vía Codex OAuth: el nuevo modelo insignia de OpenAI ahora está disponible mediante ChatGPT Codex OAuth sin una clave API separada. QQBot (17.ª plataforma de mensajería) con configuración por escaneo QR y streaming. Expansión de la superficie de plugins: comandos slash, despacho de herramientas, bloqueo de ejecución, transformación de resultados. /steer <prompt>: ajustes al agente a mitad de ejecución que inyectan una nota que el agente en curso ve después de su siguiente llamada de herramienta, sin interrumpir el turno ni romper la caché de prompts. Shell hooks conectan scripts como hooks de ciclo de vida sin plugins Python. El modo de entrega directa por webhook reenvía payloads directamente a un chat de plataforma, omitiendo al agente para fan-out. Delegación más inteligente con roles de orquestador, profundidad de spawn configurable y coordinación de archivos. El dashboard gana un sistema de plugins, cambio de tema en vivo, i18n y capacidad de respuesta móvil. Estadísticas desde v0.9.0: 1.556 commits, 761 PR fusionados, 1.314 archivos modificados, 224.174 inserciones, 29 colaboradores de la comunidad. 20
2026-04-16 Guía v1.2: Se agregó v0.10.0 — Nous Tool Gateway. Los suscriptores pagos de Nous Portal ahora acceden a herramientas administradas (búsqueda web Firecrawl, generación de imágenes FAL / FLUX 2 Pro, OpenAI TTS, automatización de navegador Browser Use) sin claves API adicionales. Activación por herramienta mediante el nuevo campo de configuración use_gateway. El runtime prefiere gateway sobre claves API directas cuando ambos están configurados. Se eliminó la variable de entorno HERMES_ENABLE_NOUS_MANAGED_TOOLS. Hermes Agent CLI sigue con licencia MIT y es completamente gratuito. 21
2026-04-13 Guía v1.1: Se agregaron funciones de v0.8.0 y v0.9.0. Dashboard web local, modo /fast, plataformas iMessage + WeChat (16 en total), monitoreo de procesos en segundo plano (watch_patterns), context engine conectable, hermes backup/hermes import, Termux/Android, proveedores xAI + MiMo + Google AI Studio + Qwen, comando /debug, endurecimiento de seguridad integral. 15 16
2026-04-10 Guía v1.0: Lanzamiento inicial que cubre Hermes Agent v0.7.0. Autenticación de proveedores, configuración, CLI, comandos slash, herramientas, skills, memoria, gateway, cron, MCP, compresión, arquitectura, migración de OpenClaw, solución de problemas, FAQ.

Referencias


  1. Nous Research, README del proyecto “Hermes Agent” en GitHub. Fuente primaria para la descripción del producto (agente de mejora automática, múltiples proveedores, gateway de mensajería, backends de terminal, evolución de skills, programador cron, delegación) y el comando de una línea de “Instalación rápida”

  2. Nous Research, “Proveedores de AI” en la documentación de Hermes Agent. Fuente primaria para la lista completa de proveedores, los métodos de autenticación por proveedor (Nous Portal OAuth, código de dispositivo de Codex, tipos de tokens de GitHub Copilot, autenticación de tres métodos de Anthropic, proveedores chinos de AI, enrutamiento de Hugging Face, endpoints personalizados), las tres rutas de autenticación (clave API en .env, OAuth mediante hermes model, endpoint personalizado en config.yaml), la sintaxis del comando slash /model (incluido custom:name:model), las plantillas de configuración de Ollama/vLLM/SGLang/llama.cpp/LM Studio, las instrucciones de red para WSL2, la cadena de detección de longitud de contexto, la configuración del modelo de fallback, el enrutamiento inteligente de modelos y los proveedores personalizados con nombre. Todos los nombres de variables de entorno específicos de proveedores, tipos de tokens, anulaciones de URL base e identificadores de modelo de esta publicación provienen de esta página. 

  3. Nous Research, “Arquitectura” en la guía para desarrolladores de Hermes Agent. Fuente primaria para el diagrama general del sistema, la estructura de directorios, el flujo de datos a través de la sesión CLI y las rutas de mensajes del gateway, los tres modos API (chat_completions, codex_responses, anthropic_messages), la resolución de proveedores mediante runtime_provider.py, la persistencia de sesiones mediante SQLite + FTS5, la lista de plataformas del gateway de mensajería, las fuentes de descubrimiento del sistema de plugins, el aislamiento de profiles y los seis principios de diseño. 

  4. Nous Research, “Configuración” en la guía de usuario de Hermes Agent. Fuente primaria para la estructura del directorio de configuración, la regla de config.yaml frente a .env (“config.yaml gana para configuraciones que no son secretas”), la cadena de precedencia de configuración (args de CLI → env → config.yaml → .env → valores predeterminados), la configuración de compresión de contexto (bloque compression.* con threshold, target_ratio, protect_last_n, summary_model, summary_provider, summary_base_url), los umbrales de presión de presupuesto (70% precaución, 90% advertencia), los timeouts de streaming con ajuste automático de proveedores locales y el bloque completo de configuración de modelos auxiliares (auxiliary: con espacios para vision, web_extract, approval, compression, session_search, skills_hub, mcp, flush_memories). La restricción del proveedor "main" a espacios auxiliares/de compresión/de fallback también proviene de esta página. 

  5. Nous Research, “Migrar desde OpenClaw” en las guías de Hermes Agent. Fuente para el flujo de migración de OpenClaw → Hermes. 

  6. Nous Research, “Referencia de comandos CLI” en la documentación de referencia de Hermes Agent. Fuente primaria para cada comando CLI de nivel superior documentado en esta publicación, incluidos hermes chat, hermes model, hermes gateway, hermes setup, hermes auth, hermes status, hermes cron, hermes webhook, hermes doctor, hermes dump, hermes logs, hermes config, hermes pairing, hermes skills, hermes honcho, hermes memory, hermes acp, hermes mcp, hermes plugins, hermes tools, hermes sessions, hermes insights, hermes claw, hermes profile, hermes completion, hermes update y hermes uninstall. Todos los flags de subcomandos, descripciones de opciones, comportamiento del conjunto de credenciales, sintaxis de filtrado de logs, flags de migración de OpenClaw, comandos de administración de profiles y comandos de instalación de servicios de esta publicación provienen de esta página. 

  7. Nous Research, “Instalación” en la guía de primeros pasos de Hermes Agent. Fuente primaria para el comando instalador de una línea, el comportamiento del instalador (prerrequisitos, compatibilidad de plataformas, autodetección de Termux, requisitos de Windows/WSL2), la tabla de extras opcionales, los pasos de instalación manual y los comandos de verificación. 

  8. Nous Research, “Referencia de comandos CLI”; consulta específicamente la sección hermes dump, que describe el formato de salida del comando (encabezado, entorno, identidad, modelo, terminal, claves API, funciones, servicios, carga de trabajo, anulaciones de configuración) y su uso previsto para compartir diagnósticos. 

  9. Nous Research, “Referencia de comandos slash” en la documentación de referencia de Hermes Agent. Fuente primaria para cada comando slash listado en esta publicación, la arquitectura COMMAND_REGISTRY, la separación entre CLI y mensajería, los comandos slash dinámicos de skills, los comandos rápidos en config.yaml, el comportamiento de coincidencia por prefijo y los comandos exclusivos de mensajería (/status, /sethome, /approve, /deny, /update, /commands). 

  10. Nous Research, “Tools y toolsets” en la guía de usuario de Hermes Agent. Fuente primaria para el resumen de categorías de tools, los comandos de uso de toolsets, los seis backends de terminal (local, docker, ssh, singularity, modal, daytona), la configuración de contenedores (cpu, memoria, disco, persistente), el hardening de seguridad para contenedores, la administración de procesos en segundo plano API y el soporte de sudo. 

  11. Nous Research, “Sistema de skills” en la guía de usuario de Hermes Agent. Fuente primaria para la divulgación progresiva, el formato SKILL.md, las skills específicas por plataforma, la activación condicional (fallback_for_toolsets, requires_toolsets, fallback_for_tools, requires_tools), las skills administradas por el agente mediante skill_manage, los comandos del skill hub y la lista de fuentes (official, skills-sh, well-known, github, clawhub, claude-marketplace, lobehub), el escaneo de seguridad, los niveles de confianza y los directorios externos de skills. 

  12. Nous Research, “Memoria persistente” en la guía de usuario de Hermes Agent. Fuente primaria para los límites de caracteres de MEMORY.md / USER.md, el patrón de instantánea congelada, las acciones de la tool de memoria (add, replace, remove), qué guardar y qué omitir, la comparación entre memoria y búsqueda de sesiones, y la lista de ocho proveedores externos de memoria (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). 

  13. Nous Research, “Personalidad y SOUL.md” en la guía de usuario de Hermes Agent. Fuente primaria para el comportamiento de SOUL.md (vive en HERMES_HOME, nunca se sobrescribe, espacio #1 en el prompt del sistema, se escanea por seguridad antes de incluirse), la distinción entre SOUL.md y AGENTS.md, la lista de personalidades integradas (14 personalidades, de helpful a hype), las personalidades personalizadas en config.yaml, el patrón de superposición de /personality y el orden completo de ensamblaje de la pila de prompts. 

  14. Nous Research, “Usar MCP con Hermes” y Referencia de configuración de MCP en las guías y la referencia de Hermes Agent. Fuente para el formato de configuración mcp_servers: en config.yaml con campos command, args, env

  15. Notas de lanzamiento de Hermes Agent v0.8.0. 8 de abril de 2026. Notificaciones automáticas de procesos en segundo plano, MiMo v2 Pro gratuito en Nous Portal, cambio de /model en vivo entre plataformas, proveedor nativo Google AI Studio, OAuth de Qwen, timeouts basados en inactividad, botones de aprobación en Slack/Telegram, OAuth 2.1 PKCE de MCP, logging centralizado, expansión del sistema de plugins. 

  16. Notas de lanzamiento de Hermes Agent v0.9.0. 13 de abril de 2026. Dashboard web local, Fast Mode (/fast), iMessage mediante BlueBubbles, WeChat + WeCom, Termux/Android, monitoreo de procesos en segundo plano (watch_patterns), proveedores nativos xAI + Xiaomi MiMo, context engine conectable, soporte de proxy unificado, hardening de seguridad (correcciones de path traversal, shell injection, SSRF, RCE), hermes backup/hermes import, /debug + hermes debug share, 16 plataformas compatibles. 487 commits, 269 PRs fusionados, 24 colaboradores. 

  17. Notas de lanzamiento de Hermes Agent v0.12.0. 30 de abril de 2026. “The Curator release”. Curator autónomo en segundo plano que califica, depura y consolida la biblioteca de skills en un ciclo predeterminado de 7 días ejecutado en el ticker cron del gateway. Bucle de mejora automática actualizado: calificación basada en rúbricas, sesgo de actualización activa, herencia correcta en runtime, toolsets delimitados restringidos a memoria y skills. Cuatro nuevos proveedores de inferencia: GMI Cloud, Azure AI Foundry, OAuth de MiniMax, Tencent Tokenhub. LM Studio asciende a primera clase. Los manifiestos de catálogo de modelos remotos se actualizan automáticamente sin lanzamientos. Dos nuevas plataformas de mensajería: Microsoft Teams (19.ª, mediante arquitectura de gateway conectable) y Tencent Yuanbao (18.ª, texto + multimedia nativos). Spotify nativo mediante OAuth PKCE con skill incluida; plugin de Google Meet para llamadas y transcripción; proveedor local de TTS Piper. ComfyUI v5 + TouchDesigner-MCP incluidos de forma predeterminada. Nuevas skills: Humanizer, claude-design, design-md, airtable. CLI: modo de una sola ejecución hermes -z, preflight hermes update --check, comando slash /reload-skills, estilos conectables de indicador de ocupado. Arranque en frío de TUI reducido ~57% mediante inicialización diferida. Seguridad: redacción de secretos deshabilitada de forma predeterminada; lista de bloqueo estricta para comandos irrecuperables. Estadísticas desde v0.11.0: 1.096 commits, 550 PRs fusionados, 213 colaboradores de la comunidad. Consulta también: etiqueta de lanzamiento v2026.4.30

  18. Notas de lanzamiento de Hermes Agent v0.13.0. 7 de mayo de 2026. “The Tenacity release”. Tablero Kanban multiagente con heartbeat, reclaim, detección de zombies, puerta de alucinaciones, max_retries por tarea, tableros multiproyecto. Comando slash /goal para fijación de objetivos entre turnos (primitiva del bucle Ralph) con presupuesto de turnos configurable. Tool video_analyze, Gemini primero con extensibilidad multimodal compatible. Proveedor TTS xAI Custom Voices con clonación de voz. i18n en 7 idiomas: zh-Hans, ja, de, es, fr, uk, tr (CLI + mensajes de gateway; docs solo en zh-Hans). Google Chat como 20.ª plataforma de mensajería mediante patrón de adaptador conectable con hooks genéricos de plugin env_enablement_fn / cron_deliver_env_var; IRC y Microsoft Teams migraron al mismo patrón. ABC ProviderProfile + plugins/model-providers/ para proveedores externos conectables. Reanudación automática de sesiones tras reinicio del gateway, /update y recargas de archivos fuente. Checkpoints v2 reescritura de almacén único con depuración real, barreras de disco, sin repositorios sombra huérfanos. Ocho cierres P0 de seguridad: redacción de secretos activada de forma predeterminada, bypass de DM entre guilds de Discord (CVSS 8.1, allowlists de roles delimitadas por guild), WhatsApp rechaza desconocidos de forma predeterminada + nunca responde en chat consigo mismo, TOCTOU de guardado de credenciales OAuth de MCP, TOCTOU de auth.json de CLI en escritores de credenciales, piso SSRF de metadatos cloud del navegador en enrutamiento híbrido, escaneo de prompts ensamblados de cron (incluido contenido de skills) para prompt injection, redacción de contenido de logs de hermes debug share al momento de subir. Otros elementos destacados: linting posterior a escritura para Python/JSON/YAML/TOML, modo watchdog de solo script no_agent de cron, allowlists de plataforma en Slack/Telegram/Mattermost/Matrix/DingTalk, mejoras de MCP (transporte SSE, reenvío de OAuth, resultados de imagen como etiquetas MEDIA). Estadísticas desde v0.12.0: 864 commits, 588 PRs fusionados, 829 archivos modificados, 295 colaboradores de la comunidad, 282 issues cerrados (13 P0, 36 P1). 

  19. Notas de lanzamiento de Hermes Agent v0.14.0. 16 de mayo de 2026. “The Foundation release”. Desde v0.13.0: 808 commits, 633 PRs fusionados, 1.393 archivos modificados, 165.061 inserciones, 545 issues cerrados (12 P0, 50 P1) y 215 colaboradores de la comunidad. Agrega OAuth de SuperGrok con grok-4.3 y contexto de 1M, hermes proxy, x_search, empaquetado PyPI, dependencias diferidas, caché de prompts Claude de 1 h entre sesiones, lanzamiento ~19 s más rápido, llamadas CDP de navegador 180x más rápidas, LINE y SimpleX Chat para 22 plataformas de mensajería, /handoff, botones nativos de aclaración, backfill del historial de Discord, vision_analyze con píxeles sin procesar, footer verificador de mutaciones de archivos por turno, diagnósticos semánticos de LSP, video_generate unificado, computer_use de cua-driver, enlaces OSC8, soporte de Zed ACP Registry, router OpenRouter Pareto Code, NovitaAI, runtime de app-server de Codex, huggingface/skills, plugin ctx.llm, tool_override, búsqueda Brave/DDGS, hardening de comandos peligrosos, /subgoal, cambio de nombre de Qwen Cloud, beta nativa de Windows, 16 locales totales y amplias actualizaciones de documentación/pruebas. 

  20. Notas de lanzamiento de Hermes Agent v0.11.0. 23 de abril de 2026. “The Interface release”: reescritura completa en React/Ink del CLI interactivo con un backend Python JSON-RPC (tui_gateway); arquitectura de transporte conectable (agent/transports/); AWS Bedrock nativo mediante Converse API; cinco nuevas rutas de inferencia (NVIDIA NIM, Arcee AI, Step Plan, OAuth de Google Gemini CLI, Vercel ai-gateway); GPT-5.5 mediante OAuth de Codex; QQBot como 17.ª plataforma de mensajería con configuración por escaneo QR; superficie de plugins expandida (comandos slash, despacho de tools, bloqueo de ejecución, transformación de resultados); /steer <prompt> para redirigir al agente durante la ejecución, inyectando contexto después de la siguiente llamada a tool sin romper la caché de prompts; hooks de shell para eventos de ciclo de vida sin plugins Python; modo de entrega directa de webhook que reenvía payloads directamente a un chat de plataforma; delegación más inteligente con roles de orquestador + profundidad de spawn configurable + coordinación de archivos; sistema de plugins para dashboard, cambio de tema en vivo, i18n, capacidad de respuesta móvil. Estadísticas desde v0.9.0: 1.556 commits · 761 PRs fusionados · 1.314 archivos modificados · 224.174 inserciones · 29 colaboradores de la comunidad. Consulta también: etiqueta de lanzamiento GitHub de Hermes Agent v0.11.0

  21. Notas de lanzamiento de Hermes Agent v0.10.0. 16 de abril de 2026. “The Tool Gateway Release”. Integración con Nous Tool Gateway para suscriptores de pago de Nous Portal: acceso administrado a búsqueda web Firecrawl, generación de imágenes FAL / FLUX 2 Pro, TTS de OpenAI y automatización de navegador Browser Use sin claves API adicionales. Activación por tool mediante el nuevo campo de configuración use_gateway. El runtime prefiere el gateway sobre claves API directas cuando ambos están configurados. Integración completa con hermes tools y hermes status. Reemplaza la variable de entorno obsoleta HERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementación por @jquesnelle (emozilla). El CLI de Hermes Agent sigue con licencia MIT y es completamente open source; el gateway es una integración con el producto de suscripción Portal existente, no un paywall sobre el CLI. Consulta también: Nous Portal para precios de suscripción y registro. 

NORMAL hermes.md EOF