為什麼學會基本操作之後,你還是覺得卡住
會下指令、會問問題、也看得懂 Claude Code 吐出來的程式碼——但用了兩三週之後,很多人會撞上同一種瓶頸:每次開新專案都要重講一次規則,每次想確認某個危險指令有沒有被擋下來都得盯著螢幕看,跑複雜任務時 context 塞得亂七八糟,Claude 開始「忘記」前面講過的事。
這不是用得不夠熟,而是還沒用到 Claude Code 真正用來解決這些問題的四個進階功能:Hooks(生命週期掛鉤)、Subagent(子代理)、MCP(Model Context Protocol)、Skills(技能包)。這四個東西分別對應四種不同的痛點,混著用效果有限,搞懂各自的定位之後,工作流才會真的順起來。
這篇不重講安裝與基礎指令(站內已有新手教學涵蓋),直接進到「學完基本操作之後要學什麼」。
四大進階功能:先搞懂分工,再決定用哪個
四個功能最常被搞混的原因是它們聽起來都在做「擴充」,但實際要解決的問題完全不同。用一句話分清楚:
| 功能 | 一句話定位 | 解決什麼問題 | 典型使用時機 |
|---|---|---|---|
| Hooks | 不管 Claude 怎麼想,這件事一定要發生 | 確定性控制、自動化 | 擋下危險指令、完成時發通知、強制格式化 |
| Subagent | 把一件事丟出去,讓它自己做完再回報 | context 隔離、平行處理 | 大範圍搜尋、程式碼審查、耗時的深度研究 |
| MCP | 讓 Claude 能連到外部系統動手做事 | 串接資料庫、API、第三方工具 | 查GSC數據、操作瀏覽器、寫入專案管理工具 |
| Skills | 把重複講的話寫成一份說明書 | 標準化重複性工作流 | 固定格式的週報、程式碼審查checklist、SOP執行 |

