🏠 Главная › user guide › devops webhook subscriptions
{/ Эта страница автоматически создается на основе файла SKILL.md навыка с помощью сайта site/scripts/generate-skill-docs.py. Редактируйте исходный код SKILL.md, а не эту страницу. /}
подписок на вебхук
Подписки на веб-перехватчики: запускается агент, управляемый событиями.
Ниже приведено полное определение навыка, которое Гермес загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навык активен.
подписок на вебхук
Создавайте динамические подписки на веб-перехватчики, чтобы внешние сервисы (GitHub, GitLab, Stripe, CI/CD, датчики IoT, инструменты мониторинга) могли инициировать запуск агента Hermes путем отправки событий POST на URL-адрес.
Настройка (обязательно)
Платформа веб-перехватчиков должна быть включена перед созданием подписок. Проверьте с:
hermeswebhooklist
Если написано «Платформа Webhook не включена», настройте ее:
Вариант 1: Мастер настройки
hermesgatewaysetup
Следуйте инструкциям, чтобы включить веб-перехватчики, установить порт и глобальный секрет HMAC.
После настройки запустите (или перезапустите) шлюз:
hermesgatewayrun
# Or if using systemd:
systemctl--userrestarthermes-gateway
Убедитесь, что он работает:
curlhttp://localhost:8644/health
Команды
Все управление осуществляется через команду CLI hermes webhook:
Создать подписку
hermeswebhooksubscribe<name>\--prompt"Prompt template with {payload.fields}"\--events"event1,event2"\--description"What this does"\--skills"skill1,skill2"\--delivertelegram\--deliver-chat-id"12345"\--secret"optional-custom-secret"
Возвращает URL-адрес веб-перехватчика и секрет HMAC. Пользователь настраивает свою службу для POST по этому URL-адресу.
hermeswebhooksubscribestripe-payments\--events"payment_intent.succeeded,payment_intent.payment_failed"\--prompt"Payment {data.object.status}: {data.object.amount} cents from {data.object.receipt_email}"\--delivertelegram\--deliver-chat-id"-100123456789"
CI/CD: уведомления о сборке
hermeswebhooksubscribeci-builds\--events"pipeline"\--prompt"Build {object_attributes.status} on {project.name} branch {object_attributes.ref}\nCommit: {commit.message}"\--deliverdiscord\--deliver-chat-id"1234567890"
Общее оповещение мониторинга
hermeswebhooksubscribealerts\--prompt"Alert: {alert.name}\nSeverity: {alert.severity}\nMessage: {alert.message}\n\nPlease investigate and suggest remediation."\--deliverorigin
Прямая доставка (без агента, нулевая стоимость LLM)
Для случаев использования, когда вы просто хотите отправить уведомление в чат пользователя — без рассуждений, без цикла агента — добавьте --deliver-only. Отрисованный шаблон --prompt становится буквальным телом сообщения и отправляется непосредственно целевому адаптеру.
Используйте это для:
- Push-уведомления внешних служб (вебхуки Supabase/Firebase → Telegram)
- Мониторинг оповещений, которые должны пересылаться дословно.
- Межагентские пинги, когда один агент что-то сообщает пользователю другого агента.
- Любой вебхук, при котором поездка туда и обратно по программе LLM будет напрасной тратой усилий.
hermeswebhooksubscribeantenna-matches\--delivertelegram\--deliver-chat-id"123456789"\--deliver-only\--prompt"🎉 New match: {match.user_name} matched with you!"\--description"Antenna match notifications"
POST возвращает «200 OK» в случае успешной доставки и «502» в случае целевой неудачи, поэтому вышестоящие службы могут разумно повторить попытку. Аутентификация HMAC, ограничения скорости и идемпотентность по-прежнему применяются.
Требуется, чтобы --deliver был реальной целью (telegram, discord, slack, github_comment и т. д.) — --deliver log отклоняется, поскольку прямая доставка только журналов бессмысленна.
Безопасность
Каждая подписка получает автоматически сгенерированный секрет HMAC-SHA256 (или укажите свой собственный с помощью --secret).
Адаптер веб-перехватчика проверяет подписи на каждом входящем POST.
— Статические маршруты из config.yaml не могут быть перезаписаны динамическими подписками.
Подписки сохраняются в ~/.hermes/webhook_subscriptions.json
Как это работает
hermes webhook subscribe записывает в ~/.hermes/webhook_subscriptions.json
Адаптер веб-перехватчика выполняет горячую перезагрузку этого файла при каждом входящем запросе (с ограничением по времени, незначительные накладные расходы).
Когда приходит POST, соответствующий маршруту, адаптер форматирует приглашение и запускает запуск агента.
Ответ агента доставляется в настроенную цель (Telegram, Discord, комментарий GitHub и т. д.).
Устранение неполадок
Если вебхуки не работают:
Шлюз работает? Проверьте с помощью systemctl --user status hermes-gateway или ps aux | grep шлюз
Прослушивает ли сервер веб-перехватчика?curl http://localhost:8644/health должен возвращать {"status": "ok"}
Несоответствие подписи? Убедитесь, что секрет в вашей службе соответствует секрету из списка веб-перехватчиков Hermes. GitHub отправляет X-Hub-Signature-256, GitLab отправляет X-Gitlab-Token.
Брандмауэр/NAT? URL-адрес веб-перехватчика должен быть доступен из службы. Для локальной разработки используйте туннель (ngrok, cloudflared).
Неправильный тип события? Проверьте, соответствует ли фильтр --events тому, что отправляет служба. Используйте hermes webhook test <name>, чтобы убедиться, что маршрут работает.