8 8
9Claude Code 結合了一個能夠推理您程式碼的模型與[內建工具](/docs/zh-TW/how-claude-code-works#tools),用於檔案操作、搜尋、執行和網路存取。內建工具涵蓋了大多數編碼任務。本指南涵蓋擴展層:您添加的功能,用於自訂 Claude 的知識、將其連接到外部服務,以及自動化工作流程。9Claude Code 結合了一個能夠推理您程式碼的模型與[內建工具](/docs/zh-TW/how-claude-code-works#tools),用於檔案操作、搜尋、執行和網路存取。內建工具涵蓋了大多數編碼任務。本指南涵蓋擴展層:您添加的功能,用於自訂 Claude 的知識、將其連接到外部服務,以及自動化工作流程。
10 10
11<Note>11> [!NOTE]
12 有關核心代理迴圈如何運作的資訊,請參閱[Claude Code 如何運作](/docs/zh-TW/how-claude-code-works)。12>
13</Note>13> 有關核心代理迴圈如何運作的資訊,請參閱[Claude Code 如何運作](/docs/zh-TW/how-claude-code-works)。
14 14
15**初次使用 Claude Code?** 從[CLAUDE.md](/docs/zh-TW/memory)開始了解專案約定,然後根據特定觸發器添加其他擴展[如下所示](#build-your-setup-over-time)。15**初次使用 Claude Code?** 從[CLAUDE.md](/docs/zh-TW/memory)開始了解專案約定,然後根據特定觸發器添加其他擴展[如下所示](#build-your-setup-over-time)。
16 16
17<h2 id="overview">17## 概述
18 概述
19</h2>
20 18
21擴展插入代理迴圈的不同部分:19擴展插入代理迴圈的不同部分:
22 20
33 31
34[Skills](/docs/zh-TW/skills) 是最靈活的擴展。Skill 是一個包含知識、工作流程或指令的 markdown 檔案。您可以使用像 `/deploy` 這樣的命令調用 skills,或者 Claude 可以在相關時自動載入它們。Skills 可以在您目前的對話中運行,或通過 subagents 在隔離的上下文中運行。32[Skills](/docs/zh-TW/skills) 是最靈活的擴展。Skill 是一個包含知識、工作流程或指令的 markdown 檔案。您可以使用像 `/deploy` 這樣的命令調用 skills,或者 Claude 可以在相關時自動載入它們。Skills 可以在您目前的對話中運行,或通過 subagents 在隔離的上下文中運行。
35 33
36<h2 id="match-features-to-your-goal">34## 依目標選擇功能
37 依目標選擇功能
38</h2>
39 35
40各項功能涵蓋範圍廣泛,從 Claude 每個工作階段都會看到的常駐上下文,到您或 Claude 可以叫用的隨選功能,再到在特定事件發生時執行的背景自動化。下表列出可用的功能以及各自適用的時機。36各項功能涵蓋範圍廣泛,從 Claude 每個工作階段都會看到的常駐上下文,到您或 Claude 可以叫用的隨選功能,再到在特定事件發生時執行的背景自動化。下表列出可用的功能以及各自適用的時機。
41 37
54 50
55\*\*[外掛](/docs/zh-TW/plugins/overview)\*\*是封裝層。外掛會將 skill、hook、subagent 與 MCP 伺服器組合成單一可安裝的單元。外掛 skill 具有命名空間(例如 `/my-plugin:review`),因此多個外掛可以並存。當您想在多個儲存庫中重複使用相同的設定,或透過 **[市集](/docs/zh-TW/plugins/overview)** 散布給其他人時,請使用外掛。51\*\*[外掛](/docs/zh-TW/plugins/overview)\*\*是封裝層。外掛會將 skill、hook、subagent 與 MCP 伺服器組合成單一可安裝的單元。外掛 skill 具有命名空間(例如 `/my-plugin:review`),因此多個外掛可以並存。當您想在多個儲存庫中重複使用相同的設定,或透過 **[市集](/docs/zh-TW/plugins/overview)** 散布給其他人時,請使用外掛。
56 52
57<h3 id="build-your-setup-over-time">53### 逐步建立您的設定
58 逐步建立您的設定
59</h3>
60 54
61您不需要一開始就設定好所有內容。每項功能都有可辨識的觸發時機,大多數團隊大致依照以下順序加入:55您不需要一開始就設定好所有內容。每項功能都有可辨識的觸發時機,大多數團隊大致依照以下順序加入:
62 56
74 68
75同樣的觸發時機也能告訴您何時該更新現有的設定。反覆出現的錯誤或一再出現的審查意見,應該編輯 CLAUDE.md,而不是在聊天中進行一次性的修正。您一直手動調整的工作流程,代表這個 skill 需要再修訂一次。69同樣的觸發時機也能告訴您何時該更新現有的設定。反覆出現的錯誤或一再出現的審查意見,應該編輯 CLAUDE.md,而不是在聊天中進行一次性的修正。您一直手動調整的工作流程,代表這個 skill 需要再修訂一次。
76 70
77<h3 id="compare-similar-features">71### 比較相似的功能
78 比較相似的功能
79</h3>
80 72
81有些功能看起來可能很相似。如需更深入了解如何在它們之間做選擇,請參閱部落格上的 [Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more)。以下說明如何區分它們。73有些功能看起來可能很相似。如需更深入了解如何在它們之間做選擇,請參閱部落格上的 [Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more)。以下說明如何區分它們。
82 74
83<Tabs>75**Skill 與 Subagent**
84 <Tab title="Skill 與 Subagent">
85 Skill 與 subagent 解決的是不同的問題:
86 76
87 * **Skill** 是可以載入到任何上下文中的可重複使用內容77Skill 與 subagent 解決的是不同的問題:
88 * **Subagent** 是與主要對話分開執行的隔離工作者
89 78
90 | 面向 | Skill | Subagent |79* **Skill** 是可以載入到任何上下文中的可重複使用內容
91 | - | - | - |80* **Subagent** 是與主要對話分開執行的隔離工作者
92 | **是什麼** | 可重複使用的指令、知識或工作流程 | 擁有自己上下文的隔離工作者 |
93 | **主要優點** | 在不同上下文之間共用內容 | 上下文隔離。工作分開進行,只回傳摘要 |
94 | **[上下文視窗](/docs/zh-TW/context-window)影響** | 增加到您的主要視窗 | 使用獨立的視窗,擁有自己的輸入與輸出 token |
95 | **最適合** | 參考資料、可叫用的工作流程 | 需要讀取大量檔案的任務、平行工作、專門化的工作者 |
96 81
97 **Skill 可以是參考型或動作型。** 參考型 skill 提供 Claude 在整個工作階段中使用的知識(例如您的 API 風格指南)。動作型 skill 則告訴 Claude 執行特定的事情(例如執行部署工作流程的 `/deploy`)。82| 面向 | Skill | Subagent |
83| - | - | - |
84| **是什麼** | 可重複使用的指令、知識或工作流程 | 擁有自己上下文的隔離工作者 |
85| **主要優點** | 在不同上下文之間共用內容 | 上下文隔離。工作分開進行,只回傳摘要 |
86| **[上下文視窗](/docs/zh-TW/context-window)影響** | 增加到您的主要視窗 | 使用獨立的視窗,擁有自己的輸入與輸出 token |
87| **最適合** | 參考資料、可叫用的工作流程 | 需要讀取大量檔案的任務、平行工作、專門化的工作者 |
88
89**Skill 可以是參考型或動作型。** 參考型 skill 提供 Claude 在整個工作階段中使用的知識(例如您的 API 風格指南)。動作型 skill 則告訴 Claude 執行特定的事情(例如執行部署工作流程的 `/deploy`)。
90
91**使用 subagent** 的時機是需要上下文隔離,或上下文視窗即將填滿時。Subagent 可能會讀取數十個檔案或執行大量搜尋,但主要對話只會收到摘要。由於 subagent 的工作不會消耗主要上下文,當您不需要讓中間過程保持可見時,這也很有用。自訂 subagent 可以擁有自己的指令,並可預先載入 skill。
92
93**兩者可以結合。** Subagent 可以預先載入特定的 skill(`skills:` 欄位)。Skill 可以使用 `context: fork` 在隔離的上下文中執行。詳情請參閱 [Skill](/docs/zh-TW/skills)。
94
95**CLAUDE.md 與 Skill**
96
97兩者都儲存指令,但載入方式不同,用途也不同。
98
99| 面向 | CLAUDE.md | Skill |
100| - | - | - |
101| **載入** | 每個工作階段自動載入 | 隨選載入 |
102| **可包含檔案** | 可以,使用 `@path` 匯入 | 可以,使用 `@path` 匯入 |
103| **可觸發工作流程** | 否 | 可以,使用 `/<name>` |
104| **最適合** | 「一律執行 X」的規則 | 參考資料、可叫用的工作流程 |
105
106**放在 CLAUDE.md**:如果 Claude 應該隨時知道這些內容,例如程式碼慣例、建置命令、專案結構、「絕不執行 X」的規則。
98 107
99 **使用 subagent** 的時機是需要上下文隔離,或上下文視窗即將填滿時。Subagent 可能會讀取數十個檔案或執行大量搜尋,但主要對話只會收到摘要。由於 subagent 的工作不會消耗主要上下文,當您不需要讓中間過程保持可見時,這也很有用。自訂 subagent 可以擁有自己的指令,並可預先載入 skill。108**放在 skill**:如果是 Claude 有時才需要的參考資料(API 文件、風格指南),或是您透過 `/<name>` 觸發的工作流程(部署、審查、發布)。
100 109
101 **兩者可以結合。** Subagent 可以預先載入特定的 skill(`skills:` 欄位)。Skill 可以使用 `context: fork` 在隔離的上下文中執行。詳情請參閱 [Skill](/docs/zh-TW/skills)。110**經驗法則:** 讓 CLAUDE.md 保持在 200 行以內。如果內容持續增加,請將參考內容移至 skill,或拆分為 [`.claude/rules/`](/docs/zh-TW/memory#organize-rules-with-claude/rules/) 檔案。
102 </Tab>
103 111
104 <Tab title="CLAUDE.md 與 Skill">112**CLAUDE.md 與輸出風格**
105 兩者都儲存指令,但載入方式不同,用途也不同。
106 113
107 | 面向 | CLAUDE.md | Skill |114兩者都為 Claude 提供常駐指令。CLAUDE.md 承載 Claude 應該知道的內容,而輸出風格則設定 Claude 的回應方式。
108 | - | - | - |
109 | **載入** | 每個工作階段自動載入 | 隨選載入 |
110 | **可包含檔案** | 可以,使用 `@path` 匯入 | 可以,使用 `@path` 匯入 |
111 | **可觸發工作流程** | 否 | 可以,使用 `/<name>` |
112 | **最適合** | 「一律執行 X」的規則 | 參考資料、可叫用的工作流程 |
113 115
114 **放在 CLAUDE.md**:如果 Claude 應該隨時知道這些內容,例如程式碼慣例、建置命令、專案結構、「絕不執行 X」的規則。116| 面向 | CLAUDE.md | 輸出風格 |
117| - | - | - |
118| **內容** | 關於專案的事實與規則 | 角色、語氣與回應格式 |
119| **切換** | 一律載入 | 一次只有一個生效;可隨時[切換風格](/docs/zh-TW/output-styles#change-your-output-style) |
120| **最適合** | 建置命令、慣例、「絕不執行 X」的規則 | 較簡短的回應、搭配程式碼的說明、非工程類角色 |
115 121
116 **放在 skill**:如果是 Claude 有時才需要的參考資料(API 文件、風格指南),或是您透過 `/<name>` 觸發的工作流程(部署、審查、發布)。122**放在 CLAUDE.md**:如果無論使用哪種風格,這些內容對專案都成立,例如程式碼慣例、建置命令、專案結構。
117 123
118 **經驗法則:** 讓 CLAUDE.md 保持在 200 行以內。如果內容持續增加,請將參考內容移至 skill,或拆分為 [`.claude/rules/`](/docs/zh-TW/memory#organize-rules-with-claude/rules/) 檔案。124**使用輸出風格**:如果內容與回應本身有關,且您之後可能想將其關閉,例如長度、格式、Claude 解釋的詳細程度,或是寫作助理等不同的角色。Claude Code 包含[內建風格](/docs/zh-TW/output-styles#built-in-output-styles),您也可以撰寫自己的風格。
119 </Tab>
120 125
121 <Tab title="CLAUDE.md 與輸出風格">126**兩者可以結合。** 無論您選擇哪種風格,CLAUDE.md 都會保持載入。Claude 會將兩者都視為指令來遵循,因此兩者都不具強制性。對於每次都必須發生的事情,請使用 [hook](/docs/zh-TW/hooks-guide)。
122 兩者都為 Claude 提供常駐指令。CLAUDE.md 承載 Claude 應該知道的內容,而輸出風格則設定 Claude 的回應方式。
123 127
124 | 面向 | CLAUDE.md | 輸出風格 |128**CLAUDE.md、規則與 Skill**
125 | - | - | - |
126 | **內容** | 關於專案的事實與規則 | 角色、語氣與回應格式 |
127 | **切換** | 一律載入 | 一次只有一個生效;可隨時[切換風格](/docs/zh-TW/output-styles#change-your-output-style) |
128 | **最適合** | 建置命令、慣例、「絕不執行 X」的規則 | 較簡短的回應、搭配程式碼的說明、非工程類角色 |
129 129
130 **放在 CLAUDE.md**:如果無論使用哪種風格,這些內容對專案都成立,例如程式碼慣例、建置命令、專案結構。130三者都儲存指令,但載入方式不同:
131 131
132 **使用輸出風格**:如果內容與回應本身有關,且您之後可能想將其關閉,例如長度、格式、Claude 解釋的詳細程度,或是寫作助理等不同的角色。Claude Code 包含[內建風格](/docs/zh-TW/output-styles#built-in-output-styles),您也可以撰寫自己的風格。132| 面向 | CLAUDE.md | `.claude/rules/` | Skill |
133| - | - | - | - |
134| **載入** | 每個工作階段 | 每個工作階段,或開啟相符檔案時 | 隨選,在叫用或相關時載入 |
135| **範圍** | 整個專案 | 可限定於特定檔案路徑 | 特定任務 |
136| **最適合** | 核心慣例與建置命令 | 特定語言或特定目錄的準則 | 參考資料、可重複執行的工作流程 |
133 137
134 **兩者可以結合。** 無論您選擇哪種風格,CLAUDE.md 都會保持載入。Claude 會將兩者都視為指令來遵循,因此兩者都不具強制性。對於每次都必須發生的事情,請使用 [hook](/docs/zh-TW/hooks-guide)。138**使用 CLAUDE.md** 存放每個工作階段都需要的指令:建置命令、測試慣例、專案架構。
135 </Tab>
136 139
137 <Tab title="CLAUDE.md、規則與 Skill">140**使用規則** 讓 CLAUDE.md 保持聚焦。具有 [`paths` frontmatter](/docs/zh-TW/memory#path-specific-rules) 的規則只會在 Claude 處理相符檔案時載入,藉此節省上下文。
138 三者都儲存指令,但載入方式不同:
139 141
140 | 面向 | CLAUDE.md | `.claude/rules/` | Skill |142**使用 skill** 存放 Claude 有時才需要的內容,例如 API 文件或您透過 `/<name>` 觸發的部署檢查清單。
141 | - | - | - | - |
142 | **載入** | 每個工作階段 | 每個工作階段,或開啟相符檔案時 | 隨選,在叫用或相關時載入 |
143 | **範圍** | 整個專案 | 可限定於特定檔案路徑 | 特定任務 |
144 | **最適合** | 核心慣例與建置命令 | 特定語言或特定目錄的準則 | 參考資料、可重複執行的工作流程 |
145 143
146 **使用 CLAUDE.md** 存放每個工作階段都需要的指令:建置命令、測試慣例、專案架構。144**Subagent 與動態工作流程**
147 145
148 **使用規則** 讓 CLAUDE.md 保持聚焦。具有 [`paths` frontmatter](/docs/zh-TW/memory#path-specific-rules) 的規則只會在 Claude 處理相符檔案時載入,藉此節省上下文。146兩者都在主要對話之外執行工作。使用 subagent 時,由 Claude 逐回合決定接下來要執行什麼。在工作流程中,則由指令碼決定:
149 147
150 **使用 skill** 存放 Claude 有時才需要的內容,例如 API 文件或您透過 `/<name>` 觸發的部署檢查清單。148* **Subagent** 是 Claude 產生的工作者,每個都會將摘要回傳給產生它的對話
151 </Tab>149* **[動態工作流程](/docs/zh-TW/workflows)** 是由 Claude 撰寫的指令碼,會在背景執行多個 subagent 並回傳單一結果
152 150
153 <Tab title="Subagent 與動態工作流程">151**使用 subagent** 的時機是需要快速、專注的工作者時:研究某個問題、驗證某項主張、審查某個檔案。Subagent 完成工作後回傳摘要,讓您的主要對話保持整潔。Claude 在產生時為其命名的 subagent 也可以[彼此傳訊](/docs/zh-TW/sub-agents#what-loads-at-startup)。
154 兩者都在主要對話之外執行工作。使用 subagent 時,由 Claude 逐回合決定接下來要執行什麼。在工作流程中,則由指令碼決定:
155 152
156 * **Subagent** 是 Claude 產生的工作者,每個都會將摘要回傳給產生它的對話153**使用動態工作流程** 的時機是某項工作[超出少數幾個 subagent 能處理的範圍](/docs/zh-TW/workflows#when-to-use-a-workflow),或您希望在看到發現之前先交叉驗證時,例如整個程式碼庫的稽核、大型遷移,或從多個角度起草的計畫。若要啟動工作流程,請[在提示詞中要求使用工作流程](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt)。
157 * **[動態工作流程](/docs/zh-TW/workflows)** 是由 Claude 撰寫的指令碼,會在背景執行多個 subagent 並回傳單一結果
158 154
159 **使用 subagent** 的時機是需要快速、專注的工作者時:研究某個問題、驗證某項主張、審查某個檔案。Subagent 完成工作後回傳摘要,讓您的主要對話保持整潔。Claude 在產生時為其命名的 subagent 也可以[彼此傳訊](/docs/zh-TW/sub-agents#what-loads-at-startup)。155**若要將某個工作階段的發現傳遞給另一個工作階段**,請要求第一個工作階段的 Claude 傳送。Claude 會透過[跨工作階段傳訊](/docs/zh-TW/cross-session-messaging)傳遞。[平行執行 agent](/docs/zh-TW/agents) 比較了同時執行多個 Claude 的其他方式,包括您交付出去、之後再回來查看的工作階段。
160 156
161 **使用動態工作流程** 的時機是某項工作[超出少數幾個 subagent 能處理的範圍](/docs/zh-TW/workflows#when-to-use-a-workflow),或您希望在看到發現之前先交叉驗證時,例如整個程式碼庫的稽核、大型遷移,或從多個角度起草的計畫。若要啟動工作流程,請[在提示詞中要求使用工作流程](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt)。157**MCP 與 Skill**
162 158
163 **若要將某個工作階段的發現傳遞給另一個工作階段**,請要求第一個工作階段的 Claude 傳送。Claude 會透過[跨工作階段傳訊](/docs/zh-TW/cross-session-messaging)傳遞。[平行執行 agent](/docs/zh-TW/agents) 比較了同時執行多個 Claude 的其他方式,包括您交付出去、之後再回來查看的工作階段。159MCP 將 Claude 連接到外部服務。Skill 則擴充 Claude 所知道的內容,包括如何有效使用這些服務。
164 </Tab>
165 160
166 <Tab title="MCP 與 Skill">161| 面向 | MCP | Skill |
167 MCP 將 Claude 連接到外部服務。Skill 則擴充 Claude 所知道的內容,包括如何有效使用這些服務。162| - | - | - |
163| **是什麼** | 用於連接外部服務的協定 | 知識、工作流程與參考資料 |
164| **提供** | 工具與資料存取 | 知識、工作流程、參考資料 |
165| **範例** | Slack 整合、資料庫查詢、瀏覽器控制 | 程式碼審查檢查清單、部署工作流程、API 風格指南 |
168 166
169 | 面向 | MCP | Skill |167兩者解決不同的問題,且能良好地搭配運作:
170 | - | - | - |
171 | **是什麼** | 用於連接外部服務的協定 | 知識、工作流程與參考資料 |
172 | **提供** | 工具與資料存取 | 知識、工作流程、參考資料 |
173 | **範例** | Slack 整合、資料庫查詢、瀏覽器控制 | 程式碼審查檢查清單、部署工作流程、API 風格指南 |
174 168
175 兩者解決不同的問題,且能良好地搭配運作:169**MCP** 為 Claude 提供針對外部系統專門打造的工具,連線與身分驗證則由伺服器處理。
176 170
177 **MCP** 為 Claude 提供針對外部系統專門打造的工具,連線與身分驗證則由伺服器處理。171**Skill** 為 Claude 提供如何有效使用這些工具的知識,以及您可以透過 `/<name>` 觸發的工作流程。Skill 可能包含您團隊的資料庫 schema 與查詢模式,或是包含團隊訊息格式規則的 `/post-to-slack` 工作流程。
178 172
179 **Skill** 為 Claude 提供如何有效使用這些工具的知識,以及您可以透過 `/<name>` 觸發的工作流程。Skill 可能包含您團隊的資料庫 schema 與查詢模式,或是包含團隊訊息格式規則的 `/post-to-slack` 工作流程。173**Hook 與 Skill**
180 </Tab>
181 174
182 <Tab title="Hook 與 Skill">175Claude Code 會在生命週期事件發生時執行 hook;而 skill 則是載入到上下文中供 Claude 套用。
183 Claude Code 會在生命週期事件發生時執行 hook;而 skill 則是載入到上下文中供 Claude 套用。
184 176
185 | 面向 | Hook | Skill |177| 面向 | Hook | Skill |
186 | - | - | - |178| - | - | - |
187 | **執行內容** | shell 命令、HTTP 請求、MCP 工具呼叫、LLM 提示詞或 subagent | Claude 閱讀並遵循的指令 |179| **執行內容** | shell 命令、HTTP 請求、MCP 工具呼叫、LLM 提示詞或 subagent | Claude 閱讀並遵循的指令 |
188 | **觸發方式** | [生命週期事件](/docs/zh-TW/hooks#hook-events),例如 `PostToolUse` 或 `SessionStart` | 您輸入 `/<name>`,或 Claude 判斷描述與您的任務相符 |180| **觸發方式** | [生命週期事件](/docs/zh-TW/hooks#hook-events),例如 `PostToolUse` 或 `SessionStart` | 您輸入 `/<name>`,或 Claude 判斷描述與您的任務相符 |
189 | **確定性** | 在其事件發生時觸發,無需 Claude 決定 | Claude 解讀指令;結果可能有所不同 |181| **確定性** | 在其事件發生時觸發,無需 Claude 決定 | Claude 解讀指令;結果可能有所不同 |
190 | **上下文成本** | 除非 hook 回傳輸出,否則為零 | 描述在每個工作階段載入;使用時載入完整內容 |182| **上下文成本** | 除非 hook 回傳輸出,否則為零 | 描述在每個工作階段載入;使用時載入完整內容 |
191 | **最適合** | 編輯後執行 lint、封鎖不安全的命令、記錄、通知 | 需要推理的工作流程、參考資料、多步驟任務 |183| **最適合** | 編輯後執行 lint、封鎖不安全的命令、記錄、通知 | 需要推理的工作流程、參考資料、多步驟任務 |
192 184
193 **使用 hook** 的時機是動作每次都必須以相同方式發生,且不需要 Claude 思考時。例如:儲存時格式化、拒絕 `rm -rf /`、在工作階段結束時發布 Slack 訊息。185**使用 hook** 的時機是動作每次都必須以相同方式發生,且不需要 Claude 思考時。例如:儲存時格式化、拒絕 `rm -rf /`、在工作階段結束時發布 Slack 訊息。
194 186
195 **使用 skill** 的時機是應由 Claude 決定如何套用步驟,或內容是知識而非指令碼時。例如:`/release` 檢查清單、您的 API 風格指南、除錯操作手冊。187**使用 skill** 的時機是應由 Claude 決定如何套用步驟,或內容是知識而非指令碼時。例如:`/release` 檢查清單、您的 API 風格指南、除錯操作手冊。
196 188
197 **將防護措施放在 hook 中。** 在 CLAUDE.md 或 skill 中寫下「絕不編輯 `.env`」這類指令只是請求,而非保證。封鎖該編輯的 `PreToolUse` hook 才是強制執行。如果某條規則每次都必須成立,請將其設為 hook,而不是提示詞指令。189**將防護措施放在 hook 中。** 在 CLAUDE.md 或 skill 中寫下「絕不編輯 `.env`」這類指令只是請求,而非保證。封鎖該編輯的 `PreToolUse` hook 才是強制執行。如果某條規則每次都必須成立,請將其設為 hook,而不是提示詞指令。
198 190
199 **Hook 輸出會進入上下文。** 執行 linter 的 `PostToolUse` hook 會將結果以文字形式回饋給 Claude 閱讀;`/fix-lint` skill 則告訴 Claude 如何解決這些問題。191**Hook 輸出會進入上下文。** 執行 linter 的 `PostToolUse` hook 會將結果以文字形式回饋給 Claude 閱讀;`/fix-lint` skill 則告訴 Claude 如何解決這些問題。
200 </Tab>
201</Tabs>
202 192
203<h3 id="understand-how-features-layer">193### 了解功能如何分層
204 了解功能如何分層
205</h3>
206 194
207功能可以在多個層級定義:整個使用者、個別專案、透過外掛,或透過受管理的政策。您也可以在子目錄中巢狀放置 CLAUDE.md 檔案,或將 skill 放在 monorepo 的特定套件中。當同一功能存在於多個層級時,分層方式如下:195功能可以在多個層級定義:整個使用者、個別專案、透過外掛,或透過受管理的政策。您也可以在子目錄中巢狀放置 CLAUDE.md 檔案,或將 skill 放在 monorepo 的特定套件中。當同一功能存在於多個層級時,分層方式如下:
208 196
211* **MCP 伺服器**依名稱覆寫:local > project > user。請參閱 [MCP 範圍](/docs/zh-TW/mcp#scope-hierarchy-and-precedence)。199* **MCP 伺服器**依名稱覆寫:local > project > user。請參閱 [MCP 範圍](/docs/zh-TW/mcp#scope-hierarchy-and-precedence)。
212* **Hook** 會合併:所有已註冊的 hook 都會在其相符事件發生時觸發,無論來源為何。請參閱 [hook](/docs/zh-TW/hooks)。200* **Hook** 會合併:所有已註冊的 hook 都會在其相符事件發生時觸發,無論來源為何。請參閱 [hook](/docs/zh-TW/hooks)。
213 201
214<h3 id="combine-features">202### 結合功能
215 結合功能
216</h3>
217 203
218每種擴充功能解決不同的問題:CLAUDE.md 處理常駐上下文,skill 處理隨選的知識與工作流程,MCP 處理外部連線,subagent 處理隔離,hook 則處理自動化。實際的設定會依您的工作流程將它們結合使用。204每種擴充功能解決不同的問題:CLAUDE.md 處理常駐上下文,skill 處理隨選的知識與工作流程,MCP 處理外部連線,subagent 處理隔離,hook 則處理自動化。實際的設定會依您的工作流程將它們結合使用。
219 205
226| **CLAUDE.md + Skill** | CLAUDE.md 存放常駐規則;skill 存放隨選載入的參考資料 | CLAUDE.md 寫著「遵循我們的 API 慣例」,skill 則包含完整的 API 風格指南 |212| **CLAUDE.md + Skill** | CLAUDE.md 存放常駐規則;skill 存放隨選載入的參考資料 | CLAUDE.md 寫著「遵循我們的 API 慣例」,skill 則包含完整的 API 風格指南 |
227| **Hook + MCP** | Hook 透過 MCP 觸發外部動作 | 編輯後 hook 在 Claude 修改關鍵檔案時傳送 Slack 通知 |213| **Hook + MCP** | Hook 透過 MCP 觸發外部動作 | 編輯後 hook 在 Claude 修改關鍵檔案時傳送 Slack 通知 |
228 214
229<h2 id="understand-context-costs">215## 了解上下文成本
230 了解上下文成本
231</h2>
232 216
233您添加的每個功能都消耗 Claude 的一些上下文。太多可能會填滿您的上下文視窗,但它也可能添加噪聲,使 Claude 效率降低;skills 可能無法正確觸發,或 Claude 可能會失去對您的約定的追蹤。了解這些權衡有助於您構建有效的設置。有關這些功能如何在運行會話中結合的互動式視圖,請參閱[探索上下文視窗](/docs/zh-TW/context-window)。217您添加的每個功能都消耗 Claude 的一些上下文。太多可能會填滿您的上下文視窗,但它也可能添加噪聲,使 Claude 效率降低;skills 可能無法正確觸發,或 Claude 可能會失去對您的約定的追蹤。了解這些權衡有助於您構建有效的設置。有關這些功能如何在運行會話中結合的互動式視圖,請參閱[探索上下文視窗](/docs/zh-TW/context-window)。
234 218
235<h3 id="context-cost-by-feature">219### 按功能的上下文成本
236 按功能的上下文成本
237</h3>
238 220
239每個功能都有不同的載入策略和上下文成本:221每個功能都有不同的載入策略和上下文成本:
240 222
250 232
251\*在 skill 的 frontmatter 中設定 [`disable-model-invocation: true`](/docs/zh-TW/skills#control-who-invokes-a-skill),以將其描述排除在 Claude 的上下文之外。對於您未編寫的 skill,在設定中設定 [`skillOverrides`](/docs/zh-TW/skills#override-skill-visibility-from-settings) 以執行相同操作,而無需編輯其檔案。233\*在 skill 的 frontmatter 中設定 [`disable-model-invocation: true`](/docs/zh-TW/skills#control-who-invokes-a-skill),以將其描述排除在 Claude 的上下文之外。對於您未編寫的 skill,在設定中設定 [`skillOverrides`](/docs/zh-TW/skills#override-skill-visibility-from-settings) 以執行相同操作,而無需編輯其檔案。
252 234
253<h3 id="understand-how-features-load">235### 了解功能如何載入
254 了解功能如何載入
255</h3>
256 236
257每個功能在您的會話中的不同點載入。下面的選項卡說明每個功能何時載入以及什麼進入上下文。237每個功能在您的會話中的不同點載入。下面的選項卡說明每個功能何時載入以及什麼進入上下文。
258 238
259<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/context-loading.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=aab139e750494a237ae2e0c8f9139b0a" className="dark:hidden" alt="上下文載入:CLAUDE.md 在會話開始時載入並保留在每個請求中。MCP 工具名稱在啟動時載入,完整架構延遲到使用。Skills 在啟動時載入描述,在調用時載入完整內容。Subagents 獲得隔離的上下文。Hooks 外部運行。" width="720" height="382" data-path="images/context-loading.svg" />239
240
241**CLAUDE.md**
242
243**何時:** 會話開始
244
245**什麼載入:** 所有 CLAUDE.md 檔案的完整內容(受管理、使用者和專案級別)。
246
247**繼承:** Claude 從您的工作目錄讀取 CLAUDE.md 檔案直到根目錄,並在訪問這些檔案時在子目錄中發現嵌套的檔案。有關詳細資訊,請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。
248
249> [!TIP]
250>
251> 保持 CLAUDE.md 在 200 行以下。將參考資料移動到 skills,它們按需載入。若要取得[已簽入 CLAUDE.md 的修剪建議](/docs/zh-TW/memory#my-claude-md-is-too-large),請執行 `/doctor`。
260 252
261<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/context-loading-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=b274089ef9612d9c760bca9838557626" className="hidden dark:block" alt="上下文載入:CLAUDE.md 在會話開始時載入並保留在每個請求中。MCP 工具名稱在啟動時載入,完整架構延遲到使用。Skills 在啟動時載入描述,在調用時載入完整內容。Subagents 獲得隔離的上下文。Hooks 外部運行。" width="720" height="382" data-path="images/context-loading-dark.svg" />253**Skills**
262 254
263<Tabs>255Skills 是 Claude 工具包中的額外功能。它們可以是參考資料(如 API 風格指南)或可調用的工作流程,您可以使用 `/<name>` 觸發(如 `/deploy`)。Claude Code 附帶[捆綁的 skills](/docs/zh-TW/commands),如 `/code-review`、`/batch` 和 `/debug`,開箱即用。您也可以創建自己的。
264 <Tab title="CLAUDE.md">
265 **何時:** 會話開始
266 256
267 **什麼載入:** 所有 CLAUDE.md 檔案的完整內容(受管理、使用者和專案級別)。257**何時:** 取決於 skill 的配置。預設情況下,描述在會話開始時載入,完整內容在使用時載入。對於僅使用者 skills(`disable-model-invocation: true`),在您調用它們之前不會載入任何內容。
268 258
269 **繼承:** Claude 從您的工作目錄讀取 CLAUDE.md 檔案直到根目錄,並在訪問這些檔案時在子目錄中發現嵌套的檔案。有關詳細資訊,請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。259**什麼載入:** 對於模型可調用的 skills,Claude 在每個請求中看到名稱和描述。當您使用 `/<name>` 調用 skill 或 Claude 自動載入它時,完整內容載入到您的對話中。
270 260
271 <Tip>保持 CLAUDE.md 在 200 行以下。將參考資料移動到 skills,它們按需載入。若要取得[已簽入 CLAUDE.md 的修剪建議](/docs/zh-TW/memory#my-claude-md-is-too-large),請執行 `/doctor`。</Tip>261**Claude 如何選擇 skills:** Claude 將您的任務與 skill 描述相匹配,以決定哪些相關。如果描述模糊或重疊,Claude 可能載入錯誤的 skill 或錯過會有幫助的。要告訴 Claude 使用特定 skill,請使用 `/<name>` 調用它。
272 </Tab>
273 262
274 <Tab title="Skills">263**上下文成本:** 低,直到使用。僅使用者 skills 在調用前成本為零。
275 Skills 是 Claude 工具包中的額外功能。它們可以是參考資料(如 API 風格指南)或可調用的工作流程,您可以使用 `/<name>` 觸發(如 `/deploy`)。Claude Code 附帶[捆綁的 skills](/docs/zh-TW/commands),如 `/code-review`、`/batch` 和 `/debug`,開箱即用。您也可以創建自己的。
276 264
277 **何時:** 取決於 skill 的配置。預設情況下,描述在會話開始時載入,完整內容在使用時載入。對於僅使用者 skills(`disable-model-invocation: true`),在您調用它們之前不會載入任何內容。265**在 subagents 中:** Skills 在 subagents 中的工作方式不同。不是按需載入,subagent 的 `skills` 欄位中列出的 skills 在啟動時完全預載入其上下文。Subagents 仍然可以通過 Skill 工具發現和調用未列出的專案、使用者和 plugin skills。
278 266
279 **什麼載入:** 對於模型可調用的 skills,Claude 在每個請求中看到名稱和描述。當您使用 `/<name>` 調用 skill 或 Claude 自動載入它時,完整內容載入到您的對話中。267> [!TIP]
268>
269> 對具有副作用的 skills 使用 `disable-model-invocation: true`。這節省上下文並確保它們只在您指名時執行。
280 270
281 **Claude 如何選擇 skills:** Claude 將您的任務與 skill 描述相匹配,以決定哪些相關。如果描述模糊或重疊,Claude 可能載入錯誤的 skill 或錯過會有幫助的。要告訴 Claude 使用特定 skill,請使用 `/<name>` 調用它。271**MCP 伺服器**
282 272
283 **上下文成本:** 低,直到使用。僅使用者 skills 在調用前成本為零。273**何時:** 工作階段開始。
284 274
285 **在 subagents 中:** Skills 在 subagents 中的工作方式不同。不是按需載入,subagent 的 `skills` 欄位中列出的 skills 在啟動時完全預載入其上下文。Subagents 仍然可以通過 Skill 工具發現和調用未列出的專案、使用者和 plugin skills。275**什麼載入:** 來自連接伺服器的工具名稱和伺服器指令。完整 JSON 架構保持延遲,直到 Claude 需要特定工具。
286 276
287 <Tip>對具有副作用的 skills 使用 `disable-model-invocation: true`。這節省上下文並確保它們只在您指名時執行。</Tip>277**上下文成本:** [工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)預設啟用,因此閒置 MCP 工具消耗最少上下文。
288 </Tab>
289 278
290 <Tab title="MCP 伺服器">279> [!TIP]
291 **何時:** 工作階段開始。280>
281> 執行 `/mcp` 以查看每個伺服器的連接狀態。執行 `/context all` 以查看每個已載入 MCP 工具使用多少令牌。Claude Code [自動重新連接到遠程伺服器](/docs/zh-TW/mcp#automatic-reconnection)(如果它們斷開連接),您可以斷開您未主動使用的伺服器。
292 282
293 **什麼載入:** 來自連接伺服器的工具名稱和伺服器指令。完整 JSON 架構保持延遲,直到 Claude 需要特定工具。283**Code intelligence**
294 284
295 **上下文成本:** [工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)預設啟用,因此閒置 MCP 工具消耗最少上下文。285**何時:** 檔案編輯後,以及當 Claude 導航程式碼時按需。
296 286
297 <Tip>執行 `/mcp` 以查看每個伺服器的連接狀態。執行 `/context all` 以查看每個已載入 MCP 工具使用多少令牌。Claude Code [自動重新連接到遠程伺服器](/docs/zh-TW/mcp#automatic-reconnection)(如果它們斷開連接),您可以斷開您未主動使用的伺服器。</Tip>287**什麼載入:** 每次檔案編輯後的類型錯誤和警告。當 Claude 查詢符號時的定義、參考和類型資訊。
298 </Tab>
299 288
300 <Tab title="Code intelligence">289**上下文成本:** 低。符號查詢通常會取代廣泛的檔案讀取,因此淨上下文使用可能會下降。
301 **何時:** 檔案編輯後,以及當 Claude 導航程式碼時按需。
302 290
303 **什麼載入:** 每次檔案編輯後的類型錯誤和警告。當 Claude 查詢符號時的定義、參考和類型資訊。291> [!TIP]
292>
293> LSP 工具在您為您的語言安裝[程式碼智能 plugin](/docs/zh-TW/plugins/code-intelligence)之前處於非活動狀態。
304 294
305 **上下文成本:** 低。符號查詢通常會取代廣泛的檔案讀取,因此淨上下文使用可能會下降。295**Subagents**
306 296
307 <Tip>LSP 工具在您為您的語言安裝[程式碼智能 plugin](/docs/zh-TW/plugins/code-intelligence)之前處於非活動狀態。</Tip>297**何時:** 按需,當您或 Claude 為任務生成一個時。
308 </Tab>
309 298
310 <Tab title="Subagents">299**什麼載入:** 新鮮、隔離的上下文,包含:
311 **何時:** 按需,當您或 Claude 為任務生成一個時。
312 300
313 **什麼載入:** 新鮮、隔離的上下文,包含:301* agent 自身的系統提示詞,而不是 Claude Code 系統提示詞
302* agent `skills:` 欄位中列出的 skills 的完整內容
303* CLAUDE.md 和 git 狀態。內建的 Explore 和 Plan agent [兩者皆不載入](/docs/zh-TW/sub-agents#what-loads-at-startup),而定義中設定了 [`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) 的 agent 啟動時不包含使用者、專案和本地 CLAUDE.md 檔案。
304* 主 agent 在提示詞中傳遞的任何上下文
314 305
315 * agent 自身的系統提示詞,而不是 Claude Code 系統提示詞306對於[分支](/docs/zh-TW/sub-agents#fork-the-current-conversation),Claude Code 載入父對話到目前為止、系統提示和工具。
316 * agent `skills:` 欄位中列出的 skills 的完整內容
317 * CLAUDE.md 和 git 狀態。內建的 Explore 和 Plan agent [兩者皆不載入](/docs/zh-TW/sub-agents#what-loads-at-startup),而定義中設定了 [`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) 的 agent 啟動時不包含使用者、專案和本地 CLAUDE.md 檔案。
318 * 主 agent 在提示詞中傳遞的任何上下文
319 307
320 對於[分支](/docs/zh-TW/sub-agents#fork-the-current-conversation),Claude Code 載入父對話到目前為止、系統提示和工具。308**上下文成本:** 與主會話隔離。
321 309
322 **上下文成本:** 與主會話隔離。310> [!TIP]
311>
312> 對不需要您完整對話上下文的工作使用 subagents。它們的隔離防止膨脹您的主會話。
323 313
324 <Tip>對不需要您完整對話上下文的工作使用 subagents。它們的隔離防止膨脹您的主會話。</Tip>314**Hooks**
325 </Tab>
326 315
327 <Tab title="Hooks">316**何時:** 觸發時。Claude Code 在特定生命週期事件(如工具執行、會話邊界、提示提交、權限請求和壓縮)時執行 hooks。有關完整清單,請參閱 [Hooks](/docs/zh-TW/hooks)。
328 **何時:** 觸發時。Claude Code 在特定生命週期事件(如工具執行、會話邊界、提示提交、權限請求和壓縮)時執行 hooks。有關完整清單,請參閱 [Hooks](/docs/zh-TW/hooks)。
329 317
330 **什麼載入:** 預設情況下無。Hooks 在主對話外執行。318**什麼載入:** 預設情況下無。Hooks 在主對話外執行。
331 319
332 **上下文成本:** 零,除非 hook 返回添加為訊息到您的對話的輸出。320**上下文成本:** 零,除非 hook 返回添加為訊息到您的對話的輸出。
333 321
334 <Tip>Hooks 非常適合不需要影響 Claude 上下文的副作用(linting、logging)。</Tip>322> [!TIP]
335 </Tab>323>
336</Tabs>324> Hooks 非常適合不需要影響 Claude 上下文的副作用(linting、logging)。
337 325
338<h2 id="learn-more">326## 了解更多
339 了解更多
340</h2>
341 327
342每個功能都有自己的指南,包含設置指令、範例和配置選項。328每個功能都有自己的指南,包含設置指令、範例和配置選項。
343 329
344<CardGroup cols={2}>330> **[CLAUDE.md](/docs/zh-TW/memory)**
345 <Card title="CLAUDE.md" icon="file-lines" href="/docs/zh-TW/memory">331>
346 存儲專案上下文、約定和指令332> 存儲專案上下文、約定和指令
347 </Card>
348 333
349 <Card title="Skills" icon="brain" href="/docs/zh-TW/skills">334> **[Skills](/docs/zh-TW/skills)**
350 給予 Claude 領域專業知識和可重複使用的工作流程335>
351 </Card>336> 給予 Claude 領域專業知識和可重複使用的工作流程
352 337
353 <Card title="Subagents" icon="users" href="/docs/zh-TW/sub-agents">338> **[Subagents](/docs/zh-TW/sub-agents)**
354 將工作卸載到隔離的上下文339>
355 </Card>340> 將工作卸載到隔離的上下文
356 341
357 <Card title="Dynamic workflows" icon="network" href="/docs/zh-TW/workflows">342> **[Dynamic workflows](/docs/zh-TW/workflows)**
358 從一個指令碼執行許多 subagents343>
359 </Card>344> 從一個指令碼執行許多 subagents
360 345
361 <Card title="Cross-session messaging" icon="terminal" href="/docs/zh-TW/cross-session-messaging">346> **[Cross-session messaging](/docs/zh-TW/cross-session-messaging)**
362 讓 Claude 向您的其他工作階段傳送訊息347>
363 </Card>348> 讓 Claude 向您的其他工作階段傳送訊息
364 349
365 <Card title="MCP" icon="plug" href="/docs/zh-TW/mcp">350> **[MCP](/docs/zh-TW/mcp)**
366 將 Claude 連接到外部服務351>
367 </Card>352> 將 Claude 連接到外部服務
368 353
369 <Card title="Hooks" icon="bolt" href="/docs/zh-TW/hooks-guide">354> **[Hooks](/docs/zh-TW/hooks-guide)**
370 使用 hooks 自動化動作355>
371 </Card>356> 使用 hooks 自動化動作
372 357
373 <Card title="Plugins" icon="puzzle-piece" href="/docs/zh-TW/plugins/overview">358> **[Plugins](/docs/zh-TW/plugins/overview)**
374 捆綁和共享功能集359>
375 </Card>360> 捆綁和共享功能集
376 361
377 <Card title="Marketplaces" icon="store" href="/docs/zh-TW/plugins/create-marketplace">362> **[Marketplaces](/docs/zh-TW/plugins/create-marketplace)**
378 託管和分發 plugin 集合363>
379 </Card>364> 託管和分發 plugin 集合
380</CardGroup>