Hermes3D: muda a tu equipo de agentes a una oficina 3D y míralos trabajar

Tienes tres sesiones de Hermes trabajando en paralelo: una vigilando el CI, otra clasificando issues, otra redactando el informe semanal. Miras fijamente el terminal y el dashboard, juzgando «en qué paso va» a partir de los logs — ves la salida, pero no ves a los agentes. Ahora imagina esos agentes como unas cuantas personitas en una oficina: quién está en su escritorio escribiendo código, quién está en la sala de reuniones para el standup, quién mueve tarjetas en el tablero — visible de un vistazo en lugar de bucear entre logs. Esa es la propuesta.
Eso es lo que hace Hermes3D: un frontend de oficina virtual 3D de código abierto (MIT, 105 estrellas, de LukeTheDev) que convierte a tus agentes de Hermes en personajes que recorren una oficina compartida. Es un proyecto comunitario (el README deja claro que no está afiliado a los equipos del backend de agentes), no ejecuta ningún agente por sí mismo — es puramente la capa de visualización, que se conecta a través del gateway JSON-RPC de Hermes directamente o mediante un adaptador de gateway. Encaja con los desarrolladores que quieren ver a su equipo de agentes trabajando. El proyecto se actualizó activamente el 20 de agosto.
Cómo se ve en realidad
El núcleo es un entorno de oficina retro /office: cada agente conectado es un personaje que se mueve por un mundo 3D compartido. Pero no es solo un salvapantallas:
- Observa a los agentes trabajar en tiempo real — quién ejecuta cada tarea, el progreso de un vistazo;
- Celebra standups — los agentes conectados a GitHub y Jira se reúnen en una sala de conferencias;
- Revisa PR — recorre los pull requests desde dentro de la oficina;
- Escritorio kanban — un tablero integrado que muestra directamente los datos de
hermes kanbandel backend: arrastrar una tarjeta hacia Working encola la tarea comoready, solo el dispatcher puede marcarla comorunning, y el estado se escribe de vuelta en Hermes; - Entrena skills en el gimnasio, y un sistema janitor para reiniciar sesiones y limpiar el contexto.
En términos simples: el dashboard es la consola de control; Hermes3D es la plataforma de observación donde entras dentro de tu equipo de agentes. ¿Quieres echar un vistazo primero? El repo incluye un gateway de demostración integrado, así que puedes pasear por la oficina sin instalar ningún framework de agentes.
Dos formas de conectarse
Hermes3D soporta tres runtimes; dos importan para Hermes:
- Hermes Agent (directo) — recomendado: Studio habla directamente con el gateway JSON-RPC de Hermes, sin proceso adaptador. Requiere un
hermes serveen loopback en el host de Hermes (Máquina A). - Hermes HTTP API + adaptador de gateway:
npm run hermes-adapterinicia un adaptador que habla el protocolo WebSocket del gateway de Hermes3D por un lado y llama a la HTTP API de Hermes (por defectohttp://localhost:8642) por el otro. Útil cuando el backend no es local o prefieres la vía de la HTTP API.
Despliegue en dos máquinas: el tutorial directo con Tailscale (la forma más común)
La forma canónica del tutorial oficial son dos máquinas: la Máquina A ejecuta el backend de Hermes, la Máquina B ejecuta Hermes3D, y Tailscale las conecta de forma segura. La cadena:
Browser <-> Studio server (Machine B) <-> Tailscale <-> hermes serve (Machine A)
Máquina A — el host de Hermes:
Paso uno, fija un token de sesión — el secreto compartido entre las dos máquinas, guardado con un nombre dedicado. No toques HERMES_DASHBOARD_SESSION_TOKEN en sí: Hermes carga ~/.hermes/.env con override=True, así que fijarlo sobrescribiría el token nuevo que la app de escritorio genera para su propio backend en cada arranque, y la app moriría al iniciarse:
echo "HERMES3D_OFFICE_TOKEN=$(openssl rand -hex 32)" >> ~/.hermes/.env
Paso dos, arranca el backend en loopback (--host 127.0.0.1 no es opcional: enlazar a la dirección del tailnet activa la puerta de login y rompe la autenticación por token):
HERMES_DASHBOARD_SESSION_TOKEN="$(grep '^HERMES3D_OFFICE_TOKEN=' ~/.hermes/.env | cut -d= -f2)" \
hermes serve --host 127.0.0.1 --port 9120 --skip-build
Paso tres, publica en el tailnet (el puerto --https debe estar realmente libre — si el 443 está ocupado, usa 10000/8443):
tailscale serve --yes --bg --https=10000 http://127.0.0.1:9120
Verifica el túnel de punta a punta antes de tocar la Máquina B: curl -s -H "Host: localhost" https://<machine-a>.<tailnet>.ts.net:10000/api/status debería devolver JSON.
Paso cuatro, mantenlo en marcha: macOS usa un plist de launchd, Linux una unit de usuario de systemd, y ambos leen el token de .env al arrancar — el secreto no aparece en las definiciones de servicio ni en ps. Tailscale Serve persiste entre reinicios una vez configurado con --bg.
Máquina B — el host de Hermes3D:
git clone https://github.com/iamlukethedev/Hermes3D.git hermes3d
cd hermes3d && npm install && cp .env.example .env && npm run dev
Abre http://localhost:3000 y rellena la pantalla de conexión: Backend = Hermes Agent (directo), Gateway URL = wss://<machine-a>.<tailnet>.ts.net:10000 (indica la raíz del servidor, no /api/ws — Studio añade la ruta), Token = el del paso uno. Aterrizas en la oficina con un personaje por profile de hermes-agent.
La frontera de seguridad (el autor es refrescantemente honesto)
- El token de sesión es una credencial bearer para todo tu agente — trátalo como una API key: nunca lo subas a un repo, rótalo reiniciando con un valor nuevo;
- Nada queda expuesto a internet público:
hermes servese enlaza a loopback y Tailscale Serve publica solo dentro de tu tailnet; - Cualquiera en tu tailnet que conozca el token puede acceder al backend — usa las ACL de Tailscale en tailnets con varios miembros.
La tabla de resolución de problemas también viene dibujada: wrong version number/EPROTO = wss:// contra un puerto de texto plano (usa el puerto --https); 403 = token incorrecto (si funcionaba hasta un reinicio, normalmente significa que el token nunca se fijó); 401 = llegaste al hermes dashboard con puerta de login en lugar del hermes serve en loopback; 400 Invalid Host header = build antigua, actualiza Studio.
¿Merece la pena probarlo?
Si ejecutas varias sesiones de Hermes con regularidad y tu sentido de «qué está haciendo el agente» vive en el nivel de hacer scroll por los logs, Hermes3D ofrece una perspectiva genuinamente distinta — y su escritorio kanban reutiliza tus datos de hermes kanban existentes con cero configuración extra. Es un proyecto joven de 105 estrellas, pero el README, la documentación de arquitectura y el tutorial están escritos con un cuidado poco habitual. Aun así, es un frontend comunitario: el gateway JSON-RPC transporta la conexión, y el comportamiento, los permisos y los flujos de aprobación del agente no cambian en absoluto — tu configuración multi-profile y la orquestación en vivo de subagentes siguen funcionando exactamente igual; simplemente ganas ojos. Para más proyectos del ecosistema, explora nuestra página de ecosistema.