一個 Coding Agent 正在執行測試,連續幾輪都碰到相同的 Selenium timeout。人只看得到不斷增加的輸出,卻很難立刻判斷:這是新的失敗、重複的嘗試,還是測試仍卡在同一個步驟?
要替這種工作流加上規則和觀測能力,Claude Code 已有幾條擴充路線。Skill 適合提供工作方法;MCP 連接外部系統;Settings Hook 在固定事件執行檢查。2026 年 10 月 1 日推出的 Claude Code Mods,則讓開發者可以直接處理 Claude Code 的執行事件、共享狀態,並在終端機介面畫出互動面板。
這個差異會影響工程設計。對已經有一套 Python 測試程式或 Agent 工作流的團隊,選對擴充層次,通常比一開始就寫出功能龐大的 Mod 更有價值。
Mod 可以觀察或改變 Claude Code 的執行事件
Anthropic 把 Mod 定義成一種 Claude Code Plugin。開發者在 JavaScript 或 TypeScript 模組註冊事件處理函式,Claude Code 發生工具呼叫、權限檢查、提示詞送出、回合變化或介面重繪時,就會執行對應函式。
以 tool.call 事件為例,Mod 可以先檢查工具呼叫,再讓原本的流程繼續;某些事件也支援改寫或直接接手處理。開發者還可以把多次事件累積成 session 狀態,繪製 prompt 上方的資訊列或側邊面板。這些能力讓 Mod 特別適合顯示工具呼叫次數、Agent 活動、上下文用量及需要人工注意的操作。
官方文件指出,終端機版自 Claude Code v2.1.287 起支援 Mods,且預設啟用。Claude Desktop 的 Code tab 也有支援,但各執行介面的顯示能力不同:VS Code 的聊天面板與 claude -p 可以執行適用的事件處理,卻不會呈現相同的自訂 pane/band。設計 Mod 前應先確認實際使用介面。
來源:Claude Code Mods 官方概覽;v2.1.287 發布紀錄
Skill、MCP、Settings Hook 與 Mod 各自負責不同問題
| 機制 | 主要用途 | 通常如何使用 | 適合的情況 |
|---|---|---|---|
| Skill | 把工作方法、程序與判斷規則交給模型 | 撰寫 SKILL.md,由使用者或 Claude 載入 | 測試設計 SOP、失敗分類、Code Review、交接格式 |
| MCP server | 提供外部資料與可呼叫的工具 | 註冊遵循 MCP 的本機或遠端服務 | 查詢 GitHub、工單、測試證據、經授權的 API |
| Settings Hook | 在 Claude Code 指定事件時執行固定動作或檢查 | 在 settings.json 設定 command、HTTP 等 handler | 執行前檢查、固定記錄、敏感操作阻擋、通知 |
| Mod | 處理執行事件、共享狀態、改寫互動與呈現原生介面 | 在 Plugin 內撰寫 JS/TS 事件處理函式 | 即時狀態面板、互動確認、進階執行觀測 |
這四種機制可以放在同一個工作流,甚至打包在同一個 Plugin。選型時先看需求:模型反覆需要同一套做事方法,可以寫 Skill;缺少外部資料,優先評估 MCP;只想在執行某個事件時跑既有檢查腳本,可用 Settings Hook;需要原生介面或跨事件狀態,才值得採用 Mod。
另有一個命名細節:Anthropic 在 Mods 文件中,也把 Mod 的處理函式稱作「hook」。它和 settings.json 定義的 Settings Hook 採用不同的 API 與事件模型,移植時不能只換事件名稱。
來源:Anthropic 官方機制比較;Skills;MCP;Hooks
自動化測試除錯可以用一個組合方案
以下是建議的設計情境,用來說明責任分工;並不代表已經量測過實際節費、成功率或執行時間。
假設 Selenium E2E 測試連續失敗,團隊想保留可追溯證據,同時讓操作者快速看懂現在發生什麼事:
- 由 Skill 定義失敗分析方法:先看案例識別、錯誤類型與必要的畫面/log;分辨環境、定位器、測試資料與產品問題,沒有證據就標待確認。
- 由 MCP 或既有 API 取得經授權的工單、PR 與測試報告。資料存取與寫入權限仍由後端控制。
- 由 Settings Hook 執行確定性的事件檢查或留下必要紀錄,例如敏感命令驗證、測試結束後保存報告索引。
- 由 Mod 在 Claude Code 內顯示目前 Agent、最近一次工具呼叫、失敗類型與人工待處理事項。第一版先以只讀狀態呈現,不接手工具批准。
- 由實際測試執行器或工作流控制程式維護強制停止條件。連續失敗上限、時間預算、是否允許重跑,都應由可測試的狀態機判斷,避免只靠模型記得一段文字規範。
這種分工可以保留 Python/Selenium runner 的測試真相,並把 Claude Code 視為操作與分析介面。如果工作流跨多個 Agent CLI 或多台機器,應考慮獨立的事件服務或側邊控制台,避免把共用狀態綁死在單一 Claude Code session。
第一個 Mod 可以從只讀觀測開始
官方的最小 Mod 具有 Plugin manifest、hooks/hooks.json 與事件模組。下列 JavaScript 僅示範註冊函式,並非可獨立安裝的完整 Plugin:
let toolCalls = 0
export function register(on) {
on("tool.call", async ($, event, next) => {
toolCalls += 1
return next(event)
})
}
這段程式會在同一個模組載入期間累計工具呼叫數,並讓事件照常執行。要把數字顯示在畫面上,還要依 Mods UI API 註冊相應事件與繪製邏輯。官方提供的 token-weather 範例,已展示將上下文資訊放在提示詞上方;blast-radius 則示範高風險命令執行前的互動確認。
拿到完整 Plugin 後,可以先在本機檢查,再透過單次 session 載入測試:
claude plugin validate ./my-mod
claude --plugin-dir ./my-mod
這兩個命令的前提是 ./my-mod 已包含完整且符合當前 Claude Code 版本要求的 Plugin 檔案。升版時,應重新驗證事件型別、功能相容性、意外錯誤與顯示降級行為。官方 API 仍在快速變動,本機產生的型別宣告應作為實際開發依據。
來源:Claude Code 官方 Mod 開發教學;官方範例專案
Mod 的權限範圍需要獨立評估
Mod 會以使用者的權限執行,可能讀寫檔案、啟動程序、連網、讀取環境變數、看到提示詞與工具呼叫,甚至在特定情況下替使用者核准工具。官方也明確指出,Mods 沒有安全 sandbox;Claude Code 對 Bash 工具的沙箱隔離,不能直接套用到 Mod 自己啟動的程序。
管理員設定的 deny rule 和 managed hook 可以控制 Claude 的工具操作,但不應假設它們會以相同方式限制 Mod 自己的檔案或程序 API。安裝第三方 Mod 前,至少要檢查程式碼來源、是否真的需要檔案寫入/連網/模型呼叫,以及 claude plugin validate 列出的事件與 API 能力。
特別需要留意的是:Mod 本身也可以攔截 permission 事件,因此不能把單一 Mod 當成整套組織安全邊界。敏感資料隔離仍要由作業系統、後端授權、組織政策與明確的審計機制共同負責。
近期版本修正了 Hook 的失敗處理
Claude Code Mods 於 2026 年 10 月 1 日公開後,幾個版本內就持續新增事件與修正邊界行為。原研究記錄到 v2.1.292 的 prompt.autocomplete、模型快取和 Agent 事件更新;截至 2026 年 10 月 10 日再次查核,官方 Releases 已更新至 v2.1.296,發表時間換算為台灣時間 10 月 10 日。
v2.1.295 新增 command/HTTP Settings Hook 的 onFailure: "block" 選項。這讓符合條件的 handler 在無法啟動、逾時或異常退出時可以選擇阻擋操作,適合需要明確失敗關閉策略的檢查。不過,實際阻擋範圍仍取決於 Hook 的事件、匹配條件與設定;程式導入前應刻意測試 timeout、例外與重新啟動情境。
同版也新增 $.ui.notify 讓 Mod 發出通知,並修正與 Mod guard、hook worker、權限檢查相關的問題。v2.1.296 接著新增 subagent 的 autoCompactWindow 設定,並修正 managed settings 的 Hook 拒絕行為、Mod prompt.submit 中斷處理等問題。這些變更提醒我們,初期導入宜固定版本及回歸測試,避免把一次跑得動當成長期相容。
來源:Claude Code v2.1.292;v2.1.295 官方發布紀錄;v2.1.296 官方發布紀錄
導入順序應由觀測逐步走向控制
對長時間 Agent 工作流,我會先做一個只讀的執行狀態面板:記錄必要的工具事件、失敗類別與等待人工處理的節點,先確認它能否降低查找問題的時間。這是工程建議,尚未提供實測效益數據。
如果下一步要加入操作阻擋,可以把安全檢查獨立成可測試的模組,再處理確認、拒絕、逾時與恢復。真正影響資料或部署的強制規則,仍應交由實際控制系統執行。遇到需要跨工作階段的證據鏈,也要先定義哪些資料能記錄、保存多久,以及誰能存取。
當需求只是固定 SOP、取得一個外部資料源或執行既有檢查,Skill、MCP 和 Settings Hook 都有更直接的做法。Mod 的優勢會出現在需要即時互動、執行事件整合及 Claude Code 原生可視化的場合。這也是評估是否值得承擔額外維護與安全成本的合理起點。