Ecosistema de herramientas de Hermes Agent e integración con MCP

Todas las capacidades de Hermes a través deherramientas (Tools)se exponen al agente.

Las herramientas se organizan enconjuntos de herramientas (Toolsets), y los conjuntos de herramientas se combinan enconfiguraciones de plataforma. Esta estructura de tres capas determina lo que el agente puede hacer en diferentes escenarios:

工具(Tool)
  └── 工具集(Toolset)         # 相关工具的逻辑分组
        └── 平台配置            # 哪个平台加载哪些工具集
              └── 自定义工具集   # 你自己定义的组合

Comandos de administración de conjuntos de herramientas

# 打开 curses TUI,按平台开/关工具集
hermes tools

# 命令行列出所有工具和状态
hermes tools list

# 按名称启用或禁用工具集
hermes tools enable NAME
hermes tools disable NAME

En la versión de escritorio, en el menú de habilidades y herramientas de la izquierda:

Al desactivar un conjunto de herramientas, sus herramientas del mensaje del sistemadesaparecen por completo, no solo se deshabilitan: esto ahorra tokens directamente y evita que el agente use indebidamente herramientas que no debería.


Resumen de conjuntos de herramientas integrados

Hermes ofrece más de 70 herramientas integradas, organizadas en 28 conjuntos de herramientas.

A continuación se presentan los conjuntos de herramientas más comunes, clasificados por función.

Archivos y sistema

Conjunto de herramientasHerramientas principalesUso principal
fileread_file、write_file、list_dirLectura/escritura de archivos, operaciones de directorio
terminalrun_command、run_scriptEjecución de comandos Shell
codeexecute_codeEjecución de código en sandbox (Python/JS/Bash)
computerscreenshot、click、typeAutomatización de GUI de escritorio

Red y contenido

Conjunto de herramientasHerramientas principalesUso principal
webweb_search、web_extractBúsqueda web y extracción de contenido
browsernavigate、click、fill_formAutomatización completa del navegador
visionanalyze_image、describe_imageAnálisis y descripción de imágenes
audiotranscribe、ttsVoz a texto, texto a voz

Capacidades del agente

Conjunto de herramientasHerramientas principalesUso principal
memorymemory、session_searchGestión de memoria y recuperación entre sesiones
skillsskills_list、skill_view、skill_manageGestión de habilidades
delegationspawn_agent、spawn_parallelDelegación de subagentes y paralelismo
kanbantask_create、task_updateTablero multiagente (requiere habilitación explícita)

Creación multimedia

Los siguientes conjuntos de herramientas requieren Nous Portal o la API Key correspondiente:

Conjunto de herramientasFunciónDescripción
image_genGeneración de imágenes a partir de textoAdmite 9 modelos como FLUX, GPT-Image, etc.
ttsTexto a voz10 proveedores de TTS, incluido Piper local

Conjuntos de herramientas personalizados

Puedes combinar conjuntos de herramientas existentes en un conjunto de herramientas específico del proyecto en el archivo de configuración:

Ejemplo

# Ruta del archivo: ~/.hermes/config.yaml
# Conjunto de herramientas personalizado: combina conjuntos de herramientas existentes en una configuración específica del proyecto
custom_toolsets
:
  data-science
:
   - file
    - terminal
    - code
    - web

Luego especifícalo al iniciar:

Ejemplo

# Usar el conjunto de herramientas personalizado al iniciar
hermes --toolsets data-science

Seis backends de ejecución de terminal

El conjunto de herramientas de terminal admite seis backends de ejecución, que determinandónde se ejecutan los comandos Shell del agente, correspondientes a diferentes niveles de aislamiento y «radio de explosión».

BackendUbicación de ejecución de comandosNivel de aislamientoEscenario típico
local (predeterminado)Máquina local, permisos del usuario actualNingunoDesarrollo personal, uso diario
dockerDentro del contenedor DockerAislamiento completoDespliegue en producción, sandbox de seguridad
sshServidor remotoAislamiento en el límite de la redDesarrollo remoto, máquinas de alto rendimiento
modalSandbox en la nube Modal (VM)Completo (nube)Computación temporal, tareas de evaluación
daytonaEspacio de trabajo gestionado por DaytonaCompleto (contenedor en la nube)Entorno de desarrollo en la nube gestionado
singularityContenedor SingularityAislamiento de espacios de nombresClústeres HPC, máquinas compartidas

