L’agent Hermès Webhook répond deux fois lors d’un même événement, donc ne soupçonnez pas que l’agent est fou. La documentation officielle des webhooks est claire : les livraisons en double doivent être bloquées par le cache idempotent de l’ID de livraison. Si la source n’a pas d’identifiant de requête tel que X-GitHub-Delivery ou X-Request-ID, la déduplication Hermes est nettement plus faible.
Vérifiez d’abord ces éléments
- Est-ce que la source de votre webhook envoie un en-tête d’identification de livraison ?
- Le service en amont essaie-t-il de se refaire et l’en-tête change-t-il à chaque fois ?
- Que vous pensiez à tort que « 200 ne seront pas republiés », en fait, certaines plateformes réessaient à cause des délais ou des politiques.
Comment gérer l’officiel maintenant
Le document indique : l’identifiant de livraison sera mis en cache pendant 1 heure, et lors d’une répétition de livraison, il sera sauté directement et rendra 200. En d’autres termes, ce qui doit vraiment être ajouté, c’est l’en-tête de requête en amont, et non la logique de l’agent Hermes en premier.
En un mot : Webhook répond à plusieurs reprises, vérifie d’abord si l’en-tête de l’ID de livraison est stable, puis vérifie en amont pour réessayer, ne réinstalle pas d’abord l’agent Hermes.
Adresse officielle open source : https://github.com/NousResearch/hermes-agent ; Entrée officielle du document : https://hermes-agent.nousresearch.com/.