Hermes 功能详解 · 第16篇2026/8/9· Easy Understand Hermes Agent
第16篇:事件钩子——关键时刻自动触发
Hermes 功能详解第16篇:事件钩子。AI 每步动作都可以挂上钩子,实现自动化的精细控制。
第16篇:事件鉤子——關鍵時刻自動觸發
上一篇我們聊了 Hermes 的定時任務,今天來聊聊它的「好兄弟」——事件鉤子(Event Hooks)。如果說定時任務是「到點就幹活」,那事件鉤子就是「一有風吹草動就立刻反應」。比如使用者剛發來一則訊息、Agent 剛完成一次工具呼叫、或者某個流程剛結束——這些關鍵時刻,鉤子都能幫你自動觸發一段自訂邏輯。
鉤子到底是什麼?
簡單說,事件鉤子就是「監聽器」。你告訴 Hermes:「當某某事件發生時,幫我執行這段程式碼/腳本。」 它不需要輪詢,也不需要人工干預,完全是事件驅動。
打個比方:你家裡裝了個智慧門鈴,有人按門鈴(事件),門鈴就會自動給你手機發通知(觸發動作)。Hermes 的鉤子就是這個門鈴。
典型使用場景
- 訊息回呼:使用者透過 Telegram/Discord 發訊息時,自動記錄日誌或做前處理
- 工具呼叫後處理:Agent 每次呼叫完工具,自動把結果存到資料庫
- 流程結束通知:一個多步驟任務跑完,自動發一則「搞定了」的通知
- 異常告警:Agent 報錯或卡住時,自動通知維運
怎麼設定?
在 Hermes 的 config.yaml 裡,有一個 hooks 設定區塊。基本結構長這樣:
hooks:
on_message:
- command: "python3 /opt/hooks/log_message.py"
on_tool_call_end:
- command: "bash /opt/hooks/notify.sh"
每個鉤子對應一個事件名稱,後面跟著一個指令清單。事件發生時,Hermes 會依序執行這些指令,並把相關上下文(比如訊息內容、工具呼叫結果)透過環境變數傳給你的腳本。
常用事件一覽
| 事件名稱 | 觸發時機 |
|---|---|
on_message |
收到新訊息時 |
on_tool_call_start |
工具呼叫開始前 |
on_tool_call_end |
工具呼叫結束後 |
on_agent_start |
Agent 開始處理任務時 |
on_agent_end |
Agent 完成處理時 |
on_error |
發生錯誤時 |
小撇步
- 鉤子指令是阻塞執行的,如果腳本卡住,會拖慢主流程。建議腳本內部自己處理逾時。
- 環境變數裡會帶上事件詳情,比如
HERMES_EVENT_TYPE、HERMES_MESSAGE_TEXT等,寫腳本時記得用上。 - 鉤子適合做「輕量級」操作,重活建議丟到背景任務。
實戰一下
假設你想在每次 Agent 完成工具呼叫後,把結果附加到一個日誌檔案:
hooks:
on_tool_call_end:
- command: "echo \"$HERMES_TOOL_RESULT\" >> /var/log/hermes_tools.log"
就這麼簡單!下次跑任務時,打開日誌檔案看看,每次工具呼叫的結果都乖乖躺在裡面了。
事件鉤子讓 Hermes 不再只是「你說一句它答一句」,而是能主動感知、自動回應。搭配定時任務,基本上能涵蓋絕大多數自動化需求。下一篇我們會聊聊 Docker 部署,看看怎麼把 Hermes 裝進容器裡跑起來。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/docker