第26篇:批次處理——一次處理一大堆任務
Hermes Agent 官方教學第26篇:一次處理一大堆任務
第26篇:批次處理——一次處理一大堆任務
你有沒有過這種經歷:早上打開電腦,先要檢查郵件、看日曆、掃一眼待辦清單,然後才開始幹活。如果這些事能自動幫你做完,該多好?Hermes 的批次處理功能就是幹這個的——它讓 Agent 在啟動時自動執行一組預設任務,就像你的私人助理在上班前先把桌子收拾好。
第1步:寫一個啟動清單檔案
批次處理的核心是一個叫 BOOT.md 的檔案,放在 ~/.hermes/ 目錄下。裡面寫的是你想讓 Agent 每次啟動時自動做的事,格式就是普通的 Markdown 文字,Agent 會讀懂並執行。
# 建立啟動清單
echo "檢查今天的日曆安排,如果有會議,整理出會議要點" > ~/.hermes/BOOT.md
第2步:寫一個鉤子(Hook)來觸發它
光有清單還不夠,你還需要一個「開關」來告訴 Hermes 什麼時候去讀這個檔案。這個開關就是一個鉤子,放在 ~/.hermes/hooks/boot-md/ 目錄下,包含兩個檔案:
HOOK.yaml —— 宣告這個鉤子監聽什麼事件:
hook_type: gateway_startup
handler.py —— 定義具體做什麼:
def handler(**kwargs):
# 讀取 BOOT.md 檔案
# 如果檔案存在,就啟動一個 Agent 去執行裡面的指令
# 如果檔案不存在,就安靜地跳過
這裡有兩個關鍵點需要注意:
_resolve_gateway_model()—— 取得閘道目前設定的模型,而不是用預設的_resolve_runtime_agent_kwargs()—— 解析你設定的 API 金鑰、端點位址等憑證
如果不做這兩步,Agent 會用自己的預設設定去連線,結果就是 401 認證失敗。
第3步:重新啟動並測試
# 重新啟動閘道
hermes gateway restart
# 查看日誌,確認鉤子是否正常運作
hermes logs --follow --level INFO | grep boot-md
日誌裡會出現 Running BOOT.md (N chars),然後要不是 boot-md completed: ...(Agent 做了事),要不是 boot-md completed (nothing to report)(Agent 用 [SILENT] 表示無事可做)。
想停用這個功能?刪掉 ~/.hermes/BOOT.md 檔案就行,鉤子會安靜地跳過。
擴展玩法
- 按星期區分任務:在 BOOT.md 裡寫「如果是週一,順便檢查部署日誌」,Agent 會根據日期自行判斷
- 多個清單:建立
STARTUP.md、MORNING.md等多個檔案,每個配一個鉤子 - 不需要 Agent 的場景:如果你只是想發個固定通知,直接用
httpx發請求就行,更快更省
為什麼這不算內建功能?
早期版本把批次處理做成了內建鉤子,結果每次啟動都悄悄啟動一個 Agent,用預設設定去連線,導致使用者自訂的端點全部報錯。現在改成文件化的模式,你自己寫鉤子、自己決定用不用,一切透明可控。
總結一下: 批次處理 = 啟動清單(BOOT.md)+ 鉤子(Hook)。它讓 Agent 在啟動時自動執行一組任務,省去你重複操作的時間。核心要點是記得解析閘道設定,否則會認證失敗。
下一篇預告: 第27篇將介紹外掛系統——如何把常用的鉤子打包成可重複使用的外掛,在 CLI 和閘道中都生效。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/features/batch-processing