Skip to main content
Webhooks 会在受支持的 run 进入终态时通知您的系统。对于 training、evaluation 和 benchmark run 的完成事件,Osmosis 会向您为 workspace 配置的 URL 发送 JSON POST。

设置

打开 Workspace Settings → Webhooks。任何 workspace 成员都可以查看该页面和投递记录。只有 owner 和 admin 可以编辑 URL、开关投递或发送测试 payload:
  1. 输入您的 Webhook URL。必须使用 HTTPS 且端口为 443,并且解析到公网地址。指向私有或内部网络的 URL 会被拒绝。
  2. 打开 Deliver events 并点击 Save。
  3. 点击 Send test payload,确认您的接收端收到 webhook.test 事件。
关闭 Deliver events 可以暂停投递,且不会丢失已保存的 URL。如需移除 webhook,请清空 Webhook URL 并点击 Save。

事件

Payload

每个请求都是 Content-Type: application/json 的 POST,采用以下 envelope:

training_run.completed 和 eval_run.completed

两种事件的 data 对象结构相同: Training run 示例:
Evaluation run 的 latest_metrics 则包含汇总结果:

benchmark_run.completed

agents 中的每个对象包含:

webhook.test

投递

  • 每次尝试的超时时间为 5 秒。投递失败最多重试 2 次,并采用退避策略。
  • 重试可能产生重复投递。对于 run completion 事件,请使用 event + data.id 这一组合实现幂等处理。
  • 任何 2xx 响应都视为投递成功。不会跟随重定向。
  • 投递为尽力而为。Webhook 投递失败不会影响 run,Osmosis 不保证每个事件都能到达您的接收端。
  • 每次投递都会连同最终结果记录在 Recent deliveries 中,方便您查看 Osmosis 发送了什么以及接收端如何响应。

Recent deliveries

Workspace Settings → Webhooks 会在 webhook 表单下方列出最近 30 天内的每次投递。任何 workspace 成员都可以查看该列表;编辑 webhook 仍需 owner 或 admin 权限。 每一行显示: 点击某一行即可打开该次投递。Request 标签页显示 Osmosis 发送的完整 JSON body。Response 标签页显示 HTTP 状态以及接收端响应 body 的前 2 KB;如果没有收到响应,则显示传输错误。可以按事件或状态筛选列表,以定位某次具体的投递。 通过 Send test payload 发送的测试 payload 会像其他事件一样出现在列表中,因此查看 payload 最快的方式就是发送一次并打开对应的行。投递记录保留 30 天后删除。关闭 Deliver events 期间不会记录任何内容,因为不会发起请求。
Osmosis 会存储接收端响应 body 的前 2 KB 以便您排查失败原因。请不要在 webhook 响应中回显 secret 或其他敏感数据。

安全

Webhook 请求目前没有签名,因此 payload 本身不能证明请求来自 Osmosis。请使用不会在其他位置公开的专用高熵 HTTPS URL,在处理前验证 JSON schema 和预期的 event 值,并应用上述幂等规则。不要仅根据未经验证的 payload 字段触发 privileged actions。如果需要签名认证,请将 webhook 放在您控制的 gateway 后,并实施自己的 receiver policy。
最后修改于 2026年9月17日