技能

掛鉤機制

在工作階段、模型選擇、工具執行和代理事件前後運行的事件驅動擴展點。

掛鉤機制

這是什麼

Hermes 如何在代理生命週期中觸發自訂回呼,讓使用者在關鍵事件注入邏輯。

白話解釋

想像在生產線上的每個關鍵站點都有一個按鈕——在零件進入烤爐之前、在包裝之前、在出貨之前——你可以按下按鈕插入自己的檢查或修改。掛鉤機制正是如此:它們是在 Hermes 代理生命週期中特定點觸發的回呼,讓你可以自訂行為,而無需修改 Hermes 的核心。

為什麼重要

每個人使用 Hermes 的方式都略有不同。掛鉤機制提供了一個可擴展的方式來加入自訂行為——日誌記錄、驗證、通知——而無需修改原始碼。這讓 Hermes 可以針對你的特定需求進行調整,同時保持核心乾淨且可維護。

運作方式

掛鉤是註冊在特定事件上的函數。可用的掛鉤點包括:工具呼叫前(PreToolUse)、工具呼叫後(PostToolUse)、對話開始時(SessionStart)、對話結束時(SessionEnd)等。當事件發生時,Hermes 會依序執行所有為該事件註冊的掛鉤。掛鉤可以修改資料(例如在寫入前修改檔案內容)、阻止操作(如果不滿足某個條件)或觸發副作用(例如發送通知)。

具體範例

你希望在每次代理寫入重要檔案時收到通知。

  1. 你建立一個 PostToolUse 掛鉤,檢查工具是否為 write_file。
  2. 當代理寫入檔案時,掛鉤觸發。
  3. 掛鉤擷取檔案路徑和大小。
  4. 它透過 Discord webhook 向你發送通知:「代理已更新 /path/to/important-file.md(2.3KB)」。
  5. 你隨時掌握檔案變更情況,無需主動檢查。

如何連結

本筆記屬於開發系列。最鄰近的概念包括:核准邊界、代理執行環境、事件驅動代理。

來源證據

  • hooks.py#HookRegistry — 管理掛鉤註冊與執行的核心登錄檔。
  • hooks.py#PreToolUsehooks.py#PostToolUse — 各種掛鉤點的實作。

工作流程

  • 尚無首次工作流程對應;此概念仍透過文章與來源證據存在於筆記庫圖譜中。

相關文章

  • 目前暫無文章以此概念名稱或別名達到引用門檻(請參閱提及-挖掘政策)。

相關筆記