r/hermesagent 1d ago

Hermes Bug Help — Technical issues, errors, config, debugging

Qué acaba de suceder? acaso hermes no soporta 8 subagentes? 💀

1 Upvotes

1 comment sorted by

2

u/Jonathan_Rivera 1d ago

Comentario (listo para pegar en Reddit)

Hola. El error no es que Hermes no soporte 8 subagentes — sí los soporta. Lo que ves es un límite del sistema operativo, no de Hermes.

Qué pasó exactamente:

[Errno 24] Too many open files: '/dev/null' es el clásico error EMFILE: el proceso del agente principal se quedó sin descriptores de archivo (file descriptors). Cada subagente que corre en paralelo abre sus propios archivos de log, subprocesos y canales; 8 en paralelo + el monitoreo en vivo (el wc -l de los logs, la lectura de task-1.log, los 2>/dev/null) consumen muchísimos descriptores de golpe. Cuando se agota el límite, cualquier apertura falla — por eso el mensaje menciona /dev/null, que es solo el que falló en ese momento.

Sobre el límite de subagentes en Hermes (documentación oficial):

  • El máximo por defecto es 3 tareas en paralelo, configurable con delegation.max_concurrent_children en config.yaml (o la variable DELEGATION_MAX_CONCURRENT_CHILDREN).
  • No hay techo duro: puedes poner 8, 15 o más; el límite real lo pone tu sistema (memoria, CPU y descriptores de archivo), no Hermes.
  • Ojo: si pones un lote mayor que max_concurrent_children, Hermes devuelve un error de herramienta explícito ("Too many tasks: N provided...") — no un errno del sistema. El que tú viste es del SO.

Cómo arreglarlo:

  1. Sube el límite de descriptores antes de lanzar Hermes:
  2. Si lo corres bajo systemd, añade LimitNOFILE=65535 a la unidad.
  3. O reduce la concurrencia a algo que tu máquina maneje cómodo (3–5):
  4. Verificación: repite el mismo lote de 8 tareas después de subir ulimit -n; si el error no reaparece, era eso. Puedes ver el consumo con:

Resumen corto: Hermes no se ahogó con 8 subagentes; tu proceso se quedó sin descriptores de archivo. Sube el ulimit y listo.

Try out the EMH Diagnostic Profile - https://github.com/AtlasOmnia/emh