frameworks合輯2026/10/19

Hook:在 AI 工作的指定時機自動檢查與接續

#自動化#工作流程#Claude#Codex#Gemini#MCP

更新日期:2026/10/19。以下整理用途與代表事件,完整支援範圍請查看各產品目前版本的官方文件。

你可以請 AI「改完檔案後跑檢查」,也可以把這個動作掛在特定事件上:只要符合觸發條件,執行環境就呼叫設定好的處理程序。這種機制稱為 Hook(鉤子)。

它適合處理反覆發生、有明確時機的工作,尤其是危險操作的事前檢查、敏感資料送出前的攔截,也可以用於改檔後格式化與等待輸入時通知。這裡談的是 AI 代理執行流程中的事件 Hook;外部服務的 Webhook、Git 的提交 Hook,是其他系統中的事件機制。

常見情境:什麼時候值得用?

情境 適合的觸發時機 可以做什麼?
阻擋危險操作 刪除、覆寫、部署或資料修改執行前 檢查指令、目標與環境;符合禁止條件就阻擋,需要時交由產品支援的確認流程
檢查敏感資料外傳 郵件、上傳、公開發布或外部 API/MCP 呼叫前 檢查個資、密鑰與接收目的地;依規則拒絕或在支援時遮罩
開始或恢復工作 工作階段啟動、恢復,或上下文整理後 帶入專案摘要、目前環境與必要規則
操作前檢查 指令、檔案修改或外部功能執行前 檢查目標路徑與參數;支援時可阻擋不符合規則的操作
改檔後整理 指定修改動作完成後 對受影響檔案跑格式化或快速檢查
工作結束前驗收 回合結束或代理準備停止時 檢查必要產物與驗證結果;支援時可要求繼續處理
等待使用者 需要輸入或出現權限請求時 發出桌面通知,減少一直盯著畫面
追蹤與收尾 動作完成、失敗或工作階段結束 記錄結果、保存進度或清理暫存

這些是選擇 Hook 的用途方向,並非每個產品都有對應事件。開始時補背景、結束時保存狀態,也不代表系統會自動建立完整的長期記憶。

優先考慮:危險操作與敏感資料送出前檢查

這類 Hook 的價值,是把明確規則放在操作發生前執行,不只靠提示詞提醒 AI「小心」。以下是設計情境,並非已安裝的防護功能:

要防止的事情 檢查例子 可採取的處理
誤刪或覆寫資料 大量刪除、強制覆寫、清空資料表,或操作到正式環境 阻擋命中規則的操作,回傳原因;需要人工決策時使用該產品支援的確認機制
讀取或修改敏感檔案 私鑰、認證檔與環境變數檔;也檢查經由指令間接存取的路徑 在相關讀取或修改前拒絕存取,限定可操作目錄
把個資或密鑰送到外部 郵件內文、附件、上傳檔案、公開 issue,或外部呼叫參數含個資、API 金鑰或憑證 同時檢查內容、檔案與目的地;命中規則就阻擋,或在支援參數改寫時先遮罩

例如「把客戶資料寄給外部收件者」,可在寄信功能執行前檢查收件地址、附件與內文;發現不允許外傳的資料,就拒絕這次呼叫,而不是寄出後才記錄警告。

Hook 不會自帶個資辨識能力。 需要另外定義檢測規則或接上檢測程式;格式明確的密鑰可做規則掃描,姓名、地址或混合內容仍可能誤判與漏判。檢查附件時也必須實際取得檔案內容,不能只看呼叫中的檔名。

能否攔截,取決於送出途徑是否經過該 Hook。只攔截一個 MCP 功能,不能保證同樣資料不會透過 shell、瀏覽器或其他功能送出。若敏感內容早已讀入模型,之後阻擋另一個服務的上傳,也無法撤回先前已送入模型的內容。

檢測本身也要安排好資料去向:若把原文送到另一家外部服務掃描,資料已先離開原環境。需要避免外傳時,應在受控環境內檢查,並避免把敏感原文寫進 Hook 日誌。

各家 Hook 可用的時機不同

要比較的是產品與執行環境,不只是模型品牌。同樣使用 Claude、GPT 或 Gemini 模型,聊天網站、CLI、桌面程式、IDE 與自行開發的代理,未必開放相同 Hook。

產品 代表觸發事件 使用前要確認
Claude Code 工具執行前後、權限請求、通知、回合停止、上下文整理與子代理事件 事件各自支援哪些處理方式;回傳結果能阻擋、補上下文,還是僅供記錄
Codex 工作階段開始/結束、工具執行前後、權限請求、上下文整理與回合停止等 實際工具是否經過 Hook;本機與雲端編排的支援範圍不同,腳本也要存在於執行環境
Antigravity 工作階段開始、工具執行前後、模型呼叫前後與停止 App、CLI、IDE 的設定位置與執行環境;每個事件可接受的回傳欄位與控制方式

例如操作前的事件,Claude Code 與 Antigravity 使用 PreToolUse;Codex 也有同名事件,但涵蓋的工具與可接受的回傳值仍要各自核對。名稱相同不代表設定檔可以直接複製。

另一個差異是停止時機:Claude Code 的 Stop 關注回合回覆結束,Antigravity 的 Stop 關注執行迴圈停止。這不等於整個專案已通過驗收,也不一定代表所有背景工作都結束。

事前檢查與事後處理要分清楚

想阻擋某個操作,必須選擇執行前且能回傳阻擋決定的事件。動作完成後才收到的事件,可以記錄、檢查或觸發補救,卻不能讓已發生的寫入變成沒有發生。

也不要把「Hook 有執行」當成「錯誤一定會阻擋工作」。有些事件只是通知;有些 Hook 逾時、出錯或輸出格式不合時,主流程仍會繼續。這些行為應在使用產品中實際測試。

格式化或測試的範圍也要對準需求:每改一個字就跑完整建置,可能讓工作變慢。可以在改檔後做小範圍檢查,把完整驗收留在適合的節點。

與 Skill、MCP 怎麼搭配?

  • Skill:整理這件工作的步驟、知識與驗收要求。
  • MCP:連接外部資料與可用功能。
  • Hook:在執行流程的特定事件發生時,自動執行檢查或接續動作。

例如網站維護 Skill 定義修改流程,MCP 提供專案服務的連接,Hook 則在檔案修改後跑格式檢查。三者可分別採用,並沒有必須全部安裝的順序。

Hook 能不能涵蓋 MCP 操作,要看執行環境是否把該次呼叫納入事件;連上 MCP 不會自動獲得 Hook 支援。

從一個明確需求開始

先選一件常忘記的事,例如「每次修改指定檔案後做格式檢查」,寫清楚觸發條件、處理範圍與失敗時要怎麼辦。再到官方文件確認該產品是否有合適事件,以及腳本在哪裡執行。

測試時至少確認:符合條件時會觸發、不符合時不誤觸發,以及失敗或逾時後的行為。停止事件若會要求繼續工作,還需要次數或狀態判斷,避免反覆觸發同一個檢查。

Hook 是在環境允許的範圍內執行程式;第三方腳本應先閱讀再啟用。它也不能取代來源服務權限、沙箱與正式驗收。

回到 AI 協作與擴充,或閱讀 Skill 與 MCP 的差異與搭配。