CClaude Code 中文教學
文件 / features-overview

擴展 Claude Code

官方中文文件· 查看原文 ↗ ·官方譯文,未經機器翻譯

了解何時使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins。

Claude Code 結合了一個能夠推理您程式碼的模型與內建工具,用於檔案操作、搜尋、執行和網路存取。內建工具涵蓋了大多數編碼任務。本指南涵蓋擴展層:您添加的功能,用於自訂 Claude 的知識、將其連接到外部服務,以及自動化工作流程。

提示

有關核心代理迴圈如何運作的資訊,請參閱Claude Code 如何運作

初次使用 Claude Code?CLAUDE.md開始了解專案約定,然後根據特定觸發器添加其他擴展如下所示

概述

擴展插入代理迴圈的不同部分:

  • CLAUDE.md 添加 Claude 在每個會話中看到的持久上下文
  • Skills 添加可重複使用的知識和可調用的工作流程
  • Code intelligence 將 Claude 連接到語言伺服器以進行符號級導航和即時類型錯誤
  • MCP 將 Claude 連接到外部服務和工具
  • Subagents 在隔離的上下文中運行自己的迴圈,返回摘要
  • Agent teams 協調多個獨立會話,具有共享任務和點對點訊息傳遞
  • Hooks 在生命週期事件上觸發,可以運行指令碼、HTTP 請求、提示或 subagent
  • Pluginsmarketplaces 打包和分發這些功能

Skills 是最靈活的擴展。Skill 是一個包含知識、工作流程或指令的 markdown 檔案。您可以使用像 /deploy 這樣的命令調用 skills,或者 Claude 可以在相關時自動載入它們。Skills 可以在您目前的對話中運行,或通過 subagents 在隔離的上下文中運行。

將功能與您的目標相匹配

功能範圍從 Claude 在每個會話中看到的始終開啟的上下文,到您或 Claude 可以調用的按需功能,再到在特定事件上運行的背景自動化。下表顯示了可用的功能以及何時使用每一個。

功能 它的作用 何時使用 範例
CLAUDE.md 每次對話載入的持久上下文 專案約定、「始終執行 X」規則 「使用 pnpm,而不是 npm。在提交前運行測試。」
Skill Claude 可以使用的指令、知識和工作流程 可重複使用的內容、參考文件、可重複的任務 /deploy 運行您的部署檢查清單;包含端點模式的 API 文件 skill
Subagent 返回摘要結果的隔離執行上下文 上下文隔離、並行任務、專門的工作者 讀取許多檔案但僅返回關鍵發現的研究任務
Agent teams 協調多個獨立的 Claude Code 會話 並行研究、新功能開發、使用競爭假設進行除錯 生成審查者以同時檢查安全性、效能和測試
Code intelligence 語言伺服器導航和診斷 類型化語言、大型程式碼庫,其中 grep 速度慢或不精確 跳轉到符號的定義,而不是讀取整個檔案
MCP 連接到外部服務 外部資料或操作 查詢您的資料庫、發佈到 Slack、控制瀏覽器
Hook 由事件觸發的指令碼、HTTP 請求、提示或 subagent 必須在每個匹配事件上運行的自動化 在每次檔案編輯後運行 ESLint
Artifact 將會話輸出發佈為私人、互動式網頁 您想以視覺方式查看或共享的輸出,而不是作為終端文字 隨著 Claude 進行調查而更新的事件時間表

Plugins 是打包層。Plugin 將 skills、hooks、subagents 和 MCP servers 捆綁到單個可安裝單元中。Plugin skills 是命名空間的(如 /my-plugin:review),因此多個 plugins 可以共存。當您想在多個儲存庫中重複使用相同的設置或通過 marketplace 分發給他人時,使用 plugins。

隨著時間推移構建您的設置

您不需要預先配置所有內容。每個功能都有一個可識別的觸發器,大多數團隊大致按以下順序添加它們:

觸發器 添加
Claude 兩次出錯的約定或命令 將其添加到 CLAUDE.md
您一直在輸入相同的提示來啟動任務 將其保存為使用者可調用的 skill
您第三次將相同的劇本或多步驟程序粘貼到聊天中 將其捕獲為 skill
您一直在從 Claude 無法看到的瀏覽器選項卡複製資料 將該系統連接為 MCP server
Claude 讀取許多檔案以找到符號的定義或使用位置 為您的語言安裝 code intelligence plugin
一個附帶任務用您不會再次參考的輸出淹沒您的對話 通過 subagent 路由它
您希望每次都發生某事而無需詢問 編寫 hook
第二個儲存庫需要相同的設置 將其打包為 plugin