記一個簡單的決策順序:這件事必須每次都發生、不能靠AI自己判斷要不要做 → Hooks;這件事會佔用大量對話空間、做完只要結果 → Subagent;這件事需要碰到Claude Code本身以外的系統 → MCP;這件事是你反覆在講的固定流程 → Skills。
Hooks:把「一定要做到」的事交給腳本,不要交給提醒
Hooks 是在 Claude Code 生命週期的特定時間點(工具呼叫前/後、對話開始/結束等)自動觸發的腳本,概念上很接近 Git hooks。它跟「在 CLAUDE.md 裡寫規則」最大的差別在於:CLAUDE.md 的規則是「提醒」,Claude 有可能因為對話太長而忘記;Hooks 是「強制」,不管 Claude 記不記得,腳本一定會擋。
最常見的實戰用法是安全閘門。舉例,在 .claude/settings.json 裡設定一個 PreToolUse hook,在 Claude 執行 Bash 工具前先檢查指令內容,一旦偵測到 rm -rf 這類危險模式就直接擋下,回傳非零狀態碼讓工具呼叫失敗。這跟「在CLAUDE.md裡寫『不要用rm -rf』」的差別是:後者只是希望AI記得,前者是不管AI有沒有記得,指令都跑不出去。
另一個常見場景是完成通知。任務跑很久(例如大範圍重構)時,設定一個 Stop hook 在任務結束後發送系統通知或寫入 log,不用一直盯著終端機等結果。
寫 Hooks 時要注意兩件事:一是腳本本身要夠快、夠穩,因為它會卡在每次工具呼叫的路徑上,出錯會直接讓正常操作也跑不動;二是不要把「複雜邏輯判斷」塞進 Hooks,那是 Skills 或提示詞該做的事,Hooks 只負責「擋或不擋」這種確定性動作。
Subagent:context 快滿的時候,把探索工作外包出去
長對話最容易遇到的問題是 context 被無關內容塞滿——例如叫 Claude 去讀 20 個檔案找一個函式定義在哪,讀完之後主對話串裡塞滿了一堆你根本不需要的檔案內容,之後 Claude 反而更難聚焦在真正要改的地方。
Subagent 解決的就是這個問題:它有自己獨立的 context window、獨立的工具權限、獨立的指令,做完事情之後只把結論回報給主對話,過程中讀過的雜訊不會污染主線。
實戰上常見的分工方式:主對話負責決策與寫程式,探索型的 Subagent(例如專門負責「在整個 codebase 裡找某個邏輯的所有引用」)負責大範圍搜尋,審查型的 Subagent 負責在改動完成後做一次獨立的程式碼審查——因為它是全新的 context,不會被「我剛剛怎麼寫的」這種思維定勢影響,抓 bug 反而更準。
要不要用 Subagent 的判斷標準很單純:如果這個任務做完之後,你只在乎結果、不在乎過程讀了什麼,就該外包給 Subagent;如果過程本身就是你要盯著看、隨時介入調整的,留在主對話裡處理。
MCP:讓 Claude Code 摸得到「它本身以外」的世界
Claude Code 原生能做的事是讀寫檔案、跑指令、搜尋程式碼——僅限於它自己的沙盒。但實際工作常常需要碰外部系統:查資料庫、打API、操作瀏覽器、讀取專案管理工具裡的任務清單。MCP(Model Context Protocol)就是讓 Claude Code 連上這些外部系統的標準協定。
概念上可以這樣理解:Skills 是「知識」——教 Claude 怎麼做一件事;MCP 是「行動力」——讓 Claude 真的能連出去做那件事。一個 MCP Server 是獨立跑起來的程序,Claude Code 透過它把外部系統的能力變成自己可以直接呼叫的工具。
實務上常見的 MCP 應用包括:連接 Google Search Console 查詢排名數據(不用手動開瀏覽器複製貼上)、連接瀏覽器自動化工具做網頁操作與截圖驗證、連接資料庫直接查詢或寫入資料、連接 Slack 或其他通訊工具發送訊息。
設定 MCP 時建議遵守一個原則:.mcp.json 裡只放你真的會用到的 Server。每多接一個 MCP,Claude 能呼叫的工具清單就多一批,工具太多反而會讓 Claude 在選工具時判斷變慢、變不準——這跟「功能越多越好」的直覺是反的,精簡比齊全更重要。
Skills:把你重複打的那 200 字提示詞,寫成一份說明書
如果你發現自己每次做某件事(例如程式碼審查、寫週報、跑固定格式的檢查清單)都在貼一段幾乎一模一樣的長提示詞,這就是該寫成 Skill 的訊號。Skill 本質上是一份 Markdown 說明書(SKILL.md),教 Claude 一套固定的工作流程,寫好之後透過斜線指令(例如 /code-review)隨時呼叫,不用每次重講一次規則。
跟 CLAUDE.md 的差別在於:CLAUDE.md 是「隨時都在」的背景知識(例如專案的coding style、目錄結構),Skill 是「需要時才叫出來」的特定流程知識,兩者不衝突,甚至常常搭配使用——CLAUDE.md 讓 Claude 知道專案長怎樣,Skill 讓 Claude 知道遇到特定任務時該照哪套SOP走。
寫 Skill 時,內容建議包含:這個流程的目的與觸發時機、具體的執行步驟(越明確越好,模糊的步驟等於沒寫)、常見的例外狀況該怎麼處理、輸出格式要求。寫完之後放進 .claude/skills/ 資料夾,Claude Code 會自動讀取。
實戰組合:四個功能一起用,長什麼樣子
單獨看四個功能可能還是覺得抽象,串成一個真實工作流會清楚很多。以「寫一篇部落格文章並發布」這種常見任務為例:
- Skill 負責提供固定的文章寫作SOP(搜尋意圖研究→大綱→正文→配圖→SEO欄位→發布前檢查),確保每次產出的文章結構一致,不用每次重新講一次流程
- MCP 負責連接 Google Search Console 查關鍵字數據,以及連接瀏覽器自動化工具把寫好的文章實際存進 WordPress 草稿
- Subagent 負責在文章寫完後做一次獨立的內容審查(檢查有沒有邏輯漏洞、數據來源是否標注),因為它沒有被「我剛剛怎麼寫的」影響,抓問題比原作者自己複查更準
- Hooks 負責在存檔前自動檢查是否誤觸發布動作(例如攔截直接呼叫「發布」相關的API),確保草稿不會被意外發布出去
這個組合的重點不是「功能越多越厲害」,而是每個環節都用對了工具:需要標準化流程用 Skill,需要連外部系統用 MCP,需要隔離龐大過程用 Subagent,需要不容妥協的安全閘門用 Hooks。
常見卡關與排除
Hooks 設定後整個 Claude Code 變超慢:通常是 Hook 腳本本身執行太久(例如裡面呼叫了外部API卻沒設逾時),先確認腳本本身的執行時間,Hooks 應該在毫秒等級完成,不是拿來跑重量級邏輯的地方。
Subagent 回報的結果太籠統,看不出細節:問題通常出在指令下得不夠具體。呼叫 Subagent 時,要求它「回報」的內容要明確指定格式與範圍,例如「列出所有符合條件的檔案路徑與行號」,而不是籠統地說「幫我看一下」。
接了很多 MCP Server 之後,Claude 開始選錯工具:這是前面提過的「工具太多會拖累判斷準確度」的典型症狀,解法是回頭砍掉不常用的 MCP Server,只保留真的高頻使用的幾個。
寫的 Skill 沒有被觸發:檢查 SKILL.md 裡的觸發說明是否夠明確——Claude 是依照描述判斷什麼情境該用這個 Skill,描述太模糊或跟其他 Skill 重疊,會導致判斷失準,把觸發時機寫得越具體越好。
進階教學跟新手教學,差別在哪、什麼時候該回頭看新手教學
如果你還在熟悉「怎麼下指令」「怎麼裝」「斜線指令有哪些」,建議先看站內的Claude Code 新手完整教學打好基礎;這篇的前提是你已經能順暢地用 Claude Code 完成日常任務,卡住的地方是「怎麼把它變成一套可重複、可信賴的工作流程」,而不是「怎麼下第一個指令」。兩篇覆蓋的是同一個工具的不同階段,不是互相取代的關係。
常見問題 FAQ
一定要四個功能都用到才算會用 Claude Code 進階功能嗎?
不用。多數人一開始只需要用到 Skills(標準化重複流程)跟少量 MCP(接一兩個真的常用的外部系統),Hooks 跟 Subagent 是在遇到明確痛點(安全疑慮、context 塞爆)時才需要加上去,不是每個人都要四個一起上。
Hooks 會不會拖慢 Claude Code 的回應速度?
如果 Hook 腳本寫得精簡(只做判斷、不跑重邏輯),影響幾乎感覺不到;但如果腳本裡塞了呼叫外部API或跑複雜運算,因為它卡在每次工具呼叫的路徑上,會明顯拖慢整體速度,這是最常見的踩雷點。
Subagent 跟直接開新的對話視窗有什麼不一樣?
Subagent 是在同一個任務脈絡下,由主對話自動派工、自動收回結果,不需要你手動切換視窗、手動複製貼上上下文;開新對話視窗則是完全獨立、需要你自己手動銜接資訊,操作上麻煩很多。
MCP Server 要自己寫嗎?
不一定。現在有大量社群或官方維護的現成 MCP Server(例如資料庫連接、瀏覽器自動化、常見SaaS工具),先找有沒有現成的可以接,真的找不到才需要自己寫。
Skills 跟 CLAUDE.md 該怎麼分工,會不會內容重複?
CLAUDE.md 放「這個專案本來就是怎樣」的背景知識(例如技術棧、coding style、目錄結構),這些是隨時都該知道的事;Skills 放「遇到特定任務時的具體流程」,是需要時才叫出來的SOP。簡單判斷:如果這件事每次對話都該知道,放CLAUDE.md;如果只有特定任務才需要,放Skill。
新手可以跳過基礎教學直接學這篇的內容嗎?
技術上可以,但實際操作會卡在不熟悉基本指令與斜線命令的用法上,建議至少先花30分鐘熟悉基礎操作(可參考新手教學),再回來看這篇會順很多。
這些功能會不會之後被 Claude Code 官方改版拿掉或大改?
Claude Code 更新頻繁,具體的設定檔格式或指令細節有可能調整,但 Hooks/Subagent/MCP/Skills 這四個功能各自解決的問題(確定性控制、context隔離、外部串接、流程標準化)是比較底層的設計邏輯,短期內大方向不太會變,建議實際操作時以官方文件的最新語法為準。
延伸閱讀



