🤖HermesBlog
Hermes 功能详解 · 第16篇2026/8/9· Easy Understand Hermes Agent

第16篇:事件钩子——关键时刻自动触发

Hermes 功能详解第16篇:事件钩子。AI 每步动作都可以挂上钩子,实现自动化的精细控制。

hermes-feature-16-hooks

第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_TYPEHERMES_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