Skip to main content
針對技能構建器 Input 節點的 Webhook Event 與 Hook Event 兩種觸發類型,Theo 提供兩套互補的事件系統。

Webhook —— 出站 HTTP 通知

Webhook 會將事件投遞到你的 HTTP 端點。當 Theo 中發生某些事情(如生成完成、任務結束、技能安裝等)時,系統會向每個匹配的端點發送一個帶簽名的 POST 請求。

註冊 Webhook

響應中包含一個 signing_secret——請妥善保存。它只會顯示一次,用於驗證載荷。

事件目錄

使用 "*" 作為事件類型可接收所有事件。

驗證簽名

每次投遞都包含 HMAC-SHA256 簽名:
通過計算 HMAC-SHA256(signing_secret, timestamp + "." + raw_body) 並進行比對來驗證。如果時間戳偏差超過 5 分鐘,應予以拒絕。

重試行為

  • 對瞬時失敗會以指數退避方式自動重試
  • 服務端會對每次嘗試強制執行超時限制
  • 4xx 錯誤不會被重試(客戶端錯誤)
  • 持續投遞失敗一段時間後,Webhook 會被自動禁用
  • 無論成功還是失敗,每次嘗試都會記錄在投遞日誌中

管理 Webhook

  • GET /api/v1/webhooks —— 列出所有 Webhook
  • PATCH /api/v1/webhooks/{id} —— 更新 URL、事件類型、啓用/禁用
  • DELETE /api/v1/webhooks/{id} —— 刪除
  • POST /api/v1/webhooks/{id}/test —— 發送測試事件
  • GET /api/v1/webhooks/{id}/deliveries —— 查看投遞日誌

Hook 事件 —— 自主技能觸發器

Hook 是內部事件觸發器,在事件發生時自動執行技能——無需 HTTP 端點。技能會在帶有額度護欄的自主執行器中以無頭(headless)方式運行。

Hook 的工作方式

  1. 發佈一個事件(通過 POST /api/v1/events 或內部平台事件)
  2. Hook 評估器檢查所有已啓用的 Hook 是否存在模式匹配
  3. 匹配到的 Hook 會加載對應的技能並自主執行
  4. 結果會記錄在執行日誌中

Hook 預設

安裝 Hook

自定義事件模式

模式支持以下形式:
  • 精確匹配:share.accepted 僅匹配 share.accepted
  • 通配符(Glob):order.*.completed 匹配 order.purchase.completed、order.return.completed
  • 前綴匹配:share 匹配 share.accepted、share.declined 等
  • 全匹配:* 匹配所有事件

發佈事件

使用 POST /api/v1/events 發佈領域事件,以觸發 Hook 與 Webhook:

護欄

自主執行運行在嚴格的安全限制之下:
  • 每次運行前進行預檢額度檢查
  • 為自主操作單獨設置每日上限
  • 對工具調用次數與總花費設置單次運行上限
  • 各步驟之間設有額度檢查點
  • Hook 在連續失敗後會自動暫停
  • 可配置觸發之間的冷卻時間,以防止失控執行

管理 Hook

  • GET /api/v1/hooks —— 列出 Hook(包含可用預設)
  • PATCH /api/v1/hooks/{id} —— 更新配置、啓用/禁用
  • DELETE /api/v1/hooks/{id} —— 刪除
  • GET /api/v1/hooks/{id} —— 查看執行歷史