词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
hermes gateway setup 或环境变量启用config.yaml 中定义路由,或使用 hermes webhook subscribe 动态创建http://your-server:8644/webhooks/<route-name>~/.hermes/.env:{"status": "ok", "platform": "webhook"}config.yaml 中 platforms.webhook.extra.routes 下的一个命名条目。| 属性 | 是否必填 | 描述 |
|---|---|---|
events | 否 | 要接受的事件类型列表(例如 ["pull_request"])。若为空,则接受所有事件。事件类型从 X-GitHub-Event、X-GitLab-Event 或 payload 中的 event_type 读取。 |
secret | 是 | 用于签名验证的 HMAC secret。若路由未设置,则回退到全局 secret。仅用于测试时可设为 "INSECURE_NO_AUTH"(跳过验证)。 |
prompt | 否 | 使用点号表示法访问 payload 字段的模板字符串(例如 {pull_request.title})。若省略,则将完整 JSON payload 转储到 prompt 中。 |
skills | 否 | agent 运行时加载的 skill 名称列表。 |
deliver | 否 | 响应发送目标:github_comment、telegram、discord、slack、signal、sms、whatsapp、matrix、mattermost、homeassistant、email、dingtalk、feishu、wecom、weixin、bluebubbles、qqbot,或 log(默认)。 |
deliver_extra | 否 | 额外的投递配置——键取决于 deliver 类型(例如 repo、pr_number、chat_id)。值支持与 prompt 相同的 {dot.notation} 模板语法。 |
deliver_only | 否 | 若为 true,完全跳过 agent——渲染后的 prompt 模板直接作为消息体投递。零 LLM token 消耗,亚秒级投递。参见直接投递模式了解使用场景。要求 deliver 为真实目标(非 log)。 |
{pull_request.title} 解析为 payload["pull_request"]["title"]{repository.full_name} 解析为 payload["repository"]["full_name"]{__raw__} — 特殊 token,将整个 payload 以缩进 JSON 格式转储(截断至 4000 个字符)。适用于监控告警或通用 webhook,agent 需要完整上下文时使用。{key} 字符串(不报错){__raw__} 与常规模板变量混合使用:prompt 模板,则将整个 payload 以缩进 JSON 格式转储(截断至 4000 个字符)。deliver_extra 的值中同样支持点号表示法模板。deliver_extra 中包含 message_thread_id(或 thread_id)来指定特定论坛话题:deliver_extra 中未提供 chat_id,则回退到目标平台配置的主频道。http://your-server:8644/webhooks/github-prapplication/jsongithub-webhook-secret)github-pr 路由添加到 ~/.hermes/config.yaml。gh CLI 已认证github_comment 投递类型使用 GitHub CLI 发布评论:X-Gitlab-Token 请求头以明文字符串匹配(非 HMAC)发送 secret。http://your-server:8644/webhooks/gitlab-mrdeliver 字段控制 agent 处理 webhook 事件后响应的发送目标。| 投递类型 | 描述 |
|---|---|
log | 将响应记录到 gateway 日志输出。这是默认值,适合测试使用。 |
github_comment | 通过 gh CLI 将响应作为 PR/issue 评论发布。需要 deliver_extra.repo 和 deliver_extra.pr_number。gh CLI 必须安装并在 gateway 主机上完成认证(gh auth login)。 |
telegram | 将响应路由到 Telegram。使用主频道,或在 deliver_extra 中指定 chat_id。 |
discord | 将响应路由到 Discord。使用主频道,或在 deliver_extra 中指定 chat_id。 |
slack | 将响应路由到 Slack。使用主频道,或在 deliver_extra 中指定 chat_id。 |
signal | 将响应路由到 Signal。使用主频道,或在 deliver_extra 中指定 chat_id。 |
sms | 通过 Twilio 将响应路由到 SMS。使用主频道,或在 deliver_extra 中指定 chat_id。 |
whatsapp | 将响应路由到 WhatsApp。使用主频道,或在 deliver_extra 中指定 chat_id。 |
matrix | 将响应路由到 Matrix。使用主频道,或在 deliver_extra 中指定 chat_id。 |
mattermost | 将响应路由到 Mattermost。使用主频道,或在 deliver_extra 中指定 chat_id。 |
homeassistant | 将响应路由到 Home Assistant。使用主频道,或在 deliver_extra 中指定 chat_id。 |
email | 将响应路由到 Email。使用主频道,或在 deliver_extra 中指定 chat_id。 |
dingtalk | 将响应路由到 DingTalk。使用主频道,或在 deliver_extra 中指定 chat_id。 |
feishu | 将响应路由到 Feishu/Lark。使用主频道,或在 deliver_extra 中指定 chat_id。 |
wecom | 将响应路由到 WeCom。使用主频道,或在 deliver_extra 中指定 chat_id。 |
weixin | 将响应路由到 Weixin(微信)。使用主频道,或在 deliver_extra 中指定 chat_id。 |
bluebubbles | 将响应路由到 BlueBubbles(iMessage)。使用主频道,或在 deliver_extra 中指定 chat_id。 |
deliver_extra 中未提供 chat_id,响应将发送到该平台配置的主频道。deliver_only: true。渲 染后的 prompt 模板直接作为消息体,适配器将其直接分发到配置的投递目标。200 OK,若目标拒绝则返回 502,便于上游服务智能重试https://your-server:8644/webhooks/antenna-matches。webhook 适配器验证签名、从 payload 渲染模板、投递到 Telegram,并返回 200 OK。| 状态码 | 含义 |
|---|---|
200 OK | 投递成功。响应体:{"status": "delivered", "route": "...", "target": "...", "delivery_id": "..."} |
200 OK(status=duplicate) | 在幂等性 TTL(1 小时)内重复的 X-GitHub-Delivery ID。不重复投递。 |
401 Unauthorized | HMAC 签名无效或缺失。 |
400 Bad Request | JSON 请求体格式错误。 |
404 Not Found | 未知路由名称。 |
413 Payload Too Large | 请求体超过 max_body_bytes。 |
429 Too Many Requests | 路由速率限制已超出。 |
502 Bad Gateway | 目标适配器拒绝消息或抛出异常。错误记录在服务端日志中;响应体为通用的 Delivery failed,避免泄露适配器内部信息。 |
deliver_only: true 要求 deliver 为真实目标。deliver: log(或省略 deliver)在启动时会被拒绝——适配器发现路由配置错误时拒绝启动。skills 字段被忽略(不运行 agent,无处注入 skill)。{dot.notation} 语法,包括 {__raw__} token。X-GitHub-Delivery / X-Request-ID 请求头——携带相同 ID 的重试返回 status=duplicate 且不重复投递。config.yaml 中的静态路由,还可以使用 hermes webhook CLI 命令动态创 建 webhook 订阅。当 agent 本身需要设置事件驱动触发器时,这尤为有用。~/.hermes/webhook_subscriptions.jsonconfig.yaml 中的静态路由始终优先于同名的动态订阅webhook-subscriptions skill 的引导下创建订阅。向 agent 请求"为 GitHub issues 设置 webhook",它将运行相应的 hermes webhook subscribe 命令。X-Hub-Signature-256 请求头——以 sha256= 为前缀的 HMAC-SHA256 十六进制摘要X-Gitlab-Token 请求头——明文 secret 字符串匹配X-Webhook-Signature 请求头——原始 HMAC-SHA256 十六进制摘要secret 继承。没有 secret 的路由会导致适配器在启动时报错退出。仅用于开发/测试时,可将 secret 设为 "INSECURE_NO_AUTH" 以完全跳过验证。INSECURE_NO_AUTH 仅在 gateway 绑定到回环地址(127.0.0.1、localhost、::1)时被接受。若与非回环绑定(如 0.0.0.0 或局域网 IP)组合使用,适配器拒绝启动——这可防止在公共接口上意外暴露未认证的端点。429 Too Many Requests 响应。X-GitHub-Delivery、X-Request-ID 或时间戳回退)缓存 1 小时。重复投递(例如 webhook 重试)会被静默跳过并返回 200 响应,防止重复触发 agent 运行。8644(或你配置的端口)必须开放http://your-server:8644/webhooks/<route-name>/health 端点确认服务器正在运行X-Hub-Signature-256X-Gitlab-TokenInvalid signature 警告events 列表中pull_request、push、issues 等值(X-GitHub-Event 请求头的值)merge_request、push 等值(X-GitLab-Event 请求头的值)events 为空或未设置,则接受所有事件hermes gateway runX-GitHub-Delivery 或 X-Request-ID)gh CLI 错误(GitHub 评论投递)gh auth logingh 是否已安装并在 PATH 中| 变量 | 描述 | 默认值 |
|---|---|---|
WEBHOOK_ENABLED | 启用 webhook 平台适配器 | false |
WEBHOOK_PORT | 接收 webhook 的 HTTP 服务器端口 | 8644 |
WEBHOOK_SECRET | 全局 HMAC secret(路由未指定自身 secret 时作为回退) | (无) |