hermes peer : laissez vos agents s'envoyer des DM entre profils et machines

Votre agent de recherche vient de trouver la réponse que vous cherchez depuis une heure — et vous vous apprêtez maintenant à faire le travail le plus pénible de l’informatique multi-agents : copier le texte d’une fenêtre de chat, passer à l’agent de codage, coller, et espérer que la mise en forme survive. v0.21.0 a livré une commande qui supprime cette étape entièrement : hermes peer permet à n’importe quel agent Hermes de messager n’importe quel autre agent par handle, entre profils et gateways — depuis le CLI, ou depuis l’intérieur d’une conversation. Votre bot de recherche peut transmettre ses conclusions directement à votre bot de codage, et la réponse revient là où vous pouvez la lire.
Ce que fait réellement hermes peer
hermes peer, c’est de la messagerie directe bot-à-bot entre gateways Hermes. Au lieu que ce soit vous le messager, un agent envoie un message à l’adresse d’un autre agent — <peer> ou <peer>/<agent> — et le message est livré dans le Bot Chat canonique de cet agent : la conversation durable que chaque agent entretient pour le trafic bot-à-bot. Les conversations entre agents sont inspectables et persistantes, pas du fire-and-forget. C’est le jumeau multi-machine de hermes -p <bot> chat, fonctionnant via le serveur API de chaque gateway.
Prérequis
Le pair à qui vous envoyez un message doit être un gateway Hermes avec la plateforme api_server activée — c’est la surface avec laquelle hermes peer communique. Sa API_SERVER_KEY est l’identifiant que vous inscrivez localement ; il est stocké dans ~/.hermes/.env, si bien que la clé n’est jamais tapée dans un fichier de config ni dans un message de chat.
Configurer un pair
hermes peer add spark --url http://spark.lan:8377 --key <API_SERVER_KEY> --note "homelab gateway"
hermes peer list
hermes peer add (alias set) enregistre le gateway ; hermes peer list (alias ls) montre ce que vous avez ; hermes peer remove spark (alias rm) le supprime. Si votre pair exécute plusieurs profils (un gateway multiplexé), vous adressez un profil précis avec une barre oblique : spark/researcher.
Envoyer un message
hermes peer dm spark "disk status on the homelab?"
hermes peer dm <peer>[/<agent>] "<message>" livre le message dans le Bot Chat de l’agent distant et imprime la réponse dès que l’agent répond. Passez le message sur stdin si vous préférez (hermes peer dm spark < long-task.txt), ou utilisez --json quand vous voulez une sortie lisible par machine pour vos scripts.
Tâches longues : run, status, stop
Les DM bloquent jusqu’à la réception de la réponse — parfait pour les questions rapides, inadapté pour une analyse de 20 minutes. Pour cela, hermes peer propose un trio asynchrone :
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 démarre le tour de façon asynchrone et renvoie un run ID. L’--idempotency-key rend les tentatives sûres : si votre script perd la réponse et renvoie la même clé, le pair n’exécute pas la tâche deux fois. hermes peer status lit la progression et la sortie finale du run ; hermes peer stop l’annule et renvoie ce qu’il a déjà.
Scripting avec les codes de sortie
La commande garde des codes de sortie adaptés aux scripts : 0 = ok, 1 = erreur de livraison/pair, 2 = erreur d’utilisation. Combiné à --json, vous pouvez brancher la messagerie bot-à-bot dans votre propre automatisation — un agent de supervision qui contacte un agent de codage, une tâche nocturne qui remet son rapport à un bot de briefing, un veilleur de homelab qui vous envoie un DM quand un disque se remplit.
Où cela s’inscrit dans le paysage multi-agents
hermes peer complète les groupes de discussion Bot Mode (plusieurs bots + vous dans une même pièce, intégrés à l’application desktop dans v0.21.0) — Bot Mode est la surface sociale, hermes peer est la ligne directe entre agents sur des machines différentes. Pour le travail parallèle au sein d’une même session, l’orchestration de subagents en direct reste l’outil. Et si vous faites transiter la sortie de vos tâches cron par des bots, le correctif de livraison profile-own-bot est la pièce complémentaire qui garantit que chaque profile livre via sa propre identité.