Cambiar de backend

Ejemplo

# Cambiar al backend Docker (recomendado para producción)
hermes config set terminal.backend docker

# Cambiar al backend SSH
hermes config set terminal.backend ssh
hermes config set terminal.ssh_host user@your-server.com

Ejemplo de configuración completa del backend Docker:

Ejemplo

# Ruta del archivo: ~/.hermes/config.yaml
# Configuración del backend Docker
terminal
:
  backend
: docker
  docker_image
: "nikolaik/python-nodejs:python3.11-nodejs20"
  container_persistent
: true    # true = montaje enlazado, false = tmpfs temporal

Principio de seguridad: el backend local otorga al agente los mismos permisos de sistema de archivos que tú; es adecuado para máquinas personales, no para servicios de producción. El backend docker es la forma más simple y efectiva de aislamiento.

Aprobación de comandos peligrosos

Por defecto, Hermes solicita confirmación antes de ejecutar comandos potencialmente destructivos:

Ejemplo

# Ruta del archivo: ~/.hermes/config.yaml
# Configuración del modo de aprobación
approvals
:
  mode
: manual        # manual (predeterminado) | smart | off
  timeout
: 60         # Segundos de espera para la aprobación
  cron_mode
: deny     # Comportamiento cuando una tarea programada encuentra un comando peligroso: deny | approve

Omitir temporalmente la aprobación en una sesión (usar con precaución):

Ejemplo

# Activar el modo YOLO: todos los comandos de esta sesión se aprueban automáticamente
/yolo

# Vuelve a ingresar para desactivar
/yolo

MCP: Conexión con el ecosistema de herramientas externas

MCP (Model Context Protocol) permite a Hermes conectarse a servidores de herramientas externos sin modificar el código central: GitHub, bases de datos, sistemas de archivos, pilas de navegador, API internas, etc.

La instalación estándar ya incluye soporte para MCP, sin pasos adicionales.

Dos tipos de servidores MCP

Servidor local stdio: se ejecuta localmente como un subproceso y se comunica a través de la entrada/salida estándar:

Ejemplo

# Ruta del archivo: ~/.hermes/config.yaml
# Configuración del servidor MCP stdio
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."

  filesystem
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]

  git
:
    command
: "uvx"
    args
: ["mcp-server-git", "--repository", "/home/user/project"]

Caso de uso: las herramientas están instaladas localmente y se necesita acceso de baja latencia a recursos locales.

Servidor HTTP remoto: conéctate directamente al endpoint MCP remoto:

Ejemplo

# Ruta del archivo: ~/.hermes/config.yaml
# Configuración del servidor MCP HTTP
mcp_servers
:
 # Autenticación con Bearer Token estático
  internal_api
:
    url
: "https://mcp.internal.example.com/mcp"
    headers
:
      Authorization
: "Bearer ${MY_TOKEN}"

  # Autenticación OAuth 2.1 (Linear, Sentry, Figma, Stripe, etc.)
  linear
:
    url
: "https://mcp.linear.app/mcp"
    auth
: oauth

  # Proveedores que requieren registro previo del cliente OAuth
  googledrive
:
    url
: "https://drivemcp.googleapis.com/mcp/v1"
    auth
: oauth
    oauth
:
      client_id
: "<your-oauth-client-id>"
      client_secret
: "<your-oauth-client-secret>"

Caso de uso: las herramientas están alojadas de forma remota, o la organización dispone de una interfaz MCP interna.

Catálogo MCP seleccionado por Nous

Hermes incorpora un catálogo de MCP auditado por Nous, instalable con un clic:

Ejemplo

# Abrir el selector interactivo (predeterminado)
hermes mcp

# Lista de texto sin formato
hermes mcp catalog

# Instalar entradas del catálogo por nombre
hermes mcp install n8n

El selector muestra el estado actual de cada entrada:

