Webhooks

Webhooks

Gateway 可以暴露一个简单的 HTTP Webhook 端点供外部触发。

启用

{
  hooks: {
    enabled: true,
    token: "shared-secret",
    path: "/hooks"
  }
}

说明:

认证

每个请求必须包含 hook token。推荐使用 headers:

端点

POST /hooks/wake

负载:

{ "text": "系统行", "mode": "now" }

效果:

POST /hooks/agent

负载:

{
  "message": "运行这个",
  "name": "Email",
  "sessionKey": "hook:email:msg-123",
  "wakeMode": "now",
  "deliver": true,
  "channel": "last",
  "to": "+15551234567",
  "model": "openai/gpt-5.2-mini",
  "thinking": "low",
  "timeoutSeconds": 120
}

效果:

POST /hooks/<name>(映射)

自定义 Hook 名称通过 hooks.mappings 解析(见配置)。映射可以将任意负载转换为 wakeagent 动作,可选模板或代码转换。

映射选项(摘要):

响应

示例

curl -X POST http://127.0.0.1:18789/hooks/wake \
  -H 'Authorization: Bearer SECRET' \
  -H 'Content-Type: application/json' \
  -d '{"text":"收到新邮件","mode":"now"}'
curl -X POST http://127.0.0.1:18789/hooks/agent \
  -H 'x-openclaw-token: SECRET' \
  -H 'Content-Type: application/json' \
  -d '{"message":"总结收件箱","name":"Email","wakeMode":"next-heartbeat"}'

使用不同模型

在 Agent 负载(或映射)中添加 model 以覆盖该运行的模型:

curl -X POST http://127.0.0.1:18789/hooks/agent \
  -H 'x-openclaw-token: SECRET' \
  -H 'Content-Type: application/json' \
  -d '{"message":"总结收件箱","name":"Email","model":"openai/gpt-5.2-mini"}'

如果你强制执行 agents.defaults.models,请确保覆盖模型包含在其中。

curl -X POST http://127.0.0.1:18789/hooks/gmail \
  -H 'Authorization: Bearer SECRET' \
  -H 'Content-Type: application/json' \
  -d '{"source":"gmail","messages":[{"from":"Ada","subject":"Hello","snippet":"Hi"}]}'

安全