Hermes Agent: La referencia para profesionales (2026)
# v0.13 Tenacity agrega Kanban multiagente con heartbeat y detección de zombis, bloqueo Ralph-loop de /goal, video_analyze, xAI Custom Voices TTS, i18n en 7 idiomas, Google Chat como vigésima plataforma, proveedores conectables de ProviderProfile, reanudación automática de sesiones, Checkpoints v2 y 8 correcciones de seguridad P0.
TL;DR: Hermes Agent es un agente de IA autoevolutivo de código abierto desarrollado por Nous Research. Se ejecuta como un CLI y como una pasarela de mensajería multiplataforma, almacena una identidad duradera y memoria persistente en disco, agrega skills que mejoran con el uso, y funciona con cualquier proveedor de LLM compatible con OpenAI: Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, Hugging Face, Google, o tu propio endpoint autoalojado.12 La parte más difícil para la mayoría de los usuarios nuevos es la autenticación con proveedores: Hermes admite alrededor de 19 proveedores de primera clase más endpoints personalizados, y tres rutas de autenticación distintas (clave API en
.env, OAuth mediantehermes model, o endpoint personalizado enconfig.yaml). El modelo de autenticación es lo primero que conviene aprender: todo lo demás depende de qué proveedor se resuelva.
Hermes Agent opera como un runtime de agente completo, no como un envoltorio de chat. Lee tu sistema de archivos, ejecuta comandos en backends aislados, hace scraping de la web, lanza subagentes, ejecuta tareas cron programadas, se comunica con Telegram/Discord/Slack/WhatsApp/Signal/Email desde un único proceso de 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:
- Resolución de proveedor: cómo los flujos de autenticación se mapean a llamadas de API
- Jerarquía de configuración:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - Sistema de tools + toolsets: lo que el agente puede hacer, controlado por plataforma
- Sistema de skills: memoria procedural que el agente crea y evoluciona
- Gateway + cron + profiles: ejecutar Hermes donde vives, no solo donde estás
Conclusiones clave
- La autenticación con proveedores tiene tres rutas, no una. Clave API en
.env, OAuth mediantehermes model/hermes auth, o endpoint personalizado enconfig.yaml. Elige la ruta que corresponda a tu proveedor, no la que te resulte familiar. - Cambiar de proveedor es un solo comando.
hermes modelte guía interactivamente por cada proveedor compatible, incluyendo inicios de sesión con OAuth, y/model provider:modelcambia a mitad de sesión sin perder el historial.2 - Dos archivos son la superficie de configuración editable por el usuario.
~/.hermes/config.yamlcontiene la configuración y~/.hermes/.envcontiene los secretos.auth.json,SOUL.md,MEMORY.mdyskills/son gestionados directamente por Hermes: puedes editarSOUL.mda mano, pero el resto lo modifica el propio agente.4 - Hermes es el sucesor de OpenClaw. Si estás migrando,
hermes claw migrateimporta más de 30 categorías de estado automáticamente.5 - La calidad del servicio depende de tu modelo auxiliar. La visión, el resumen web, la compresión y el volcado de memoria utilizan un LLM auxiliar separado. De forma predeterminada, este es Gemini Flash mediante detección automática (OpenRouter → Nous → Codex); si ninguno de estos está configurado, estas funciones se degradan silenciosamente hasta que apuntes los slots auxiliares a tu proveedor principal.4
Cada sección a continuación se basa en la documentación oficial 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 específica de la documentación de la que proviene.
Elige tu camino
| Lo que necesitas | Ve aquí |
|---|---|
| Instalar Hermes | Instalación — instalador de una línea o pasos manuales |
| Iniciar sesión con un proveedor | Autenticación y proveedores — la sección que viniste a buscar |
| Cambiar de modelo 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 | Pasarela de mensajería — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat (20 en total) |
| Escribir o instalar una skill | Sistema de skills — divulgación progresiva + hub de skills |
| Referencia detallada de cada comando del CLI | Sigue leyendo — y enlaza directamente a Comandos del CLI |
Cómo funciona Hermes: el modelo mental
Hermes se estructura en torno a un único bucle de conversación que cualquier punto de entrada puede invocar. Los puntos de entrada son el CLI (cli.py), el messaging gateway (gateway/run.py), el adaptador ACP para integración con editores, el ejecutor por lotes y un servidor API.3 Todos terminan llamando a AIAgent.run_conversation() en run_agent.py, que:
- Construye el prompt del sistema a partir de
SOUL.md,MEMORY.md,USER.md, skills, archivos de contexto y guía de herramientas medianteprompt_builder.py3 - Resuelve el proveedor de ejecución a través de
runtime_provider.py— este es el paso que selecciona tu autenticación, URL base y modo API3 - Llama al proveedor usando uno de tres modos API:
chat_completions,codex_responsesoanthropic_messages3 - Despacha las llamadas a herramientas devueltas a través de
model_tools.pyy el registro central de herramientas (tools/registry.py)3 - Itera hasta que el modelo produce una respuesta final, 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 control en la etapa 1, 2, 3 o 4 del bucle anterior.”
Núcleo agnóstico de plataforma. Una única clase AIAgent sirve al CLI, gateway, ACP, lotes y servidor API. Las diferencias de plataforma residen en el punto de entrada, no en el agente.3 Por eso los mismos comandos slash 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 almacena 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 tiene un rol específico; ninguno se superpone. Si buscas “dónde almacena Hermes X”, es uno de estos.
Instalación
El instalador de una línea es la vía para el 95% de los usuarios. Se encarga de Python, uv, Node.js, ripgrep, ffmpeg, la clonación del repositorio, el entorno virtual y el comando global hermes.7
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Funciona en Linux, macOS, WSL2 y Android/Termux (el instalador detecta automáticamente Termux y cambia a un paquete Android probado).7 Windows nativo no está soportado — instala WSL2 y ejecuta el comando anterior desde ahí.7
Una vez que termina:
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
El único prerrequisito es git. El instalador aprovisiona automáticamente Python 3.11 mediante uv (sin necesidad de 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 indica exactamente qué falta y cómo solucionarlo.7 hermes dump es el comando de diagnóstico para pegar en un issue de GitHub o un hilo de Discord cuando pides 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 del proyecto.7 Los 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 |
Interfaz de menú en terminal para el asistente de configuración |
modal |
Backend de ejecución en la nube Modal |
voice |
Entrada de micrófono del CLI + reproducción de audio |
tts-premium |
Voces premium de ElevenLabs |
honcho |
Memoria nativa de IA (integración con Honcho) |
mcp |
Soporte para Model Context Protocol |
homeassistant |
Integración con Home Assistant |
acp |
Soporte de integración ACP con editores |
slack |
Mensajería de Slack |
pty |
Soporte de terminal PTY (herramientas interactivas del CLI) |
dev |
pytest y utilidades de prueba |
termux |
Paquete Android probado (incluye cron, cli, pty, mcp, honcho, acp) |
El comando de instalación en Termux es diferente — usa pip con un archivo de restricciones, no uv pip:
python -m pip install -e ".[termux]" -c constraints-termux.txt
Esto se debe a que .[all] en Android arrastra faster-whisper a través del extra voice, que depende de wheels de ctranslate2 que no están publicadas 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. Aquí está toda la superficie de autenticación, organizada por ruta para que puedas encontrar la que se ajusta a 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 de API en .env. Coloca tu clave en ~/.hermes/.env y Hermes la lee al iniciar. Usada por 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 proveedores de terceros.2
Ruta 2 — OAuth mediante hermes model o hermes auth. Inicia un flujo de código de dispositivo, abre un navegador, almacena las credenciales en ~/.hermes/auth.json (y puede importar credenciales existentes desde herramientas como Claude Code o Codex CLI). Usada por 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 autoalojado. Se configura una sola vez mediante hermes model → Custom endpoint y luego se persiste 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 copilot CLI en PATH + copilot login) |
| Anthropic | OAuth o clave de API | hermes model (prefiere credenciales de Claude Code) o ANTHROPIC_API_KEY, o ANTHROPIC_TOKEN setup-token |
| OpenRouter | Clave de API | OPENROUTER_API_KEY en ~/.hermes/.env |
| AI Gateway (Vercel) | Clave de API | AI_GATEWAY_API_KEY en ~/.hermes/.env (proveedor: ai-gateway) |
| z.ai / GLM (ZhipuAI) | Clave de API | GLM_API_KEY en ~/.hermes/.env (proveedor: zai) |
| Kimi / Moonshot | Clave de API | KIMI_API_KEY en ~/.hermes/.env (proveedor: kimi-coding) |
| MiniMax (global) | Clave de API | MINIMAX_API_KEY en ~/.hermes/.env (proveedor: minimax) |
| MiniMax China | Clave de API | MINIMAX_CN_API_KEY en ~/.hermes/.env (proveedor: minimax-cn) |
| Alibaba Cloud (Qwen) | Clave de API | DASHSCOPE_API_KEY en ~/.hermes/.env (proveedor: alibaba, alias: dashscope, qwen) |
| Kilo Code | Clave de API | KILOCODE_API_KEY en ~/.hermes/.env (proveedor: kilocode) |
| OpenCode Zen | Clave de API | OPENCODE_ZEN_API_KEY en ~/.hermes/.env (proveedor: opencode-zen) |
| OpenCode Go | Clave de API | OPENCODE_GO_API_KEY en ~/.hermes/.env (proveedor: opencode-go) |
| DeepSeek | Clave de API | DEEPSEEK_API_KEY en ~/.hermes/.env (proveedor: deepseek) |
| Hugging Face | Clave de API | HF_TOKEN en ~/.hermes/.env (proveedor: huggingface, alias: hf) |
| Google / Gemini | Clave de API | GOOGLE_API_KEY o GEMINI_API_KEY en ~/.hermes/.env (proveedor: gemini) |
| xAI (Grok) | Proveedor nativo | Proveedor de primera clase con acceso API directo y catálogo de modelos (v0.9.0+). Habilita automáticamente el almacenamiento en caché de prompts mediante el encabezado x-grok-conv-id.216 |
| xAI Custom Voices | Clave de API | Proveedor de TTS con clonación de voz. Nuevo en v0.13.0; configúralo bajo tts: en 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 gratuito en Nous Portal para tareas auxiliares (v0.9.0+).1615 |
| Google AI Studio | Clave de API | GOOGLE_API_KEY o GEMINI_API_KEY en ~/.hermes/.env. Acceso directo a Gemini con longitudes de contexto detectadas automáticamente vía el registro models.dev (v0.8.0+).15 |
| Qwen | OAuth | Proveedor OAuth con soporte de solicitudes al portal (v0.8.0+).15 |
| 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 los documentos oficiales: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 Anthropic OAuth a través de hermes model, Hermes prefiere el almacén de credenciales de Claude Code en lugar de copiar el token a ~/.hermes/.env. Eso mantiene actualizables las credenciales actualizables de Claude.2 Si ya usas Claude Code en la misma máquina, esta es la ruta más limpia.
Para fijar Anthropic permanentemente 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 se admite en dos modos: API directa de Copilot (recomendada) y Copilot ACP (que ejecuta 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 verifica en este orden, según los documentos oficiales:2
1. Variable de entorno COPILOT_GITHUB_TOKEN
2. Variable de entorno GH_TOKEN
3. Variable de entorno GITHUB_TOKEN
4. Fallback al CLI gh auth token
5. Inicio de sesión con código de dispositivo OAuth mediante hermes model
El tipo de token importa. La API de Copilot no admite los Personal Access Tokens clásicos (ghp_*). Los tipos admitidos son tokens OAuth (gho_*), PATs de granularidad fina (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 incluye soporte integrado para z.ai/GLM, Kimi/Moonshot, MiniMax (endpoints global y 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 URLs 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 múltiples endpoints (variantes global, China, coding) para encontrar uno que acepte tu clave de API. El endpoint funcional se almacena en caché automáticamente: para la mayoría de usuarios no se necesita GLM_BASE_URL.2
xAI (Grok) habilita 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 enrutar al mismo servidor dentro de una sesión de conversación, reutilizando los prompts de sistema y el historial cacheados.2 Es automático; no se necesita 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 son la forma de rotar múltiples claves de API o tokens OAuth para el mismo proveedor: útil para distribuir los límites de tasa entre varias claves sin cambiar el código.6 Los comandos heredados hermes login / hermes logout se han eliminado; usa hermes auth en su lugar.6
Endpoints personalizados y autoalojados
Hermes funciona con cualquier endpoint API compatible con OpenAI. Si un servidor implementa /v1/chat/completions, puedes apuntar Hermes a él.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 persisten 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 aún se respetan como fallback para la ruta de enrutamiento auxiliar provider: "main", así que no las elimines a ciegas si las estás usando ahí).4
Cambiar de 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 (sin nombre de modelo) consulta la API /v1/models de tu endpoint y selecciona automáticamente el modelo si hay exactamente uno cargado: útil para servidores locales que ejecutan un único modelo.2
Servidores LLM locales (plantillas de configuración)
Los documentos oficiales tienen guías de configuración completas 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 fácil, 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
Trampa crítica de Ollama: Ollama tiene por defecto longitudes de contexto muy bajas (4.096 tokens con menos de 24 GB de VRAM). Debes aumentarlo mediante OLLAMA_CONTEXT_LENGTH o un Modelfile: la API compatible con OpenAI no acepta la longitud de contexto del cliente, por lo que Hermes no puede establecerla por ti.2 Para uso de agente, 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
La invocación de herramientas requiere --enable-auto-tool-choice y --tool-call-parser <name>. Parsers admitidos: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Sin estos flags, las llamadas a herramientas vuelven como texto plano.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
Trampa de SGLang: El max_tokens por defecto es 128. Configura --default-max-tokens en el servidor o ajusta 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 la invocación de herramientas. Sin él, llama-server ignora por completo el parámetro tools y el modelo intenta llamar a las herramientas escribiendo JSON en el texto de su respuesta — que Hermes no puede analizar como llamadas reales a herramientas.2
LM Studio — aplicación 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.
Trampa crítica de LM Studio: LM Studio lee la longitud de contexto desde los metadatos del modelo, pero muchos modelos GGUF reportan valores por defecto de 2048 o 4096. Establece siempre la longitud de contexto explícitamente en la configuración del modelo de LM Studio: haz clic en el icono de engranaje junto al selector de modelos, configura “Context Length” en al menos 16384 (preferiblemente 32768) y recarga el modelo.2
Proveedores personalizados con nombre
Si trabajas con múltiples endpoints personalizados (un servidor de desarrollo local y un servidor GPU remoto, por ejemplo), 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
Después puedes alternar 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 enchufables (v0.13.0+)
v0.13.0 incluye una ABC ProviderProfile más un directorio plugins/model-providers/ para que los proveedores de inferencia de terceros se puedan integrar sin modificaciones del núcleo.18 Si un proveedor habla un modo de API compatible con OpenAI, Anthropic o Codex, puedes implementar una subclase ProviderProfile que declare la ruta de autenticación, la URL base, el catálogo de modelos y los encabezados de caché; Hermes la resuelve a través de 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 de v0.13.0: en lugar de editar el código del núcleo para añadir un proveedor, distribuyes un plugin.
Detección de la longitud de contexto
Dos configuraciones se confunden constantemente, según los documentos oficiales:2
context_length— la ventana de contexto total (presupuesto combinado de tokens de entrada + salida, p. ej. 1.000.000 para Claude Opus 4.7 o 200.000 para Sonnet 4.6). Hermes la usa 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 única respuesta). No tiene relación con la longitud del historial.
Establece 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 múltiples fuentes para detectar las ventanas de contexto: override en config → proveedor personalizado por modelo → caché persistente → endpoint /models → Anthropic /v1/models → API de OpenRouter → Nous Portal → models.dev (registro mantenido por la comunidad para más de 3.800 modelos) → valores predeterminados de fallback (128K).2 El sistema es consciente del proveedor, así que el mismo modelo puede tener distintos límites de contexto según quién lo sirva (p. ej., claude-opus-4.6 es de 1M en Anthropic directo pero de 128K en GitHub Copilot).2
Rotación y fallback de proveedores
Pools de credenciales. Cuando tienes múltiples claves de API para el mismo proveedor, configura una estrategia de rotación mediante hermes auth. Así es como distribuyes los límites de tasa entre varias claves.6
Modelo de fallback. Configura un provider:model de respaldo al que Hermes cambia automáticamente cuando tu modelo principal falla (límites de tasa, errores de servidor, fallos 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 intercambia modelo y proveedor a mitad de sesión sin perder tu conversación. Se activa como máximo una vez por sesión.2 Proveedores admitidos 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 de pantalla del navegador, clasificación de aprobación de comandos peligrosos, compresión de contexto, resumen de búsqueda de sesiones, coincidencia de skills, despacho de herramientas MCP y vaciado de memoria.4 Por defecto, estos usan Gemini Flash mediante detección automática (OpenRouter → Nous → Codex).
Puedes configurar qué modelo y proveedor usa cada tarea auxiliar. Cada slot auxiliar usa los mismos tres parámetros: 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 use mi agente principal” — válida solo dentro de las configuraciones auxiliary:, compression: y fallback_model:. No es válida para tu configuración de nivel superior model.provider. Si usas un endpoint personalizado compatible con OpenAI como tu modelo principal, configura provider: custom en tu sección model:.4
Por qué importa: si solo configuraste Anthropic OAuth (sin clave de OpenRouter), tu visión, resumen web y compresión se degradarán o fallarán porque la cadena de fallback auxiliar por defecto prueba primero con OpenRouter. Añade un OPENROUTER_API_KEY para tareas auxiliares, o reconfigura cada slot auxiliar para que use tu proveedor principal:
auxiliary:
vision:
provider: "main"
web_extract:
provider: "main"
Esta es la trampa más común de “mis funciones no funcionan en silencio” 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 oficial, estos son los archivos que componen 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 configurados, config.yaml gana para los ajustes que no son secretos.4 La regla es:
- Secretos (claves de API, tokens de bots, contraseñas) → .env
- Todo lo demás (modelo, backend de terminal, ajustes de compresión, límites de memoria, toolsets) → config.yaml
Los secretos pueden referenciarse desde config.yaml usando interpolación al estilo shell:4
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
Gestionar 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 añadidas que tu archivo aún no tiene.6
Precedencia de la Configuración
Hermes carga la configuración desde varias fuentes. Cuando múltiples fuentes definen el mismo valor, gana la de mayor prioridad:4
- Argumentos de CLI —
hermes chat --model anthropic/claude-sonnet-4(anulación por invocación) - Variables de entorno — se aplican al iniciar el proceso
config.yaml— el archivo principal de ajustes.env— solo secretos- Valores predeterminados integrados — se aplican cuando ninguna otra fuente define un valor
Las flags de CLI siempre ganan para esa invocación única. config.yaml es la fuente de verdad a largo plazo.
Localización (v0.13.0+)
v0.13.0 añade 7 locales para los mensajes de CLI y del gateway: chino (simplificado), japonés, alemán, español, francés, ucraniano y turco.18 La documentación actualmente 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 predeterminado y la fuente de verdad para cualquier cadena que una traducción aún no haya cubierto.
Profiles — Múltiples Instancias de Hermes Aisladas
Los profiles te dan múltiples instancias de Hermes aisladas, cada una con su propia configuración, sesiones, skills, memoria y PID de gateway. Así es como ejecutas un “Hermes de trabajo” y un “Hermes personal” en paralelo sin que ninguno vea el estado del otro.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>/ por defecto), de modo que varios profiles pueden ejecutar el gateway de forma concurrente 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, razón por la cual la mayoría de los comandos funcionan de forma idéntica en todas las superficies.9
Control de sesión
| Comando | Descripción |
|---|---|
/new (alias /reset) |
Inicia una nueva sesión |
/clear |
Limpia la pantalla e inicia una nueva sesión |
/history |
Muestra el historial de la conversación |
/save |
Guarda la conversación actual |
/retry |
Reintenta el último mensaje |
/undo |
Elimina el último intercambio usuario/asistente |
/title <name> |
Establece un título para la sesión actual |
/compress |
Comprime manualmente el contexto de la conversación |
/rollback [number] |
Lista o restaura puntos de control del sistema de archivos |
/stop |
Termina todos los procesos en segundo plano en ejecución |
/queue <prompt> |
Encola un prompt para el siguiente turno. Detalle a tener en cuenta: /q lo reclaman tanto /queue como /quit; gana el último registro y /q se resuelve como /quit en la práctica — escribe siempre /queue de forma explícita.9 |
/resume [name] |
Reanuda una sesión previamente nombrada |
/statusbar (alias /sb) |
Alterna 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 lateral efímera (sin herramientas, no se persiste) |
/plan [request] |
Carga la skill plan integrada para escribir un plan en lugar de ejecutar |
/branch [name] (alias /fork) |
Bifurca la sesión actual |
/goal <target> |
Fija al agente sobre un objetivo para que se mantenga en tarea a través de los turnos. Patrón Ralph-loop como primitiva de primera clase. Presupuesto de turnos configurable. Nuevo en v0.13.0.18 |
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] |
Establece una personalidad superpuesta |
/verbose |
Alterna la visualización del progreso de las herramientas |
/reasoning |
Gestiona el esfuerzo de razonamiento y su visualización |
/skin |
Muestra o cambia el tema/skin de visualización |
/voice [on\|off\|tts\|status] |
Alterna el modo de voz de CLI |
/yolo |
Alterna el modo YOLO (omite los prompts de aprobación) |
/fast |
Alterna el modo Fast — procesamiento prioritario para modelos de OpenAI y Anthropic (v0.9.0+)16 |
/debug |
Diagnóstico rápido en todas las plataformas (v0.9.0+)16 |
El comando /model es el caballo de batalla 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 las herramientas para la sesión actual |
/toolsets |
Lista los toolsets disponibles |
/browser [connect\|disconnect\|status] |
Gestiona la conexión local de Chrome CDP |
/skills |
Busca, instala, inspecciona o gestiona skills |
/cron |
Gestiona tareas programadas |
/reload-mcp |
Recarga los servidores MCP desde config.yaml |
/plugins |
Lista los plugins instalados |
/help |
Muestra todos los comandos |
/usage |
Muestra el uso de tokens, el costo y la 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 su home |
Comandos slash dinámicos de skills
Cada skill instalada se expone automáticamente como un 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 quick commands en config.yaml que asocien 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 la CLI.
Coincidencia por prefijo
Los comandos admiten coincidencia por prefijo: al escribir /h se resuelve a /help, y /mod se resuelve a /model. Cuando un prefijo es ambiguo, gana el primer registro en 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 home de la plataforma/approve [session|always]— aprueba un comando peligroso pendiente/deny— rechaza un comando peligroso pendiente/update— actualiza Hermes Agent a la última versión/commands [page]— explora todos los comandos y skills (paginado)
Y algunos son exclusivos de CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9
Herramientas y toolsets
Hermes incluye un amplio registro 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 se pueden habilitar o deshabilitar por plataforma.
Categorías de alto nivel
| 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, 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+).18 |
| Orquestación de agentes | todo, clarify, execute_code, delegate_task |
Planificación, aclaración, ejecución de código, delegación a subagentes |
| 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_*, MCP tools, rl_* |
Home Assistant, MCP, entrenamiento RL |
Entre los nombres comunes de toolsets se incluyen web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant y rl.10
Gestionar herramientas
hermes chat --toolsets "web,terminal" # Use specific toolsets
hermes tools # Interactive per-platform tool config
hermes tools --summary # Print enabled-tools summary
También puedes activar o desactivar herramientas a mitad de sesión con /tools disable <name> y /tools enable <name>, lo que reinicia la sesión para que el nuevo toolset entre en vigor.9
Backends de terminal
La herramienta de terminal puede ejecutar comandos en 6 entornos diferentes:10
| Backend | Caso de uso |
|---|---|
local |
Se ejecuta en tu máquina (predeterminado): desarrollo, tareas de confianza |
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 |
Workspace 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 (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 endurecimiento de seguridad: sistema de archivos raíz de solo lectura (Docker), todas las capacidades de Linux eliminadas excepto DAC_OVERRIDE, CHOWN y FOWNER, sin escalada de privilegios, límites de PID (256 procesos), aislamiento completo por namespaces, workspace persistente mediante volúmenes.10
Procesos en segundo plano
La herramienta de terminal admite ejecución en segundo plano con gestió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 de CLI como Codex y Claude Code.10
Sudo
Si un comando necesita sudo, Hermes te pedirá la contraseña (almacenada en caché durante la sesión). También puedes definir SUDO_PASSWORD en ~/.hermes/.env.10
Kanban multiagente (v0.13.0+)
v0.13.0 convierte la colaboración multiagente en una primitiva de primera clase: un tablero Kanban durable que rastrea tareas, estado e identidad del worker entre agentes y reinicios.18 El tablero es lo que hace que un enjambre de workers de Hermes realmente termine el trabajo en lugar de quedarse atascado en traspasos muertos.
| Mecanismo | Qué hace |
|---|---|
| Heartbeats | Cada worker emite pulsos mientras posee una tarea. Un heartbeat perdido marca al worker como sospechoso y libera la tarea para recuperarla. |
| Reclaim | Un worker diferente puede tomar una tarea abandonada, con todo el estado de la tarea y la salida parcial previa. |
| Zombie detection | Los workers 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 falla el gate envía la tarea de vuelta al tablero con una razón registrada, en lugar de marcarla como terminada. |
max_retries por tarea |
Sobrescribe 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 se combina de forma natural con /goal (bucle Ralph con 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.20 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_TOOLSse eliminó en v0.10.0. Las herramientas administradas ahora se habilitan mediante el campo de configuraciónuse_gatewaypor herramienta y dependen del estado de tu suscripción de Portal.20
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 20 plataformas de mensajería desde un único 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 y un adaptador Webhook genérico.3191718 v0.9.0 agregó iMessage mediante BlueBubbles (registro automático de webhooks, asistente de configuración y resiliencia ante fallos) y soporte nativo para WeChat mediante iLink Bot API, con modo de callback de WeCom para apps empresariales.16 v0.11.0 agregó QQBot.19 v0.12.0 agregó Microsoft Teams y Tencent Yuanbao.17 v0.13.0 agregó Google Chat como la plataforma número 20, usando 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
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 bot, mapeos de canales y allowlists.6
Cómo fluyen los mensajes
Según 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
Todas las plataformas de mensajería pasan por el mismo bucle de conversación AIAgent que CLI. Por eso los comandos slash funcionan de forma idéntica 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 una 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 herramientas. Los jobs persisten en JSON y sobreviven a reinicios.3
Integración con MCP
Hermes soporta Model Context Protocol tanto como cliente como servidor:6
Como cliente: conecta Hermes a servidores MCP externos para ampliar su superficie de herramientas:
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 apuntarla 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 de presupuesto
Cuando el agente trabaja en una tarea compleja con muchas llamadas a herramientas, puede consumir su presupuesto de iteraciones (predeterminado: 90 turnos) sin darse cuenta. La presión de 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 stream
La conexión de streaming de LLM tiene dos capas de timeout que se ajustan automáticamente para proveedores locales (localhost, IPs 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 el prefill de contextos grandes antes de producir el primer token.4
Dashboard web local (v0.9.0+)
Un dashboard basado en navegador para gestionar tu Hermes Agent localmente. Configura ajustes, monitorea sesiones, explora skills y administra tu gateway sin tocar archivos de configuración ni la terminal.16 Lánzalo con hermes dashboard. 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 vigila logs de compilación, todo sin polling. Combinado con notify_on_complete de v0.8.0 (que notifica cuando se completa una tarea en segundo plano), Hermes ahora tiene una capa completa de observabilidad para procesos en segundo plano.15
Context engine conectable (v0.9.0+)
La gestión de contexto ahora es un slot conectable mediante hermes plugins. Puedes intercambiar context engines personalizados que controlan lo que el agente ve en cada turno: filtrado, resumen o inyección de contexto específico del dominio.16 Esto desacopla la estrategia de contexto del bucle central del agente, lo que permite personalizar el contexto por proyecto o 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 Úsalo para migrar entre máquinas, crear snapshots antes de cambios importantes o compartir una configuración validada con tus compañeros de equipo.
Soporte para Termux / Android (v0.9.0+)
Hermes se ejecuta de forma nativa en Android mediante Termux. Las rutas de instalación adaptadas, las optimizaciones de TUI para pantallas móviles, el soporte de backend de voz y el comando /image funcionan directamente en el dispositivo.16
Endurecimiento de seguridad (v0.13.0+)
v0.13.0 cerró 8 problemas de seguridad P0 y cambió un valor predeterminado a favor del usuario.18
| Corrección | Qué cambió |
|---|---|
| Redacción de secretos activada de forma predeterminada | Antes era opt-in. 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 de forma predeterminada tras reportes de corrupción de payloads; v0.13.0 la vuelve a activar como base más segura. |
| Bypass de DM entre guilds de Discord (CVSS 8.1) | Las allowlists de roles de Discord ahora tienen alcance por guild, lo que cierra una vía en la que un rol de usuario en una guild autorizaba DMs en todas las demás. |
| Restricciones predeterminadas de WhatsApp | El adaptador de WhatsApp rechaza desconocidos de forma predeterminada 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 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 aplica un piso SSRF contra metadatos de nube para solicitudes que intentan alcanzar 169.254.169.254 y equivalentes. |
| Escaneo de prompt injection en cron | Los prompts ensamblados (incluido el contenido de skills cargadas) se escanean en busca de prompt injection antes de que se ejecute el cron job. |
Redacción en hermes debug share |
Las cargas de debug share redactan el contenido de logs al momento de la carga, no solo al momento de escritura. |
Si mantienes un despliegue de Hermes, trata v0.13.0 como una actualización relevante para la seguridad, no solo como una entrega de funciones. El bypass entre guilds de Discord y las dos ventanas TOCTOU son explotables en versiones anteriores.
Arquitectura para profesionales
Esta sección está dirigida a quienes quieren entender lo que sucede bajo el capó para poder depurarlo, extenderlo o razonar sobre su 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 tools / 20 toolsets” frente a “28 tools” en tu banner. El conteo de “47 tools” corresponde al registro total de herramientas del repositorio upstream — cada herramienta para la que Hermes incluye código fuente, en todos los toolsets. Tu CLI en ejecución mostrará un número menor en el banner de inicio (la instalación con la que verifiqué esta guía reporta 28 tools / 89 skills). Eso no es un error. Muchos toolsets son opcionales y deben habilitarse explícitamente en config.yaml bajo toolsets: — adaptadores de plataformas de mensajería, automatización de 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 perfil actual.” Verifica qué toolsets están activos con hermes tools --list y habilita o deshabilita toolsets individuales con el bloque toolsets: en ~/.hermes/config.yaml (o con /tools list / /tools enable <name> / /tools disable <name> dentro de una sesión en ejecución — eliminar una herramienta provoca 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 los endpoints personalizados, cualquier servidor compatible con OpenAI |
codex_responses |
OpenAI Codex (vía ChatGPT OAuth) |
anthropic_messages |
Anthropic API (nativa), Anthropic OAuth, proxies compatibles con Anthropic |
El resolutor runtime_provider.py mapea las tuplas (provider, model) a (api_mode, api_key, base_url) para más de 18 proveedores, gestionando 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 del prompt incluye:13
SOUL.md(identidad del agente — o respaldo integrado si no está disponible)- Guía de comportamiento consciente de las herramientas
- Memoria/contexto del usuario (
MEMORY.md,USER.md) - Guía de skills
- Archivos de contexto (
AGENTS.md,.cursorrules) - Marca de tiempo
- Sugerencias de formato específicas por plataforma
- Superposiciones opcionales del prompt del sistema, como
/personality
SOUL.md es la base — todo lo demás se construye sobre ella.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 entry points de pip. Los plugins registran herramientas, hooks y comandos de CLI a través de una API de contexto. 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. Sin mutaciones que rompan la 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 a API y la ejecución de herramientas pueden cancelarse en pleno vuelo por entrada del usuario o señales |
| Núcleo agnóstico de plataforma | Una sola clase AIAgent sirve a CLI, gateway, ACP, batch y servidor de API. Las diferencias de plataforma viven en el punto de entrada |
| Acoplamiento débil | Los subsistemas opcionales (MCP, plugins, proveedores de memoria, entornos de RL) usan patrones de registro y gating con check_fn, no dependencias rígidas |
| Aislamiento de perfiles | Cada perfil obtiene su propio HERMES_HOME, config, memoria, sesiones y PID de gateway. Múltiples perfiles se ejecutan de forma concurrente |
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 los 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 de MCP, tokens y listas de permitidos de plataformas de mensajería (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), valores predeterminados del agente (esfuerzo de razonamiento, compresión, retraso humano, zona horaria, sandbox), políticas de reinicio de sesión, reglas de aprobación, configuración de TTS, ajustes del navegador, ajustes de herramientas, timeout de exec, lista de permitidos de comandos, configuración del gateway y claves de API desde 3 fuentes.6
Archivado para revisión manual: trabajos cron, plugins, hooks/webhooks, backend de memoria (QMD), configuración del registro de skills, UI/identidad, logging, configuración multiagente, vinculaciones de canales, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6
La resolución de claves de API verifica tres fuentes en orden de prioridad: valores de config → ~/.openclaw/.env → auth-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
- Límite de salida bajo (
max_tokens) en el servidor — SGLang tiene un valor predeterminado de 128 tokens por respuesta. Configura--default-max-tokensen el servidor o ajustamodel.max_tokensenconfig.yaml. - Agotamiento del contexto — El modelo llenó su ventana de contexto. Aumenta
model.context_lengtho 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
- Configura
ANTHROPIC_API_KEYen~/.hermes/.envy ejecutahermes chat --provider anthropic --model claude-sonnet-4-6 - Ejecuta
hermes modely selecciona Anthropic — Hermes usará el almacén de credenciales de Claude Code cuando esté disponible - Configura un
ANTHROPIC_TOKENmanual (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-07 | Guía v1.5: Se añadió v0.13.0 (7 de mayo de 2026) — La versión Tenacity. Titular: un tablero Kanban multiagente duradero (heartbeat, reclamación, detección de zombis, gate de alucinaciones, max_retries por tarea, tableros multiproyecto) que convierte los enjambres en una primitiva de primer nivel en lugar de un patrón de delegación. Comando /goal que fija al agente sobre un objetivo a lo largo de los turnos (patrón Ralph-loop como comando slash). Nueva herramienta video_analyze, con Gemini como prioridad y 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 CLI y mensajes del gateway; documentación solo en zh-Hans. Google Chat como vigésima plataforma de mensajería mediante el patrón de adaptador conectable; IRC + Microsoft Teams migrados 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 entre reinicios del gateway, /update y recargas de archivos fuente. Reescritura de Checkpoints v2 con diseño de almacén único, poda real y salvaguardas de disco. Ocho cierres de seguridad P0: redacción de secretos activada por defecto, bypass de DM cross-guild en Discord (CVSS 8.1), rechazo de desconocidos + silenciamiento de chat propio en WhatsApp, TOCTOU de MCP OAuth, TOCTOU en auth.json de CLI, mínimo SSRF en navegador, escaneo de inyección de prompts en cron, redacción en hermes debug share. Linting posterior a la escritura para Python/JSON/YAML/TOML, modo no_agent solo-script en cron, listas de permitidos por plataforma en Slack/Telegram/Mattermost/Matrix/DingTalk, mejoras en MCP (transporte SSE, reenvío de OAuth, etiquetas MEDIA para imágenes). Estadísticas desde v0.12.0: 864 commits, 588 PRs fusionados, 829 archivos cambiados, 295 contribuyentes de la comunidad, 282 issues cerrados (13 P0, 36 P1). |
18 |
| 2026-05-06 | Guía v1.4: Se añadió v0.12.0 (30 de abril de 2026) — La versión Curator. Titular: un Curator autónomo en segundo plano que se ejecuta sobre el ticker de cron del gateway (ciclo predeterminado de 7 días) que califica la biblioteca de skills siguiendo una rúbrica, poda skills muertos, consolida skills relacionados y escribe informes por ejecución — Hermes se mantiene a sí mismo entre sesiones activas. Bucle de automejora actualizado con calificación basada en rúbrica, sesgo hacia actualizaciones activas, herencia de runtime adecuada y toolsets de alcance restringido a memoria y skills. Cuatro nuevos proveedores de inferencia: GMI Cloud, Azure AI Foundry, MiniMax OAuth y Tencent Tokenhub. LM Studio promovido a primer nivel. Los manifiestos del catálogo de modelos remotos ahora se actualizan automáticamente sin necesidad de versiones. Dos nuevas plataformas de mensajería: Microsoft Teams (la 19.ª, mediante arquitectura de gateway conectable) y Tencent Yuanbao (la 18.ª, texto + medios nativos). Spotify nativo mediante PKCE OAuth con skill incluido; plugin de Google Meet para llamadas y transcripción; proveedor Piper local TTS. ComfyUI v5 + TouchDesigner-MCP pasaron de opcionales a incluidos por defecto. Nuevos skills: Humanizer, claude-design, design-md, airtable. Adiciones a CLI: modo one-shot hermes -z, preflight hermes update --check, comando slash /reload-skills, estilos de indicador de ocupado conectables. Arranque en frío visible del TUI reducido ~57 % mediante init perezoso de agentes e imports perezosos. Seguridad: redacción de secretos desactivada por defecto para evitar corrupción de payloads; lista de bloqueo estricta para comandos irrecuperables. Estadísticas: 1.096 commits, 550 PRs fusionados, 213 contribuyentes de la comunidad. |
17 |
| 2026-04-25 | Guía v1.3: Se añadió v0.11.0 (23 de abril de 2026) — La versión Interface. Reescritura completa en React/Ink del TUI interactivo con un backend JSON-RPC en Python (tui_gateway); composer adherente, streaming en vivo con soporte de portapapeles OSC-52, claves estables de picker, barra de estado con cronómetro por turno y rama de git, confirmación de /clear, preset de tema claro, overlay de observabilidad para spawn de subagentes. Arquitectura de transporte conectable — la conversión de formato y el transporte HTTP se extrajeron a agent/transports/ para una integración más limpia de proveedores. AWS Bedrock nativo mediante la API Converse. 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 buque insignia de OpenAI ahora es accesible a través de ChatGPT Codex OAuth sin una clave de API separada. QQBot (la 17.ª plataforma de mensajería) con configuración mediante escaneo de 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> — empujones a media ejecución que inyectan una nota que el agente en curso ve tras su siguiente llamada a herramienta, sin interrumpir el turno ni romper la caché de prompt. Hooks de shell que conectan scripts como hooks de ciclo de vida sin plugins en Python. Modo de entrega directa por webhook que 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. Dashboard con un sistema de plugins, cambio de tema en vivo, i18n y diseño responsive móvil. Estadísticas desde v0.9.0: 1.556 commits, 761 PRs fusionados, 1.314 archivos cambiados, 224.174 inserciones, 29 contribuyentes de la comunidad. |
19 |
| 2026-04-16 | Guía v1.2: Se añadió v0.10.0 — Nous Tool Gateway. Los suscriptores de pago de Nous Portal ahora acceden a herramientas gestionadas (búsqueda web Firecrawl, generación de imágenes FAL / FLUX 2 Pro, TTS de OpenAI, automatización de navegador Browser Use) sin claves de API adicionales. Opt-in por herramienta mediante el nuevo campo de configuración use_gateway. El runtime prefiere el gateway sobre las claves de API directas cuando ambos están configurados. Variable de entorno HERMES_ENABLE_NOUS_MANAGED_TOOLS eliminada. CLI de Hermes Agent sigue con licencia MIT y completamente gratuito. |
20 |
| 2026-04-13 | Guía v1.1: Se añadieron las 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 integral de seguridad. |
15 16 |
| 2026-04-10 | Guía v1.0: Versión 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 OpenClaw, resolución de problemas, FAQ. |
Referencias
-
Nous Research, “Hermes Agent”, README del proyecto en GitHub. Fuente principal de la descripción del producto (agente que se mejora a sí mismo, multiproveedor, gateway de mensajería, backends de terminal, evolución de skills, programador de cron, delegación) y del comando de “Quick Install” en una sola línea. ↩↩↩
-
Nous Research, “AI Providers” en la documentación de Hermes Agent. Fuente principal de la lista completa de proveedores, métodos de autenticación por proveedor (Nous Portal OAuth, código de dispositivo de Codex, tipos de token de GitHub Copilot, autenticación de tres métodos de Anthropic, proveedores chinos de IA, enrutamiento de Hugging Face, endpoints personalizados), las tres rutas de autenticación (clave API en
.env, OAuth víahermes model, endpoint personalizado enconfig.yaml), la sintaxis del comando slash/model(incluidocustom:name:model), las plantillas de configuración de Ollama/vLLM/SGLang/llama.cpp/LM Studio, las instrucciones de red de WSL2, la cadena de detección de longitud de contexto, la configuración del modelo de respaldo, el enrutamiento inteligente de modelos y los proveedores personalizados con nombre. Todos los nombres de variables de entorno específicas de cada proveedor, los tipos de token, las anulaciones de URL base y los identificadores de modelo en este artículo provienen de esta página. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Architecture” en la guía del desarrollador de Hermes Agent. Fuente principal del diagrama general del sistema, la estructura de directorios, el flujo de datos a través de las rutas de sesión y mensaje del gateway de CLI, los tres modos API (
chat_completions,codex_responses,anthropic_messages), la resolución de proveedores víaruntime_provider.py, la persistencia de sesión vía SQLite + FTS5, la lista de plataformas del gateway de mensajería, las fuentes de descubrimiento del sistema de plugins, el aislamiento de profile y los seis principios de diseño. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Configuration” en la guía del usuario de Hermes Agent. Fuente principal de la estructura del directorio de configuración, la regla
config.yamlvs.env(“config.yamlgana para configuraciones no secretas”), la cadena de precedencia de configuración (argumentos de CLI → env → config.yaml → .env → valores predeterminados), la configuración de compresión de contexto (bloquecompression.*conthreshold,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 tiempos de espera de streaming con autoajuste para proveedores locales y el bloque completo de configuración de modelos auxiliares (auxiliary:con slotsvision,web_extract,approval,compression,session_search,skills_hub,mcp,flush_memories). La restricción del proveedor"main"a los slots auxiliary/compression/fallback también proviene de esta página. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Migrate from OpenClaw” en las guías de Hermes Agent. Fuente del flujo de migración OpenClaw → Hermes. ↩↩
-
Nous Research, “CLI Commands Reference” en la documentación de referencia de Hermes Agent. Fuente principal de cada comando CLI de nivel superior documentado en este artículo, 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 updateyhermes uninstall. Todos los flags de subcomandos, las descripciones de opciones, el comportamiento del pool de credenciales, la sintaxis de filtrado de logs, los flags de migración de OpenClaw, los comandos de gestión de profile y los comandos de instalación de servicios en este artículo provienen de esta página. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Installation” en la guía de inicio de Hermes Agent. Fuente principal del comando del instalador de una sola línea, el comportamiento del instalador (requisitos previos, soporte de plataforma, 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. ↩↩↩↩↩↩↩↩
-
Nous Research, “CLI Commands Reference” — consulta específicamente la sección
hermes dumpque 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. ↩ -
Nous Research, “Slash Commands Reference” en la documentación de referencia de Hermes Agent. Fuente principal de cada comando slash listado en este artículo, la arquitectura
COMMAND_REGISTRY, la división CLI vs mensajería, los comandos slash de skills dinámicos, los comandos rápidos enconfig.yaml, el comportamiento de coincidencia de prefijo y los comandos exclusivos de mensajería (/status,/sethome,/approve,/deny,/update,/commands). ↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Tools & Toolsets” en la guía del usuario de Hermes Agent. Fuente principal de la descripción general de categorías de herramientas, los comandos de uso de toolset, los seis backends de terminal (local, docker, ssh, singularity, modal, daytona), la configuración de contenedores (cpu, memory, disk, persistent), el endurecimiento de seguridad para contenedores, la gestión de procesos en background API y el soporte de sudo. ↩↩↩↩↩↩↩↩↩↩
-
Nous Research, “Skills System” en la guía del usuario de Hermes Agent. Fuente principal de la divulgación progresiva, el formato
SKILL.md, los skills específicos por plataforma, la activación condicional (fallback_for_toolsets,requires_toolsets,fallback_for_tools,requires_tools), los skills gestionados por el agente víaskill_manage, los comandos del hub de skills y la lista de fuentes (official,skills-sh,well-known,github,clawhub,claude-marketplace,lobehub), el escaneo de seguridad y los niveles de confianza, y los directorios externos de skills. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Persistent Memory” en la guía del usuario de Hermes Agent. Fuente principal de los límites de caracteres de
MEMORY.md/USER.md, el patrón de instantánea congelada, las acciones de la herramienta de memoria (add,replace,remove), qué guardar y qué omitir, la comparación entre memoria y búsqueda de sesión, y la lista de los ocho proveedores externos de memoria (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). ↩↩↩↩↩↩↩↩ -
Nous Research, “Personality & SOUL.md” en la guía del usuario de Hermes Agent. Fuente principal del comportamiento de
SOUL.md(vive enHERMES_HOME, nunca se sobrescribe, ocupa el slot #1 en el system prompt, se escanea por seguridad antes de su inclusión), la distinción entre SOUL.md y AGENTS.md, la lista de personalidades integradas (14 personalidades, desdehelpfulhastahype), las personalidades personalizadas enconfig.yaml, el patrón de superposición de/personalityy el orden completo de ensamblaje de la pila de prompts. ↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Use MCP with Hermes” y MCP Config Reference en las guías y referencia de Hermes Agent. Fuente del formato de configuración
mcp_servers:enconfig.yamlcon los camposcommand,argsyenv. ↩ -
Hermes Agent v0.8.0 Release Notes. 8 de abril de 2026. Autonotificaciones de procesos en background, MiMo v2 Pro gratuito en Nous Portal, conmutación en vivo de
/modelentre plataformas, proveedor nativo de Google AI Studio, Qwen OAuth, tiempos de espera basados en inactividad, botones de aprobación en Slack/Telegram, MCP OAuth 2.1 PKCE, registro centralizado, expansión del sistema de plugins. ↩↩↩↩↩ -
Hermes Agent v0.9.0 Release Notes. 13 de abril de 2026. Dashboard web local, Fast Mode (
/fast), iMessage vía BlueBubbles, WeChat + WeCom, Termux/Android, monitorización de procesos en background (watch_patterns), proveedores nativos xAI + Xiaomi MiMo, context engine pluggable, soporte unificado de proxy, endurecimiento de seguridad (path traversal, shell injection, SSRF, correcciones de RCE),hermes backup/hermes import,/debug+hermes debug share, 16 plataformas soportadas. 487 commits, 269 PR fusionados, 24 colaboradores. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.12.0 Release Notes. 30 de abril de 2026. “The Curator release.” Curator autónomo en background que califica, poda y consolida la biblioteca de skills en un ciclo predeterminado de 7 días, ejecutándose sobre el ticker cron del gateway. Bucle de automejora actualizado: calificación basada en rúbrica, sesgo hacia actualización activa, herencia adecuada en runtime, toolsets con alcance restringido a memoria y skills. Cuatro nuevos proveedores de inferencia: GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio promovido a primera clase. Los manifiestos del catálogo remoto de modelos se actualizan automáticamente sin necesidad de releases. Dos nuevas plataformas de mensajería: Microsoft Teams (la 19.ª, vía la arquitectura de gateway pluggable) y Tencent Yuanbao (la 18.ª, texto + medios nativos). Spotify nativo vía PKCE OAuth con skill incluido; plugin de Google Meet para llamadas y transcripción; proveedor TTS local Piper. ComfyUI v5 + TouchDesigner-MCP incluidos por defecto. Nuevos skills: Humanizer, claude-design, design-md, airtable. CLI: modo one-shot
hermes -z, preflighthermes update --check, comando slash/reload-skills, estilos de busy-indicator pluggable. El cold start del TUI se redujo ~57 % gracias a la inicialización perezosa. Seguridad: redacción de secretos desactivada por defecto; lista de bloqueo estricta para comandos no recuperables. Estadísticas desde v0.11.0: 1.096 commits, 550 PR fusionados, 213 colaboradores de la comunidad. Véase también: v2026.4.30 release tag. ↩↩↩ -
Hermes Agent v0.13.0 Release Notes. 7 de mayo de 2026. “The Tenacity release.” Tablero Kanban multiagente con heartbeat, reclaim, detección de zombis, hallucination gate,
max_retriespor tarea y tableros multiproyecto. Comando slash/goalpara bloqueo de objetivos entre turnos (primitiva del bucle Ralph) con presupuesto de turnos configurable. Herramientavideo_analyze, Gemini-first 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 del gateway; documentación solo en zh-Hans). Google Chat como la 20.ª plataforma de mensajería vía un patrón de adaptador pluggable con hooks de plugin genéricosenv_enablement_fn/cron_deliver_env_var; IRC y Microsoft Teams migrados al mismo patrón. ABCProviderProfile+plugins/model-providers/para proveedores de terceros pluggable. Autoreanudación de sesiones a través de reinicio del gateway,/updatey recargas de archivos fuente. Reescritura Checkpoints v2 single-store con poda real, salvaguardas de disco y sin repos shadow huérfanos. Ocho cierres de seguridad P0: redacción de secretos activada por defecto, bypass de DM cross-guild en Discord (CVSS 8.1, listas de roles permitidas con alcance de guild), WhatsApp rechaza por defecto a desconocidos + nunca responde en chats consigo mismo, TOCTOU al guardar credenciales en MCP OAuth, TOCTOU deauth.jsonCLI en escritores de credenciales, piso SSRF de cloud-metadata del navegador en enrutamiento híbrido, escaneo cron del prompt ensamblado (incluido el contenido de skills) contra inyección de prompt, redacción del contenido de logs dehermes debug shareen el momento de la subida. Otros elementos destacables: linting posescritura para Python/JSON/YAML/TOML, modo watchdog cronno_agentsolo para scripts, listas de plataformas permitidas en Slack/Telegram/Mattermost/Matrix/DingTalk, mejoras de MCP (transporte SSE, reenvío OAuth, resultados de imagen como etiquetas MEDIA). 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). ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.11.0 Release Notes. 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 pluggable (agent/transports/); AWS Bedrock nativo vía Converse API; cinco nuevas rutas de inferencia (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 vía Codex OAuth; QQBot como la 17.ª plataforma de mensajería con configuración por escaneo QR; superficie de plugins ampliada (comandos slash, despacho de herramientas, bloqueo de ejecución, transformación de resultados);/steer <prompt>para empujones al agente a mitad de ejecución que inyectan contexto después de la siguiente llamada de herramienta sin romper el cache de prompt; shell hooks para eventos de ciclo de vida sin necesidad de plugins Python; modo de entrega directa por webhook que reenvía payloads directamente a un chat de plataforma; delegación más inteligente con roles de orchestrator + profundidad de spawn configurable + coordinación de archivos; sistema de plugins para el dashboard, conmutación de tema en vivo, i18n, 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. Véase también: Hermes Agent v0.11.0 GitHub release tag. ↩↩↩ -
Hermes Agent v0.10.0 Release Notes. 16 de abril de 2026. “The Tool Gateway Release.” Integración de Nous Tool Gateway para suscriptores de pago de Nous Portal: acceso gestionado a búsqueda web Firecrawl, generación de imágenes FAL / FLUX 2 Pro, OpenAI TTS y automatización del navegador con Browser Use, sin claves API adicionales. Opt-in por herramienta vía el nuevo campo de configuración
use_gateway. El runtime prefiere el gateway sobre las claves API directas cuando ambas están configuradas. Integración completa conhermes toolsyhermes status. Reemplaza la variable de entorno obsoletaHERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementación a cargo de @jquesnelle (emozilla). El CLI de Hermes Agent permanece bajo licencia MIT y completamente de código abierto; el gateway es una integración con el producto de suscripción Portal existente, no un muro de pago sobre el CLI. Véase también: Nous Portal para precios de suscripción y registro. ↩↩↩