n8n          available              管理和检查 n8n 工作流
linear       enabled                Linear 问题/项目管理(远程 OAuth)
github       installed (disabled)   GitHub 仓库 + PR 工具

La instalación completa automáticamente tres pasos:

  1. Solicita configurar la API Key o guía el inicio de sesión OAuth
  2. Detecta la lista de herramientas expuestas por el servidor
  3. Muestra una lista de selección de herramientas para que decidas cuáles activar

Filtrado de herramientas: expón solo lo que necesitas

Cada servidor MCP admite un filtrado fino de herramientas, reduciendo la superficie de ataque disponible para el Agente:

Ejemplo

# Ruta de archivo: ~/.hermes/config.yaml
# Configuración de filtrado de herramientas MCP
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."
    tools
:
      include
: [list_issues, create_issue, update_issue, search_code]
      # Las herramientas no listadas no se registrarán
    resources
: false
    prompts
: false

  stripe
:
    url
: "https://mcp.stripe.com"
    headers
:
      Authorization
: "Bearer ${STRIPE_KEY}"
    tools
:
      exclude
: [delete_customer, refund_payment]  # Excluir operaciones de alto riesgo
CampoComportamiento
tools.includeSolo registra las herramientas de la lista; el resto se excluye por completo
tools.excludeExcluye las herramientas de la lista; el resto se registra por completo
Ambos configuradosinclude tiene prioridad
resources: falseNo exponer herramientas de acceso a recursos MCP
prompts: falseNo exponer herramientas de prompts MCP

Las reglas de filtrado usan los nombres originales de las herramientas MCP (con guiones/puntos), no las versiones con guiones bajos registradas por Hermes.

Cada servidor MCP genera un conjunto de herramientas independiente

Después de configurar el servidor MCP de github, Hermes crea automáticamente elmcp-githubconjunto de herramientas en tiempo de ejecución.

Puedes gestionarlo igual que los conjuntos de herramientas integrados:

Ejemplo

# Ruta de archivo: ~/.hermes/config.yaml
# Hacer referencia al conjunto de herramientas MCP en la configuración de la plataforma
platform_toolsets
:
  cli
:
   - hermes-cli
    - mcp-github
    - mcp-linear

Recargar la configuración de MCP

Tras modificar config.yaml, no es necesario reiniciar todo el Agente:

Ejemplo

# Recargar servidores MCP dentro de la sesión (con timeout de 30 segundos)
/reload-mcp

# O desde la línea de comandos
hermes mcp reload

Si se requiere completar la autenticación OAuth, el timeout de 30 segundos no es suficiente. Se recomienda añadir primero la configuración del servidor y luego ejecutar hermes mcp login <server> en una nueva terminal para completar la autorización (tiempo máximo de espera de 5 minutos).


Integración con editores (ACP)

ACP (Agent Communication Protocol) permite que Hermes se ejecute de forma nativa dentro del editor — chat, actividad de herramientas, diferencias de archivos y comandos de terminal se renderizan directamente en el editor.

Editores compatibles: VS Code, Zed y toda la gama JetBrains.

La instalación estándar ya incluye soporte ACP:

Ejemplo

# Iniciar modo Agente para que el editor se conecte
hermes acp

Si la instalación no incluyó las dependencias completas:

Ejemplo

# Instalar dependencias ACP adicionales
cd ~/.hermes/hermes-agent
uv pip install -e ".[acp]"
EditorMétodo de integraciónFunciones
VS CodeExtensión/pluginAutocompletado de código en línea, revisión de código, sugerencias de refactorización
ZedModo Agente nativoComunicación stdio/JSON-RPC, conciencia del contexto
JetBrainsPluginGeneración de código, generación de pruebas, comentarios de documentación

La integración con el editor utiliza el protocolo stdio/JSON-RPC para comunicarse con el Agente Hermes, sin depender de conexión de red, adecuado para uso sin conexión.


Modo de voz

El modo de voz admite interacción de voz completa entre CLI y plataformas de mensajería:

  • Entrada de micrófono con grabación (reconocimiento de voz local faster-whisper, gratuito)
  • Respuestas de voz TTS (10 proveedores disponibles)
  • Conversación en tiempo real en canales de voz de Discord

