Claude Code系列文8 – 七大元件

claude code 7 tools

目錄

這篇文章的重點

  1. Claude Code 是七個元件組成的系統,不是一個單一工具。只用 Main Agent 等於浪費了六成功力
  2. 四個維度分清所有元件:有沒有 context window、能不能執行動作、怎麼觸發、消不消耗 token
  3. Plugin 是教科書、Skill 是讀書筆記、MCP 是實驗器材——三者本質完全不同
  4. Hooks 是最被低估的元件——零 token 成本的自動化,應該優先考慮
  5. Subagents 的獨立 context 是長任務的救星——把耗 token 的子任務隔離出去
  6. 面對問題先問「我需要什麼類型的能力」,再選對應的元件

Claude Code不是一個工具

Claude Code 不是一個單一工具——它是一個由多個元件組成的系統。

但到了這個階段,你應該已經親手操作過 Claude Code,體驗過 Plan Mode、寫過 prompt、跑過完整的工程流程。現在,是時候把底層的系統架構攤開來看清楚。

為什麼這件事重要?

因為大多數人在使用 Claude Code 的時候,只用到了 Main Agent——也就是「你打字,它回答」這一層。這就像買了一整套專業工具組,卻只用螺絲起子。不是螺絲起子不好,而是你面對的問題不全是螺絲。

當你理解了這七個元件各自的角色和邊界,你就能在面對不同類型的挑戰時,精準地選出最適合的元件組合。這是從「會用 Claude Code」到「精通 Claude Code」的關鍵分水嶺。

七大元件完整對照表

untitled
七大元件對照表

使用Claude Code的過程中,不外乎會用到這七大元件。

四個維度,把七個元件分清楚

它有自己的 context window 嗎?

這是最根本的區分。

在這七個元件裡,只有兩個有自己的 context window:Main AgentSubagents

Main Agent 擁有主 context window——也就是你整個對話的上下文。你說的每一句話、它的每一個回覆、中間呼叫的工具結果,全部都在這個 context 裡。

Subagents 有自己獨立的 context window。這是一個關鍵的設計。當主 Agent 把一個子任務委派給 Subagent,那個 Subagent 會帶著任務描述啟動一個全新的 Claude 實例。它的思考、工具呼叫、中間結果,都在自己的 context 裡面,不會回灌到主 Agent 的 context。

其餘五個元件——Skills、MCP、Hooks、Slash Commands、Plugins——都沒有自己的 context window。它們要嘛是被載入主 context(像 Skills),要嘛是完全在 context 之外運作(像 Hooks)。

為什麼這個區分重要?因為 context window 就是 token,token 就是成本和速度。理解哪些元件會佔用 context,是做出高效配置的前提。

它能執行動作嗎?

第二個關鍵問題:這個元件能不能「做事」?

能執行動作的:Main Agent(能用全部工具)、Subagents(受限工具集)、MCP Servers(提供外部工具)、Hooks(執行腳本)。

不能執行動作的:Skills(只是 prompt 文字)、Plugins(只是容器)。

介於兩者之間的:Slash Commands——它本身不執行動作,但它會展開成 prompt 文字注入到對話中,間接驅動 Main Agent 去執行動作。

這個區分幫你理解一件事:當你需要 Claude Code 做一件新的事情時,你要問自己——我需要的是「教它怎麼想」(Skill),還是「給它新工具」(MCP),還是「在特定時機自動觸發」(Hook)?

它怎麼被觸發?

觸發機制直接決定了使用體驗。

手動觸發

  • Main Agent——你直接對話
  • Slash Commands——你輸入 /xxx

自動觸發

  • Subagents——主 Agent 判斷需要並行處理時自動委派
  • Skills——Claude 根據當前情境自動判斷是否載入
  • Hooks——特定事件(如 commit、檔案變更)發生時自動執行

被動提供

  • MCP Servers——它不主動觸發,而是把工具註冊給 Claude,等 Claude 決定要不要呼叫
  • Plugins——安裝時一次性載入,之後它裡面包含的各種擴展各自按自己的機制運作

注意 Skills 的觸發機制:Claude 不會一開始就把所有 Skills 全塞進 context,而是根據你當前的任務,根據Skills的描述,自動判斷哪些 Skills 跟當前情境相關(可參考Claude Code系列文5 – 建立自己的Claude Code SKILL優化工作流程),才載入。這個設計大幅減少了不必要的 token 消耗。

它消耗 token 嗎?

瞭解Claude Code如何在使用工具時消耗你的token,這是使用token的效率最佳化的關鍵。

