{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}
Đăng ký Webhook
Đăng ký Webhook: tác nhân theo sự kiện chạy.
Siêu dữ liệu kỹ năng
| Nguồn | Đi kèm (được cài đặt theo mặc định) |
| Đường dẫn |
skills/devops/webhook-subscriptions ` | | Phiên bản |
1.1.0 ` | | Nền tảng | Linux, macOS, Windows | | Thẻ |
webhook
, `events
, `automation
, `integrations
, `notifications
,
push |
Tham khảo: đầy đủ SKILL.md
Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.
Đăng ký Webhook
Tạo đăng ký webhook động để các dịch vụ bên ngoài (GitHub, GitLab, Stripe, CI/CD, cảm biến IoT, công cụ giám sát) có thể kích hoạt tác nhân Hermes chạy bằng cách ĐĂNG sự kiện tới URL.
Thiết lập (Bắt buộc trước)
Nền tảng webhook phải được bật trước khi có thể tạo đăng ký. Kiểm tra với:
`
Hermes webhook list
`
``Nếu thông báo "Nền tảng Webhook chưa được bật", hãy thiết lập:
### Tùy chọn 1: Trình hướng dẫn thiết lập
`
`bash
Hermes gateway setup
`
Làm theo lời nhắc để bật webhook, đặt cổng và đặt bí mật HMAC chung.
### Cách 2: Cấu hình thủ công
Thêm vào
~/.Hermes/config.yaml
:
`
`YAML
platforms:
webhook:
enabled: true
extra:
host: "0.0.0.0"
port: 8644
secret: "generate-a-strong-secret-here"
`
### Tùy chọn 3: Biến môi trường
Thêm vào
~/.Hermes/.env
:
`
`bash
WEBHOOK_ENABLED=true
WEBHOOK_PORT=8644
WEBHOOK_SECRET=generate-a-strong-secret-here
`
``Sau khi cấu hình, khởi động (hoặc khởi động lại) cổng:
`
`bash
Hermes gateway run
# Or if using systemd:
systemctl --user restart Hermes-gateway
`
``Xác minh nó đang chạy:
`
``` bash
curl http://localhost:8644/health
`
## Lệnh
Tất cả việc quản lý đều thông qua lệnh
`Hermes webhook
` CLI:
### Tạo đăng ký
`
`bash
Hermes webhook subscribe <name \
--prompt "Prompt template with \{payload.fields}" \
--events "event1,event2" \
--description "What this does" \
--skills "skill1,skill2" \
--deliver Telegram \
--deliver-chat-id "12345" \
--secret "optional-custom-secret"
`
``Trả về URL webhook và bí mật HMAC. Người dùng định cấu hình dịch vụ của họ để POST tới URL đó.
### Liệt kê đăng ký
`
``` bash
Hermes webhook list
`
### Xóa đăng ký
`
`bash
Hermes webhook remove <name>
`
### Kiểm tra đăng ký
`
`bash
Hermes webhook test <name
Hermes webhook test <name --payload '\{"key": "value"}'
`
## Mẫu nhắc nhở
Lời nhắc hỗ trợ
\{dot.notation}
` để truy cập các trường tải trọng lồng nhau:
-
\{issue.title}
` — Tiêu đề vấn đề GitHub
-
\{pull_request.user.login}
` — tác giả PR
-
\{data.object.amount}
` — Số tiền thanh toán sọc
-
\{sensor.temperature}
- Đọc cảm biến IoT
Nếu không có lời nhắc nào được chỉ định thì tải trọng JSON đầy đủ sẽ được chuyển vào lời nhắc của tổng đài viên.
## Các mẫu phổ biến
### GitHub: vấn đề mới
`
``` bash
Hermes webhook subscribe GitHub-issues \
--events "issues" \
--prompt "New GitHub issue #\{issue.number}: \{issue.title}\n\nAction: \{action}\nAuthor: \{issue.user.login}\nBody:\n\{issue.body}\n\nPlease triage this issue." \
--deliver Telegram \
--deliver-chat-id "-100123456789"
`
``Sau đó, trong Cài đặt repo GitHub → Webhooks → Thêm webhook:
- URL tải trọng: webhook_url được trả về
- Kiểu nội dung: ứng dụng/JSON
- Bí mật: bí mật được trả lại
- Sự kiện: "Vấn đề"
### GitHub: Đánh giá PR
`
``` bash
Hermes webhook subscribe GitHub-prs \
--events "pull_request" \
--prompt "PR #\{pull_request.number} \{action}: \{pull_request.title}\nBy: \{pull_request.user.login}\nBranch: \{pull_request.head.ref}\n\n\{pull_request.body}" \
--skills "GitHub-code-review" \
--deliver GitHub_comment
`
### Stripe: sự kiện thanh toán
`
``` bash
Hermes webhook subscribe stripe-payments \
--events "payment_intent.succeeded,payment_intent.payment_failed" \
--prompt "Payment \{data.object.status}: \{data.object.amount} cents from \{data.object.receipt_email}" \
--deliver Telegram \
--deliver-chat-id "-100123456789"
`
### CI/CD: thông báo bản dựng
`
``` bash
Hermes webhook subscribe ci-builds \
--events "pipeline" \
--prompt "Build \{object_attributes.status} on \{project.name} branch \{object_attributes.ref}\nCommit: \{commit.message}" \
--deliver Discord \
--deliver-chat-id "1234567890"
`
### Cảnh báo giám sát chung
`
``` bash
Hermes webhook subscribe alerts \
--prompt "Alert: \{alert.name}\nSeverity: \{alert.severity}\nMessage: \{alert.message}\n\nPlease investigate and suggest remediation." \
--deliver origin
`
### Giao hàng trực tiếp (không cần đại lý, không mất phí LLM)
Đối với các trường hợp sử dụng mà bạn chỉ muốn gửi thông báo đến cuộc trò chuyện của người dùng — không cần lý do, không cần vòng lặp tác nhân — hãy thêm
--deliver-only
. Mẫu
--prompt
` được hiển thị sẽ trở thành nội dung thông báo theo nghĩa đen và được gửi trực tiếp đến bộ điều hợp đích.
Sử dụng cái này cho:
- Thông báo đẩy dịch vụ bên ngoài (webhooks Supabase/Firebase → Telegram)
- Giám sát các cảnh báo cần chuyển tiếp nguyên văn
- Ping giữa các tác nhân trong đó một tác nhân đang nói với người dùng của tác nhân khác điều gì đó
- Bất kỳ webhook nào mà chuyến đi khứ hồi LLM sẽ lãng phí công sức
``` bash
Hermes webhook subscribe antenna-matches \
--deliver Telegram \
--deliver-chat-id "123456789" \
--deliver-only \
--prompt "🎉 New match: \{match.user_name} matched with you!" \
--description "Antenna match notifications"
`
``POST trả về
`200 OK
` khi phân phối thành công,
`502
` khi mục tiêu thất bại — vì vậy các dịch vụ ngược dòng có thể thử lại một cách thông minh. Xác thực HMAC, giới hạn tốc độ và tính tạm thời vẫn được áp dụng.
Yêu cầu
--deliver
` phải là mục tiêu thực sự (Telegram, discord, chậm chạp, GitHub_comment, v.v.) -
--deliver log
` bị từ chối vì việc phân phối trực tiếp chỉ ghi nhật ký là vô nghĩa.
## Bảo mật
- Mỗi đăng ký sẽ nhận được một bí mật HMAC-SHA256 được tạo tự động (hoặc cung cấp
--secret
` của riêng bạn)
- Bộ điều hợp webhook xác thực chữ ký trên mỗi POST đến
- Các tuyến tĩnh từ config.yaml không thể bị ghi đè bởi đăng ký động
- Đăng ký vẫn tồn tại
~/.Hermes/webhook_subscriptions.JSON
## Nó hoạt động như thế nào
1.
`Hermes webhook subscribe
` ghi vào
~/.Hermes/webhook_subscriptions.JSON
2. Bộ điều hợp webhook tải lại nóng tệp này theo mỗi yêu cầu đến (có giới hạn thời gian, chi phí không đáng kể)
3. Khi POST đến khớp với tuyến đường, bộ điều hợp sẽ định dạng lời nhắc và kích hoạt chạy tác nhân
4. Phản hồi của tác nhân được gửi đến mục tiêu đã định cấu hình (Telegram, Discord, bình luận GitHub, v.v.)
## Khắc phục sự cố
Nếu webhook không hoạt động:1. **Cổng có đang chạy không?** Kiểm tra bằng
`systemctl --user status Hermes-gateway
` hoặc
`ps aux | grep gateway
2. **Máy chủ webhook có đang lắng nghe không?**
`curl http://localhost:8644/health
` sẽ trả về
\{"status": "ok"}
3. **Kiểm tra nhật ký cổng:**
`grep webhook ~/.Hermes/logs/gateway.log | tail -20
4. **Chữ ký không khớp?** Hãy xác minh bí mật trong dịch vụ của bạn khớp với bí mật từ
`Hermes webhook list
. GitHub gửi
`X-Hub-Signature-256
, GitLab gửi
`X-GitLab-Token
.
5. **Tường lửa/NAT?** URL webhook phải truy cập được từ dịch vụ. Để phát triển cục bộ, hãy sử dụng đường hầm (ngrok, cloudflared).
6. **Loại sự kiện sai?** Kiểm tra bộ lọc
--events
` khớp với những gì dịch vụ gửi. Sử dụng
`Hermes webhook test <name
` để xác minh tuyến đường hoạt động.