Instalación y activación

Ejemplo

# Instalar dependencias de voz
cd ~/.hermes/hermes-agent
uv pip install -e ".[voice]"

Ejemplo

# Activar el modo de voz en la CLI
/voice on
# Pulsa Ctrl+B para empezar a grabar, suelta para enviar

# En plataformas de mensajería
/voice on     # Activar respuestas TTS
/voice tts    # Solo activar texto a voz (sin entrada de voz)
/voice off    # Desactivar

Proveedores de TTS

ProveedorCaracterísticas¿Gratuito?
Edge TTSVoz neuronal de Microsoft, multilingüeGratuito
PiperTotalmente local, baja latenciaGratuito
OpenAI TTSAlta calidad, múltiples tonos de vozPago por uso
ElevenLabsCalidad de sonido superior, clonación de vozPago por uso
MiniMaxOptimizado para chinoPago por uso
Mistral VoxtralMultilingüePago por uso

Tool Gateway (suscripción a Nous Portal)

Mediante la suscripción a Nous Portal, obtén con un clic implementaciones en la nube de cuatro tipos de herramientas, sin necesidad de solicitar API Keys por separado:

HerramientaDescripción
Búsqueda webBúsqueda + extracción de contenido (conjunto de herramientas web)
Generación de imágenes9 modelos: FLUX, GPT-Image, Ideogram, etc.
TTSTexto a voz
Navegador en la nubeAutomatización completa del navegador (sin necesidad de Playwright local)

Ejemplo

# Inicio de sesión OAuth, configura automáticamente todas las herramientas anteriores
hermes setup --portal

Seguridad de herramientas: aislamiento de variables de entorno en MCP

Los subprocesos stdio de MCP reciben unentorno filtrado, evitando fugas accidentales de credenciales.

De forma predeterminada, solo se pasan las siguientes variables al proceso MCP:

PATH, HOME, USER, LANG, LC_ALL, TERM, SHELL, TMPDIR(以及所有 XDG_* 变量)

Todas las demás variables de entorno (API Keys, tokens, contraseñas) están bloqueadas.

Solo se pasan las variables declaradas explícitamente en el bloque env: de la configuración del servidor MCP:

Ejemplo

# Ruta de archivo: ~/.hermes/config.yaml
# Solo las variables declaradas explícitamente se pasan al subproceso MCP
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."   # Solo esta se pasa

Además, los mensajes de error de las herramientas MCP se desinfectan automáticamente antes de devolverse al LLM, reemplazando la información sensible con[REDACTED]。


Referencia rápida de comandos comunes

Ejemplo

# ─── Gestión de herramientas ────────────────────────────────────────────────
hermes tools                          # Gestión interactiva de conjuntos de herramientas (TUI)
hermes tools list                     # Listar todas las herramientas y estados
hermes tools enable NAME              # Habilitar conjunto de herramientas
hermes tools disable NAME             # Deshabilitar conjunto de herramientas

# ─── Gestión de MCP ────────────────────────────────────────────────
hermes mcp                            # Selector interactivo del catálogo MCP
hermes mcp catalog                    # Lista del catálogo en texto plano
hermes mcp install <name>             # Instalar entradas del catálogo
hermes mcp add NAME --command CMD     # Añadir servidor MCP manualmente
hermes mcp remove NAME                # Eliminar servidor MCP
hermes mcp list                       # Listar servidores configurados
hermes mcp test NAME                  # Probar conexión
hermes mcp login <server>             # Completar autorización OAuth
hermes mcp configure <server>         # Reconfigurar selección de herramientas
hermes mcp reload                     # Recargar configuración de MCP

# ─── Backend de terminal ────────────────────────────────────────────────
hermes config set terminal.backend docker
hermes config set terminal.backend ssh
hermes config set terminal.ssh_host user@host

# ─── Integración con editor ACP ──────────────────────────────────────────
hermes acp

# ─── Suscripción a Portal ─────────────────────────────────────────────
hermes setup --portal
Otras extensiones