token consume table logo
元件消耗Token對照表

幾個值得注意的重點:

Subagents 是長對話的救星。 當你的任務很複雜,主 context 快要爆的時候,Subagents 的獨立 context 設計就是關鍵。主 Agent 把耗 token 的子任務丟出去,Subagent 在自己的 context 裡完成後,只把結論傳回來。主 context 只多了一句結論,而不是整個思考過程。

Hooks 是最被低估的元件。 零 token 成本、自動觸發、不佔 context——但它能在每次 commit 前自動跑 lint、在每次檔案變更後自動跑格式化。這些如果讓 AI 做,每次都要消耗 token。用 Hook 做,永遠免費。

MCP、Skills 的隱藏成本。 每個 MCP Server 註冊的 tool schema 和 Skills 的描述都會佔 context。如果你裝了 10 個 MCP Server,每個有 5 個 tool,光是 tool 描述就已經佔掉不少 context space。安裝 MCP、Skills 時要有意識地選擇:你真的需要這個工具嗎?

最容易搞混的三個:Plugin vs Skill vs MCP

這三個概念是我在剛開始使用最常搞混的。讓我用一個比喻把它們徹底分清楚。

Plugin = 教科書。 它是一個打包好的容器。一本教科書裡面可能有課文(Skill)、實驗器材清單(MCP 配置)、課後練習(Slash Commands)、自動評分規則(Hooks)。但教科書本身不教你東西——裡面的內容才教你。Plugin 本身不執行任何動作,它只是一個分發格式,把多種擴展打包在一起,讓你可以一鍵安裝。

Skill = 讀書筆記。 它是一份 Markdown 文件,裡面寫的是「遇到這類情況,你應該怎麼做」。它教 Claude 怎麼想、怎麼做,但它自己不做任何事。它就像你整理的讀書筆記——記下最佳實務、操作步驟、注意事項。當 Claude 遇到相關情境,它會翻開這份筆記參考。

MCP Server = 實驗器材。 它是一個實際運行的外部服務,提供 Claude 可以呼叫的工具。就像實驗室裡的顯微鏡、離心機、光譜儀——它們有實際的執行能力,能做 Claude 本身做不到的事。查資料庫、呼叫外部 API、操作瀏覽器——這些都是 MCP 的領域。

把這三個放在一起看:

plugin skill mcp server logo
Plugin、Skill、MCP Server比較表

一個具體的例子:假設有一個叫 frontend-design 的 Plugin。安裝它之後,你得到的是:

  • 一個 Skill:告訴 Claude 如何做高品質的前端設計(設計原則、CSS 最佳實務、元件結構建議)
  • 一個 MCP 配置:連接 Playwright,讓 Claude 可以截圖檢查 UI 呈現效果
  • 一個 Slash Command/design 快速啟動設計審查流程

Plugin 把這三樣東西打包在一起。你安裝一次,就全部到位。但真正在工作的,是裡面的 Skill、MCP 和 Slash Command——不是 Plugin 本身。

決策指南:我該使用哪個元件?

理論講完了,回到實務。當你面對一個具體的挑戰,應該選哪個元件?

「我想教 Claude 遵循團隊的 coding style」→ Skill
寫一份 Markdown 文件,描述你們的命名規則、檔案結構慣例、commit message 格式。放進 .claude/skills/ 資料夾。Claude 在相關情境下會自動參考。

「我想讓 Claude 能查詢我們的 Notion 文件」→ MCP Server
你需要的是一個新工具。找一個 Notion MCP Server 安裝,或自己寫一個。Claude 就能在需要時呼叫它查資料。

「我想在每次 commit 前自動跑 ESLint」→ Hook
這是一個不需要 AI 參與的自動化動作。設定一個 pre-commit hook,零 token 成本,每次都自動執行。

「我想讓團隊成員一鍵啟動 code review 流程」→ Slash Command
寫一個 /review 命令,把 code review 的完整 prompt 包進去。團隊成員只要打 /review 就能啟動標準化的審查流程。

「我想把上面這些全部打包,讓新成員一鍵安裝」→ Plugin
把 Skills、MCP 配置、Slash Commands、Hooks 全部打包成一個 Plugin。新成員 /plugin install 一次搞定。

「我需要同時處理多個獨立的子任務」→ Subagent
當任務可以拆成多個獨立的部分(例如同時重構三個模組),主 Agent 會自動委派 Subagents 並行處理。你不需要手動呼叫 Subagent——它是主 Agent 自動決定的。

發佈留言