hermes peer: deja que tus agentes se envíen mensajes directos entre perfiles y máquinas

Tu agente de investigación acaba de encontrar la respuesta que llevas persiguiendo una hora — y ahora te dispones a hacer el trabajo más tedioso de la informática multiagente: copiar el texto de una ventana de chat, cambiar al agente de programación, pegarlo y esperar que el formato sobreviva. v0.21.0 incluyó un comando que elimina este paso por completo: hermes peer permite que cualquier agente de Hermes envíe mensajes a cualquier otro agente por handle, a través de perfiles y gateways — desde la CLI o desde dentro de una conversación. Tu bot de investigación puede entregar sus hallazgos directamente a tu bot de programación, y la respuesta vuelve donde puedas leerla.
Qué hace realmente hermes peer
hermes peer son mensajes directos entre bots a través de gateways de Hermes. En lugar de ser tú el mensajero, un agente envía un mensaje a la dirección de otro agente — <peer> o <peer>/<agent> — y el mensaje se entrega en su Bot Chat canónico: la conversación duradera que cada agente mantiene para el tráfico entre bots. Las conversaciones entre agentes son inspeccionables y persistentes, no de lanzar y olvidar. Es el gemelo entre máquinas de hermes -p <bot> chat, funcionando sobre el API server de cada gateway.
Requisitos previos
El peer al que envías mensajes debe ser un gateway de Hermes con la plataforma api_server habilitada — esa es la superficie con la que habla hermes peer. Su API_SERVER_KEY es la credencial que registrarás localmente; se guarda en ~/.hermes/.env, así que la clave nunca se escribe en un archivo de configuración ni en un mensaje de chat.
Configurar un peer
hermes peer add spark --url http://spark.lan:8377 --key <API_SERVER_KEY> --note "homelab gateway"
hermes peer list
hermes peer add (alias set) registra el gateway; hermes peer list (alias ls) muestra lo que tienes; hermes peer remove spark (alias rm) lo elimina. Si tu peer ejecuta varios perfiles (un gateway multiplexado), te diriges a uno concreto con una barra: spark/researcher.
Enviar un mensaje
hermes peer dm spark "disk status on the homelab?"
hermes peer dm <peer>[/<agent>] "<mensaje>" entrega el mensaje en el Bot Chat del agente remoto e imprime la respuesta cuando el agente responde. Pasa el mensaje por stdin si lo prefieres (hermes peer dm spark < long-task.txt), o usa --json cuando quieras salida legible por máquina para scripts.
Tareas largas: run, status, stop
Los DM bloquean hasta que llega la respuesta — bien para preguntas rápidas, mal para un análisis de 20 minutos. Para eso, hermes peer tiene un trío asíncrono:
hermes peer run spark "analyze this full log" --idempotency-key ticket-123
hermes peer status spark run_abc123
hermes peer stop spark run_abc123
hermes peer run inicia el turno de forma asíncrona y devuelve un run ID. El --idempotency-key hace que los reintentos sean seguros: si tu script pierde la respuesta y reenvía con la misma clave, el peer no ejecuta la tarea dos veces. hermes peer status lee el progreso y la salida final del run; hermes peer stop lo cancela y devuelve lo que haya hasta el momento.
Scripting con códigos de salida
El comando mantiene códigos de salida amigables para scripts: 0 = ok, 1 = error de entrega/peer, 2 = error de uso. Combinado con --json, puedes conectar los mensajes entre bots a tu propia automatización — un agente monitor que avisa a un agente de programación, un trabajo nocturno que entrega su informe a un bot de briefing, un vigilante del homelab que te manda un DM cuando un disco se llena.
Dónde encaja en el panorama multiagente
hermes peer complementa los chats de grupo de Bot Mode (varios bots + tú en una sala, integrados en la app de escritorio en v0.21.0) — Bot Mode es la superficie social, hermes peer es la línea directa entre agentes en máquinas diferentes. Para trabajo paralelo dentro de una misma sesión, la orquestación en vivo de subagentes sigue siendo la herramienta. Y si conectas la salida de cron a través de bots, la corrección de entrega profile-own-bot es la pieza complementaria que garantiza que cada perfil entrega con su propia identidad.