52.8% de los usuarios de Hermes han activado YOLO: ¿aún no conoces estos 7 modos comunes?

En la comunidad de Hermes circula una frase: más de la mitad de los usuarios ha activado YOLO al menos una vez. Pero YOLO no es toda la historia, solo es un punto extremo en el espectro de seguridad de Hermes. Quienes realmente sacan provecho de Hermes alternan entre siete modos comunes, en lugar de recurrir a
/yolocada vez que algo se ralentiza.
Hermes Agent se basa en una premisa por defecto: si le permites ejecutar un comando, debe hacerse responsable de las consecuencias. Por eso, antes de ejecutar algo que pueda dañar tu sistema, se detiene y pregunta. Esto se llama Aprobación de Comandos Peligrosos (Dangerous Command Approval), y YOLO es solo una forma de omitirla.
Este artículo explica los siete modos de seguridad y autonomía de Hermes. Al terminar, sabrás decirle a tu agente:
- “El modo smart es suficiente para el desarrollo normal.”
- “Ejecuto este script a menudo, apruébalo para la sesión.”
- “Voy a hacer una refactorización masiva, activa YOLO, pero nunca permitas
git push --force.” - “Ejecuta esto en Docker, así no hacen falta aprobaciones y el host queda seguro.”
1. Modo smart: deja que la IA evalúe el riesgo (recomendado por defecto)
approvals:
mode: smart
smart es el modo predeterminado de Hermes. Cuando un comando coincide con un patrón peligroso, Hermes pide a un modelo auxiliar que evalúe el riesgo real.
- Los comandos obviamente seguros (por ejemplo,
python -c "print('hello')") se aprueban automáticamente. - Los comandos obviamente peligrosos (por ejemplo,
rm -rf /) se rechazan automáticamente. - Los casos dudosos se elevan a ti.
Esto reduce drásticamente la “fatiga de aprobación”. No tienes que confirmar cada bash -c, pero las acciones realmente destructivas siguen siendo detectadas.
Ideal para: desarrollo diario, tareas exploratorias y entornos en los que ya confías en el agente.
2. Modo manual: cada comando peligroso pasa por ti
approvals:
mode: manual
Si prefieres no delegar la evaluación de riesgos a un modelo auxiliar, usa el modo manual. Cada comando que coincida con un patrón peligroso se pausa y espera tu aprobación.
En la CLI, el mensaje suele verse así:
⚠️ DANGEROUS COMMAND: recursive delete
rm -rf /tmp/old-project
[o]nce | [s]ession | [a]lways | [d]eny
Choice [o/s/a/D]:
Cuatro opciones:
- once: permite solo esta ejecución.
- session: permite este patrón durante el resto de la sesión.
- always: añade el patrón a tu lista de permisos permanente en
~/.hermes/config.yaml. - deny (por defecto): bloquea el comando.
Ideal para: trabajo de alta seguridad, principiantes o cuando ejecutas comandos desconocidos.
3. Modo YOLO: omite todas las solicitudes de aprobación
El modo YOLO evita todas las aprobaciones de comandos peligrosos. Puedes activarlo de tres formas:
# Al iniciar
hermes --yolo
hermes chat --yolo
# Durante una sesión
/yolo
# Variable de entorno
HERMES_YOLO_MODE=1
Una vez activo, Hermes muestra un banner rojo y un indicador en la barra de estado para que no olvides que la red de seguridad está desactivada.
> /yolo
⚡ YOLO mode ON — all commands auto-approved. Use with caution.
YOLO encaja en escenarios donde estás seguro de que los comandos son seguros, como:
- Scripts de automatización repetidos;
- Trabajo dentro de contenedores o entornos desechables;
- Tareas en las que estás atento y puedes pulsar
Ctrl+Cen cualquier momento.
Pero recuerda: YOLO no es 100% ilimitado, la lista negra hardline que verás a continuación sigue aplicando.
4. Lista negra hardline: el límite que ni YOLO puede cruzar
Incluso con approvals.mode: off o /yolo activado, Hermes sigue rechazando ciertos comandos irreversibles y catastróficos. Esta es la lista negra hardline.
Algunos ejemplos:
| Comando | Por qué está bloqueado |
|---|---|
rm -rf / |
Borra el sistema de archivos raíz |
:(){ :|:& };: |
Bomba fork de bash |
mkfs.* contra un dispositivo raíz montado |
Formatea el sistema en ejecución |
dd if=/dev/zero of=/dev/sd* |
Llena de ceros un disco físico |
Canalizar URLs no confiables a sh |
Superficie de ataque de ejecución remota de código demasiado grande |
Estos patrones residen en tools/approval.py::UNRECOVERABLE_BLOCKLIST y no se pueden anular con ninguna bandera.
Filosofía de diseño: YOLO significa “confío en que la IA no se equivoque”, mientras que la lista hardline significa “incluso si la IA —o el usuario— se equivoca, la máquina no puede quedar destruida”.
5. Reglas deny personalizadas: YOLO con excepciones
Si YOLO te parece demasiado permisivo y manual demasiado ruidoso, usa approvals.deny para trazar tus propias líneas rojas:
approvals:
mode: off # efectivamente YOLO
deny:
- "git push --force*"
- "*curl*|*sh*"
- "dd if=* of=/dev/*"
Las reglas son comodines fnmatch insensibles a mayúsculas, que se comparan con el texto completo normalizado del comando. Incluso bajo YOLO, un comando coincidente se bloquea de forma estricta.
Es perfecto para escenarios del tipo “confío en la mayoría de las operaciones, pero algunas acciones nunca están permitidas”:
- Deja que el agente edite código y ejecute pruebas libremente, pero prohíbe
git push --force; - Permite que descargue dependencias, pero bloquea
curl ... | sh; - Permite que opere Docker, pero nunca escriba directamente en dispositivos de bloque.
6. Modo write approval: controla los escritos en memoria y skills
Más allá de los comandos de terminal, Hermes escribe cosas por sí mismo: guarda hechos importantes en memory y flujos aprendidos como skills. Si te preocupa que “aprenda cosas incorrectas”, activa write approval.
memory:
write_approval: true
skills:
write_approval: true
Cuando está activado, cada escritura de memory o skill se pone en cola bajo ~/.hermes/pending/ hasta que la revises y apruebes:
# Revisar escritos de skills pendientes
/skills pending
/skills diff <id>
/skills approve <id>
/skills reject <id>
# Lo mismo para memory
/memory pending
/memory approve <id>
/memory reject <id>
Ideal para:
- Evitar que el agente recuerde automáticamente datos sensibles o incorrectos;
- Instancias compartidas de Hermes donde las skills aprendidas necesitan revisión humana;
- Depurar el ciclo de aprendizaje antes de permitir que persista nada.
7. Modo de aislamiento por contenedores: reemplaza aprobaciones por fronteras
El último modo no se trata de cómo aprobar, sino de hacer que las aprobaciones sean innecesarias. Hermes soporta varios backends de terminal:
| Backend | Aislamiento | ¿Verifica comandos peligrosos? |
|---|---|---|
| local | Ninguno, corre en el host | ✅ Sí |
| ssh | Máquina remota | ✅ Sí |
| docker | Contenedor | ❌ No (el contenedor es el límite) |
| singularity | Contenedor | ❌ No |
| modal | Sandbox en la nube | ❌ No |
| daytona | Sandbox en la nube | ❌ No |
Cuando ejecutas en Docker, Modal o Daytona, las comprobaciones de comandos peligrosos se omiten porque, aunque el contenedor se destruya, el host permanece intacto. Los gateways de producción de Hermes suelen configurarse así.
Los contenedores Docker también se ejecutan con un conjunto de flags de seguridad endurecidos por defecto:
_BASE_SECURITY_ARGS = [
"--cap-drop", "ALL",
"--security-opt", "no-new-privileges",
"--pids-limit", "256",
"--tmpfs", "/tmp:rw,nosuid,size=512m",
]
Ideal para: despliegues en producción, CI/CD, entornos multitenancy y cualquier sandbox donde la destrucción sea aceptable.
Tabla rápida para elegir el modo adecuado
| Modo | Aprobación de comandos | Aprobación de escritos | Cuándo usarlo |
|---|---|---|---|
| smart | IA pre-revisa + revisión humana en casos dudosos | Opcional | Predeterminado para el desarrollo diario |
| manual | Todos los comandos peligrosos requieren aprobación humana | Opcional | Tareas de alto riesgo o principiantes |
| YOLO | Se omiten todos los comandos peligrosos | Opcional | Automatización temporal, scripts de confianza |
| hardline | Comandos catastróficos bloqueados permanentemente | No aplica | Límite de seguridad siempre activo |
| deny rules | Patrones de bloqueo personalizados | No aplica | YOLO con excepciones |
| write approval | Opcional | Requerida para escritos de memory/skill | Evitar que el agente aprenda mal |
| container isolation | No se verifica | Limitada por el contenedor | Producción o sandbox |
Recomendaciones prácticas
- Quédate con el valor predeterminado: el modo
smartcubre la mayoría del trabajo diario sin interrumpir constantemente. - Usa aprobación por sesión para tareas en lote: más seguro que YOLO, pero evita confirmar cada comando.
- Combina YOLO con reglas deny: si vas a YOLO, al menos conserva algunas líneas rojas personalizadas.
- Ejecuta producción en Docker: el aislamiento es más fiable que las aprobaciones y elimina la fatiga de aprobación por completo.
- Audita tu lista de permisos:
command_allowlistcrece con el tiempo. Límpiala periódicamente conhermes config edit. - Activa write approval en Hermes compartido: especialmente importante cuando ejecutas un gateway de larga duración en equipo.
Conclusión
El sistema de aprobación de Hermes no está para ralentizarte. Está para equilibrar delegación con confianza y frenada a tiempo. YOLO es divertido, pero es solo uno de siete modos. Los usuarios avanzados saben cuándo quedarse en smart, cuándo pasar a manual, cuándo desactivar YOLO y cuándo dejar que Docker haga el trabajo de seguridad por ellos.
La próxima vez que vayas a escribir /yolo, pregúntate: ¿realmente necesito omitir toda aprobación, o sería suficiente una aprobación por sesión más una regla deny?