BOOT.md 啟動鉤子
這是什麼
一組由使用者自行安裝的 gateway:startup 掛鉤與檢查表,在每次閘道重新啟動時執行一次,不會在每個對話回合讀取。
白話解釋
它就像貼在大樓門口、留給當天開門警衛的紙條:先檢查警報記錄、註記異常,再開始值班。BOOT.md 是使用者自行撰寫並儲存的自然語言檢查表,背景程序會在閘道每次重新啟動時讀取並執行一次;它不是代理自行決定要記住的例行工作。
為什麼重要
BOOT.md 不是 Hermes 內建的啟動檔案。文件說明的做法,是由使用者在 ~/.hermes/hooks/boot-md/ 建立閘道掛鉤,監聽 gateway:startup、讀取 ~/.hermes/BOOT.md,再於背景執行緒啟動一次性的 AIAgent;檔案不存在或內容空白時不會執行工作。教學中的處理函式只以 logger.info 記錄非靜默的最終回應,沒有投遞到任何管道的呼叫。若要加入其他副作用或傳送行為,操作員必須在自己的處理函式中明確實作,不能假設執行環境會暗中處理。
運作方式
閘道程序啟動時,HookRegistry.discover_and_load() 會走訪 ~/.hermes/hooks/ 下的子目錄,並載入資料夾中 HOOK.yaml 宣告監聽 gateway:startup 的 handler.py(gateway/hooks.py)。boot-md 處理函式是由操作員撰寫的一般 Python 程式:它讀取 ~/.hermes/BOOT.md,再使用閘道實際解析出的模型與提供者憑證建立背景代理,例如透過 _resolve_gateway_model() 與 _resolve_runtime_agent_kwargs() 取得設定(gateway/run.py)。不能只用未設定的 AIAgent(),因為非預設端點會缺少驗證資訊。正因通用內建掛鉤無法猜測每位操作員的提供者設定,Hermes 才把它記錄成需要自行安裝與調整的模式。
具體範例
操作員在 BOOT.md 寫下「檢查夜間 cron 失敗紀錄,並掃描部署記錄中的 ERROR」。安裝文件提供的 gateway:startup 處理函式並重新啟動閘道後,掛鉤會在背景執行緒啟動一次性代理。教學處理函式會用 logger.info 記錄非靜默最終回應的前 200 個字元,沒有內容時則記錄無事可報;其中沒有把回應傳送到 Discord、Slack 或其他聊天管道的呼叫。
如何連結
「BOOT.md 啟動鉤子」屬於「技能」系列。最直接相關的概念包括:「soul.md 身分檔」、「掛鉤機制」、「代理執行環境」與「個人作業系統」。
來源證據
file:website/docs/user-guide/features/hooks.md#BOOT.md— 明確的Source Map範圍邊界:此文件不在核准的核心範圍內。vendor/hermes-agent/gateway/hooks.py#<file>—gateway/hooks.py的結構性Source Map備援;此檔案屬於「技能與外掛程式」中的外掛程式管理器及掛鉤結構。gateway/run.py#gateway.run.GatewayRunner—file:gateway/run.py#GatewayRunner的已驗證來源目標(targetId)標記。vendor/hermes-agent/gateway/run.py:7062-7068#GatewayRunner.start— 已驗證的GatewayRunnerSource Map證據。閘道啟動時,各轉接器的訊息處理函式會綁定至中央_handle_message管線;該處理函式涵蓋授權、指令、工作階段、上下文、代理執行與回應傳送,並會在首次await前取得有效工作階段租約與建立執行世代。run_agent.py#run_agent.AIAgent—agent_runtime的已驗證來源目標(targetId)標記。vendor/hermes-agent/run_agent.py:1892-1902#AIAgent._flush_messages_to_session_db— 已驗證的AIAgentSource Map證據。AIAgent以薄轉接方法把系統提示詞、API 參數與串流請求交給各自的實作函式。
工作流程
- 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。