相同的觸發器告訴您何時更新您已經擁有的內容。重複的錯誤或反覆出現的審查評論是 CLAUDE.md 編輯,而不是聊天中的一次性更正。您一直手動調整的工作流程是需要另一次修訂的 skill。

比較相似的功能

某些功能可能看起來相似。如需更深入的選擇演練,請參閱部落格上的 Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents。以下是如何區分它們。

Skills 和 subagents 解決不同的問題:

* **Skills** 是可重複使用的內容,您可以將其載入任何上下文
* **Subagents** 是與您的主要對話分開運行的隔離工作者

| 方面                                   | Skill            | Subagent              |
| ------------------------------------ | ---------------- | --------------------- |
| **它是什麼**                             | 可重複使用的指令、知識或工作流程 | 具有自己上下文的隔離工作者         |
| **主要優勢**                             | 在上下文之間共享內容       | 上下文隔離。工作單獨進行,僅返回摘要    |
| **[上下文視窗](/docs/zh-TW/context-window)影響** | 添加到您的主視窗         | 使用具有自己輸入和輸出令牌的單獨視窗    |
| **最適合**                              | 參考資料、可調用的工作流程    | 讀取許多檔案的任務、並行工作、專門的工作者 |

**Skills 可以是參考或操作。** 參考 skills 提供 Claude 在整個會話中使用的知識(如您的 API 風格指南)。操作 skills 告訴 Claude 執行特定操作(如運行您的部署工作流程的 `/deploy`)。

**當您需要上下文隔離或您的上下文視窗變滿時,使用 subagent**。Subagent 可能讀取數十個檔案或運行廣泛的搜尋,但您的主要對話僅接收摘要。由於 subagent 工作不消耗您的主要上下文,當您不需要中間工作保持可見時,這也很有用。自訂 subagents 可以有自己的指令,並可以預載 skills。

**它們可以結合。** Subagent 可以預載特定 skills(`skills:` 欄位)。Skill 可以使用 `context: fork` 在隔離的上下文中運行。有關詳細資訊,請參閱 [Skills](/docs/zh-TW/skills)。

兩者都存儲指令,但它們的載入方式和用途不同。

| 方面           | CLAUDE.md       | Skill           |
| ------------ | --------------- | --------------- |
| **載入**       | 每個會話,自動         | 按需              |
| **可以包含檔案**   | 是,使用 `@path` 匯入 | 是,使用 `@path` 匯入 |
| **可以觸發工作流程** | 否               | 是,使用 `/<name>`  |
| **最適合**      | 「始終執行 X」規則      | 參考資料、可調用的工作流程   |

**如果 Claude 應該始終知道它,請將其放在 CLAUDE.md 中**:編碼約定、構建命令、專案結構、「永遠不要執行 X」規則。

**如果它是 Claude 有時需要的參考資料(API 文件、風格指南)或您使用 `/<name>` 觸發的工作流程(部署、審查、發佈),請將其放在 skill 中**。

**經驗法則:** 保持 CLAUDE.md 在 200 行以下。如果它在增長,將參考內容移動到 skills 或拆分為 [`.claude/rules/`](/docs/zh-TW/memory#organize-rules-with-claude%2Frules%2F) 檔案。

所有三者都存儲指令,但它們的載入方式不同:

| 方面      | CLAUDE.md | `.claude/rules/` | Skill         |
| ------- | --------- | ---------------- | ------------- |
| **載入**  | 每個會話      | 每個會話,或在打開匹配檔案時   | 按需,在調用或相關時    |
| **範圍**  | 整個專案      | 可以限定到檔案路徑        | 特定於任務         |
| **最適合** | 核心約定和構建命令 | 特定於語言或目錄的指南      | 參考資料、可重複的工作流程 |

**使用 CLAUDE.md** 用於每個會話需要的指令:構建命令、測試約定、專案架構。

**使用 rules** 保持 CLAUDE.md 專注。具有 [`paths` frontmatter](/docs/zh-TW/memory#path-specific-rules) 的 rules 僅在 Claude 使用匹配檔案時載入,節省上下文。

**使用 skills** 用於 Claude 有時只需要的內容,如 API 文件或您使用 `/<name>` 觸發的部署檢查清單。

兩者都並行化工作,但它們在架構上不同:

* **Subagents** 在您的會話內運行並將結果報告回您的主要上下文
* **Agent teams** 是相互通訊的獨立 Claude Code 會話

| 方面       | Subagent          | Agent team            |
| -------- | ----------------- | --------------------- |
| **上下文**  | 自己的上下文視窗;結果返回給呼叫者 | 自己的上下文視窗;完全獨立         |
| **通訊**   | 僅向主代理報告結果         | 隊友直接相互訊息傳遞            |
| **協調**   | 主代理管理所有工作         | 具有自我協調的共享任務清單         |
| **最適合**  | 只有結果重要的專注任務       | 需要討論和協作的複雜工作          |
| **令牌成本** | 較低:結果摘要回主上下文      | 較高:每個隊友是單獨的 Claude 實例 |

**當您需要快速、專注的工作者時,使用 subagent**:研究問題、驗證聲明、審查檔案。Subagent 執行工作並返回摘要。您的主要對話保持乾淨。

**當隊友需要共享發現、相互質疑和獨立協調時,使用 agent team**。Agent teams 最適合具有競爭假設的研究、並行程式碼審查,以及每個隊友擁有單獨部分的新功能開發。

**轉換點:** 如果您運行並行 subagents 但遇到上下文限制,或者您的 subagents 需要相互通訊,agent teams 是自然的下一步。
提示

Agent teams 是實驗性的,預設情況下被禁用。有關設置和目前限制,請參閱 agent teams

MCP 將 Claude 連接到外部服務。Skills 擴展 Claude 的知識,包括如何有效地使用這些服務。

| 方面       | MCP                  | Skill                     |
| -------- | -------------------- | ------------------------- |
| **它是什麼** | 連接到外部服務的協議           | 知識、工作流程和參考資料              |
| **提供**   | 工具和資料存取              | 知識、工作流程、參考資料              |
| **範例**   | Slack 整合、資料庫查詢、瀏覽器控制 | 程式碼審查檢查清單、部署工作流程、API 風格指南 |

這些解決不同的問題,並且可以很好地協同工作:

**MCP** 給予 Claude 與外部系統互動的能力。沒有 MCP,Claude 無法查詢您的資料庫或發佈到 Slack。

**Skills** 給予 Claude 關於如何有效使用這些工具的知識,以及您可以使用 `/<name>` 觸發的工作流程。Skill 可能包括您的團隊資料庫架構和查詢模式,或具有您的團隊訊息格式規則的 `/post-to-slack` 工作流程。

範例:MCP 伺服器將 Claude 連接到您的資料庫。Skill 教導 Claude 您的資料模型、常見查詢模式,以及用於不同任務的表格。

Hook 在生命週期事件上觸發;skill 被載入上下文供 Claude 應用。

| 方面        | Hook                                                                 | Skill                              |
| --------- | -------------------------------------------------------------------- | ---------------------------------- |
| **運行**    | 殼層命令、HTTP 請求、LLM 提示或 subagent                                        | Claude 讀取並遵循的指令                    |
| **由以下觸發** | [生命週期事件](/docs/zh-TW/hooks#hook-events),例如 `PostToolUse` 或 `SessionStart` | 您輸入 `/<name>`,或 Claude 將描述與您的任務相匹配 |
| **確定性**   | 始終在其事件上觸發;觸發器是有保證的                                                   | Claude 解釋指令;結果可能會有所不同              |
| **上下文成本** | 零,除非 hook 返回輸出                                                       | 描述在每個會話載入;使用時完整內容載入                |
| **最適合**   | 每次都以相同方式發生且不需要 Claude 思考的操作                                          | 需要推理的工作流程、參考資料、多步驟任務               |

**當操作必須每次都以相同方式發生且不需要 Claude 思考時,使用 hook**。例如:保存時格式化、拒絕 `rm -rf /`、在會話結束時發佈 Slack 訊息。

**當 Claude 應該決定如何應用步驟或內容是知識而不是指令碼時,使用 skill**。例如:`/release` 檢查清單、您的 API 風格指南、除錯劇本。

**將護欄放在 hooks 中。** CLAUDE.md 或 skill 中的「永遠不要編輯 `.env`」之類的指令是請求,而不是保證。阻止編輯的 `PreToolUse` hook 是強制執行。如果規則必須每次都成立,將其作為 hook 而不是提示指令。

**Hook 輸出進入上下文。** 運行您的 linter 的 `PostToolUse` hook 將結果作為 Claude 讀取的文本反饋;`/fix-lint` skill 告訴 Claude 如何解決它們。

了解功能如何分層

功能可以在多個級別定義:使用者範圍、每個專案、通過 plugins,或通過受管理的策略。您也可以在子目錄中嵌套 CLAUDE.md 檔案,或在 monorepo 的特定套件中放置 skills。當相同的功能存在於多個級別時,以下是它們的分層方式:

  • CLAUDE.md 檔案 是累加的:所有級別同時對 Claude 的上下文貢獻內容。來自您的工作目錄及以上的檔案在啟動時載入;子目錄在您在其中工作時載入。當指令衝突時,Claude 使用判斷來協調它們,更具體的指令通常優先。請參閱 CLAUDE.md 檔案如何載入
  • Skills 和 subagents 按名稱覆蓋:當相同名稱存在於多個級別時,一個定義根據優先級獲勝(skills 為受管理 > 使用者 > 專案;subagents 為受管理 > CLI 標誌 > 專案 > 使用者 > plugin)。Plugin skills 是命名空間的,以避免衝突。請參閱 skill 發現subagent 範圍
  • MCP 伺服器 按名稱覆蓋:本地 > 專案 > 使用者。請參閱 MCP 範圍
  • Hooks 合併:所有註冊的 hooks 為其匹配事件觸發,無論來源如何。請參閱 hooks

結合功能

每個擴展解決不同的問題:CLAUDE.md 處理始終開啟的上下文,skills 處理按需知識和工作流程,MCP 處理外部連接,subagents 處理隔離,hooks 處理自動化。真實的設置根據您的工作流程結合它們。

例如,您可能使用 CLAUDE.md 用於專案約定、skill 用於您的部署工作流程、MCP 用於連接到您的資料庫,以及 hook 用於在每次編輯後運行 linting。每個功能處理它最擅長的事情。

模式 它如何運作 範例
Skill + MCP MCP 提供連接;skill 教導 Claude 如何很好地使用它 MCP 連接到您的資料庫,skill 記錄您的架構和查詢模式
Skill + Subagent Skill 生成 subagents 進行並行工作 /audit skill 啟動在隔離上下文中工作的安全性、效能和風格 subagents
CLAUDE.md + Skills CLAUDE.md 保持始終開啟的規則;skills 保持按需載入的參考資料 CLAUDE.md 說「遵循我們的 API 約定」,skill 包含完整的 API 風格指南
Hook + MCP Hook 通過 MCP 觸發外部操作 編輯後 hook 在 Claude 修改關鍵檔案時發送 Slack 通知

了解上下文成本

您添加的每個功能都消耗 Claude 的一些上下文。太多可能會填滿您的上下文視窗,但它也可能添加噪聲,使 Claude 效率降低;skills 可能無法正確觸發,或 Claude 可能會失去對您的約定的追蹤。了解這些權衡有助於您構建有效的設置。有關這些功能如何在運行會話中結合的互動式視圖,請參閱探索上下文視窗

按功能的上下文成本

每個功能都有不同的載入策略和上下文成本:

功能 何時載入 什麼載入 上下文成本
CLAUDE.md 會話開始 完整內容 每個請求
Skills 會話開始 + 使用時 啟動時的描述,使用時的完整內容 低(每個請求的描述)*
MCP 伺服器 會話開始 工具名稱;完整架構按需 低,直到使用工具
Code intelligence 檔案編輯後和按需 編輯後的診斷;查詢時的符號位置 低;減少其他地方的檔案讀取
Subagents 生成時 具有指定 skills 的新鮮上下文 與主會話隔離
Hooks 觸發時 無(外部運行) 零,除非 hook 返回額外上下文

*預設情況下,skill 描述在會話開始時載入,以便 Claude 決定何時使用它們。在 skill 的 frontmatter 中設置 disable-model-invocation: true 以將其完全隱藏在 Claude 中,直到您手動調用它。這將 skills 的上下文成本降低到零,您只需自己觸發這些 skills。對於您未編寫的 skill,在設置中設置 skillOverrides 以執行相同操作,而無需編輯其檔案。

了解功能如何載入

每個功能在您的會話中的不同點載入。下面的選項卡說明每個功能何時載入以及什麼進入上下文。

上下文載入:CLAUDE.md 在會話開始時載入並保留在每個請求中。MCP 工具名稱在啟動時載入,完整架構延遲到使用。Skills 在啟動時載入描述,在調用時載入完整內容。Subagents 獲得隔離的上下文。Hooks 外部運行。

何時: 會話開始

**什麼載入:** 所有 CLAUDE.md 檔案的完整內容(受管理、使用者和專案級別)。

**繼承:** Claude 從您的工作目錄讀取 CLAUDE.md 檔案直到根目錄,並在訪問這些檔案時在子目錄中發現嵌套的檔案。有關詳細資訊,請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。
建议

保持 CLAUDE.md 在 200 行以下。將參考資料移動到 skills,它們按需載入。

Skills 是 Claude 工具包中的額外功能。它們可以是參考資料(如 API 風格指南)或可調用的工作流程,您可以使用 /<name> 觸發(如 /deploy)。Claude Code 附帶捆綁的 skills,如 /code-review/batch/debug,開箱即用。您也可以創建自己的。Claude 在適當時使用 skills,或者您可以直接調用一個。

**何時:** 取決於 skill 的配置。預設情況下,描述在會話開始時載入,完整內容在使用時載入。對於僅使用者 skills(`disable-model-invocation: true`),在您調用它們之前不會載入任何內容。

**什麼載入:** 對於模型可調用的 skills,Claude 在每個請求中看到名稱和描述。當您使用 `/<name>` 調用 skill 或 Claude 自動載入它時,完整內容載入到您的對話中。

**Claude 如何選擇 skills:** Claude 將您的任務與 skill 描述相匹配,以決定哪些相關。如果描述模糊或重疊,Claude 可能載入錯誤的 skill 或錯過會有幫助的。要告訴 Claude 使用特定 skill,請使用 `/<name>` 調用它。具有 `disable-model-invocation: true` 的 Skills 對 Claude 不可見,直到您調用它們。

**上下文成本:** 低,直到使用。僅使用者 skills 在調用前成本為零。

**在 subagents 中:** Skills 在 subagents 中的工作方式不同。不是按需載入,skills 列表中列出的 skills 在啟動時完全預載入其上下文。Subagents 仍然可以通過 Skill 工具發現和調用未列出的專案、使用者和 plugin skills。
建议

對具有副作用的 skills 使用 disable-model-invocation: true。這節省上下文並確保只有您觸發它們。

何時: 會話開始。

**什麼載入:** 來自連接伺服器的工具名稱。完整 JSON 架構保持延遲,直到 Claude 需要特定工具。

**上下文成本:** [工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)預設啟用,因此閒置 MCP 工具消耗最少上下文。
建议

運行 /mcp 以查看連接狀態和每個伺服器的令牌成本。Claude Code 自動重新連接到遠程伺服器(如果它們斷開連接),您可以斷開您未主動使用的伺服器。

何時: 檔案編輯後,以及當 Claude 導航程式碼時按需。

**什麼載入:** 每次檔案編輯後的類型錯誤和警告。當 Claude 查詢符號時的定義、參考和類型資訊。

**上下文成本:** 低。符號查詢通常會取代廣泛的檔案讀取,因此淨上下文使用可能會下降。
建议

LSP 工具在您為您的語言安裝程式碼智能 plugin之前處於非活動狀態。

何時: 按需,當您或 Claude 為任務生成一個時。

**什麼載入:** 新鮮、隔離的上下文,包含:

* 代理的自身系統提示,而不是完整的 Claude Code 系統提示
* 代理 `skills:` 欄位中列出的 skills 的完整內容
* CLAUDE.md 和 git 狀態,除了內置的 Explore 和 Plan 代理[省略兩者](/docs/zh-TW/sub-agents#what-loads-at-startup)
* 主代理在提示中傳遞的任何上下文

**上下文成本:** 與主會話隔離。Subagents 不繼承您的對話歷史或調用的 skills。
建议

對不需要您完整對話上下文的工作使用 subagents。它們的隔離防止膨脹您的主會話。

何時: 觸發時。Hooks 在特定生命週期事件(如工具執行、會話邊界、提示提交、權限請求和壓縮)時觸發。有關完整清單,請參閱 Hooks

**什麼載入:** 預設情況下無。Hooks 在主對話外執行。

**上下文成本:** 零,除非 hook 返回添加為訊息到您的對話的輸出。
建议

Hooks 非常適合不需要影響 Claude 上下文的副作用(linting、logging)。

了解更多

每個功能都有自己的指南,包含設置指令、範例和配置選項。