SpyBara
Go Premium

Documentation 2026-09-21 22:59 UTC to 2026-09-22 23:59 UTC

78 files changed +2,163 −1,466. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

admin-setup.md +1 −1

Details

167 167 

168* [快速入門](/docs/zh-TW/quickstart):從安裝到使用專案的首次會話逐步說明168* [快速入門](/docs/zh-TW/quickstart):從安裝到使用專案的首次會話逐步說明

169* [常見工作流程](/docs/zh-TW/common-workflows):日常任務的模式,例如程式碼審查、重構和除錯169* [常見工作流程](/docs/zh-TW/common-workflows):日常任務的模式,例如程式碼審查、重構和除錯

170* [Claude 101](https://anthropic.skilljar.com/claude-101) 和 [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action):自進度 Anthropic Academy 課程170* [Claude Code 101](https://academy.claude.com/courses/claude-code-101) 和 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action):[Claude Academy](https://academy.claude.com/) 上的免費自進度課程

171 171 

172對於登入問題,請將開發人員指向 [驗證疑難排解](/docs/zh-TW/troubleshoot-install#login-and-authentication)。最常見的修復是:172對於登入問題,請將開發人員指向 [驗證疑難排解](/docs/zh-TW/troubleshoot-install#login-and-authentication)。最常見的修復是:

173 173 

advisor.md +8 −8

Details

56* 執行帶有模型的 `/advisor`,例如 `/advisor opus`,以設定它。56* 執行帶有模型的 `/advisor`,例如 `/advisor opus`,以設定它。

57* 執行 `/advisor off` 以關閉它。57* 執行 `/advisor off` 以關閉它。

58 58 

59Claude Code 不會叫用您組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除的已儲存顧問。若要使用顧問,請使用 `/advisor` 選擇允許的模型。Claude Code 仍會儲存您目前主要模型不支援的顧問。該顧問會在您使用 [`/model`](/docs/zh-TW/model-config#setting-your-model) 切換到[相容的主要模型](#choose-an-advisor-model)後啟動。59Claude Code 不會叫用您組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除的已儲存顧問。若要使用顧問,請使用 `/advisor` 選擇允許的模型。Claude Code 仍會儲存您目前主要模型不支援的顧問。該顧問會在您使用 [`/model`](/docs/zh-TW/model-config#setting-your-model) 切換到[相容的主要模型](#choose-an-advisor-model)後啟動。如果 API 已在目前對話中拒絕了已儲存的顧問,它會保持關閉狀態,直到 `/clear` 或 `/compact`,即使在您切換模型之後也是如此。

60 60 

61在某些方案中,使用 Fable 作為顧問還需要您一次性[同意將 Fable 使用量計費到使用額度](/docs/zh-TW/model-config#fable-and-usage-credits)。如需了解 `/advisor fable` 在您給予同意之前會執行什麼操作,請參閱 [Fable 顧問和使用額度](#fable-advisor-and-usage-credits)。61在某些方案中,使用 Fable 作為顧問還需要您一次性[同意將 Fable 使用量計費到使用額度](/docs/zh-TW/model-config#fable-and-usage-credits)。如需了解 `/advisor fable` 在您給予同意之前會執行什麼操作,請參閱 [Fable 顧問和使用額度](#fable-advisor-and-usage-credits)。

62 62 


98顧問的能力必須至少與主要模型相同。每個主要模型接受的顧問為:98顧問的能力必須至少與主要模型相同。每個主要模型接受的顧問為:

99 99 

100| 主要模型 | 接受的顧問 | 備註 |100| 主要模型 | 接受的顧問 | 備註 |

101| ------------------- | ----------------------------- | ----------------------------------------------------------------- |101| ------------------- | ----------------------------- | ------------------------------------------------------- |

102| Haiku 4.5 | Fable、Opus、Sonnet | Haiku 可以呼叫顧問但不能充當顧問 |102| Haiku 4.5 | Fable、Opus、Sonnet | Haiku 可以呼叫顧問但不能充當顧問 |

103| Sonnet 4.6 | Fable、Opus、Sonnet | |103| Sonnet 4.6 | Fable、Opus、Sonnet | |

104| Sonnet 5 | Fable、Opus 4.7 或更新版本、Sonnet 5 | Sonnet 4.6 顧問會被拒絕,使用 Opus 4.6 顧問的請求會因 API 錯誤而失敗 |104| Sonnet 5 | Fable、Opus 4.7 或更新版本、Sonnet 5 | Sonnet 4.6 顧問會被拒絕,API 會拒絕 Opus 4.6 顧問 |

105| Opus 4.6 | Fable、Opus、Sonnet 5 | Sonnet 4.6 顧問會被拒絕 |105| Opus 4.6 | Fable、Opus、Sonnet 5 | Sonnet 4.6 顧問會被拒絕 |

106| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕 |106| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕 |

107| Opus 5 | Fable、Opus 5 | Opus 4.6 或 Sonnet 顧問會被拒絕,使用 Opus 4.7 或 Opus 4.8 顧問的請求會因 API 錯誤而失敗 |107| Opus 5.5 或 Opus 5 | Fable 和 Opus 5 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕,API 會拒絕 Opus 4.7 或 Opus 4.8 顧問 |

108| Fable 5 | Fable 5.1 或 Fable 5 | Opus 或 Sonnet 顧問會被拒絕 |108| Fable 5 | Fable 5.1 或 Fable 5 | Opus 或 Sonnet 顧問會被拒絕 |

109| Fable 5.1 | Fable 5.1 | Opus 或 Sonnet 顧問會被拒絕,使用 Fable 5 顧問的請求會因 API 錯誤而失敗 |109| Fable 5.1 | Fable 5.1 | Opus 或 Sonnet 顧問會被拒絕,API 會拒絕 Fable 5 顧問 |

110 110 

111Fable 5.1 需要 Claude Code v2.1.257 或更新版本。兩個 Fable 模型都需要 [Fable 存取權](/docs/zh-TW/model-config#work-with-fable)。111Fable 5.1 需要 Claude Code v2.1.257 或更新版本。兩個 Fable 模型都需要 [Fable 存取權](/docs/zh-TW/model-config#work-with-fable)。

112 112 

113將顧問設定為 `fable`、`opus` 或 `sonnet`。這些別名解析為 Claude Code 為每個模型系列內建的預設版本,會隨著新的 Claude Code 版本發佈而更新。您也可以傳遞完整的模型 ID,例如 `claude-opus-5`。113將顧問設定為 `fable`、`opus` 或 `sonnet`。這些別名解析為 Claude Code 為每個模型系列內建的預設版本,會隨著新的 Claude Code 版本發佈而更新。您也可以傳遞完整的模型 ID,例如 `claude-opus-5-5`。

114 114 

115子代理繼承已設定的顧問,並針對其自身模型應用相同的配對檢查。115子代理繼承已設定的顧問,並針對其自身模型應用相同的配對檢查。

116 116 

117Claude Code 在傳送請求前驗證配對,API 也會再次驗證:117Claude Code 在傳送請求前驗證配對,API 也會再次驗證:

118 118 

119* 對於表格中列為被拒絕的顧問,Claude Code 不會將其附加到主要模型的請求。`/advisor` 命令輸出和通知會顯示此情況。其自身模型滿足配對的子代理仍可使用顧問。119* 對於表格中列為被拒絕的顧問,Claude Code 不會將其附加到主要模型的請求。`/advisor` 命令輸出和通知會顯示此情況。其自身模型滿足配對的子代理仍可使用顧問。

120* 對於表格中列為因 API 錯誤而失敗的顧問,Claude Code 會附加它,但 API 會拒絕它。每個請求都會失敗,並顯示 `'<advisor model>' cannot be used as an advisor when the request model is '<main model>'`,直到您使用 `/advisor` 變更顧問或將其關閉。120* 對於表格中列為因 API 拒絕的顧問,Claude Code 會附加它,API 會拒絕它。Claude Code 隨後會在沒有顧問的情況下重新傳送該請求,其餘對話會在沒有顧問的情況下執行,因此您看不到錯誤且不會獲得顧問呼叫。使用 `/advisor` 選擇接受的顧問;變更會在 `/clear` 或 `/compact` 之後以及新工作階段中生效。

121* 如果主要模型或顧問是 Claude Code 無法識別的模型,顧問不會附加。121* 如果主要模型或顧問是 Claude Code 無法識別的模型,顧問不會附加。

122 122 

123<h3 id="fable-advisor-and-usage-credits">123<h3 id="fable-advisor-and-usage-credits">


195 195 

196顧問工具需要以下所有條件:196顧問工具需要以下所有條件:

197 197 

198* **僅限 Anthropic API**:顧問是伺服器執行的工具。它在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。透過配置有 `ANTHROPIC_BASE_URL` 的 [LLM 閘道](/docs/zh-TW/llm-gateway),可用性取決於閘道是否將請求完整轉發到 Anthropic API。198* **僅限 Anthropic API**:顧問是伺服器執行的工具。它在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。透過配置有 `ANTHROPIC_BASE_URL` 的 [LLM 閘道](/docs/zh-TW/llm-gateway),可用性取決於閘道是否將請求完整轉發到 Anthropic API。如果閘道或其上游無法識別顧問工具,請參閱[自動重試和錯誤轉發](/docs/zh-TW/llm-gateway-protocol#automatic-retry-and-error-forwarding)以了解 Claude Code 如何回應。

199* **支援的主要模型**:Fable、Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或 Haiku 4.5。請參閱[選擇顧問模型](#choose-an-advisor-model)以了解每個顧問接受的模型。199* **支援的主要模型**:Fable、Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或 Haiku 4.5。請參閱[選擇顧問模型](#choose-an-advisor-model)以了解每個顧問接受的模型。

200* **功能旗標擷取**:Claude Code 透過從 Anthropic 擷取的功能旗標來開啟顧問。在設定了關閉旗標擷取的變數(例如 `DISABLE_TELEMETRY`)的工作階段中,顧問保持關閉。請參閱[需要功能旗標擷取的功能](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)。200* **功能旗標擷取**:Claude Code 透過從 Anthropic 擷取的功能旗標來開啟顧問。在設定了關閉旗標擷取的變數(例如 `DISABLE_TELEMETRY`)的工作階段中,顧問保持關閉。請參閱[需要功能旗標擷取的功能](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)。

201 201 

Details

189TypeScript 也有 `applyFlagSettings()` 和 `updateSettings()`:189TypeScript 也有 `applyFlagSettings()` 和 `updateSettings()`:

190 190 

191* **`applyFlagSettings()`**:在執行時應用設定,如 `await session.applyFlagSettings({ effortLevel: "high" })`。該方法採用設定檔鍵而不是選項欄位,因此請檢查 [`applyFlagSettings()` 參考](/docs/zh-TW/agent-sdk/typescript#applyflagsettings)以了解架構以及哪些鍵在工作階段中途生效。191* **`applyFlagSettings()`**:在執行時應用設定,如 `await session.applyFlagSettings({ effortLevel: "high" })`。該方法採用設定檔鍵而不是選項欄位,因此請檢查 [`applyFlagSettings()` 參考](/docs/zh-TW/agent-sdk/typescript#applyflagsettings)以了解架構以及哪些鍵在工作階段中途生效。

192* **`updateSettings()`**:將允許清單中的一組鍵寫入專案的本機設定檔,如 `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`。寫入的鍵在工作階段的下一個請求上生效,並為載入 `local` 設定的後續工作階段持續。該方法在[方法表](/docs/zh-TW/agent-sdk/typescript#methods)中的行命名允許清單鍵和版本下限。192* **`updateSettings()`**:將允許清單中的一個鍵寫入設定檔。[`updateSettings()` 參考](/docs/zh-TW/agent-sdk/typescript#updatesettings)命名每個來源接受的鍵和版本下限。

193 * 傳遞 `"localSettings"` 以寫入專案的本機設定檔,如 `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`。寫入的鍵在工作階段的下一個請求上生效,並為載入 `local` 設定的後續工作階段持續。

194 * 傳遞 `"userSettings"` 以寫入 `effortLevel`,這是該來源接受的唯一鍵。Claude Code 將其儲存為工作階段目前模型的預設努力等級,執行中工作階段的努力不會改變。

193 195 

194下面的範例執行一個兩回合工作階段,在回合之間變更設定,並列印回答每個回合的模型。在 TypeScript 中,提示流保持第二個訊息,直到設定器執行,第二個回合在新模型上執行。196下面的範例執行一個兩回合工作階段,在回合之間變更設定,並列印回答每個回合的模型。在 TypeScript 中,提示流保持第二個訊息,直到設定器執行,第二個回合在新模型上執行。

195 197 

Details

37 37 

38* **`query()` 呼叫:** SDK 的 `query()` 函式的一次調用。單一呼叫可能涉及多個步驟:Claude 回應、使用工具、取得結果,然後再次回應。每個呼叫在結尾產生一個 [`result`](/docs/zh-TW/agent-sdk/typescript#sdkresultmessage) 訊息,除了在[串流輸入模式](/docs/zh-TW/agent-sdk/streaming-vs-single-mode)中,其中一個 `query()` 呼叫會進行多個使用者回合,每個回合會發出自己的 `result` 訊息。38* **`query()` 呼叫:** SDK 的 `query()` 函式的一次調用。單一呼叫可能涉及多個步驟:Claude 回應、使用工具、取得結果,然後再次回應。每個呼叫在結尾產生一個 [`result`](/docs/zh-TW/agent-sdk/typescript#sdkresultmessage) 訊息,除了在[串流輸入模式](/docs/zh-TW/agent-sdk/streaming-vs-single-mode)中,其中一個 `query()` 呼叫會進行多個使用者回合,每個回合會發出自己的 `result` 訊息。

39* **步驟:** `query()` 呼叫內的單一請求/回應週期。每個步驟產生具有權杖使用量的助手訊息。39* **步驟:** `query()` 呼叫內的單一請求/回應週期。每個步驟產生具有權杖使用量的助手訊息。

40* **工作階段:** 由工作階段 ID 連結的一系列 `query()` 呼叫(使用 `resume` 選項)。工作階段內的每個 `query()` 呼叫獨立報告其自己的成本。40* **工作階段:** 由工作階段 ID 連結的一系列 `query()` 呼叫(使用 `resume` 選項)。已恢復呼叫的結果會報告工作階段的整體支出,而不只是該呼叫自己的支出。請參閱[跨多個呼叫累積成本](#accumulate-costs-across-multiple-calls)以瞭解總計如何結轉。

41 41 

42下圖顯示來自單一 `query()` 呼叫的訊息串流,在每個步驟報告權杖使用量,以及結尾的累積估計:42下圖顯示來自單一 `query()` 呼叫的訊息串流,在每個步驟報告權杖使用量,以及結尾的累積估計:

43 43 


51 </Step>51 </Step>

52 52 

53 <Step title="結果訊息提供累積估計">53 <Step title="結果訊息提供累積估計">

54 當 `query()` 呼叫完成時,SDK 會發出一個結果訊息,其中包含 `total_cost_usd` 和累積 `usage`,在 TypeScript 中輸入為 [`SDKResultMessage`](/docs/zh-TW/agent-sdk/typescript#sdkresultmessage),在 Python 中輸入為 [`ResultMessage`](/docs/zh-TW/agent-sdk/python#resultmessage)。如果您進行多個 `query()` 呼叫,例如在多回合工作階段中,每個結果只反映該個別呼叫的成本。如果您只需要估計的總計,您可以忽略逐步使用量,並讀取此單一值。54 當 `query()` 呼叫完成時,SDK 會發出一個結果訊息,其中包含 `total_cost_usd` 和累積 `usage`,在 TypeScript 中輸入為 [`SDKResultMessage`](/docs/zh-TW/agent-sdk/typescript#sdkresultmessage),在 Python 中輸入為 [`ResultMessage`](/docs/zh-TW/agent-sdk/python#resultmessage)。如果您只需要估計的總計,您可以忽略逐步使用量,並讀取此單一值。

55 

56 如果您進行多個獨立的 `query()` 呼叫,每個結果只反映該個別呼叫的成本。恢復工作階段的呼叫也會計算工作階段的較早支出。

55 57 

56 在串流輸入模式中,每個回合會發出自己的結果訊息。請參閱[在串流輸入模式中追蹤成本](#track-costs-in-streaming-input-mode)以瞭解如何在該模式中讀取呼叫總計。58 在串流輸入模式中,每個回合會發出自己的結果訊息。請參閱[在串流輸入模式中追蹤成本](#track-costs-in-streaming-input-mode)以瞭解如何在該模式中讀取呼叫總計。

57 </Step>59 </Step>


64在[串流輸入模式](/docs/zh-TW/agent-sdk/streaming-vs-single-mode)中,一個 `query()` 呼叫會進行多個使用者回合,每個回合都會發出自己的結果訊息。結果欄位的範圍不同:66在[串流輸入模式](/docs/zh-TW/agent-sdk/streaming-vs-single-mode)中,一個 `query()` 呼叫會進行多個使用者回合,每個回合都會發出自己的結果訊息。結果欄位的範圍不同:

65 67 

66* **`usage`**:僅涵蓋該回合,且在其中僅涵蓋主代理迴圈,不包括它執行的任何子代理。68* **`usage`**:僅涵蓋該回合,且在其中僅涵蓋主代理迴圈,不包括它執行的任何子代理。

67* **`total_cost_usd` 和 `modelUsage`,或 Python 中的 `model_usage`**:攜帶迄今為止整個呼叫的執行總計。69* **`total_cost_usd` 和 `modelUsage`,或 Python 中的 `model_usage`**:攜帶迄今為止整個呼叫的執行總計,加上呼叫恢復工作階段時復原的任何支出。

68 70 

69在您的應用程式從不傳送 `/clear`、`/reset` 或 `/new` 的呼叫中,讀取最新結果以取得呼叫總計,而不是跨結果求和。71在您的應用程式從不傳送 `/clear`、`/reset` 或 `/new` 的呼叫中,讀取最新結果以取得呼叫總計,而不是跨結果求和。

70 72 


78 80 

79在 TypeScript 中,SDK 也會在每次重設時發出 [`SDKConversationResetMessage`](/docs/zh-TW/agent-sdk/typescript#sdkconversationresetmessage),因此您可以從串流中偵測重設。在 Python 中,SDK 同樣會發出 `ConversationResetMessage`。在 Python SDK v0.2.137 之前,Python 迭代器會捨棄該訊息,因此在這些版本上,請從您的應用程式傳送的 `/clear` 回合自行計數重設。81在 TypeScript 中,SDK 也會在每次重設時發出 [`SDKConversationResetMessage`](/docs/zh-TW/agent-sdk/typescript#sdkconversationresetmessage),因此您可以從串流中偵測重設。在 Python 中,SDK 同樣會發出 `ConversationResetMessage`。在 Python SDK v0.2.137 之前,Python 迭代器會捨棄該訊息,因此在這些版本上,請從您的應用程式傳送的 `/clear` 回合自行計數重設。

80 82 

81`maxBudgetUsd`(TypeScript)或 Python 中的 `max_budget_usd` 與相同的執行總計進行比較,因此 `/clear` 也會重新開始預算。83`maxBudgetUsd`(TypeScript)或 `max_budget_usd`(Python)僅計算呼叫自身的支出:從恢復的工作階段復原的總計不計入其中,`/clear` 會重新開始預算。

82 84 

83<h2 id="get-the-total-cost-of-a-query">85<h2 id="get-the-total-cost-of-a-query">

84 取得查詢的總成本86 取得查詢的總成本

85</h2>87</h2>

86 88 

87結果訊息在 TypeScript 中被型別化為 [`SDKResultMessage`](/docs/zh-TW/agent-sdk/typescript#sdkresultmessage),在 Python 中被型別化為 [`ResultMessage`](/docs/zh-TW/agent-sdk/python#resultmessage),標記了 `query()` 呼叫的代理程式迴圈結束。它包含 `total_cost_usd`,即該呼叫中所有步驟的累積估計成本。在 Python 中,該欄位被型別化為選用的,因此在讀取之前請檢查它不是 `None`。成功和錯誤結果都會帶有它,儘管[工作階段當機](#recover-totals-after-a-session-crash)的最終結果可能會帶有零值。89結果訊息在 TypeScript 中被型別化為 [`SDKResultMessage`](/docs/zh-TW/agent-sdk/typescript#sdkresultmessage),在 Python 中被型別化為 [`ResultMessage`](/docs/zh-TW/agent-sdk/python#resultmessage),標記了 `query()` 呼叫的代理程式迴圈結束。它包含 `total_cost_usd`,即該呼叫中所有步驟的累積估計成本。恢復工作階段的呼叫也會計算工作階段的早期支出。讀取該值時適用兩項注意事項:

90 

91* 在 Python 中,該欄位被型別化為選用的,因此在讀取之前請檢查它不是 `None`。

92* 成功和錯誤結果都會帶有它,儘管[工作階段當機](#recover-totals-after-a-session-crash)的最終結果可能會帶有零值。

88 93 

89如果您使用工作階段進行多個 `query()` 呼叫,每個結果只反映該個別呼叫的成本。在串流輸入模式中,按照[在串流輸入模式中追蹤成本](#track-costs-in-streaming-input-mode)中的說明讀取呼叫總計。94在串流輸入模式中,按照[在串流輸入模式中追蹤成本](#track-costs-in-streaming-input-mode)中的說明讀取呼叫總計。

90 95 

91當代理程式產生[子代理程式](/docs/zh-TW/agent-sdk/subagents)時,三個結果層級欄位在計算內容上有所不同。使用 `modelUsage`,或在 Python 中使用 `model_usage`,進行整個樹狀結構的權杖計算;`usage` 欄位一旦發生巢狀就會低估。96當代理程式產生[子代理程式](/docs/zh-TW/agent-sdk/subagents)時,三個結果層級欄位在計算內容上有所不同。使用 `modelUsage`,或在 Python 中使用 `model_usage`,進行整個樹狀結構的權杖計算;`usage` 欄位一旦發生巢狀就會低估。

92 97 


232 累積多次呼叫的成本237 累積多次呼叫的成本

233</h2>238</h2>

234 239 

235每個 `query()` 呼叫都會傳回自己的 `total_cost_usd`。SDK 不提供工作階段層級的總計,因此如果您的應用程式進行多個 `query()` 呼叫,例如在多輪對話或跨不同使用者的情況下,您需要自行累積總計。在串流輸入模式中,請如 [在串流輸入模式中追蹤成本](#track-costs-in-streaming-input-mode) 中所述讀取每個呼叫的總計。對於以當機結束的呼叫,請參閱 [在工作階段當機後復原總計](#recover-totals-after-a-session-crash)。240每個 `query()` 呼叫都會在其結果上傳回 `total_cost_usd`。您如何合併這些值取決於呼叫是否共享工作階段:

241 

242* **獨立呼叫,沒有 `resume` 或 `continue` 選項**:每個結果只涵蓋其自己的呼叫,因此請自行加總,如下面的範例所示。

243* **恢復相同工作階段的呼叫**:Claude Code 會在程序正常退出時將工作階段的總計儲存到其[文字記錄](/docs/zh-TW/sessions#where-transcripts-are-stored),並在稍後的呼叫恢復或分叉工作階段時復原它們。每個結果已經包含工作階段的早期支出。讀取工作階段的最新結果以取得工作階段總計;加總結果會重複計算已復原的支出。在 v2.1.277 之前,您透過 SDK 或 `claude -p` 恢復的工作階段會將其總計從零開始,因此每個呼叫的結果只涵蓋該呼叫。

244 

245在串流輸入模式中,如 [在串流輸入模式中追蹤成本](#track-costs-in-streaming-input-mode) 中所述讀取每個呼叫的總計。對於以當機結束的呼叫,請參閱 [在工作階段當機後復原總計](#recover-totals-after-a-session-crash)。

236 246 

237以下範例依序執行兩個 `query()` 呼叫,將每個呼叫的 `total_cost_usd` 加入執行中的總計,並列印每次呼叫和合併的成本:247以下範例依序執行兩個 `query()` 呼叫,將每個呼叫的 `total_cost_usd` 加入執行中的總計,並列印每次呼叫和合併的成本:

238 248 

Details

10 10 

11本頁涵蓋在您自己的基礎設施上進行自我託管。如需可部署的 Dockerfile 和 Kubernetes 清單,請參閱[託管食譜](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting)。11本頁涵蓋在您自己的基礎設施上進行自我託管。如需可部署的 Dockerfile 和 Kubernetes 清單,請參閱[託管食譜](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting)。

12 12 

13如果您不需要基礎設施控制、自訂隔離或您自己的資料平面,請改為考慮[受管代理](https://platform.claude.com/docs/en/managed-agents/overview):一個託管的 REST API,其中 Anthropic 執行代理和沙箱,因此您的應用程式發送事件並流回結果,無需操作任何託管基礎設施。13如果您不需要在自己的基礎設施上執行代理迴圈本身,請改為考慮[受管代理](https://platform.claude.com/docs/en/managed-agents/overview)。Anthropic 託管代理迴圈,您的應用程式透過用戶端 SDK 或 REST API 發送事件並接收串流結果。工具執行在 Anthropic 管理的雲端沙箱或您自己基礎設施上的[自我託管沙箱](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes)中執行。

14 14 

15<h2 id="the-subprocess-model">15<h2 id="the-subprocess-model">

16 子程序模型16 子程序模型

Details

387* 如果您多次包含標記,第一個是分割,SDK 移除其他的。387* 如果您多次包含標記,第一個是分割,SDK 移除其他的。

388* 如果您省略標記,SDK 將所有字串連接到一個區塊中,與傳遞一個字串相同。388* 如果您省略標記,SDK 將所有字串連接到一個區塊中,與傳遞一個字串相同。

389 389 

390使用 CLI 的 [`--system-prompt` 或 `--system-prompt-file` 旗標](/docs/zh-TW/cli-reference#system-prompt-flags),提示詞是一個字串,因此沒有陣列來攜帶標記。在靜態和每個請求部分之間改為包含僅包含 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 的一行。Claude Code 將提示詞在第一個這樣的行分割成相同的兩個區塊並移除該行。需要 Claude Code v2.1.275 或更新版本。

391 

392在 SDK 中,優先使用陣列形式,它不帶標記行攜帶邊界。

393 

390<h3 id="change-the-prompt-of-an-existing-session">394<h3 id="change-the-prompt-of-an-existing-session">

391 變更現有會話的提示詞395 變更現有會話的提示詞

392</h3>396</h3>

Details

12 將 Agent SDK 與其他 Claude 工具進行比較12 將 Agent SDK 與其他 Claude 工具進行比較

13</h2>13</h2>

14 14 

15Agent SDK、CLI、Client SDK 和 Managed Agents 各自適合不同的需求。使用下表找到符合您正在構建的工具。15Agent SDK、CLI、Client SDK 和 Managed Agents 在誰執行代理、內建功能以及如何存取方面有所不同。找到符合您想要構建和執行方式的列。

16 16 

17| 如果您正在... | 使用 | 原因 |17| 您想要 | 使用 | 您會獲得 |

18| -------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------ |18| ------------------------------------------------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

19| 構建代理而不自己實現工具迴圈 | **Agent SDK** | 一個在您自己的程序中運行代理迴圈的庫,支援 Python 或 TypeScript。 |19| 在您自己操作的程序中,將 Claude Code 的代理嵌入到您自己的 Python 或 TypeScript 應用程式中 | **Agent SDK** | 一個執行 Claude Code 二進位檔的庫,具有 Claude Code 的[功能](#capabilities),例如內建工具、權限、工作階段和 hooks。 |

20| 進行互動式開發或從終端運行一次性任務 | [**Claude Code CLI**](/docs/zh-TW/overview) | 終端介面,為日常互動使用而構建。 |20| 進行互動式開發或從終端執行一次性任務 | [**Claude Code CLI**](/docs/zh-TW/overview) | 終端介面,為日常互動使用而構建。 |

21| 直接呼叫 API 並自己實現工具迴圈 | [**Client SDK**](https://platform.claude.com/docs/en/api/client-sdks) | 直接存取 Anthropic API 而不是 Claude Code。您自己實現工具迴圈。 |21| 直接從您自己的程式碼呼叫 Claude API | [**Client SDK**](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) | 從任何 Client SDK 語言直接存取 Claude API。您自己撰寫工具迴圈,或讓 Client SDK 的測試版[工具執行器](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-runner)驅動它。 |

22| 運行長期運行或非同步代理,無需管理您自己的沙箱或工作階段基礎設施 | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | 託管 REST API,是 Agent SDK 的獨立產品。Anthropic 運行代理和沙箱。 |22| 讓 Anthropic 託管代理,透過 Claude API 進行設定 | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | 一個託管代理工具,執行代理迴圈,在 Anthropic 管理的雲端沙箱或您自己基礎設施上的[自託管沙箱](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes)中具有工作階段。從[您語言的 SDK](https://platform.claude.com/docs/en/managed-agents/quickstart#install-the-sdk)、`ant` CLI 或 REST API 使用它。 |

23 23 

24SDK 僅作為 Python 和 TypeScript 的庫提供。若要從另一種語言驅動相同的代理迴圈,請[以子程序的形式運行 CLI](/docs/zh-TW/headless),使用 `-p` 旗標和 `--output-format json`。24若要從 Python 或 TypeScript 以外的語言驅動相同的代理迴圈,請[以子程序的形式執行 CLI](/docs/zh-TW/headless),使用 `-p` 旗標和 `--output-format json`。

25 25 

26<h2 id="capabilities">26<h2 id="capabilities">

27 功能27 功能

agent-sdk/python.md +102 −120

Details

1487與 `ClaudeAgentOptions` 中的 `betas` 欄位搭配使用以啟用測試版功能。1487與 `ClaudeAgentOptions` 中的 `betas` 欄位搭配使用以啟用測試版功能。

1488 1488 

1489<Warning>1489<Warning>

1490 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此標頭無效,超過標準 200k 權杖內容視窗的請求會傳回錯誤。若要使用 1M 權杖內容視窗,請遷移至 [Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),這些包含標準定價的 1M 內容,無需測試版標頭。1490 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此標頭無效,超過標準 200k 權杖內容視窗的請求會傳回錯誤。若要使用 1M 權杖內容視窗,請遷移至 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),這些包含標準定價的 1M 內容,無需測試版標頭。

1491</Warning>1491</Warning>

1492 1492 

1493<h3 id="mcpsdkserverconfig">1493<h3 id="mcpsdkserverconfig">


1799 1799 

1800`model_usage` 字典將模型名稱對應到每個模型的使用情況。它涵蓋透過查詢管道進行的每個模型呼叫:主迴圈、子代理和內部呼叫(例如壓縮和 Workflow 代理)。該管道外的輔助呼叫(例如權限分類器和令牌計數請求)從 `model_usage` 中排除。將 `model_usage` 視為估計值,而不是計費聲明。1800`model_usage` 字典將模型名稱對應到每個模型的使用情況。它涵蓋透過查詢管道進行的每個模型呼叫:主迴圈、子代理和內部呼叫(例如壓縮和 Workflow 代理)。該管道外的輔助呼叫(例如權限分類器和令牌計數請求)從 `model_usage` 中排除。將 `model_usage` 視為估計值,而不是計費聲明。

1801 1801 

1802在[串流輸入模式](/docs/zh-TW/agent-sdk/streaming-vs-single-mode)中,`model_usage` 和 `total_cost_usd` 在轉中是累積的,因此讀取最新結果而不是在結果中求和。請參閱[在串流輸入模式中追蹤成本](/docs/zh-TW/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)以了解重設,以及[在 session 崩潰後復原總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)以了解歸零結果。1802在[串流輸入模式](/docs/zh-TW/agent-sdk/streaming-vs-single-mode)中,`model_usage` 和 `total_cost_usd` 在轉中是累積的,因此讀取最新結果而不是在結果中求和。恢復 session 的呼叫也會計算[從 session 的早期呼叫復原的總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。請參閱[在串流輸入模式中追蹤成本](/docs/zh-TW/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)以了解重設,以及[在 session 崩潰後復原總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)以了解歸零結果。

1803 1803 

1804`model_usage` 中的每個值都是 `ModelUsage` TypedDict,透過 `from claude_agent_sdk.types import ModelUsage` 匯入。其鍵使用 camelCase,因為 SDK 從基礎 CLI 程序未修改地傳遞該值,符合 TypeScript [`ModelUsage`](/docs/zh-TW/agent-sdk/typescript#modelusage) 類型:1804`model_usage` 中的每個值都是 `ModelUsage` TypedDict,透過 `from claude_agent_sdk.types import ModelUsage` 匯入。其鍵使用 camelCase,因為 SDK 從基礎 CLI 程序未修改地傳遞該值,符合 TypeScript [`ModelUsage`](/docs/zh-TW/agent-sdk/typescript#modelusage) 類型:

1805 1805 


1811| `cacheCreationInputTokens` | `int` | 此模型的快取建立令牌。 |1811| `cacheCreationInputTokens` | `int` | 此模型的快取建立令牌。 |

1812| `webSearchRequests` | `int` | 此模型進行的網路搜尋請求。 |1812| `webSearchRequests` | `int` | 此模型進行的網路搜尋請求。 |

1813| `thinkingTokens` | `int` | 此模型產生的思考令牌,已計入 `outputTokens`。在轉在記錄它的 Claude Code 版本上執行之前不存在,並且未在 TypedDict 上宣告,因此使用 `.get()` 讀取它。需要 Python Agent SDK 0.2.150 或更新版本,其隨附的 CLI 記錄它。 |1813| `thinkingTokens` | `int` | 此模型產生的思考令牌,已計入 `outputTokens`。在轉在記錄它的 Claude Code 版本上執行之前不存在,並且未在 TypedDict 上宣告,因此使用 `.get()` 讀取它。需要 Python Agent SDK 0.2.150 或更新版本,其隨附的 CLI 記錄它。 |

1814| `costUSD` | `float` | 此模型的估計成本(以 USD 為單位),在客戶端計算。見 [追蹤成本和使用情況](/docs/zh-TW/agent-sdk/cost-tracking) 以了解計費注意事項。 |1814| `costUSD` | `float` | 此模型的估計成本(以 USD 為單位),在客戶端計算。見[追蹤成本和使用情況](/docs/zh-TW/agent-sdk/cost-tracking)以了解計費注意事項。 |

1815| `contextWindow` | `int` | 此模型的上下文視窗大小。 |1815| `contextWindow` | `int` | 此模型的上下文視窗大小。 |

1816| `maxOutputTokens` | `int` | 此模型的最大輸出令牌限制。 |1816| `maxOutputTokens` | `int` | 此模型的最大輸出令牌限制。 |

1817| `canonicalModel` | `str` | 用於定價查詢的規範模型 ID。可能與項目所鍵入的原始模型字串不同,例如提供者特定的 ID 或別名。並非總是存在。 |1817| `canonicalModel` | `str` | 用於定價查詢的規範模型 ID。可能與項目所鍵入的原始模型字串不同,例如提供者特定的 ID 或別名。並非總是存在。 |


2705```2705```

2706 2706 

2707<h2 id="tool-input/output-types">2707<h2 id="tool-input/output-types">

2708 Tool 輸入/輸出類型2708 工具輸入/輸出類型

2709</h2>2709</h2>

2710 2710 

2711所有內建 Claude Code tools 的輸入/輸出架構文件。雖然 Python SDK 不將這些匯出為類型,但它們代表消息中 tool 輸入和輸出的結構。2711所有內建 Claude Code 工具的輸入/輸出結構描述文件。雖然 Python SDK 不會將這些匯出為類型,但它們代表訊息中工具輸入和輸出的結構。

2712 2712 

2713<h3 id="agent">2713<h3 id="agent">

2714 Agent2714 Agent

2715</h3>2715</h3>

2716 2716 

2717**Tool 名稱:** `Agent`。先前的名稱 `Task` 仍接受作為別名,初始化 [`SystemMessage`](#systemmessage) 中的 `tools` 列表為了向後相容性將此 tool 報告為 `Task`。2717**工具名稱:** `Agent`。先前的名稱 `Task` 仍被接受為別名,初始化 [`SystemMessage`](#systemmessage) 中的 `tools` 列表為了向後相容性將此工具報告為 `Task`。

2718 2718 

2719**輸入:**2719**輸入:**

2720 2720 

2721```python theme={null}2721```python theme={null}

2722{2722{

2723 "description": str, # 任務的簡短描述(3-5 個單詞)2723 "description": str, # 任務的簡短描述(3-5 個單詞)

2724 "prompt": str, # agent 要執行的任務2724 "prompt": str, # 代理要執行的任務

2725 "subagent_type": str | None, # 要使用的專門 agent 類型2725 "subagent_type": str | None, # 要使用的專門代理類型

2726 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 此 agent 的模型覆蓋2726 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 此代理的模型覆蓋

2727 "run_in_background": bool | None, # Agent 預設在背景執行;設定為 False 以同步執行2727 "run_in_background": bool | None, # 代理預設在背景執行;設定為 False 以同步執行

2728 "name": str | None, # 生成的 agent 的名稱2728 "name": str | None, # 生成的代理的名稱

2729 "team_name": str | None, # 已棄用;忽略2729 "team_name": str | None, # 已棄用;被忽略

2730 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 已棄用;忽略。subagent 繼承規則決定 subagent 的權限模式2730 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 已棄用;被忽略。子代理繼承規則決定子代理的權限模式

2731 "isolation": "worktree" | "remote" | None, # agent 變更的隔離模式2731 "isolation": "worktree" | "remote" | None, # 代理變更的隔離模式

2732}2732}

2733```2733```

2734 2734 

2735啟動新的 agent 以自主處理複雜的多步驟任務。2735啟動新代理以自主處理複雜的多步驟任務。

2736 2736 

2737**輸出(狀態:`"completed"`):**2737**輸出(狀態:`"completed"`):**

2738 2738 

2739```python theme={null}2739```python theme={null}

2740{2740{

2741 "status": "completed",2741 "status": "completed",

2742 "agentId": str, # 執行的 agent 的 ID2742 "agentId": str, # 執行的代理的 ID

2743 "agentType": str | None, # 處理任務的 subagent 類型2743 "agentType": str | None, # 處理任務的子代理類型

2744 "content": [ # 結果內容區塊2744 "content": [ # 結果內容區塊

2745 {2745 {

2746 "type": "text",2746 "type": "text",


2748 "citations": list | None,2748 "citations": list | None,

2749 }2749 }

2750 ],2750 ],

2751 "resolvedModel": str | None, # subagent 啟動的模型2751 "resolvedModel": str | None, # 子代理啟動時使用的模型

2752 "modelsUsed": list[str] | None, # 依序使用的模型,連續重複已摺疊2752 "modelsUsed": list[str] | None, # 依序使用的模型,連續重複已摺疊

2753 "totalToolUseCount": int, # agent 進行的 tool 呼叫次數2753 "totalToolUseCount": int, # 代理進行的工具呼叫次數

2754 "totalDurationMs": int, # 執行持續時間(毫秒)2754 "totalDurationMs": int, # 執行持續時間(毫秒)

2755 "totalTokens": int, # 最終 API 請求的 token 計數,不是整個執行2755 "totalTokens": int, # 最終 API 請求的令牌計數,不是整個執行的計數

2756 "usage": { # Token 使用統計2756 "usage": { # 令牌使用統計

2757 "input_tokens": int,2757 "input_tokens": int,

2758 "output_tokens": int,2758 "output_tokens": int,

2759 "cache_creation_input_tokens": int | None,2759 "cache_creation_input_tokens": int | None,


2766 "iterations": Any | None,2766 "iterations": Any | None,

2767 "output_tokens_details": {"thinking_tokens": int | None} | None,2767 "output_tokens_details": {"thinking_tokens": int | None} | None,

2768 },2768 },

2769 "toolStats": { # 執行的彙總 tool 活動2769 "toolStats": { # 執行的彙總工具活動

2770 "readCount": int,2770 "readCount": int,

2771 "searchCount": int,2771 "searchCount": int,

2772 "bashCount": int,2772 "bashCount": int,


2776 "otherToolCount": int,2776 "otherToolCount": int,

2777 "frameCount": int | None,2777 "frameCount": int | None,

2778 } | None,2778 } | None,

2779 "prompt": str, # agent 執行的提示2779 "prompt": str, # 代理執行的提示

2780 "worktreePath": str | None, # 當 Claude Code 保留 subagent 的 worktree 時出現2780 "worktreePath": str | None, # 當 Claude Code 保留子代理的 worktree 時出現

2781 "worktreeBranch": str | None, # 當 Claude Code 使用 git 建立該 worktree 時出現2781 "worktreeBranch": str | None, # 當 Claude Code 使用 git 建立該 worktree 時出現

2782}2782}

2783```2783```


2787```python theme={null}2787```python theme={null}

2788{2788{

2789 "status": "async_launched",2789 "status": "async_launched",

2790 "isAsync": bool | None, # 背景啟動時為 True2790 "isAsync": bool | None, # 在背景啟動時為 True

2791 "agentId": str, # 啟動的 agent 的 ID2791 "agentId": str, # 啟動的代理的 ID

2792 "description": str, # 任務描述2792 "description": str, # 任務描述

2793 "resolvedModel": str | None, # 背景轉換時使用的模型2793 "resolvedModel": str | None, # 在背景轉換時使用的模型

2794 "modelsUsed": list[str] | None, # 背景轉換前使用的模型,依序,連續重複已摺疊2794 "modelsUsed": list[str] | None, # 背景轉換前使用的模型,依序排列,連續重複已摺疊

2795 "prompt": str, # agent 執行的提示2795 "prompt": str, # 代理執行的提示

2796 "outputFile": str, # agent 輸出寫入的檔案路徑2796 "outputFile": str, # 代理輸出寫入的檔案路徑

2797 "canReadOutputFile": bool | None, # 輸出檔案是否可以直接讀取2797 "canReadOutputFile": bool | None, # 是否可以直接讀取輸出檔案

2798}2798}

2799```2799```

2800 2800 


2803```python theme={null}2803```python theme={null}

2804{2804{

2805 "status": "remote_launched",2805 "status": "remote_launched",

2806 "taskId": str, # 遠端任務的 ID2806 "taskId": str, # 分派任務的 ID

2807 "sessionUrl": str, # 遠端雲端工作階段的連結2807 "sessionUrl": str, # 雲端工作階段的連結

2808 "description": str, # 任務描述2808 "description": str, # 任務描述

2809 "prompt": str, # agent 執行的提示2809 "prompt": str, # 代理執行的提示

2810 "outputFile": str, # agent 輸出寫入的檔案路徑2810 "outputFile": str, # 代理輸出寫入的檔案路徑

2811}2811}

2812```2812```

2813 2813 

2814返回來自 subagent 的結果。輸出在 `status` 欄位上進行區分:`"completed"` 用於已完成的任務,`"async_launched"` 用於背景任務,`"remote_launched"` 用於 Claude Code 分派到遠端雲端工作階段的任務,其中 `sessionUrl` 連結到該工作階段,`taskId` 識別它。如果 Claude Code [保留了 subagent 的隔離 worktree](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees),`completed` 變體上的 `worktreePath` 是找到它的位置,`worktreeBranch` 是當 Claude Code 使用 git 建立 worktree 時的分支。2814返回來自子代理的結果。輸出根據 `status` 欄位進行區分:`"completed"` 用於已完成的任務,`"async_launched"` 用於背景任務,`"remote_launched"` 用於 Claude Code 分派到雲端工作階段的任務,其中 `sessionUrl` 連結到該工作階段,`taskId` 識別它。如果 Claude Code [保留了子代理的隔離 worktree](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees),`completed` 變體上的 `worktreePath` 是找到它的位置,`worktreeBranch` 是當 Claude Code 使用 git 建立 worktree 時的分支。

2815 2815 

2816在 `completed` 變體上,`resolvedModel` 命名 subagent 啟動的模型,當應用 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 或其他覆蓋時,可能與請求的 `model` 輸入不同。此欄位需要 Claude Code v2.1.174 或更新版本。在 `async_launched` 變體上,`resolvedModel` 命名 agent 移至背景時使用的模型,因此在背景轉換前發生的交換會反映在那裡。兩個變體上的 `modelsUsed` 欄位列出依序使用的模型,連續重複已摺疊;僅當模型在執行中交換時才設定。`modelsUsed` 和背景轉換時的 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。2816在 `completed` 變體上,`resolvedModel` 命名子代理啟動時使用的模型,當套用 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 或其他覆蓋時,可能與請求的 `model` 輸入不同。此欄位需要 Claude Code v2.1.174 或更新版本。在 `async_launched` 變體上,`resolvedModel` 命名代理移至背景時使用的模型,因此在背景轉換前發生的交換會反映在那裡。兩個變體上的 `modelsUsed` 欄位依序列出使用的模型,連續重複已摺疊;只有在執行中途交換模型時才會設定。`modelsUsed` 和背景轉換時的 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。

2817 2817 

2818Claude Code 從 subagent 的最終 API 請求而不是整個執行填入 `usage` 和 `totalTokens`。當存在時,`usage` 中 `output_tokens_details` 下的 `thinking_tokens` 是該請求的輸出 tokens 中是思考 tokens 的數量。`output_tokens_details` 鍵需要 Python SDK v0.2.136 或更新版本,其中包含 Claude Code v2.1.228。2818Claude Code 從子代理的最終 API 請求填充 `usage` 和 `totalTokens`,而不是從整個執行。當存在時,`usage` 中 `output_tokens_details` 下的 `thinking_tokens` 是該請求的輸出令牌中屬於思考令牌的數量。`output_tokens_details` 鍵需要 Python SDK v0.2.136 或更新版本,其中包含 Claude Code v2.1.228。

2819 2819 

2820<h3 id="askuserquestion">2820<h3 id="askuserquestion">

2821 AskUserQuestion2821 AskUserQuestion

2822</h3>2822</h3>

2823 2823 

2824**Tool 名稱:** `AskUserQuestion`2824**工具名稱:** `AskUserQuestion`

2825 2825 

2826在執行期間詢問使用者澄清問題。見 [處理批准和使用者輸入](/docs/zh-TW/agent-sdk/user-input#handle-clarifying-questions) 以了解使用詳情。2826在執行期間詢問使用者澄清問題。有關使用詳情,請參閱 [處理核准和使用者輸入](/docs/zh-TW/agent-sdk/user-input#handle-clarifying-questions)。

2827 2827 

2828**輸入:**2828**輸入:**

2829 2829 


2844 }2844 }

2845 ],2845 ],

2846 "answers": dict[str, str] | None,2846 "answers": dict[str, str] | None,

2847 # 由權限系統填入的使用者答案。多選2847 # 由權限系統填充的使用者答案。多選答案

2848 # 答案是所選標籤的逗號連接字串;2848 # 是所選標籤的逗號連接字串;輸入時接受

2849 # 輸入時接受標籤列表並強制轉換為該形式2849 # 標籤列表並強制轉換為該形式

2850 "annotations": dict[str, dict] | None,2850 "annotations": dict[str, dict] | None,

2851 # 來自使用者的每個問題註釋,由問題文字鍵入。2851 # 來自使用者的每個問題註釋,由問題文字鍵入。

2852 # 每個值可以攜帶「preview」(所選選項的預覽2852 # 每個值可以攜帶「preview」(所選選項的預覽


2870 "answers": dict[str, str], # 將問題文字對應到答案字串2870 "answers": dict[str, str], # 將問題文字對應到答案字串

2871 # 多選答案以逗號分隔2871 # 多選答案以逗號分隔

2872 "response": str | None,2872 "response": str | None,

2873 # 使用者輸入的自由形式回覆而不是回答問題;當設定時,2873 # 使用者輸入的自由形式回覆,而不是回答問題;當設定時,

2874 # Claude 收到「使用者回應:...」代替答案列表2874 # Claude 收到「使用者回應:...」代替答案列表

2875 "annotations": dict[str, dict] | None, # 來自使用者選擇的每個問題「preview」和「notes」2875 "annotations": dict[str, dict] | None, # 來自使用者選擇的每個問題「preview」和「notes」

2876 "afkTimeoutMs": int | None, # 當對話在此毫秒數的使用者不活動後自動解決時設定;使用者回答時不存在2876 "afkTimeoutMs": int | None, # 在對話在使用者不活動此許多毫秒後自動解決時設定;使用者回答時不存在

2877}2877}

2878```2878```

2879 2879 


2881 Bash2881 Bash

2882</h3>2882</h3>

2883 2883 

2884**Tool 名稱:** `Bash`2884**工具名稱:** `Bash`

2885 2885 

2886**輸入:**2886**輸入:**

2887 2887 

2888```python theme={null}2888```python theme={null}

2889{2889{

2890 "command": str, # 要執行的命令2890 "command": str, # 要執行的命令

2891 "timeout": int | None, # 可選的逾時時間(毫秒)(最多 600000;更高的值會被限制為最大值)2891 "timeout": int | None, # 選擇性逾時(毫秒;最大 600000;更高的值被限制為最大值)

2892 "description": str | None, # 清晰、簡潔的描述(5-10 個單詞)2892 "description": str | None, # 清晰、簡潔的描述(5-10 個單詞)

2893 "run_in_background": bool | None, # 設定為 true 以在背景執行2893 "run_in_background": bool | None, # 設定為 true 以在背景執行

2894}2894}


2898 2898 

2899```python theme={null}2899```python theme={null}

2900{2900{

2901 "stdout": str, # 命令的輸出;stdout 和 stderr 到達合併到此一個交錯流中2901 "stdout": str, # 命令的輸出;stdout 和 stderr 交錯合併到此一個流中

2902 "stderr": str, # tool 本身添加的通知,不是命令的 stderr2902 "stderr": str, # 工具本身新增的通知,不是命令的 stderr

2903 "interrupted": bool, # 命令是否被中斷2903 "interrupted": bool, # 命令是否被中斷

2904 "isImage": bool | None, # stdout 是否包含影像資料2904 "isImage": bool | None, # stdout 是否包含影像資料

2905 "backgroundTaskId": str | None, # 如果命令在背景執行,背景任務的 ID2905 "backgroundTaskId": str | None, # 如果命令在背景執行,背景任務的 ID


2910 Monitor2910 Monitor

2911</h3>2911</h3>

2912 2912 

2913**Tool 名稱:** `Monitor`2913**工具名稱:** `Monitor`

2914 2914 

2915執行背景來源並將每個事件傳遞給 Claude,以便它可以做出反應而無需輪詢:`command` 執行指令碼並每個 stdout 行發出一個事件,`ws` 開啟 WebSocket 並每個文字框架發出一個事件。請提供 `command` 或 `ws` 中的恰好一個。2915執行背景來源並將每個事件傳遞給 Claude,以便它可以做出反應而無需輪詢:`command` 執行指令碼並每個 stdout 行發出一個事件,`ws` 開啟 WebSocket 並每個文字框架發出一個事件。提供 `command` 或 `ws` 中的恰好一個。

2916 2916 

2917當 Monitor 執行命令時,它遵循與 Bash 相同的權限規則;WebSocket 監視會單獨提示批准。`ws` 來源需要 Claude Code v2.1.195 或更新版本。見 [Monitor tool 參考](/docs/zh-TW/tools-reference#monitor-tool) 以了解行為和提供者可用性。2917當 Monitor 執行命令時,它遵循與 Bash 相同的權限規則;WebSocket 監視會單獨提示核准。`ws` 來源需要 Claude Code v2.1.195 或更新版本。有關行為和提供者可用性,請參閱 [Monitor 工具參考](/docs/zh-TW/tools-reference#monitor-tool)。

2918 2918 

2919**輸入:**2919**輸入:**

2920 2920 

2921```python theme={null}2921```python theme={null}

2922{2922{

2923 "command": str | None, # Shell 指令碼;每個 stdout 行是一個事件,結束會停止監視2923 "command": str | None, # Shell 指令碼;每個 stdout 行是一個事件,退出結束監視

2924 "ws": dict | None, # WebSocket 來源:{"url": str, "protocols": list[str] | None};每個文字框架是一個事件2924 "ws": dict | None, # WebSocket 來源:{"url": str, "protocols": list[str] | None};每個文字框架是一個事件

2925 "description": str, # 在通知中顯示的簡短描述2925 "description": str, # 通知中顯示的簡短描述

2926 "timeout_ms": int | None, # 在此期限後終止(預設 300000,最多 3600000)2926 "timeout_ms": int | None, # 截止時間(毫秒)(預設 300000,最大 3600000;有效截止時間最多 1800000)

2927 "persistent": bool | None, # 在工作階段的生命週期內執行;使用 TaskStop 停止

2928}2927}

2929```2928```

2930 2929 


2933```python theme={null}2932```python theme={null}

2934{2933{

2935 "taskId": str, # 背景監視任務的 ID2934 "taskId": str, # 背景監視任務的 ID

2936 "timeoutMs": int, # 逾時期限(毫秒)(持續時為 0)2935 "timeoutMs": int, # 監視的有效截止時間(毫秒)

2937 "persistent": bool | None, # 當執行到 TaskStop 或工作階段結束時為 True2936 "persistent": bool | None, # False:每個監視都有截止時間

2938}2937}

2939```2938```

2940 2939 


2942 Edit2941 Edit

2943</h3>2942</h3>

2944 2943 

2945**Tool 名稱:** `Edit`2944**工具名稱:** `Edit`

2946 2945 

2947**輸入:**2946**輸入:**

2948 2947 


2950{2949{

2951 "file_path": str, # 要修改的檔案的絕對路徑2950 "file_path": str, # 要修改的檔案的絕對路徑

2952 "old_string": str, # 要替換的文字2951 "old_string": str, # 要替換的文字

2953 "new_string": str, # 用來替換的文字2952 "new_string": str, # 用來替換它的文字

2954 "replace_all": bool | None, # 替換所有出現次數(預設 False)2953 "replace_all": bool | None, # 替換所有出現次數(預設 False)

2955}2954}

2956```2955```


2969 Read2968 Read

2970</h3>2969</h3>

2971 2970 

2972**Tool 名稱:** `Read`2971**工具名稱:** `Read`

2973 2972 

2974**輸入:**2973**輸入:**

2975 2974 


2985 2984 

2986```python theme={null}2985```python theme={null}

2987{2986{

2988 "content": str, # 包含行號的檔案內容2987 "content": str, # 帶有行號的檔案內容

2989 "total_lines": int, # 檔案中的總行數2988 "total_lines": int, # 檔案中的總行數

2990 "lines_returned": int, # 實際返回的行數2989 "lines_returned": int, # 實際返回的行數

2991}2990}


3005 Write3004 Write

3006</h3>3005</h3>

3007 3006 

3008**Tool 名稱:** `Write`3007**工具名稱:** `Write`

3009 3008 

3010**輸入:**3009**輸入:**

3011 3010 


3030 Glob3029 Glob

3031</h3>3030</h3>

3032 3031 

3033**Tool 名稱:** `Glob`3032**工具名稱:** `Glob`

3034 3033 

3035**輸入:**3034**輸入:**

3036 3035 

3037```python theme={null}3036```python theme={null}

3038{3037{

3039 "pattern": str, # 要與檔案匹配的 glob 模式3038 "pattern": str, # 要對檔案進行比對的 glob 模式

3040 "path": str | None, # 要搜尋的目錄(預設為 cwd)3039 "path": str | None, # 要搜尋的目錄(預設為 cwd)

3041}3040}

3042```3041```


3045 3044 

3046```python theme={null}3045```python theme={null}

3047{3046{

3048 "matches": list[str], # 匹配的檔案路徑陣列3047 "matches": list[str], # 相符檔案路徑的陣列

3049 "count": int, # 找到的匹配數3048 "count": int, # 找到的相符項目數

3050 "search_path": str, # 使用的搜尋目錄3049 "search_path": str, # 使用的搜尋目錄

3051}3050}

3052```3051```


3055 Grep3054 Grep

3056</h3>3055</h3>

3057 3056 

3058**Tool 名稱:** `Grep`3057**工具名稱:** `Grep`

3059 3058 

3060**輸入:**3059**輸入:**

3061 3060 


3065 "path": str | None, # 要搜尋的檔案或目錄3064 "path": str | None, # 要搜尋的檔案或目錄

3066 "glob": str | None, # 用於篩選檔案的 glob 模式3065 "glob": str | None, # 用於篩選檔案的 glob 模式

3067 "type": str | None, # 要搜尋的檔案類型3066 "type": str | None, # 要搜尋的檔案類型

3068 "output_mode": str | None, # "content"、"files_with_matches" 或 "count"3067 "output_mode": str | None, # 「content」、「files_with_matches」或「count」

3069 "-i": bool | None, # 不區分大小寫搜尋3068 "-i": bool | None, # 不區分大小寫搜尋

3070 "-n": bool | None, # 顯示行號3069 "-n": bool | None, # 顯示行號

3071 "-B": int | None, # 每個匹配前顯示的行數3070 "-B": int | None, # 每個相符項目前顯示的行數

3072 "-A": int | None, # 每個匹配後顯示的行數3071 "-A": int | None, # 每個相符項目後顯示的行數

3073 "-C": int | None, # 匹配前後顯示的行數3072 "-C": int | None, # 每個相符項目前後顯示的行數

3074 "head_limit": int | None, # 將輸出限制為前 N 行/項目3073 "head_limit": int | None, # 將輸出限制為前 N 行/項目

3075 "multiline": bool | None, # 啟用多行模式3074 "multiline": bool | None, # 啟用多行模式

3076}3075}

3077```3076```

3078 3077 

3079**輸出(content 模式):**3078**輸出(內容模式):**

3080 3079 

3081```python theme={null}3080```python theme={null}

3082{3081{


3097 3096 

3098```python theme={null}3097```python theme={null}

3099{3098{

3100 "files": list[str], # 包含匹配的檔案3099 "files": list[str], # 包含相符項目的檔案

3101 "count": int, # 包含匹配的檔案數3100 "count": int, # 包含相符項目的檔案數

3102}3101}

3103```3102```

3104 3103 


3106 NotebookEdit3105 NotebookEdit

3107</h3>3106</h3>

3108 3107 

3109**Tool 名稱:** `NotebookEdit`3108**工具名稱:** `NotebookEdit`

3110 3109 

3111**輸入:**3110**輸入:**

3112 3111 

3113```python theme={null}3112```python theme={null}

3114{3113{

3115 "notebook_path": str, # Jupyter notebook 的絕對路徑3114 "notebook_path": str, # Jupyter 筆記本的絕對路徑

3116 "cell_id": str | None, # 要編輯的儲存格的 ID3115 "cell_id": str | None, # 要編輯的儲存格的 ID

3117 "new_source": str, # 儲存格的新來源3116 "new_source": str, # 儲存格的新來源

3118 "cell_type": "code" | "markdown" | None, # 儲存格的類型3117 "cell_type": "code" | "markdown" | None, # 儲存格的類型


3127 "message": str, # 成功訊息3126 "message": str, # 成功訊息

3128 "edit_type": "replaced" | "inserted" | "deleted", # 執行的編輯類型3127 "edit_type": "replaced" | "inserted" | "deleted", # 執行的編輯類型

3129 "cell_id": str | None, # 受影響的儲存格 ID3128 "cell_id": str | None, # 受影響的儲存格 ID

3130 "total_cells": int, # 編輯後 notebook 中的總儲存格數3129 "total_cells": int, # 編輯後筆記本中的總儲存格數

3131}3130}

3132```3131```

3133 3132 


3135 WebFetch3134 WebFetch

3136</h3>3135</h3>

3137 3136 

3138**Tool 名稱:** `WebFetch`3137**工具名稱:** `WebFetch`

3139 3138 

3140**輸入:**3139**輸入:**

3141 3140 

3142```python theme={null}3141```python theme={null}

3143{3142{

3144 "url": str, # 要從中擷取內容的 URL3143 "url": str, # 要從中擷取內容的 URL

3145 "prompt": str, # 在擷取的內容上執行的提示3144 "prompt": str, # 要在擷取的內容上執行的提示

3146}3145}

3147```3146```

3148 3147 


3153 "bytes": int, # 擷取內容的大小(位元組)3152 "bytes": int, # 擷取內容的大小(位元組)

3154 "code": int, # HTTP 回應代碼3153 "code": int, # HTTP 回應代碼

3155 "codeText": str, # HTTP 回應代碼文字3154 "codeText": str, # HTTP 回應代碼文字

3156 "result": str, # 將提示應用於內容的處理結果3155 "result": str, # 透過將提示套用到內容而得到的處理結果

3157 "durationMs": int, # 擷取和處理內容的時間(毫秒)3156 "durationMs": int, # 擷取和處理內容的時間(毫秒)

3158 "url": str, # 被擷取的 URL3157 "url": str, # 被擷取的 URL

3159}3158}


3163 WebSearch3162 WebSearch

3164</h3>3163</h3>

3165 3164 

3166**Tool 名稱:** `WebSearch`3165**工具名稱:** `WebSearch`

3167 3166 

3168**輸入:**3167**輸入:**

3169 3168 


3189 TodoWrite3188 TodoWrite

3190</h3>3189</h3>

3191 3190 

3192**Tool 名稱:** `TodoWrite`3191**工具名稱:** `TodoWrite`

3193 3192 

3194<Note>3193<Note>

3195 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3194 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:


3204 3203 

3205 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.3204 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

3206 3205 

3207 見 [模型可用性](/docs/zh-TW/agent-sdk/todo-tracking#model-availability) 以選擇加入。3206 請參閱 [模型可用性](/docs/zh-TW/agent-sdk/todo-tracking#model-availability) 以選擇加入。

3208</Note>3207</Note>

3209 3208 

3210**輸入:**3209**輸入:**


3234 TaskCreate3233 TaskCreate

3235</h3>3234</h3>

3236 3235 

3237**Tool 名稱:** `TaskCreate`3236**工具名稱:** `TaskCreate`

3238 3237 

3239**輸入:**3238**輸入:**

3240 3239 

3241```python theme={null}3240```python theme={null}

3242{3241{

3243 "subject": str, # 簡短的任務標題3242 "subject": str, # 簡短的任務標題

3244 "description": str, # 詳細的任務內容3243 "description": str, # 詳細的任務本文

3245 "activeForm": str | None, # 進行中時顯示的現在式標籤3244 "activeForm": str | None, # 進行中時顯示的現在式標籤

3246 "metadata": dict | None, # 任意呼叫者中繼資料3245 "metadata": dict | None, # 任意呼叫者中繼資料

3247}3246}


3259 TaskUpdate3258 TaskUpdate

3260</h3>3259</h3>

3261 3260 

3262**Tool 名稱:** `TaskUpdate`3261**工具名稱:** `TaskUpdate`

3263 3262 

3264**輸入:**3263**輸入:**

3265 3264 


3293 TaskGet3292 TaskGet

3294</h3>3293</h3>

3295 3294 

3296**Tool 名稱:** `TaskGet`3295**工具名稱:** `TaskGet`

3297 3296 

3298**輸入:**3297**輸入:**

3299 3298 


3322 TaskList3321 TaskList

3323</h3>3322</h3>

3324 3323 

3325**Tool 名稱:** `TaskList`3324**工具名稱:** `TaskList`

3326 3325 

3327**輸入:**3326**輸入:**

3328 3327 


3350 TaskOutput3349 TaskOutput

3351</h3>3350</h3>

3352 3351 

3353**Tool 名稱:** `TaskOutput`。先前的名稱 `BashOutput` 仍接受作為別名。3352在 Claude Code v2.1.277 中移除。先前從執行中或已完成的背景任務擷取輸出,`BashOutput` 被接受為別名;Claude 使用 `Read` 讀取背景任務的輸出檔案。

3354 3353 

3355<Note>`TaskOutput` 已棄用;改用 `Read` 在任務的輸出檔案路徑上。以下架構對於遇到此 tool 的 hooks 和權限處理程式仍然有效。</Note>3354`disallowed_tools` 項目或仍命名任一名稱的拒絕規則被忽略而不發出警告。

3356 

3357**輸入:**

3358 

3359```python theme={null}

3360{

3361 "task_id": str, # 要從中取得輸出的任務 ID

3362 "block": bool, # 是否等待完成(預設 True)

3363 "timeout": int, # 最大等待時間(毫秒)(預設 30000)

3364}

3365```

3366 

3367**輸出:**

3368 

3369```python theme={null}

3370{

3371 "retrieval_status": "success" | "timeout" | "not_ready", # 是否檢索到輸出

3372 "task": dict | None, # 任務詳情:task_id、task_type、status、description、output,加上類型特定欄位,例如 exitCode

3373}

3374```

3375 3355 

3376<h3 id="taskstop">3356<h3 id="taskstop">

3377 TaskStop3357 TaskStop

3378</h3>3358</h3>

3379 3359 

3380**Tool 名稱:** `TaskStop`。先前的名稱 `KillShell` 和 `KillBash` 仍接受作為別名。3360**工具名稱:** `TaskStop`。先前的名稱 `KillShell` 和 `KillBash` 仍被接受為別名。

3381 3361 

3382**輸入:**3362**輸入:**

3383 3363 


3403 ExitPlanMode3383 ExitPlanMode

3404</h3>3384</h3>

3405 3385 

3406**Tool 名稱:** `ExitPlanMode`3386**工具名稱:** `ExitPlanMode`

3407 3387 

3408**輸入:**3388**輸入:**

3409 3389 

3410```python theme={null}3390```python theme={null}

3411{3391{

3412 "plan": str # 使用者要執行以供批准的計畫3392 "plan": str # 要呈現給使用者核准的計畫

3413}3393}

3414```3394```

3415 3395 


3418```python theme={null}3398```python theme={null}

3419{3399{

3420 "message": str, # 確認訊息3400 "message": str, # 確認訊息

3421 "approved": bool | None, # 使用者是否批准計畫3401 "approved": bool | None, # 使用者是否核准計畫

3422}3402}

3423```3403```

3424 3404 


3426 ListMcpResources3406 ListMcpResources

3427</h3>3407</h3>

3428 3408 

3429**Tool 名稱:** `ListMcpResourcesTool`3409**工具名稱:** `ListMcpResourcesTool`

3430 3410 

3431**輸入:**3411**輸入:**

3432 3412 

3433```python theme={null}3413```python theme={null}

3434{3414{

3435 "server": str | None # 可選的伺服器名稱以篩選資源3415 "server": str | None # 選擇性伺服器名稱以按其篩選資源

3436}3416}

3437```3417```

3438 3418 


3457 ReadMcpResource3437 ReadMcpResource

3458</h3>3438</h3>

3459 3439 

3460**Tool 名稱:** `ReadMcpResourceTool`3440**工具名稱:** `ReadMcpResourceTool`

3461 3441 

3462**輸入:**3442**輸入:**

3463 3443 


3629```3609```

3630 3610 

3631| 屬性 | 類型 | 預設 | 描述 |3611| 屬性 | 類型 | 預設 | 描述 |

3632| :-------------------------- | :---------------------------------------------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------- |3612| :-------------------------- | :---------------------------------------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------- |

3633| `enabled` | `bool` | `False` | 為命令執行啟用沙箱模式 |3613| `enabled` | `bool` | `False` | 為命令執行啟用沙箱模式 |

3634| `autoAllowBashIfSandboxed` | `bool` | `True` | 啟用沙箱時自動批准 bash 命令 |3614| `autoAllowBashIfSandboxed` | `bool` | `True` | 啟用沙箱時自動批准 bash 命令 |

3635| `excludedCommands` | `list[str]` | `[]` | 始終繞過沙箱限制的命令(例如 `["docker"]`)。這些自動執行沙箱外,無需模型參與 |3615| `excludedCommands` | `list[str]` | `[]` | 繞過沙箱限制的命令,例如 `["docker *"]`。這些自動執行沙箱外,無需模型參與;[`sandbox.excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 涵蓋何時適用項目 |

3636| `allowUnsandboxedCommands` | `bool` | `True` | 允許模型請求在沙箱外執行命令。當為 `True` 時,模型可以在 tool 輸入中設定 `dangerouslyDisableSandbox`,這會回退到[權限系統](#permissions-fallback-for-unsandboxed-commands) |3616| `allowUnsandboxedCommands` | `bool` | `True` | 允許模型請求在沙箱外執行命令。當為 `True` 時,模型可以在 tool 輸入中設定 `dangerouslyDisableSandbox`,這會回退到[權限系統](#permissions-fallback-for-unsandboxed-commands) |

3637| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | 網路特定的沙箱配置 |3617| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | 網路特定的沙箱配置 |

3638| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | 配置要忽略的沙箱違規 |3618| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | 配置要忽略的沙箱違規 |


3737 未沙箱化命令的權限回退3717 未沙箱化命令的權限回退

3738</h3>3718</h3>

3739 3719 

3740當 `allowUnsandboxedCommands` 啟用時,模型可以透過在 tool 輸入中設定 `dangerouslyDisableSandbox: True` 來請求在沙箱外執行命令。這些請求回退到現有權限系統,意味著您的 `can_use_tool` 處理程序將被呼叫,允許您實現自訂授權邏輯。列在 `excludedCommands` 中的命令改為自動繞過沙箱,無需模型參與;請參閱 [`SandboxSettings`](#sandboxsettings)。3720當 `allowUnsandboxedCommands` 啟用時,模型可以透過在 tool 輸入中設定 `dangerouslyDisableSandbox: True` 來請求在沙箱外執行命令。這些請求回退到現有權限系統,意味著您的 `can_use_tool` 處理程序將被呼叫,允許您實現自訂授權邏輯。

3721 

3722您的 `excludedCommands` 項目改為自動繞過沙箱,無需模型參與;[`sandbox.excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 涵蓋何時適用項目。

3741 3723 

3742以下範例記錄每個未沙箱化請求,並除非您自己的授權邏輯允許,否則拒絕它:3724以下範例記錄每個未沙箱化請求,並除非您自己的授權邏輯允許,否則拒絕它:

3743 3725 

Details

648| :-- | :-------------------------------------------------------- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |648| :-- | :-------------------------------------------------------- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

649| 深度 | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/zh-TW/env-vars) | 主代理下方的 `3` 層子代理。`1` 會阻止您的子代理生成任何自己的子代理 | 使底層的子代理無法生成,因此它會自己完成委派的工作。請參閱[嵌套子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) |649| 深度 | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/zh-TW/env-vars) | 主代理下方的 `3` 層子代理。`1` 會阻止您的子代理生成任何自己的子代理 | 使底層的子代理無法生成,因此它會自己完成委派的工作。請參閱[嵌套子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) |

650| 並行性 | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/zh-TW/env-vars) | `20` 個子代理同時運行,計算 Claude 使用 Agent 工具生成的每個子代理 | 拒絕生成另一個子代理,返回 `Concurrent subagent limit reached`,直到運行計數降至限制以下。啟用[超級代碼](/docs/zh-TW/model-config#adjust-effort-level)的工作階段永遠不會被拒絕。請參閱[並行子代理限制](/docs/zh-TW/sub-agents#concurrent-subagent-limit) |650| 並行性 | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/zh-TW/env-vars) | `20` 個子代理同時運行,計算 Claude 使用 Agent 工具生成的每個子代理 | 拒絕生成另一個子代理,返回 `Concurrent subagent limit reached`,直到運行計數降至限制以下。啟用[超級代碼](/docs/zh-TW/model-config#adjust-effort-level)的工作階段永遠不會被拒絕。請參閱[並行子代理限制](/docs/zh-TW/sub-agents#concurrent-subagent-limit) |

651| 支出 | TypeScript 中的 `maxBudgetUsd`,Python 中的 `max_budget_usd` | 無限制。與 `total_cost_usd` 比較,因此子代理請求計入 | 通過三種方式強制執行上限:拒絕生成更多子代理,返回 `Budget limit reached`,停止仍在運行的背景子代理,並以 `error_max_budget_usd` 結果子類型結束查詢。請參閱[輪次和預算](/docs/zh-TW/agent-sdk/agent-loop#turns-and-budget) |651| 支出 | TypeScript 中的 `maxBudgetUsd`,Python 中的 `max_budget_usd` | 無限制。計算呼叫自身的支出,包括子代理請求 | 通過三種方式強制執行上限:拒絕生成更多子代理,返回 `Budget limit reached`,停止仍在運行的背景子代理,並以 `error_max_budget_usd` 結果子類型結束查詢。如需了解上限在工作階段中的行為方式,請參閱[輪次和預算](/docs/zh-TW/agent-sdk/agent-loop#turns-and-budget) |

652 652 

653兩個 SDK 對 `env` 選項的處理方式不同:TypeScript SDK 用它替換子程序環境,因此將 `process.env` 展開到其中以保留 `PATH` 等變數,而 Python SDK 將其合併到繼承的環境中。此範例關閉嵌套,最多允許五個子代理同時運行,並在估計支出達到 \$5 時停止查詢:653兩個 SDK 對 `env` 選項的處理方式不同:TypeScript SDK 用它替換子程序環境,因此將 `process.env` 展開到其中以保留 `PATH` 等變數,而 Python SDK 將其合併到繼承的環境中。此範例關閉嵌套,最多允許五個子代理同時運行,並在估計支出達到 \$5 時停止查詢:

654 654 


747 747 

748如果 Claude 直接完成任務而不是委派給您的子代理:748如果 Claude 直接完成任務而不是委派給您的子代理:

749 749 

750* **使用明確提示**:在您的提示詞中按名稱提及子代理,例如「使用代碼審查員代理來...」750* **使用明確提示**:在您的提示詞中按名稱提及子代理,例如「使用代碼審查員代理來檢查身份驗證模組」

751* **編寫清晰的描述**:準確解釋何時應使用子代理,以便 Claude 可以適當地匹配任務751* **編寫清晰的描述**:準確解釋何時應使用子代理,以便 Claude 可以適當地匹配任務

752 752 

753<h3 id="filesystem-based-agents-not-loading">753<h3 id="filesystem-based-agents-not-loading">

Details

309| `uuid` | `string` | 唯一消息標識符 |309| `uuid` | `string` | 唯一消息標識符 |

310| `session_id` | `string` | 此消息所屬的會話 |310| `session_id` | `string` | 此消息所屬的會話 |

311| `message` | `unknown` | 來自記錄的原始消息有效負載 |311| `message` | `unknown` | 來自記錄的原始消息有效負載 |

312| `parent_tool_use_id` | `string \| null` | 對於子代理消息,生成 `Agent` 工具調用的 `tool_use_id`。對於主會話消息和較舊的會話為 `null` |312| `parent_tool_use_id` | `string \| null` | 對於子代理消息,生成 `Agent` 或 `Skill` 工具調用的 `tool_use_id`,該調用啟動了子代理。對於主會話消息和較舊的會話為 `null` |

313| `parent_agent_id` | `string \| null` | 對於來自[嵌套子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)的消息,生成它的子代理的 `agentId`。對於主會話消息、來自頂級子代理的消息和較舊的會話為 `null`。需要 Claude Code v2.1.202 或更高版本 |313| `parent_agent_id` | `string \| null` | 對於來自[嵌套子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)的消息,生成它的子代理的 `agentId`。對於主會話消息、來自頂級子代理的消息和較舊的會話為 `null`。需要 Claude Code v2.1.202 或更高版本 |

314 314 

315<h4 id="example-3">315<h4 id="example-3">


495| `cwd` | `string` | `process.cwd()` | 目前的工作目錄 |495| `cwd` | `string` | `process.cwd()` | 目前的工作目錄 |

496| `debug` | `boolean` | `false` | 為 Claude Code 程序啟用偵錯模式 |496| `debug` | `boolean` | `false` | 為 Claude Code 程序啟用偵錯模式 |

497| `debugFile` | `string` | `undefined` | 將偵錯日誌寫入特定檔案路徑。隱含啟用偵錯模式 |497| `debugFile` | `string` | `undefined` | 將偵錯日誌寫入特定檔案路徑。隱含啟用偵錯模式 |

498| `disallowedTools` | `string[]` | `[]` | 要拒絕的工具。裸名稱(例如 `"Bash"`)會從 Claude 的內容中移除工具。範圍規則(例如 `"Bash(rm *)""`)會保留工具可用,並在每個權限模式中拒絕符合的呼叫,包括 `bypassPermissions`,針對[如所寫的](/docs/zh-TW/permissions#bash-rule-limits)命令。請參閱[權限](/docs/zh-TW/agent-sdk/permissions#allow-and-deny-rules) |498| `disallowedTools` | `string[]` | `[]` | 要拒絕的工具。裸名稱(例如 `"Bash"`)會從 Claude 的內容中移除工具。範圍規則(例如 `"Bash(rm *)"`)會保留工具可用,並在每個權限模式中拒絕符合的呼叫,包括 `bypassPermissions`,針對[如所寫的](/docs/zh-TW/permissions#bash-rule-limits)命令。請參閱[權限](/docs/zh-TW/agent-sdk/permissions#allow-and-deny-rules) |

499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | 控制 Claude 在其回應中投入多少努力。與自適應思考配合使用以引導思考深度。請參閱[調整努力等級](/docs/zh-TW/model-config#adjust-effort-level) |499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | 控制 Claude 在其回應中投入多少努力。與自適應思考配合使用以引導思考深度。請參閱[調整努力等級](/docs/zh-TW/model-config#adjust-effort-level) |

500| `enableFileCheckpointing` | `boolean` | `false` | 啟用檔案變更追蹤以進行倒帶。請參閱[檔案檢查點](/docs/zh-TW/agent-sdk/file-checkpointing) |500| `enableFileCheckpointing` | `boolean` | `false` | 啟用檔案變更追蹤以進行倒帶。請參閱[檔案檢查點](/docs/zh-TW/agent-sdk/file-checkpointing) |

501| `env` | `Record<string, string \| undefined>` | `process.env` | 環境變數。設定時,這會取代子程序環境而不是與 `process.env` 合併,因此請傳遞 `{ ...process.env, YOUR_VAR: 'value' }` 以保留繼承的變數(例如 `PATH`)。請參閱[處理緩慢或停滯的 API 回應](#handle-slow-or-stalled-api-responses)以取得此模式的範例,以及[環境變數](/docs/zh-TW/env-vars)以了解基礎 CLI 讀取的變數。設定 `CLAUDE_AGENT_SDK_CLIENT_APP` 以在 User-Agent 標頭中識別您的應用程式 |501| `env` | `Record<string, string \| undefined>` | `process.env` | 環境變數。設定時,這會取代子程序環境而不是與 `process.env` 合併,因此請傳遞 `{ ...process.env, YOUR_VAR: 'value' }` 以保留繼承的變數(例如 `PATH`)。請參閱[處理緩慢或停滯的 API 回應](#handle-slow-or-stalled-api-responses)以取得此模式的範例,以及[環境變數](/docs/zh-TW/env-vars)以了解基礎 CLI 讀取的變數。設定 `CLAUDE_AGENT_SDK_CLIENT_APP` 以在 User-Agent 標頭中識別您的應用程式 |


504| `extraArgs` | `Record<string, string \| null>` | `{}` | 其他引數 |504| `extraArgs` | `Record<string, string \| null>` | `{}` | 其他引數 |

505| `fallbackModel` | `string` | `undefined` | 主要模型失敗時要使用的模型。接受逗號分隔的清單。如需順序和上限,請參閱[後備模型鏈](/docs/zh-TW/model-config#fallback-model-chains)。如需指導,請參閱[選擇模型](/docs/zh-TW/agent-sdk/configuration#choose-a-model) |505| `fallbackModel` | `string` | `undefined` | 主要模型失敗時要使用的模型。接受逗號分隔的清單。如需順序和上限,請參閱[後備模型鏈](/docs/zh-TW/model-config#fallback-model-chains)。如需指導,請參閱[選擇模型](/docs/zh-TW/agent-sdk/configuration#choose-a-model) |

506| `forkSession` | `boolean` | `false` | 使用 `resume` 繼續時,分支到新的工作階段 ID 而不是繼續原始工作階段 |506| `forkSession` | `boolean` | `false` | 使用 `resume` 繼續時,分支到新的工作階段 ID 而不是繼續原始工作階段 |

507| `forwardSubagentText` | `boolean` | `false` | 轉發子代理文字和思考區塊作為助手和使用者訊息,並設定 `parent_tool_use_id`,以便消費者可以呈現巢狀文字記錄。沒有此選項,Claude Code 會發出子代理 `tool_use` 和 `tool_result` 區塊,但不會發出文字或思考。來自每個巢狀深度的子代理的訊息會在 Claude Code v2.1.219 及更新版本上轉發;在 v2.1.219 之前,只有來自深度 1 子代理的訊息出現 |507| `forwardSubagentText` | `boolean` | `false` | 轉發子代理文字和思考區塊作為助手和使用者訊息,並設定 `parent_tool_use_id`,以便消費者可以呈現巢狀文字記錄。沒有此選項,Claude Code 會發出子代理 `tool_use` 和 `tool_result` 區塊,但不會發出文字或思考。來自每個巢狀深度的子代理的訊息會在 Claude Code v2.1.219 及更新版本上轉發;在 v2.1.219 之前,只有來自深度 1 子代理的訊息出現。子代理衍生的分支技能訊息,以及巢狀分支技能的訊息,需要 v2.1.275 或更新版本 |

508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | 事件的 Hook 回呼 |508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | 事件的 Hook 回呼 |

509| `includeHookEvents` | `boolean` | `false` | 在訊息串流中包含 hook 生命週期事件,作為 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage)。`SessionStart` 和 `Setup` hooks 的生命週期事件始終包含在內,不需要此選項。某些 hook 事件(例如 `Notification`、`SessionEnd`、`PreCompact` 和 `PostCompact`)永遠不會產生 `SDKHookStartedMessage`,即使使用此選項也是如此。對於這些事件,Claude Code 仍會在執行超過一秒的命令 hook 時發出 `SDKHookProgressMessage` 並產生輸出,並且僅在 hook [在背景執行](/docs/zh-TW/hooks#run-hooks-in-the-background)時發出 `SDKHookResponseMessage` |509| `includeHookEvents` | `boolean` | `false` | 在訊息串流中包含 hook 生命週期事件,作為 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage)。`SessionStart` 和 `Setup` hooks 的生命週期事件始終包含在內,不需要此選項。某些 hook 事件(例如 `Notification`、`SessionEnd`、`PreCompact` 和 `PostCompact`)永遠不會產生 `SDKHookStartedMessage`,即使使用此選項也是如此。對於這些事件,Claude Code 仍會在執行超過一秒的命令 hook 時發出 `SDKHookProgressMessage` 並產生輸出,並且僅在 hook [在背景執行](/docs/zh-TW/hooks#run-hooks-in-the-background)時發出 `SDKHookResponseMessage` |

510| `includePartialMessages` | `boolean` | `false` | 包含部分訊息事件 |510| `includePartialMessages` | `boolean` | `false` | 包含部分訊息事件 |

511| `loadTimeoutMs` | `number` | `60000` | *Alpha。* 在繼續具體化期間,每個 `sessionStore.load()` 和 `sessionStore.listSubkeys()` 呼叫的逾時(毫秒)。如果配接器未在此視窗內解決,查詢會失敗而不是掛起。未設定 `sessionStore` 時忽略 |511| `loadTimeoutMs` | `number` | `60000` | *Alpha。* 在繼續具體化期間,每個 `sessionStore.load()` 和 `sessionStore.listSubkeys()` 呼叫的逾時(毫秒)。如果配接器未在此視窗內解決,查詢會失敗而不是掛起。未設定 `sessionStore` 時忽略 |

512| `managedSettings` | `Settings` | `undefined` | 您的主機程序提供給衍生工作階段的原則層級設定。在具有管理員部署的受管設定的機器上,Claude Code 會忽略這些,除非管理員的最高優先順序受管來源設定 `parentSettingsBehavior: 'merge'`,並且在 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 提供受管設定時永遠不會合併。合併的值會通過限制性篩選器;[限制父設定](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings)涵蓋篩選器允許的內容和 `allowManaged*Only` 鎖定。設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 的主機有三個金鑰直接從此承載讀取:其在 Claude Code v2.1.222 或更新版本上的[模型設定](/docs/zh-TW/model-config#restrict-model-selection)、當沒有受管來源在 v2.1.246 或更新版本上設定時的 [`modelPricing`](/docs/zh-TW/settings-reference#modelpricing),以及其在 v2.1.247 或更新版本上的 `ENABLE_TOOL_SEARCH` env 項目 |512| `managedSettings` | `Settings` | `undefined` | 您的主機程序提供給衍生工作階段的原則層級設定。在具有管理員部署的受管設定的機器上,Claude Code 會忽略這些,除非管理員的最高優先順序受管來源設定 `parentSettingsBehavior: 'merge'`,並且在 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 提供受管設定時永遠不會合併。合併的值會通過限制性篩選器;[限制父設定](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings)涵蓋篩選器允許的內容和 `allowManaged*Only` 鎖定。設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 的主機有三個金鑰直接從此承載讀取:其在 Claude Code v2.1.222 或更新版本上的[模型設定](/docs/zh-TW/model-config#restrict-model-selection)、當沒有受管來源在 v2.1.246 或更新版本上設定時的 [`modelPricing`](/docs/zh-TW/settings-reference#modelpricing),以及其在 v2.1.247 或更新版本上的 `ENABLE_TOOL_SEARCH` env 項目 |

513| `maxBudgetUsd` | `number` | `undefined` | 當用戶端成本估計達到此美元值時停止查詢。與 `total_cost_usd` 的相同估計進行比較。如需準確性注意事項和重設行為,請參閱[追蹤成本和使用量](/docs/zh-TW/agent-sdk/cost-tracking) |513| `maxBudgetUsd` | `number` | `undefined` | 當用戶端成本估計達到此美元值時停止查詢。僅計算呼叫自己的支出;從繼續工作階段還原的總計不計算。如需準確性注意事項和重設行為,請參閱[追蹤成本和使用量](/docs/zh-TW/agent-sdk/cost-tracking) |

514| `maxThinkingTokens` | `number` | `undefined` | *已棄用:* 改用 `thinking`。思考程序的最大權杖數 |514| `maxThinkingTokens` | `number` | `undefined` | *已棄用:* 改用 `thinking`。思考程序的最大權杖數 |

515| `maxTurns` | `number` | `undefined` | 最大代理回合(工具使用往返) |515| `maxTurns` | `number` | `undefined` | 最大代理回合(工具使用往返) |

516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP 伺服器設定 |516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP 伺服器設定 |


525| `persistSession` | `boolean` | `true` | 當為 `false` 時,停用工作階段持久化到磁碟。工作階段之後無法繼續 |525| `persistSession` | `boolean` | `true` | 當為 `false` 時,停用工作階段持久化到磁碟。工作階段之後無法繼續 |

526| `planModeInstructions` | `string` | `undefined` | 計畫模式的自訂工作流程指示。當 `permissionMode` 為 `'plan'` 時,此字串會取代預設計畫模式工作流程主體。CLI 仍會使用唯讀強制前言和 ExitPlanMode 協定頁尾來包裝它 |526| `planModeInstructions` | `string` | `undefined` | 計畫模式的自訂工作流程指示。當 `permissionMode` 為 `'plan'` 時,此字串會取代預設計畫模式工作流程主體。CLI 仍會使用唯讀強制前言和 ExitPlanMode 協定頁尾來包裝它 |

527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 從本機路徑載入自訂外掛程式。請參閱[外掛程式](/docs/zh-TW/agent-sdk/plugins)以取得詳細資訊 |527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 從本機路徑載入自訂外掛程式。請參閱[外掛程式](/docs/zh-TW/agent-sdk/plugins)以取得詳細資訊 |

528| `projectConfigRoot` | `string` | `undefined` | `cwd` 是其 worktree 的受信任簽出的絕對路徑。Claude Code 從此目錄而不是 `cwd` 讀取專案設定、`.mcp.json` 和專案的 `.claude/` 命令、代理、技能、工作流程、例行程序和輸出樣式,並將 `CLAUDE_PROJECT_DIR` 設定為它。Hooks、協助程式指令碼(例如 `apiKeyHelper`)和 stdio MCP 伺服器以此目錄作為其工作目錄啟動。`CLAUDE.md` 檔案和 `.claude/rules/` 仍從 `cwd` 載入。需要 Claude Code v2.1.275 或更新版本 |

528| `promptSuggestions` | `boolean` | `false` | 啟用提示建議。在回合後,Claude Code 會發出 `prompt_suggestion` 訊息,其中包含預測的下一個使用者提示。Claude Code 不會為某些回合(例如當您的帳戶接近或達到使用量限制時)產生建議。請參閱[Claude Code 何時跳過建議](/docs/zh-TW/interactive-mode#when-claude-code-skips-suggestions) |529| `promptSuggestions` | `boolean` | `false` | 啟用提示建議。在回合後,Claude Code 會發出 `prompt_suggestion` 訊息,其中包含預測的下一個使用者提示。Claude Code 不會為某些回合(例如當您的帳戶接近或達到使用量限制時)產生建議。請參閱[Claude Code 何時跳過建議](/docs/zh-TW/interactive-mode#when-claude-code-skips-suggestions) |

529| `resume` | `string` | `undefined` | 要繼續的工作階段 ID |530| `resume` | `string` | `undefined` | 要繼續的工作階段 ID |

530| `resumeDropsTurn` | `string` | `undefined` | 使用 `resumeSessionAt`:截斷繼續打算捨棄的回合的提示 UUID。當捨棄的範圍包含任何不可歸因於該回合的內容(例如吸收的佇列訊息或任務通知)時,Claude Code 會拒絕繼續,並在拒絕訊息中命名 `--resume-drops-turn` 旗標。只有 Agent SDK 和列印模式繼續讀取該對。需要 Claude Code v2.1.223 或更新版本 |531| `resumeDropsTurn` | `string` | `undefined` | 使用 `resumeSessionAt`:截斷繼續打算捨棄的回合的提示 UUID。當捨棄的範圍包含任何不可歸因於該回合的內容(例如吸收的佇列訊息或任務通知)時,Claude Code 會拒絕繼續,並在拒絕訊息中命名 `--resume-drops-turn` 旗標。只有 Agent SDK 和列印模式繼續讀取該對。需要 Claude Code v2.1.223 或更新版本 |


540| `stderr` | `(data: string) => void` | `undefined` | stderr 輸出的回呼 |541| `stderr` | `(data: string) => void` | `undefined` | stderr 輸出的回呼 |

541| `strictMcpConfig` | `boolean` | `false` | 僅使用在 `mcpServers` 中傳遞的伺服器,並忽略專案 `.mcp.json`、使用者設定、外掛程式提供的 MCP 伺服器和 [claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) |542| `strictMcpConfig` | `boolean` | `false` | 僅使用在 `mcpServers` 中傳遞的伺服器,並忽略專案 `.mcp.json`、使用者設定、外掛程式提供的 MCP 伺服器和 [claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) |

542| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined`(最小提示) | 系統提示設定。傳遞字串以取得自訂提示,或傳遞 `{ type: 'preset', preset: 'claude_code' }` 以使用 Claude Code 的系統提示。傳遞字串陣列,在靜態和每個請求部分之間使用匯出的 `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 常數,以[快取自訂提示的靜態部分](/docs/zh-TW/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)。使用預設物件形式時,新增 `append` 以使用其他指示進行擴充,並設定 `excludeDynamicSections: true` 以將每個工作階段內容移至第一個使用者訊息,以[更好地跨機器重複使用提示快取](/docs/zh-TW/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)。設定 `snapshot: false` 以在每個請求上重建提示,而不是[重複使用工作階段在其第一個請求上記錄的提示](/docs/zh-TW/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session)。若要在自訂提示上設定 `snapshot`,請傳遞 `{ type: 'custom', prompt }` 形式。`{ type: 'custom' }` 形式和 `snapshot` 欄位需要 TypeScript Agent SDK v0.3.257 或更新版本 |543| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined`(最小提示) | 系統提示設定。傳遞字串以取得自訂提示,或傳遞 `{ type: 'preset', preset: 'claude_code' }` 以使用 Claude Code 的系統提示。傳遞字串陣列,在靜態和每個請求部分之間使用匯出的 `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 常數,以[快取自訂提示的靜態部分](/docs/zh-TW/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)。使用預設物件形式時,新增 `append` 以使用其他指示進行擴充,並設定 `excludeDynamicSections: true` 以將每個工作階段內容移至第一個使用者訊息,以[更好地跨機器重複使用提示快取](/docs/zh-TW/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)。設定 `snapshot: false` 以在每個請求上重建提示,而不是[重複使用工作階段在其第一個請求上記錄的提示](/docs/zh-TW/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session)。若要在自訂提示上設定 `snapshot`,請傳遞 `{ type: 'custom', prompt }` 形式。`{ type: 'custom' }` 形式和 `snapshot` 欄位需要 TypeScript Agent SDK v0.3.257 或更新版本 |

543| `taskBudget` | `{ total: number }` | `undefined` | *Alpha。* API 端任務預算(權杖)。設定時,模型會被告知其剩餘權杖預算,以便它可以調整工具使用速度並在達到限制前完成。 |544| `taskBudget` | `{ total: number }` | `undefined` | *Alpha。* API 端任務預算(權杖)。設定時,模型會被告知其剩餘權杖預算,以便它可以調整工具使用速度並在達到限制前完成 |

544| `thinking` | [`ThinkingConfig`](#thinkingconfig) | 支援的模型為 `{ type: 'adaptive' }` | 控制 Claude 的思考/推理行為。請參閱 [`ThinkingConfig`](#thinkingconfig) 以取得選項 |545| `thinking` | [`ThinkingConfig`](#thinkingconfig) | 支援的模型為 `{ type: 'adaptive' }` | 控制 Claude 的思考/推理行為。請參閱 [`ThinkingConfig`](#thinkingconfig) 以取得選項 |

545| `title` | `string` | `undefined` | 工作階段的顯示標題。使用 `resume` 或 `continue` 繼續時,繼續工作階段的持久化標題優先;使用 [`renameSession()`](#renamesession) 重新標題現有工作階段 |546| `title` | `string` | `undefined` | 工作階段的顯示標題。使用 `resume` 或 `continue` 繼續時,繼續工作階段的持久化標題優先;使用 [`renameSession()`](#renamesession) 重新標題現有工作階段 |

546| `toolAliases` | `Record<string, string>` | `undefined` | 將內建工具名稱對應到 MCP 工具名稱,以便 Claude 呼叫您的 MCP 實作而不是內建工具。例如,`{ Bash: 'mcp__workspace__bash' }` |547| `toolAliases` | `Record<string, string>` | `undefined` | 將內建工具名稱對應到 MCP 工具名稱,以便 Claude 呼叫您的 MCP 實作而不是內建工具。例如,`{ Bash: 'mcp__workspace__bash' }` |


600 : Settings[K] | null;601 : Settings[K] | null;

601 }): Promise<void>;602 }): Promise<void>;

602 updateSettings(603 updateSettings(

603 source: 'localSettings',604 source: 'localSettings' | 'userSettings',

604 settings: Record<string, unknown>,605 settings: Record<string, unknown>,

605 ): Promise<void>;606 ): Promise<void>;

606 initializationResult(): Promise<SDKControlInitializeResponse>;607 initializationResult(): Promise<SDKControlInitializeResponse>;


621 reconnectMcpServer(serverName: string): Promise<void>;622 reconnectMcpServer(serverName: string): Promise<void>;

622 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;623 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;

623 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;624 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;

625 readMcpResource(serverName: string, uri: string): Promise<SDKControlMcpReadResourceResponse>;

624 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;626 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;

625 stopTask(taskId: string): Promise<void>;627 stopTask(taskId: string): Promise<void>;

626 close(): void;628 close(): void;


639| `setModel()` | 變更模型(僅在串流輸入模式中可用)。傳遞 `undefined` 或字串 `"default"` 以重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config) |641| `setModel()` | 變更模型(僅在串流輸入模式中可用)。傳遞 `undefined` 或字串 `"default"` 以重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config) |

640| `setMaxThinkingTokens()` | *已棄用:* 改用 `thinking` 選項。變更最大思考權杖。傳遞 `null` 以將思考重設為工作階段預設值:清除中期工作階段覆蓋,並且對於已停用思考的工作階段,思考保持關閉 |642| `setMaxThinkingTokens()` | *已棄用:* 改用 `thinking` 選項。變更最大思考權杖。傳遞 `null` 以將思考重設為工作階段預設值:清除中期工作階段覆蓋,並且對於已停用思考的工作階段,思考保持關閉 |

641| `applyFlagSettings(settings)` | 在執行時將設定合併到工作階段的旗標設定層(僅在串流輸入模式中可用)。請參閱 [`applyFlagSettings()`](#applyflagsettings) |643| `applyFlagSettings(settings)` | 在執行時將設定合併到工作階段的旗標設定層(僅在串流輸入模式中可用)。請參閱 [`applyFlagSettings()`](#applyflagsettings) |

642| `updateSettings(source, settings)` | 將設定合併到專案的本機設定檔 `.claude/settings.local.json`;它們在下一個請求時生效。僅接受 `source: 'localSettings'` 和允許清單金鑰集(目前為 `outputStyle`),具有字串值;不支援刪除金鑰。在遠端傳輸和其 [`settingSources`](#options) 排除 `local` 的工作階段上拒絕。需要 TypeScript SDK v0.3.257 或更新版本,其捆綁 Claude Code v2.1.257 |644| `updateSettings(source, settings)` | 將一個允許清單金鑰寫入專案的本機設定檔或您的使用者設定檔,以便值在稍後的工作階段中持久化。請參閱 [`updateSettings()`](#updatesettings)。需要 TypeScript SDK v0.3.257 或更新版本,其捆綁 Claude Code v2.1.257 |

643| `initializationResult()` | 傳回完整初始化結果,包括支援的命令、模型、帳戶資訊和輸出樣式設定 |645| `initializationResult()` | 傳回完整初始化結果,包括支援的命令、模型、帳戶資訊和輸出樣式設定 |

644| `reinitialize()` | 重新傳送 `initialize` 控制請求到執行中的 CLI,並傳回新鮮結果而不是快取的首次連線結果。在傳輸間隙後使用它,例如在中斷後重新附加到工作階段,以便待處理的權限請求再次到達您的 `canUseTool` 回呼。使回呼對每個請求 ID 具有冪等性,因為其回應遺失的請求會再次分派。需要 Claude Code v2.1.195 或更新版本 |646| `reinitialize()` | 重新傳送 `initialize` 控制請求到執行中的 CLI,並傳回新鮮結果而不是快取的首次連線結果。在傳輸間隙後使用它,例如在中斷後重新附加到工作階段,以便待處理的權限請求再次到達您的 `canUseTool` 回呼。使回呼對每個請求 ID 具有冪等性,因為其回應遺失的請求會再次分派。需要 Claude Code v2.1.195 或更新版本 |

645| `supportedCommands()` | 傳回可用的命令。從 Agent SDK v0.3.216,清單反映中期工作階段命令變更;請參閱 [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |647| `supportedCommands()` | 傳回可用的命令。從 Agent SDK v0.3.216,清單反映中期工作階段命令變更;請參閱 [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

646| `supportedModels()` | 傳回具有顯示資訊的可用模型 |648| `supportedModels()` | 傳回具有顯示資訊的可用模型 |

647| `supportedAgents()` | 傳回可用的子代理作為 [`AgentInfo`](#agentinfo)`[]` |649| `supportedAgents()` | 傳回可用的子代理作為 [`AgentInfo`](#agentinfo)`[]` |

648| `mcpServerStatus()` | 傳回連線 MCP 伺服器的狀態 |650| `mcpServerStatus()` | 傳回連線 MCP 伺服器的狀態作為 [`McpServerStatus`](#mcpserverstatus)`[]` |

649| `getContextUsage(opts?)` | 傳回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按類別、技能和工具細分工作階段的內容視窗使用量。使用預設 `detail`,它與 `/context` 在互動式工作階段中顯示的資料相同。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |651| `getContextUsage(opts?)` | 傳回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按類別、技能和工具細分工作階段的內容視窗使用量。使用預設 `detail`,它與 `/context` 在互動式工作階段中顯示的資料相同。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |

650| `readFile(path, options?)` | 從工作階段的檔案系統讀取檔案。Claude Code 根據 `cwd` 解析路徑;[`readFile()` 可以讀取什麼](#what-readfile-can-read)列出它提供的檔案。傳遞 `{ maxBytes }` 以變更讀取上限(預設 1 MB,上限 10 MB)和 `{ encoding: 'base64' }` 以取得二進位檔案(例如影片)。使用 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 進行解析,或在權限拒絕、遺失檔案或傳輸錯誤時使用 `null`。需要 TypeScript SDK v0.2.121 或更新版本 |652| `readFile(path, options?)` | 從工作階段的檔案系統讀取檔案。Claude Code 根據 `cwd` 解析路徑;[`readFile()` 可以讀取什麼](#what-readfile-can-read)列出它提供的檔案。傳遞 `{ maxBytes }` 以變更讀取上限(預設 1 MB,上限 10 MB)和 `{ encoding: 'base64' }` 以取得二進位檔案(例如影片)。使用 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 進行解析,或在權限拒絕、遺失檔案或傳輸錯誤時使用 `null`。需要 TypeScript SDK v0.2.121 或更新版本 |

651| `reloadSkills()` | 從磁碟重新載入技能,以便您在中期工作階段新增或編輯的技能可供執行中的工作階段使用。使用列出重新載入後可用技能的 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 進行解析。需要 Agent SDK v0.3.163 或更新版本 |653| `reloadSkills()` | 從磁碟重新載入技能,以便您在中期工作階段新增或編輯的技能可供執行中的工作階段使用。使用列出重新載入後可用技能的 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 進行解析。需要 Agent SDK v0.3.163 或更新版本 |


653| `reconnectMcpServer(serverName)` | 按名稱重新連線 MCP 伺服器。如果名稱也符合設定檔(例如 `.mcp.json` 或 `~/.claude.json`)中的項目,Claude Code 會重新連線您透過 [`mcpServers`](#options) 或 `setMcpServers()` 設定的伺服器,而不是設定檔項目。該解析順序需要 Claude Code v2.1.257 或更新版本 |655| `reconnectMcpServer(serverName)` | 按名稱重新連線 MCP 伺服器。如果名稱也符合設定檔(例如 `.mcp.json` 或 `~/.claude.json`)中的項目,Claude Code 會重新連線您透過 [`mcpServers`](#options) 或 `setMcpServers()` 設定的伺服器,而不是設定檔項目。該解析順序需要 Claude Code v2.1.257 或更新版本 |

654| `toggleMcpServer(serverName, enabled)` | 按名稱啟用或停用 MCP 伺服器,名稱解析與 `reconnectMcpServer()` 相同。停用會中斷伺服器連線 |656| `toggleMcpServer(serverName, enabled)` | 按名稱啟用或停用 MCP 伺服器,名稱解析與 `reconnectMcpServer()` 相同。停用會中斷伺服器連線 |

655| `setMcpServers(servers)` | 動態取代此工作階段的 MCP 伺服器集合。使用命名已新增和移除的伺服器以及任何錯誤的 [`McpSetServersResult`](#mcpsetserversresult) 進行解析 |657| `setMcpServers(servers)` | 動態取代此工作階段的 MCP 伺服器集合。使用命名已新增和移除的伺服器以及任何錯誤的 [`McpSetServersResult`](#mcpsetserversresult) 進行解析 |

658| `readMcpResource(serverName, uri)` | *Alpha。* 從連線的 MCP 伺服器讀取一個 MCP Apps `ui://` 資源,以便您的應用程式可以呈現工具的小工具。使用 [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) 進行解析。需要 TypeScript Agent SDK v0.3.280 或更新版本 |

656| `streamInput(stream)` | 將輸入訊息串流到查詢以進行多回合對話 |659| `streamInput(stream)` | 將輸入訊息串流到查詢以進行多回合對話 |

657| `stopTask(taskId)` | 按 ID 停止執行中的背景任務 |660| `stopTask(taskId)` | 按 ID 停止執行中的背景任務 |

658| `close()` | 關閉查詢並終止基礎程序。強制結束查詢並清理所有資源 |661| `close()` | 關閉查詢並終止基礎程序。強制結束查詢並清理所有資源 |


675 678 

676連續呼叫淺層合併頂層金鑰。第二個呼叫搭配 `{ permissions: {...} }` 會取代來自先前呼叫的整個 `permissions` 物件,而不是深層合併到其中。若要從旗標層清除金鑰,請為該金鑰傳遞 `null`。大多數金鑰隨後會回退到較低優先順序的來源。清除的 `model` 會重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config),即使設定檔設定 `model`。傳遞 `undefined` 沒有效果,因為 JSON 序列化會將其捨棄。679連續呼叫淺層合併頂層金鑰。第二個呼叫搭配 `{ permissions: {...} }` 會取代來自先前呼叫的整個 `permissions` 物件,而不是深層合併到其中。若要從旗標層清除金鑰,請為該金鑰傳遞 `null`。大多數金鑰隨後會回退到較低優先順序的來源。清除的 `model` 會重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config),即使設定檔設定 `model`。傳遞 `undefined` 沒有效果,因為 JSON 序列化會將其捨棄。

677 680 

681三個金鑰除了 `model` 外會重設工作階段狀態而不是回退:

682 

683* `effortLevel: null` 將工作階段返回到模型的預設努力等級,而不是 `query()` 的 `effort` 選項或設定檔中的 `effortLevel`。

684* `agent: null` 從下一回合開始以沒有代理的方式執行主執行緒,而不是還原 `query()` 的 `agent` 選項或設定檔中的 `agent`。如果清除的代理已套用自己的模型,工作階段會返回到在啟動時解析的模型。

685* `ultracode: null` 關閉 ultracode,如 `false` 一樣,而不是還原設定檔中的 `ultracode` 值。工作階段保留其目前的努力等級,因此在同一呼叫中傳遞 `effortLevel` 以變更它。

686 

678僅在串流輸入模式中可用,與 `setModel()` 和 `setPermissionMode()` 的約束相同。687僅在串流輸入模式中可用,與 `setModel()` 和 `setPermissionMode()` 的約束相同。

679 688 

680下面的範例在中期工作階段切換作用中模型,然後清除覆蓋,以便模型重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config)。689下面的範例在中期工作階段切換作用中模型,然後清除覆蓋,以便模型重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config)。


695 `applyFlagSettings()` 僅限 TypeScript。Python SDK 不公開等效方法。704 `applyFlagSettings()` 僅限 TypeScript。Python SDK 不公開等效方法。

696</Note>705</Note>

697 706 

707<h4 id="updatesettings">

708 `updateSettings()`

709</h4>

710 

711將一個允許清單金鑰寫入磁碟上的設定檔,以便值在稍後載入該來源的工作階段中持久化。每個來源接受一個金鑰,具有字串值:

712 

713* **`"localSettings"`**:接受 `outputStyle` 並將其合併到專案的本機設定檔 `.claude/settings.local.json`。新樣式在工作階段的下一個請求時生效。

714* **`"userSettings"`**:接受 `effortLevel` 並將其儲存為工作階段目前模型的預設[努力等級](/docs/zh-TW/model-config#adjust-effort-level),在您的使用者設定檔中的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 下。傳遞 `max` 不會寫入任何內容,因為 `max` 僅限工作階段。執行中的工作階段無論如何都保留其目前的努力等級,因此當您也想變更該級別時呼叫 [`applyFlagSettings()`](#applyflagsettings)。此來源需要 TypeScript SDK v0.3.277 或更新版本,其捆綁 Claude Code v2.1.277。

715 

716當請求攜帶任何其他金鑰、工作階段在遠端傳輸上執行,以及當工作階段的 [`settingSources`](#options) 排除您命名的來源時,呼叫會拒絕。不支援刪除金鑰。

717 

698<h3 id="warmquery">718<h3 id="warmquery">

699 `WarmQuery`719 `WarmQuery`

700</h3>720</h3>


744當請求未攜帶 hooks 時,Claude Code 會省略該欄位。當請求攜帶 hooks 時,值取決於請求是否是工作階段的首次初始化,以及對於重複的請求,它如何到達工作階段:764當請求未攜帶 hooks 時,Claude Code 會省略該欄位。當請求攜帶 hooks 時,值取決於請求是否是工作階段的首次初始化,以及對於重複的請求,它如何到達工作階段:

745 765 

746* `true`:Claude Code 已註冊 hooks。工作階段的首次初始化傳回此值。透過 CLI 的 stdin 傳送的重複初始化也傳回 `true`。在這種情況下,新請求中的 hooks 會取代先前註冊的 hooks。766* `true`:Claude Code 已註冊 hooks。工作階段的首次初始化傳回此值。透過 CLI 的 stdin 傳送的重複初始化也傳回 `true`。在這種情況下,新請求中的 hooks 會取代先前註冊的 hooks。

747* `false`:Claude Code 已忽略 hooks。傳送到遠端工作階段的重複初始化傳回此值,因此加入工作階段的第二個用戶端無法取代第一個用戶端註冊的 hooks。767* `false`:Claude Code 已忽略 hooks。傳送到遠端工作階段的重複初始化傳回此值,因此加入工作階段的第二個使用者無法取代第一個使用者註冊的 hooks。

748 768 

749在 Agent SDK v0.3.238 之前,回應永遠不會攜帶該欄位,Claude Code 會在每次重複初始化時忽略 `hooks`。769在 Agent SDK v0.3.238 之前,回應永遠不會攜帶該欄位,Claude Code 會在每次重複初始化時忽略 `hooks`。

750 770 


781 801 

782直接驅動 CLI 控制協定而不是透過 `interrupt()` 的用戶端可以在 `interrupt` 控制請求上設定 `cancel_queued: true`。Claude Code v2.1.219 及更新版本在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中公告支援 `interrupt_cancel_queued_v1` 功能;較舊的 CLI 會忽略該欄位並讓佇列訊息照常執行。這樣的中斷也會取消每個原本會列在 `still_queued` 下的訊息:收據會改為在 `cancelled` 下列出它們,`still_queued` 為空,它們都不會執行。802直接驅動 CLI 控制協定而不是透過 `interrupt()` 的用戶端可以在 `interrupt` 控制請求上設定 `cancel_queued: true`。Claude Code v2.1.219 及更新版本在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中公告支援 `interrupt_cancel_queued_v1` 功能;較舊的 CLI 會忽略該欄位並讓佇列訊息照常執行。這樣的中斷也會取消每個原本會列在 `still_queued` 下的訊息:收據會改為在 `cancelled` 下列出它們,`still_queued` 為空,它們都不會執行。

783 803 

784`cancelled` 清單與 `still_queued` 具有相同的注意事項。`interrupt()` 方法永遠不會傳送 `cancel_queued`,因此它解析的收據不會攜帶 `cancelled`。804`cancelled` 清單與 `still_queued` 具有相同的注意事項。`interrupt()` 方法永遠不會傳送 `cancel_queued`,所以它解析的收據不會攜帶 `cancelled`。

785 805 

786收據是在處理中斷時拍攝的快照,在乾淨中斷時,它在中斷回合的 [`SDKResultMessage`](#sdkresultmessage) 之前到達。讀取收據而不是在該結果後檢查佇列:迴圈立即啟動下一個佇列回合,因此您在結果後檢查的佇列已經變更。806收據是在處理中斷時拍攝的快照,在乾淨中斷時,它在中斷回合的 [`SDKResultMessage`](#sdkresultmessage) 之前到達。讀取收據而不是在該結果後檢查佇列:迴圈立即啟動下一個佇列回合,因此您在結果後檢查的佇列已經變更。

787 807 


942 962 

943`skills` 列出重新載入後可用的技能,採用 `supportedCommands()` 傳回的相同 [`SlashCommand`](#slashcommand) 形狀。963`skills` 列出重新載入後可用的技能,採用 `supportedCommands()` 傳回的相同 [`SlashCommand`](#slashcommand) 形狀。

944 964 

965<h3 id="sdkcontrolmcpreadresourceresponse">

966 `SDKControlMcpReadResourceResponse`

967</h3>

968 

969[`readMcpResource()`](#query-object) 的傳回類型,攜帶 MCP 伺服器的 `resources/read` 結果。需要 TypeScript Agent SDK v0.3.280 或更新版本。

970 

971```typescript theme={null}

972type SDKControlMcpReadResourceResponse = {

973 contents: {

974 uri: string;

975 mimeType?: string;

976 text?: string;

977 blob?: string;

978 _meta?: Record<string, unknown>;

979 }[];

980};

981```

982 

983將伺服器名稱作為 `mcpServerStatus()` 報告的名稱和 `ui://` URI(例如工具在其 [`_meta`](#mcpserverstatus) 中宣告的 `ui.resourceUri`)傳遞給 `readMcpResource()`。呼叫會針對任何其他 URI 配置、您的應用程式自己託管的 [SDK MCP 伺服器](#createsdkmcpserver) 以及未連線的伺服器而拒絕。當初始化訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_read_resource_v1` 時可用。

984 

985每個 `contents` 項目都是伺服器傳送的一個內容項目。`blob` 為二進位項目保留 base64 資料,`_meta` 是項目自己的 `_meta`,其中 MCP Apps 伺服器放置資源的 `ui.csp` 和 `ui.permissions`。內容是不受信任的第三方 HTML,因此在沙箱中呈現。

986 

945<h3 id="agentdefinition">987<h3 id="agentdefinition">

946 `AgentDefinition`988 `AgentDefinition`

947</h3>989</h3>


1268如需建立和使用外掛程式的完整資訊,請參閱[外掛程式](/docs/zh-TW/agent-sdk/plugins)。1310如需建立和使用外掛程式的完整資訊,請參閱[外掛程式](/docs/zh-TW/agent-sdk/plugins)。

1269 1311 

1270<h2 id="message-types">1312<h2 id="message-types">

1271 消息類型1313 訊息類型

1272</h2>1314</h2>

1273 1315 

1274<h3 id="sdkmessage">1316<h3 id="sdkmessage">

1275 `SDKMessage`1317 `SDKMessage`

1276</h3>1318</h3>

1277 1319 

1278查詢返回的所有可能消息的聯合類型。1320查詢傳回的所有可能訊息的聯合類型。

1279 1321 

1280```typescript theme={null}1322```typescript theme={null}

1281type SDKMessage =1323type SDKMessage =


1321 `SDKAssistantMessage`1363 `SDKAssistantMessage`

1322</h3>1364</h3>

1323 1365 

1324助手響應消息。1366助手回應訊息。

1325 1367 

1326```typescript theme={null}1368```typescript theme={null}

1327type SDKAssistantMessage = {1369type SDKAssistantMessage = {

1328 type: "assistant";1370 type: "assistant";

1329 uuid: UUID;1371 uuid: UUID;

1330 session_id: string;1372 session_id: string;

1331 message: BetaMessage; // 來自 Anthropic SDK1373 message: BetaMessage; // From Anthropic SDK

1332 parent_tool_use_id: string | null;1374 parent_tool_use_id: string | null;

1333 error?: SDKAssistantMessageError;1375 error?: SDKAssistantMessageError;

1334 aborted?: true;1376 aborted?: true;


1339};1381};

1340```1382```

1341 1383 

1342`message` 字段是來自 Anthropic SDK 的 [`BetaMessage`](https://platform.claude.com/docs/zh-TW/api/messages/create)。它包括 `id`、`content`、`model`、`stop_reason` 和 `usage` 等字段。1384`message` 欄位是來自 Anthropic SDK 的 [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create)。它包含 `id`、`content`、`model`、`stop_reason` 和 `usage` 等欄位。

1343 1385 

1344`SDKAssistantMessageError` 是以下之一:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'` 或 `'unknown'`。其中四個值的含義超出了它們的名稱:1386`SDKAssistantMessageError` 是以下其中之一:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'` 或 `'unknown'`。其中四個值的含義超出其名稱所表示的內容:

1345 1387 

1346* `'model_not_found'`:選定的模型不存在或對您的帳戶或部署不可用1388* `'model_not_found'`:選定的模型不存在或無法供您的帳戶或部署使用

1347* `'overloaded'`:API 返回了 529,因為伺服器已滿載,與 `'rate_limit'` 相對,後者是針對您配額的 4291389* `'overloaded'`:API 傳回 529,因為伺服器已滿載,與 `'rate_limit'` 相對,後者是針對您配額的 429

1348* `'account_on_hold'`:[您的帳戶已被凍結](/docs/zh-TW/errors#your-account-is-on-hold)1390* `'account_on_hold'`:[您的帳戶已被暫停](/docs/zh-TW/errors#your-account-is-on-hold)

1349* `'cloud_credential_error'`:Claude Code 無法在其運行的機器上獲得可用的 AWS 或 Google Cloud 認證,因此沒有請求到達雲端提供商。通常的原因是在該機器上過期或從未完成的雲端登入,儘管暫時無法到達的認證服務會報告相同的值。請參閱[無法載入 AWS 或 Google Cloud 認證](/docs/zh-TW/errors#could-not-load-aws-or-google-cloud-credentials)。需要 TypeScript Agent SDK v0.3.267 或更高版本,其中包含 Claude Code v2.1.2671391* `'cloud_credential_error'`:Claude Code 無法在其執行的機器上取得可用的 AWS 或 Google Cloud 認證,因此沒有請求到達雲端提供者。通常的原因是雲端登入已過期或從未在該機器上完成,但暫時無法連線的認證服務會報告相同的值。請參閱[無法載入 AWS 或 Google Cloud 認證](/docs/zh-TW/errors#could-not-load-aws-or-google-cloud-credentials)。需要 TypeScript Agent SDK v0.3.267 或更新版本,其中包含 Claude Code v2.1.267

1350 1392 

1351當中斷或中止在流完成之前截斷助手消息時,`aborted` 為 `true`:消息沒有 `stop_reason`,內容可能在中間詞結束。該字段在正常完成的消息上不存在。它需要 Agent SDK v0.3.214 或更高版本。1393當中斷或中止在串流完成前截斷助手訊息時,`aborted` 為 `true`:訊息沒有 `stop_reason`,內容可能在中間詞處結束。該欄位在正常完成的訊息上不存在。它需要 Agent SDK v0.3.214 或更新版本。

1352 1394 

1353Claude Code 在轉數的第一個助手消息上設置 `user_message_uuid` 和 `user_message_uuids`,條件在 [`user_message_uuid`](#user_message_uuid) 中。1395Claude Code 在轉換的第一個助手訊息上設定 `user_message_uuid` 和 `user_message_uuids`,條件在 [`user_message_uuid`](#user_message_uuid) 中。

1354 1396 

1355`timestamp` 是 ISO 8601 時間,表示消息內容在產生它的程序上完成生成的時間。該值來自該機器的時鐘,因此僅用於顯示,不要按它排序消息。一個 API 轉數可以產生多個共享 `message.id` 的助手消息,每個都有自己的 `timestamp`。當字段不存在時,回退到您收到消息的時間。1397`timestamp` 是訊息內容在產生它的程序上完成生成的 ISO 8601 時間。該值來自該機器的時鐘,因此僅用於顯示,不要按其排序訊息。一個 API 轉換可以產生多個共享 `message.id` 的助手訊息,每個都有自己的 `timestamp`。當欄位不存在時,回退到您收到訊息的時間。

1356 1398 

1357`context_usage` 是 `/context` 報告的結構化副本,類型為 [`SDKContextUsage`](#sdkcontextusage),需要 Agent SDK v0.3.232 或更高版本。當您發送 `/context` 作為提示時,Claude Code 將報告作為助手消息傳遞,其 `message.content` 保存 markdown 表格,並將 `context_usage` 附加到同一消息。Claude Code 不在任何其他助手消息上設置該字段,較早的版本傳遞 `/context` 表格而不設置它,因此當字段存在時從字段讀取分解,當不存在時回退到 markdown 文本。1399`context_usage` 是 `/context` 報告的結構化副本,類型為 [`SDKContextUsage`](#sdkcontextusage),需要 Agent SDK v0.3.232 或更新版本。當您以提示形式傳送 `/context` 時,Claude Code 會將報告作為助手訊息傳遞,其 `message.content` 包含 markdown 表格,並將 `context_usage` 附加到同一訊息。Claude Code 不會在任何其他助手訊息上設定該欄位,較早的版本會傳遞 `/context` 表格而不設定它,因此當欄位存在時從欄位讀取明細,當不存在時回退到 markdown 文字。

1358 1400 

1359<h3 id="sdkusermessage">1401<h3 id="sdkusermessage">

1360 `SDKUserMessage`1402 `SDKUserMessage`

1361</h3>1403</h3>

1362 1404 

1363使用者輸入消息。1405使用者輸入訊息。

1364 1406 

1365```typescript theme={null}1407```typescript theme={null}

1366type SDKUserMessage = {1408type SDKUserMessage = {

1367 type: "user";1409 type: "user";

1368 uuid?: UUID;1410 uuid?: UUID;

1369 session_id?: string;1411 session_id?: string;

1370 message: MessageParam; // 來自 Anthropic SDK1412 message: MessageParam; // From Anthropic SDK

1413 pasted_content?: MessageParam["content"][];

1371 parent_tool_use_id: string | null;1414 parent_tool_use_id: string | null;

1372 isSynthetic?: boolean;1415 isSynthetic?: boolean;

1373 shouldQuery?: boolean;1416 shouldQuery?: boolean;

1374 tool_use_result?: unknown;1417 tool_use_result?: unknown;

1375 origin?: SDKMessageOrigin;1418 origin?: SDKMessageOrigin;

1419 inline_pastes?: string[];

1376};1420};

1377```1421```

1378 1422 

1379將 `shouldQuery` 設置為 `false` 以將消息附加到記錄而不觸發助手轉數。消息被保留並合併到下一個觸發轉數的使用者消息中。使用此方法注入上下文,例如您在帶外運行的命令的輸出,而無需在其上花費模型調用。1423設定 `pasted_content` 以傳送使用者貼上到您的提示 UI 中而不是輸入的內容,每個貼上一個項目,每個都是字串或內容區塊陣列。Claude Code 按順序在輸入的文字後附加每個項目的文字,並可能將每個貼上內容包裝在 `<pasted_content>` 標籤中。除文字外的區塊會被忽略,因此在 `message.content` 中傳送影像和文件。需要 Agent SDK v0.3.277 或更新版本。

1380 1424 

1381在攜帶 `tool_result` 塊的消息上,`tool_use_result` 是工具的結構化輸出物件,而不是發送給模型的文本。其形狀取決於匹配 `tool_use` 塊命名的工具,因此該字段的類型為 `unknown`;內建形狀列在[工具輸出類型](#tool-output-types)下。1425設定 `shouldQuery` 為 `false` 以將訊息附加到文字記錄而不觸發助手轉換。訊息被保留並合併到下一個觸發轉換的使用者訊息中。使用此方法注入內容,例如您在帶外執行的命令的輸出,而不在模型呼叫上花費。

1382 1426 

1383對於 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。在 `completed` 結果上,`content` 保存子代理的報告,不包含 Claude Code 附加到 `tool_result` 文本的代理 ID 和使用情況尾部,因此應從 `tool_use_result` 呈現,而不是解析該文本。1427在攜帶 `tool_result` 區塊的訊息上,`tool_use_result` 是工具的結構化輸出物件,而不是傳送給模型的文字。其形狀取決於匹配 `tool_use` 區塊命名的工具,因此欄位的類型為 `unknown`;內建形狀列在[工具輸出類型](#tool-output-types)下。

1384 1428 

1385對於其結果包含 `resource_link` 塊的 MCP 工具,`tool_use_result` 是一個物件,其中包含 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 項目的 `resourceLinks` 陣列。Claude 將每個連結作為 `tool_result` 塊中的一行文本接收,因此讀取 `resourceLinks` 以呈現伺服器返回的檔案,而不是解析該文本。Claude Code 在結果沒有連結時省略 `resourceLinks`,在來自子代理的結果上省略,每個結果最多保留 50 個連結,並在陣列達到 64 KiB 序列化 JSON 後停止添加連結。`resourceLinks` 需要 Agent SDK v0.3.257 或更高版本。1429對於 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。在 `completed` 結果上,`content` 包含子代理的報告,不包含 Claude Code 附加到 `tool_result` 文字的代理 ID 和使用情況預告片,因此從 `tool_use_result` 呈現而不是解析該文字。

1430 

1431對於其結果包含 `resource_link` 區塊的 MCP 工具,`tool_use_result` 是一個物件,其中包含 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 項目的 `resourceLinks` 陣列。Claude 將每個連結作為 `tool_result` 區塊中的一行文字接收,因此讀取 `resourceLinks` 以呈現伺服器傳回的檔案,而不是解析該文字。Claude Code 在結果沒有連結時省略 `resourceLinks`,在來自子代理的結果上省略,每個結果最多保留 50 個連結,並在陣列達到 64 KiB 序列化 JSON 後停止新增連結。`resourceLinks` 需要 Agent SDK v0.3.257 或更新版本。

1432 

1433設定 `inline_pastes` 以告訴 Claude Code `message.content` 的哪些部分使用者貼上而不是輸入,每個貼上一個字串。提示文字保留在使用者放置的位置。Claude Code 可能會在其所在位置將每個列出的貼上內容包裝在 `<pasted_content>` 標籤中,以便 Claude 可以區分貼上的材料與使用者自己的話語。只有提示最後一個文字區塊中的貼上內容會被包裝。需要 TypeScript Agent SDK v0.3.280 或更新版本。

1386 1434 

1387<h3 id="sdkusermessagereplay">1435<h3 id="sdkusermessagereplay">

1388 `SDKUserMessageReplay`1436 `SDKUserMessageReplay`

1389</h3>1437</h3>

1390 1438 

1391帶有必需 UUID 的重放使用者消息。1439具有必需 UUID 的重播使用者訊息。

1392 1440 

1393```typescript theme={null}1441```typescript theme={null}

1394type SDKUserMessageReplay = {1442type SDKUserMessageReplay = {


1404};1452};

1405```1453```

1406 1454 

1407從會話外部注入的使用者轉數,其 [`origin`](#sdkmessageorigin) 類型為 `peer` 或 `channel`,無論是在活躍轉數期間傳遞還是在會話閒置時啟動新轉數,都會作為重放到達流。在 v2.1.207 之前,在會話閒置時傳遞的注入轉數在流上不產生任何消息,僅在您重新讀取記錄時出現。1455從工作階段外部注入的使用者轉換,其 [`origin`](#sdkmessageorigin) 類型為 `peer` 或 `channel` 的轉換,無論是在活躍轉換期間傳遞還是在工作階段閒置時啟動新轉換,都會作為重播到達串流。在 v2.1.207 之前,在工作階段閒置時傳遞的注入轉換在串流上不產生訊息,只在您重新讀取文字記錄時出現。

1408 1456 

1409<h3 id="sdkresultmessage">1457<h3 id="sdkresultmessage">

1410 `SDKResultMessage`1458 `SDKResultMessage`

1411</h3>1459</h3>

1412 1460 

1413最終結果消息。1461最終結果訊息。

1414 1462 

1415```typescript theme={null}1463```typescript theme={null}

1416type SDKResultMessage =1464type SDKResultMessage =


1477 };1525 };

1478```1526```

1479 1527 

1480結果上的多個字段除了 `subtype` 之外還攜帶診斷詳細資訊:1528結果上的多個欄位除了 `subtype` 之外還提供診斷詳細資訊:

1481 1529 

1482* `api_error_status`:終止對話的 API 錯誤的 HTTP 狀態碼。當轉數在沒有 API 錯誤的情況下結束時,不存在或為 `null`。1530* `api_error_status`:終止對話的 API 錯誤的 HTTP 狀態碼。當轉換在沒有 API 錯誤的情況下結束時不存在或為 `null`。

1483* `ttft_ms`:首個令牌的時間(毫秒),在第一個完整助手消息到達時測量。僅在成功分支上出現。1531* `ttft_ms`:首個令牌的時間(毫秒),在第一個完整助手訊息到達時測量。僅在成功分支上存在。

1484* `ttft_stream_ms`:直到第一個 `message_start` 流事件的時間(毫秒),當響應流打開時。低於 `ttft_ms`;兩者之間的差距是流式傳輸第一條消息所花費的時間。僅在成功分支上出現。1532* `ttft_stream_ms`:直到第一個 `message_start` 串流事件(當回應串流開啟時)的時間(毫秒)。低於 `ttft_ms`;兩者之間的差距是串流第一個訊息所花費的時間。僅在成功分支上存在。

1485* `user_message_uuid`:此轉數回答的您發送的消息的 `uuid`。請參閱 [`user_message_uuid`](#user_message_uuid) 以了解哪些結果攜帶它。1533* `user_message_uuid`:您傳送的訊息的 `uuid`,此轉換回答了該訊息。請參閱 [`user_message_uuid`](#user_message_uuid) 以了解哪些結果攜帶它。

1486* `user_message_uuids`:Claude Code 在此轉數中回答的您發送的每條消息的 `uuid`。請參閱 [`user_message_uuids`](#user_message_uuids)。1534* `user_message_uuids`:您傳送的每個訊息的 `uuid`,Claude Code 在此轉換中回答了這些訊息。請參閱 [`user_message_uuids`](#user_message_uuids)。

1487* `request_sent_wall_ms`:Claude Code 分派 API 請求的紀元毫秒,用於與伺服器端時間戳記的連接。僅與 [`user_message_uuid`](#user_message_uuid) 一起出現,在成功結果上,其中 `is_error` 為 false,且轉數發送了 API 請求。1535* `request_sent_wall_ms`:Claude Code 分派 API 請求的紀元毫秒,用於與伺服器端時間戳記的連接。僅與 [`user_message_uuid`](#user_message_uuid) 一起存在,在成功結果上,其中 `is_error` 為 false,其轉換傳送了 API 請求。

1488* `first_content_frame_ms`:直到第一個 `content_block_start` 或 `content_block_delta` 流事件的時間(毫秒),將思考塊計為內容。僅在成功分支上出現,當 `is_error` 為 false 時。需要 Agent SDK v0.3.260 或更高版本。1536* `first_content_frame_ms`:直到第一個 `content_block_start` 或 `content_block_delta` 串流事件的時間(毫秒),將思考區塊計為內容。僅在成功分支上存在,當 `is_error` 為 false 時。需要 Agent SDK v0.3.260 或更新版本。

1489* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:上傳轉數第一個流事件的時序。Claude Code 僅在它流式傳輸到 claude.ai 的會話中記錄它們,例如[雲端會話](/docs/zh-TW/claude-code-on-the-web),而 `query()` 產生的結果不攜帶它們。需要 Agent SDK v0.3.260 或更高版本。1537* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:上傳轉換第一個串流事件的計時。Claude Code 僅在它串流到 claude.ai 的工作階段中記錄它們,例如[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),`query()` 產生的結果不攜帶它們。需要 Agent SDK v0.3.260 或更新版本。

1490* `usage`:僅限主代理迴圈。排除子代理和輔助模型調用,在流式輸入會話中按轉數計算。對於令牌/成本會計,優先使用 `modelUsage`。1538* `usage`:僅限主代理迴圈。排除子代理和輔助模型呼叫,在串流輸入工作階段中按轉換計算。優先使用 `modelUsage` 進行令牌/成本會計。

1491* `modelUsage`:在此 `query()` 調用期間通過查詢管道進行的每個模型調用的每模型總計,包括主迴圈、子代理和內部調用(例如壓縮和 Workflow 代理)。該管道外的輔助調用(例如權限分類器和令牌計數請求)被排除。在流式輸入會話中,總計在轉數間累積,因此讀取最新結果而不是在結果間求和。請參閱[在流式輸入模式中追蹤成本](/docs/zh-TW/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)以了解重置,以及[在會話崩潰後恢復總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)以了解歸零結果。1539* `modelUsage`:在此 `query()` 呼叫期間通過查詢管道進行的每個模型呼叫的每個模型總計,包括主迴圈、子代理和內部呼叫,例如壓縮和 Workflow 代理。該管道外的輔助呼叫,例如權限分類器和令牌計數請求,被排除。恢復工作階段的呼叫也計算[從工作階段較早呼叫恢復的每個模型總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。在串流輸入工作階段中,總計在轉換中是累積的,因此讀取最新結果而不是跨結果求和。請參閱[在串流輸入模式中追蹤成本](/docs/zh-TW/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)以了解重設,以及[在工作階段崩潰後恢復總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)以了解歸零結果。

1492* `total_cost_usd`:此 `query()` 調用的累積估計成本(美元),涵蓋與 `modelUsage` 相同的調用並在相同點重置。這是一個估計值,不是帳單聲明。請參閱[追蹤成本和使用情況](/docs/zh-TW/agent-sdk/cost-tracking)以了解準確性注意事項。1540* `total_cost_usd`:累積估計成本(美元),涵蓋與 `modelUsage` 相同的呼叫並在相同點重設。恢復工作階段的呼叫也計算[從工作階段較早呼叫恢復的總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。這是估計值,不是帳單聲明。請參閱[追蹤成本和使用情況](/docs/zh-TW/agent-sdk/cost-tracking)以了解準確性注意事項。

1493* `queued_turn_count`:您發送的帶有 `origin: { kind: "human" }` 的消息數量,在 Claude Code 產生結果時仍在等待。請參閱 [`queued_turn_count`](#queued_turn_count) 以了解 `0` 和缺少的字段告訴您什麼。1541* `queued_turn_count`:您傳送的帶有 `origin: { kind: "human" }` 的訊息數量,在 Claude Code 產生結果時仍在等待。請參閱 [`queued_turn_count`](#queued_turn_count) 以了解 `0` 和不存在的欄位告訴您什麼。

1494* `startup_failure_reason`:Claude Code 拒絕啟動的原因,在它在已知啟動失敗時寫入的 `error_during_execution` 結果上。請參閱 [`startup_failure_reason`](#startup_failure_reason) 以了解值以及哪些失敗攜帶它。需要 Agent SDK v0.3.274 或更高版本。1542* `startup_failure_reason`:Claude Code 拒絕啟動的原因,在它在已知啟動失敗時寫入的 `error_during_execution` 結果上。請參閱 [`startup_failure_reason`](#startup_failure_reason) 以了解值以及哪些失敗攜帶它。需要 Agent SDK v0.3.274 或更新版本。

1495* `terminal_reason`:迴圈結束的原因。為 `"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"` 或 `"turn_setup_failed"` 之一。1543* `terminal_reason`:迴圈結束的原因。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"` 或 `"turn_setup_failed"` 之一。

1496* `fast_mode_state`:為 `"on"`、`"off"` 或 `"cooldown"` 之一。1544* `fast_mode_state`:`"on"`、`"off"` 或 `"cooldown"` 之一。

1497* `fast_mode_disabled_reason`:為什麼[快速模式](/docs/zh-TW/fast-mode)現在不可用。當沒有任何東西阻止快速模式時不存在,儘管請求仍可能以標準速度運行。在快速模式速率限制後的冷卻期間,Claude Code 報告 `fast_mode_state: "cooldown"` 且沒有原因代碼,並在冷卻期過期時重新啟用快速模式。需要 Claude Code v2.1.219 或更高版本。1545* `fast_mode_disabled_reason`:為什麼[快速模式](/docs/zh-TW/fast-mode)現在不可用。當沒有任何東西阻止快速模式時不存在,儘管請求仍可能以標準速度執行。在快速模式速率限制後的冷卻期間,Claude Code 報告 `fast_mode_state: "cooldown"` 而沒有原因代碼,並在冷卻期過期時重新啟用快速模式。需要 Claude Code v2.1.219 或更新版本。

1498 1546 

1499使用原因代碼在您自己的 UI 中解釋為什麼快速模式已關閉,而不是重新推導可用性。每個代碼命名阻止快速模式的檢查:1547使用原因代碼在您自己的 UI 中解釋為什麼快速模式關閉,而不是重新推導可用性。每個代碼命名阻止快速模式的檢查:

1500 1548 

1501| 原因代碼 | 含義 |1549| 原因代碼 | 含義 |

1502| ---------------------- | ------------------------------------------------------------------------------------------------------------ |1550| ---------------------- | -------------------------------------------------------------------------------------------------------------- |

1503| `free` | 帳戶沒有快速模式所需的付費訂閱或使用額度 |1551| `free` | 帳戶沒有快速模式所需的付費訂閱或使用額度 |

1504| `preference` | 組織已禁用快速模式 |1552| `preference` | 組織已禁用快速模式 |

1505| `extra_usage_disabled` | 帳戶已關閉使用額度 |1553| `extra_usage_disabled` | 帳戶已關閉使用額度 |

1506| `network_error` | [可用性檢查](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)無法到達 `api.anthropic.com` |1554| `network_error` | [可用性檢查](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)無法連線到 `api.anthropic.com` |

1507| `unknown` | Claude Code 無法確定可用性 |1555| `unknown` | Claude Code 無法確定可用性 |

1508| `not_first_party` | 會話使用 Anthropic API 以外的提供商 |1556| `not_first_party` | 工作階段使用 Anthropic API 以外的提供者 |

1509| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-TW/env-vars) 已設置 |1557| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-TW/env-vars) 已設定 |

1510| `model_not_allowed` | 快速模式 Opus 模型不在組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單中 |1558| `model_not_allowed` | 快速模式 Opus 模型不在組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單中 |

1511| `sdk_opt_in_required` | 會話尚未選擇加入快速模式:在 [`settings`](#options) 選項中傳遞 `fastMode: true` 或通過 [`applyFlagSettings()`](#applyflagsettings) |1559| `sdk_opt_in_required` | 工作階段尚未選擇加入快速模式:在 [`settings`](#options) 選項中或通過 [`applyFlagSettings()`](#applyflagsettings) 傳遞 `fastMode: true` |

1512| `pending` | 可用性檢查尚未完成 |1560| `pending` | 可用性檢查尚未完成 |

1513 1561 

1514相同的字段對出現在 [`SDKSystemMessage`](#sdksystemmessage) 和 [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) 上,因此您可以在第一個轉數之前讀取快速模式狀態。1562相同的欄位對出現在 [`SDKSystemMessage`](#sdksystemmessage) 和 [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) 上,因此您可以在第一個轉換之前讀取快速模式狀態。

1563 

1564`origin` 欄位轉發觸發此結果的使用者訊息的 [`SDKMessageOrigin`](#sdkmessageorigin)。當 SDK 注入合成後續轉換(例如針對完成的背景任務)時,生成的 `SDKResultMessage` 攜帶 `origin: { kind: "task-notification" }`。其觸發器觸發且伺服器驗證的例程和來自您其他工作階段的訊息也會到達此類型,每個都帶有[任務通知子類型](#task-notification-subkinds)中描述的 `subkind`。檢查 `kind` 以區分回答您提示的結果與注入的後續內容,然後在路由或抑制它們之前進行區分。如果您的應用程式[宣告排定的執行](#declare-a-scheduled-run),其結果也攜帶 `kind: "task-notification"`,因此不要僅在 `kind` 上抑制。

1515 1565 

1516`origin` 字段轉發觸發此結果的使用者消息的 [`SDKMessageOrigin`](#sdkmessageorigin)。當 SDK 注入合成後續轉數(例如針對完成的背景任務)時,生成的 `SDKResultMessage` 攜帶 `origin: { kind: "task-notification" }`。例程的觸發器已觸發且伺服器驗證的來自您其他會話的消息也會到達此類型,每個都帶有[任務通知子類型](#task-notification-subkinds)中描述的 `subkind`。檢查 `kind` 以區分回答您的提示的結果與注入的後續,然後再路由或抑制它們。1566當多個背景任務完成一起排隊時,Claude Code 可以在一個轉換中回答它們,而不是每個一個轉換。每個完成仍會產生自己的結果與此來源。Claude Code 一起回答的完成中除最後一個外的所有完成都會按順序產生帶有 `num_turns: 0` 的空結果,最後一個的結果攜帶回答它們全部的轉換。

1517 1567 

1518該字段對於在任何使用者轉數之前發出的結果(例如啟動錯誤)不存在。1568該欄位對於任何使用者轉換之前發出的結果(例如啟動錯誤)不存在。

1519 1569 

1520當 `PreToolUse` hook 返回 `permissionDecision: "defer"` 時,結果具有 `stop_reason: "tool_deferred"` 和 `deferred_tool_use` 攜帶待處理工具的 `id`、`name` 和 `input`。讀取此字段以在您自己的 UI 中顯示請求,然後使用相同的 `session_id` 恢復以繼續。請參閱[稍後延遲工具調用](/docs/zh-TW/hooks#defer-a-tool-call-for-later)以了解完整往返。1570當 `PreToolUse` 鉤子傳回 `permissionDecision: "defer"` 時,結果具有 `stop_reason: "tool_deferred"` 和 `deferred_tool_use` 攜帶待處理工具的 `id`、`name` 和 `input`。讀取此欄位以在您自己的 UI 中呈現請求,然後使用相同的 `session_id` 恢復以繼續。請參閱[延遲工具呼叫以供稍後使用](/docs/zh-TW/hooks#defer-a-tool-call-for-later)以了解完整往返。

1521 1571 

1522<h4 id="user_message_uuid">1572<h4 id="user_message_uuid">

1523 `user_message_uuid`1573 `user_message_uuid`

1524</h4>1574</h4>

1525 1575 

1526此轉數回答的 [`SDKUserMessage`](#sdkusermessage) 的 `uuid`,回顯以便您可以將 Claude Code 的回覆與您發送的消息相匹配。Claude Code 僅在您在消息上設置 `uuid` 時才回顯 `uuid`。該字段在 `SDKUserMessage` 上是可選的,傳遞給 `query()` 的字符串提示不攜帶任何。1576轉換回答的 [`SDKUserMessage`](#sdkusermessage) 的 `uuid`,回顯以便您可以將 Claude Code 的回覆與您傳送的訊息相匹配。Claude Code 僅在您在訊息上設定 uuid 時才回顯 `uuid`。該欄位在 `SDKUserMessage` 上是可選的,傳遞給 `query()` 的字串提示不攜帶任何。

1527 1577 

1528轉數回答的消息取決於轉數如何開始:1578轉換回答的訊息取決於轉換如何啟動:

1529 1579 

1530* **您發送的常規消息**,即沒有 `isSynthetic: true` 的消息:轉數在其整個運行中回答該消息。當您發送多條消息時,Claude Code 可以將它們合併為一個轉數,該字段然後僅攜帶最後一條消息的 `uuid`。要將回覆與任何合併的消息相匹配,請使用 [`user_message_uuids`](#user_message_uuids)。1580* **您傳送的常規訊息**,意思是沒有 `isSynthetic: true` 的訊息:轉換在其整個執行過程中回答該訊息。當您一起傳送多個訊息時,Claude Code 可以將它們合併為一個轉換,該欄位然後僅攜帶最後一個訊息的 `uuid`。要將回覆與任何合併的訊息相匹配,請使用 [`user_message_uuids`](#user_message_uuids)。

1531* **您發送的帶有 `isSynthetic: true` 的消息**:轉數最初回答該消息。如果 Claude Code 在工具調用之間拾取您的常規消息,轉數從那時起回答拾取的消息。回顯合成消息的 `uuid` 需要 Agent SDK v0.3.265 或更高版本;較早的版本在合成轉數上不回顯任何內容。1581* **您傳送的帶有 `isSynthetic: true` 的訊息**:轉換最初回答該訊息。如果 Claude Code 在工具呼叫之間拾取您的常規訊息,轉換從那時起回答拾取的訊息。回顯合成訊息的 `uuid` 需要 Agent SDK v0.3.265 或更新版本;較早的版本在合成轉換上不回顯任何內容。

1532* **Claude Code 自己生成的提示**,例如在會話重新啟動後繼續中斷工作的轉數:轉數最初不回答您的任何消息,其幀不攜帶任何回顯。如果 Claude Code 在工具調用之間拾取您的常規消息,轉數從那時起回答該消息。拾取回顯需要 Agent SDK v0.3.265 或更高版本;較早的版本在這些轉數上不回顯任何內容。1582* **Claude Code 自己生成的提示**,例如在工作階段重新啟動後繼續中斷工作的轉換:轉換最初不回答您的任何訊息,其框架不攜帶任何回顯。如果 Claude Code 在工具呼叫之間拾取您的常規訊息,轉換從那時起回答該訊息。拾取回顯需要 Agent SDK v0.3.265 或更新版本;較早的版本在這些轉換上不回顯任何內容。

1533 1583 

1534Claude Code 在三種幀上回顯回答的消息的 `uuid`:1584Claude Code 在三種框架上回顯回答的訊息的 `uuid`:

1535 1585 

1536* **結果**:回答您發送的消息的轉數的每個結果。在 Agent SDK v0.3.265 或更高版本上,每個這樣的結果都攜帶它。在 v0.3.265 之前,常規消息啟動的轉數的成功結果在轉數未發送 API 請求或以延遲工具調用結束時缺少它。在 v0.3.246 之前,錯誤結果也缺少它,在 v0.3.216 之前每個結果都缺少它。1586* **結果**:回答您傳送的訊息的轉換的每個結果。在 Agent SDK v0.3.265 或更新版本上,每個此類結果都攜帶它。在 v0.3.265 之前,常規訊息啟動的轉換的成功結果在轉換未傳送 API 請求或以延遲工具呼叫結束時缺少它。在 v0.3.246 之前,錯誤結果也缺少它,在 v0.3.216 之前每個結果都缺少它。

1537* **轉數的第一個回覆**:第一個[助手消息](#sdkassistantmessage),或使用 `includePartialMessages` 時第一個[流事件](#sdkpartialassistantmessage),其 `event.type` 不是 `ping`,因此您可以在結果到達之前綁定回覆。當轉數不流式傳輸任何內容時,Claude Code 改為在第一個助手消息上設置它。第一個回覆回顯需要 Agent SDK v0.3.246 或更高版本。當轉數回答的消息在中途改變時,變更後的第一個回覆也攜帶該字段,在 Agent SDK v0.3.265 或更高版本上;較早的版本在每個轉數上設置一個回覆幀。1587* **轉換的第一個回覆**:第一個[助手訊息](#sdkassistantmessage),或使用 `includePartialMessages` 的第一個[串流事件](#sdkpartialassistantmessage),其 `event.type` 不是 `ping`,因此您可以在結果到達之前綁定回覆。當轉換不串流任何內容時,Claude Code 改為在第一個助手訊息上設定它。第一個回覆回顯需要 Agent SDK v0.3.246 或更新版本。當轉換回答的訊息在中途改變時,變更後的第一個回覆也攜帶該欄位,在 Agent SDK v0.3.265 或更新版本上;較早的版本在每個轉換上設定一個回覆框架。

1538* **轉數的每個 [`thinking_tokens`](#sdkthinkingtokensmessage) 幀**:因此您可以將思考進度歸因於您發送的消息,而無需等待轉數的第一個回覆。需要 Agent SDK v0.3.260 或更高版本。1588* **轉換的每個 [`thinking_tokens`](#sdkthinkingtokensmessage) 框架**:以便您可以將思考進度歸因於您傳送的訊息,而無需等待轉換的第一個回覆。需要 Agent SDK v0.3.260 或更新版本。

1539 1589 

1540Claude Code 在這些情況下省略該字段:1590Claude Code 在這些情況下省略該欄位:

1541 1591 

1542* 除了那些第一個回覆之外的回覆幀1592* 除了那些第一個回覆之外的回覆框架

1543* 子代理幀1593* 子代理框架

1544* 回答沒有 `uuid` 的消息的轉數:轉數回答了您發送的沒有 `uuid` 的消息,或 Claude Code 啟動了轉數本身並拾取了沒有 `uuid` 的常規消息1594* 回答沒有 `uuid` 的訊息的轉換:轉換回答了您傳送的沒有 uuid 的訊息,或 Claude Code 啟動了轉換本身並拾取了沒有 uuid 的常規訊息

1545* 回答您未發送的消息的結果,例如崩潰的工作程序進程後的歸零結果1595* 回答您未傳送的訊息的結果,例如崩潰的工作程序後的歸零結果

1546 1596 

1547<h4 id="user_message_uuids">1597<h4 id="user_message_uuids">

1548 `user_message_uuids`1598 `user_message_uuids`

1549</h4>1599</h4>

1550 1600 

1551Claude Code 在此轉數中回答的您發送的每條消息的 `uuid`。當您發送多條消息時,Claude Code 可以將它們合併為一個轉數,`user_message_uuid` 然後僅命名其中的最後一個。要將回覆與任何合併的消息相匹配,請在此清單中的任何位置查找該消息的 `uuid`。需要 Agent SDK v0.3.259 或更高版本。1601您傳送的每個訊息的 `uuid`,Claude Code 在此轉換中回答了這些訊息。當您一起傳送多個訊息時,Claude Code 可以將它們合併為一個轉換,`user_message_uuid` 然後僅命名其中的最後一個。要將回覆與任何合併的訊息相匹配,請在此清單中的任何位置查找該訊息的 `uuid`。需要 Agent SDK v0.3.259 或更新版本。

1552 1602 

1553Claude Code 在攜帶該字段的每個回覆幀和結果上設置清單,以及 `user_message_uuid`。有關攜帶 `user_message_uuid` 的完整幀集以及每個所需的版本,請參閱 [`user_message_uuid`](#user_message_uuid)。清單始終包含 `user_message_uuid` 並最多保留 64 個項目。1603Claude Code 在每個攜帶該欄位的回覆框架和結果上設定清單以及 `user_message_uuid`。有關攜帶 `user_message_uuid` 的完整框架集以及每個所需的版本,請參閱 [`user_message_uuid`](#user_message_uuid)。清單始終包含 `user_message_uuid` 並最多保留 64 個項目。

1554 1604 

1555當 Claude Code 在轉數運行時拾取您發送的常規消息時,它會將該消息的 `uuid` 添加到結果的清單中。1605當 Claude Code 在轉換執行時拾取您傳送的常規訊息時,它會將該訊息的 `uuid` 新增到結果的清單中。

1556 1606 

1557當第一個回覆或結果攜帶 `user_message_uuid` 而不攜帶清單時,它來自較早的 Claude Code 版本,因此回退到單個字段。1607當第一個回覆或結果攜帶 `user_message_uuid` 而沒有清單時,它來自較早的 Claude Code 版本,因此回退到單個欄位。

1558 1608 

1559<h4 id="queued_turn_count">1609<h4 id="queued_turn_count">

1560 `queued_turn_count`1610 `queued_turn_count`

1561</h4>1611</h4>

1562 1612 

1563您發送的帶有 [`origin: { kind: "human" }`](#sdkmessageorigin) 的消息數量,在 Claude Code 產生結果時仍在命令隊列中等待。需要 Agent SDK v0.3.242 或更高版本。1613您傳送的帶有 [`origin: { kind: "human" }`](#sdkmessageorigin) 的訊息數量,在 Claude Code 產生結果時仍在命令佇列中等待。需要 Agent SDK v0.3.242 或更新版本。

1564 1614 

1565`0` 和缺少的字段告訴您什麼:1615`0` 和不存在的欄位告訴您什麼:

1566 1616 

1567* **`0`**:Claude Code 不計算您發送的沒有該 `origin` 的消息,也不計算任務通知,因此轉數仍可能跟隨。1617* **`0`**:Claude Code 不計算您傳送的沒有該 `origin` 的訊息,也不計算任務通知,因此轉換仍可能跟隨。

1568* **缺少**:Claude Code 在崩潰或致命啟動錯誤後發出的最終結果省略該字段,並且[可能攜帶歸零的總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。1618* **不存在**:Claude Code 在崩潰或致命啟動錯誤後發出的最終結果省略該欄位,並且[可能攜帶歸零的總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。

1569 1619 

1570<h4 id="startup_failure_reason">1620<h4 id="startup_failure_reason">

1571 `startup_failure_reason`1621 `startup_failure_reason`

1572</h4>1622</h4>

1573 1623 

1574Claude Code 拒絕啟動的原因,以便您的應用程式可以提供修復而不是重試。Claude Code 在它在已知啟動失敗時寫入的 `error_during_execution` 結果上設置它。該結果攜帶歸零的總計,其 `errors` 陣列攜帶與 stderr 相同的文本。該字段在每個其他結果上不存在。需要 Agent SDK v0.3.274 或更高版本。1624Claude Code 拒絕啟動的原因,以便您的應用程式可以提供修復而不是重試。Claude Code 在它在已知啟動失敗時寫入的 `error_during_execution` 結果上設定它。該結果攜帶歸零的總計,其 `errors` 陣列攜帶與 stderr 相同的文字。該欄位在所有其他結果上不存在。需要 Agent SDK v0.3.274 或更新版本。

1575 1625 

1576在 [`env`](#options) 中設置 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 為 `1` 以接收每個 `SDKStartupFailureReason` 值的此結果。沒有該變數,Claude Code 僅為這些失敗寫入結果,其餘的以 stderr 輸出、非零退出和無結果消息結束:1626在 [`env`](#options) 中設定 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 為 `1` 以接收每個 `SDKStartupFailureReason` 值的此結果。沒有該變數,Claude Code 僅為這些失敗寫入結果,其餘的以 stderr 輸出、非零退出和無結果訊息結束:

1577 1627 

1578* 一個恢復,Claude Code 停止因為它[無法將會話返回到其工作樹](/docs/zh-TW/worktrees#the-session-resumes-outside-its-worktree),帶有 `worktree_unverified` 或 `worktree_resume_refused`。該部分說明哪個錯誤攜帶哪個值。1628* Claude Code 停止的恢復,因為它[無法將工作階段返回到其工作樹](/docs/zh-TW/worktrees#the-session-resumes-outside-its-worktree),帶有 `worktree_unverified` 或 `worktree_resume_refused`。該部分說明哪個錯誤攜帶哪個值。

1579* 一個被拒絕的[繼續](#options)背景會話持有的對話,帶有 `session_held_by_background`。對於被拒絕的這樣對話的[恢復](#options),Claude Code 僅在設置變數時寫入結果。1629* 拒絕的背景工作階段持有的對話的 [`continue`](#options),帶有 `session_held_by_background`。對於此類對話的拒絕 [`resume`](#options),Claude Code 僅在設定變數時寫入結果。

1580 1630 

1581```typescript theme={null}1631```typescript theme={null}

1582type SDKStartupFailureReason =1632type SDKStartupFailureReason =


1600 1650 

1601每個值命名一個拒絕:1651每個值命名一個拒絕:

1602 1652 

1603| 值 | 什麼停止了會話 |1653| 值 | 什麼停止了工作階段 |

1604| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |1654| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |

1605| `org_pin_api_key_conflict` | 受管設定[需要第一方或 Cloud gateway 登入](/docs/zh-TW/authentication#restrict-login-to-your-organization),並且配置了 Anthropic API 金鑰、驗證令牌或 `apiKeyHelper` |1655| `org_pin_api_key_conflict` | 受管設定[需要第一方或 Cloud 閘道登入](/docs/zh-TW/authentication#restrict-login-to-your-organization),並且已設定 Anthropic API 金鑰、驗證令牌或 `apiKeyHelper` |

1606| `org_verify_failed` | 登入的組織無法根據 pin 驗證,例如因為網路故障或已撤銷的令牌 |1656| `org_verify_failed` | 登入的組織無法針對 pin 進行驗證,例如由於網路故障或已撤銷的令牌 |

1607| `org_pin_mismatch` | 登入屬於 pin 不允許的組織 |1657| `org_pin_mismatch` | 登入屬於 pin 不允許的組織 |

1608| `managed_settings_invalid` | 受管策略設定無法讀取,或 pin 未命名任何組織 |1658| `managed_settings_invalid` | 無法讀取受管原則設定,或 pin 未命名任何組織 |

1609| `remote_settings_required_unavailable` | 組織需要的受管設定無法載入 |1659| `remote_settings_required_unavailable` | 組織所需的受管設定無法載入 |

1610| `gateway_signin_required` | [Cloud gateway](/docs/zh-TW/claude-apps-gateway)結束了此登入 |1660| `gateway_signin_required` | [Cloud 閘道](/docs/zh-TW/claude-apps-gateway)結束了此登入 |

1611| `gateway_access_denied` | 對 Cloud gateway 的受管設定請求返回了 403,gateway 的[故障排除表](/docs/zh-TW/claude-apps-gateway-deploy#troubleshooting)涵蓋了該表 |1661| `gateway_access_denied` | 對 Cloud 閘道的受管設定請求返回 403,閘道的[疑難排解表](/docs/zh-TW/claude-apps-gateway-deploy#troubleshooting)涵蓋了此情況 |

1612| `proxy_invalid` | 代理設定不是完整的 URL |1662| `proxy_invalid` | 代理設定不是完整的 URL |

1613| `temp_dir_unusable` | 每個使用者的臨時目錄不安全或無法建立 |1663| `temp_dir_unusable` | 每個使用者的臨時目錄不安全或無法建立 |

1614| `cwd_unavailable` | 工作目錄已刪除、移動或無法讀取 |1664| `cwd_unavailable` | 工作目錄已刪除、移動或無法讀取 |

1615| `shell_tool_missing` | 在 Windows 上,沒有可用的 shell 工具:Git Bash 缺失,PowerShell 缺失或使用 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 關閉 |1665| `shell_tool_missing` | 在 Windows 上,沒有可用的 shell 工具:Git Bash 遺失,PowerShell 遺失或使用 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 關閉 |

1616| `session_held_by_background` | 要恢復或繼續的對話作為[背景會話](/docs/zh-TW/agent-view)運行 |1666| `session_held_by_background` | 要恢復或繼續的對話作為[背景工作階段](/docs/zh-TW/agent-view)執行 |

1617| `worktree_resume_refused` | 會話的工作樹未通過其安全檢查,或恢復是從內部啟動的。`errors` 說明運行相同恢復是否在沒有工作樹的情況下繼續 |1667| `worktree_resume_refused` | 工作階段的工作樹未通過其安全檢查,或恢復是從其內部啟動的。`errors` 說明執行相同恢復是否繼續而不使用工作樹 |

1618| `worktree_unverified` | 會話的工作樹現在無法驗證,重試可能成功 |1668| `worktree_unverified` | 工作階段的工作樹現在無法驗證,重試可能會成功 |

1619| `cli_version_too_old` | 此 Claude Code 版本低於 Anthropic 要求的最低版本 |1669| `cli_version_too_old` | 此 Claude Code 版本低於 Anthropic 所需的最低版本 |

1620| `bypass_root` | 在以 root 身份運行時請求了繞過權限模式 |1670| `bypass_root` | 在以 root 身份執行時請求了繞過權限模式 |

1621 1671 

1622<h3 id="sdksystemmessage">1672<h3 id="sdksystemmessage">

1623 `SDKSystemMessage`1673 `SDKSystemMessage`

1624</h3>1674</h3>

1625 1675 

1626系統初始化消息。1676系統初始化訊息。

1627 1677 

1628```typescript theme={null}1678```typescript theme={null}

1629type SDKSystemMessage = {1679type SDKSystemMessage = {


1656};1706};

1657```1707```

1658 1708 

1659`fast_mode_state` 報告會話的[快速模式](/docs/zh-TW/fast-mode)狀態。當某些東西阻止快速模式時,`fast_mode_disabled_reason` 命名阻止它的檢查;該字段需要 Claude Code v2.1.219 或更高版本。有關原因代碼及其含義,請參閱結果消息上的 [`fast_mode_disabled_reason`](#sdkresultmessage)。1709`fast_mode_state` 報告工作階段的[快速模式](/docs/zh-TW/fast-mode)狀態。當某些東西阻止快速模式時,`fast_mode_disabled_reason` 命名阻止它的檢查;該欄位需要 Claude Code v2.1.219 或更新版本。有關原因代碼及其含義,請參閱結果訊息上的 [`fast_mode_disabled_reason`](#sdkresultmessage)。

1660 1710 

1661`terminal_slash_commands` 命名 `slash_commands` 中其介面綁定到本地終端的項目,例如 `exit`。您可以像發送 `slash_commands` 中的任何其他項目一樣發送它們;該字段存在以便遠程或行動客戶端可以將它們隱藏在其命令菜單中。該字段僅在非空時出現,需要 Agent SDK v0.3.229 或更高版本。1711`terminal_slash_commands` 命名 `slash_commands` 中的項目,其介面綁定到本地終端,例如 `exit`。您可以像 `slash_commands` 中的任何其他項目一樣傳送它們;該欄位的存在是為了遠端或行動用戶端可以從其命令選單中隱藏它們。該欄位僅在非空時存在,需要 Agent SDK v0.3.229 或更新版本。

1662 1712 

1663* `source` 在每個 `mcp_servers` 項目上:伺服器定義的來源,與 [`McpServerStatus`](#mcpserverstatus) 的 `source` 相同的值。需要 Agent SDK v0.3.274 或更高版本。1713* 每個 `mcp_servers` 項目上的 `source`:伺服器定義的來源,與 [`McpServerStatus`](#mcpserverstatus) 的 `source` 具有相同的值。需要 Agent SDK v0.3.274 或更新版本。

1664* `effort`:[努力級別](/docs/zh-TW/model-config#adjust-effort-level)Claude Code 在會話的下一個請求上發送,或在不發送時為 `null`。Claude Code 僅在發送給[遠程控制](/docs/zh-TW/remote-control)客戶端的初始化消息上設置該字段,並從您的應用程式讀取的初始化消息中省略它。需要 Agent SDK v0.3.234 或更高版本。1714*

1665 1715 

1666`capabilities` 陣列命名此 CLI 實現的協議行為,因此您可以進行功能檢測而不是比較 `claude_code_version` 字符串。這是一個開放集合:忽略您不認識的值,並檢查您依賴其行為的特定功能。該字段需要 Claude Code v2.1.205 或更高版本,在較早的 CLI 上不存在。1716`effort`:[努力級別](/docs/zh-TW/model-config#adjust-effort-level) Claude Code 在工作階段的下一個請求上傳送,或當它不傳送任何時為 `null`。Claude Code 僅在它傳送給[遠端控制](/docs/zh-TW/remote-control)用戶端的初始化訊息上設定該欄位,並從您的應用程式讀取的初始化訊息中省略它。需要 Agent SDK v0.3.234 或更新版本。

1717 

1718`capabilities` 陣列命名此 CLI 實現的協議行為,因此您可以進行功能偵測而不是比較 `claude_code_version` 字串。這是一個開放集合:忽略您不認識的值,並檢查您依賴其行為的特定功能。該欄位需要 Claude Code v2.1.205 或更新版本,在較早的 CLI 上不存在。

1667 1719 

1668| 功能 | 含義 |1720| 功能 | 含義 |

1669| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1721| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |

1670| `interrupt_receipt_v1` | [`interrupt()`](#query-object) 使用命名存活中斷的排隊消息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 收據進行解析 |1722| `interrupt_receipt_v1` | [`interrupt()`](#query-object) 使用列出中斷到達時待處理的訊息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 收據進行解析 |

1671| `interrupt_cancel_queued_v1` | `interrupt` 控制請求尊重 `cancel_queued: true`,取消收據在 `still_queued` 下列出的消息,並改為在 `cancelled` 下列出它們。請參閱 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse)。需要 Claude Code v2.1.219 或更高版本 |1723| `interrupt_cancel_queued_v1` | |

1724| `interrupt` 控制請求尊重 `cancel_queued: true`,取消收據在 `still_queued` 下列出的訊息,並改為在 `cancelled` 下列出它們。請參閱 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse)。需要 Claude Code v2.1.219 或更新版本 | |

1672 1725 

1673<h3 id="sdkpartialassistantmessage">1726<h3 id="sdkpartialassistantmessage">

1674 `SDKPartialAssistantMessage`1727 `SDKPartialAssistantMessage`

1675</h3>1728</h3>

1676 1729 

1677流式部分消息(僅當 `includePartialMessages` 為 true 時)。`parent_tool_use_id` 字段始終為 `null`:流事件僅針對主會話發出。對於子代理歸因,使用完整消息(攜帶 `parent_tool_use_id`),或啟用 [`forwardSubagentText`](#options) 以接收子代理文本和思考作為完整消息。1730串流部分訊息(僅當 `includePartialMessages` 為 true 時)。`parent_tool_use_id` 欄位始終為 `null`:串流事件僅針對主工作階段發出。對於子代理歸因,使用完整訊息,其攜帶 `parent_tool_use_id`,或啟用 [`forwardSubagentText`](#options) 以接收子代理文字和思考作為完整訊息。

1678 1731 

1679```typescript theme={null}1732```typescript theme={null}

1680type SDKPartialAssistantMessage = {1733type SDKPartialAssistantMessage = {

1681 type: "stream_event";1734 type: "stream_event";

1682 event: BetaRawMessageStreamEvent; // 來自 Anthropic SDK1735 event: BetaRawMessageStreamEvent; // From Anthropic SDK

1683 parent_tool_use_id: string | null;1736 parent_tool_use_id: string | null;

1684 uuid: UUID;1737 uuid: UUID;

1685 session_id: string;1738 session_id: string;

1686 ttft_ms?: number; // 首個令牌的時間(毫秒),僅在 message_start 事件上出現1739 ttft_ms?: number; // Time to first token in ms, present only on message_start events

1687 user_message_uuid?: string;1740 user_message_uuid?: string;

1688 user_message_uuids?: string[];1741 user_message_uuids?: string[];

1689};1742};

1690```1743```

1691 1744 

1692Claude Code 在轉數的第一個非 ping 流事件上設置 `user_message_uuid` 和 `user_message_uuids`,並在轉數回答的消息改變時再次設置,條件在 [`user_message_uuid`](#user_message_uuid) 中。1745Claude Code 在轉換的第一個非 ping 串流事件上設定 `user_message_uuid` 和 `user_message_uuids`,並在轉換回答的訊息改變時再次設定,條件在 [`user_message_uuid`](#user_message_uuid) 中。

1693 1746 

1694<h3 id="sdkcompactboundarymessage">1747<h3 id="sdkcompactboundarymessage">

1695 `SDKCompactBoundaryMessage`1748 `SDKCompactBoundaryMessage`

1696</h3>1749</h3>

1697 1750 

1698指示對話壓縮邊界的消息。1751指示對話壓縮邊界的訊息。

1699 1752 

1700```typescript theme={null}1753```typescript theme={null}

1701type SDKCompactBoundaryMessage = {1754type SDKCompactBoundaryMessage = {


1714 `SDKInformationalMessage`1767 `SDKInformationalMessage`

1715</h3>1768</h3>

1716 1769 

1717由迴圈發出的通用文本橫幅。攜帶非錯誤狀態行、hook 反饋(例如 `UserPromptSubmit` hook 的阻止原因)和命令輸出。在 Claude Code v2.1.227 或更高版本上,hook 的 [`systemMessage`](/docs/zh-TW/hooks#json-output) 可以作為此消息到達,每行以 hook 的名稱為前綴,例如 `PostToolUse:Bash says:`。hook 的 `systemMessage` 是否作為此消息到達取決於事件。每個[事件的部分](/docs/zh-TW/hooks#hook-events)在 hooks 頁面上說明輸出如何顯示。將 `content` 呈現為給定 `level` 的純文本。1770迴圈發出的通用文字橫幅。攜帶非錯誤狀態行、鉤子反饋(例如 `UserPromptSubmit` 鉤子的區塊原因)和命令輸出。在 Claude Code v2.1.227 或更新版本上,鉤子的 [`systemMessage`](/docs/zh-TW/hooks#json-output) 可以作為此訊息到達,每行前綴為鉤子的名稱,例如 `PostToolUse:Bash says:`。鉤子的 `systemMessage` 是否作為此訊息到達取決於事件。每個[事件的部分](/docs/zh-TW/hooks#hook-events)在鉤子頁面上說明輸出如何呈現。將 `content` 呈現為給定 `level` 的純文字。

1718 1771 

1719```typescript theme={null}1772```typescript theme={null}

1720type SDKInformationalMessage = {1773type SDKInformationalMessage = {


1733 `SDKWorkerShuttingDownMessage`1786 `SDKWorkerShuttingDownMessage`

1734</h3>1787</h3>

1735 1788 

1736在優雅的工作程序拆卸時發出,以便遠程客戶端可以顯示工作程序消失的原因,而不是等待心跳超時。`reason` 是由主機 CLI 設置的短 snake\_case 字符串,例如 `"host_exit"` 或 `"remote_control_disabled"`。僅在實時流式傳輸時對此採取行動。恢復的會話會重放此消息的過去實例,因此在這種情況下忽略它們。1789在正常工作程序拆卸時發出,以便遠端用戶端可以顯示工作程序退出的原因,而不是等待心跳超時。`reason` 是由主機 CLI 設定的短 snake\_case 字串,例如 `"host_exit"` 或 `"remote_control_disabled"`。僅在即時串流時對此採取行動。恢復的工作階段會重播此訊息的過去實例,因此在這種情況下忽略它們。

1737 1790 

1738```typescript theme={null}1791```typescript theme={null}

1739type SDKWorkerShuttingDownMessage = {1792type SDKWorkerShuttingDownMessage = {


1749 `SDKPluginInstallMessage`1802 `SDKPluginInstallMessage`

1750</h3>1803</h3>

1751 1804 

1752插件安裝進度事件。當設置 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-TW/env-vars) 時發出,以便您的 Agent SDK 應用程式可以在第一個轉數之前追蹤市場插件安裝。`started` 和 `completed` 狀態括起整體安裝。`installed` 和 `failed` 狀態報告單個市場並包括 `name`。1805外掛程式安裝進度事件。當設定 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-TW/env-vars) 時發出,以便您的 Agent SDK 應用程式可以在第一個轉換之前追蹤市場外掛程式安裝。`started` 和 `completed` 狀態括住整體安裝。`installed` 和 `failed` 狀態報告個別市場並包含 `name`。

1753 1806 

1754```typescript theme={null}1807```typescript theme={null}

1755type SDKPluginInstallMessage = {1808type SDKPluginInstallMessage = {


1767 `SDKPermissionDeniedMessage`1820 `SDKPermissionDeniedMessage`

1768</h3>1821</h3>

1769 1822 

1770當權限系統拒絕工具調用而不進行互動式提示時發出的流事件。使用它在發生時在您的 UI 中呈現拒絕,而不是僅觀察隨後的 `is_error` 工具結果。它報告哪些拒絕取決於運行如何處理權限提示:1823當權限系統在沒有互動式提示的情況下拒絕工具呼叫時發出的串流事件。使用它在您的 UI 中即時呈現拒絕,而不是僅觀察隨後的 `is_error` 工具結果。它報告的拒絕取決於執行如何處理權限提示:

1771 1824 

1772* **使用 [`canUseTool`](#canusetool) 回調**和預設 [`permissionPrompts: 'host'`](#options):權限提示進入您的回調,此事件報告 Claude Code 自己決定的拒絕,而不調用它。1825* **使用 [`canUseTool`](#canusetool) 回呼**和預設 [`permissionPrompts: 'host'`](#options):權限提示進入您的回呼,此事件報告 Claude Code 自己決定的拒絕,而不呼叫它。

1773* **沒有任何一個**:裸 `-p` 運行,或 `query()` 既不設置 `canUseTool` 也不設置 `permissionPromptToolName`,拒絕任何會提示的工具調用,此事件也報告這些拒絕以及 Claude Code 自己決定的拒絕。在 v2.1.223 之前,Claude Code 在沒有回調的運行中不發出此事件。1826* **都沒有**:裸 `-p` 執行,或 `query()` 既不設定 `canUseTool` 也不設定 `permissionPromptToolName`,拒絕任何會提示的工具呼叫,此事件報告這些拒絕以及 Claude Code 自己決定的拒絕。在 v2.1.223 之前,Claude Code 在沒有回呼的執行中不發出此事件。

1774* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 標誌設置,和預設 `permissionPrompts: 'host'`:Claude Code 根本不發出此事件,即使對於它自己決定的規則拒絕也不發出。1827* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定,以及預設 `permissionPrompts: 'host'`:Claude Code 根本不發出此事件,甚至不發出它自己決定的規則拒絕。

1775* **使用 [`permissionPrompts: 'none'`](#options)**:Claude Code 拒絕會提示的調用,即使也設置了 `canUseTool` 或 MCP 提示工具,此事件也報告這些拒絕以及 Claude Code 自己決定的拒絕。需要 Claude Code v2.1.259 或更高版本。1828* **使用 [`permissionPrompts: 'none'`](#options)**:Claude Code 拒絕會提示的呼叫,即使也設定了 `canUseTool` 或 MCP 提示工具,此事件報告這些拒絕以及 Claude Code 自己決定的拒絕。需要 Claude Code v2.1.259 或更新版本。

1776 1829 

1777在每個配置中,此事件跳過在 `PreToolUse` hook 路徑上決定的任何拒絕,無論 hook 本身拒絕了調用還是拒絕規則覆蓋了 hook 的允許或詢問決定。該事件也是盡力而為:偶爾 Claude Code 會記錄拒絕而不發出此事件,因此[結果消息](#sdkresultmessage)上的 `permission_denials` 是權威記錄。1830在每個設定中,此事件跳過在 `PreToolUse` 鉤子路徑上決定的任何拒絕,無論鉤子本身拒絕了呼叫還是拒絕規則覆蓋了鉤子的允許或詢問決定。該事件也是盡力而為:偶爾 Claude Code 會記錄拒絕而不發出此事件,因此[結果訊息](#sdkresultmessage)上的 `permission_denials` 是權威記錄。

1778 1831 

1779```typescript theme={null}1832```typescript theme={null}

1780type SDKPermissionDeniedMessage = {1833type SDKPermissionDeniedMessage = {


1791};1844};

1792```1845```

1793 1846 

1794| 字段 | 類型 | 描述 |1847| 欄位 | 類型 | 描述 |

1795| ---------------------- | -------- | ------------------------------------------------------------- |1848| ---------------------- | -------- | ------------------------------------------------------------- |

1796| `tool_name` | `string` | 被拒絕的工具的名稱 |1849| `tool_name` | `string` | 被拒絕的工具的名稱 |

1797| `tool_use_id` | `string` | 此拒絕回答的 `tool_use` 塊的 ID |1850| `tool_use_id` | `string` | 此拒絕回答的 `tool_use` 區塊的 ID |

1798| `agent_id` | `string` | 當被拒絕的調用源自子代理內部時的子代理 ID。鏡像 `can_use_tool` 上的字段以進行主機端路由 |1851| `agent_id` | `string` | 當拒絕的呼叫源自子代理內部時的子代理 ID。鏡像 `can_use_tool` 上的欄位以進行主機端路由 |

1799| `decision_reason_type` | `string` | 決定組件的判別器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |1852| `decision_reason_type` | `string` | 決定組件的判別器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |

1800| `decision_reason` | `string` | 來自決定組件的人類可讀原因(如果可用) |1853| `decision_reason` | `string` | 決定組件的人類可讀原因(如果可用) |

1801| `message` | `string` | 在 `tool_result` 中返回給模型的拒絕消息 |1854| `message` | `string` | 在 `tool_result` 中傳回給模型的拒絕訊息 |

1802 1855 

1803<h3 id="sdkpermissiondenial">1856<h3 id="sdkpermissiondenial">

1804 `SDKPermissionDenial`1857 `SDKPermissionDenial`


1818 `SDKContextUsage`1871 `SDKContextUsage`

1819</h3>1872</h3>

1820 1873 

1821`/context` 報告的結構化形式,作為 `context_usage` 在傳遞 `/context` 結果的 [`SDKAssistantMessage`](#sdkassistantmessage) 上攜帶。Agent SDK v0.3.232 及更高版本導出該類型。與 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) 不同,它僅攜帶呈現使用情況分解所需的資料,不包括 `color` 和 `gridRows` 等顯示字段。1874`/context` 報告的結構化形式,作為 `context_usage` 在傳遞 `/context` 結果的 [`SDKAssistantMessage`](#sdkassistantmessage) 上進行。Agent SDK v0.3.232 及更新版本匯出該類型。與 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) 不同,它僅攜帶呈現使用情況明細所需的資料,不包含 `color` 和 `gridRows` 等顯示欄位。

1822 1875 

1823```typescript theme={null}1876```typescript theme={null}

1824type SDKContextUsage = {1877type SDKContextUsage = {


1855};1908};

1856```1909```

1857 1910 

1858表格列出了 Claude Code 在每個字段中放置的內容。從 `model` 到 `over_limit` 的字段描述整個會話,集合字段將令牌歸因於單個項目。1911該表列出 Claude Code 在每個欄位中放置的內容。從 `model` 到 `over_limit` 的欄位描述整個工作階段,集合欄位將令牌歸因於個別項目。

1859 1912 

1860| 字段 | 類型 | 描述 |1913| 欄位 | 類型 | 描述 |

1861| ---------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1914| ---------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1862| `model` | `string` | Claude Code 計算使用情況的主迴圈的模型,不是子代理的 |1915| `model` | `string` | Claude Code 計算使用情況的主迴圈的模型,不是子代理的 |

1863| `total_tokens` | `number` | Claude Code 對使用中令牌的估計。未限制在視窗內,因此當會話超過限制時可能超過 `raw_max_tokens` |1916| `total_tokens` | `number` | Claude Code 對使用中令牌的估計。未限制在視窗中,因此當工作階段超過限制時可以超過 `raw_max_tokens` |

1864| `raw_max_tokens` | `number` | 模型的上下文視窗,或較低的[自動壓縮視窗](/docs/zh-TW/model-config#context-window-and-auto-compaction)(當適用時),例如您設置的或 Claude Code 應用於某些具有 1M 令牌視窗的模型的 200K 邊界。Claude Code 根據此視窗測量 `total_tokens` |1917| `raw_max_tokens` | `number` | 模型的內容視窗,或較低的[自動壓縮視窗](/docs/zh-TW/model-config#context-window-and-auto-compaction)(當適用時),例如您設定的或 Claude Code 應用於某些具有 1M 令牌視窗的模型的 200K 邊界。Claude Code 根據此視窗測量 `total_tokens` |

1865| `percentage` | `number` | `total_tokens` 作為 `raw_max_tokens` 的四捨五入百分比,因此當會話超過限制時可能超過 100 |1918| `percentage` | `number` | `total_tokens` 作為 `raw_max_tokens` 的四捨五入百分比,因此當工作階段超過限制時可以超過 100 |

1866| `over_limit` | `object` | 僅當 `total_tokens` 超過 `raw_max_tokens` 時出現。`tokens_over` 是超出的金額,`kind` 說明 Claude Code 如何解決視窗 |1919| `over_limit` | `object` | 僅當 `total_tokens` 超過 `raw_max_tokens` 時存在。`tokens_over` 是超過的金額,`kind` 說明 Claude Code 如何解決視窗 |

1867| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 使用情況按類別分解的每一行一個項目 |1920| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 使用情況按類別明細的每一行一個項目 |

1868| `mcp_tools` | `object[]` | 歸因於每個 MCP 工具的令牌,其線路名稱(例如 `mcp__linear__create_issue`)和其 `server_name` |1921| `mcp_tools` | `object[]` | 歸因於每個 MCP 工具的令牌,帶有其線路名稱(例如 `mcp__linear__create_issue`)和其 `server_name` |

1869| `memory_files` | `object[]` | 歸因於每個載入的記憶檔案的令牌,其 `path` 和源標籤(例如 `Project` 或 `User`)在 `type` 中 |1922| `memory_files` | `object[]` | 歸因於每個載入的記憶檔案的令牌,帶有其 `path` 和來源標籤(例如 `Project` 或 `User`)在 `type` 中 |

1870| `agents` | `object[]` | 歸因於每個自訂子代理定義的令牌,其源識別符(例如 `projectSettings`、`userSettings` 或 `plugin`)。內建子代理未列出 |1923| `agents` | `object[]` | 歸因於每個自訂子代理定義的令牌,帶有來源識別碼,例如 `projectSettings`、`userSettings` 或 `plugin`。內建子代理未列出 |

1871| `skills` | `object[]` | 歸因於技能清單中每個技能的令牌,其源識別符和對於插件技能,插件的名稱在 `plugin_name` 中。當沒有技能貢獻令牌時不存在 |1924| `skills` | `object[]` | 歸因於技能清單中每個技能的令牌,帶有來源識別碼,對於外掛程式技能,外掛程式的名稱在 `plugin_name` 中。當沒有技能貢獻令牌時不存在 |

1872 1925 

1873`over_limit.kind` 記錄 Claude Code 如何解決視窗,而不是 API 是否接受下一個請求:1926`over_limit.kind` 記錄 Claude Code 如何解決視窗,而不是 API 是否接受下一個請求:

1874 1927 

1875* `hard_limit`:視窗是 Claude Code 認為是模型自己的限制,超過該限制 API 拒絕請求1928* `hard_limit`:視窗是 Claude Code 認為是模型自己的限制,超過該限制 API 拒絕請求

1876* `compaction_window`:視窗是壓縮策略視窗,可能與模型的限制一致,也可能不一致1929* `compaction_window`:視窗是壓縮原則視窗,可能與模型的限制一致,也可能不一致

1877 1930 

1878Claude Code 以附加方式演進該類型,添加新資料作為可選字段而不是重新塑造現有字段。讀取您知道的字段並忽略您不認識的任何字段。1931Claude Code 以加法方式演進該類型,添加新資料作為可選欄位,而不是重新塑造現有欄位。讀取您知道的欄位並忽略您不認識的任何欄位。

1879 1932 

1880<h3 id="sdkcontextusagecategory">1933<h3 id="sdkcontextusagecategory">

1881 `SDKContextUsageCategory`1934 `SDKContextUsageCategory`

1882</h3>1935</h3>

1883 1936 

1884`/context` 使用情況按類別分解的一行。1937`/context` 使用情況按類別明細的一行。

1885 1938 

1886```typescript theme={null}1939```typescript theme={null}

1887type SDKContextUsageCategory = {1940type SDKContextUsageCategory = {


1891};1944};

1892```1945```

1893 1946 

1894表格列出了 Claude Code 在行的每個字段中放置的內容。1947該表列出 Claude Code 在行的每個欄位中放置的內容。

1895 1948 

1896| 字段 | 類型 | 描述 |1949| 欄位 | 類型 | 描述 |

1897| -------- | -------- | ----------------------------------------------------------- |1950| -------- | -------- | ----------------------------------------------------------- |

1898| `name` | `string` | 行的顯示名稱,如 `/context` 列印的那樣,例如 `Messages`。按 `kind` 分類行,而不是按名稱 |1951| `name` | `string` | 行的顯示名稱,如 `/context` 列印的那樣,例如 `Messages`。按 `kind` 分類行,而不是按名稱 |

1899| `tokens` | `number` | 行的令牌計數。行可以攜帶零令牌 |1952| `tokens` | `number` | 行的令牌計數。行可以攜帶零令牌 |


1901 1954 

1902每個 `kind` 值說明行的令牌是什麼:1955每個 `kind` 值說明行的令牌是什麼:

1903 1956 

1904* `used`:佔據上下文視窗的內容1957* `used`:佔據內容視窗的內容

1905* `free`:剩餘視窗1958* `free`:剩餘視窗

1906* `buffer`:壓縮儲備1959* `buffer`:壓縮保留

1907* `deferred`:Claude Code 保留在視窗外的工具架構,從使用情況計算中排除,列出以供參考1960* `deferred`:Claude Code 保留在視窗外的工具架構,從使用情況計算中排除,列出以供了解

1908 1961 

1909<h3 id="sdkmessageorigin">1962<h3 id="sdkmessageorigin">

1910 `SDKMessageOrigin`1963 `SDKMessageOrigin`

1911</h3>1964</h3>

1912 1965 

1913使用者角色消息的來源。這在 [`SDKUserMessage`](#sdkusermessage) 上顯示為 `origin`,並轉發到相應的 [`SDKResultMessage`](#sdkresultmessage),以便您可以判斷給定轉數的觸發因素。1966使用者角色訊息的來源。這在 [`SDKUserMessage`](#sdkusermessage) 上顯示為 `origin`,並轉發到相應的 [`SDKResultMessage`](#sdkresultmessage),以便您可以告訴什麼觸發了給定的轉換。

1914 1967 

1915```typescript theme={null}1968```typescript theme={null}

1916type SDKMessageOrigin =1969type SDKMessageOrigin =


1929 | {1982 | {

1930 kind: "task-notification";1983 kind: "task-notification";

1931 subkind?: "scheduled-trigger" | "peer-send-message";1984 subkind?: "scheduled-trigger" | "peer-send-message";

1985 fireReason?: string;

1932 }1986 }

1933 | { kind: "coordinator" }1987 | { kind: "coordinator" }

1934 | { kind: "auto-continuation" }1988 | { kind: "auto-continuation" }


1936```1990```

1937 1991 

1938| `kind` | 含義 |1992| `kind` | 含義 |

1939| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1993| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1940| `human` | 來自最終使用者的直接輸入。如果您的應用程式將使用者輸入的內容轉發為使用者消息,請明確將其 `origin` 設置為 `{ kind: "human" }`:Claude Code 將沒有 `origin` 的使用者消息視為未歸因,並檢查需要人類輸入的提示(例如 [`ultracode` 工作流程關鍵字](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt))不接受它。在 v2.1.210 之前,Claude Code 將使用者消息上缺少的 `origin` 視為人類輸入。 |1994| `human` | 來自最終使用者的直接輸入。如果您的應用程式將使用者輸入的內容轉發為使用者訊息,請明確將其 `origin` 設定為 `{ kind: "human" }`:Claude Code 將沒有 `origin` 的使用者訊息視為未歸因,並檢查需要人類輸入的提示(例如 [`ultracode` 工作流程關鍵字](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt))不接受它。在 v2.1.210 之前,Claude Code 將使用者訊息上不存在的 `origin` 視為人類輸入。 |

1941| `channel` | 在[頻道](/docs/zh-TW/channels)上到達的消息。`server` 是源 MCP 伺服器名稱。 |1995| `channel` | 在[頻道](/docs/zh-TW/channels)上到達的訊息。`server` 是來源 MCP 伺服器名稱。 |

1942| `peer` | 來自另一個代理的消息:進程內[隊友](/docs/zh-TW/agent-teams)或[跨會話對等體](/docs/zh-TW/cross-session-messaging),您的另一個 Claude Code 會話。請參閱[對等來源字段](#peer-origin-fields)以了解每個字段的語義和信任模型。 |1996| `peer` | 來自另一個代理的訊息:進程內[隊友](/docs/zh-TW/agent-teams)或[跨工作階段對等](/docs/zh-TW/cross-session-messaging),您的另一個 Claude Code 工作階段。請參閱[對等來源欄位](#peer-origin-fields)以了解每個欄位的語義和信任模型。 |

1943| `task-notification` | 為沒有新使用者提示的傳遞注入的合成轉數,例如完成的背景任務;請參閱 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 以了解該分支。可選的 `subkind` 標記引發通知的內容。請參閱[任務通知子類型](#task-notification-subkinds)。 |1997| `task-notification` | 為沒有新鮮使用者提示的傳遞注入的合成轉換,例如完成的背景任務;請參閱 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 以了解該分支。您的應用程式[宣告為排定執行](#declare-a-scheduled-run)的提示也攜帶此類型。可選的 `subkind` 標記引發通知的原因。請參閱[任務通知子類型](#task-notification-subkinds)。 |

1944| `coordinator` | 來自[代理團隊](/docs/zh-TW/agent-teams)中的團隊協調員的消息。 |1998| `coordinator` | 來自[代理團隊](/docs/zh-TW/agent-teams)中的團隊協調員的訊息。 |

1945| `auto-continuation` | 當會話在沒有新使用者輸入的情況下繼續時注入的合成轉數,例如觸發後續提示的命令結果。 |1999| `auto-continuation` | 當工作階段在沒有新鮮使用者輸入的情況下繼續時注入的合成轉換,例如觸發後續提示的命令結果。 |

1946| `unclassified` | 注入轉數,其來源無法確定。需要 Claude Code v2.1.223 或更高版本。當 Claude Code 收到帶有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage) 並無法將其分類為任何其他 `kind` 時,它在消息到達時設置此類型,並將轉數框架化為模型作為非使用者來源,而不是將其視為人類輸入。您的應用程式不應設置此值。 |2000| `unclassified` | 無法確定來源的注入轉換。當 Claude Code 接收帶有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage) 並無法將其分類為任何其他 `kind` 時,它在訊息到達時設定此類型,並將轉換框架化為模型的非使用者來源,而不是將其視為人類輸入。您的應用程式不應設定此值。 |

1947 2001 

1948<h3 id="task-notification-subkinds">2002<h3 id="task-notification-subkinds">

1949 任務通知子類型2003 任務通知子類型

1950</h3>2004</h3>

1951 2005 

1952當 Claude Code 將任務通知傳遞到會話時,它僅在 Anthropic 伺服器驗證該通知來自何處時才在通知的 `origin` 上設置 `subkind`。`subkind` 需要 Claude Code v2.1.213 或更高版本,它採用以下兩個值之一:2006當 Claude Code 將任務通知傳遞到工作階段時,如果 Anthropic 伺服器驗證了該通知的來源,它會在通知的 `origin` 上設定 `subkind`。當您的應用程式[自己宣告訊息為排定執行](#declare-a-scheduled-run)時,它也會設定 `subkind`,這需要 TypeScript Agent SDK v0.3.280 或更新版本。`subkind` 需要 Claude Code v2.1.213 或更新版本,它採用以下兩個值之一:

2007 

2008* `scheduled-trigger`:通知是[例程](/docs/zh-TW/routines)的儲存提示,因為例程的觸發器之一觸發而傳遞:其排程、其 [API 觸發器](/docs/zh-TW/routines#add-an-api-trigger)、其 [GitHub 觸發器](/docs/zh-TW/routines#add-a-github-trigger) 或**立即執行**。您的應用程式[宣告為排定執行](#declare-a-scheduled-run)的提示也攜帶此值。Claude Code 將這些框架化為工作階段的指派任務,與[其他任務通知攜帶的通知](#sdktasknotificationmessage)不同。

2009*

1953 2010 

1954* `scheduled-trigger`:通知是[例程](/docs/zh-TW/routines)的儲存提示,因為例程的觸發器之一已觸發:其排程、其 [API 觸發器](/docs/zh-TW/routines#add-an-api-trigger)、其 [GitHub 觸發器](/docs/zh-TW/routines#add-a-github-trigger) 或**立即運行**。Claude Code 將這些框架化為模型作為會話的指派任務,帶有與[其他任務通知攜帶的通知](#sdktasknotificationmessage)不同的通知。2011`peer-send-message`:通知是另一個您的工作階段使用[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)使用的伺服器端 `send_message` 工具傳送的訊息,而不是[跨工作階段 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging),並且 Anthropic 伺服器驗證了兩個工作階段都屬於同一個私人工作階段組。需要 Claude Code v2.1.224 或更新版本。伺服器未以這種方式驗證的 `send_message` 傳遞沒有 subkind。

1955* `peer-send-message`:通知是另一個您的會話使用[Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 會話使用的伺服器端 `send_message` 工具發送的消息,而不是[跨會話 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging),並且 Anthropic 伺服器驗證了兩個會話都屬於同一個私人會話組。需要 Claude Code v2.1.224 或更高版本。伺服器未以該方式驗證的 `send_message` 傳遞沒有 subkind。

1956 2012 

1957每個其他任務通知都沒有 `subkind`。這包括在您自己的機器上觸發的[排程任務](/docs/zh-TW/scheduled-tasks)、[PR 活動](/docs/zh-TW/claude-code-on-the-web#how-claude-responds-to-pr-activity)傳遞到會話,以及背景事件(例如完成的任務)。來自[跨會話 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging)的消息根本不是任務通知:無論它們來自同一機器上的會話還是通過 Anthropic 伺服器來自另一台機器,Claude Code 都給予它們 `kind: "peer"` 和[對等來源字段](#peer-origin-fields)。2013每個其他任務通知都沒有 `subkind`。這包括[PR 活動](/docs/zh-TW/claude-code-on-the-web#how-claude-responds-to-pr-activity)傳遞到工作階段和背景事件,例如完成的任務。來自[跨工作階段 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging)的訊息根本不是任務通知:無論它們來自同一機器上的工作階段還是通過 Anthropic 伺服器來自另一台機器,Claude Code 都給它們 `kind: "peer"` 和[對等來源欄位](#peer-origin-fields)。

2014 

2015`fireReason` 說明 `scheduled-trigger` 通知觸發的原因,作為短小寫令牌,例如 `scheduled`、`manual`、`retry`、`catch_up` 或 `api`。Anthropic 伺服器在[例程](/docs/zh-TW/routines)的傳遞上設定它,您的應用程式在宣告排定執行時設定它。當都沒有傳送時不存在。需要 TypeScript Agent SDK v0.3.280 或更新版本。

2016 

2017<h4 id="declare-a-scheduled-run">

2018 宣告排定執行

2019</h4>

2020 

2021如果您的應用程式按自己的排程執行提示,請宣告每個執行,以便 Claude Code 將轉換框架化為排定任務,而不是來自使用者的即時輸入。使用 [`env`](#options) 中設定為 `1` 的 `CLAUDE_CODE_HOST_SCHEDULED_RUN` 啟動工作階段,然後使用 `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 和不帶 `isSynthetic` 傳送執行的 [`SDKUserMessage`](#sdkusermessage)。Claude Code 在沒有該變數的情況下啟動的程序中忽略宣告。它也在其環境攜帶 [`CLAUDECODE`](/docs/zh-TW/env-vars) 或 `CLAUDE_CODE_CHILD_SESSION` 的程序中忽略它。Claude Code 僅在值為 1 到 32 個小寫字母或底線時保留 `fireReason`。需要 TypeScript Agent SDK v0.3.280 或更新版本。

1958 2022 

1959<h3 id="peer-origin-fields">2023<h3 id="peer-origin-fields">

1960 對等來源字段2024 對等來源欄位

1961</h3>2025</h3>

1962 2026 

1963`peer` 來源識別哪個代理發送了消息:進程內[隊友](/docs/zh-TW/agent-teams)使用 `SendMessage` 發送到 `main`,或[跨會話對等體](/docs/zh-TW/cross-session-messaging),您的另一個 Claude Code 會話。跨會話對等體需要 macOS 和 Linux 上的 Claude Code v2.1.224 或更高版本;請參閱[跨會話消息傳遞可用性](/docs/zh-TW/cross-session-messaging#availability)以了解本機 Windows 要求。跨會話對等體可以在同一機器上運行,或在[您的另一台機器](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)或[Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 上,當其消息通過遠程控制到達時。兩種發送者類型填充字段的方式不同:2027`peer` 來源識別哪個代理傳送了訊息:進程內[隊友](/docs/zh-TW/agent-teams)使用 `SendMessage` 傳送到 `main`,或[跨工作階段對等](/docs/zh-TW/cross-session-messaging),您的另一個 Claude Code 工作階段。跨工作階段對等在 macOS 和 Linux 上需要 Claude Code v2.1.224 或更新版本;請參閱[跨工作階段訊息可用性](/docs/zh-TW/cross-session-messaging#availability)以了解原生 Windows 要求。跨工作階段對等可以在同一機器上執行,或在[您的另一台機器](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)或[雲端](/docs/zh-TW/claude-code-on-the-web)中執行,當其訊息通過遠端控制到達時。兩種發送者類型以不同方式填充欄位:

2028 

2029* `from`:隊友的名稱,或跨工作階段對等的發送者地址。對於[單向跨機器訊息](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines),發送者沒有回覆地址,`from` 是 `"unknown"`。該值由發送者編寫;`verifiedPeerPid` 是驗證的身份。

2030*

2031 

2032`fromMode`:傳送工作階段的權限類別,`bypass` 或 `prompting`,由在您的工作階段之間轉發對等訊息的主機宣告,例如[桌面應用程式](/docs/zh-TW/desktop#work-across-sessions)。Claude Code 在接收工作階段中讀取它,當它應用[入站控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)時。需要 Agent SDK v0.3.234 或更新版本。

2033 

2034* `senderTaskId`:隊友的任務 ID。對於跨工作階段對等不存在。

2035*

2036 

2037`name`:發送者的顯示名稱,由 Claude Code 規範化:它去除 Unicode 控制、格式、代理和行或段落分隔符代碼點,然後修剪結果並將其限制為 64 個代碼點,帶有省略號。需要 Claude Code v2.1.205 或更新版本。

2038 

2039*

2040 

2041`body`:解碼的訊息正文,去除對等信封,與模型看到的逐位元組相同。始終存在於隊友訊息中;對於跨工作階段對等,僅當轉換恰好是由 Claude Code 形成的一個對等信封時才存在。呈現 `name` 和 `body` 而不是重新解析訊息文字。需要 Claude Code v2.1.205 或更新版本。

2042 

2043*

1964 2044 

1965* `from`:隊友的名稱,或跨會話對等體的發送者地址。對於[單向跨機器消息](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines),發送者沒有回覆地址,`from` 是 `"unknown"`。該值是發送者編寫的;`verifiedPeerPid` 是驗證的身份。2045`fromSession`:發送者的主機可開啟工作階段 ID,由發送者的主機設定,以便您的 UI 可以連結回傳送工作階段。像 `from` 一樣,它是發送者聲稱的:僅將其用作導航目標,不要將其視為發送者身份的證明。需要 Claude Code v2.1.216 或更新版本。

1966* `fromMode`:發送會話的權限類別,`bypass` 或 `prompting`,由在您的會話之間轉發對等消息的主機聲明,例如[桌面應用程式](/docs/zh-TW/desktop#work-across-sessions)。Claude Code 在接收會話中讀取它,當它應用[入站控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)時。需要 Agent SDK v0.3.234 或更高版本。2046 

1967* `senderTaskId`:隊友的任務 ID。對於跨會話對等體不存在。2047*

1968* `name`:發送者的顯示名稱,由 Claude Code 規範化:它去除 Unicode 控制、格式、代理和行或段落分隔符代碼點,然後修剪結果並將其限制為 64 個代碼點,帶有省略號。需要 Claude Code v2.1.205 或更高版本。2048 

1969* `body`:去除對等信封的已解碼消息正文,與模型看到的內容完全相同。對於隊友消息始終存在;對於跨會話對等體,僅當轉數恰好是由 Claude Code 形成的一個對等信封時才存在。呈現 `name` 和 `body` 而不是重新解析消息文本。需要 Claude Code v2.1.205 或更高版本。2049`verifiedPeerPid`:連線到此工作階段的跨工作階段訊息套接字的程序的程序 ID,由核心驗證並從連線本身讀取,絕不從有效負載讀取。使用它,而不是 `from`,來識別發送者:`from` 可由任何同一使用者程序偽造。當 Claude Code 無法驗證它時,該欄位不存在,例如在 Windows 或非套接字入站上,因此不存在的值意味著發送者未驗證。對於轉發的流量,它識別轉發而不是訊息的作者,程序 ID 是可回收的,因此將其視為來源而不是驗證令牌。需要 Claude Code v2.1.216 或更新版本。

1970* `fromSession`:發送者的主機可開啟會話 ID,由發送者的主機設置,以便您的 UI 可以連結回發送會話。像 `from` 一樣,它是發送者聲稱的:僅將其用作導航目標,不要將其視為發送者身份的證明。需要 Claude Code v2.1.216 或更高版本。

1971* `verifiedPeerPid`:連接到此會話的跨會話消息傳遞套接字的程序的程序 ID,由核心驗證並從連接本身讀取,從不從有效負載讀取。使用它,而不是 `from`,來識別發送者:`from` 可由任何同一使用者程序偽造。當 Claude Code 無法驗證它時,該字段不存在,例如在 Windows 或非套接字入口上,因此缺少值意味著發送者未驗證。對於轉發的流量,它識別轉發者而不是消息的作者,程序 ID 是可回收的,因此將其視為來源而不是身份驗證令牌。需要 Claude Code v2.1.216 或更高版本。

1972 2050 

1973<h2 id="hook-types">2051<h2 id="hook-types">

1974 Hook 類型2052 Hook 類型


2833 | ReadMcpResourceInput2911 | ReadMcpResourceInput

2834 | RefreshMcpToolsInput2912 | RefreshMcpToolsInput

2835 | RemoteTriggerInput2913 | RemoteTriggerInput

2836 | REPLInput

2837 | ReportFindingsInput2914 | ReportFindingsInput

2838 | ScheduleWakeupInput2915 | ScheduleWakeupInput

2839 | ShowOnboardingRolePickerInput2916 | ShowOnboardingRolePickerInput

2840 | TaskCreateInput2917 | TaskCreateInput

2841 | TaskGetInput2918 | TaskGetInput

2842 | TaskListInput2919 | TaskListInput

2843 | TaskOutputInput

2844 | TaskStopInput2920 | TaskStopInput

2845 | TaskUpdateInput2921 | TaskUpdateInput

2846 | TodoWriteInput2922 | TodoWriteInput


2935 3011 

2936執行背景來源並將每個事件傳遞給 Claude,使其能夠做出反應而無需輪詢:`command` 執行指令碼並每行 stdout 發出一個事件,`ws` 開啟 WebSocket 並每個文字框架發出一個事件。提供 `command` 或 `ws` 中的恰好一個。`ws` 來源需要 Claude Code v2.1.195 或更新版本。3012執行背景來源並將每個事件傳遞給 Claude,使其能夠做出反應而無需輪詢:`command` 執行指令碼並每行 stdout 發出一個事件,`ws` 開啟 WebSocket 並每個文字框架發出一個事件。提供 `command` 或 `ws` 中的恰好一個。`ws` 來源需要 Claude Code v2.1.195 或更新版本。

2937 3013 

2938`timeout_ms` 是監視的截止時間(以毫秒為單位)。預設為 300000,有效截止時間最多為 1800000,即 30 分鐘。在截止時間時,監視結束,Claude 收到一個通知,以便在仍需要時啟動新的監視。3014`timeout_ms` 是監視的截止時間(以毫秒為單位)。預設為 300000,接受最多 3600000 的值。有效截止時間最多為 1800000,即 30 分鐘,因此較大的接受值會縮短到該值。在截止時間時,監視結束,Claude 收到一個通知,以便在仍需要時啟動新的監視。

2939 3015 

2940匯出的類型將 `timeout_ms` 標記為必需,因為架構填入預設值;省略它的呼叫會驗證通過。3016匯出的類型將 `timeout_ms` 標記為必需,因為架構填入預設值;省略它的呼叫會驗證通過。

2941 3017 


2945 TaskOutput3021 TaskOutput

2946</h3>3022</h3>

2947 3023 

2948**工具名稱:** `TaskOutput`3024在 Claude Code v2.1.277 中移除,連同其 `TaskOutputInput` 類型一起移除。先前從執行中或已完成的背景任務中擷取輸出;Claude 改用 `Read` 讀取背景任務的輸出檔案。

2949 

2950<Note>`TaskOutput` 已棄用;改為在任務的輸出檔案路徑上使用 `Read`。以下架構對於遇到該工具的 hooks 和權限處理程式仍然有效。</Note>

2951 

2952```typescript theme={null}

2953type TaskOutputInput = {

2954 task_id: string;

2955 block: boolean;

2956 timeout: number;

2957};

2958```

2959 3025 

2960從執行中或已完成的背景任務中擷取輸出。3026仍命名 `TaskOutput` 的 `disallowedTools` 項目或拒絕規則會被忽略,不會發出警告。

2961 3027 

2962<h3 id="edit">3028<h3 id="edit">

2963 Edit3029 Edit


3452 REPL3518 REPL

3453</h3>3519</h3>

3454 3520 

3455**工具名稱:** `REPL`3521在 v2.1.275 中移除。透過 v2.1.274,實驗性 `REPL` 工具可以透過在 [`env` 選項](#options)中設定 `CLAUDE_CODE_REPL=1` 來開啟。

3456 

3457```typescript theme={null}

3458type REPLInput = {

3459 code: string;

3460 description?: string;

3461 timeout?: number;

3462};

3463```

3464 

3465在持久 REPL 中執行 JavaScript 程式碼。狀態在呼叫之間保持,並支援頂層 await。`timeout` 以毫秒為單位,預設為 30000,最大為 600000。

3466 

3467類型已匯出,但除非您在 [`env` 選項](#options)中設定 `CLAUDE_CODE_REPL=1`,否則該工具在 SDK 工作階段中關閉,並且還需要原生安裝程式提供的基於 Bun 的 `claude` 可執行檔。

3468 3522 

3469<h3 id="reportfindings">3523<h3 id="reportfindings">

3470 ReportFindings3524 ReportFindings


3510 action?: "publish" | "list";3564 action?: "publish" | "list";

3511 file_path?: string;3565 file_path?: string;

3512 favicon?: string;3566 favicon?: string;

3567 icon?: string;

3513 limit?: number;3568 limit?: number;

3514 scope?: "mine" | "shared" | "all";3569 scope?: "mine" | "shared" | "all";

3515 title?: string;3570 title?: string;


3522};3577};

3523```3578```

3524 3579 

3525將本機 `.html` 或 `.md` 檔案發佈為託管成品頁面,或列出使用者的已發佈成品。省略 `action` 或傳遞 `"publish"` 以發佈 `file_path`,這對於發佈動作以及 `favicon` 為必需,一或兩個標記成品在使用者圖庫中的表情符號。當 HTML 檔案沒有 `<title>` 標籤時,`title` 命名瀏覽器標籤和圖庫中的已發佈頁面。`url` 以現有成品為目標以就地更新,而不是鑄造新的。3580將本機 `.html` 或 `.md` 檔案發佈為託管成品頁面,或列出使用者的已發佈成品。省略 `action` 或傳遞 `"publish"` 以發佈 `file_path`,這對於發佈動作為必需。每個以下欄位適用於發佈:

3581 

3582* `icon`:成品瀏覽器標籤圖示的一個短通用詞,例如 `chart` 或 `map`。Claude 在首次發佈時包含它,在更新時省略它,這會保留成品的儲存圖示。

3583* `favicon`:已棄用,Claude 會省略它。

3584* `title`:當 HTML 檔案沒有 `<title>` 標籤時,在瀏覽器標籤和圖庫中命名已發佈頁面。

3585* `url`:以現有成品為目標以就地更新,而不是建立新的。

3526 3586 

3527`force` 是最後手段的覆蓋,捨棄另一個工作階段發佈的較新版本。發生衝突時,失敗的發佈會傳回較新的內容;Claude 將其變更合併到該內容上,或重新讀取成品,然後再次發佈。僅當使用者明確要求捨棄該版本時才傳遞 `force`。3587`force` 是最後手段的覆蓋,捨棄另一個工作階段發佈的較新版本。發生衝突時,失敗的發佈會傳回較新的內容;Claude 將其變更合併到該內容上,或重新讀取成品,然後再次發佈。僅當使用者明確要求捨棄該版本時才傳遞 `force`。

3528 3588 


3659 | ReadMcpResourceOutput3719 | ReadMcpResourceOutput

3660 | RefreshMcpToolsOutput3720 | RefreshMcpToolsOutput

3661 | RemoteTriggerOutput3721 | RemoteTriggerOutput

3662 | REPLOutput

3663 | ReportFindingsOutput3722 | ReportFindingsOutput

3664 | ScheduleWakeupOutput3723 | ScheduleWakeupOutput

3665 | ShowOnboardingRolePickerOutput3724 | ShowOnboardingRolePickerOutput


4509 4568 

4510傳回傳遞詳細資訊,包括是否傳送了推送或本機通知以及為什麼跳過傳遞。4569傳回傳遞詳細資訊,包括是否傳送了推送或本機通知以及為什麼跳過傳遞。

4511 4570 

4512<h3 id="repl-2">

4513 REPL

4514</h3>

4515 

4516**工具名稱:** `REPL`

4517 

4518```typescript theme={null}

4519type REPLOutput = {

4520 code: string;

4521 result: {

4522 [k: string]: unknown;

4523 };

4524 stdout: string;

4525 stderr: string;

4526 error?: string;

4527 registeredTools?: string[];

4528 images?: {

4529 base64: string;

4530 mediaType: string;

4531 }[];

4532 documents?: {

4533 base64: string;

4534 }[];

4535};

4536```

4537 

4538傳回執行結果、擷取的主控台輸出以及內部 `Read` 呼叫呈現的任何影像或文件。

4539 

4540<h3 id="reportfindings-2">4571<h3 id="reportfindings-2">

4541 ReportFindings4572 ReportFindings

4542</h3>4573</h3>


4860```4891```

4861 4892 

4862<Warning>4893<Warning>

4863 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此值無效,超過標準 200k 令牌內容視窗的請求會傳回錯誤。若要使用 1M 令牌內容視窗,請遷移至 [Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),這些模型在標準定價下包含 1M 內容,無需測試版標頭。4894 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此值無效,超過標準 200k 令牌內容視窗的請求會傳回錯誤。若要使用 1M 令牌內容視窗,請遷移至 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),這些模型在標準定價下包含 1M 內容,無需測試版標頭。

4864</Warning>4895</Warning>

4865 4896 

4866<h3 id="slashcommand">4897<h3 id="slashcommand">


4875 description: string;4906 description: string;

4876 argumentHint: string;4907 argumentHint: string;

4877 aliases?: string[];4908 aliases?: string[];

4909 builtin?: boolean;

4878};4910};

4879```4911```

4880 4912 

4913`builtin` 在命令是 Claude Code 自身且輸入 `/name` 執行它的列上為 `true`。它對由使用者、專案、plugin 或 MCP 伺服器定義的命令不存在,以及對其中一個 [按名稱替換](/docs/zh-TW/skills#resolve-skills-that-share-a-name) 的捆綁命令不存在。需要 Agent SDK v0.3.277 或更新版本。

4914 

4881<h3 id="modelinfo">4915<h3 id="modelinfo">

4882 `ModelInfo`4916 `ModelInfo`

4883</h3>4917</h3>


4984 destructive?: boolean;5018 destructive?: boolean;

4985 openWorld?: boolean;5019 openWorld?: boolean;

4986 };5020 };

5021 _meta?: Record<string, unknown>;

4987 }[];5022 }[];

4988};5023};

4989```5024```

4990 5025 

4991`source` 說明伺服器定義的來源,具有與 [`McpServerProvenance`](#mcpserverprovenance) 的 `source` 相同的值和信任規則。該欄位需要 Agent SDK v0.3.274 或更新版本,在較早版本上不存在。5026`source` 說明伺服器定義的來源,具有與 [`McpServerProvenance`](#mcpserverprovenance) 的 `source` 相同的值和信任規則。該欄位需要 Agent SDK v0.3.274 或更新版本,在較早版本上不存在。

4992 5027 

5028`_meta` 在 `tools` 項目上攜帶該工具的 `_meta` 的 MCP Apps 成員,因此您的應用程式可以找到 `ui://` 資源以使用 [`readMcpResource()`](#query-object) 呈現。Claude Code 傳遞 `ui` 物件和已棄用的平面 `ui/resourceUri` 字串,並保留所有其他金鑰。在 `ui` 內,`resourceUri` 是 `ui://` 字串,`visibility` 是當伺服器設定時 `"model"` 和 `"app"` 的陣列,任何其他成員原封不動地傳遞。Claude Code 在值格式不正確時捨棄任一金鑰,並從未宣告任一金鑰的工具中省略 `_meta`。該欄位僅在初始化訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_tool_ui_meta_v1` 時存在,並需要 TypeScript Agent SDK v0.3.280 或更新版本。

5029 

4993<h3 id="mcpserverstatusconfig">5030<h3 id="mcpserverstatusconfig">

4994 `McpServerStatusConfig`5031 `McpServerStatusConfig`

4995</h3>5032</h3>


5734```5771```

5735 5772 

5736| 屬性 | 類型 | 預設值 | 說明 |5773| 屬性 | 類型 | 預設值 | 說明 |

5737| :-------------------------- | :---------------------------------------------------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |5774| :-------------------------- | :---------------------------------------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

5738| `enabled` | `boolean` | `false` | 為命令執行啟用 sandbox 模式 |5775| `enabled` | `boolean` | `false` | 為命令執行啟用 sandbox 模式 |

5739| `failIfUnavailable` | `boolean` | `true` | 如果 `enabled` 為 `true` 但 sandbox 無法啟動,則在啟動時停止。設定為 `false` 以回退到未 sandboxed 的執行,並在 stderr 上顯示警告 |5776| `failIfUnavailable` | `boolean` | `true` | 如果 `enabled` 為 `true` 但 sandbox 無法啟動,則在啟動時停止。設定為 `false` 以回退到未 sandboxed 的執行,並在 stderr 上顯示警告 |

5740| `autoAllowBashIfSandboxed` | `boolean` | `true` | 當 sandbox 啟用時自動核准 Bash 命令 |5777| `autoAllowBashIfSandboxed` | `boolean` | `true` | 當 sandbox 啟用時自動核准 Bash 命令 |

5741| `excludedCommands` | `string[]` | `[]` | 始終繞過 sandbox 限制的命令(例如 `['docker']`)。這些命令會自動以未 sandboxed 的方式執行,無需模型參與 |5778| `excludedCommands` | `string[]` | `[]` | 繞過 sandbox 限制的命令,例如 `['docker *']`。這些命令會自動以未 sandboxed 的方式執行,無需模型參與;[`sandbox.excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 涵蓋何時適用項目 |

5742| `allowUnsandboxedCommands` | `boolean` | `true` | 允許模型要求在 sandbox 外執行命令。當為 `true` 時,模型可以在工具輸入中設定 `dangerouslyDisableSandbox`,這會回退到[權限系統](#permissions-fallback-for-unsandboxed-commands) |5779| `allowUnsandboxedCommands` | `boolean` | `true` | 允許模型要求在 sandbox 外執行命令。當為 `true` 時,模型可以在工具輸入中設定 `dangerouslyDisableSandbox`,這會回退到[權限系統](#permissions-fallback-for-unsandboxed-commands) |

5743| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | 網路特定的 sandbox 設定 |5780| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | 網路特定的 sandbox 設定 |

5744| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | 檔案系統特定的 sandbox 設定,用於讀取/寫入限制 |5781| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | 檔案系統特定的 sandbox 設定,用於讀取/寫入限制 |


5845 未 Sandboxed 命令的權限回退5882 未 Sandboxed 命令的權限回退

5846</h3>5883</h3>

5847 5884 

5848當 `allowUnsandboxedCommands` 啟用時,模型可以透過在工具輸入中設定 `dangerouslyDisableSandbox: true` 來要求在 sandbox 外執行命令。這些請求會回退到現有的權限系統,這表示您的 `canUseTool` 處理程式會被呼叫,允許您實現自訂授權邏輯。列在 `excludedCommands` 中的命令改為自動繞過 sandbox,無需模型參與;請參閱 [`SandboxSettings`](#sandboxsettings)。5885當 `allowUnsandboxedCommands` 啟用時,模型可以透過在工具輸入中設定 `dangerouslyDisableSandbox: true` 來要求在 sandbox 外執行命令。這些請求會回退到現有的權限系統,這表示您的 `canUseTool` 處理程式會被呼叫,允許您實現自訂授權邏輯。

5886 

5887您的 `excludedCommands` 項目改為自動繞過 sandbox,無需模型參與;[`sandbox.excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 涵蓋何時適用項目。

5849 5888 

5850在下面的範例中,`isCommandAuthorized` 代表您定義的授權檢查。5889在下面的範例中,`isCommandAuthorized` 代表您定義的授權檢查。

5851 5890 

agent-teams.md +0 −4

Details

14 14 

15在設定團隊之前,請檢查是否有更輕量的選項可以完成工作。[Subagents](/docs/zh-TW/sub-agents) 在單個工作階段內運行,透過[跨工作階段訊息傳遞](/docs/zh-TW/cross-session-messaging),Claude 可以在您自己執行的工作階段之間傳遞發現。15在設定團隊之前,請檢查是否有更輕量的選項可以完成工作。[Subagents](/docs/zh-TW/sub-agents) 在單個工作階段內運行,透過[跨工作階段訊息傳遞](/docs/zh-TW/cross-session-messaging),Claude 可以在您自己執行的工作階段之間傳遞發現。

16 16 

17<Note>

18 本頁描述的是 v2.1.178 版本的 agent teams。設定 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 後,生成隊友不再需要設定步驟,工作階段退出時會自動清理。在 v2.1.178 之前,您需要要求 Claude 先建立並命名團隊,Claude 使用 `TeamCreate` 和 `TeamDelete` 工具來設定和移除它。這兩個工具已不存在。Agent 工具上的 `team_name` 輸入被接受但被忽略,`TaskCreated`、`TaskCompleted` 和 `TeammateIdle` [hook payloads](/docs/zh-TW/hooks#taskcreated) 中的 `team_name` 欄位帶有工作階段衍生的名稱,已被棄用。

19</Note>

20 

21<h2 id="when-to-use-agent-teams">17<h2 id="when-to-use-agent-teams">

22 何時使用 agent teams18 何時使用 agent teams

23</h2>19</h2>

Details

291 291 

292將這些環境變數設定為特定 Amazon Bedrock 模型 ID。292將這些環境變數設定為特定 Amazon Bedrock 模型 ID。

293 293 

294沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL` 時,Amazon Bedrock 上的 `opus` 別名解析為 Opus 5,沒有 `ANTHROPIC_DEFAULT_SONNET_MODEL` 時,`sonnet` 別名解析為 Sonnet 4.5。此範例將每個別名釘選至特定版本:294沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL` 時,Amazon Bedrock 上的 `opus` 別名解析為 Opus 5.5,沒有 `ANTHROPIC_DEFAULT_SONNET_MODEL` 時,`sonnet` 別名解析為 Sonnet 4.5。此範例將每個別名釘選至特定版本:

295 295 

296```bash theme={null}296```bash theme={null}

297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'


304若要保留內建預設模型並僅變更其偏好的前置詞,請改為設定 [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes),而不是釘選。差異顯示在 `opus` 別名解析為的內容中:304若要保留內建預設模型並僅變更其偏好的前置詞,請改為設定 [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes),而不是釘選。差異顯示在 `opus` 別名解析為的內容中:

305 305 

306| 您設定 | `opus` 別名解析為 |306| 您設定 | `opus` 別名解析為 |

307| :------------------------------------------------------------ | :------------------------------------------ |307| :------------------------------------------------------------ | :-------------------------------------------- |

308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`,您釘選的確切 ID |308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`,您釘選的確切 ID |

309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5`,具有您偏好前置詞的內建預設值 |309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5-5`,具有您偏好前置詞的內建預設值 |

310 310 

311如需目前和舊版模型 ID,請參閱[模型概觀](https://platform.claude.com/docs/en/about-claude/models/overview)。如需釘選環境變數的完整清單,請參閱[模型設定](/docs/zh-TW/model-config#pin-models-for-third-party-deployments)。311如需目前和舊版模型 ID,請參閱[模型概觀](https://platform.claude.com/docs/en/about-claude/models/overview)。如需釘選環境變數的完整清單,請參閱[模型設定](/docs/zh-TW/model-config#pin-models-for-third-party-deployments)。

312 312 


314 314 

315| 模型類型 | 預設模型 |315| 模型類型 | 預設模型 |

316| :------ | :----------------------------------------------------------------------- |316| :------ | :----------------------------------------------------------------------- |

317| 主要模型 | Opus 5,例如 `us-*` 區域中的 `us.anthropic.claude-opus-5` |317| 主要模型 | Opus 5.5,例如 `us-*` 區域中的 `us.anthropic.claude-opus-5-5` |

318| 小型/快速模型 | Sonnet 4.5,例如 `us-*` 區域中的 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |318| 小型/快速模型 | Sonnet 4.5,例如 `us-*` 區域中的 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |

319 319 

320背景工作(例如工作階段標題產生)使用小型/快速模型,通常是 Haiku 級模型。在 Amazon Bedrock 上,Claude Code 對背景工作使用預設 Sonnet 模型,因為 Haiku 可能不會在每個帳戶或區域中啟用。兩個選項變更哪個模型執行它們:320背景工作(例如工作階段標題產生)使用小型/快速模型,通常是 Haiku 級模型。在 Amazon Bedrock 上,Claude Code 對背景工作使用預設 Sonnet 模型,因為 Haiku 可能不會在每個帳戶或區域中啟用。兩個選項變更哪個模型執行它們:


326 Opus 模型的每個權杖價格高於 Sonnet 模型,因此不釘選主要模型的部署在更新至 v2.1.207 或更新版本後會以 Opus 費率計費。若要將 Sonnet 4.5 保留為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引導預設且不設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保留為預設值。326 Opus 模型的每個權杖價格高於 Sonnet 模型,因此不釘選主要模型的部署在更新至 v2.1.207 或更新版本後會以 Opus 費率計費。若要將 Sonnet 4.5 保留為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引導預設且不設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保留為預設值。

327</Warning>327</Warning>

328 328 

329在 v2.1.207 至 v2.1.218 上,Amazon Bedrock 上的主要模型預設為 Opus 4.8,`opus` 別名解析為 Opus 4.8。在 v2.1.207 之前,主要模型預設為 Sonnet 4.5,`opus` 別名解析為 Opus 4.6,背景工作始終使用主要模型。329在 v2.1.280 之前,Amazon Bedrock 上的主要模型預設為 Opus 5,`opus` 別名從 v2.1.219 解析為 Opus 5。在 v2.1.207 至 v2.1.218 上,Amazon Bedrock 上的主要模型預設為 Opus 4.8,`opus` 別名解析為 Opus 4.8。在 v2.1.207 之前,主要模型預設為 Sonnet 4.5,`opus` 別名解析為 Opus 4.6,背景工作始終使用主要模型。

330 330 

331若要進一步自訂模型,請使用下列其中一種方法:331若要進一步自訂模型,請使用下列其中一種方法:

332 332 


405```bash theme={null}405```bash theme={null}

406export ANTHROPIC_BEDROCK_REGION_PREFIX=global406export ANTHROPIC_BEDROCK_REGION_PREFIX=global

407# 在 us-* 區域中,主要模型現在解析為407# 在 us-* 區域中,主要模型現在解析為

408# global.anthropic.claude-opus-5 而不是 us.anthropic.claude-opus-5408# global.anthropic.claude-opus-5-5 而不是 us.anthropic.claude-opus-5-5

409```409```

410 410 

411偏好的前綴是一個偏好設定,而非保證,無論它來自您的區域或來自變數。Claude Code 如何應用它取決於它是否可以檢查您帳戶中的設定檔可用性:411偏好的前綴是一個偏好設定,而非保證,無論它來自您的區域或來自變數。Claude Code 如何應用它取決於它是否可以檢查您帳戶中的設定檔可用性:

artifacts.md +2 −2

Details

347成品需要下面的每個條件。當不滿足其中一個時,Claude 寫入本地 HTML 檔案或說它無法發佈。347成品需要下面的每個條件。當不滿足其中一個時,Claude 寫入本地 HTML 檔案或說它無法發佈。

348 348 

349| 要求 | 可用時間 |349| 要求 | 可用時間 |

350| :---- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |350| :---- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

351| 方案 | Pro、Max、Team 或 Enterprise。在 Pro 和 Max 方案上,成品僅供您私人使用,不適用管理員管理。在 Team 方案上,成品預設開啟。在 Enterprise 方案上,Owner 在 claude.ai 管理設定中[啟用它們](#manage-artifacts-for-your-organization)。 |351| 方案 | Pro、Max、Team 或 Enterprise。在 Pro 和 Max 方案上,成品僅供您私人使用,不適用管理員管理。在 Team 方案上,成品預設開啟。在 Enterprise 方案上,Owner 在 claude.ai 管理設定中[啟用它們](#manage-artifacts-for-your-organization)。 |

352| 驗證 | 工作階段由 claude.ai 帳戶支援:在 CLI 或桌面應用程式中使用 `/login` 登入。Claude Tag 工作階段透過代理程式的身分登入,因此不需要任何步驟。使用 API 金鑰、[閘道令牌](/docs/zh-TW/llm-gateway)或雲端提供者認證的工作階段無法發佈。 |352| 驗證 | 工作階段由 claude.ai 帳戶支援:在 CLI 或桌面應用程式中使用 `/login` 登入。Claude Tag 工作階段透過代理程式的身分登入,因此不需要任何步驟。使用 API 金鑰、[閘道令牌](/docs/zh-TW/llm-gateway)或雲端提供者認證的工作階段無法發佈。 |

353| 模型提供者 | Anthropic API。在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上不可用。 |353| 模型提供者 | Anthropic API。在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上不可用。 |

354| 組織政策 | 客戶管理的加密金鑰 (CMEK)、HIPAA 和[零資料保留](/docs/zh-TW/zero-data-retention)未為組織啟用。 |354| 組織政策 | 客戶管理的加密金鑰 (CMEK)、HIPAA 和[零資料保留](/docs/zh-TW/zero-data-retention)未為組織啟用。 |

355| 表面 | Claude Code CLI 版本 2.1.183 或更新版本,或 Claude 桌面應用程式版本 1.13576.0 或更新版本。[Claude Tag](https://claude.com/docs/claude-tag/overview) 工作階段在 Claude Tag 和成品都為組織啟用時也可以發佈成品。在 [Agent SDK](/docs/zh-TW/agent-sdk/overview)、GitHub Action 和 MCP 伺服器上下文中預設關閉,以及當設定 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars) 時。 |355| 表面 | Claude Code CLI,或 Claude 桌面應用程式版本 1.13576.0 或更新版本。[Claude Tag](https://claude.com/docs/claude-tag/overview) 工作階段在 Claude Tag 和成品都為組織啟用時也可以發佈成品。在 [Agent SDK](/docs/zh-TW/agent-sdk/overview)、GitHub Action 和 MCP 伺服器上下文中預設關閉,以及當設定 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars) 時。 |

356 356 

357<h2 id="disable-artifacts">357<h2 id="disable-artifacts">

358 停用 artifacts358 停用 artifacts

Details

53 53 

54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) 和 [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) 為使用 Claude Code 的組織提供最佳體驗。團隊成員可以存取 Claude Code 和網頁版 Claude,並具有集中式帳單和團隊管理。54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) 和 [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) 為使用 Claude Code 的組織提供最佳體驗。團隊成員可以存取 Claude Code 和網頁版 Claude,並具有集中式帳單和團隊管理。

55 55 

56* **Claude for Teams**:自助服務方案,具有協作功能、管理工具和帳單管理。最適合較小的團隊。56* **Claude for Teams**:自助服務方案,具有協作功能、管理工具、SSO、帳單管理和 [伺服器受管設定](/docs/zh-TW/server-managed-settings),用於組織範圍的 Claude Code 配置。最適合較小的團隊。

57* **Claude for Enterprise**:新增 SSO、網域擷取、角色型權限、合規性 API 和受管原則設定,用於組織範圍的 Claude Code 配置。最適合具有安全性和合規性要求的大型組織。57* **Claude for Enterprise**:新增網域擷取、角色型權限和合規性 API。最適合具有安全性和合規性要求的大型組織。

58 58 

59<Steps>59<Steps>

60 <Step title="訂閱">60 <Step title="訂閱">

Details

250 250 

251雲端工作階段支援產生文字輸出的[內建命令](/docs/zh-TW/commands)。只在終端介面中執行的命令,例如 `/plugin` 或 `/resume`,無法使用。在雲端工作階段中開啟選擇器或面板的命令行為不同:251雲端工作階段支援產生文字輸出的[內建命令](/docs/zh-TW/commands)。只在終端介面中執行的命令,例如 `/plugin` 或 `/resume`,無法使用。在雲端工作階段中開啟選擇器或面板的命令行為不同:

252 252 

253* **`/model`、`/effort`、`/color` 和 `/rename`**:將值作為引數傳遞,例如 `/model sonnet`,而不是開啟終端選擇器或滑塊。引數形式需要工作階段環境中的 Claude Code v2.1.205 或更新版本,並遵循每個命令的[可用性說明](/docs/zh-TW/commands#all-commands):`/effort` 會報告 `Not applied`,而模型的[啟動預設努力保持](/docs/zh-TW/model-config#adjust-effort-level)生效時。253* **`/model`、`/effort`、`/color` 和 `/rename`**:將值作為引數傳遞,例如 `/model sonnet`,而不是開啟終端選擇器或滑塊。引數形式需要工作階段環境中的 Claude Code v2.1.205 或更新版本,並遵循每個命令的[可用性說明](/docs/zh-TW/commands#all-commands)。

254* **`/fast`**:當快速模式在[您的帳戶上可用](/docs/zh-TW/fast-mode#requirements)時,為工作階段切換[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-in-cloud-sessions)。需要工作階段環境中的 Claude Code v2.1.271 或更新版本。254* **`/fast`**:當快速模式在[您的帳戶上可用](/docs/zh-TW/fast-mode#requirements)時,為工作階段切換[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-in-cloud-sessions)。需要工作階段環境中的 Claude Code v2.1.271 或更新版本。

255* **`/config`**:在您的瀏覽器上的 claude.ai/code,開啟您設定的 Claude Code 部分,而不是設定值,命令後的文字(包括 `key=value`)會被忽略。若要變更雲端工作階段的設定,請設定環境上的[環境變數](/docs/zh-TW/cloud-environments#set-environment-variables),或在具有一個儲存庫的工作階段中,將金鑰提交到該儲存庫的 `.claude/settings.json`。[雲端工作階段中的設定](/docs/zh-TW/settings#settings-in-cloud-sessions)列出每個工作階段讀取的內容。255* **`/config`**:在您的瀏覽器上的 claude.ai/code,開啟您設定的 Claude Code 部分,而不是設定值,命令後的文字(包括 `key=value`)會被忽略。若要變更雲端工作階段的設定,請設定環境上的[環境變數](/docs/zh-TW/cloud-environments#set-environment-variables),或在具有一個儲存庫的工作階段中,將金鑰提交到該儲存庫的 `.claude/settings.json`。[雲端工作階段中的設定](/docs/zh-TW/settings#settings-in-cloud-sessions)列出每個工作階段讀取的內容。

256 256 


282 282 

283每個工作階段顯示一個差異指示器,其中包含新增和移除的行數,例如 `+42 -18`。選擇它以開啟差異檢視、在特定行上留下內聯評論,並使用您的下一條訊息將它們發送給 Claude。283每個工作階段顯示一個差異指示器,其中包含新增和移除的行數,例如 `+42 -18`。選擇它以開啟差異檢視、在特定行上留下內聯評論,並使用您的下一條訊息將它們發送給 Claude。

284 284 

285差異檢視預設會將工作階段的變更與其基礎分支進行比較。若要與儲存庫中的任何其他分支進行比較,請選擇**比較對象**並選擇一個。

286 

285Claude Code 從原始 git blob 內容計算這些差異,包括 Claude 編輯時顯示的每個檔案差異,因此儲存庫中配置的差異驅動器和 `textconv` 篩選器不適用。對於不是工作階段自己簽出之一的儲存庫中的檔案,例如在工作階段期間在工作區內複製的檔案,每個檔案差異會顯示 Claude 的編輯本身,而不是 git 比較。287Claude Code 從原始 git blob 內容計算這些差異,包括 Claude 編輯時顯示的每個檔案差異,因此儲存庫中配置的差異驅動器和 `textconv` 篩選器不適用。對於不是工作階段自己簽出之一的儲存庫中的檔案,例如在工作階段期間在工作區內複製的檔案,每個檔案差異會顯示 Claude 的編輯本身,而不是 git 比較。

286 288 

287請參閱[檢查和迭代](/docs/zh-TW/web-quickstart#review-and-iterate)以了解完整逐步說明,包括 PR 建立。若要讓 Claude 自動監控 PR 以查找 CI 失敗和審查評論,請參閱[自動修復拉取請求](#auto-fix-pull-requests)。289請參閱[檢查和迭代](/docs/zh-TW/web-quickstart#review-and-iterate)以了解完整逐步說明,包括 PR 建立。若要讓 Claude 自動監控 PR 以查找 CI 失敗和審查評論,請參閱[自動修復拉取請求](#auto-fix-pull-requests)。

Details

1451探索器涵蓋您編寫和編輯的檔案。一些相關檔案位於其他位置:1451探索器涵蓋您編寫和編輯的檔案。一些相關檔案位於其他位置:

1452 1452 

1453| 檔案 | 位置 | 用途 |1453| 檔案 | 位置 | 用途 |

1454| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1454| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1455| `managed-settings.json` | 系統層級,因作業系統而異 | 企業強制執行的設定,您無法覆寫,除了[狹隘的例外](/docs/zh-TW/settings#security-keys-where-the-stricter-value-applies)。請參閱[檔案儲存位置](/docs/zh-TW/managed-settings#deploy-a-managed-settings-file)和[Claude Code 使用的受管來源](/docs/zh-TW/managed-settings#precedence-within-the-managed-tier)。 |1455| `managed-settings.json` | 系統層級,因作業系統而異 | 企業強制執行的設定,您無法覆寫,除了[狹隘的例外](/docs/zh-TW/settings#security-keys-where-the-stricter-value-applies)。請參閱[檔案儲存位置](/docs/zh-TW/managed-settings#deploy-a-managed-settings-file)和 [Claude Code 使用的受管來源](/docs/zh-TW/managed-settings#precedence-within-the-managed-tier)。 |

1456| `CLAUDE.local.md` | 專案根目錄 | 此專案的私人偏好設定,與 CLAUDE.md 一起載入。手動建立並將其新增至 `.gitignore`。 |1456| `CLAUDE.local.md` | 專案根目錄 | 您對此專案的私人偏好設定,與 CLAUDE.md 一起載入。手動建立它並將其新增至 `.gitignore`。 |

1457| `AGENTS.md` | 專案根目錄、`.claude/` 或任何目錄 | 您為 AI 編碼代理撰寫的專案指示。Claude Code 可以[自行載入](/docs/zh-TW/memory#agents-md)或與 `CLAUDE.md` 一起載入。 |1457| `AGENTS.md` | 專案根目錄、`.claude/` 或任何目錄 | 您為 AI 編碼代理撰寫的專案指示。Claude Code 可以[自行載入它](/docs/zh-TW/memory#agents-md)或與 `CLAUDE.md` 一起載入。 |

1458| 已安裝的 plugins | `~/.claude/plugins` | 複製的市集、已安裝的 plugin 版本和各 plugin 資料,由 `claude plugin` 命令管理。對於從市集[`command` 來源](/docs/zh-TW/plugin-marketplaces#command-sources)以連結模式安裝的 plugin,Claude Code 在此儲存連結而非副本,plugin 的檔案保留在命令列印的目錄中。`command` 來源需要 Claude Code v2.1.229 或更新版本。本地目錄市集中以相對路徑列出的 plugin 也會[就地載入](/docs/zh-TW/plugins-reference#plugin-caching-and-file-resolution)其來源目錄,而不是從快取副本載入。請參閱 [plugin 快取](/docs/zh-TW/plugins-reference#plugin-caching-and-file-resolution)以了解孤立版本如何被清理。 |1458| 已安裝的 plugins | `~/.claude/plugins` | 複製的市集、已安裝的 plugin 版本、`installed_plugins.json` 安裝記錄,以及各 plugin 資料,由 `claude plugin` 命令管理。從您的 claude.ai 帳戶[同步的 Plugins](/docs/zh-TW/plugins-reference#synced-plugins) 會下載到 `~/.claude/plugins/synced/`。對於從市集[`command` 來源](/docs/zh-TW/plugin-marketplaces#command-sources)以連結模式安裝的 plugin,Claude Code 會在此儲存連結而不是副本,plugin 的檔案保留在命令列印的目錄中。`command` 來源需要 Claude Code v2.1.229 或更新版本。本機目錄市集中以相對路徑列出的 plugin 也會[就地載入](/docs/zh-TW/plugins-reference#plugin-caching-and-file-resolution)其來源目錄,而不是從快取副本載入。請參閱 [plugin 快取](/docs/zh-TW/plugins-reference#plugin-caching-and-file-resolution)以了解孤立版本如何被清理。 |

1459 1459 

1460`~/.claude` 也保存 Claude Code 在您工作時寫入的資料:文字記錄、提示歷史記錄、檔案快照、快取和日誌。請參閱下方的[應用程式資料](#application-data)。1460`~/.claude` 也保存 Claude Code 在您工作時寫入的資料:文字記錄、提示歷史記錄、檔案快照、快取和日誌。請參閱下方的[應用程式資料](#application-data)。

1461 1461 


1515| [`keybindings.json`](#ce-keybindings) | 僅全域 | | 自訂快捷鍵 | [Keybindings](/docs/zh-TW/keybindings) |1515| [`keybindings.json`](#ce-keybindings) | 僅全域 | | 自訂快捷鍵 | [Keybindings](/docs/zh-TW/keybindings) |

1516| [`themes/*.json`](#ce-themes) | 僅全域 | | 自訂色彩主題 | [Custom themes](/docs/zh-TW/terminal-config#create-a-custom-theme) |1516| [`themes/*.json`](#ce-themes) | 僅全域 | | 自訂色彩主題 | [Custom themes](/docs/zh-TW/terminal-config#create-a-custom-theme) |

1517 1517 

1518<h2 id="frontmatter-fields-by-file">

1519 按檔案分類的 Frontmatter 欄位

1520</h2>

1521 

1522Skills、命令檔案、子代理、輸出樣式和規則從檔案頂部的 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 讀取其設定,每個都接受自己的一組欄位。此表列出每個檔案的欄位名稱,並連結到描述它們的參考資料。

1523 

1524| 檔案 | Frontmatter 欄位 | 參考資料 |

1525| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/zh-TW/skills#frontmatter-reference) |

1527| `commands/*.md` | 除了 `name` 和 `paths` 之外的 skill 欄位 | [Skill frontmatter](/docs/zh-TW/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/zh-TW/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/zh-TW/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/zh-TW/memory#rules-frontmatter-reference) |

1531 

1532在 [plugin](/docs/zh-TW/plugins-reference#plugin-agent-frontmatter) 中提供的代理遵守子代理欄位的子集。

1533 

1518<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1519 疑難排解設定1535 疑難排解設定

1520</h2>1536</h2>


1525 應用程式資料1541 應用程式資料

1526</h2>1542</h2>

1527 1543 

1528除了您編寫的設定外,`~/.claude` 還保存 Claude Code 在工作階段期間寫入的資料。這些檔案是純文字。任何通過工具的內容都會在磁碟上的文字記錄中結束:檔案內容、命令輸出、貼上的文字。1544除了您編寫的設定外,`~/.claude` 還保存 Claude Code 在工作階段期間寫入的資料。這些檔案是純文字。任何通過工具的內容都會寫入磁碟上的文字記錄:檔案內容、命令輸出、貼上的文字。

1529 1545 

1530<h3 id="cleaned-up-automatically">1546<h3 id="cleaned-up-automatically">

1531 自動清理1547 自動清理

1532</h3>1548</h3>

1533 1549 

1534Claude Code 會刪除下列路徑中的檔案,一旦它們的年齡超過 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays),只要它能安全地確定保留期間。預設值為 30 天,最小值為 1;設定 `0` 會因驗證錯誤而失敗。相同的年齡截止值也適用於[孤立 worktrees](/docs/zh-TW/worktrees#clean-up-subagent-and-background-session-worktrees) 的自動移除。1550Claude Code 會刪除以下路徑中的檔案,一旦它們的年齡超過 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays),只要它能安全地確定保留期間。預設值為 30 天,最小值為 1;設定 `0` 會因驗證錯誤而失敗。相同的年齡截止值也適用於 [孤立 worktrees](/docs/zh-TW/worktrees#clean-up-subagent-and-background-session-worktrees) 的自動移除。

1535 1551 

1536| `~/.claude/` 下的路徑 | 內容 |1552| `~/.claude/` 下的路徑 | 內容 |

1537| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1553| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1538| `projects/<project>/<session>.jsonl` | 完整對話文字記錄:每條訊息、工具呼叫和工具結果 |1554| `projects/<project>/<session>.jsonl` | 完整對話文字記錄:每條訊息、工具呼叫和工具結果 |

1539| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | Claude Code 為工作階段設置的先前文字記錄,而不是覆蓋或刪除它。它不會出現在工作階段選擇器中 |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | Claude Code 為工作階段設置的先前文字記錄,而不是覆蓋或刪除它。它不會出現在工作階段選擇器中 |

1540| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-TW/sub-agents) 對話文字記錄,當父工作階段文字記錄過期時一起移除 |1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-TW/sub-agents) 對話文字記錄,當父工作階段文字記錄過期時會被移除 |

1541| `projects/<project>/<session>/tool-results/` | 溢出到單獨檔案的大型工具輸出 |1557| `projects/<project>/<session>/tool-results/` | 溢出到單獨檔案的大型工具輸出 |

1542| `file-history/<session>/` | Claude 變更的檔案的編輯前快照,用於[檢查點還原](/docs/zh-TW/checkpointing)。保存 100 個最近檢查點的快照;沒有保留檢查點參考的快照檔案會被刪除,除了每個檔案的第一個快照 |1558| `file-history/<session>/` | Claude 更改的檔案的編輯前快照,用於 [checkpoint 復原](/docs/zh-TW/checkpointing)。保存 100 個最近 checkpoint 的快照;沒有保留 checkpoint 參考的快照檔案會被刪除,除了每個檔案的第一個快照 |

1543| `plans/` | 在 [Plan Mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 期間寫入的計畫檔案 |1559| `plans/` | 在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 期間寫入的 Plan 檔案 |

1544| `debug/` | 每個工作階段的偵錯日誌,在啟用偵錯日誌時寫入,例如當您使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動或執行 `/debug` 時 |1560| `debug/` | 每個工作階段的偵錯日誌,在偵錯日誌開啟時寫入,例如當您使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動或執行 `/debug` 時 |

1545| `paste-cache/` | 大型貼上的內容 |1561| `paste-cache/` | 大型貼上內容的內容 |

1546| `image-cache/<session>/` | 附加的影像。在每次掃描時,Claude Code 會移除所有其他工作階段的目錄,無論其年齡如何。 |1562| `image-cache/<session>/` | Claude Code v2.1.274 及更早版本保存的附加影片。更新版本將貼上和附加的影片保存在 `~/.claude` 外,在 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 控制的暫存目錄下每個工作階段的 `images/` 目錄中。掃描會移除其他工作階段在此處留下的目錄,無論其年齡如何。 |

1547| `uploads/<session>/` | 您從網路或行動應用程式附加的檔案,以及從行動應用程式附加的照片,當傳訊給 [Remote Control](/docs/zh-TW/remote-control) 工作階段時。附加到 [cloud session](/docs/zh-TW/claude-code-on-the-web) 的檔案會改為保存在該工作階段自己的雲端環境中,而不是在您的機器上。 |1563| `uploads/<session>/` | 您從網路或行動應用程式附加的檔案,以及從行動應用程式附加的照片,當訊息傳送到 [Remote Control](/docs/zh-TW/remote-control) 工作階段時。附加到 [cloud session](/docs/zh-TW/claude-code-on-the-web) 的內容會改為保存在該工作階段自己的雲端環境中,而不是在您的機器上。 |

1548| `session-env/` | 每個工作階段的環境中繼資料 |1564| `session-env/` | 每個工作階段的環境中繼資料 |

1549| `tasks/` | 由 task tools 寫入的任務清單,每個清單一個目錄 |1565| `tasks/` | 由任務工具寫入的任務清單,每個清單一個目錄 |

1550| `shell-snapshots/` | 在啟動時擷取的別名、函式和 shell 選項,由 [Bash tool](/docs/zh-TW/tools-reference#bash-tool-behavior) 應用於每個命令。在正常退出時移除。掃描會清除任何在當機後遺留的檔案。 |1566| `shell-snapshots/` | 在啟動時捕獲的別名、函數和 shell 選項,由 [Bash tool](/docs/zh-TW/tools-reference#bash-tool-behavior) 應用於每個命令。在正常退出時移除。掃描會清除任何在當機後留下的內容。 |

1551| `backups/` | `~/.claude.json` 的較早版本,在 Claude Code 重寫檔案時複製。Claude Code 保留五個最新的版本,加上它無法解析的任何版本的副本。 |1567| `backups/` | `~/.claude.json` 的早期版本,在 Claude Code 重寫檔案時複製。Claude Code 保留五個最新的版本,加上它無法解析的任何版本的副本。 |

1552| `feedback-bundles/` | 由 `/feedback` 在第三方提供者上寫入的已編輯文字記錄存檔,或在未設定 Anthropic 認證時寫入,用於傳送到您的 Anthropic 帳戶團隊 |1568| `feedback-bundles/` | 由 `/feedback` 在第三方提供者上或當未設定 Anthropic 認證時寫入的編輯文字記錄存檔,用於發送到您的 Anthropic 帳戶團隊 |

1553| `feedback/drafts/` | 排隊的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior),等待您在 `/feedback` 中審查。在 `cleanupPeriodDays` 或 30 天後掃描,以較短者為準。當佇列達到其 10 份草稿限制時,Claude Code 會刪除最舊的草稿以騰出空間。 |1569| `feedback/drafts/` | 排隊的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) 等待您在 `/feedback` 中審查。在 `cleanupPeriodDays` 或 30 天後掃描,以較短者為準。當佇列達到其 10 份草稿限制時,Claude Code 會刪除最舊的草稿以騰出空間。 |

1554| `usage-data/` | 由 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 寫入的 `report.html` 和時間戳記報告副本,加上用於建立它們的快取每個工作階段分析資料 |1570| `usage-data/` | 由 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 寫入的 `report.html` 和時間戳記報告副本,加上用於建立它們的快取每個工作階段分析資料 |

1555| `skills/.trash/`、`plugins/.trash/` | 從 claude.ai 同步的 [Skills](/docs/zh-TW/skills#how-synced-skills-behave) 和 [plugins](/docs/zh-TW/plugins-reference#synced-plugins),Claude Code 已移除。移動到此處而不是刪除,以便您可以復原檔案 |1571| `skills/.trash/`、`plugins/.trash/` | claude.ai 同步移除的 [Skills](/docs/zh-TW/skills#how-synced-skills-behave) 和 [plugins](/docs/zh-TW/plugins-reference#synced-plugins),例如在您在 claude.ai 上關閉一個或停止同步後。檔案保留在此處,以便您可以復原它們,直到掃描刪除它們 |

1556| `todos/`、`statsig/`、`logs/` | 舊版本的舊版目錄。不再寫入。掃描會移除其內容,然後移除空目錄。 |1572| `todos/`、`statsig/`、`logs/` | 來自舊版本的舊版目錄。不再寫入。掃描會移除其內容,然後移除空目錄。 |

1557 1573 

1558`sessions/` 中的工作階段檔案、自動記憶,以及 Claude Desktop 和 Cowork 文字記錄各自遵循自己的保留規則:1574`sessions/` 中的工作階段檔案、自動記憶和 Claude Desktop 和 Cowork 文字記錄各自遵循自己的保留規則:

1559 1575 

1560* **`sessions/`**:保存每個執行中工作階段的一個小檔案,用於偵測並行工作階段和當機。它不是基於年齡的掃描的一部分:Claude Code 在其工作階段退出時移除每個檔案,並在下次啟動時清除當機遺留物。1576* **`sessions/`**:為每個執行中的工作階段保存一個小檔案,用於偵測並行工作階段和當機。它不是基於年齡的掃描的一部分:Claude Code 在其工作階段退出時移除每個檔案,並在下次啟動時清除當機遺留物。

1561* **自動記憶**:掃描不會刪除專案 [auto memory](/docs/zh-TW/memory#auto-memory) 目錄 `projects/<project>/memory/` 中的記憶檔案。Claude Code 只有在該目錄在整個保留期間都為空時才會移除它。在 v2.1.228 之前,掃描會將記憶目錄內的資料夾視為工作階段資料,並可能刪除其下的舊檔案。1577* **自動記憶**:掃描不會刪除專案 [auto memory](/docs/zh-TW/memory#auto-memory) 目錄 `projects/<project>/memory/` 中的記憶檔案。Claude Code 只有在該目錄在整個保留期間都為空時才會移除它。在 v2.1.228 之前,掃描會將記憶目錄內的資料夾視為工作階段資料,並可能刪除其下的舊檔案。

1562* **Claude Desktop 和 Cowork 文字記錄**:Claude Code 保留您在 Claude Desktop 或 Cowork 中啟動或最近繼續的工作階段的文字記錄,無論其年齡如何。若要為這些文字記錄設定年齡限制,請設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays)。當 [managed settings](/docs/zh-TW/managed-settings) 設定 `cleanupPeriodDays` 時,Claude Code 會改為在該期間後刪除這些文字記錄。需要 Claude Code v2.1.248 或更新版本;較早的版本會在 `cleanupPeriodDays` 後刪除它們。1578* **Claude Desktop 和 Cowork 文字記錄**:Claude Code 保留您在 Claude Desktop 或 Cowork 中啟動或最近繼續的工作階段的文字記錄,無論年齡如何。若要為這些文字記錄設定年齡限制,請設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays)。當 [managed settings](/docs/zh-TW/managed-settings) 設定 `cleanupPeriodDays` 時,Claude Code 會改為在該期間後刪除這些文字記錄。需要 Claude Code v2.1.248 或更新版本;較早版本在 `cleanupPeriodDays` 後刪除它們。

1563 1579 

1564Claude Code 在這些情況下會完全跳過掃描:1580Claude Code 在這些情況下會跳過基於年齡的掃描:

1565 1581 

1566* **Bare mode**:當您使用 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) 執行 `claude -p` 時,Claude Code 不會在該工作階段中執行掃描。1582* **Bare mode**:當您使用 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) 執行 `claude -p` 時,Claude Code 不會在該工作階段中執行掃描。

1567* **暫停掃描**:如果 Claude Code 無法安全地確定保留期間,它會暫停保留清理掃描;[`retention_sweep` 事件](/docs/zh-TW/monitoring-usage#retention-sweep-event)列出每個暫停它的設定。當原因是無法讀取或解析的設定檔案,或 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 明確設定的設定錯誤時,Claude Code 也會在 `/status` 中顯示警告,直到您修正設定錯誤。當 [managed settings](/docs/zh-TW/server-managed-settings) 提供 `cleanupPeriodDays` 時,Claude Code 會在任一情況下以受管值執行掃描。1583* **暫停掃描**:如果 Claude Code 無法安全地確定保留期間,它會暫停保留清理掃描;[`retention_sweep` 事件](/docs/zh-TW/monitoring-usage#retention-sweep-event) 列出每個暫停它的設定。當原因是無法讀取或解析的設定檔案,或 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 明確設定的設定錯誤時,Claude Code 也會在 `/status` 中顯示警告,直到您修復設定錯誤。當 [managed settings](/docs/zh-TW/server-managed-settings) 提供 `cleanupPeriodDays` 時,Claude Code 在任一情況下都會以受管值執行掃描。

1568 1584 

1569<h3 id="kept-until-you-delete-them">1585<h3 id="kept-until-you-delete-them">

1570 保留直到您刪除它們1586 保留直到您刪除它們

1571</h3>1587</h3>

1572 1588 

1573保留清理掃描不會移除下列路徑。Claude Code 會保留它們直到您刪除它們,除了兩個在您登出時刪除的快取。1589保留清理掃描不會移除以下路徑。Claude Code 會保留它們直到您刪除它們,除了兩個在您登出時刪除的快取。

1574 1590 

1575| `~/.claude/` 下的路徑 | 內容 |1591| `~/.claude/` 下的路徑 | 內容 |

1576| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1592| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1577| `history.jsonl` | 您輸入的每個提示,帶有時間戳記和專案路徑。用於向上箭頭回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成。 |1593| `history.jsonl` | 您輸入的每個提示,帶有時間戳記和專案路徑。用於向上箭頭回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成。 |

1578| `stats-cache.json` | 由 `/usage` 顯示的彙總權杖和成本計數 |1594| `stats-cache.json` | 由 `/usage` 顯示的彙總令牌和成本計數 |

1579| `remote-settings.json` | 您組織的 [server-managed settings](/docs/zh-TW/server-managed-settings) 的快取副本,或當您的組織未設定任何內容時為 `{}`。只有在工作階段 [fetches them](/docs/zh-TW/server-managed-settings#platform-availability) 時才會出現。Claude Code 在啟動時和工作階段期間每小時檢查更新。Claude Code 在您登出時刪除它。 |1595| `remote-settings.json` | [server-managed settings](/docs/zh-TW/server-managed-settings) 的快取副本,適用於您的組織,或當您的組織未設定任何內容時為 `{}`。僅在工作階段 [fetches them](/docs/zh-TW/server-managed-settings#platform-availability) 時出現。Claude Code 在啟動時和工作階段期間每小時檢查更新。當您登出時,Claude Code 會刪除它。 |

1580| `cache/changelog.md` | Claude Code 變更日誌的快取副本,由 `/release-notes` 顯示。在背景中重新整理。 |1596| `cache/changelog.md` | Claude Code 變更日誌的快取副本,由 `/release-notes` 顯示。在背景中重新整理。 |

1581| `policy-limits.json` | 您組織的快取功能原則設定。只有某些帳戶類型才會出現。自動重新整理。Claude Code 在您登出時刪除它。 |1597| `policy-limits.json` | 組織的快取功能原則設定。僅對某些帳戶類型出現。自動重新整理。`policy-limits.json.stamp.json` 側車記錄快取所屬的帳戶或 API 金鑰。當您登出時,Claude Code 會刪除兩個檔案。 |

1582 1598 

1583<span id="state-files-to-keep" />1599<span id="state-files-to-keep" />

1584 1600 

1585其他檔案會根據您使用的功能而出現。快取和鎖定檔案可安全刪除。保留這些狀態檔案:1601其他檔案會根據您使用的功能而出現。快取和鎖定檔案可以安全刪除。保留這些狀態檔案:

1586 1602 

1587* `.credentials.json`:您的 [login credentials](/docs/zh-TW/authentication#credential-management)1603* `.credentials.json`:您的 [login credentials](/docs/zh-TW/authentication#credential-management)

1588* `agent-memory/`:[subagent memory](/docs/zh-TW/sub-agents#enable-persistent-memory)1604* `agent-memory/`:[subagent memory](/docs/zh-TW/sub-agents#enable-persistent-memory)


1592 純文字儲存1608 純文字儲存

1593</h3>1609</h3>

1594 1610 

1595文字記錄和歷史記錄在靜止時未加密。作業系統檔案權限是唯一的保護。如果工具讀取 `.env` 檔案或命令列印認證,該值會寫入 `projects/<project>/<session>.jsonl`。若要減少暴露:1611文字記錄和歷史在靜止時未加密。OS 檔案權限是唯一的保護。如果工具讀取 `.env` 檔案或命令列印認證,該值會寫入 `projects/<project>/<session>.jsonl`。若要減少暴露:

1596 1612 

1597* 降低 `cleanupPeriodDays` 以縮短 Claude Code 保留文字記錄的時間1613* 降低 `cleanupPeriodDays` 以縮短 Claude Code 保留文字記錄的時間

1598* 設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays) 以給予 Claude Desktop 和 Cowork 文字記錄年齡限制1614* 設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays) 以給予 Claude Desktop 和 Cowork 文字記錄年齡限制

1599* 設定 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) 環境變數以跳過在任何模式中寫入文字記錄和提示歷史記錄。在非互動模式中,您可以改為在 `-p` 旁邊傳遞 `--no-session-persistence`,或在 TypeScript Agent SDK 中設定 `persistSession: false`;Python SDK 沒有等效選項。1615* 設定 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) 環境變數以在任何模式下跳過寫入文字記錄和提示歷史。在非互動模式中,您可以改為在 `-p` 旁邊傳遞 `--no-session-persistence`,或在 TypeScript Agent SDK 中設定 `persistSession: false`;Python SDK 沒有等效選項。

1600* 使用[權限規則](/docs/zh-TW/permissions)拒絕讀取認證檔案1616* 使用 [permission rules](/docs/zh-TW/permissions) 拒絕讀取認證檔案

1601 1617 

1602<h3 id="clear-local-data">1618<h3 id="clear-local-data">

1603 清除本機資料1619 清除本機資料


1610* `history.jsonl` 中的匹配提示行1626* `history.jsonl` 中的匹配提示行

1611* 專案在 `~/.claude.json` 中的項目1627* 專案在 `~/.claude.json` 中的項目

1612 1628 

1613該命令會列印完整的刪除計畫,並在移除任何內容之前要求確認。1629您在專案工作階段中貼上或附加的影片儲存在 Claude Code 的暫存目錄下,而不是 `~/.claude`,因此清除不會移除它們。[保留掃描](#cleaned-up-automatically) 會在它們的年齡超過 `cleanupPeriodDays` 時刪除它們。

1630 

1631該命令會列印完整的刪除計畫並要求確認,然後才會移除任何內容。

1614 1632 

1615下列範例使用 `~/work/my-repo` 作為佔位符。將其替換為您的專案路徑。如果沒有狀態與路徑相符,該命令會列印錯誤並以狀態 1 退出。1633下面的範例使用 `~/work/my-repo` 作為佔位符。將其替換為您的專案路徑。如果沒有狀態符合該路徑,該命令會列印錯誤並以狀態 1 退出。

1616 1634 

1617預覽計畫而不刪除任何內容:1635預覽計畫而不刪除任何內容:

1618 1636 


1620claude project purge ~/work/my-repo --dry-run1638claude project purge ~/work/my-repo --dry-run

1621```1639```

1622 1640 

1623計畫列出每個匹配項目及其包含的原因:1641該計畫列出每個匹配項目及其包含的原因:

1624 1642 

1625```text theme={null}1643```text theme={null}

1626Purge plan for /home/user/work/my-repo:1644Purge plan for /home/user/work/my-repo:


1637Dry run: 3 item(s) would be deleted.1655Dry run: 3 item(s) would be deleted.

1638```1656```

1639 1657 

1640透過單一確認提示刪除:1658使用單一確認提示刪除:

1641 1659 

1642```bash theme={null}1660```bash theme={null}

1643claude project purge ~/work/my-repo1661claude project purge ~/work/my-repo

1644```1662```

1645 1663 

1646該命令會列印相同的計畫,然後詢問 `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]`,只有在您回答 `y` 時才會刪除。1664該命令會列印相同的計畫,然後詢問 `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` 並且只有在您回答 `y` 時才會刪除。

1647 1665 

1648省略路徑以從互動式清單中選擇專案。1666省略路徑以從互動清單中選擇專案。

1649 1667 

1650跳過確認提示以在指令碼中使用:1668跳過確認提示以在指令碼中使用:

1651 1669 


1653claude project purge ~/work/my-repo --yes1671claude project purge ~/work/my-repo --yes

1654```1672```

1655 1673 

1656傳遞 `--all` 而不是路徑以一次清除所有專案的狀態,這會直接刪除 `history.jsonl` 而不是篩選它。傳遞 `-i` 以逐項逐步執行刪除計畫。1674傳遞 `--all` 而不是路徑以一次清除每個專案的狀態,這會直接刪除 `history.jsonl` 而不是篩選它。傳遞 `-i` 以逐項逐步執行刪除計畫。

1657 1675 

1658該命令會單獨保留 `shell-snapshots/` 和 `backups/`,因為這些不是專案範圍的,並在計畫輸出中警告它們。1676該命令會單獨保留 `shell-snapshots/` 和 `backups/`,因為這些不是專案範圍的,並在計畫輸出中警告它們。

1659 1677 

1660您也可以手動刪除上述任何應用程式資料路徑,除了 [state files to keep](#state-files-to-keep)。新工作階段不受影響。下表顯示您對過去工作階段失去的內容。1678您也可以手動刪除上述任何應用程式資料路徑,除了 [state files to keep](#state-files-to-keep)。新工作階段不受影響。下表顯示您對過去工作階段失去的內容。

1661 1679 

1662| 刪除 | 您失去 |1680| 刪除 | 您失去 |

1663| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |1681| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |

1664| `~/.claude/projects/` | 過去工作階段的繼續、繼續和倒帶,以及每個專案的自動記憶 |1682| `~/.claude/projects/` | 過去工作階段的繼續、繼續和倒帶,以及每個專案的自動記憶 |

1665| `~/.claude/history.jsonl` | 向上箭頭提示回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成 |1683| `~/.claude/history.jsonl` | 向上箭頭提示回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成 |

1666| `~/.claude/paste-cache/` | 回憶提示中的貼上文字;請參閱 [paste large content](/docs/zh-TW/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | 回憶提示中的貼上文字;請參閱 [paste large content](/docs/zh-TW/terminal-config#paste-large-content) |

1667| `~/.claude/uploads/` | 過去 [Remote Control](/docs/zh-TW/remote-control) 工作階段按路徑參考的附件 |1685| `~/.claude/uploads/` | 過去 [Remote Control](/docs/zh-TW/remote-control) 工作階段按路徑參考的附件 |

1668| `~/.claude/file-history/` | 過去工作階段的檢查點還原 |1686| `~/.claude/file-history/` | 過去工作階段的 checkpoint 復原 |

1669| `~/.claude/stats-cache.json` | 由 `/usage` 顯示的歷史總計 |1687| `~/.claude/stats-cache.json` | `/usage` 顯示的歷史總計 |

1670| `~/.claude/usage-data/` | 過去的 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 報告和用於建立它們的快取分析資料 |1688| `~/.claude/usage-data/` | 過去的 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 報告和用於建立它們的快取分析資料 |

1671| `~/.claude/feedback-bundles/` | 您尚未傳送給 Anthropic 帳戶團隊的回饋和錯誤報告存檔 |1689| `~/.claude/feedback-bundles/` | 您尚未發送到 Anthropic 帳戶團隊的回饋和錯誤報告存檔 |

1672| `~/.claude/feedback/drafts/` | 您尚未傳送的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) |1690| `~/.claude/feedback/drafts/` | 您尚未發送的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) |

1673| `~/.claude/remote-settings.json` | 無。在下次啟動時重新擷取。 |1691| `~/.claude/remote-settings.json` | 無。在下次啟動時重新擷取。 |

1674| `~/.claude/cache/changelog.md` | 無。在背景中重新整理。 |1692| `~/.claude/cache/changelog.md` | 無。在背景中重新整理。 |

1675| `~/.claude/policy-limits.json` | 無。自動重新整理。 |1693| `~/.claude/policy-limits.json` | 無。自動重新整理。 |

1676| `~/.claude/tasks/` | 繼續的工作階段會拾取的任務清單 |1694| `~/.claude/tasks/` | 繼續的工作階段會拾取的任務清單 |

1677| `~/.claude/skills/.trash/`、`~/.claude/plugins/.trash/` | 復原 [synced skills](/docs/zh-TW/skills#how-synced-skills-behave) 和 [synced plugins](/docs/zh-TW/plugins-reference#synced-plugins) 的機會,Claude Code 已移除 |1695| `~/.claude/skills/.trash/`、`~/.claude/plugins/.trash/` | 復原 Claude Code 移除的 [synced skills](/docs/zh-TW/skills#how-synced-skills-behave) 和 [synced plugins](/docs/zh-TW/plugins-reference#synced-plugins) 的機會 |

1678| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/image-cache/`、`~/.claude/session-env/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | 沒有面向使用者的內容 |1696| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/session-env/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | 無使用者面向的內容 |

1679| `~/.claude/todos/`、`~/.claude/statsig/`、`~/.claude/logs/` | 無。舊版目錄不由目前版本寫入。 |1697| `~/.claude/todos/`、`~/.claude/statsig/`、`~/.claude/logs/`、`~/.claude/image-cache/` | 無。舊版本的舊版目錄,不由目前版本寫入。 |

1680 1698 

1681不要刪除 `~/.claude.json`、`~/.claude/settings.json` 或 `~/.claude/plugins/`:這些保存您的驗證、偏好設定和已安裝的 plugins。1699不要刪除 `~/.claude.json`、`~/.claude/settings.json` 或 `~/.claude/plugins/`:這些保存您的驗證、偏好設定和已安裝的 plugins。

1682 1700 

Details

284 284 

285AWS 上的 Claude Platform 使用與直接 Claude API 相同的模型 ID。285AWS 上的 Claude Platform 使用與直接 Claude API 相同的模型 ID。

286 286 

287預設別名 `fable`、`opus`、`sonnet` 和 `haiku` 解析為 Claude Code 針對 AWS 上的 Claude Platform 的內建預設值,這些值可能落後於最新版本。沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 別名解析為 Opus 5。在 v2.1.219 之前,它解析為 Opus 4.8,在 v2.1.207 之前解析為 Opus 4.7。287預設別名 `fable`、`opus`、`sonnet` 和 `haiku` 解析為 Claude Code 針對 AWS 上的 Claude Platform 的內建預設值,這些值可能落後於最新版本。沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 別名解析為 Opus 5.5。在 v2.1.280 之前,它解析為 v2.1.219 的 Opus 5,在 v2.1.207 之前解析為 Opus 4.8,在此之前解析為 Opus 4.7。

288 288 

289如果您將 Claude Code 部署到團隊,請明確固定模型 ID,以便新版本不會一次移動所有人:289如果您將 Claude Code 部署到團隊,請明確固定模型 ID,以便新版本不會一次移動所有人:

290 290 

Details

333 執行緒從您的儲存庫中取得什麼333 執行緒從您的儲存庫中取得什麼

334</h3>334</h3>

335 335 

336每個執行緒複製專案中的每個儲存庫,並從所有儲存庫載入 `CLAUDE.md`、技能和外掛程式。權限規則、hooks 和 `env` 僅來自執行緒啟動所在目錄中的 `.claude/settings.json`:當專案有一個時在儲存庫內,當它有多個時在複製上方,其中沒有儲存庫的檔案被讀取用於它們。336每個執行緒複製專案中的每個儲存庫,並從所有儲存庫載入 `CLAUDE.md` 和技能。權限規則、hooks 和 `env` 僅來自執行緒啟動所在目錄中的 `.claude/settings.json`:當專案有一個時在儲存庫內,當它有多個時在複製上方,其中沒有儲存庫的檔案被讀取用於它們。

337 337 

338| 在每個儲存庫中 | 一個儲存庫 | 多個儲存庫 |338| 在每個儲存庫中 | 一個儲存庫 | 多個儲存庫 |

339| :----------------------------------------------- | :------------------------------------------------------------------------------------------ | :--------------------------------------------------- |339| :----------------------------------------------- | :------------------------------------------------------------------------------------------ | :---------------------------- |

340| `CLAUDE.md` | 在執行緒啟動時載入 | 在執行緒啟動時從每個儲存庫載入 |340| `CLAUDE.md` | 在執行緒啟動時載入 | 在執行緒啟動時從每個儲存庫載入 |

341| `.claude/` 下的技能、代理和命令 | 已載入 | 從每個儲存庫載入 |341| `.claude/` 下的技能、代理和命令 | 已載入 | 從每個儲存庫載入 |

342| 在 `.claude/settings.json` 中啟用的外掛程式 | 已載入 | 從每個儲存庫載入。如果兩個儲存庫對外掛程式意見不一致,請在**專案設定 > 外掛程式**中設定它,這優先 |342| 在 `.claude/settings.json` 中啟用的外掛程式 | 未載入。改為在**專案設定 > 外掛程式**中新增外掛程式 | 未載入。改為在**專案設定 > 外掛程式**中新增外掛程式 |

343| 在 `.claude/settings.json` 中定義的權限規則、hooks 和 `env` | 套用到執行緒,除了[沒有雲端工作階段遵守](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)的 `env` 鍵 | 不套用 |343| 在 `.claude/settings.json` 中定義的權限規則、hooks 和 `env` | 套用到執行緒,除了[沒有雲端工作階段遵守](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)的 `env` 鍵 | 不套用 |

344 344 

345在具有多個儲存庫的專案中,每個複製都附加到執行緒作為[其他目錄](/docs/zh-TW/memory#load-from-additional-directories),啟用了 `CLAUDE.md` 載入,這就是為什麼每個儲存庫的 `CLAUDE.md` 和技能在啟動時載入,儘管執行緒在它們上方啟動。在任何一種情況下,啟用的外掛程式提供的 hooks 仍然執行,因為外掛程式從每個儲存庫載入。在具有多個儲存庫的專案中,將常設規則放在專案指示中,並通過[雲端環境](#choose-an-environment-for-threads)為執行緒提供環境變數。345在具有多個儲存庫的專案中,每個複製都附加到執行緒作為[其他目錄](/docs/zh-TW/memory#load-from-additional-directories),啟用了 `CLAUDE.md` 載入,這就是為什麼每個儲存庫的 `CLAUDE.md` 和技能在啟動時載入,儘管執行緒在它們上方啟動。在這樣的專案中,將常設規則放在專案指示中,並通過[雲端環境](#choose-an-environment-for-threads)為執行緒提供環境變數。

346 346 

347<h3 id="choose-an-environment-for-threads">347<h3 id="choose-an-environment-for-threads">

348 為執行緒選擇環境348 為執行緒選擇環境


359執行緒是雲端工作階段,因此它們沒有僅在您的機器上安裝的技能、MCP 伺服器、外掛程式和工具。要使這些中的每一個對執行緒可用:359執行緒是雲端工作階段,因此它們沒有僅在您的機器上安裝的技能、MCP 伺服器、外掛程式和工具。要使這些中的每一個對執行緒可用:

360 360 

361* 技能、子代理和命令:將它們提交到您新增到專案的儲存庫,例如 `.claude/skills/<skill-name>/SKILL.md` 中的技能。每個執行緒複製專案中的每個儲存庫,並從每個儲存庫載入 `.claude/skills/`、`.claude/agents/` 和 `.claude/commands/`,因此提交到一個儲存庫的技能在每個新執行緒中可用。執行緒也載入您為 claude.ai 帳戶啟用的技能。361* 技能、子代理和命令:將它們提交到您新增到專案的儲存庫,例如 `.claude/skills/<skill-name>/SKILL.md` 中的技能。每個執行緒複製專案中的每個儲存庫,並從每個儲存庫載入 `.claude/skills/`、`.claude/agents/` 和 `.claude/commands/`,因此提交到一個儲存庫的技能在每個新執行緒中可用。執行緒也載入您為 claude.ai 帳戶啟用的技能。

362* 外掛程式:在**專案設定 > 外掛程式**中新增它們;它們載入到每個新執行緒。儲存庫在其 `.claude/settings.json` 中宣告的外掛程式也載入;請參閱[什麼從您的設定中攜帶](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)。362* 外掛程式:在**專案設定 > 外掛程式**中新增它們;它們載入到每個新執行緒。儲存庫在其 `.claude/settings.json` 中宣告的外掛程式[不會在執行緒中載入](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup),因為執行緒是雲端工作階段。

363* MCP 伺服器:執行緒從您的 claude.ai 帳戶上的連接器獲取其 MCP 工具,這些是您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 或通過**專案設定 > 環境**中的**管理連接器**連結連接一次的 MCP 伺服器。每個執行緒可以使用所有它們,無需每個專案的設定。專案對話本身沒有連接器,因此將需要連接器的工作作為執行緒的任務傳送。在具有一個儲存庫的專案中,執行緒也從該儲存庫的 [`.mcp.json`](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 載入 MCP 伺服器。[連接器如何到達 Claude Code](/docs/zh-TW/mcp#how-connectors-reach-claude-code) 列出雲端工作階段的規則和關閉連接器的設定。363* MCP 伺服器:執行緒從您的 claude.ai 帳戶上的連接器獲取其 MCP 工具,這些是您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 或通過**專案設定 > 環境**中的**管理連接器**連結連接一次的 MCP 伺服器。每個執行緒可以使用所有它們,無需每個專案的設定。專案對話本身沒有連接器,因此將需要連接器的工作作為執行緒的任務傳送。在具有一個儲存庫的專案中,執行緒也從該儲存庫的 [`.mcp.json`](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 載入 MCP 伺服器。[連接器如何到達 Claude Code](/docs/zh-TW/mcp#how-connectors-reach-claude-code) 列出雲端工作階段的規則和關閉連接器的設定。

364* 命令列工具和套件:在環境的[設定指令碼](/docs/zh-TW/cloud-environments#setup-scripts)中安裝它們。364* 命令列工具和套件:在環境的[設定指令碼](/docs/zh-TW/cloud-environments#setup-scripts)中安裝它們。

365 365 

Details

60使用這些命令列旗標自訂 Claude Code 的行為。`claude --help` 不會列出每個旗標,因此旗標在 `--help` 中的缺失並不表示它無法使用。60使用這些命令列旗標自訂 Claude Code 的行為。`claude --help` 不會列出每個旗標,因此旗標在 `--help` 中的缺失並不表示它無法使用。

61 61 

62| 旗標 | 描述 | 範例 |62| 旗標 | 描述 | 範例 |

63| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |63| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

64| `--add-dir` | 新增額外的工作目錄供 Claude 讀取和編輯檔案。授予檔案存取權;Claude Code [不會從這些目錄探索](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)大多數 `.claude/` 設定。驗證每個路徑是否存在為目錄。您無法新增大多數[網路路徑](/docs/zh-TW/errors#working-directory-is-a-network-path),例如 `\\server\share`。若要在工作階段之間持久化這些目錄,請在設定中設定 [`permissions.additionalDirectories`](/docs/zh-TW/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |64| `--add-dir` | 新增額外的工作目錄供 Claude 讀取和編輯檔案。授予檔案存取權;Claude Code [不會從這些目錄探索](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)大多數 `.claude/` 設定。驗證每個路徑是否存在為目錄。您無法新增大多數[網路路徑](/docs/zh-TW/errors#working-directory-is-a-network-path),例如 `\\server\share`。若要在工作階段之間持久化這些目錄,請在設定中設定 [`permissions.additionalDirectories`](/docs/zh-TW/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | 使用模型別名啟用此工作階段的伺服器端 [advisor tool](/docs/zh-TW/advisor):`fable`、`opus` 或 `sonnet`,或完整模型 ID。優先於工作階段的 `advisorModel` 設定。`fable` 需要 [Fable 存取](/docs/zh-TW/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | 使用模型別名啟用此工作階段的伺服器端 [advisor tool](/docs/zh-TW/advisor):`fable`、`opus` 或 `sonnet`,或完整模型 ID。優先於工作階段的 `advisorModel` 設定。`fable` 需要 [Fable 存取](/docs/zh-TW/advisor#choose-an-advisor-model) | `claude --advisor opus` |

66| `--agent` | 為目前工作階段指定代理程式(覆蓋 `agent` 設定) | `claude --agent my-custom-agent` |66| `--agent` | 為目前工作階段指定代理程式(覆蓋 `agent` 設定) | `claude --agent my-custom-agent` |


93| `--exec` | 執行 shell 命令作為 PTY 支援的背景工作而不是啟動 Claude 工作階段。與 `--bg` 搭配使用以從 shell 啟動 | `claude --bg --exec 'pytest -x'` |93| `--exec` | 執行 shell 命令作為 PTY 支援的背景工作而不是啟動 Claude 工作階段。與 `--bg` 搭配使用以從 shell 啟動 | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | 當主要模型過載或無法使用時啟用自動回退到指定的模型,例如已淘汰的模型。接受以逗號分隔的清單,依序嘗試。請參閱 [Fallback model chains](/docs/zh-TW/model-config#fallback-model-chains)。若要在工作階段之間持久化鏈,請使用 [`fallbackModel` 設定](/docs/zh-TW/settings-reference#fallbackmodel),此旗標會覆蓋它 | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | 當主要模型過載或無法使用時啟用自動回退到指定的模型,例如已淘汰的模型。接受以逗號分隔的清單,依序嘗試。請參閱 [Fallback model chains](/docs/zh-TW/model-config#fallback-model-chains)。若要在工作階段之間持久化鏈,請使用 [`fallbackModel` 設定](/docs/zh-TW/settings-reference#fallbackmodel),此旗標會覆蓋它 | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | 繼續時,建立新的工作階段 ID 而不是重複使用原始 ID(與 `--resume` 或 `--continue` 搭配使用) | `claude --resume abc123 --fork-session` |95| `--fork-session` | 繼續時,建立新的工作階段 ID 而不是重複使用原始 ID(與 `--resume` 或 `--continue` 搭配使用) | `claude --resume abc123 --fork-session` |

96| `--forward-subagent-text` | 在輸出串流中發出 [subagent](/docs/zh-TW/sub-agents) 文字和思考區塊作為 `assistant` 和 `user` 訊息,並設定 `parent_tool_use_id`,以便您可以重建每個 subagent 的文字記錄。沒有此旗標,Claude Code 會省略在 [foreground](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background) 中執行的 subagent 的文字和思考區塊。需要 `--print` 和 `--output-format stream-json`。Claude Code 也會轉發來自 [nested subagents](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) 的訊息,將 `parent_tool_use_id` 設定為產生每個訊息的 Agent 工具呼叫的 ID;這需要 Claude Code v2.1.219 或更新版本。[`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-TW/env-vars) 環境變數啟用相同的行為。需要 Claude Code v2.1.211 或更新版本 | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |96| `--forward-subagent-text` | 在輸出串流中發出 [subagent](/docs/zh-TW/sub-agents) 文字和思考區塊作為 `assistant` 和 `user` 訊息,並設定 `parent_tool_use_id`,以便您可以重建每個 subagent 的文字記錄。沒有此旗標,Claude Code 會省略在 [foreground](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background) 中執行的 subagent 的文字和思考區塊。需要 `--print` 和 `--output-format stream-json`。Claude Code 也會轉發來自 [nested subagents](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) 的訊息,將 `parent_tool_use_id` 設定為產生每個訊息的 Agent 或 Skill 工具呼叫的 ID;這需要 Claude Code v2.1.219 或更新版本,且 forked skill 產生的 subagents 訊息以及巢狀 forked skills 的訊息需要 v2.1.275 或更新版本。[`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-TW/env-vars) 環境變數啟用相同的行為。需要 Claude Code v2.1.211 或更新版本 | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |

97| `--from-pr` | 開啟工作階段選擇器,篩選為連結到特定提取請求的工作階段。接受 PR 編號、GitHub 或 GitHub Enterprise PR URL、GitLab 合併請求 URL 或 Bitbucket 提取請求 URL。當 Claude 建立提取請求時,工作階段會自動連結 | `claude --from-pr 123` |97| `--from-pr` | 開啟工作階段選擇器,篩選為連結到特定提取請求的工作階段。接受 PR 編號、GitHub 或 GitHub Enterprise PR URL、GitLab 合併請求 URL 或 Bitbucket 提取請求 URL。當 Claude 建立提取請求時,工作階段會自動連結 | `claude --from-pr 123` |

98| `--ide` | 如果恰好有一個有效的 IDE 可用,在啟動時自動連線到 IDE | `claude --ide` |98| `--ide` | 如果恰好有一個有效的 IDE 可用,在啟動時自動連線到 IDE | `claude --ide` |

99| `--init` | 在工作階段前執行 [Setup hooks](/docs/zh-TW/hooks#setup),使用 `init` 匹配器(僅列印模式) | `claude -p --init "query"` |99| `--init` | 在工作階段前執行 [Setup hooks](/docs/zh-TW/hooks#setup),使用 `init` 匹配器(僅列印模式) | `claude -p --init "query"` |


103| `--input-format` | 為列印模式指定輸入格式(選項:`text`、`stream-json`) | `claude -p --output-format json --input-format stream-json` |103| `--input-format` | 為列印模式指定輸入格式(選項:`text`、`stream-json`) | `claude -p --output-format json --input-format stream-json` |

104| `--json-schema` | 在代理程式完成其工作流程後取得符合 JSON Schema 的驗證 JSON 輸出(僅列印模式)。請參閱 [structured outputs](/docs/zh-TW/agent-sdk/structured-outputs)。Claude Code 在無效的 schema 上以錯誤退出,並接受 `format` 關鍵字作為註解而不進行用戶端驗證 | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |104| `--json-schema` | 在代理程式完成其工作流程後取得符合 JSON Schema 的驗證 JSON 輸出(僅列印模式)。請參閱 [structured outputs](/docs/zh-TW/agent-sdk/structured-outputs)。Claude Code 在無效的 schema 上以錯誤退出,並接受 `format` 關鍵字作為註解而不進行用戶端驗證 | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

105| `--maintenance` | 在工作階段前執行 [Setup hooks](/docs/zh-TW/hooks#setup),使用 `maintenance` 匹配器(僅列印模式) | `claude -p --maintenance "query"` |105| `--maintenance` | 在工作階段前執行 [Setup hooks](/docs/zh-TW/hooks#setup),使用 `maintenance` 匹配器(僅列印模式) | `claude -p --maintenance "query"` |

106| `--max-budget-usd` | 在停止前在 API 呼叫上花費的最大美元金額(僅列印模式)。來自 [subagents](/docs/zh-TW/sub-agents) 的支出計入上限。一旦支出達到上限,產生另一個 subagent 會失敗,並出現 `Budget limit reached`,Claude Code 會停止仍在執行的背景 subagents;上限強制行為需要 Claude Code v2.1.217 或更新版本 | `claude -p --max-budget-usd 5.00 "query"` |106| `--max-budget-usd` | 在停止前在 API 呼叫上花費的最大美元金額(僅列印模式)。來自 [subagents](/docs/zh-TW/sub-agents) 的支出計入上限。當您使用 `--continue` 或 `--resume` 返回對話時,[從較早執行復原](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)的總計不計入它。一旦支出達到上限,產生另一個 subagent 會失敗,並出現 `Budget limit reached`,Claude Code 會停止仍在執行的背景 subagents;上限強制行為需要 Claude Code v2.1.217 或更新版本 | `claude -p --max-budget-usd 5.00 "query"` |

107| `--max-turns` | 限制代理程式轉數(僅列印模式)。達到限制時以錯誤退出。預設無限制。使用 `--input-format stream-json` 時,在限制結束轉數時仍佇列的訊息保持佇列狀態,並以自己的限制開始新轉數 | `claude -p --max-turns 3 "query"` |107| `--max-turns` | 限制代理程式轉數(僅列印模式)。達到限制時以錯誤退出。預設無限制。使用 `--input-format stream-json` 時,在限制結束轉數時仍佇列的訊息保持佇列狀態,並以自己的限制開始新轉數 | `claude -p --max-turns 3 "query"` |

108| `--mcp-config` | 從 JSON 檔案或字串載入 MCP servers(以空格分隔)。當您使用 `-p` 傳遞此旗標時,Claude Code 會等待仍待連線的伺服器連線,最多等待 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars) 啟動逾時(預設 30 秒),然後執行第一個轉數;具有 [cached tool list](/docs/zh-TW/mcp#managing-your-servers) 的伺服器會跳過等待並在首次使用時連線。等待需要 Claude Code v2.1.221 或更新版本 | `claude --mcp-config ./mcp.json` |108| `--mcp-config` | 從 JSON 檔案或字串載入 MCP servers(以空格分隔)。當您使用 `-p` 傳遞此旗標時,Claude Code 會等待仍待連線的伺服器連線,最多等待 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars) 啟動逾時(預設 30 秒),然後執行第一個轉數;具有 [cached tool list](/docs/zh-TW/mcp#managing-your-servers) 的伺服器會跳過等待並在首次使用時連線。等待需要 Claude Code v2.1.221 或更新版本 | `claude --mcp-config ./mcp.json` |

109| `--model` | 使用 [model alias](/docs/zh-TW/model-config#model-aliases)(例如 `sonnet`、`opus`、`haiku` 或 `fable`)或模型的完整名稱為目前工作階段設定模型。覆蓋 [`model`](/docs/zh-TW/settings-reference#model) 設定和 [`ANTHROPIC_MODEL`](/docs/zh-TW/model-config#environment-variables) | `claude --model claude-sonnet-5` |109| `--model` | 使用 [model alias](/docs/zh-TW/model-config#model-aliases)(例如 `sonnet`、`opus`、`haiku` 或 `fable`)或模型的完整名稱為目前工作階段設定模型。覆蓋 [`model`](/docs/zh-TW/settings-reference#model) 設定和 [`ANTHROPIC_MODEL`](/docs/zh-TW/model-config#environment-variables) | `claude --model claude-sonnet-5` |


157 157 

158`--system-prompt` 和 `--system-prompt-file` 互斥。附加旗標可以與任一取代旗標組合。158`--system-prompt` 和 `--system-prompt-file` 互斥。附加旗標可以與任一取代旗標組合。

159 159 

160當取代文字結合每次執行都相同的指示與每次執行都變更的內容時,在指示和內容之間新增僅包含 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 的一行。Claude Code 在第一個這樣的行處分割提示並移除該行,因此上面的部分保持快取而下面的部分變更。需要 Claude Code v2.1.275 或更新版本。[Cache the static part of a custom prompt](/docs/zh-TW/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) 列出分割適用的設定。

161 

160根據 Claude Code 的預設身份是否仍適合您的工作來選擇。當 Claude 應保持編碼助手身份並同時遵循您的額外規則時,請使用附加旗標:每次呼叫的指示、輸出格式或 `-p` 指令碼的領域內容。附加會保留預設工具指導、安全指示和編碼慣例,因此您只需提供不同的部分。當表面、身份或權限模型與 Claude Code 不同時,請使用取代旗標,例如管道中沒有人監看的非編碼代理程式。取代會移除整個預設提示,包括工具指導和安全指示,因此您需要負責您的工作仍然需要的任何內容。162根據 Claude Code 的預設身份是否仍適合您的工作來選擇。當 Claude 應保持編碼助手身份並同時遵循您的額外規則時,請使用附加旗標:每次呼叫的指示、輸出格式或 `-p` 指令碼的領域內容。附加會保留預設工具指導、安全指示和編碼慣例,因此您只需提供不同的部分。當表面、身份或權限模型與 Claude Code 不同時,請使用取代旗標,例如管道中沒有人監看的非編碼代理程式。取代會移除整個預設提示,包括工具指導和安全指示,因此您需要負責您的工作仍然需要的任何內容。

161 163 

162對於您可以在專案中切換和共享的持久人物,請使用 [output styles](/docs/zh-TW/output-styles)。對於 Claude 應始終遵循的專案慣例,請使用 [CLAUDE.md](/docs/zh-TW/memory)。[Agent SDK guide on system prompts](/docs/zh-TW/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) 涵蓋了更深入的相同決策。164對於您可以在專案中切換和共享的持久人物,請使用 [output styles](/docs/zh-TW/output-styles)。對於 Claude 應始終遵循的專案慣例,請使用 [CLAUDE.md](/docs/zh-TW/memory)。[Agent SDK guide on system prompts](/docs/zh-TW/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) 涵蓋了更深入的相同決策。

Details

300| 您的儲存庫的 `.mcp.json` MCP 伺服器 | 是,在具有一個儲存庫的工作階段中 | 複製的一部分,從工作階段的工作目錄找到 |300| 您的儲存庫的 `.mcp.json` MCP 伺服器 | 是,在具有一個儲存庫的工作階段中 | 複製的一部分,從工作階段的工作目錄找到 |

301| 您的儲存庫的 `.claude/rules/` | 是 | 複製的一部分 |301| 您的儲存庫的 `.claude/rules/` | 是 | 複製的一部分 |

302| 您的儲存庫的 `.claude/skills/`、`.claude/agents/`、`.claude/commands/` | 是 | 複製的一部分 |302| 您的儲存庫的 `.claude/skills/`、`.claude/agents/`、`.claude/commands/` | 是 | 複製的一部分 |

303| 在 `.claude/settings.json` 中宣告的 Plugins | 是 | 在工作階段啟動時從您宣告的 [marketplace](/docs/zh-TW/plugin-marketplaces) 安裝。需要網路存取以到達 marketplace 來源 |303| 在您的儲存庫的 `.claude/settings.json` 中宣告的 Plugins 和 marketplaces | 否 | 雲端工作階段不會安裝儲存庫在 [`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 下開啟的 plugins,包括來自它在 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 下列出的 marketplaces 的 plugins。改為為您的 claude.ai 帳戶啟用 plugin,以便 Claude Code 將其載入為 [synced plugin](/docs/zh-TW/plugins-reference#synced-plugins) |

304| 您組織的 [伺服器管理的設定](/docs/zh-TW/server-managed-settings) | 是 | 在工作階段啟動時從 Anthropic 的伺服器擷取。請參閱 [Surface coverage](/docs/zh-TW/model-config#surface-coverage) 以了解 `availableModels` 在雲端工作階段中如何強制執行。透過 MDM 或管理設定檔部署到您的裝置的設定不適用,因為工作階段在 Anthropic 管理的 VM 上執行;在 [自託管環境](/docs/zh-TW/self-hosted-environments) 中,工作階段也會讀取執行器映像中的管理設定檔,根據 [Claude Code 如何結合管理來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources) |304| 您組織的 [伺服器管理的設定](/docs/zh-TW/server-managed-settings) | 是 | 在工作階段啟動時從 Anthropic 的伺服器擷取。請參閱 [Surface coverage](/docs/zh-TW/model-config#surface-coverage) 以了解 `availableModels` 在雲端工作階段中如何強制執行。透過 MDM 或管理設定檔部署到您的裝置的設定不適用,因為工作階段在 Anthropic 管理的 VM 上執行;在 [自託管環境](/docs/zh-TW/self-hosted-environments) 中,工作階段也會讀取執行器映像中的管理設定檔,根據 [Claude Code 如何結合管理來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources) |

305| 您的使用者 `~/.claude/CLAUDE.md` | 否 | 位於您的機器上,不在儲存庫中 |305| 您的使用者 `~/.claude/CLAUDE.md` | 否 | 位於您的機器上,不在儲存庫中 |

306| 您的使用者 `~/.claude/skills/`、`~/.claude/agents/`、`~/.claude/commands/` | 否 | 位於您的機器上,不在儲存庫中。改為將它們提交到儲存庫的 `.claude/` 目錄。雲端工作階段會自動載入您在 claude.ai 上啟用的技能 |306| 您的使用者 `~/.claude/skills/`、`~/.claude/agents/`、`~/.claude/commands/` | 否 | 位於您的機器上,不在儲存庫中。改為將它們提交到儲存庫的 `.claude/` 目錄。雲端工作階段會自動載入您在 claude.ai 上啟用的技能 |

307| 僅在您的使用者設定中啟用的 Plugins | 否 | 使用者範圍的 `enabledPlugins` 位於 `~/.claude/settings.json`。改為在儲存庫的 `.claude/settings.json` 中宣告它們,或在您的 claude.ai 帳戶上啟用它們,以便 Claude Code 將它們載入為 [同步的 plugins](/docs/zh-TW/plugins-reference#synced-plugins) |307| 僅在您的使用者設定中啟用的 Plugins | 否 | 使用者範圍的 `enabledPlugins` 位於 `~/.claude/settings.json` 在您的機器上。改為為您的 claude.ai 帳戶啟用 plugin,以便 Claude Code 將其載入為 [synced plugins](/docs/zh-TW/plugins-reference#synced-plugins) |

308| 您使用 `claude mcp add` 在預設本機範圍或使用者範圍新增的 MCP 伺服器 | 否 | 這些寫入您機器上的 `~/.claude.json`,不是儲存庫。使用 `claude mcp add --scope project` 新增伺服器,該伺服器寫入儲存庫的 [`.mcp.json`](/docs/zh-TW/mcp#project-scope),並提交該檔案。具有一個儲存庫的工作階段會載入它 |308| 您使用 `claude mcp add` 在預設本機範圍或使用者範圍新增的 MCP 伺服器 | 否 | 這些寫入您機器上的 `~/.claude.json`,不是儲存庫。使用 `claude mcp add --scope project` 新增伺服器,該伺服器寫入儲存庫的 [`.mcp.json`](/docs/zh-TW/mcp#project-scope),並提交該檔案。具有一個儲存庫的工作階段會載入它 |

309| 您的儲存庫的 `.claude/settings.json` `env` 區塊中的傳輸變數,例如 `NODE_EXTRA_CA_CERTS` 和 [mTLS 用戶端憑證變數](/docs/zh-TW/network-config#mtls-authentication) | 否 | 託管環境管理工作階段的 API 連接,因此 Claude Code 忽略這些金鑰,並在工作階段的偵錯日誌中記錄每個忽略的金鑰 |309| 您的儲存庫的 `.claude/settings.json` `env` 區塊中的傳輸變數,例如 `NODE_EXTRA_CA_CERTS` 和 [mTLS 用戶端憑證變數](/docs/zh-TW/network-config#mtls-authentication) | 否 | 託管環境管理工作階段的 API 連接,因此 Claude Code 忽略這些金鑰,並在工作階段的偵錯日誌中記錄每個忽略的金鑰 |

310| Claude 呼叫的服務的 API 金鑰和令牌 | 在 Pro 和 Max 方案上,作為 [API 認證](#add-api-credentials) | 您在環境上新增金鑰一次,代理程式代理會將其附加到您列出的主機的請求。代理程式代理 [無法附加](#requests-that-never-get-the-credential) 的金鑰,或任何 Team 或 Enterprise 方案上的金鑰,保留在環境變數中 |310| Claude 呼叫的服務的 API 金鑰和令牌 | 在 Pro 和 Max 方案上,作為 [API 認證](#add-api-credentials) | 您在環境上新增金鑰一次,代理程式代理會將其附加到您列出的主機的請求。代理程式代理 [無法附加](#requests-that-never-get-the-credential) 的金鑰,或任何 Team 或 Enterprise 方案上的金鑰,保留在環境變數中 |


348 348 

349雲端工作階段包括內建 GitHub 工具,讓 Claude 無需任何設定即可讀取問題、列出提取請求、擷取差異和發佈評論。這些工具透過 [GitHub 代理](#github-proxy) 使用您在 [GitHub 驗證選項](/docs/zh-TW/claude-code-on-the-web#github-authentication-options) 下設定的任何方法進行驗證,因此您的令牌永遠不會進入容器。349雲端工作階段包括內建 GitHub 工具,讓 Claude 無需任何設定即可讀取問題、列出提取請求、擷取差異和發佈評論。這些工具透過 [GitHub 代理](#github-proxy) 使用您在 [GitHub 驗證選項](/docs/zh-TW/claude-code-on-the-web#github-authentication-options) 下設定的任何方法進行驗證,因此您的令牌永遠不會進入容器。

350 350 

351您可以在 [環境設定](#set-environment-variables) 中自己設定 `GH_TOKEN` 或 `GITHUB_TOKEN`,或兩者都不設定,讓 [GitHub 代理](#github-proxy) 為您驗證:351您可以在 [環境設定](#set-environment-variables) 中自己設定 `GH_TOKEN` 或 `GITHUB_TOKEN`,或兩者都不設定,讓 [GitHub proxy](#github-proxy) 為您驗證:

352 352 

353* 如果您設定令牌,它會原封不動地傳遞到容器,因此您的指令碼和 GitHub 的 [`gh` CLI](https://cli.github.com) 直接使用它。353* 如果您設定令牌,它會原封不動地傳遞到容器,因此您的指令碼和 GitHub 的 [`gh` CLI](https://cli.github.com) 直接使用它。

354* 如果您都不設定,[GitHub 代理](#github-proxy) 正在為您的工作階段處理驗證,兩個變數在 Claude 執行的命令中讀取為預留位置字串 `proxy-injected`,代理在出站 GitHub 請求上替換您的真實認證。`gh` 無需您自己的令牌即可工作,但直接讀取 `GITHUB_TOKEN` 的指令碼會取得預留位置,而不是可用的令牌。354* 如果您都不設定,[GitHub 代理](#github-proxy) 正在為您的工作階段處理驗證,兩個變數在 Claude 執行的命令中讀取為預留位置字串 `proxy-injected`,代理在出站 GitHub 請求上替換您的真實認證。`gh` 無需您自己的令牌即可工作,但直接讀取 `GITHUB_TOKEN` 的指令碼會取得預留位置,而不是可用的令牌。

commands.md +4 −3

Details

26 26 

27**並行執行工作。** Claude 將附帶工作委派給 [subagents](/docs/zh-TW/sub-agents),`/tasks` 列出目前工作階段的背景工作,包括已完成的 subagents。`/background` 分離整個工作階段以繼續作為 [background agent](/docs/zh-TW/agent-view) 執行,並釋放您的終端。對於跨越程式碼庫的大型變更,`/batch` 將其分解為獨立單位,並在其自己的 [worktree](/docs/zh-TW/worktrees) 中執行每個單位。請參閱 [Run agents in parallel](/docs/zh-TW/agents) 以了解這些方法如何相關。27**並行執行工作。** Claude 將附帶工作委派給 [subagents](/docs/zh-TW/sub-agents),`/tasks` 列出目前工作階段的背景工作,包括已完成的 subagents。`/background` 分離整個工作階段以繼續作為 [background agent](/docs/zh-TW/agent-view) 執行,並釋放您的終端。對於跨越程式碼庫的大型變更,`/batch` 將其分解為獨立單位,並在其自己的 [worktree](/docs/zh-TW/worktrees) 中執行每個單位。請參閱 [Run agents in parallel](/docs/zh-TW/agents) 以了解這些方法如何相關。

28 28 

29**在您發佈前。** `/diff` 顯示變更的內容。`/code-review` 檢查目前的 diff 是否有正確性錯誤和清理,並可以使用 `--fix` 套用發現;傳遞 PR 編號,例如 `/code-review high 1234`,以改為檢查 pull request。`/review` 是別名。`/code-review ultra` 在雲端執行多代理檢查。`/security-review` 檢查 diff 是否有安全漏洞。29**在您發佈前。** `/diff` 顯示變更的內容。`/code-review` 檢查目前的 diff 是否有正確性錯誤,並可以使用 `--fix` 套用發現;傳遞 PR 編號,例如 `/code-review high 1234`,以改為檢查 pull request。`/review` 是別名。`/code-review ultra` 在雲端執行多代理檢查。`/security-review` 檢查 diff 是否有安全漏洞。

30 30 

31**工作階段之間。** `/clear` 在保持專案記憶的同時開始新工作。`/resume` 返回較早的對話,`/branch` 分支目前的對話以嘗試不同的方向,`/fork` 將其複製到新的 [background session](/docs/zh-TW/agent-view)。`/teleport` 將網路工作階段拉入此終端,`/remote-control` 讓您從另一個裝置繼續此本機工作階段。31**工作階段之間。** `/clear` 在保持專案記憶的同時開始新工作。`/resume` 返回較早的對話,`/branch` 分支目前的對話以嘗試不同的方向,`/fork` 將其複製到新的 [background session](/docs/zh-TW/agent-view)。`/teleport` 將網路工作階段拉入此終端,`/remote-control` 讓您從另一個裝置繼續此本機工作階段。

32 32 


69| `/chrome` | 設定 [Claude in Chrome](/docs/zh-TW/chrome) 設定 |69| `/chrome` | 設定 [Claude in Chrome](/docs/zh-TW/chrome) 設定 |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為您的專案語言載入 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 參考資料。當您的程式碼匯入 `anthropic` 或 `@anthropic-ai/sdk` 時也會自動啟動。運行 `migrate` 以將現有 Claude API 程式碼更新到較新的模型。運行 `upgrade` 以跨主要版本移動您的專案的 Anthropic SDK 依賴項,目前是 Python `anthropic` 套件從 0.x 到 1.x。運行 `managed-agents-onboard` 以獲得建立新 Managed Agent 的逐步解說。運行 `prompt-audit` 以標記在您的提示詞、技能和工具描述中為較舊模型編寫的指示,並提議修復作為差異。運行 `cost-optimize` 以分析您的專案的 Claude API 支出流向何處,並提議從 prompt caching、修剪不需要的輸入和輸出令牌、批次處理、工作量和模型選擇等選項中節省成本,一次一個變更。運行 `build-eval` 以為您的 Claude 驅動的應用程式建立評估集,以及 `hillclimb` 以針對現有評估迭代改進應用程式。`prompt-audit` 子命令需要 Claude Code v2.1.221 或更新版本,`upgrade` 需要 v2.1.236 或更新版本,`cost-optimize` 需要 v2.1.247 或更新版本,`build-eval` 和 `hillclimb` 需要 v2.1.259 或更新版本 |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為您的專案語言載入 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 參考資料。當您的程式碼匯入 `anthropic` 或 `@anthropic-ai/sdk` 時也會自動啟動。運行 `migrate` 以將現有 Claude API 程式碼更新到較新的模型。運行 `upgrade` 以跨主要版本移動您的專案的 Anthropic SDK 依賴項,目前是 Python `anthropic` 套件從 0.x 到 1.x。運行 `managed-agents-onboard` 以獲得建立新 Managed Agent 的逐步解說。運行 `prompt-audit` 以標記在您的提示詞、技能和工具描述中為較舊模型編寫的指示,並提議修復作為差異。運行 `cost-optimize` 以分析您的專案的 Claude API 支出流向何處,並提議從 prompt caching、修剪不需要的輸入和輸出令牌、批次處理、工作量和模型選擇等選項中節省成本,一次一個變更。運行 `build-eval` 以為您的 Claude 驅動的應用程式建立評估集,以及 `hillclimb` 以針對現有評估迭代改進應用程式。`prompt-audit` 子命令需要 Claude Code v2.1.221 或更新版本,`upgrade` 需要 v2.1.236 或更新版本,`cost-optimize` 需要 v2.1.247 或更新版本,`build-eval` 和 `hillclimb` 需要 v2.1.259 或更新版本 |

71| `/clear [name]` | 使用空上下文啟動新對話。傳遞名稱以在 `/resume` 選擇器中標記先前的對話。要在繼續相同對話的同時釋放上下文,請改用 `/compact`。使用 `/resume` 恢復先前的對話,或在同一 Claude Code 程序中,從[倒帶菜單的上一個工作階段項目](/docs/zh-TW/checkpointing#rewind-past-a-cleared-conversation)恢復它。倒帶項目需要 Claude Code v2.1.191 或更新版本。別名:`/reset`、`/new` |71| `/clear [name]` | 使用空上下文啟動新對話。傳遞名稱以在 `/resume` 選擇器中標記先前的對話。要在繼續相同對話的同時釋放上下文,請改用 `/compact`。使用 `/resume` 恢復先前的對話,或在同一 Claude Code 程序中,從[倒帶菜單的上一個工作階段項目](/docs/zh-TW/checkpointing#rewind-past-a-cleared-conversation)恢復它。倒帶項目需要 Claude Code v2.1.191 或更新版本。別名:`/reset`、`/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查目前差異或您傳遞的 PR 編號、分支或路徑,以查找正確性錯誤和清理機會。傳遞 `--fix` 以應用發現,`--comment` 以在 GitHub PR 或 GitLab 合併請求上發佈它們,或 `ultra` 以運行深度[雲端審查](/docs/zh-TW/ultrareview)。發佈到 GitLab 合併請求需要 Claude Code v2.1.257 或更新版本。在 `github.com` PR 目標上使用 `ultra` 時,傳遞 `--post` 以在啟動對話框中預先選擇[將完成的發現發佈到 PR](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更新版本。有關工作量級別、目標設定以及它與 `/simplify` 的關係,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。別名:`/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查目前差異或您傳遞的 PR 編號、分支或路徑,以查找正確性錯誤。根據您的模型和工作量級別,檢查也涵蓋清理機會。傳遞 `--fix` 以應用發現,`--comment` 以在 GitHub PR 或 GitLab 合併請求上發佈它們,或 `ultra` 以運行深度[雲端審查](/docs/zh-TW/ultrareview)。發佈到 GitLab 合併請求需要 Claude Code v2.1.257 或更新版本。在 `github.com` PR 目標上使用 `ultra` 時,傳遞 `--post` 以在啟動對話框中預先選擇[將完成的發現發佈到 PR](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更新版本。有關工作量級別、目標設定以及它與 `/simplify` 的關係,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。別名:`/review` |

73| `/color [color\|default]` | 設定目前工作階段的提示詞欄顏色。可用顏色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或運行時不帶引數以選擇隨機顏色。當[遠端控制](/docs/zh-TW/remote-control)連接時,顏色會同步到 claude.ai/code。也可在非互動模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更新版本 |73| `/color [color\|default]` | 設定目前工作階段的提示詞欄顏色。可用顏色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或運行時不帶引數以選擇隨機顏色。當[遠端控制](/docs/zh-TW/remote-control)連接時,顏色會同步到 claude.ai/code。也可在非互動模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更新版本 |

74| `/compact [instructions]` | 通過總結到目前為止的對話來釋放上下文。可選地傳遞焦點指示以進行摘要。請參閱[壓縮如何處理規則、技能和記憶檔案](/docs/zh-TW/context-window#what-survives-compaction) |74| `/compact [instructions]` | 通過總結到目前為止的對話來釋放上下文。可選地傳遞焦點指示以進行摘要。請參閱[壓縮如何處理規則、技能和記憶檔案](/docs/zh-TW/context-window#what-survives-compaction) |

75| `/config [key=value ...]` | 打開[設定](/docs/zh-TW/settings)介面以調整主題、模型、[輸出樣式](/docs/zh-TW/output-styles)和其他偏好設定。傳遞一個或多個 `key=value` 對以直接設定設定而不打開介面,例如 `/config thinking=false`、`/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也適用於非互動模式 (`-p`) 和來自 Claude 行動應用程式通過[遠端控制](/docs/zh-TW/remote-control)。`key=value` 形式無法打開需要您在面板中確認的設定,例如 [`autoContinueAtUsageLimit`](/docs/zh-TW/interactive-mode#turn-automatic-continue-off),儘管它可以關閉一個。運行 `/config --help` 以列出它接受的鍵。別名:`/settings` |75| `/config [key=value ...]` | 打開[設定](/docs/zh-TW/settings)介面以調整主題、模型、[輸出樣式](/docs/zh-TW/output-styles)和其他偏好設定。傳遞一個或多個 `key=value` 對以直接設定設定而不打開介面,例如 `/config thinking=false`、`/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也適用於非互動模式 (`-p`) 和來自 Claude 行動應用程式通過[遠端控制](/docs/zh-TW/remote-control)。`key=value` 形式無法打開需要您在面板中確認的設定,例如 [`autoContinueAtUsageLimit`](/docs/zh-TW/interactive-mode#turn-automatic-continue-off),儘管它可以關閉一個。運行 `/config --help` 以列出它接受的鍵。別名:`/settings` |


85| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |85| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |

86| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](/docs/zh-TW/interactive-mode#review-changes-with-%2Fdiff) |86| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](/docs/zh-TW/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 運行設定檢查以診斷和修復問題。檢查安裝健康狀況,包括重複或遺留的安裝、`PATH` 問題和無法解析的設定檔案。查找未使用的技能、MCP 伺服器和外掛程式與其上下文成本,標記緩慢的 [hooks](/docs/zh-TW/hooks),並檢查您的[發佈頻道](/docs/zh-TW/setup#configure-release-channel)上是否有較新版本。根據簽入的檔案對本地 `CLAUDE.md` 檔案進行重複資料刪除,通過切割 Claude 可以從程式碼庫衍生的內容來修剪簽入的 [`CLAUDE.md`](/docs/zh-TW/memory#my-claude-md-is-too-large) 檔案,並將保留的始終載入的指導遷移到[技能](/docs/zh-TW/skills)和按需載入的嵌套 `CLAUDE.md` 檔案中。還提供使 [auto mode](/docs/zh-TW/permissions#permission-modes) 成為您的預設值的選項,以及[預先批准](/docs/zh-TW/permissions)經常被拒絕的唯讀命令。首先報告發現並在進行任何變更前要求確認。從終端,`claude doctor` 列印唯讀安裝診斷而不啟動工作階段。別名:`/checkup`。CLAUDE.md 修剪檢查需要 Claude Code v2.1.206 或更新版本。在 v2.1.205 之前,`/doctor` 打開唯讀診斷螢幕,按 `f` 將報告發送給 Claude |87| `/doctor` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 運行設定檢查以診斷和修復問題。檢查安裝健康狀況,包括重複或遺留的安裝、`PATH` 問題和無法解析的設定檔案。查找未使用的技能、MCP 伺服器和外掛程式與其上下文成本,標記緩慢的 [hooks](/docs/zh-TW/hooks),並檢查您的[發佈頻道](/docs/zh-TW/setup#configure-release-channel)上是否有較新版本。根據簽入的檔案對本地 `CLAUDE.md` 檔案進行重複資料刪除,通過切割 Claude 可以從程式碼庫衍生的內容來修剪簽入的 [`CLAUDE.md`](/docs/zh-TW/memory#my-claude-md-is-too-large) 檔案,並將保留的始終載入的指導遷移到[技能](/docs/zh-TW/skills)和按需載入的嵌套 `CLAUDE.md` 檔案中。還提供使 [auto mode](/docs/zh-TW/permissions#permission-modes) 成為您的預設值的選項,以及[預先批准](/docs/zh-TW/permissions)經常被拒絕的唯讀命令。首先報告發現並在進行任何變更前要求確認。從終端,`claude doctor` 列印唯讀安裝診斷而不啟動工作階段。別名:`/checkup`。CLAUDE.md 修剪檢查需要 Claude Code v2.1.206 或更新版本。在 v2.1.205 之前,`/doctor` 打開唯讀診斷螢幕,按 `f` 將報告發送給 Claude |

88| `/effort [level\|auto\|status]` | 設定[工作量級別](/docs/zh-TW/model-config#adjust-effort-level):`low` 到 `xhigh`、`max`、[`ultracode`](/docs/zh-TW/workflows#let-claude-decide-with-ultracode) 或 `auto`;`status` 列印它。`max` 和 `ultracode` 僅限工作階段;[`ultracode`](/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。在 Claude 回應時運行它,一旦您確認[快取警告](/docs/zh-TW/prompt-caching#changing-effort-level)(如果 Claude Code 顯示一個),Claude Code 會將新級別應用於該輪中的下一個請求。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](/docs/zh-TW/third-party-integrations)上。在[工作量保持](/docs/zh-TW/model-config#adjust-effort-level)外的 `-p` 中工作 |88| `/effort [level\|auto\|status]` | 設定[工作量級別](/docs/zh-TW/model-config#adjust-effort-level):`low` 到 `xhigh`、`max`、[`ultracode`](/docs/zh-TW/workflows#let-claude-decide-with-ultracode) 或 `auto`;`status` 列印它。`max` 和 `ultracode` 僅限工作階段;[`ultracode`](/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。在 Claude 回應時運行它,一旦您確認[快取警告](/docs/zh-TW/prompt-caching#changing-effort-level)(如果 Claude Code 顯示一個),Claude Code 會將新級別應用於該輪中的下一個請求。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](/docs/zh-TW/third-party-integrations)上。在 `-p` 中工作 |

89| `/exit` | 退出 CLI。在附加的[背景工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |89| `/exit` | 退出 CLI。在附加的[背景工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |

90| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |90| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |

91| `/fast [on\|off]` | 切換[快速模式](/docs/zh-TW/fast-mode)開啟或關閉。在 Claude 回應時運行它,Claude Code 會切換快速模式而不等待輪次結束,儘管運行中的輪次以其原始速度完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊。非互動模式中的可用性受限於 `-p`;請參閱[切換快速模式](/docs/zh-TW/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更新版本 |91| `/fast [on\|off]` | 切換[快速模式](/docs/zh-TW/fast-mode)開啟或關閉。在 Claude 回應時運行它,Claude Code 會切換快速模式而不等待輪次結束,儘管運行中的輪次以其原始速度完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊。非互動模式中的可用性受限於 `-p`;請參閱[切換快速模式](/docs/zh-TW/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更新版本 |


157| `/tui [default\|fullscreen]` | 設定終端 UI 渲染器並使用您的對話完整重新啟動到它。`fullscreen` 啟用[無閃爍 alt-screen 渲染器](/docs/zh-TW/fullscreen)。沒有引數時,列印活動渲染器 |157| `/tui [default\|fullscreen]` | 設定終端 UI 渲染器並使用您的對話完整重新啟動到它。`fullscreen` 啟用[無閃爍 alt-screen 渲染器](/docs/zh-TW/fullscreen)。沒有引數時,列印活動渲染器 |

158| `/ultraplan <prompt>` | 已移除。改用[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。以前將計畫任務發送到[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)以在您的瀏覽器中檢查 |158| `/ultraplan <prompt>` | 已移除。改用[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。以前將計畫任務發送到[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)以在您的瀏覽器中檢查 |

159| `/ultrareview [PR or branch]` | 在雲端沙箱中使用 [ultrareview](/docs/zh-TW/ultrareview) 運行深度、多代理程式碼檢查。傳遞 PR 參考以檢查該拉取請求,或分支名稱以變更比較基礎。首選調用現在是 `/code-review ultra`,`/ultrareview` 保持為別名。在 Pro 和 Max 上包括 3 次免費運行,然後需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |159| `/ultrareview [PR or branch]` | 在雲端沙箱中使用 [ultrareview](/docs/zh-TW/ultrareview) 運行深度、多代理程式碼檢查。傳遞 PR 參考以檢查該拉取請求,或分支名稱以變更比較基礎。首選調用現在是 `/code-review ultra`,`/ultrareview` 保持為別名。在 Pro 和 Max 上包括 3 次免費運行,然後需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

160| `/update-config [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 描述設定變更,例如允許命令、設定環境變數或添加 [hook](/docs/zh-TW/hooks),Claude 編輯匹配的 [`settings.json`](/docs/zh-TW/settings) 檔案。對於主題和模型等選項,改用 `/config` |

160| `/upgrade` | 在瀏覽器中打開升級頁面以切換到更高的方案層級。當瀏覽器無法打開時,命令會顯示登入提示而不列印 URL |161| `/upgrade` | 在瀏覽器中打開升級頁面以切換到更高的方案層級。當瀏覽器無法打開時,命令會顯示登入提示而不列印 URL |

161| `/usage` | 顯示工作階段成本、方案使用限制和活動統計。在 Pro、Max、Team 或 Enterprise 方案上,包括[計入您的方案限制的內容細目](/docs/zh-TW/costs#plan-usage-breakdown)。`/cost` 和 `/stats` 是別名 |162| `/usage` | 顯示工作階段成本、方案使用限制和活動統計。在 Pro、Max、Team 或 Enterprise 方案上,包括[計入您的方案限制的內容細目](/docs/zh-TW/costs#plan-usage-breakdown)。`/cost` 和 `/stats` 是別名 |

162| `/usage-credits` | 設定使用額度,或在達到限制時向您的管理員請求。在瀏覽器中打開您的[使用額度計費設定](/docs/zh-TW/costs#add-usage-credits-to-your-subscription),除了沒有計費存取的 Team 和 Enterprise 成員改為從 CLI 向其管理員發送使用額度請求,在確認對話框中確認請求會通知其管理員。當沒有瀏覽器可以打開計費頁面時,例如通過 SSH,命令會列印要訪問的 URL;這需要 Claude Code v2.1.205 或更新版本,較早版本在這種情況下沒有顯示任何內容。以前 `/extra-usage` |163| `/usage-credits` | 設定使用額度,或在達到限制時向您的管理員請求。在瀏覽器中打開您的[使用額度計費設定](/docs/zh-TW/costs#add-usage-credits-to-your-subscription),除了沒有計費存取的 Team 和 Enterprise 成員改為從 CLI 向其管理員發送使用額度請求,在確認對話框中確認請求會通知其管理員。當沒有瀏覽器可以打開計費頁面時,例如通過 SSH,命令會列印要訪問的 URL;這需要 Claude Code v2.1.205 或更新版本,較早版本在這種情況下沒有顯示任何內容。以前 `/extra-usage` |

Details

93 📚 快速入門 · VS Code · 免費 1 小時課程93 📚 快速入門 · VS Code · 免費 1 小時課程

94 https://code.claude.com/docs/en/quickstart94 https://code.claude.com/docs/en/quickstart

95 https://code.claude.com/docs/en/vs-code95 https://code.claude.com/docs/en/vs-code

96 https://anthropic.skilljar.com/claude-code-in-action96 https://academy.claude.com/courses/claude-code-in-action

97 97 

98 問題 → 此討論串。[擁有者] 正在負責。98 問題 → 此討論串。[擁有者] 正在負責。

99 ```99 ```


201Claude Code 在與 Claude 應用相同的模型上執行,您可以在會話中間切換。*Sonnet* 是日常功能工作、錯誤、測試和審查的預設主力。在大型重構、複雜除錯或任何高風險的事情上使用 *Opus*。對於快速問題、格式化和速度獲勝的機械編輯,降低到 *Haiku*。201Claude Code 在與 Claude 應用相同的模型上執行,您可以在會話中間切換。*Sonnet* 是日常功能工作、錯誤、測試和審查的預設主力。在大型重構、複雜除錯或任何高風險的事情上使用 *Opus*。對於快速問題、格式化和速度獲勝的機械編輯,降低到 *Haiku*。

202 202 

203*Fable* 是您最困難、最長時間執行任務的最有能力的模型;它不是203*Fable* 是您最困難、最長時間執行任務的最有能力的模型;它不是

204預設值,所以使用 `/model fable` 選擇它,並注意網路安全和生物學內容會自動回退到 Opus。Opus 5 執行自己的204預設值,所以使用 `/model fable` 選擇它,並注意網路安全和生物學內容會自動回退到 Opus。Opus 5.5 和 Opus 5 執行自己的

205檢查,所以標記的網路安全內容會切換模型,標記的生物學內容會被拒絕。205檢查:標記的內容會切換到較早的 Opus,除了 Opus 5 上標記的生物學內容會被拒絕。

206 206 

207*現在嘗試:* 輸入 `/model` 並選擇 Sonnet(如果您還沒有的話)。它是大多數任務的正確預設。207*現在嘗試:* 輸入 `/model` 並選擇 Sonnet(如果您還沒有的話)。它是大多數任務的正確預設。

208 208 


212| 模型 | 最適合 |212| 模型 | 最適合 |

213| ------ | ------------------------------------------------------------------------------------------------------------------ |213| ------ | ------------------------------------------------------------------------------------------------------------------ |

214| Fable | 最困難、最長時間執行的任務。僅選擇加入:使用 `/model fable` 選擇它。網路安全或生物學內容觸發[自動模型回退到 Opus](/docs/zh-TW/model-config#automatic-model-fallback) |214| Fable | 最困難、最長時間執行的任務。僅選擇加入:使用 `/model fable` 選擇它。網路安全或生物學內容觸發[自動模型回退到 Opus](/docs/zh-TW/model-config#automatic-model-fallback) |

215| Opus | 大規模重構、複雜除錯、架構決策、高風險變更。在 Opus 5 上,網路安全或生物學內容觸發[自動模型回退或拒絕](/docs/zh-TW/model-config#automatic-model-fallback) |215| Opus | 大規模重構、複雜除錯、架構決策、高風險變更。在 Opus 5.5 和 Opus 5 上,網路安全或生物學內容觸發[自動模型回退或拒絕](/docs/zh-TW/model-config#automatic-model-fallback) |

216| Sonnet | 日常功能工作、錯誤修復、測試、文件、程式碼審查。建議預設。 |216| Sonnet | 日常功能工作、錯誤修復、測試、文件、程式碼審查。建議預設。 |

217| Haiku | 快速問題、格式化、機械編輯、快速迭代 |217| Haiku | 快速問題、格式化、機械編輯、快速迭代 |

218 218 

Details

35 tokens: 280,35 tokens: 280,

36 color: '#6B6964',36 color: '#6B6964',

37 vis: 'hidden',37 vis: 'hidden',

38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block at the very end of the system prompt.',38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block.',

39 link: null39 link: null

40 }, {40 }, {

41 t: 0.08,41 t: 0.08,


1589* **在您輸入任何內容之前**:CLAUDE.md、自動記憶、MCP 工具名稱和技能描述都會載入到上下文中。[AGENTS.md 檔案](/docs/zh-TW/memory#agents-md)也可以載入,無論是單獨載入還是與 CLAUDE.md 一起載入。您自己的設定可能會在此處添加更多內容,例如[輸出風格](/docs/zh-TW/output-styles)或來自 [`--append-system-prompt`](/docs/zh-TW/cli-reference) 的文字。1589* **在您輸入任何內容之前**:CLAUDE.md、自動記憶、MCP 工具名稱和技能描述都會載入到上下文中。[AGENTS.md 檔案](/docs/zh-TW/memory#agents-md)也可以載入,無論是單獨載入還是與 CLAUDE.md 一起載入。您自己的設定可能會在此處添加更多內容,例如[輸出風格](/docs/zh-TW/output-styles)或來自 [`--append-system-prompt`](/docs/zh-TW/cli-reference) 的文字。

1590* **當 Claude 工作時**:每次檔案讀取都會增加上下文,[路徑範圍規則](/docs/zh-TW/memory#path-specific-rules)會自動與匹配的檔案一起載入,並且[PostToolUse hook](/docs/zh-TW/hooks-guide) 會在每次編輯後觸發。1590* **當 Claude 工作時**:每次檔案讀取都會增加上下文,[路徑範圍規則](/docs/zh-TW/memory#path-specific-rules)會自動與匹配的檔案一起載入,並且[PostToolUse hook](/docs/zh-TW/hooks-guide) 會在每次編輯後觸發。

1591* **後續提示**:[子代理](/docs/zh-TW/sub-agents)在其自己的獨立上下文視窗中處理研究,因此大型檔案讀取不會進入您的視窗。只有摘要和一個小的中繼資料預告片會返回。1591* **後續提示**:[子代理](/docs/zh-TW/sub-agents)在其自己的獨立上下文視窗中處理研究,因此大型檔案讀取不會進入您的視窗。只有摘要和一個小的中繼資料預告片會返回。

1592* **最後**:`/compact` 將對話替換為結構化摘要。大多數啟動內容會自動重新載入;下表顯示每個機制會發生什麼。1592* **在逐步解說的最後**:您執行 `/compact`,它會將對話替換為結構化摘要。大多數啟動內容會自動重新載入;下表顯示每個機制會發生什麼。

1593 1593 

1594<h2 id="what-survives-compaction">1594<h2 id="what-survives-compaction">

1595 壓縮後保留的內容1595 壓縮後保留的內容


1602| 系統提示和輸出風格 | 兩者仍然適用 |1602| 系統提示和輸出風格 | 兩者仍然適用 |

1603| 專案根目錄 CLAUDE.md 和未限定範圍的規則 | 從磁碟重新注入 |1603| 專案根目錄 CLAUDE.md 和未限定範圍的規則 | 從磁碟重新注入 |

1604| 自動記憶 | 從磁碟重新注入 |1604| 自動記憶 | 從磁碟重新注入 |

1605| [Git 狀態快照](/docs/zh-TW/settings-reference#includegitinstructions) | Claude Code 從您的儲存庫讀取新的快照 |

1605| Claude 在[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)中編寫的計畫 | 從磁碟重新注入 |1606| Claude 在[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)中編寫的計畫 | 從磁碟重新注入 |

1606| 具有 `paths:` frontmatter 的規則 | Claude Code 在 Claude 讀取它們匹配的檔案時重新載入它們 |1607| 具有 `paths:` frontmatter 的規則 | Claude Code 在 Claude 讀取它們匹配的檔案時重新載入它們 |

1607| 子目錄中的巢狀 CLAUDE.md | Claude Code 在 Claude 讀取該子目錄中的檔案時重新載入它們 |1608| 子目錄中的巢狀 CLAUDE.md | Claude Code 在 Claude 讀取該子目錄中的檔案時重新載入它們 |

costs.md +2 −2

Details

275 選擇正確的模型275 選擇正確的模型

276</h3>276</h3>

277 277 

278Sonnet 能很好地處理大多數編碼任務,成本低於 Opus。為複雜的架構決策或多步驟推理保留 Opus。使用 `/model` 在工作階段中途切換模型,或在 `/config` 中設定預設值。對於簡單的 subagent 任務,在您的 [subagent 設定](/docs/zh-TW/sub-agents#choose-a-model)中指定 `model: haiku`。278Sonnet 能很好地處理大多數編碼任務,成本低於 Opus。為複雜的架構決策或多步驟推理保留 Opus。使用 `/model` 在工作階段中途切換模型,或在 `/config` 中設定預設值。對 Opus 的切換也適用於[繼承您工作階段模型的 subagents](/docs/zh-TW/model-config#setting-your-model)。對於簡單的 subagent 任務,在您的 [subagent 設定](/docs/zh-TW/sub-agents#choose-a-model)中指定 `model: haiku`。

279 279 

280<h3 id="reduce-mcp-server-overhead">280<h3 id="reduce-mcp-server-overhead">

281 減少 MCP 伺服器開銷281 減少 MCP 伺服器開銷


359 359 

360延伸思考預設為啟用,因為它可以顯著改善複雜規劃和推理任務的效能。思考 token 會作為輸出 token 計費,預設預算可能是每個請求數萬個 token,取決於模型。360延伸思考預設為啟用,因為它可以顯著改善複雜規劃和推理任務的效能。思考 token 會作為輸出 token 計費,預設預算可能是每個請求數萬個 token,取決於模型。

361 361 

362對於不需要深度推理的較簡單任務,您可以透過在 `/effort` 中降低[努力等級](/docs/zh-TW/model-config#adjust-effort-level)或在 `/model` 中降低、在 `/config` 中停用思考,或在具有[固定思考預算](/docs/zh-TW/model-config#adaptive-reasoning-and-fixed-thinking-budgets)的模型上,透過設定 `MAX_THINKING_TOKENS` [環境變數](/docs/zh-TW/env-vars)(例如 `MAX_THINKING_TOKENS=8000`)來降低預算,以降低成本。自適應推理模型會忽略非零預算,因此請改用努力等級。您無法在 Fable 模型上關閉思考,它們始終使用延伸思考。362對於不需要深度推理的較簡單任務,您可以透過在 `/effort` 中降低[努力等級](/docs/zh-TW/model-config#adjust-effort-level)或在 `/model` 中降低、在 `/config` 中停用思考,或在具有[固定思考預算](/docs/zh-TW/model-config#adaptive-reasoning-and-fixed-thinking-budgets)的模型上,透過設定 `MAX_THINKING_TOKENS` [環境變數](/docs/zh-TW/env-vars)(例如 `MAX_THINKING_TOKENS=8000`)來降低預算,以降低成本。自適應推理模型會忽略非零預算,因此請改用努力等級。您無法在 Opus 5.5 或 Fable 模型上關閉思考,它們始終使用延伸思考。

363 363 

364<h3 id="delegate-verbose-operations-to-subagents">364<h3 id="delegate-verbose-operations-to-subagents">

365 將詳細操作委派給 subagents365 將詳細操作委派給 subagents

desktop.md +2 −2

Details

508 508 

509您可以將 plugins 限定於您的使用者帳戶、特定專案或僅本機。如果您的組織集中管理 plugins,這些 plugins 在桌面會話中的可用方式與在 CLI 中相同。509您可以將 plugins 限定於您的使用者帳戶、特定專案或僅本機。如果您的組織集中管理 plugins,這些 plugins 在桌面會話中的可用方式與在 CLI 中相同。

510 510 

511plugin 瀏覽器在雲端會話中不可用,而且您從桌面應用程式安裝的 plugins 不適用於雲端會話。若要在雲端會話中使用 plugin,請在儲存庫的 `.claude/settings.json` 中的 [`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 下宣告它,以便 Claude Code [在會話開始時安裝它](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup),或為您的 claude.ai 帳戶啟用它,以便 Claude Code 將其載入為 [synced plugin](/docs/zh-TW/plugins-reference#synced-plugins)。Plugins 在 WSL 會話中不可用。有關完整的 plugin 參考(包括建立您自己的 plugins),請參閱 [plugins](/docs/zh-TW/plugins)。511plugin 瀏覽器在雲端會話中不可用,而且您從桌面應用程式安裝的 plugins 不適用於雲端會話。雲端會話也不會安裝儲存庫的 `.claude/settings.json` 宣告的 plugins,如 [What carries over from your setup](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 所述。若要在雲端會話中使用 plugin,請為您的 claude.ai 帳戶啟用它,以便 Claude Code 將其載入為 [synced plugin](/docs/zh-TW/plugins-reference#synced-plugins)。Plugins 在 WSL 會話中不可用。有關完整的 plugin 參考(包括建立您自己的 plugins),請參閱 [plugins](/docs/zh-TW/plugins)。

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 配置預覽伺服器514 配置預覽伺服器


735 735 

736若要在任何平台上為本機會話和開發伺服器設定環境變數,請在提示框中開啟環境下拉式選單,將滑鼠懸停在 **Local** 上,然後點擊齒輪圖示以開啟本機環境編輯器。您在此處儲存的變數會在您的機器上加密儲存,並適用於您啟動的每個本機會話和預覽伺服器。您也可以將變數新增到 `~/.claude/settings.json` 檔案中的 `env` 金鑰,儘管這些僅到達 Claude 會話而不是開發伺服器。有關支援的變數的完整清單,請參閱[環境變數](/docs/zh-TW/env-vars)。736若要在任何平台上為本機會話和開發伺服器設定環境變數,請在提示框中開啟環境下拉式選單,將滑鼠懸停在 **Local** 上,然後點擊齒輪圖示以開啟本機環境編輯器。您在此處儲存的變數會在您的機器上加密儲存,並適用於您啟動的每個本機會話和預覽伺服器。您也可以將變數新增到 `~/.claude/settings.json` 檔案中的 `env` 金鑰,儘管這些僅到達 Claude 會話而不是開發伺服器。有關支援的變數的完整清單,請參閱[環境變數](/docs/zh-TW/env-vars)。

737 737 

738[Extended thinking](/docs/zh-TW/model-config#extended-thinking) 預設啟用,這改進了複雜推理任務的效能,但使用額外的 tokens。在 Anthropic API 上,在本機環境編輯器中將 `MAX_THINKING_TOKENS` 設定為 `0` 以關閉思考;這對 Fable 模型沒有影響,Fable 模型始終使用 extended thinking。在 Anthropic API 上關閉思考後,Claude Code 會傳送 effort `high` 而不是更高的級別給它知道[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。738[Extended thinking](/docs/zh-TW/model-config#extended-thinking) 預設啟用,這改進了複雜推理任務的效能,但使用額外的 tokens。在 Anthropic API 上,在本機環境編輯器中將 `MAX_THINKING_TOKENS` 設定為 `0` 以關閉思考;這對 Opus 5.5 或 Fable 模型沒有影響,它們始終使用 extended thinking。在 Anthropic API 上關閉思考後,Claude Code 會傳送 effort `high` 而不是更高的級別給它知道[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。

739 739 

740在具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型上,除了 `0` 以外的 `MAX_THINKING_TOKENS` 值會被忽略,因為自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設定為 `1` 以使用固定思考預算;Fable 模型、Sonnet 5 和 Opus 4.7 及更新版本始終使用自適應推理,沒有固定預算模式。740在具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型上,除了 `0` 以外的 `MAX_THINKING_TOKENS` 值會被忽略,因為自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設定為 `1` 以使用固定思考預算;Fable 模型、Sonnet 5 和 Opus 4.7 及更新版本始終使用自適應推理,沒有固定預算模式。

741 741 

Details

16 需求16 需求

17</h2>17</h2>

18 18 

19* Ubuntu 22.04 或更新版本,或 Debian 12 或更新版本19* Debian 衍生發行版本:Ubuntu 22.04 或更新版本,或 Debian 12 或更新版本

20* x86\_64 或 arm6420* x86\_64 或 arm64

21 21 

22其他符合這些需求的 Debian 衍生發行版本可能可以運作,但未經官方測試。在非 Debian 衍生的發行版本上,例如 Fedora 或 Arch,請改為執行 [CLI](/docs/zh-TW/setup#system-requirements)。如果您在 Windows 上使用 WSL 2,請安裝 Windows 桌面應用程式並在您的發行版本內執行工作階段;請參閱 [Claude Code Desktop in WSL](/docs/zh-TW/desktop-wsl)。22其他符合這些需求的 Debian 衍生發行版本可能可以運作,但未經官方測試。在非 Debian 衍生的發行版本上,例如 Fedora 或 Arch,請改為執行 [CLI](/docs/zh-TW/setup#system-requirements)。如果您在 Windows 上使用 WSL 2,請安裝 Windows 桌面應用程式並在您的發行版本內執行工作階段;請參閱 [Claude Code Desktop in WSL](/docs/zh-TW/desktop-wsl)。

Details

42/plugin install github@claude-plugins-official42/plugin install github@claude-plugins-official

43```43```

44 44 

45`/plugin` 在終端 CLI 中開啟互動式面板。如果 Claude 回覆在此環境中無法使用 `/plugin`,請使用 Claude 桌面應用程式中的[外掛程式瀏覽器](/docs/zh-TW/desktop#install-plugins),或在雲端工作階段的 `.claude/settings.json` 中的 [`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 下宣告外掛程式。45`/plugin` 在終端 CLI 中開啟互動式面板。如果 Claude 回覆在此環境中無法使用 `/plugin`,請使用另一種方式安裝外掛程式:

46 

47* **Claude 桌面應用程式**:使用[外掛程式瀏覽器](/docs/zh-TW/desktop#install-plugins)。

48* **VS Code 擴充功能**:從[**管理外掛程式**對話框](/docs/zh-TW/vs-code#manage-plugins)安裝。

49* **雲端工作階段**:啟用外掛程式以供您的 claude.ai 帳戶使用,以便 Claude Code 將其載入為[同步外掛程式](/docs/zh-TW/plugins-reference#synced-plugins)。

46 50 

47如果安裝失敗,請符合 Claude Code 報告的訊息:51如果安裝失敗,請符合 Claude Code 報告的訊息:

48 52 


360Claude Code 在其本地市場目錄副本中查詢外掛程式。您命名外掛程式的方式控制 Claude Code 是否先重新整理該副本:364Claude Code 在其本地市場目錄副本中查詢外掛程式。您命名外掛程式的方式控制 Claude Code 是否先重新整理該副本:

361 365 

362* **使用市場名稱**:當您安裝 `plugin-name@marketplace-name` 時,在工作階段中或使用 `claude plugin install` 時,Claude Code 會在查詢前重新整理該市場。即使您關閉了市場的[自動更新](#configure-auto-updates)或設定了 `DISABLE_AUTOUPDATER`,Claude Code 也會執行重新整理。在 v2.1.232 之前,Claude Code 在查詢前不會重新整理市場。Claude Code 在以下情況下會跳過此重新整理:366* **使用市場名稱**:當您安裝 `plugin-name@marketplace-name` 時,在工作階段中或使用 `claude plugin install` 時,Claude Code 會在查詢前重新整理該市場。即使您關閉了市場的[自動更新](#configure-auto-updates)或設定了 `DISABLE_AUTOUPDATER`,Claude Code 也會執行重新整理。在 v2.1.232 之前,Claude Code 在查詢前不會重新整理市場。Claude Code 在以下情況下會跳過此重新整理:

363 * 市場未[從 GitHub、其他 Git 主機或遠端 URL 新增](#add-marketplaces)。367 * 市場未[從 GitHub、其他 Git 主機、遠端 URL](#add-marketplaces)或 [claude.ai](#add-from-claude-ai) 新增。

364 * [種子目錄](/docs/zh-TW/plugin-marketplaces#pre-populate-plugins-for-containers)提供市場。368 * [種子目錄](/docs/zh-TW/plugin-marketplaces#pre-populate-plugins-for-containers)提供市場。

365 * Claude Code 在過去 30 秒內重新整理了市場。369 * Claude Code 在過去 30 秒內重新整理了市場。

366 * 您設定了 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars)。370 * 您設定了 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars)。


395 399 

396來源採用[與 `/plugin marketplace add` 相同的形式](#add-marketplaces),例如 GitHub `owner/repo`、git URL 或本地路徑,除了它不能包含空格。給出外掛程式名稱時不帶 `@marketplace` 後綴。400來源採用[與 `/plugin marketplace add` 相同的形式](#add-marketplaces),例如 GitHub `owner/repo`、git URL 或本地路徑,除了它不能包含空格。給出外掛程式名稱時不帶 `@marketplace` 後綴。

397 401 

398如果您尚未新增該市場,Claude Code 會顯示它解析的來源,並要求您在新增前確認。拒絕會取消安裝並不新增任何內容。市場新增後,外掛程式的詳細資訊會開啟,您可以選擇[安裝範圍](/docs/zh-TW/settings#where-settings-live)。402Claude Code 會顯示它解析的來源,並要求您在新增市場前確認。拒絕會取消安裝並不新增任何內容。市場新增後,外掛程式的詳細資訊會開啟,您可以選擇[安裝範圍](/docs/zh-TW/settings#where-settings-live)。如果來源符合您已新增的市場,Claude Code 會跳過確認並在該市場中開啟外掛程式的詳細資訊。

399 403 

400<h2 id="manage-installed-plugins">404<h2 id="manage-installed-plugins">

401 管理已安裝的外掛程式405 管理已安裝的外掛程式

env-vars.md +6 −2

Details

271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 以停用官方外掛程式市場的自動註冊。Claude Code 在即將註冊市場時讀取變數,通常在機器的第一次互動啟動期間。如果變數在該點設定,Claude Code 會永久跳過註冊。稍後取消設定變數不會撤銷跳過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 以註冊市場 |271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 以停用官方外掛程式市場的自動註冊。Claude Code 在即將註冊市場時讀取變數,通常在機器的第一次互動啟動期間。如果變數在該點設定,Claude Code 會永久跳過註冊。稍後取消設定變數不會撤銷跳過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 以註冊市場 |

272| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 設定為 `1` 以停止 Claude Code 在 Claude Desktop 和 VS Code 擴充功能主機 Claude Code 的工作階段中為未回答的權限請求執行您的 [`Notification` hooks](/docs/zh-TW/hooks#notification),這是 Claude Code 將它們傳送到 Agent SDK 的 `canUseTool` 回呼的方式。在終端工作階段中無效。需要 Claude Code v2.1.233 或更新版本 |272| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 設定為 `1` 以停止 Claude Code 在 Claude Desktop 和 VS Code 擴充功能主機 Claude Code 的工作階段中為未回答的權限請求執行您的 [`Notification` hooks](/docs/zh-TW/hooks#notification),這是 Claude Code 將它們傳送到 Agent SDK 的 `canUseTool` 回呼的方式。在終端工作階段中無效。需要 Claude Code v2.1.233 或更新版本 |

273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 設定為 `1` 以跳過從系統範圍受管 skills 目錄載入 skills。對於不應載入操作員佈建 skills 的容器或 CI 工作階段很有用 |273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 設定為 `1` 以跳過從系統範圍受管 skills 目錄載入 skills。對於不應載入操作員佈建 skills 的容器或 CI 工作階段很有用 |

274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 以停用基於對話上下文的自動終端標題更新。在 Agent SDK 和 `claude -p` 工作階段中,這也會跳過產生工作階段標題的背景小/快速模型請求 |274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 以停用基於對話上下文的自動終端標題更新。這也會跳過產生 [工作階段標題](/docs/zh-TW/sessions#name-your-sessions) 的背景小/快速模型請求 |

275| `CLAUDE_CODE_DISABLE_THINKING` | 設定為 `1` 以從 API 請求中完全省略 `thinking` 參數。這是代理和閘道拒絕參數的相容性選項。在預設思考的模型上,省略參數意味著模型仍可能思考。若要在 Anthropic API 上明確停用 [擴展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),請改用 `MAX_THINKING_TOKENS=0`。兩個變數都不會在 Fable 模型上關閉思考,Fable 模型無法關閉思考。在 [第三方提供者](/docs/zh-TW/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同樣省略參數,因此兩個變數在那裡的行為相同 |275| `CLAUDE_CODE_DISABLE_THINKING` | 設定為 `1` 以從 API 請求中完全省略 `thinking` 參數。這是代理和閘道拒絕參數的相容性選項。在預設思考的模型上,省略參數意味著模型仍可能思考。若要在 Anthropic API 上明確停用 [擴展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),請改用 `MAX_THINKING_TOKENS=0`。兩個變數都不會在 Fable 模型上關閉思考,Fable 模型無法關閉思考。在 [第三方提供者](/docs/zh-TW/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同樣省略參數,因此兩個變數在那裡的行為相同 |

276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 設定為 `1` 以在 Claude Code 不識別模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway) 別名)時跳過主動 [自動壓縮](/docs/zh-TW/costs#reduce-token-usage)。沒有此變數,Claude Code 在它為 ID 假設的上下文視窗進行壓縮。`CLAUDE_CODE_MAX_CONTEXT_TOKENS` 可以改為更正假設的視窗;請參閱 [為閘道或自訂模型 ID 更正視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id) 以了解何時應用每個變數。需要 Claude Code v2.1.223 或更新版本 |276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 設定為 `1` 以在 Claude Code 不識別模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway) 別名)時跳過主動 [自動壓縮](/docs/zh-TW/costs#reduce-token-usage)。沒有此變數,Claude Code 在它為 ID 假設的上下文視窗進行壓縮。`CLAUDE_CODE_MAX_CONTEXT_TOKENS` 可以改為更正假設的視窗;請參閱 [為閘道或自訂模型 ID 更正視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id) 以了解何時應用每個變數。需要 Claude Code v2.1.223 或更新版本 |

277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的虛擬捲軸並呈現文字記錄中的每條訊息。如果全螢幕模式中的捲軸顯示應該出現訊息的空白區域,請使用此選項 |277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的虛擬捲軸並呈現文字記錄中的每條訊息。如果全螢幕模式中的捲軸顯示應該出現訊息的空白區域,請使用此選項 |


299| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 設定為 `1` 以在您的終端支援但未自動偵測時強制啟用 DEC 私有模式 2026 [同步輸出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。對於實現 BSU/ESU 但不回覆功能探測的模擬器(例如 Emacs `eat`)很有用。在 tmux 下無效。與 `CLAUDE_CODE_NO_FLICKER` 不同,後者切換到 [全螢幕呈現](/docs/zh-TW/fullscreen),這不會變更呈現器 |299| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 設定為 `1` 以在您的終端支援但未自動偵測時強制啟用 DEC 私有模式 2026 [同步輸出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。對於實現 BSU/ESU 但不回覆功能探測的模擬器(例如 Emacs `eat`)很有用。在 tmux 下無效。與 `CLAUDE_CODE_NO_FLICKER` 不同,後者切換到 [全螢幕呈現](/docs/zh-TW/fullscreen),這不會變更呈現器 |

300| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [分叉模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off),它讓 Claude 產生 [分叉子代理](/docs/zh-TW/sub-agents#fork-the-current-conversation) 本身,在互動工作階段中預設開啟。設定為 `1` 以在 `claude -p` 和 Agent SDK 中也開啟它,或設定為 `0` 以在每種工作階段中關閉它。無論分叉模式是否開啟,您都可以執行 `/subtask`。互動預設需要 Claude Code v2.1.232 或更新版本;在較早版本上,設定變數為 `1` 以開啟分叉模式 |300| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [分叉模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off),它讓 Claude 產生 [分叉子代理](/docs/zh-TW/sub-agents#fork-the-current-conversation) 本身,在互動工作階段中預設開啟。設定為 `1` 以在 `claude -p` 和 Agent SDK 中也開啟它,或設定為 `0` 以在每種工作階段中關閉它。無論分叉模式是否開啟,您都可以執行 `/subtask`。互動預設需要 Claude Code v2.1.232 或更新版本;在較早版本上,設定變數為 `1` 以開啟分叉模式 |

301| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 設定為 `1` 以在 `claude -p --output-format stream-json` 輸出中發出 [子代理](/docs/zh-TW/sub-agents) 文字和思考區塊,與 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 旗標相同的行為。當啟動 `claude` 的工具無法自己傳遞旗標時使用變數。與旗標不同,旗標在非互動模式下使用 stream-json 輸出時以錯誤退出,變數在那裡被忽略,以便嵌套呼叫在全程設定時保持工作。需要 Claude Code v2.1.211 或更新版本 |301| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 設定為 `1` 以在 `claude -p --output-format stream-json` 輸出中發出 [子代理](/docs/zh-TW/sub-agents) 文字和思考區塊,與 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 旗標相同的行為。當啟動 `claude` 的工具無法自己傳遞旗標時使用變數。與旗標不同,旗標在非互動模式下使用 stream-json 輸出時以錯誤退出,變數在那裡被忽略,以便嵌套呼叫在全程設定時保持工作。需要 Claude Code v2.1.211 或更新版本 |

302| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 設定為 `1` 以在自訂代理或第三方提供者(例如 Amazon Bedrock 或 Claude Platform on AWS)上傳送 [閘道提示標頭](/docs/zh-TW/llm-gateway-protocol#gateway-hint-headers),例如 `x-claude-code-request-class` 和 `x-claude-code-compaction`。設定為 `0` 以停止在每個連線上傳送它們,包括 Claude Code 預設傳送的直接 Anthropic API 連線。需要 Claude Code v2.1.273 或更新版本 |

302| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | [閘道模型發現](/docs/zh-TW/llm-gateway-protocol#model-discovery) 請求的逾時(毫秒),`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 開啟(預設:`3000`)。當您的閘道需要超過三秒才能在啟動時回答 `/v1/models` 時提高它。僅接受純數字;`0`、負值和其他拼寫保持預設。需要 Claude Code v2.1.269 或更新版本 |303| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | [閘道模型發現](/docs/zh-TW/llm-gateway-protocol#model-discovery) 請求的逾時(毫秒),`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 開啟(預設:`3000`)。當您的閘道需要超過三秒才能在啟動時回答 `/v1/models` 時提高它。僅接受純數字;`0`、負值和其他拼寫保持預設。需要 Claude Code v2.1.269 或更新版本 |

303| `CLAUDE_CODE_GIT_BASH_PATH` | 僅限 Windows:Git Bash 可執行檔 (`bash.exe`) 的路徑。當 Git Bash 已安裝但不在您的 PATH 中時使用。如果路徑不存在或檔案未命名為 `bash.exe`、`sh.exe`、`bash` 或 `sh`,Claude Code 會忽略變數並自動偵測 Git Bash,如同未設定一樣,記錄可見的警告 `--debug`。在 v2.1.219 之前,當路徑不存在時 Claude Code 在啟動時退出,並使用任何現有檔案作為 shell,而不檢查它是否為 bash 或 sh。請參閱 [Windows 設定](/docs/zh-TW/setup#set-up-on-windows) |304| `CLAUDE_CODE_GIT_BASH_PATH` | 僅限 Windows:Git Bash 可執行檔 (`bash.exe`) 的路徑。當 Git Bash 已安裝但不在您的 PATH 中時使用。如果路徑不存在或檔案未命名為 `bash.exe`、`sh.exe`、`bash` 或 `sh`,Claude Code 會忽略變數並自動偵測 Git Bash,如同未設定一樣,記錄可見的警告 `--debug`。在 v2.1.219 之前,當路徑不存在時 Claude Code 在啟動時退出,並使用任何現有檔案作為 shell,而不檢查它是否為 bash 或 sh。請參閱 [Windows 設定](/docs/zh-TW/setup#set-up-on-windows) |

304| `CLAUDE_CODE_GLOB_HIDDEN` | 設定為 `false` 以在 Claude 呼叫 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior) 時從結果中排除隱藏檔案。預設包含。不影響 `@` 檔案自動完成、`ls`、Grep 或 Read |305| `CLAUDE_CODE_GLOB_HIDDEN` | 設定為 `false` 以在 Claude 呼叫 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior) 時從結果中排除隱藏檔案。預設包含。不影響 `@` 檔案自動完成、`ls`、Grep 或 Read |


476| `NO_PROXY` | 要直接發出請求的網域和 IP 清單,繞過代理 |477| `NO_PROXY` | 要直接發出請求的網域和 IP 清單,繞過代理 |

477| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 標準 OpenTelemetry SDK 屬性值長度限制。Claude Code 將內容承載遙測屬性上限為此和 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 中的較小者,因此截斷標記保持在 SDK 限制內。Claude Code 以相同方式讀取 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 和 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 變體,最小設定值適用於所有信號。需要 Claude Code v2.1.214 或更新版本。請參閱 [監控](/docs/zh-TW/monitoring-usage#common-configuration-variables) |478| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 標準 OpenTelemetry SDK 屬性值長度限制。Claude Code 將內容承載遙測屬性上限為此和 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 中的較小者,因此截斷標記保持在 SDK 限制內。Claude Code 以相同方式讀取 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 和 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 變體,最小設定值適用於所有信號。需要 Claude Code v2.1.214 或更新版本。請參閱 [監控](/docs/zh-TW/monitoring-usage#common-configuration-variables) |

478| `OTEL_LOG_ASSISTANT_RESPONSES` | 設定為 `1` 以在 `assistant_response` OpenTelemetry 日誌事件上包含模型的回應文字。未設定時,使用 `OTEL_LOG_USER_PROMPTS` 的值。設定為 `0` 以保持回應被編輯,即使 `OTEL_LOG_USER_PROMPTS` 設定。需要 Claude Code v2.1.193 或更新版本。請參閱 [監控](/docs/zh-TW/monitoring-usage#assistant-response-event) |479| `OTEL_LOG_ASSISTANT_RESPONSES` | 設定為 `1` 以在 `assistant_response` OpenTelemetry 日誌事件上包含模型的回應文字。未設定時,使用 `OTEL_LOG_USER_PROMPTS` 的值。設定為 `0` 以保持回應被編輯,即使 `OTEL_LOG_USER_PROMPTS` 設定。需要 Claude Code v2.1.193 或更新版本。請參閱 [監控](/docs/zh-TW/monitoring-usage#assistant-response-event) |

480| `OTEL_LOG_MANAGED_SETTINGS` | 設定為 `1` 以新增編輯的受管設定和設定前編輯的 SHA-256 摘要到 `managed_settings_resolved` OpenTelemetry 日誌事件。預設停用。在您的 shell、使用者設定或受管設定中設定它;專案或本機設定中的值不會開啟它。需要 Claude Code v2.1.274 或更新版本。請參閱 [監控](/docs/zh-TW/monitoring-usage#managed-settings-resolved-event) |

479| `OTEL_LOG_RAW_API_BODIES` | 發出 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件。設定為 `1` 用於在內容限制處截斷的內聯主體,或 `file:<dir>` 以將未截斷的主體寫入磁碟並改為發出 `body_ref` 路徑。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 配置內容限制,預設 60 KB。預設停用;主體包含整個對話歷史記錄。在您的 shell、使用者設定或受管設定中設定它。在 [專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。請參閱 [監控](/docs/zh-TW/monitoring-usage#api-request-body-event) |481| `OTEL_LOG_RAW_API_BODIES` | 發出 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件。設定為 `1` 用於在內容限制處截斷的內聯主體,或 `file:<dir>` 以將未截斷的主體寫入磁碟並改為發出 `body_ref` 路徑。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 配置內容限制,預設 60 KB。預設停用;主體包含整個對話歷史記錄。在您的 shell、使用者設定或受管設定中設定它。在 [專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。請參閱 [監控](/docs/zh-TW/monitoring-usage#api-request-body-event) |

480| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 以在 `tool.output` OpenTelemetry 跨度事件中包含工具內容。跨度屬性在 [自己的門下](/docs/zh-TW/monitoring-usage#new-context-gates) 攜帶工具內容。需要 [追蹤](/docs/zh-TW/monitoring-usage#traces-beta)。預設停用以保護敏感資料。請參閱 [監控](/docs/zh-TW/monitoring-usage#tool-output-span-event) |482| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 以在 `tool.output` OpenTelemetry 跨度事件中包含工具內容。跨度屬性在 [自己的門下](/docs/zh-TW/monitoring-usage#new-context-gates) 攜帶工具內容。需要 [追蹤](/docs/zh-TW/monitoring-usage#traces-beta)。預設停用以保護敏感資料。請參閱 [監控](/docs/zh-TW/monitoring-usage#tool-output-span-event) |

481| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 以在 OpenTelemetry 追蹤和日誌中包含工具輸入引數、MCP 伺服器名稱、使用者撰寫的工作流程名稱、工具失敗上的原始錯誤字串、`api_refusal` 事件上的拒絕 `category` 和其他工具詳細資訊。預設停用以保護 PII。請參閱 [監控](/docs/zh-TW/monitoring-usage) |483| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 以在 OpenTelemetry 追蹤和日誌中包含工具輸入引數、MCP 伺服器名稱、使用者撰寫的工作流程名稱、工具失敗上的原始錯誤字串、`api_refusal` 事件上的拒絕 `category` 和其他工具詳細資訊。預設停用以保護 PII。請參閱 [監控](/docs/zh-TW/monitoring-usage) |


487| `OTEL_METRICS_INCLUDE_SESSION_ID` | 設定為 `false` 以從指標屬性中排除工作階段 ID(預設:包含)。請參閱 [監控](/docs/zh-TW/monitoring-usage) |489| `OTEL_METRICS_INCLUDE_SESSION_ID` | 設定為 `false` 以從指標屬性中排除工作階段 ID(預設:包含)。請參閱 [監控](/docs/zh-TW/monitoring-usage) |

488| `OTEL_METRICS_INCLUDE_VERSION` | 設定為 `true` 以在指標屬性中包含 Claude Code 版本(預設:排除)。請參閱 [監控](/docs/zh-TW/monitoring-usage) |490| `OTEL_METRICS_INCLUDE_VERSION` | 設定為 `true` 以在指標屬性中包含 Claude Code 版本(預設:排除)。請參閱 [監控](/docs/zh-TW/monitoring-usage) |

489| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆蓋 [Skill 工具](/docs/zh-TW/skills#control-who-invokes-a-skill) 顯示的 skill 中繼資料的字元預算。預算在上下文視窗的 1% 處動態縮放,回退為 8,000 字元。為向後相容性保留的舊名稱 |491| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆蓋 [Skill 工具](/docs/zh-TW/skills#control-who-invokes-a-skill) 顯示的 skill 中繼資料的字元預算。預算在上下文視窗的 1% 處動態縮放,回退為 8,000 字元。為向後相容性保留的舊名稱 |

490| `TASK_MAX_OUTPUT_LENGTH` | [背景工作](/docs/zh-TW/tools-reference#background-commands) 輸出的最大字元數,`TaskOutput` 工具保持(預設:32000;最大:160000)。如果您設定 [`taskOutputMaxChars`](/docs/zh-TW/settings-reference#taskoutputmaxchars) 設定,Claude Code 會忽略此變數 |492| `TASK_MAX_OUTPUT_LENGTH` | 在 v2.1.277 中移除,現在是無操作,與它調整大小的 `TaskOutput` 工具一起。以前設定 [背景工作](/docs/zh-TW/tools-reference#background-commands) 輸出的最大字元數,`TaskOutput` 工具保持。Claude 改為使用 `Read` 讀取背景工作的輸出檔案 |

491| `USE_BUILTIN_RIPGREP` | 設定為 `0` 以使用系統安裝的 `rg` 而不是 `rg` 包含在 Claude Code 中 |493| `USE_BUILTIN_RIPGREP` | 設定為 `0` 以使用系統安裝的 `rg` 而不是 `rg` 包含在 Claude Code 中 |

492| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude 3.5 Haiku 的區域 |494| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude 3.5 Haiku 的區域 |

493| `VERTEX_REGION_CLAUDE_3_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude 3.5 Sonnet 的區域 |495| `VERTEX_REGION_CLAUDE_3_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude 3.5 Sonnet 的區域 |


501| `VERTEX_REGION_CLAUDE_4_6_SONNET` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Sonnet 4.6 的區域 |503| `VERTEX_REGION_CLAUDE_4_6_SONNET` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Sonnet 4.6 的區域 |

502| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 4.7 的區域 |504| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 4.7 的區域 |

503| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 4.8 的區域 |505| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 4.8 的區域 |

506| `VERTEX_REGION_CLAUDE_5_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 5.5 的區域。在 v2.1.280 中新增 |

504| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 5 的區域。在 v2.1.219 中新增 |507| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Opus 5 的區域。在 v2.1.219 中新增 |

505| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Sonnet 5 的區域。在 v2.1.197 中新增 |508| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Sonnet 5 的區域。在 v2.1.197 中新增 |

506| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Fable 5 的區域。在 v2.1.170 中新增 |509| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud's Agent Platform 時覆蓋 Claude Fable 5 的區域。在 v2.1.170 中新增 |


535* 讓 Claude Code 探測 claude.ai 連接器伺服器以取得 [MCP 協定修訂版本 2026-07-28](/docs/zh-TW/mcp#mcp-client-runtimes),除非您設定 `MCP_PROTOCOL_NEGOTIATION=auto`538* 讓 Claude Code 探測 claude.ai 連接器伺服器以取得 [MCP 協定修訂版本 2026-07-28](/docs/zh-TW/mcp#mcp-client-runtimes),除非您設定 `MCP_PROTOCOL_NEGOTIATION=auto`

536* 在安裝 Git Bash 的 Windows 上預設為 claude.ai 和 Console 帳戶取得 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool);Claude Code 透過 Git Bash 路由 Shell 命令,除非您設定 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。在沒有 Git Bash 的 Windows 上,工具保持開啟539* 在安裝 Git Bash 的 Windows 上預設為 claude.ai 和 Console 帳戶取得 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool);Claude Code 透過 Git Bash 路由 Shell 命令,除非您設定 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。在沒有 Git Bash 的 Windows 上,工具保持開啟

537* 取得 [Claude 草擬的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior),Claude Code 透過擷取的旗標來啟用此功能540* 取得 [Claude 草擬的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior),Claude Code 透過擷取的旗標來啟用此功能

541* 讓 Claude [將大型貼上視為貼上而非輸入的文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text);`[Pasted text #N]` 預留位置後面的內容會以未標記的方式到達 Claude

538* 讓 Claude Code [排除 MCP 工具,其輸入結構描述 API 會拒絕](/docs/zh-TW/mcp#tools-with-invalid-input-schemas);它仍會傳送結構描述,包含它的請求會失敗,並出現[命名工具位置的 400 錯誤](/docs/zh-TW/errors#tool-input-schema-is-invalid)542* 讓 Claude Code [排除 MCP 工具,其輸入結構描述 API 會拒絕](/docs/zh-TW/mcp#tools-with-invalid-input-schemas);它仍會傳送結構描述,包含它的請求會失敗,並出現[命名工具位置的 400 錯誤](/docs/zh-TW/errors#tool-input-schema-is-invalid)

539 543 

540<h3 id="first-session-after-an-install-or-upgrade">544<h3 id="first-session-after-an-install-or-upgrade">

errors.md +158 −12

Details

71| `API Error: 401 Invalid authentication credentials` | [驗證](#api-error-401-invalid-authentication-credentials) |71| `API Error: 401 Invalid authentication credentials` | [驗證](#api-error-401-invalid-authentication-credentials) |

72| `Login expired · Please run /login` | [驗證](#login-expired) |72| `Login expired · Please run /login` | [驗證](#login-expired) |

73| `Claude login not accepted · Run /login, then try again` | [驗證](#claude-login-not-accepted) |73| `Claude login not accepted · Run /login, then try again` | [驗證](#claude-login-not-accepted) |

74| `Artifacts need a claude.ai login` | [驗證](#artifacts-need-a-claude-ai-login) |

74| `Not signed in to the Cloud gateway — run /login.` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |75| `Not signed in to the Cloud gateway — run /login.` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |

75| `Administrator policy requires a Cloud gateway sign-in on this machine` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |76| `Administrator policy requires a Cloud gateway sign-in on this machine` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |

76| `Failed to authenticate: OAuth session expired and could not be refreshed` | [驗證](#login-expired) |77| `Failed to authenticate: OAuth session expired and could not be refreshed` | [驗證](#login-expired) |


87| `Issuer mismatch in authorization response (RFC 9207)` | [驗證](#issuer-mismatch-in-authorization-response) |88| `Issuer mismatch in authorization response (RFC 9207)` | [驗證](#issuer-mismatch-in-authorization-response) |

88| `Cloud gateway session expired — run /login to reconnect.` | [驗證](#cloud-gateway-session-expired) |89| `Cloud gateway session expired — run /login to reconnect.` | [驗證](#cloud-gateway-session-expired) |

89| `Cloud gateway <url> no longer accepts this session` | [驗證](#cloud-gateway-session-expired) |90| `Cloud gateway <url> no longer accepts this session` | [驗證](#cloud-gateway-session-expired) |

91| `Sign-in timed out while waiting for you to continue. Try again.` | [驗證](#sign-in-timed-out-while-waiting-for-you-to-continue) |

90| `AWS credentials expired or invalid` | [驗證](#aws-credentials-expired-or-invalid) |92| `AWS credentials expired or invalid` | [驗證](#aws-credentials-expired-or-invalid) |

91| `AWS authentication failed` | [驗證](#aws-authentication-failed) |93| `AWS authentication failed` | [驗證](#aws-authentication-failed) |

92| `Google Cloud credentials expired or invalid` | [驗證](#google-cloud-credentials-expired-or-invalid) |94| `Google Cloud credentials expired or invalid` | [驗證](#google-cloud-credentials-expired-or-invalid) |


149| `effort '<level>' is not supported when thinking is disabled` | [請求錯誤](#effort-isnt-available-with-thinking-turned-off) |151| `effort '<level>' is not supported when thinking is disabled` | [請求錯誤](#effort-isnt-available-with-thinking-turned-off) |

150| `max_tokens must be greater than thinking.budget_tokens` | [請求錯誤](#thinking-budget-exceeds-output-limit) |152| `max_tokens must be greater than thinking.budget_tokens` | [請求錯誤](#thinking-budget-exceeds-output-limit) |

151| `API Error: 400 due to tool use concurrency issues` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |153| `API Error: 400 due to tool use concurrency issues` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |

154| `API Error: 400 orphaned tool_result in conversation history` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |

155| `API Error: 400 duplicate tool_use ID in conversation history` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |

152| `[Unsupported tool content removed]` | [請求錯誤](#unsupported-tool-content-removed) |156| `[Unsupported tool content removed]` | [請求錯誤](#unsupported-tool-content-removed) |

153| `server_tool_use.name: Input should be` on every turn of a resumed session | [請求錯誤](#unsupported-tool-content-removed) |157| `server_tool_use.name: Input should be` on every turn of a resumed session | [請求錯誤](#unsupported-tool-content-removed) |

154| `<model> can't help with this. Start a new session to continue` | [請求錯誤](#usage-policy-refusal) |158| `<model> can't help with this. Start a new session to continue` | [請求錯誤](#usage-policy-refusal) |

155| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [請求錯誤](#usage-policy-refusal) |159| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [請求錯誤](#usage-policy-refusal) |

156| `<model>'s safeguards flagged this message` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |160| `<model>'s safeguards flagged this message` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |

161| `Opus 5.5's safeguards flagged this session` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |

157| `<model> has safety measures that flagged this message for a cybersecurity topic` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |162| `<model> has safety measures that flagged this message for a cybersecurity topic` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |

158| `Installation was killed before it could finish (exit code 137)` | [安裝錯誤](#installation-was-killed-before-it-could-finish) |163| `Installation was killed before it could finish (exit code 137)` | [安裝錯誤](#installation-was-killed-before-it-could-finish) |

159| `The connection dropped while downloading the update` | [安裝錯誤](#the-connection-dropped-while-downloading-the-update) |164| `The connection dropped while downloading the update` | [安裝錯誤](#the-connection-dropped-while-downloading-the-update) |


199| `No conversation found with session ID: <session-id>` | [命令列錯誤](#no-conversation-found-with-the-session-id) |204| `No conversation found with session ID: <session-id>` | [命令列錯誤](#no-conversation-found-with-the-session-id) |

200| `Cannot switch renderers in this session` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |205| `Cannot switch renderers in this session` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |

201| `Cannot switch renderers while work is running in the background` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |206| `Cannot switch renderers while work is running in the background` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |

207| `Couldn't open Claude Desktop` | [命令列錯誤](#couldnt-open-claude-desktop) |

208| `Failed to open Claude Desktop. Please try opening it manually.` | [命令列錯誤](#couldnt-open-claude-desktop) |

202| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [命令列錯誤](#terminal-setup-left-your-zed-keymap-unchanged) |209| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [命令列錯誤](#terminal-setup-left-your-zed-keymap-unchanged) |

203| `Your Zed keymap isn't a readable list of keybindings` | [命令列錯誤](#terminal-setup-left-your-zed-keymap-unchanged) |210| `Your Zed keymap isn't a readable list of keybindings` | [命令列錯誤](#terminal-setup-left-your-zed-keymap-unchanged) |

204| `Skill usage reports are not available on this connection.` | [命令列錯誤](#skill-usage-reports-are-not-available-on-this-connection) |211| `Skill usage reports are not available on this connection.` | [命令列錯誤](#skill-usage-reports-are-not-available-on-this-connection) |


206| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [命令列錯誤](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |213| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [命令列錯誤](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

207| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin 錯誤](#plugin-eval-is-currently-in-early-access) |214| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin 錯誤](#plugin-eval-is-currently-in-early-access) |

208| `Marketplace "<name>" is registered from an untrusted source` | [Plugin 錯誤](#marketplace-is-registered-from-an-untrusted-source) |215| `Marketplace "<name>" is registered from an untrusted source` | [Plugin 錯誤](#marketplace-is-registered-from-an-untrusted-source) |

216| `Marketplace "<name>" is already added from a different source` | [Plugin 錯誤](#marketplace-is-already-added-from-a-different-source) |

209| `references ${user_config.*} in a shell-form command` | [Plugin 錯誤](#plugin-command-references-user-config) |217| `references ${user_config.*} in a shell-form command` | [Plugin 錯誤](#plugin-command-references-user-config) |

210| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin 錯誤](#plugin-command-references-user-config) |218| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin 錯誤](#plugin-command-references-user-config) |

211| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin 錯誤](#plugin-command-references-user-config) |219| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin 錯誤](#plugin-command-references-user-config) |


216| `Plugin source path refused` | [Plugin 錯誤](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |224| `Plugin source path refused` | [Plugin 錯誤](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

217| `Failed to load marketplace configuration` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |225| `Failed to load marketplace configuration` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |

218| `Marketplace configuration file is corrupted` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |226| `Marketplace configuration file is corrupted` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |

227| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin 錯誤](#plugin-is-required-by-your-organization) |

219| `would be spawned with zero tools — refusing` | [工具錯誤](#agent-would-be-spawned-with-zero-tools) |228| `would be spawned with zero tools — refusing` | [工具錯誤](#agent-would-be-spawned-with-zero-tools) |

220| `File is covered by a Read deny rule in your permission settings` | [工具錯誤](#file-is-covered-by-a-read-deny-rule) |229| `File is covered by a Read deny rule in your permission settings` | [工具錯誤](#file-is-covered-by-a-read-deny-rule) |

221| `subagent_type is required: the general-purpose agent is not available in this session` | [工具錯誤](#subagent-type-is-required) |230| `subagent_type is required: the general-purpose agent is not available in this session` | [工具錯誤](#subagent-type-is-required) |


246| `Can't open MCP settings in a background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |255| `Can't open MCP settings in a background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |

247| `blocked because the path is spelled in a form that cannot be safely resolved` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |256| `blocked because the path is spelled in a form that cannot be safely resolved` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |

248| `blocked because the path is network-shaped` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-names-a-network-location) |257| `blocked because the path is network-shaped` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-names-a-network-location) |

258| `is isolated in the worktree <path>, but this command <reason>. Refusing to run it` | [背景工作階段錯誤](#command-blocked-by-the-worktree-isolation-checks) |

259| `too complex to verify that it stays inside the worktree` | [背景工作階段錯誤](#command-blocked-by-the-worktree-isolation-checks) |

249| `This session has no saved transcript` | [背景工作階段錯誤](#this-session-has-no-saved-transcript) |260| `This session has no saved transcript` | [背景工作階段錯誤](#this-session-has-no-saved-transcript) |

250| `Can't open — this session is running in another terminal` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |261| `Can't open — this session is running in another terminal` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |

251| `This conversation is already open in another running Claude session` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |262| `This conversation is already open in another running Claude session` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |


281| `MCP server <name> is blocked by enterprise managed policy` | [設定警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |292| `MCP server <name> is blocked by enterprise managed policy` | [設定警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |

282| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [設定警告](#managed-settings-document-could-not-be-parsed) |293| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [設定警告](#managed-settings-document-could-not-be-parsed) |

283| `Managed settings drop-in directory could not be read` | [設定警告](#managed-settings-document-could-not-be-parsed) |294| `Managed settings drop-in directory could not be read` | [設定警告](#managed-settings-document-could-not-be-parsed) |

295| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [設定警告](#otelheadershelper-failed) |

284| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [設定警告](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |296| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [設定警告](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

285| `headersHelper not run — this workspace has no persisted trust` | [設定警告](#headershelper-not-run) |297| `headersHelper not run — this workspace has no persisted trust` | [設定警告](#headershelper-not-run) |

286| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [設定警告](#malformed-tool-content-rule) |298| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [設定警告](#malformed-tool-content-rule) |


624**該怎麼做:**636**該怎麼做:**

625 637 

626* 執行 `/model` 並選擇不帶 `[1m]` 後綴的變體以回退到標準上下文視窗638* 執行 `/model` 並選擇不帶 `[1m]` 後綴的變體以回退到標準上下文視窗

627* 訊息提及 `/usage-credits` 的地方,執行它以在 Pro 和 Max 上為 1M 變體開啟計量計費,或在 Team 和 Enterprise 上向您的管理員請求使用額度。重新啟動 Claude Code 一次使用額度開啟。在您重新啟動之前,工作階段會保持在標準上下文限制。639* 訊息提及 `/usage-credits` 的地方,執行它以在 Pro 和 Max 上為 1M 變體開啟計量計費,或在 Team 和 Enterprise 上向您的管理員請求使用額度。一旦使用額度開啟,重新啟動 Claude Code 或開始新的工作階段,取決於訊息所說的。在您重新啟動之前,工作階段會保持在標準上下文限制。

628* 如果 `/model` 後錯誤仍然存在,1M 模型 ID 可能在其他地方設定。請參閱[設定您的模型](/docs/zh-TW/model-config#setting-your-model)以按優先順序檢查設定位置。640* 如果 `/model` 後錯誤仍然存在,1M 模型 ID 可能在其他地方設定。請參閱[設定您的模型](/docs/zh-TW/model-config#setting-your-model)以按優先順序檢查設定位置。

629* 若要從模型選擇器中完全移除 1M 變體,請設定 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-TW/env-vars)641* 若要從模型選擇器中完全移除 1M 變體,請設定 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-TW/env-vars)

630 642 


861* 直接在您的 shell 中執行在 `apiKeyHelper` 中設定的命令以重現失敗873* 直接在您的 shell 中執行在 `apiKeyHelper` 中設定的命令以重現失敗

862* 如果命令報告工作階段已過期,請使用您的認證資格提供者重新驗證,例如再次登入您的 SSO 或機密保管庫874* 如果命令報告工作階段已過期,請使用您的認證資格提供者重新驗證,例如再次登入您的 SSO 或機密保管庫

863* 修正命令,使其僅將金鑰列印到 stdout,作為單一可列印 ASCII 權杖,最多 16,384 個字元,並以代碼 0 結束。請參閱[使用 apiKeyHelper 輪換認證資格](/docs/zh-TW/llm-gateway-connect#rotate-credentials-with-apikeyhelper)以取得有效的設定。875* 修正命令,使其僅將金鑰列印到 stdout,作為單一可列印 ASCII 權杖,最多 16,384 個字元,並以代碼 0 結束。請參閱[使用 apiKeyHelper 輪換認證資格](/docs/zh-TW/llm-gateway-connect#rotate-credentials-with-apikeyhelper)以取得有效的設定。

864* 執行 `/status` 以確認 `apiKeyHelper` 是活動認證資格來源。每次命令失敗時,其結束代碼和錯誤輸出都會出現在終端機中的 `Authentication` 面板中。在 v2.1.212 之前,該面板的標題為 `Cloud authentication`。876* 執行 `/status` 以確認 `apiKeyHelper` 是活動認證資格來源。`apiKeyHelper` 列顯示 `Failing` 及最後失敗的詳細資訊,例如結束代碼和命令的錯誤輸出,並在下次成功執行後消失。在 v2.1.274 之前,`/status` 僅顯示認證資格來源,不顯示失敗。

877* 每次命令失敗時,其結束代碼和錯誤輸出也會出現在終端機中的 `Authentication` 面板中。在 v2.1.212 之前,該面板的標題為 `Cloud authentication`。

865 878 

866<h3 id="invalid-request-header-value">879<h3 id="invalid-request-header-value">

867 無效的請求標頭值880 無效的請求標頭值


891Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).904Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

892```905```

893 906 

894位置從 1 開始計算字元。描述是從固定短語和字元計數建立的,因此它永遠不包括值本身。它僅在字元是眾所周知的隱藏或排版字元(例如位元組順序標記、零寬空格或彎引號)時命名該字元,並將其他任何內容報告為 `a non-ASCII character`。907位置從 1 開始計算字元。描述是從固定短語和字元計數建立的,因此它永遠不包括值本身。它僅在字元是眾所週知的隱藏或排版字元(例如位元組順序標記、零寬空格或彎引號)時命名該字元,並將其他任何內容報告為 `a non-ASCII character`。

895 908 

896**該怎麼做:**909**該怎麼做:**

897 910 


969 您的組織政策已停用例行程序982 您的組織政策已停用例行程序

970</h3>983</h3>

971 984 

972您的 Team 或 Enterprise 組織中的擁有者已在組織層級關閉例行程序。當您嘗試建立或執行例行程序時會出現此錯誤,例如從 claude.ai/code 上的[例行程序](/docs/zh-TW/routines) UI。在 Claude Code v2.1.227 或更新版本上,相同的設定也會[隱藏 CLI 中的 `/schedule`](/docs/zh-TW/routines#troubleshooting)。985An Owner in your Team or Enterprise organization has turned off routines at the organization level. The error appears when you try to create or run a routine, for example from the [Routines](/docs/zh-TW/routines) UI on claude.ai/code. On Claude Code v2.1.227 or later, the same setting also [hides `/schedule`](/docs/zh-TW/routines#troubleshooting) in the CLI.

973 986 

974```text theme={null}987```text theme={null}

975Routines are disabled by your organization's policy.988Routines are disabled by your organization's policy.


1167 1180 

1168* 執行 `/login`,完成登入,然後再次啟動工作階段1181* 執行 `/login`,完成登入,然後再次啟動工作階段

1169 1182 

1183<h3 id="artifacts-need-a-claude-ai-login">

1184 工件需要 claude.ai 登入

1185</h3>

1186 

1187Claude Code 拒絕了[工件](/docs/zh-TW/artifacts)發佈或讀取,因為工作階段沒有可用於工件的 claude.ai 登入。

1188 

1189訊息的每種形式都以相同的詞開頭,後面跟著取決於您的工作階段如何進行驗證的補救措施。沒有競爭認證資格時,它讀作:

1190 

1191```text theme={null}

1192Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1193```

1194 

1195**該怎麼做:**

1196 

1197* 執行 `/login` 並選擇**具有訂閱的 Claude 帳戶**。**Anthropic Console 帳戶**選項不提供 claude.ai 認證資格。

1198* 當訊息命名優先的認證資格(例如 `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定或先前 `/login` 儲存的 Console 金鑰)時,按訊息所說的方式移除它,然後執行 `/login`

1199* 當訊息說此遠端工作階段透過啟動它的機器進行驗證時,在該機器上登入 claude.ai,然後重新連線工作階段

1200* 當訊息說認證資格由工作階段的主機環境注入時,您無法在該工作階段中變更它;啟動已登入 claude.ai 的工作階段

1201* 請參閱[可用性](/docs/zh-TW/artifacts#availability)以瞭解工件具有的其他要求,例如計畫、模型提供者和組織政策

1202 

1170<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1203<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1171 管理員政策需要雲端閘道登入1204 管理員政策需要雲端閘道登入

1172</h3>1205</h3>


1476* 對於非互動式啟動,在相同環境中啟動 `claude`,執行 `/login`,然後重新執行您的命令1509* 對於非互動式啟動,在相同環境中啟動 `claude`,執行 `/login`,然後重新執行您的命令

1477 1510 

1478<h3 id="aws-default-chain-credential-resolve-timed-out">1511<h3 id="aws-default-chain-credential-resolve-timed-out">

1512 登入逾時,等待您繼續

1513</h3>

1514 

1515在 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入期間,閘道命名了登入的帳戶,Claude Code 要求您在儲存認證資格之前確認它。您將確認保持開啟超過登入本身的過期,閘道未簽發重新整理權杖,因此當您繼續時 Claude Code 未儲存任何內容:

1516 

1517```text theme={null}

1518Sign-in timed out while waiting for you to continue. Try again.

1519```

1520 

1521**該怎麼做:**

1522 

1523* 執行 `/login` 並在登入過期之前確認帳戶

1524 

1525<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1479 閘道拒絕了請求1526 閘道拒絕了請求

1480</h3>1527</h3>

1481 1528 


1492 1539 

1493在 v2.1.273 之前,閘道工作階段上的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,再次登入不會清除拒絕。1540在 v2.1.273 之前,閘道工作階段上的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,再次登入不會清除拒絕。

1494 1541 

1495<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1542<h3 id="cloud-gateway-session-expired">

1496 Google Cloud 認證資格已過期或無效1543 Google Cloud 認證資格已過期或無效

1497</h3>1544</h3>

1498 1545 


1514 1561 

1515在 v2.1.273 之前,來自 Agent Platform 的 401 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。1562在 v2.1.273 之前,來自 Agent Platform 的 401 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。

1516 1563 

1517<h3 id="cloud-gateway-session-expired">1564<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1518 Google Cloud 驗證失敗1565 Google Cloud 驗證失敗

1519</h3>1566</h3>

1520 1567 


2268 2315 

2269**該怎麼辦:**2316**該怎麼辦:**

2270 2317 

2271* 執行 `claude update` 並重新啟動 Claude Code。Opus 4.7 需要 v2.1.111 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。Sonnet 5 需要 v2.1.197 或更新版本。Opus 5 需要 v2.1.219 或更新版本2318* 執行 `claude update` 並重新啟動 Claude Code。Opus 4.7 需要 v2.1.111 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。Sonnet 5 需要 v2.1.197 或更新版本。Opus 5 需要 v2.1.219 或更新版本。Opus 5.5 需要 v2.1.280 或更新版本

2272* 如果您無法升級,執行 `/model` 並改為選擇 Opus 4.6 或 Sonnet 4.62319* 如果您無法升級,執行 `/model` 並改為選擇 Opus 4.6 或 Sonnet 4.6

2273* 如果您在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中遇到這個,請改為升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更新版本和 Python SDK v0.2.88 或更新版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更新版本。Opus 5 需要 TypeScript SDK v0.3.219 或更新版本2320* 如果您在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中遇到這個,請改為升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更新版本和 Python SDK v0.2.88 或更新版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更新版本。Opus 5 需要 TypeScript SDK v0.3.219 或更新版本。Opus 5.5 需要 TypeScript SDK v0.3.280 或更新版本

2274 2321 

2275<h3 id="effort-isnt-available-with-thinking-turned-off">2322<h3 id="effort-isnt-available-with-thinking-turned-off">

2276 關閉思考時努力不可用2323 關閉思考時努力不可用


2314 2361 

2315```text theme={null}2362```text theme={null}

2316API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.2363API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.

2364API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.

2365API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.

2317API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks2366API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks

2318API Error: 400 ... thinking blocks ... cannot be modified2367API Error: 400 ... thinking blocks ... cannot be modified

2319```2368```

2320 2369 

2321所有三個變體都意味著相同的事情:歷史記錄中 `tool_use`、`tool_result` 和 `thinking` 區塊的序列不再與 API 期望的相符。2370所有變體都意味著相同的事情:歷史記錄中 `tool_use`、`tool_result` 和 `thinking` 區塊的序列不再與 API 期望的相符。

2322 2371 

2323**該怎麼辦:**2372**該怎麼辦:**

2324 2373 


2376API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2425API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2377```2426```

2378 2427 

2379訊息連結到 [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude),它為合法網路安全工作授予存取權限。2428訊息連結到 [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude),它為合法網路安全工作授予存取權限。在 Opus 5.5 上(需要 v2.1.280 或更新版本),訊息改為以 `Opus 5.5's safeguards flagged this session` 開頭。當標記的類別有可用的備用模型時,Claude Code [切換模型](/docs/zh-TW/model-config#automatic-model-fallback) 而不是顯示此錯誤。

2380 2429 

2381在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上,網路安全標記會改為產生 [Usage Policy refusal](#usage-policy-refusal) 訊息。2430在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上,網路安全標記會改為產生 [Usage Policy refusal](#usage-policy-refusal) 訊息。

2382 2431 


3087**該怎麼做:**3136**該怎麼做:**

3088 3137 

3089* 執行 `claude --resume <session-id>`,使用訊息中的工作階段 ID 重試3138* 執行 `claude --resume <session-id>`,使用訊息中的工作階段 ID 重試

3139* 如果重試再次失敗,執行 `claude update` 並再次恢復。v2.1.275 之前的版本在已儲存的文字記錄包含它們無法讀取的項目時失敗恢復。

3090* 如果重試再次失敗,執行 `claude` 啟動新工作階段3140* 如果重試再次失敗,執行 `claude` 啟動新工作階段

3091 3141 

3092<h3 id="no-conversation-found-with-the-session-id">3142<h3 id="no-conversation-found-with-the-session-id">


3139 3189 

3140* 在沒有這些限制的工作階段中,執行 `/tui fullscreen` 或 `/tui default` 切換回。Claude Code 在那裡儲存 [`tui` 設定](/docs/zh-TW/settings-reference#tui)3190* 在沒有這些限制的工作階段中,執行 `/tui fullscreen` 或 `/tui default` 切換回。Claude Code 在那裡儲存 [`tui` 設定](/docs/zh-TW/settings-reference#tui)

3141 3191 

3192<h3 id="couldnt-open-claude-desktop">

3193 無法開啟 Claude Desktop

3194</h3>

3195 

3196您執行了 [`/desktop`](/docs/zh-TW/desktop#coming-from-the-cli),或其別名 `/app`,系統命令 Claude Code 用來開啟 Claude Desktop 失敗。工作階段保持在終端。

3197 

3198```text theme={null}

3199Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and run /desktop again.

3200```

3201 

3202**該怎麼做:**

3203 

3204* 自己開啟 Claude Desktop,然後再次執行 `/desktop`

3205* 若要讀取該命令的完整錯誤輸出,使用 `/debug` 開啟偵錯日誌,再次執行 `/desktop`,並檢查偵錯日誌

3206 

3207在 v2.1.275 之前,訊息是 `Failed to open Claude Desktop. Please try opening it manually.` 並沒有說什麼失敗。

3208 

3142<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3209<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3143 /terminal-setup 讓您的 Zed 快捷鍵保持不變3210 /terminal-setup 讓您的 Zed 快捷鍵保持不變

3144</h3>3211</h3>


3256* 如果您發佈了在其名稱變成保留名稱之前使用該名稱的第三方 marketplace,請重新命名它並要求使用者從您的來源重新新增它3323* 如果您發佈了在其名稱變成保留名稱之前使用該名稱的第三方 marketplace,請重新命名它並要求使用者從您的來源重新新增它

3257* 請參閱 [Marketplace schema](/docs/zh-TW/plugin-marketplaces#marketplace-schema) 下的保留名稱清單3324* 請參閱 [Marketplace schema](/docs/zh-TW/plugin-marketplaces#marketplace-schema) 下的保留名稱清單

3258 3325 

3326<h3 id="marketplace-is-already-added-from-a-different-source">

3327 Marketplace 已從不同的來源新增

3328</h3>

3329 

3330您透過 [`/plugin install <plugin> --marketplace <source>`](/docs/zh-TW/discover-plugins#add-a-marketplace-and-install-in-one-command) 確認新增 marketplace,而 Claude Code 從該來源擷取的目錄將自己命名為與您已從不同來源新增的 marketplace 相同的名稱。Claude Code 保留現有的 marketplace 而不是替換它,plugin 不會被安裝。

3331 

3332```text theme={null}

3333Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

3334```

3335 

3336**該怎麼做:**

3337 

3338* 如果您已新增的 marketplace 是您想要的,請按名稱從中安裝:`/plugin install <plugin>@<name>`

3339* 若要切換到新的來源,執行 `/plugin marketplace remove <name>`,然後重試安裝

3340 

3259<h3 id="plugin-command-references-user-config">3341<h3 id="plugin-command-references-user-config">

3260 Plugin 命令在 shell 命令中參考 user\_config3342 Plugin 命令在 shell 命令中參考 user\_config

3261</h3>3343</h3>


3380Plugin 的 [marketplace 項目](/docs/zh-TW/plugin-marketplaces#plugin-entries) 宣告了一個來源路徑,Claude Code 無法將其解析到 marketplace 自己的目錄內的位置,因此 plugin 不會安裝或載入。拒絕涵蓋:3462Plugin 的 [marketplace 項目](/docs/zh-TW/plugin-marketplaces#plugin-entries) 宣告了一個來源路徑,Claude Code 無法將其解析到 marketplace 自己的目錄內的位置,因此 plugin 不會安裝或載入。拒絕涵蓋:

3381 3463 

3382* 絕對的項目路徑、使用 `..` 爬出 marketplace 或拼寫成網路路徑的項目路徑3464* 絕對的項目路徑、使用 `..` 爬出 marketplace 或拼寫成網路路徑的項目路徑

3465* 在 macOS 和 Linux 上,項目路徑在前導 `./` 之後的任何地方包含反斜線

3383* 從遠端來源(例如 git 或 URL)擷取的 marketplace 中的項目,通過解析到 marketplace 目錄外的符號連結到達其目標3466* 從遠端來源(例如 git 或 URL)擷取的 marketplace 中的項目,通過解析到 marketplace 目錄外的符號連結到達其目標

3384* 相對項目在從直接 URL 新增到其 `marketplace.json` 的 marketplace 中:Claude Code 只下載該檔案,因此路徑命名的本機 plugin 檔案不存在。請參閱 [相對路徑的 Plugin 在基於 URL 的 marketplace 中失敗](/docs/zh-TW/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)3467* 相對項目在從直接 URL 新增到其 `marketplace.json` 的 marketplace 中:Claude Code 只下載該檔案,因此路徑命名的本機 plugin 檔案不存在。請參閱 [相對路徑的 Plugin 在基於 URL 的 marketplace 中失敗](/docs/zh-TW/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3385 3468 


3424* 開啟 `~/.claude/plugins/known_marketplaces.json` 並修復 JSON,或修復訊息命名為與登錄架構不符的項目3507* 開啟 `~/.claude/plugins/known_marketplaces.json` 並修復 JSON,或修復訊息命名為與登錄架構不符的項目

3425* 如果您無法修復它,刪除檔案或用 `{}` 替換其內容,然後使用 `claude plugin marketplace add <source>` 重新新增每個 marketplace。Claude Code 在您下次在已信任的資料夾中啟動它時,重新註冊您的使用者或受管設定在 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 中宣告的 marketplace。3508* 如果您無法修復它,刪除檔案或用 `{}` 替換其內容,然後使用 `claude plugin marketplace add <source>` 重新新增每個 marketplace。Claude Code 在您下次在已信任的資料夾中啟動它時,重新註冊您的使用者或受管設定在 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 中宣告的 marketplace。

3426 3509 

3510<h3 id="plugin-is-required-by-your-organization">

3511 Plugin 是您的組織所需的

3512</h3>

3513 

3514您執行了 `claude plugin disable`,或使用 `/plugin` **已安裝** 標籤,以關閉您的組織標記為必需的 [從 claude.ai 同步的 plugin](/docs/zh-TW/plugins-reference#synced-plugins):

3515 

3516```text theme={null}

3517Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

3518```

3519 

3520Claude Code 不會儲存任何內容,plugin 保持啟用。

3521 

3522當您嘗試停用必需 plugin 所依賴的 plugin 時,Claude Code 以相同的方式拒絕,並顯示命名需要它的必需 plugin 的訊息。

3523 

3524**該怎麼做:**

3525 

3526* 詢問您的 claude.ai 組織的管理員以變更 plugin 在 claude.ai 上的必需狀態

3527 

3427<h2 id="tool-errors">3528<h2 id="tool-errors">

3428 工具錯誤3529 工具錯誤

3429</h2>3530</h2>


3452 3553 

3453* 根據[子代理可用的工具](/docs/zh-TW/sub-agents#available-tools)修正錯誤命名的每個項目3554* 根據[子代理可用的工具](/docs/zh-TW/sub-agents#available-tools)修正錯誤命名的每個項目

3454* 移除工作階段沒有的工具項目,例如來自未連接伺服器的 MCP 工具3555* 移除工作階段沒有的工具項目,例如來自未連接伺服器的 MCP 工具

3455* 對於[背景子代理會捨棄](/docs/zh-TW/sub-agents#available-tools)的工具(例如 `LSP`),移除該項目。若要保留該工具,請[關閉 fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off)並要求 Claude 在前景中執行子代理3556* 對於[背景子代理會捨棄](/docs/zh-TW/sub-agents#available-tools)的工具(例如 `CronCreate`),移除該項目。若要保留該工具,請[關閉 fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off)並要求 Claude 在前景中執行子代理

3456* 刪除 `tools` 欄位而不是列出工具,以給予子代理[子代理可用的每個工具](/docs/zh-TW/sub-agents#available-tools)3557* 刪除 `tools` 欄位而不是列出工具,以給予子代理[子代理可用的每個工具](/docs/zh-TW/sub-agents#available-tools)

3457* 對於只包含 `Agent` 的 `tools` 清單,提高[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)或給予代理至少一個其他工具:Claude Code 在該限制處會拒絕提供 `Agent`,因此只有其他工具的清單會解析為沒有工具3558* 對於只包含 `Agent` 的 `tools` 清單,提高[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)或給予代理至少一個其他工具:Claude Code 在該限制處會拒絕提供 `Agent`,因此只有其他工具的清單會解析為沒有工具

3458 3559 


3812* 通常什麼都不做:Claude 使用訊息要求的本機拼寫重試3913* 通常什麼都不做:Claude 使用訊息要求的本機拼寫重試

3813* 如果檔案在網路共享上而不是用網路路徑拼寫的本機檔案,它在工作階段的本機工作區之外;改為從常規互動式工作階段編輯它3914* 如果檔案在網路共享上而不是用網路路徑拼寫的本機檔案,它在工作階段的本機工作區之外;改為從常規互動式工作階段編輯它

3814 3915 

3916<h3 id="command-blocked-by-the-worktree-isolation-checks">

3917 命令被 worktree 隔離檢查阻止

3918</h3>

3919 

3920Claude 在[在 worktree 中隔離的工作階段](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)中執行了 Bash 或 Monitor 命令,Claude Code 因以下兩個原因之一拒絕了它:

3921 

3922* 命令指向 git 到主簽出。

3923* Claude Code 無法從命令文字驗證命令執行的任何 git 保持在 worktree 內。永遠不命名 git 的命令仍然可能因此原因被拒絕,因為展開變數間接參照(例如 `${!name}`)或執行 Bash 函數替換(例如 `${ command; }`)會產生在執行時本身可能是命令的值。

3924 

3925訊息的中間命名無法驗證的內容:

3926 

3927```text wrap theme={null}

3928This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.

3929```

3930 

3931**該怎麼做:**

3932 

3933* 通常什麼都不做:Claude 讀取訊息並按其最後一句要求的方式重寫命令

3934* 如果您要求的命令持續被拒絕,按字面拼寫標記的值:用其值替換間接參照或替換,並從 worktree 內作為其自己的純命令執行 git

3935* 要有目的地作用於主簽出,在工作階段外的終端中自己執行命令

3936 

3815<h3 id="this-session-has-no-saved-transcript">3937<h3 id="this-session-has-no-saved-transcript">

3816 此工作階段沒有已儲存的文字記錄3938 此工作階段沒有已儲存的文字記錄

3817</h3>3939</h3>


4201 4323 

4202Claude Code 在[保留掃描](/docs/zh-TW/claude-directory#cleaned-up-automatically)中刪除工作階段的備份,預設情況下約在工作階段最後一次儲存後 30 天。如果您在之後恢復工作階段,`/rewind` 仍會列出其檢查點,但還原到其中一個可能會因此錯誤而失敗。如果訊息還說 `N paths were skipped for link safety`,請參閱[Restored the code, but skipped files](#restored-the-code-but-skipped-files) 以了解這些路徑。4324Claude Code 在[保留掃描](/docs/zh-TW/claude-directory#cleaned-up-automatically)中刪除工作階段的備份,預設情況下約在工作階段最後一次儲存後 30 天。如果您在之後恢復工作階段,`/rewind` 仍會列出其檢查點,但還原到其中一個可能會因此錯誤而失敗。如果訊息還說 `N paths were skipped for link safety`,請參閱[Restored the code, but skipped files](#restored-the-code-but-skipped-files) 以了解這些路徑。

4203 4325 

4326當您分支工作階段時,例如使用 [`--fork-session`](/docs/zh-TW/cli-reference#cli-flags) 或 [`/branch`](/docs/zh-TW/sessions#branch-a-session),Claude Code 會將原始工作階段的備份複製到分支中。當 Claude Code 無法複製備份時,例如因為磁碟已滿,該備份在分支中遺失。還原到需要它的檢查點可能會因此錯誤而失敗。

4327 

4204**該怎麼做:**4328**該怎麼做:**

4205 4329 

4206* 以其他方式復原變更:要求 Claude 反轉其編輯,或從版本控制還原檔案。當備份消失時,再次執行 `/rewind` 會以相同方式失敗。4330* 以其他方式復原變更:要求 Claude 反轉其編輯,或從版本控制還原檔案。當備份消失時,再次執行 `/rewind` 會以相同方式失敗。


4458* 如果您管理機器,修復命名的文件使其解析為 JSON 物件,或移除檔案、設定檔或登錄值。空的 `managed-settings.json` 計為 `{}` 且不會阻止啟動。4582* 如果您管理機器,修復命名的文件使其解析為 JSON 物件,或移除檔案、設定檔或登錄值。空的 `managed-settings.json` 計為 `{}` 且不會阻止啟動。

4459* 如果您不管理,請要求您的管理員修復已部署的文件。您自己的設定檔案中沒有任何內容會導致或清除此錯誤。4583* 如果您不管理,請要求您的管理員修復已部署的文件。您自己的設定檔案中沒有任何內容會導致或清除此錯誤。

4460 4584 

4585<h3 id="otelheadershelper-failed">

4586 otelHeadersHelper 失敗

4587</h3>

4588 

4589Claude Code 在互動工作階段中顯示此警告作為終端介面中的通知,每個工作階段一次,當 [`otelHeadersHelper`](/docs/zh-TW/settings-reference#otelheadershelper) 指令碼失敗或列印不符合[指令碼要求](/docs/zh-TW/monitoring-usage#script-requirements)的輸出時。

4590 

4591當指令碼持續失敗時,匯出失敗,您的遙測後端從工作階段接收不到任何內容。

4592 

4593`See /status:` 後面的文字說明失敗的內容,例如指令碼的結束代碼後跟其錯誤輸出:

4594 

4595```text theme={null}

4596otelHeadersHelper 失敗;遙測未被匯出。請參閱 /status:exited 1: token service unreachable

4597```

4598 

4599**該怎麼做:**

4600 

4601* 執行 `/status` 以讀取失敗詳細資訊。

4602* 修復指令碼使其在 30 秒內結束 0 並在 stdout 上列印 JSON 物件的字串標頭值。請參閱[指令碼要求](/docs/zh-TW/monitoring-usage#script-requirements)。

4603* 如果您的組織透過[受管設定](/docs/zh-TW/managed-settings)部署指令碼,要求維護它們的人修復它。

4604 

4605在[非互動模式](/docs/zh-TW/headless)中使用 `-p`,相同的失敗改為在 stderr 上顯示為 `otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error>`。

4606 

4461<h3 id="headershelper-not-run">4607<h3 id="headershelper-not-run">

4462 headersHelper 未執行4608 headersHelper 未執行

4463</h3>4609</h3>


4652 4798 

4653* 配置的 [`--fallback-model`](/docs/zh-TW/cli-reference#cli-flags) 在可用性錯誤後接管該輪次,並在文字記錄中顯示通知4799* 配置的 [`--fallback-model`](/docs/zh-TW/cli-reference#cli-flags) 在可用性錯誤後接管該輪次,並在文字記錄中顯示通知

4654* Amazon Bedrock 或 Google Cloud 的 Agent Platform 啟動檢查發現您的預設模型不可用4800* Amazon Bedrock 或 Google Cloud 的 Agent Platform 啟動檢查發現您的預設模型不可用

4655* [自動模型備用](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 5.1、Fable 5 和 Opus 5 上將工作階段移至標記類別的備用模型(當該類別有備用模型時),並在文字記錄中顯示通知4801* [自動模型備用](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 5.1、Fable 5、Opus 5.5 和 Opus 5 上將工作階段移至標記類別的備用模型(當該類別有備用模型時),並在文字記錄中顯示通知

4656 4802 

4657下面的模型選擇檢查可以捕捉第二和第三種情況;第一種情況顯示為文字記錄通知而非 `/model` 變更。[模型設定](/docs/zh-TW/model-config)說明每個備用何時適用。4803下面的模型選擇檢查可以捕捉第二和第三種情況;第一種情況顯示為文字記錄通知而非 `/model` 變更。[模型設定](/docs/zh-TW/model-config)說明每個備用何時適用。

4658 4804 

fast-mode.md +12 −7

Details

12 12 

13快速模式是 Claude Opus 的高速配置,使模型速度提升最高 2.5 倍,但每個 token 的成本更高。當您需要速度進行互動式工作(如快速迭代或實時調試)時,使用 `/fast` 切換開啟,當成本比延遲更重要時,切換關閉。13快速模式是 Claude Opus 的高速配置,使模型速度提升最高 2.5 倍,但每個 token 的成本更高。當您需要速度進行互動式工作(如快速迭代或實時調試)時,使用 `/fast` 切換開啟,當成本比延遲更重要時,切換關閉。

14 14 

15快速模式不是不同的模型。它使用 Claude Opus 搭配不同的 API 配置,優先考慮速度而非成本效率。您獲得相同的品質和功能,只是回應速度更快。快速模式在 Opus 5 和 Opus 4.8 上受支援。它在 Sonnet、Haiku 或其他模型上不可用。15快速模式不是不同的模型。它使用 Claude Opus 搭配不同的 API 配置,優先考慮速度而非成本效率。您獲得相同的品質和功能,只是回應速度更快。快速模式在 Opus 5.5、Opus 5 和 Opus 4.8 上受支援。它在 Sonnet、Haiku 或其他模型上不可用。

16 16 

17Claude Code 將 Opus 4.7 視為任何其他不支援快速模式的模型:切換至它會關閉快速模式。Opus 4.7 的快速模式已於 2026 年 6 月 25 日棄用,並於 2026 年 7 月 24 日移除。17Opus 4.7 不支援快速模式,因此切換至它會關閉快速模式。Opus 4.7 的快速模式已於 2026 年 6 月 25 日棄用,並於 2026 年 7 月 24 日移除。

18 18 

19需要了解的事項:19需要了解的事項:

20 20 

21* 使用 `/fast` 在 Claude Code CLI 中切換快速模式。VS Code 擴充功能遵循您的 [`fastMode` 設定](#toggle-fast-mode),並在選定的模型支援快速模式時提供**切換快速模式**命令。21* 使用 `/fast` 在 Claude Code CLI 中切換快速模式。[VS Code 擴充功能](/docs/zh-TW/vs-code)在選定的模型支援快速模式時提供**切換快速模式**命令。Claude Code 將該切換儲存到您的 [`fastMode` 設定](#toggle-fast-mode)。

22* 快速模式定價在 Opus 5 和 Opus 4.8 上為 $10/$50 MTok 輸入/輸出。22* 快速模式定價在 Opus 5.5 上為 $8/$40 MTok 輸入/輸出,在 Opus 5 和 Opus 4.8 上為 $10/$50 MTok 輸入/輸出。

23* 適用於訂閱方案(Pro/Max/Team/Enterprise)上的 Claude Code 使用者和 Claude Console。Team 和 Enterprise 組織需要擁有者先啟用它,Console 組織需要先佈建存取權限,兩者均在[需求](#requirements)下說明。23* 適用於訂閱方案(Pro/Max/Team/Enterprise)上的 Claude Code 使用者和 Claude Console。Team 和 Enterprise 組織需要擁有者先啟用它,Console 組織需要先佈建存取權限,兩者均在[需求](#requirements)下說明。

24* 對於訂閱方案(Pro/Max/Team/Enterprise)上的 Claude Code 使用者,快速模式僅透過使用額度提供,不包含在訂閱速率限制中。24* 對於訂閱方案(Pro/Max/Team/Enterprise)上的 Claude Code 使用者,快速模式僅透過使用額度提供,不包含在訂閱速率限制中。

25 25 


29 29 

30在 CLI 中,透過以下任一方式切換快速模式:30在 CLI 中,透過以下任一方式切換快速模式:

31 31 

32* 輸入 `/fast` 並按 Tab 鍵切換開啟或關閉32* 執行 `/fast`,按空格鍵切換開啟或關閉,然後按 Enter 鍵確認

33* 在您的[使用者設定檔案](/docs/zh-TW/settings)中設定 `"fastMode": true`33* 在您的[使用者設定檔案](/docs/zh-TW/settings)中設定 `"fastMode": true`

34 34 

35預設情況下,在互動式工作階段中開啟的快速模式會在工作階段之間保持。您可以配置快速模式在每個工作階段重設。詳見[要求每個工作階段選擇加入](#require-per-session-opt-in)以了解詳情。35預設情況下,在互動式工作階段中開啟的快速模式會在工作階段之間保持。您可以配置快速模式在每個工作階段重設。詳見[要求每個工作階段選擇加入](#require-per-session-opt-in)以了解詳情。


47* 快速模式啟用時,提示旁會出現一個小的 `↯` 圖示47* 快速模式啟用時,提示旁會出現一個小的 `↯` 圖示

48* 隨時再次執行 `/fast` 以檢查快速模式是否開啟或關閉48* 隨時再次執行 `/fast` 以檢查快速模式是否開啟或關閉

49 49 

50Opus 5 是 Claude Code v2.1.219 及更新版本中的快速模式預設值。在 v2.1.219 之前,快速模式在 v2.1.154 至 v2.1.218 版本上預設為 Opus 4.8,在 v2.1.142 至 v2.1.153 版本上預設為 Opus 4.7。50Opus 5.5 是 Claude Code v2.1.280 及更新版本中的快速模式預設值。在 v2.1.280 之前,快速模式在 v2.1.219 版本上預設為 Opus 5,在 v2.1.154 至 v2.1.218 版本上預設為 Opus 4.8,在 v2.1.142 至 v2.1.153 版本上預設為 Opus 4.7。

51 51 

52當您再次使用 `/fast` 關閉快速模式時,您仍保持在 Opus 上。要切換到不同的模型,請使用 `/model`。52當您再次使用 `/fast` 關閉快速模式時,您仍保持在 Opus 上。要切換到不同的模型,請使用 `/model`。

53 53 


80 80 

81| 模型 | 輸入 (MTok) | 輸出 (MTok) |81| 模型 | 輸入 (MTok) | 輸出 (MTok) |

82| -------- | --------- | --------- |82| -------- | --------- | --------- |

83| Opus 5.5 | \$8 | \$40 |

83| Opus 5 | \$10 | \$50 |84| Opus 5 | \$10 | \$50 |

84| Opus 4.8 | \$10 | \$50 |85| Opus 4.8 | \$10 | \$50 |

85 86 


145* **Team 和 Enterprise 的擁有者啟用**:快速模式在預設情況下對 Team 和 Enterprise 組織停用。擁有者必須明確[啟用快速模式](#enable-fast-mode-for-your-organization),使用者才能存取它。146* **Team 和 Enterprise 的擁有者啟用**:快速模式在預設情況下對 Team 和 Enterprise 組織停用。擁有者必須明確[啟用快速模式](#enable-fast-mode-for-your-organization),使用者才能存取它。

146 147 

147<Note>148<Note>

148 兩個組織設定可以阻止使用 `/fast` 開啟快速模式:149 四個組織設定可以阻止使用 `/fast` 開啟快速模式:

149 150 

150 * **快速模式未啟用**:如果尚未為您的組織啟用快速模式,使用 `/fast` 開啟快速模式會顯示「快速模式已被您的組織停用。」151 * **快速模式未啟用**:如果尚未為您的組織啟用快速模式,使用 `/fast` 開啟快速模式會顯示「快速模式已被您的組織停用。」

152 * **快速模式被受管設定關閉**:如果您的組織部署[受管設定](/docs/zh-TW/managed-settings),設定 [`fastMode: false`](/docs/zh-TW/settings-reference#fastmode),使用 `/fast` 開啟快速模式會顯示相同的「快速模式已被您的組織停用」訊息。

153 * **需要每個工作階段的選擇加入**:設定 [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) 的受管設定會在除了互動式終端工作階段以外的所有地方拒絕 `/fast on`,顯示相同的訊息。

151 * **快速模式模型不允許**:如果您組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除快速模式 Opus 模型,開啟它會被拒絕,顯示「不在您組織的允許模型中」。在已在支援快速模式的允許 Opus 模型上執行的工作階段中,`/fast` 改為在您目前的模型上啟用快速模式,而不是切換模型。154 * **快速模式模型不允許**:如果您組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除快速模式 Opus 模型,開啟它會被拒絕,顯示「不在您組織的允許模型中」。在已在支援快速模式的允許 Opus 模型上執行的工作階段中,`/fast` 改為在您目前的模型上啟用快速模式,而不是切換模型。

152</Note>155</Note>

153 156 


204 207 

205這對於在使用者執行多個並行工作階段的組織中控制成本很有用。使用者的快速模式偏好設定仍會被保存,因此移除此設定會復原預設的持續行為。208這對於在使用者執行多個並行工作階段的組織中控制成本很有用。使用者的快速模式偏好設定仍會被保存,因此移除此設定會復原預設的持續行為。

206 209 

210當受管設定設定該金鑰時,`/fast on` 只在互動式終端工作階段中有效。在其他所有地方,包括[非互動模式](/docs/zh-TW/headless)、[VS Code 擴充功能](/docs/zh-TW/vs-code)和[雲端工作階段](#use-fast-mode-in-cloud-sessions),它會被拒絕,顯示您的組織已停用快速模式的訊息。

211 

207<h2 id="handle-rate-limits">212<h2 id="handle-rate-limits">

208 處理速率限制213 處理速率限制

209</h2>214</h2>

Details

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

22 22 

23* **[CLAUDE.md](/docs/zh-TW/memory)** 添加 Claude 在每個會話中看到的持久上下文23* **[CLAUDE.md](/docs/zh-TW/memory)** 添加 Claude 在每個會話中看到的持久上下文

24* **[Output styles](/docs/zh-TW/output-styles)** 為會話中的每個回應設定 Claude 的角色、語調和回應格式

24* **[Skills](/docs/zh-TW/skills)** 添加可重複使用的知識和可調用的工作流程25* **[Skills](/docs/zh-TW/skills)** 添加可重複使用的知識和可調用的工作流程

25* **[Code intelligence](/docs/zh-TW/tools-reference#lsp-tool-behavior)** 將 Claude 連接到語言伺服器以進行符號級導航和即時類型錯誤26* **[Code intelligence](/docs/zh-TW/tools-reference#lsp-tool-behavior)** 將 Claude 連接到語言伺服器以進行符號級導航和即時類型錯誤

26* **[MCP](/docs/zh-TW/mcp)** 將 Claude 連接到外部服務和工具27* **[MCP](/docs/zh-TW/mcp)** 將 Claude 連接到外部服務和工具


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

40 41 

41| 功能 | 它的作用 | 何時使用 | 範例 |42| 功能 | 它的作用 | 何時使用 | 範例 |

42| ----------------------------------------------------------------- | --------------------------------------- | ----------------------------- | ----------------------------------------- |43| ----------------------------------------------------------------- | --------------------------------------- | ------------------------------------------- | ----------------------------------------- |

43| **CLAUDE.md** | 每次對話載入的持久上下文 | 專案約定、「始終執行 X」規則 | 「使用 pnpm,而不是 npm。在提交前運行測試。」 |44| **CLAUDE.md** | 每次對話載入的持久上下文 | 專案約定、「始終執行 X」規則 | 「使用 pnpm,而不是 npm。在提交前運行測試。」 |

45| **[輸出風格](/docs/zh-TW/output-styles)** | 為整個會話設定 Claude 的角色、語調和回應格式的指令 | 您想在每個回應中使用的語音、長度或格式,或 Claude 作為軟體工程師以外的角色工作 | 用於較短回應的內建簡潔風格;一個自訂風格,首先用圖表回答每個問題 |

44| **Skill** | Claude 可以使用的指令、知識和工作流程 | 可重複使用的內容、參考文件、可重複的任務 | `/deploy` 運行您的部署檢查清單;包含端點模式的 API 文件 skill |46| **Skill** | Claude 可以使用的指令、知識和工作流程 | 可重複使用的內容、參考文件、可重複的任務 | `/deploy` 運行您的部署檢查清單;包含端點模式的 API 文件 skill |

45| **Subagent** | 返回摘要結果的隔離執行上下文 | 上下文隔離、並行任務、專門的工作者 | 讀取許多檔案但僅返回關鍵發現的研究任務 |47| **Subagent** | 返回摘要結果的隔離執行上下文 | 上下文隔離、並行任務、專門的工作者 | 讀取許多檔案但僅返回關鍵發現的研究任務 |

46| **[Dynamic workflow](/docs/zh-TW/workflows)** | Claude 編寫的在背景中運行許多 subagents 的指令碼 | 超出少數 subagents 的工作,或您想交叉檢查的發現 | 審計整個程式碼庫,第二組代理驗證每個發現 |48| **[Dynamic workflow](/docs/zh-TW/workflows)** | Claude 編寫的在背景中運行許多 subagents 的指令碼 | 超出少數 subagents 的工作,或您想交叉檢查的發現 | 審計整個程式碼庫,第二組代理驗證每個發現 |


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

60 62 

61| 觸發器 | 添加 |63| 觸發器 | 添加 |

62| :--------------------------- | :---------------------------------------------------------------------------- |64| :----------------------------- | :---------------------------------------------------------------------------- |

63| Claude 兩次出錯的約定或命令 | 將其添加到 [CLAUDE.md](/docs/zh-TW/memory) |65| Claude 兩次出錯的約定或命令 | 將其添加到 [CLAUDE.md](/docs/zh-TW/memory) |

66| 您一直在要求 Claude 更簡潔、解釋更多或以相同格式回答 | 設定 [輸出風格](/docs/zh-TW/output-styles) |

64| 您一直在輸入相同的提示來啟動任務 | 將其保存為使用者可調用的 [skill](/docs/zh-TW/skills) |67| 您一直在輸入相同的提示來啟動任務 | 將其保存為使用者可調用的 [skill](/docs/zh-TW/skills) |

65| 您第三次將相同的劇本或多步驟程序粘貼到聊天中 | 將其捕獲為 [skill](/docs/zh-TW/skills) |68| 您第三次將相同的劇本或多步驟程序粘貼到聊天中 | 將其捕獲為 [skill](/docs/zh-TW/skills) |

66| 您一直在從 Claude 無法看到的瀏覽器選項卡複製資料 | 將該系統連接為 [MCP server](/docs/zh-TW/mcp) |69| 您一直在從 Claude 無法看到的瀏覽器選項卡複製資料 | 將該系統連接為 [MCP server](/docs/zh-TW/mcp) |


112 115 

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

114 117 

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

119 </Tab>

120 

121 <Tab title="CLAUDE.md vs Output style">

122 兩者都給予 Claude 常設指令。CLAUDE.md 攜帶 Claude 應該知道的內容,輸出風格設定 Claude 如何回應。

123 

124 | 方面 | CLAUDE.md | 輸出風格 |

125 | ------- | -------------------- | -------------------------------------------------------------- |

126 | **保持** | 關於您的專案的事實和規則 | 角色、語調和回應格式 |

127 | **切換** | 始終載入 | 一次一個活躍;[隨時切換風格](/docs/zh-TW/output-styles#change-your-output-style) |

128 | **最適合** | 構建命令、約定、「永遠不要執行 X」規則 | 較短的回應、代碼旁邊的解釋、非工程角色 |

129 

130 **如果它對無論您在哪種風格中的專案都是真實的,請將其放在 CLAUDE.md 中**:編碼約定、構建命令、專案結構。

131 

132 **如果它是關於回應本身並且您可能想再次關閉它,請使用輸出風格**:長度、格式、Claude 解釋多少,或不同的角色,例如寫作助手。Claude Code 包括 [內建風格](/docs/zh-TW/output-styles#built-in-output-styles),您可以編寫自己的風格。

133 

134 **它們結合。** 無論您選擇哪種風格,CLAUDE.md 都保持載入。Claude 遵循兩者作為指令,所以都不是強制執行的。對於必須每次都發生的任何事情,使用 [hook](/docs/zh-TW/hooks-guide)。

116 </Tab>135 </Tab>

117 136 

118 <Tab title="CLAUDE.md vs Rules vs Skills">137 <Tab title="CLAUDE.md vs Rules vs Skills">


187 206 

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

189 208 

190* **CLAUDE.md 檔案** 是累加的:所有級別同時對 Claude 的上下文貢獻內容。來自您的工作目錄及以上的檔案在啟動時載入;子目錄在您在其中工作時載入。當指令衝突時,Claude 使用判斷來協調它們,更具體的指令通常優先。請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。209* **CLAUDE.md 檔案** 是累加的:所有級別同時對 Claude 的上下文貢獻內容。來自您的工作目錄及以上的檔案在啟動時載入;子目錄在您在其中工作時載入。當指令衝突時,Claude 使用判斷來協調它們。請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。

191* **Skills 和 subagents** 按名稱覆蓋:當相同名稱存在於多個級別時,一個定義根據優先級獲勝(skills 為受管理 > 使用者 > 專案;subagents 為受管理 > CLI 標誌 > 專案 > 使用者 > plugin)。Plugin skills 是[命名空間](/docs/zh-TW/plugins#add-skills-to-your-plugin)的,以避免衝突。請參閱 [skill 發現](/docs/zh-TW/skills#resolve-skills-that-share-a-name) 和 [subagent 範圍](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。210* **Skills 和 subagents** 按名稱覆蓋:當相同名稱存在於多個級別時,一個定義根據優先級獲勝(skills 為受管理 > 使用者 > 專案;subagents 為受管理 > CLI 標誌 > 專案 > 使用者 > plugin)。Plugin skills 是[命名空間](/docs/zh-TW/plugins#add-skills-to-your-plugin)的,以避免衝突。請參閱 [skill 發現](/docs/zh-TW/skills#resolve-skills-that-share-a-name) 和 [subagent 範圍](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。

192* **MCP 伺服器** 按名稱覆蓋:本地 > 專案 > 使用者。請參閱 [MCP 範圍](/docs/zh-TW/mcp#scope-hierarchy-and-precedence)。211* **MCP 伺服器** 按名稱覆蓋:本地 > 專案 > 使用者。請參閱 [MCP 範圍](/docs/zh-TW/mcp#scope-hierarchy-and-precedence)。

193* **Hooks** 合併:所有註冊的 hooks 為其匹配事件觸發,無論來源如何。請參閱 [hooks](/docs/zh-TW/hooks)。212* **Hooks** 合併:所有註冊的 hooks 為其匹配事件觸發,無論來源如何。請參閱 [hooks](/docs/zh-TW/hooks)。


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

221 240 

222| 功能 | 何時載入 | 什麼載入 | 上下文成本 |241| 功能 | 何時載入 | 什麼載入 | 上下文成本 |

223| --------------------- | ---------- | ------------------------------------------------------------------------------- | ----------------- |242| --------------------- | -------------- | ------------------------------------------------------------------------------- | ----------------- |

224| **CLAUDE.md** | 會話開始 | 完整內容 | 每個請求 |243| **CLAUDE.md** | 會話開始 | 完整內容 | 每個請求 |

244| **Output styles** | 會話開始,以及當您切換風格時 | 活躍風格的完整指令;預設風格無任何內容 | 每個請求 |

225| **Skills** | 會話開始 + 使用時 | 啟動時的描述,使用時的完整內容 | 低(每個請求的描述)\* |245| **Skills** | 會話開始 + 使用時 | 啟動時的描述,使用時的完整內容 | 低(每個請求的描述)\* |

226| **MCP 伺服器** | 會話開始 | 工具名稱;完整架構按需 | 低,直到使用工具 |246| **MCP 伺服器** | 會話開始 | 工具名稱;完整架構按需 | 低,直到使用工具 |

227| **Code intelligence** | 檔案編輯後和按需 | 編輯後的診斷;查詢時的符號位置 | 低;減少其他地方的檔案讀取 |247| **Code intelligence** | 檔案編輯後和按需 | 編輯後的診斷;查詢時的符號位置 | 低;減少其他地方的檔案讀取 |

fullscreen.md +2 −2

Details

234 234 

235執行 `/clear` 以開始新的對話。235執行 `/clear` 以開始新的對話。

236 236 

237若要清除螢幕並保留對話,請按 `Ctrl+L`。較早的訊息會向上捲出視圖,您可以使用 `PgUp` 或滑鼠滾輪向上捲動以再次閱讀它們。在 v2.1.260 之前,`Ctrl+L` 會重新繪製螢幕而不清除它。在 v2.1.238 之前,在兩秒內按兩次會執行 `/clear`。237若顯示看起來亂碼或部分空白,請按 `Ctrl+L` 重新繪製螢幕。重新繪製會保留對話和您的輸入。

238 238 

239當您的終端機將 `Cmd+K` 傳遞給 Claude Code 時,它的作用與 `Ctrl+L` 相同。iTerm2 和 Terminal.app 會自行處理 `Cmd+K`,Claude Code 會重新繪製對話而不是清除它,因此請在這些終端機上按 `Ctrl+L`。239當您的終端機將 `Cmd+K` 傳遞給 Claude Code 時,它的作用與 `Ctrl+L` 相同。iTerm2 和 Terminal.app 會自行處理 `Cmd+K` 並清除自己的螢幕,Claude Code 會偵測到已清除的螢幕並重新繪製對話。在 v2.1.280 之前,從 v2.1.260 開始,按 `Ctrl+L` 或 `Cmd+K`(到達 Claude Code 時)會在全螢幕渲染中清除螢幕。在 v2.1.238 之前,在兩秒內按兩次 `Ctrl+L` 會執行 `/clear`。

240 240 

241<h2 id="use-with-tmux">241<h2 id="use-with-tmux">

242 與 tmux 搭配使用242 與 tmux 搭配使用

Details

300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

301 prompt: "Generate a summary of yesterday's commits and open issues"301 prompt: "Generate a summary of yesterday's commits and open issues"

302 claude_args: |302 claude_args: |

303 --model claude-opus-4-8303 --model claude-opus-5-5

304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"

305```305```

306 306 

glossary.md +12 −0

Details

208 208 

209了解更多:[Use extended thinking](/docs/zh-TW/model-config#extended-thinking)209了解更多:[Use extended thinking](/docs/zh-TW/model-config#extended-thinking)

210 210 

211<h2 id="f">

212 F

213</h2>

214 

215<h3 id="frontmatter">

216 Frontmatter

217</h3>

218 

219位於 Markdown 檔案最頂端的 YAML 設定區塊,介於開頭的 `---` 行和結尾的 `---` 行之間。Skills、subagents、output styles 和 rules 各自從 frontmatter 讀取其設定,例如 skill 的 `description` 或 subagent 的 `tools`,並將結尾 `---` 之後的所有內容視為指示。開頭的 `---` 必須是檔案的第一行。每種檔案類型都接受其自己的一組欄位。

220 

221深入瞭解:[Skill frontmatter](/docs/zh-TW/skills#frontmatter-reference)、[Subagent frontmatter](/docs/zh-TW/sub-agents#supported-frontmatter-fields)、[Output style frontmatter](/docs/zh-TW/output-styles#frontmatter)、[Rule frontmatter](/docs/zh-TW/memory#rules-frontmatter-reference)

222 

211<h2 id="h">223<h2 id="h">

212 H224 H

213</h2>225</h2>

Details

238 238 

239將這些環境變數設定為特定 Google Cloud 的 Agent Platform 模型 ID。239將這些環境變數設定為特定 Google Cloud 的 Agent Platform 模型 ID。

240 240 

241不使用 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的情況下,Google Cloud 的 Agent Platform 上的 `opus` 別名會解析為 Opus 5,不使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 的情況下,`sonnet` 別名會解析為 Sonnet 4.5。此範例將每個別名釘選到特定版本:241不使用 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的情況下,Google Cloud 的 Agent Platform 上的 `opus` 別名會解析為 Opus 5.5,不使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 的情況下,`sonnet` 別名會解析為 Sonnet 4.5。此範例將每個別名釘選到特定版本:

242 242 

243```bash theme={null}243```bash theme={null}

244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'


252 252 

253| 模型類型 | 預設值 |253| 模型類型 | 預設值 |

254| :------ | :--------------------------- |254| :------ | :--------------------------- |

255| 主要模型 | `claude-opus-5` |255| 主要模型 | `claude-opus-5-5` |

256| 小型/快速模型 | `claude-sonnet-4-5@20250929` |256| 小型/快速模型 | `claude-sonnet-4-5@20250929` |

257 257 

258背景工作(例如工作階段標題產生)使用小型/快速模型,通常是 Haiku 級模型。在 Google Cloud 的 Agent Platform 上,Claude Code 針對背景工作使用預設 Sonnet 模型,因為 Haiku 可能未在每個專案或區域中啟用。兩個選項會變更哪個模型執行它們:258背景工作(例如工作階段標題產生)使用小型/快速模型,通常是 Haiku 級模型。在 Google Cloud 的 Agent Platform 上,Claude Code 針對背景工作使用預設 Sonnet 模型,因為 Haiku 可能未在每個專案或區域中啟用。兩個選項會變更哪個模型執行它們:


264 Opus 模型的每權杖價格高於 Sonnet 模型,因此不釘選主要模型的部署在更新至 v2.1.207 或更新版本後會以 Opus 費率計費。若要將 Sonnet 4.5 保持為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。引導預設值為 `ANTHROPIC_DEFAULT_SONNET_MODEL` 且未設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保持為預設值。264 Opus 模型的每權杖價格高於 Sonnet 模型,因此不釘選主要模型的部署在更新至 v2.1.207 或更新版本後會以 Opus 費率計費。若要將 Sonnet 4.5 保持為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。引導預設值為 `ANTHROPIC_DEFAULT_SONNET_MODEL` 且未設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保持為預設值。

265</Warning>265</Warning>

266 266 

267在 v2.1.207 至 v2.1.218 上,Google Cloud 的 Agent Platform 上的主要模型預設為 Opus 4.8,`opus` 別名解析為 Opus 4.8。在 v2.1.207 之前,主要模型預設為 Sonnet 4.5,`opus` 別名解析為 Opus 4.6,背景工作一律使用主要模型。267在 v2.1.280 之前,Google Cloud 的 Agent Platform 上的主要模型預設為 Opus 5,`opus` 別名從 v2.1.219 解析為 Opus 5。在 v2.1.207 至 v2.1.218 上,Google Cloud 的 Agent Platform 上的主要模型預設為 Opus 4.8,`opus` 別名解析為 Opus 4.8。在 v2.1.207 之前,主要模型預設為 Sonnet 4.5,`opus` 別名解析為 Opus 4.6,背景工作一律使用主要模型。

268 268 

269若要進一步自訂模型:269若要進一步自訂模型:

270 270 

headless.md +2 −2

Details

109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

110```110```

111 111 

112使用 `--output-format json` 時,回應承載包括 `total_cost_usd` 和按模型的成本明細,因此指令碼呼叫者可以追蹤每次調用的支出,而無需查詢[使用儀表板](/docs/zh-TW/costs)。這兩個數字都是[用戶端估計](/docs/zh-TW/agent-sdk/cost-tracking),可能與您的實際帳單不同。112使用 `--output-format json` 時,回應承載包括 `total_cost_usd` 和按模型的成本明細,因此指令碼呼叫者可以追蹤支出而無需查詢[使用儀表板](/docs/zh-TW/costs)。當您使用 `--continue` 或 `--resume` 繼續較早的對話時,執行會報告對話的整體總計,[包括較早執行的支出](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。這兩個數字都是[用戶端估計](/docs/zh-TW/agent-sdk/cost-tracking),可能與您的實際帳單不同。

113 113 

114<Note>114<Note>

115 管道 stdin 的上限為 10MB。如果超過上限,Claude Code 會以清晰的錯誤訊息退出並返回非零狀態。若要處理更大的輸入,請將內容寫入檔案,並在提示中參考檔案路徑,而不是透過管道傳輸。115 管道 stdin 的上限為 10MB。如果超過上限,Claude Code 會以清晰的錯誤訊息退出並返回非零狀態。若要處理更大的輸入,請將內容寫入檔案,並在提示中參考檔案路徑,而不是透過管道傳輸。


212* **預設情況下**:子代理的 `tool_use` 和 `tool_result` 區塊。212* **預設情況下**:子代理的 `tool_use` 和 `tool_result` 區塊。

213* **使用 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 或 [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-TW/env-vars)**:子代理的文字和思考區塊,因此您可以重建每個子代理的文字記錄。這需要 Claude Code v2.1.211 或更新版本。213* **使用 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 或 [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-TW/env-vars)**:子代理的文字和思考區塊,因此您可以重建每個子代理的文字記錄。這需要 Claude Code v2.1.211 或更新版本。

214 214 

215當您啟用任一選項時,Claude Code 從[每個巢狀深度的子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)轉發訊息:當子代理產生自己的子代理時,巢狀子代理的訊息在 `parent_tool_use_id` 中帶有產生它的 Agent 工具呼叫的 ID,因此您可以透過追蹤這些 ID 來重建完整的巢狀樹。在 v2.1.219 之前,來自巢狀子代理的訊息不會出現在串流中。215當您啟用任一選項時,Claude Code 從[每個巢狀深度的子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)轉發訊息,無論每個子代理是使用 Agent 工具產生還是作為[分叉的 skill](/docs/zh-TW/skills#run-skills-in-a-subagent)啟動。分叉的 skill 產生的子代理的訊息,以及在子代理或另一個分叉的 skill 內啟動的分叉的 skill,需要 Claude Code v2.1.275 或更新版本。在 `parent_tool_use_id` 中,巢狀子代理的訊息帶有啟動它的 Agent 或 Skill 工具呼叫的 ID,因此您可以透過追蹤這些 ID 來重建完整的巢狀樹。在 v2.1.219 之前,來自巢狀子代理的訊息不會出現在串流中。

216 216 

217[在子代理中執行](/docs/zh-TW/skills#run-skills-in-a-subagent)的 Skills 在串流中以相同方式出現:分叉的 skill 的第一條訊息是 `user` 訊息,帶有驅動執行的 skill 內容。如果您啟用任一選項,串流也會帶有分叉的 skill 的文字和思考區塊。在 v2.1.265 之前,只有分叉的 skill 的 `tool_use` 和 `tool_result` 區塊出現在串流中。217[在子代理中執行](/docs/zh-TW/skills#run-skills-in-a-subagent)的 Skills 在串流中以相同方式出現:分叉的 skill 的第一條訊息是 `user` 訊息,帶有驅動執行的 skill 內容。如果您啟用任一選項,串流也會帶有分叉的 skill 的文字和思考區塊。在 v2.1.265 之前,只有分叉的 skill 的 `tool_use` 和 `tool_result` 區塊出現在串流中。

218 218 

hooks.md +351 −346

Details

268| [Skill](/docs/zh-TW/skills) frontmatter | 叫用 skill 後的工作階段其餘部分。請參閱 [Skills 和代理中的 Hooks](#hooks-in-skills-and-agents) | 是,在 skill 檔案中定義 |268| [Skill](/docs/zh-TW/skills) frontmatter | 叫用 skill 後的工作階段其餘部分。請參閱 [Skills 和代理中的 Hooks](#hooks-in-skills-and-agents) | 是,在 skill 檔案中定義 |

269| [Subagent](/docs/zh-TW/sub-agents) frontmatter | 該 subagent 執行時 | 是,在 subagent 檔案中定義 |269| [Subagent](/docs/zh-TW/sub-agents) frontmatter | 該 subagent 執行時 | 是,在 subagent 檔案中定義 |

270 270 

271[Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 上的雲端工作階段不會讀取您的本機 `~/.claude/settings.json`;那裡的 hooks 來自儲存庫和您組織的伺服器管理設定。在 [自託管環境](/docs/zh-TW/self-hosted-environments-configuration#permissions-and-tool-approval) 中,Claude Code 也執行操作員從執行器主機的 `~/.claude/` 中植入的 hooks,並在該檔案位於 [Claude Code 應用的受管理來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources) 中時執行執行器映像的受管理設定檔中的 hooks,預設情況下僅當伺服器管理設定或 MDM 傳遞的 Claude Code 原則都不提供受管理層級時。請參閱 [您的設定中哪些內容會轉移到雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 以了解哪些檔案到達雲端工作階段。271[Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 上的雲端工作階段不會讀取您的本機 `~/.claude/settings.json`;那裡的 hooks 來自儲存庫的 `.claude/settings.json`(在具有一個儲存庫的工作階段中)、從您的 claude.ai 帳戶 [同步的外掛程式](/docs/zh-TW/plugins-reference#synced-plugins),以及您組織的伺服器管理設定。在 [自託管環境](/docs/zh-TW/self-hosted-environments-configuration#permissions-and-tool-approval) 中,Claude Code 也執行操作員從執行器主機的 `~/.claude/` 中植入的 hooks,並在該檔案位於 [Claude Code 應用的受管理來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources) 中時執行執行器映像的受管理設定檔中的 hooks,預設情況下僅當伺服器管理設定或 MDM 傳遞的 Claude Code 原則都不提供受管理層級時。請參閱 [您的設定中哪些內容會轉移到雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 以了解哪些檔案到達雲端工作階段。

272 272 

273有關設定檔解析的詳細資訊,請參閱 [settings](/docs/zh-TW/settings)。273有關設定檔解析的詳細資訊,請參閱 [settings](/docs/zh-TW/settings)。

274 274 


1181 Hook 事件1181 Hook 事件

1182</h2>1182</h2>

1183 1183 

1184每個事件對應於 Claude Code 生命週期中的一個點,hooks 可以在該點執行。下面的章節按照生命週期排序:從工作階段設定到代理迴圈再到工作階段結束。每個章節描述事件何時觸發、支援的匹配器、接收的 JSON 輸入,以及如何透過輸出控制行為。1184每個事件對應於 Claude Code 生命週期中的一個點,hooks 可以在該點執行。下面的章節按照生命週期的順序排列:從工作階段設定到代理迴圈再到工作階段結束。每個章節描述事件何時觸發、它支援的匹配器、它接收的 JSON 輸入,以及如何透過輸出控制行為。

1185 1185 

1186<h3 id="sessionstart">1186<h3 id="sessionstart">

1187 SessionStart1187 SessionStart


1189 1189 

1190在 Claude Code 啟動新工作階段或恢復現有工作階段時執行。適用於載入開發環境背景資訊,例如現有問題或程式碼庫的最近變更,或設定環境變數。對於不需要指令碼的靜態背景資訊,請改用 [CLAUDE.md](/docs/zh-TW/memory)。1190在 Claude Code 啟動新工作階段或恢復現有工作階段時執行。適用於載入開發環境背景資訊,例如現有問題或程式碼庫的最近變更,或設定環境變數。對於不需要指令碼的靜態背景資訊,請改用 [CLAUDE.md](/docs/zh-TW/memory)。

1191 1191 

1192SessionStart 在每個工作階段執行,因此請保持這些 hooks 快速。僅支援 `type: "command"` 和 `type: "mcp_tool"` hooks。請參閱 [MCP tool hook 欄位](#mcp-tool-hook-fields),了解 `mcp_tool` hooks 何時執行。1192SessionStart 在每個工作階段上執行,因此請保持這些 hooks 快速。僅支援 `type: "command"` 和 `type: "mcp_tool"` hooks。請參閱 [MCP tool hook 欄位](#mcp-tool-hook-fields),了解 `mcp_tool` hooks 何時執行。

1193 1193 

1194匹配器值對應於工作階段的啟動方式:1194匹配器值對應於工作階段的啟動方式:

1195 1195 


1205 1205 

1206當您啟動互動式工作階段、在啟動時使用 `--continue` 或 `--resume` 恢復對話,或執行 `/clear` 時,SessionStart hooks 在背景執行。您可以立即輸入,恢復的對話會立即出現,無需等待 hooks。Claude 的第一個回應仍會等待 hooks 完成,因此它們的背景資訊會到達 Claude。1206當您啟動互動式工作階段、在啟動時使用 `--continue` 或 `--resume` 恢復對話,或執行 `/clear` 時,SessionStart hooks 在背景執行。您可以立即輸入,恢復的對話會立即出現,無需等待 hooks。Claude 的第一個回應仍會等待 hooks 完成,因此它們的背景資訊會到達 Claude。

1207 1207 

1208當您在工作階段內使用 `/resume` 切換對話時,切換會等待 hooks 完成。如果您在背景 hooks 仍在執行時執行 `/clear` 或切換到另一個對話,它們返回的任何內容都不會套用到工作階段。1208當您在工作階段內使用 `/resume` 切換對話時,切換會等待 hooks 完成。如果您在背景 hooks 仍在執行時執行 `/clear` 或切換到另一個對話,它們傳回的任何內容都不會套用到工作階段。

1209 1209 

1210相同的等待也適用於啟動,包括恢復的工作階段:您在 SessionStart hooks 仍在執行時發送的提示不會到達 Claude,直到它們完成。1210在啟動時也適用相同的等待,包括恢復的工作階段:您在 SessionStart hooks 仍在執行時傳送的提示不會到達 Claude,直到它們完成。

1211 1211 

1212在任一等待期間,按 `Esc` 將提示返回到輸入中而不發送。Hooks 會繼續執行。1212在任一等待期間,按 `Esc` 將提示取回輸入框而不傳送。Hooks 會繼續執行。

1213 1213 

1214<h4 id="sessionstart-input">1214<h4 id="sessionstart-input">

1215 SessionStart 輸入1215 SessionStart 輸入


1220| 欄位 | 描述 |1220| 欄位 | 描述 |

1221| :-------------- | :---------------------------------------------------------------------------------------------------------------- |1221| :-------------- | :---------------------------------------------------------------------------------------------------------------- |

1222| `source` | 工作階段如何啟動:新工作階段為 `"startup"`、恢復的工作階段為 `"resume"`、`/clear` 後為 `"clear"`、壓縮後為 `"compact"`,或從現有工作階段分支的新工作階段為 `"fork"` |1222| `source` | 工作階段如何啟動:新工作階段為 `"startup"`、恢復的工作階段為 `"resume"`、`/clear` 後為 `"clear"`、壓縮後為 `"compact"`,或從現有工作階段分支的新工作階段為 `"fork"` |

1223| `model` | 作用中的模型識別碼。例如在 `/clear` 後或透過對話恢復恢復工作階段時可能會省略,因此在讀取前檢查欄位 |1223| `model` | 作用中的模型識別碼。例如在 `/clear` 後或透過對話復原恢復工作階段時,可能會省略,因此在讀取前請檢查欄位 |

1224| `agent_type` | 代理名稱,當您使用 `claude --agent <name>` 啟動 Claude Code 時出現 |1224| `agent_type` | 代理名稱,當您使用 `claude --agent <name>` 啟動 Claude Code 時出現 |

1225| `session_title` | 目前工作階段標題(如果已設定),例如透過 `--name` 或 `/rename`。發出 `sessionTitle` 的 hook 可以先檢查 `session_title` 以避免覆寫使用者明確設定的標題 |1225| `session_title` | 目前的工作階段標題(如果已設定),例如透過 `--name` 或 `/rename`。發出 `sessionTitle` 的 hook 可以先檢查 `session_title` 以避免覆寫使用者明確設定的標題 |

1226 1226 

1227當 `source` 為 `"resume"` 或 `"fork"` 且文字記錄包含至少一個來自 Claude 的回應時,SessionStart hooks 也會接收下面的四個欄位。您的 hook 可以使用它們在第一個請求之前報告恢復陳舊對話的成本,例如在 [`systemMessage`](#json-output) 中。這些欄位需要 Claude Code v2.1.251 或更新版本。1227當 `source` 為 `"resume"` 或 `"fork"` 且文字記錄包含至少一個來自 Claude 的回應時,SessionStart hooks 也會接收下面的四個欄位。您的 hook 可以使用它們在第一個請求之前報告恢復陳舊對話的成本,例如在 [`systemMessage`](#json-output) 中。這些欄位需要 Claude Code v2.1.251 或更新版本。

1228 1228 

1229| 欄位 | 描述 |1229| 欄位 | 描述 |

1230| :---------------------------- | :----------------------------------------------------------------------------------------------- |1230| :---------------------------- | :----------------------------------------------------------------------------------------------- |

1231| `seconds_since_last_response` | 自恢復文字記錄中最後一個回應以來的掛鐘秒數 |1231| `seconds_since_last_response` | 自恢復文字記錄中最後一個回應以來的掛鐘秒數 |

1232| `context_tokens` | 恢復工作階段的第一個請求作為其提示重新發送的令牌 |1232| `context_tokens` | 恢復工作階段的第一個請求作為其提示重新傳送的權杖 |

1233| `prompt_cache_likely_expired` | 當最後一個回應早於工作階段的 [prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) 或更新的壓縮替換了快取的對話時為 `true` |1233| `prompt_cache_likely_expired` | 當最後一個回應早於工作階段的 [prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) 或更新的壓縮替換了快取的對話時為 `true` |

1234| `estimated_cache_write_usd` | 將 `context_tokens` 寫入工作階段模型上的 prompt cache 的估計成本(美元),不包括回應 |1234| `estimated_cache_write_usd` | 在工作階段的模型上將 `context_tokens` 寫入 prompt cache 的估計成本(美元),不包括回應 |

1235 1235 

1236此範例顯示在最後一個回應後 90 分鐘恢復的工作階段的輸入:1236此範例顯示在最後一個回應後 90 分鐘恢復的工作階段的輸入:

1237 1237 


1254 SessionStart 決策控制1254 SessionStart 決策控制

1255</h4>1255</h4>

1256 1256 

1257Claude Code 將其 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您還可以返回這些事件特定欄位:1257Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您還可以傳回這些事件特定的欄位:

1258 1258 

1259| 欄位 | 描述 |1259| 欄位 | 描述 |

1260| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |1260| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |

1261| `additionalContext` | 在對話開始時、第一個提示之前新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude),了解文字如何傳遞以及要放入其中的內容 |1261| `additionalContext` | 在對話開始時、第一個提示之前新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude),了解文字如何傳遞以及要放入其中的內容 |

1262| `initialUserMessage` | 用作工作階段第一個使用者訊息的字串。適用於 [非互動模式](/docs/zh-TW/headless),搭配 `-p` 旗標,即使未提供提示,它也會成為第一個回合。如果提供了提示,它會作為下一個回合跟隨。與附加到現有回合的 `additionalContext` 不同,這會建立回合 |1262| `initialUserMessage` | 用作工作階段第一個使用者訊息的字串。適用於 [非互動模式](/docs/zh-TW/headless),搭配 `-p` 旗標,即使未提供提示,它也會成為第一個回合。如果提供了提示,它會作為下一個回合跟隨。與 `additionalContext` 不同(它附加到現有回合),這會建立回合 |

1263| `sessionTitle` | 設定工作階段標題,效果與 `/rename` 相同。用於根據啟動資料夾、git 分支或 worktree 名稱自動命名工作階段。當 `source` 為 `"startup"`、`"resume"` 或 `"fork"` 時適用;在 `"clear"` 和 `"compact"` 上忽略 |1263| `sessionTitle` | 設定工作階段標題,效果與 `/rename` 相同。用於從啟動資料夾、git 分支或 worktree 名稱自動命名工作階段。當 `source` 為 `"startup"`、`"resume"` 或 `"fork"` 時適用;在 `"clear"` 和 `"compact"` 上忽略 |

1264| `watchPaths` | 絕對路徑陣列,用於在此工作階段期間監視 [FileChanged](#filechanged) 事件 |1264| `watchPaths` | 絕對路徑陣列,用於在此工作階段期間監視 [FileChanged](#filechanged) 事件 |

1265| `reloadSkills` | 布林值。當為 `true` 時,Claude Code 在 SessionStart hooks 完成後重新掃描 [skill](/docs/zh-TW/skills) 和命令目錄,因此 hook 安裝的 skills 在同一工作階段中可用,從第一個提示開始 |1265| `reloadSkills` | 布林值。當為 `true` 時,Claude Code 在 SessionStart hooks 完成後重新掃描 [skill](/docs/zh-TW/skills) 和命令目錄,因此 hook 安裝的 skills 在同一工作階段中可用,從第一個提示開始 |

1266 1266 


1274}1274}

1275```1275```

1276 1276 

1277由於此事件的純文字 stdout 已到達 Claude,只載入背景資訊的 hook 可以直接列印到 stdout,而無需建立 JSON。當您需要將背景資訊與其他欄位(例如 `sessionTitle`)結合時,請使用 JSON 形式。1277由於此事件的純 stdout 已到達 Claude,只載入背景資訊的 hook 可以直接列印到 stdout,而無需建立 JSON。當您需要將背景資訊與其他欄位(例如 `sessionTitle`)結合時,請使用 JSON 形式。

1278 1278 

1279當 SessionStart hook 安裝或更新 skills 時使用 `reloadSkills`。Skill 探索通常在 SessionStart hooks 完成之前執行,因此 hook 寫入 `~/.claude/skills/` 或 `.claude/skills/` 的檔案否則只會在下一個工作階段中出現。此範例同步共享 skills 儲存庫並請求重新掃描:1279當 SessionStart hook 安裝或更新 skills 時,使用 `reloadSkills`。Skill 探索通常在 SessionStart hooks 完成之前執行,因此 hook 寫入 `~/.claude/skills/` 或 `.claude/skills/` 的檔案否則只會在下一個工作階段中出現。此範例同步共享 skills 儲存庫並要求重新掃描:

1280 1280 

1281```bash theme={null}1281```bash theme={null}

1282#!/bin/bash1282#!/bin/bash


1287echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1287echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1288```1288```

1289 1289 

1290儲存庫 URL 是佔位符;將其替換為您自己的 skills 儲存庫。使用佔位符時,複製會失敗並列印 `fatal:` 訊息到 stderr。來自以 0 退出的 SessionStart hook 的 stderr 僅供參考,因此 `reloadSkills` 請求仍然適用。1290儲存庫 URL 是佔位符;請將其替換為您自己的 skills 儲存庫。使用佔位符時,複製會失敗並列印 `fatal:` 訊息到 stderr。來自以 0 退出的 SessionStart hook 的 stderr 僅供參考,因此 `reloadSkills` 請求仍然適用。

1291 1291 

1292<h4 id="persist-environment-variables">1292<h4 id="persist-environment-variables">

1293 保留環境變數1293 保留環境變數

1294</h4>1294</h4>

1295 1295 

1296SessionStart hooks 可以存取 `CLAUDE_ENV_FILE` 環境變數,該變數提供一個檔案路徑,您可以在其中保留後續 Bash 命令的環境變數。1296SessionStart hooks 可以存取 `CLAUDE_ENV_FILE` 環境變數,它提供一個檔案路徑,您可以在其中保留後續 Bash 命令的環境變數。

1297 1297 

1298若要設定個別環境變數,請將 `export` 陳述式寫入 `CLAUDE_ENV_FILE`。使用附加 (`>>`) 以保留由其他 hooks 設定的變數:1298若要設定個別環境變數,請將 `export` 陳述式寫入 `CLAUDE_ENV_FILE`。使用附加 (`>>`) 來保留由其他 hooks 設定的變數:

1299 1299 

1300```bash theme={null}1300```bash theme={null}

1301#!/bin/bash1301#!/bin/bash


1309exit 01309exit 0

1310```1310```

1311 1311 

1312若要捕獲設定命令中的所有環境變更,請比較之前和之後的匯出變數:1312若要擷取設定命令的所有環境變更,請比較之前和之後的匯出變數:

1313 1313 

1314```bash theme={null}1314```bash theme={null}

1315#!/bin/bash1315#!/bin/bash


1336 Setup1336 Setup

1337</h3>1337</h3>

1338 1338 

1339僅當您使用 `--init-only` 啟動 Claude Code,或在 [非互動模式](/docs/zh-TW/headless) 中使用 `--init` 或 `--maintenance` 搭配 `-p` 旗標時觸發。在正常啟動時不觸發。用於一次性相依性安裝或您從 CI 或指令碼明確觸發的排程清理,與正常工作階段啟動分開。對於每個工作階段的初始化,請改用 [SessionStart](#sessionstart)。1339僅當您使用 `--init-only` 啟動 Claude Code,或在 [非互動模式](/docs/zh-TW/headless) 中使用 `--init` 或 `--maintenance` 搭配 `-p` 旗標時觸發。它不會在正常啟動時觸發。用於一次性相依性安裝或您從 CI 或指令碼明確觸發的排程清理,與正常工作階段啟動分開。對於每個工作階段的初始化,請改用 [SessionStart](#sessionstart)。

1340 1340 

1341匹配器值對應於觸發 hook 的 CLI 旗標:1341匹配器值對應於觸發 hook 的 CLI 旗標:

1342 1342 


1345| `init` | `claude --init-only` 或 `claude -p --init` |1345| `init` | `claude --init-only` 或 `claude -p --init` |

1346| `maintenance` | `claude -p --maintenance` |1346| `maintenance` | `claude -p --maintenance` |

1347 1347 

1348當您執行 `claude --init-only` 時,Claude Code 執行 Setup hooks 和 `startup` 匹配器的 `SessionStart` hooks,然後退出而不啟動對話。1348當您執行 `claude --init-only` 時,Claude Code 執行 Setup hooks 和 `SessionStart` hooks(使用 `startup` 匹配器),然後退出而不啟動對話。

1349 1349 

1350當您使用 `-p` 啟動或繼續對話時,您還需要提供提示,作為引數或透過 stdin 管道傳輸。當 `SessionStart` hook 提供 [`initialUserMessage`](#sessionstart-decision-control) 或當您使用 [延遲工具呼叫](#defer-a-tool-call-for-later) 恢復工作階段時,您可以跳過提示。1350當您使用 `-p` 啟動或繼續對話時,您還需要提供提示,作為引數或透過 stdin 管道傳輸。當 `SessionStart` hook 提供 [`initialUserMessage`](#sessionstart-decision-control) 或當您使用 [延遲工具呼叫](#defer-a-tool-call-for-later) 恢復工作階段時,您可以跳過提示。

1351 1351 

1352成功時,`--init-only` 不會列印任何內容到終端。若要確認 hooks 已執行,請使用 `claude --debug-file <path> --init-only` 啟動,將 `<path>` 替換為日誌檔案位置,並檢查日誌中的 Setup 和 SessionStart hook 項目。1352成功時,`--init-only` 不會列印任何內容到終端。若要確認 hooks 已執行,請使用 `claude --debug-file <path> --init-only` 啟動,將 `<path>` 替換為日誌檔案位置,並檢查日誌中的 Setup 和 SessionStart hook 項目。

1353 1353 

1354由於 Setup 不會在每次啟動時觸發,需要安裝相依性的外掛無法僅依賴 Setup。實用的模式是在首次使用時檢查相依性,如果缺少則安裝,例如測試 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在則執行 `npm install`。請參閱 [持久資料目錄](/docs/zh-TW/plugins-reference#persistent-data-directory),了解儲存已安裝相依性的位置。如果您透過市場發佈外掛,您可能不需要此模式:Claude Code [在快取外掛時自動安裝符合條件的 Node.js 套件相依性](/docs/zh-TW/plugins-reference#node-js-package-dependencies)。1354由於 Setup 不會在每次啟動時觸發,需要安裝相依性的外掛無法僅依賴 Setup。實用的模式是在首次使用時檢查相依性,如果缺少則安裝,例如測試 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在則執行 `npm install`。請參閱 [持久資料目錄](/docs/zh-TW/plugins-reference#persistent-data-directory),了解在何處儲存已安裝的相依性。如果您透過市場發佈外掛,您可能不需要此模式:Claude Code [在快取外掛時自動安裝符合條件的 Node.js 套件相依性](/docs/zh-TW/plugins-reference#node-js-package-dependencies)。

1355 1355 

1356<h4 id="setup-input">1356<h4 id="setup-input">

1357 Setup 輸入1357 Setup 輸入

1358</h4>1358</h4>

1359 1359 

1360除了 [常見輸入欄位](#common-input-fields) 外,Setup hooks 還會接收設定為 `"init"` 或 `"maintenance"` 的 `trigger` 欄位:1360除了 [常見輸入欄位](#common-input-fields) 外,Setup hooks 接收設定為 `"init"` 或 `"maintenance"` 的 `trigger` 欄位:

1361 1361 

1362```json theme={null}1362```json theme={null}

1363{1363{


1381 InstructionsLoaded1381 InstructionsLoaded

1382</h3>1382</h3>

1383 1383 

1384在載入 `CLAUDE.md` 或 `.claude/rules/*.md` 檔案到背景資訊時觸發。此事件在工作階段啟動時對於急切載入的檔案觸發,稍後在檔案被延遲載入時再次觸發,例如當 Claude 存取包含巢狀 `CLAUDE.md` 的子目錄或當具有 `paths:` frontmatter 的條件規則匹配時。Hook 不支援阻止或決策控制。它以非同步方式執行以用於可觀測性目的。1384在載入 `CLAUDE.md` 或 `.claude/rules/*.md` 檔案到背景資訊時觸發。此事件在工作階段啟動時對於急切載入的檔案觸發,稍後在檔案被延遲載入時再次觸發,例如當 Claude 存取包含巢狀 `CLAUDE.md` 的子目錄或當具有 `paths:` frontmatter 的條件規則匹配時。Hook 不支援阻止或決策控制。它以非同步方式執行,用於可觀測性目的。

1385 1385 

1386此事件在 Claude [直接透過 **Project instructions** 設定讀取 `AGENTS.md`](/docs/zh-TW/memory#agents-md) 時不觸發。當 `CLAUDE.md` 匯入您的 `AGENTS.md` 時它會觸發,其中 `load_reason` 設定為 `include`(如同任何其他匯入的檔案),以及當 `CLAUDE.md` 是它的符號連結時,作為正常 `CLAUDE.md` 載入。1386當 Claude [直接透過 **Project instructions** 設定讀取 `AGENTS.md`](/docs/zh-TW/memory#agents-md) 時,此事件不會觸發。當 `CLAUDE.md` 匯入您的 `AGENTS.md` 時會觸發,`load_reason` 設定為 `include`(如同任何其他匯入的檔案),以及當 `CLAUDE.md` 是它的符號連結時,作為正常的 `CLAUDE.md` 載入。

1387 1387 

1388匹配器針對 `load_reason` 執行。例如,使用 `"matcher": "session_start"` 僅對工作階段啟動時載入的檔案觸發,或使用 `"matcher": "path_glob_match|nested_traversal"` 僅對延遲載入觸發。1388匹配器針對 `load_reason` 執行。例如,使用 `"matcher": "session_start"` 僅對在工作階段啟動時載入的檔案觸發,或 `"matcher": "path_glob_match|nested_traversal"` 僅對延遲載入觸發。

1389 1389 

1390<h4 id="instructionsloaded-input">1390<h4 id="instructionsloaded-input">

1391 InstructionsLoaded 輸入1391 InstructionsLoaded 輸入

1392</h4>1392</h4>

1393 1393 

1394除了 [常見輸入欄位](#common-input-fields) 外,InstructionsLoaded hooks 還會接收這些欄位:1394除了 [常見輸入欄位](#common-input-fields) 外,InstructionsLoaded hooks 接收這些欄位:

1395 1395 

1396| 欄位 | 描述 |1396| 欄位 | 描述 |

1397| :------------------ | :-------------------------------------------------------------------------------------------------------------------------- |1397| :------------------ | :--------------------------------------------------------------------------------------------------------------------------- |

1398| `file_path` | 已載入的指令檔案的絕對路徑 |1398| `file_path` | 已載入的指示檔案的絕對路徑 |

1399| `memory_type` | 檔案的範圍:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |1399| `memory_type` | 檔案的範圍:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |

1400| `load_reason` | 檔案載入的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在壓縮事件後重新載入指令檔案時觸發 |1400| `load_reason` | 檔案被載入的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在壓縮事件後重新載入指示檔案時觸發 |

1401| `globs` | 檔案 `paths:` frontmatter 中的路徑 glob 模式(如果有)。僅對 `path_glob_match` 載入出現 |1401| `globs` | 檔案 `paths:` frontmatter 中的路徑 glob 模式(如果有)。僅對 `path_glob_match` 載入出現 |

1402| `trigger_file_path` | 觸發此載入的檔案的路徑,用於延遲載入 |1402| `trigger_file_path` | 觸發此載入的檔案的路徑,用於延遲載入 |

1403| `parent_file_path` | 包含此檔案的父指令檔案的路徑,用於 `include` 載入 |1403| `parent_file_path` | 包含此檔案的父指示檔案的路徑,用於 `include` 載入 |

1404 1404 

1405```json theme={null}1405```json theme={null}

1406{1406{


1418 InstructionsLoaded 決策控制1418 InstructionsLoaded 決策控制

1419</h4>1419</h4>

1420 1420 

1421InstructionsLoaded hooks 沒有決策控制。它們無法阻止或修改指令載入。Claude Code 捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。使用此事件進行稽核日誌、合規性追蹤或可觀測性。1421InstructionsLoaded hooks 沒有決策控制。它們無法阻止或修改指示載入。Claude Code 捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。使用此事件進行稽核日誌、合規性追蹤或可觀測性。

1422 1422 

1423<h3 id="userpromptsubmit">1423<h3 id="userpromptsubmit">

1424 UserPromptSubmit1424 UserPromptSubmit

1425</h3>1425</h3>

1426 1426 

1427在使用者提交提示時執行,在 Claude 處理之前。這允許您根據提示/對話新增額外背景資訊、驗證提示或阻止某些類型的提示。1427在使用者提交提示時執行,在 Claude 處理它之前。這允許您根據提示/對話新增額外背景資訊、驗證提示或阻止某些類型的提示。

1428 1428 

1429`UserPromptSubmit` hooks 對 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比大多數其他事件上這些類型的 600 秒預設值更短。因為此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1429`UserPromptSubmit` hooks 對 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比大多數其他事件上這些類型的 600 秒預設值更短。由於此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1430 1430 

1431除了使用 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook 外,達到其逾時的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 會被取消,其輸出(包括任何 `additionalContext`)會被捨棄。提示仍會到達 Claude 而不會有該背景資訊。文字記錄顯示一個通知,命名 hook、觸發的逾時以及輸出已被捨棄。1431除了您使用 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook 外,達到其逾時的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 會被取消,其輸出(包括任何 `additionalContext`)會被捨棄。提示仍會到達 Claude,但沒有該背景資訊。文字記錄顯示一個通知,命名 hook、觸發的逾時以及輸出被捨棄。

1432 1432 

1433在 `UserPromptSubmit` 上達到其逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會用命名 hook 和逾時的訊息阻止提示,因為該處的回呼可能充當必須不失敗開放的原則閘道。工作階段繼續。在 v2.1.208 之前,該事件上的回呼逾時以執行錯誤結束回合。1433在 `UserPromptSubmit` 上達到其逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會用命名 hook 和逾時的訊息阻止提示,因為該處的回呼可能充當必須不失敗開放的原則閘道。工作階段繼續。在 v2.1.208 之前,該事件上的回呼逾時以執行錯誤結束回合。

1434 1434 


1436 UserPromptSubmit 輸入1436 UserPromptSubmit 輸入

1437</h4>1437</h4>

1438 1438 

1439除了 [常見輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 還會接收包含使用者提交的文字的 `prompt` 欄位。1439除了 [常見輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 接收包含使用者提交的文字的 `prompt` 欄位。折疊為 `[Pasted text #N]` 佔位符的貼上內容會在原位展開。在 Claude Code [為 Claude 標記貼上文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text) 的工作階段中,該展開內容位於 `<pasted_content id="…">` 行和 `</pasted_content id="…">` 行之間,因此如果您的 hook 解析提示,請考慮這些行。

1440 1440 

1441```json theme={null}1441```json theme={null}

1442{1442{


1457 1457 

1458有兩種方式可以在退出代碼 0 上新增背景資訊到對話:1458有兩種方式可以在退出代碼 0 上新增背景資訊到對話:

1459 1459 

1460* **純文字 stdout**:Claude Code 將其 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊1460* **純文字 stdout**:Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊

1461* **JSON 搭配 `additionalContext`**:使用下面的 JSON 格式以獲得更多控制。`additionalContext` 欄位作為背景資訊新增1461* **JSON 搭配 `additionalContext`**:使用下面的 JSON 格式以獲得更多控制。`additionalContext` 欄位作為背景資訊新增

1462 1462 

1463兩個通道都不會產生可見的文字記錄項目。純文字和 `additionalContext` 值各自作為以 hook 名稱開頭的系統提醒注入;Claude 讀取兩者。若要確認傳遞,請檢查 [偵錯日誌](#debug-hooks)。1463兩個通道都不會產生可見的文字記錄項目。純 stdout 和 `additionalContext` 值各自作為以 hook 名稱開頭的系統提醒注入;Claude 讀取兩者。若要確認傳遞,請檢查 [debug log](#debug-hooks)。

1464 1464 

1465若要阻止提示,請返回一個 JSON 物件,其中 `decision` 設定為 `"block"`:1465若要阻止提示,傳回一個 JSON 物件,其 `decision` 設定為 `"block"`:

1466 1466 

1467| 欄位 | 描述 |1467| 欄位 | 描述 |

1468| :----------------------- | :------------------------------------------------------------------------ |1468| :----------------------- | :------------------------------------------------------------------------ |

1469| `decision` | `"block"` 防止提示被處理並從背景資訊中清除。省略以允許提示繼續 |1469| `decision` | `"block"` 防止提示被處理並從背景資訊中清除它。省略以允許提示繼續 |

1470| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者。不新增到背景資訊 |1470| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者。不新增到背景資訊 |

1471| `additionalContext` | 與提交的提示一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1471| `additionalContext` | 與提交的提示一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

1472| `sessionTitle` | 設定工作階段標題。用於根據提示內容自動命名工作階段 |1472| `sessionTitle` | 設定工作階段標題。用於根據提示內容自動命名工作階段 |

1473| `suppressOriginalPrompt` | 當 `decision` 為 `"block"` 時,如果為 `true`,則從顯示給使用者的阻止訊息中省略原始提示文字 |1473| `suppressOriginalPrompt` | 當 `decision` 為 `"block"` 時,如果為 `true`,則從顯示給使用者的阻止訊息中省略原始提示文字 |

1474 1474 

1475透過退出 2 阻止的 hook 路由方式與 `reason` 相同:阻止訊息向使用者顯示 stderr 文字,且不新增到背景資訊。1475透過退出 2 阻止的 hook 以與 `reason` 相同的方式路由:阻止訊息向使用者顯示 stderr 文字,它不會新增到背景資訊。

1476 1476 

1477```json theme={null}1477```json theme={null}

1478{1478{


1490 UserPromptExpansion1490 UserPromptExpansion

1491</h3>1491</h3>

1492 1492 

1493在使用者輸入的命令擴展為到達 Claude 之前的提示時執行。使用此來阻止特定命令的直接呼叫、為特定 skill 注入背景資訊,或記錄使用者呼叫的命令。例如,匹配 `deploy` 的 hook 可以阻止 `/deploy`,除非存在核准檔案,或匹配審查 skill 的 hook 可以將團隊的審查檢查清單附加為 `additionalContext`。1493在使用者輸入的命令擴展為提示之前執行,然後到達 Claude。使用此來阻止特定命令的直接呼叫、為特定 skill 注入背景資訊,或記錄使用者呼叫的命令。例如,匹配 `deploy` 的 hook 可以阻止 `/deploy`,除非存在核准檔案,或匹配審查 skill 的 hook 可以將團隊的審查檢查清單附加為 `additionalContext`。

1494 1494 

1495此事件涵蓋 `PreToolUse` 不涵蓋的路徑:匹配 `Skill` 工具的 `PreToolUse` hook 僅在 Claude 呼叫工具時觸發,但直接輸入 `/skillname` 會繞過 `PreToolUse`。`UserPromptExpansion` 在該直接路徑上觸發。1495此事件涵蓋 `PreToolUse` 不涵蓋的路徑:匹配 `Skill` 工具的 `PreToolUse` hook 僅在 Claude 呼叫工具時觸發,但直接輸入 `/skillname` 會繞過 `PreToolUse`。`UserPromptExpansion` 在該直接路徑上觸發。

1496 1496 


1500 UserPromptExpansion 輸入1500 UserPromptExpansion 輸入

1501</h4>1501</h4>

1502 1502 

1503除了 [常見輸入欄位](#common-input-fields) 外,UserPromptExpansion hooks 還會接收 `expansion_type`、`command_name`、`command_args`、`command_source` 和原始 `prompt` 字串。`expansion_type` 欄位對於 skill 和自訂命令為 `slash_command`,或對於 MCP 伺服器提示為 `mcp_prompt`。1503除了 [常見輸入欄位](#common-input-fields) 外,UserPromptExpansion hooks 接收 `expansion_type`、`command_name`、`command_args`、`command_source` 和原始 `prompt` 字串。`expansion_type` 欄位對於 skill 和自訂命令為 `slash_command`,或對於 MCP 伺服器提示為 `mcp_prompt`。

1504 1504 

1505```json theme={null}1505```json theme={null}

1506{1506{


1527| :------------------ | :------------------------------------------------------------------------ |1527| :------------------ | :------------------------------------------------------------------------ |

1528| `decision` | `"block"` 防止命令擴展。省略以允許它繼續 |1528| `decision` | `"block"` 防止命令擴展。省略以允許它繼續 |

1529| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者 |1529| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者 |

1530| `additionalContext` | 與擴展的提示一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1530| `additionalContext` | 與展開的提示一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

1531 1531 

1532透過退出 2 阻止的 hook 路由方式與 `reason` 相同:阻止訊息向使用者顯示 stderr 文字。1532透過退出 2 阻止的 hook 以與 `reason` 相同的方式路由:阻止訊息向使用者顯示 stderr 文字。

1533 1533 

1534```json theme={null}1534```json theme={null}

1535{1535{


1546 MessageDisplay1546 MessageDisplay

1547</h3>1547</h3>

1548 1548 

1549在助手訊息流向螢幕時執行。Claude Code 分批顯示訊息:每次一批新完成的行準備好呈現時,hook 執行一次,其中包含這些行,Claude Code 呈現 hook 的替換文字代替它們。長訊息會產生多個呼叫;短訊息可能只產生一個。1549在助手訊息流向螢幕時執行。Claude Code 分批顯示訊息:每次一批新完成的行準備好呈現時,hook 執行一次,該批行,Claude Code 在其位置呈現 hook 的替換文字。長訊息會產生多個呼叫;短訊息可能只產生一個。

1550 1550 

1551使用 MessageDisplay 來:1551使用 MessageDisplay 來:

1552 1552 


1554* 轉換 Agent SDK 應用程式向其使用者顯示的文字1554* 轉換 Agent SDK 應用程式向其使用者顯示的文字

1555* 從 Claude 的回應中編輯 API 金鑰或內部主機名稱1555* 從 Claude 的回應中編輯 API 金鑰或內部主機名稱

1556 1556 

1557Claude Code 保留每個批次直到您的 hook 返回,因此請保持 hook 快速。如果 hook 失敗或逾時,Claude Code 顯示原始文字。此事件的預設逾時為 10 秒;如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1557Claude Code 保持每個批次,直到您的 hook 傳回,因此請保持 hook 快速。如果 hook 失敗或逾時,Claude Code 顯示原始文字。此事件的預設逾時為 10 秒;如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1558 1558 

1559MessageDisplay 僅用於顯示:替換文字僅更改螢幕上呈現的內容。文字記錄和 Claude 看到的內容保持原始文字,因此 Claude 永遠看不到替換,詳細模式顯示原始文字。Hook 僅接收助手訊息文字,因此工具結果和您輸入的文字呈現不變。1559MessageDisplay 僅用於顯示:替換文字僅更改螢幕上呈現的內容。文字記錄和 Claude 看到的內容保持原始文字,因此 Claude 永遠看不到替換,詳細模式顯示原始文字。Hook 僅接收助手訊息文字,因此工具結果和您輸入的文字呈現不變。

1560 1560 

1561MessageDisplay 不支援匹配器,對每個流向文字的助手訊息觸發;沒有文字的訊息(例如僅工具呼叫回應)不觸發它。1561MessageDisplay 不支援匹配器,對每個流向文字的助手訊息觸發;沒有文字的訊息(例如僅工具呼叫回應)不會觸發它。

1562 1562 

1563在非互動執行中,包括 Agent SDK 查詢和 `claude -p`,MessageDisplay 每個助手訊息執行一次而不是每批行執行一次。單個呼叫在訊息完成後到達並攜帶完整訊息文字:`index` 為 `0`、`final` 為 `true`,`delta` 保留整個訊息。為每個訊息收集 `delta` 文字的 hook 在兩種模式中接收相同的總文字。1563在非互動執行中,包括 Agent SDK 查詢和 `claude -p`,MessageDisplay 每個助手訊息執行一次,而不是每批行執行一次。單個呼叫在訊息完成後到達,並攜帶完整訊息文字:`index` 為 `0`,`final` 為 `true`,`delta` 保持整個訊息。為每個訊息收集 `delta` 文字的 hook 在兩種模式中接收相同的總文字。

1564 1564 

1565<h4 id="messagedisplay-input">1565<h4 id="messagedisplay-input">

1566 MessageDisplay 輸入1566 MessageDisplay 輸入

1567</h4>1567</h4>

1568 1568 

1569除了 [常見輸入欄位](#common-input-fields) 外,MessageDisplay hooks 還會接收回合和訊息的識別碼、此呼叫在訊息中的位置,以及 `delta` 中的新文字。批次邊界取決於文字流的方式,因此使用 `index` 和 `final` 追蹤訊息的進度,而不是期望行以特定方式分組。1569除了 [常見輸入欄位](#common-input-fields) 外,MessageDisplay hooks 接收回合和訊息的識別碼、此呼叫在訊息中的位置,以及 `delta` 中的新文字。批次邊界取決於文字流的方式,因此使用 `index` 和 `final` 追蹤訊息的進度,而不是期望行以特定方式分組。

1570 1570 

1571| 欄位 | 描述 |1571| 欄位 | 描述 |

1572| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |1572| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

1573| `turn_id` | 目前回合的 UUID |1573| `turn_id` | 目前回合的 UUID |

1574| `message_id` | 正在顯示的助手訊息的 UUID。在同一訊息的每個批次中穩定。這不是 API `msg_…` id,因此無法與文字記錄訊息 id 相關聯 |1574| `message_id` | 正在顯示的助手訊息的 UUID。在同一訊息的每個批次中穩定。這不是 API `msg_…` id,因此無法與文字記錄訊息 ids 相關聯 |

1575| `index` | 訊息內此批次的零基索引 |1575| `index` | 此批次在訊息中的零基索引 |

1576| `final` | 在訊息的最後一個批次上為 `true`。每個訊息恰好有一個最終批次 |1576| `final` | 在訊息的最後一個批次上為 `true`。每個訊息恰好有一個最終批次 |

1577| `delta` | 自上一個批次以來新完成的行,包括終止換行符。始終是完整行,除了最終批次可能在行中結束。在互動執行中,當訊息以換行符結束時,最終批次的 delta 為空,因此將 `final` 而不是非空 delta 視為訊息結束信號。在 Agent SDK 和 `claude -p` 執行中,單個呼叫攜帶整個訊息 |1577| `delta` | 自上一個批次以來新完成的行,包括終止換行符。始終是完整行,除了最終批次可能在行中結束。在互動執行中,當訊息以換行符結束時,最終批次的 delta 為空,因此將 `final` 而不是非空 delta 視為訊息結束信號。在 Agent SDK 和 `claude -p` 執行中,單個呼叫攜帶整個訊息 |

1578 1578 


1594 MessageDisplay 輸出1594 MessageDisplay 輸出

1595</h4>1595</h4>

1596 1596 

1597除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 以替換螢幕上的 delta:1597除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,MessageDisplay hooks 可以傳回 `displayContent` 以在螢幕上替換 delta:

1598 1598 

1599| 欄位 | 描述 |1599| 欄位 | 描述 |

1600| :--------------- | :----------------------- |1600| :--------------- | :------------------------ |

1601| `displayContent` | 顯示代替 delta 的文字。省略以顯示原始文字 |1601| `displayContent` | 顯示以取代 delta 的文字。省略以顯示原始文字 |

1602 1602 

1603MessageDisplay hooks 沒有決策控制。它們無法阻止訊息或更改文字記錄中儲存或發送給 Claude 的內容。Claude Code 作用於它們的 JSON 輸出中的 `displayContent` 並捨棄 `systemMessage` 和 `continue`。1603MessageDisplay hooks 沒有決策控制。它們無法阻止訊息或更改文字記錄中儲存或傳送給 Claude 的內容。Claude Code 從其 JSON 輸出作用於 `displayContent` 並捨棄 `systemMessage` 和 `continue`。

1604 1604 

1605此範例從 Claude 的回應中去除 markdown 格式以獲得純文字顯示。指令碼從 stdin 讀取每個批次,從 `delta` 中移除粗體標記和內聯代碼反引號,並將結果作為 `displayContent` 返回。1605此範例從 Claude 的回應中去除 markdown 格式以獲得純文字顯示。指令碼從 stdin 讀取每個批次,從 `delta` 移除粗體標記和內聯程式碼反引號,並將結果傳回為 `displayContent`。

1606 1606 

1607<Tabs>1607<Tabs>

1608 <Tab title="macOS/Linux">1608 <Tab title="macOS/Linux">


1626 }1626 }

1627 ```1627 ```

1628 1628 

1629 將此指令碼儲存到您專案中的 `.claude/hooks/plain-display.sh` 並使用 `chmod +x` 使其可執行:1629 將此指令碼儲存到您的專案中的 `.claude/hooks/plain-display.sh`,並使用 `chmod +x` 使其可執行:

1630 1630 

1631 ```bash theme={null}1631 ```bash theme={null}

1632 #!/bin/bash1632 #!/bin/bash


1663 1663 

1664 `-NoProfile` 旗標跳過載入您的 PowerShell 設定檔,以便 hook 快速啟動,`-ExecutionPolicy Bypass` 讓 PowerShell 執行本機指令碼檔案。1664 `-NoProfile` 旗標跳過載入您的 PowerShell 設定檔,以便 hook 快速啟動,`-ExecutionPolicy Bypass` 讓 PowerShell 執行本機指令碼檔案。

1665 1665 

1666 將此指令碼儲存到您專案中的 `.claude/hooks/plain-display.ps1`:1666 將此指令碼儲存到您的專案中的 `.claude/hooks/plain-display.ps1`:

1667 1667 

1668 ```powershell theme={null}1668 ```powershell theme={null}

1669 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1669 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1678 </Tab>1678 </Tab>

1679</Tabs>1679</Tabs>

1680 1680 

1681沒有 markdown 的批次通過不變。如果指令碼失敗,例如因為 `jq` 缺失,Claude Code 顯示原始文字並僅在 [偵錯輸出](#debug-hooks) 中記錄失敗,而不是在工作階段中。1681沒有 markdown 的批次會通過不變。如果指令碼失敗,例如因為 `jq` 遺失,Claude Code 顯示原始文字,並僅在 [debug output](#debug-hooks) 中註記失敗,而不是在工作階段中。

1682 1682 

1683<h3 id="pretooluse">1683<h3 id="pretooluse">

1684 PreToolUse1684 PreToolUse


1686 1686 

1687在 Claude 建立工具參數之後、處理工具呼叫之前執行。在除 `EndConversation` 外的任何工具名稱上匹配:內建工具,例如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 和 `ExitPlanMode`,以及任何 [MCP 工具名稱](#match-mcp-tools)。1687在 Claude 建立工具參數之後、處理工具呼叫之前執行。在除 `EndConversation` 外的任何工具名稱上匹配:內建工具,例如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 和 `ExitPlanMode`,以及任何 [MCP 工具名稱](#match-mcp-tools)。

1688 1688 

1689若要在磁碟上的特定檔案變更時執行 hook,無論什麼寫入它,請改用 [FileChanged](#filechanged) 而不是按名稱匹配檔案編輯工具。與 PreToolUse 不同,Claude Code 在變更後執行 FileChanged hooks,它們沒有決策控制,因此無法阻止寫入。1689若要在特定檔案在磁碟上變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged) 而不是按名稱匹配檔案編輯工具。與 PreToolUse 不同,Claude Code 在變更後執行 FileChanged hooks,它們沒有決策控制,因此無法阻止寫入。

1690 1690 

1691<Warning>1691<Warning>

1692 PreToolUse 僅在 Claude 呼叫工具時執行。您在提示中 [使用 `@` 參考的檔案](/docs/zh-TW/common-workflows#reference-files-and-directories) 會被新增而不進行任何工具呼叫:Claude Code 在建立提示時插入其內容,因此沒有 PreToolUse hook 對它們觸發,包括匹配 `Read` 的 hooks。若要阻止特定路徑的 `@` 參考,請改用 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。1692 PreToolUse 僅在 Claude 呼叫工具時執行。您 [在提示中使用 `@` 參考的檔案](/docs/zh-TW/common-workflows#reference-files-and-directories) 會被新增而不進行任何工具呼叫:Claude Code 在建立提示時插入其內容,因此沒有 PreToolUse hook 對它們觸發,包括匹配 `Read` 的 hooks。若要阻止特定路徑的 `@` 參考,請改用 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。

1693 1693 

1694 PreToolUse 也不對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。1694 PreToolUse 也不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。

1695</Warning>1695</Warning>

1696 1696 

1697使用 [PreToolUse 決策控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。1697使用 [PreToolUse 決策控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。

1698 1698 

1699在 `PreToolUse` 上超過其逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會阻止工具呼叫,Claude 接收命名逾時的錯誤結果。另一個 hook 返回的明確拒絕仍然優先。1699在 `PreToolUse` 上超過其逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會阻止工具呼叫,Claude 接收命名逾時的錯誤結果。另一個 hook 傳回的明確拒絕仍然優先。

1700 1700 

1701<h4 id="pretooluse-input">1701<h4 id="pretooluse-input">

1702 PreToolUse 輸入1702 PreToolUse 輸入

1703</h4>1703</h4>

1704 1704 

1705除了 [常見輸入欄位](#common-input-fields) 外,PreToolUse hooks 還會接收 `tool_name`、`tool_input` 和 `tool_use_id`。1705除了 [常見輸入欄位](#common-input-fields) 外,PreToolUse hooks 接收 `tool_name`、`tool_input` 和 `tool_use_id`。

1706 1706 

1707對於 [MCP 工具](#match-mcp-tools),輸入也攜帶 `mcp_server`,一個具有伺服器 `name` 和 `source` 的物件,說明伺服器定義來自何處。`source` 值包括 `plugin`、`sdk` 和設定範圍,例如 `user` 和 `project`。Agent SDK 參考中的 [`McpServerProvenance`](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 列出它們全部並說明如何對待您不認識的。基於 `source` 而不是 `name` 或 `mcp__<server>__` 工具名稱前綴進行信任決策。`mcp_server` 欄位需要 Claude Code v2.1.274 或更新版本。1707對於 [MCP 工具](#match-mcp-tools),輸入也攜帶 `mcp_server`,一個具有伺服器 `name` 和 `source` 的物件,說明伺服器定義的來源。`source` 值包括 `plugin`、`sdk` 和配置範圍,例如 `user` 和 `project`。[Agent SDK 參考中的 `McpServerProvenance`](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 列出它們全部並說明如何處理您不認識的。基於 `source` 而不是 `name` 或 `mcp__<server>__` 工具名稱前綴做出信任決定。`mcp_server` 欄位需要 Claude Code v2.1.274 或更新版本。

1708 1708 

1709對於檔案工具 `Write`、`Edit` 和 `Read`,`tool_input.file_path` 始終是絕對的:1709對於檔案工具 `Write`、`Edit` 和 `Read`,`tool_input.file_path` 始終是絕對的:

1710 1710 

1711* Claude Code 在 hooks 執行之前擴展 `~` 和相對路徑,因此匹配路徑的 hook 無法透過 `~` 或相同路徑的相對拼寫繞過1711* Claude Code 在 hooks 執行之前展開 `~` 和相對路徑,因此匹配路徑的 hook 無法透過 `~` 或相同路徑的相對拼寫繞過

1712* 在 Windows 上,路徑到達時使用反斜線分隔符,即使您的 hook 在 Git Bash 下執行,其中 `$PWD` 看起來像 `/c/project`1712* 在 Windows 上,路徑到達時使用反斜線分隔符,即使您的 hook 在 Git Bash 下執行,其中 `$PWD` 看起來像 `/c/project`

1713* 使用正斜線編寫的比較,例如 `/src/` 檢查,永遠不會匹配反斜線路徑,工具呼叫會如同 hook 沒有要阻止的內容一樣進行1713* 使用正斜線編寫的比較,例如 `/src/` 檢查,永遠不會匹配反斜線路徑,工具呼叫會如同 hook 沒有要阻止的東西一樣進行

1714* 在比較前規範化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"`,或 Python 中的 `file_path.replace("\\", "/")`,然後匹配路徑段,例如 `/src/`,而不是使用 `^` 錨定,因為路徑是絕對的1714* 在比較前正規化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"` 或 Python 中的 `file_path.replace("\\", "/")`,然後匹配路徑段,例如 `/src/`,而不是使用 `^` 錨定,因為路徑是絕對的

1715 1715 

1716Windows 上的 `Write` 呼叫傳遞:1716Windows 上的 `Write` 呼叫傳遞:

1717 1717 


1738執行 shell 命令。1738執行 shell 命令。

1739 1739 

1740| 欄位 | 類型 | 範例 | 描述 |1740| 欄位 | 類型 | 範例 | 描述 |

1741| :------------------ | :------ | :----------------- | :--------------------------------------------------------------------------- |1741| :------------------ | :------ | :----------------- | :---------------------------------------------------------------------------- |

1742| `command` | string | `"npm test"` | 要執行的 shell 命令 |1742| `command` | string | `"npm test"` | 要執行的 shell 命令 |

1743| `description` | string | `"Run test suite"` | 命令執行內容的可選描述 |1743| `description` | string | `"Run test suite"` | 命令執行內容的可選描述 |

1744| `timeout` | number | `120000` | 可選逾時(毫秒)。超過 [最大值](/docs/zh-TW/tools-reference#bash-tool-behavior) 的值會減少到最大值而不是被拒絕 |1744| `timeout` | number | `120000` | 可選逾時(毫秒)。高於 [最大值](/docs/zh-TW/tools-reference#bash-tool-behavior) 的值會減少到最大值,而不是被拒絕 |

1745| `run_in_background` | boolean | `false` | 是否在背景執行命令 |1745| `run_in_background` | boolean | `false` | 是否在背景執行命令 |

1746 1746 

1747當 Bash 命令更改 Git 儲存庫中的檔案時,Claude Code 可以記錄變更的內容。當 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定打開記錄時,它在每個權限模式中記錄;該設定的項目說明哪些檔案可以設定它。否則它僅在自動模式和 `bypassPermissions` 模式中記錄,並且僅當 Claude Code 指導 Claude 透過 Bash 編輯檔案時。設定 `bashEditDiffEnabled` 為 `false` 以關閉記錄。背景命令和唯讀命令不攜帶 diff。1747當 Bash 命令更改 Git 儲存庫中的檔案時,Claude Code 可以記錄變更。當 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定開啟記錄時,它在每個權限模式中記錄;該設定的項目說明哪些檔案可以設定它。否則它僅在自動模式和 `bypassPermissions` 模式中記錄,並且僅當 Claude Code 指導 Claude 透過 Bash 編輯檔案時。設定 `bashEditDiffEnabled` 為 `false` 以關閉記錄。背景命令和唯讀命令不攜帶 diff。

1748 1748 

1749您的 [PostToolUse hook](#posttooluse) 然後在 `tool_response.bashEditDiff` 中接收變更的檔案。該清單涵蓋命令執行時在儲存庫下變更的內容。Git 忽略的檔案和子模組中的檔案不被列出。需要 Claude Code v2.1.269 或更新版本。1749您的 [PostToolUse hook](#posttooluse) 然後在 `tool_response.bashEditDiff` 中接收變更的檔案。清單涵蓋命令執行時在儲存庫下變更的內容。Git 忽略的檔案和子模組中的檔案不會列出。需要 Claude Code v2.1.269 或更新版本。

1750 1750 

1751<Note>1751<Note>

1752 該清單是盡力而為的,處於公開測試版。Claude Code 可能會遺漏變更、包含另一個程序同時變更的檔案,或在其大小限制處停止。欄位形狀可能會變更。使用該清單找到要審查的內容,而不是強制執行原則。1752 清單是盡力而為的,處於公開測試版。Claude Code 可能會遺漏變更、包含另一個程序同時變更的檔案,或在其大小限制處停止。欄位形狀可能會變更。使用清單找到要審查的內容,而不是強制執行原則。

1753</Note>1753</Note>

1754 1754 

1755`changedFiles` 和 `files` 列出命令變更的內容;其餘欄位說明該清單的完整性和可靠性。1755`changedFiles` 和 `files` 列出命令變更的內容;其餘欄位說明該清單的完整性和可靠性。

1756 1756 

1757| 欄位 | 類型 | 範例 | 描述 |1757| 欄位 | 類型 | 範例 | 描述 |

1758| :------------- | :------ | :------------------------------------------------------ | :------------------------------------------------------------------------ |1758| :------------- | :------ | :------------------------------------------------------ | :----------------------------------------------------------------------- |

1759| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令變更的檔案的絕對路徑,最多 200 個。每當 `files` 保留 diff 或 `moreFiles` 高於零時出現 |1759| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令變更的檔案的絕對路徑,最多 200 個。每當 `files` 保持 diff 或 `moreFiles` 高於零時出現 |

1760| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 個變更檔案的 diffs,用於顯示。對於命令新增或移除的檔案,`created` 或 `deleted` 為 `true` |1760| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 個變更檔案的 diffs,用於顯示。`created` 或 `deleted` 對於命令新增或移除的檔案為 `true` |

1761| `moreFiles` | number | `2` | 在 `files` 中沒有 diff 的變更檔案計數 |1761| `moreFiles` | number | `2` | 在 `files` 中沒有 diff 的變更檔案計數 |

1762| `unavailable` | boolean | `true` | 當 diff 不完整或無法進行時設定 |1762| `unavailable` | boolean | `true` | 當 diff 不完整或無法取得時設定 |

1763| `skipped` | boolean | `true` | 對於移動工作樹的 Git 命令設定,例如 `git checkout` 或 `git stash`,因此 Claude Code 不進行 diff |1763| `skipped` | boolean | `true` | 對於移動工作樹的 Git 命令設定,例如 `git checkout` 或 `git stash`,因此 Claude Code 不取 diff |

1764| `shared` | boolean | `true` | 當另一個 Bash 工具呼叫(例如子代理的)同時在同一儲存庫中執行時設定,因此某些列出的變更可能是該命令的 |1764| `shared` | boolean | `true` | 當另一個 Bash 工具呼叫(例如子代理的)同時在同一儲存庫中執行時設定,因此某些列出的變更可能是該命令的 |

1765 1765 

1766<a id="powershell" />1766<a id="powershell" />


1782 1782 

1783在檢查 shell 命令的 hooks 中匹配 `Bash|PowerShell`,以便它們涵蓋兩個工具:1783在檢查 shell 命令的 hooks 中匹配 `Bash|PowerShell`,以便它們涵蓋兩個工具:

1784 1784 

1785* 在 Windows 上,只要啟用了 PowerShell 工具,Claude 就會將 PowerShell 視為主要 shell 並透過它路由 shell 命令。1785* 在 Windows 上,無論 PowerShell 工具在何處啟用,Claude 都將 PowerShell 視為主要 shell,並透過它路由 shell 命令。

1786* 在沒有 Git Bash 的 Windows 上,工具會自動啟用,Claude Code 根本不會註冊 Bash 工具。1786* 在沒有 Git Bash 的 Windows 上,工具會自動啟用,Claude Code 根本不會註冊 Bash 工具。

1787* 僅匹配 `Bash` 的 hook 永遠不會在那裡觸發。1787* 僅匹配 `Bash` 的 hook 永遠不會在那裡觸發。

1788 1788 


1819| 欄位 | 類型 | 範例 | 描述 |1819| 欄位 | 類型 | 範例 | 描述 |

1820| :---------- | :----- | :-------------------- | :---------- |1820| :---------- | :----- | :-------------------- | :---------- |

1821| `file_path` | string | `"/path/to/file.txt"` | 要讀取的檔案的絕對路徑 |1821| `file_path` | string | `"/path/to/file.txt"` | 要讀取的檔案的絕對路徑 |

1822| `offset` | number | `10` | 可選行號以開始讀取 |1822| `offset` | number | `10` | 可選開始讀取的行號 |

1823| `limit` | number | `50` | 可選要讀取的行數 |1823| `limit` | number | `50` | 可選要讀取的行數 |

1824 1824 

1825<h5 id="glob">1825<h5 id="glob">


1830 1830 

1831| 欄位 | 類型 | 範例 | 描述 |1831| 欄位 | 類型 | 範例 | 描述 |

1832| :-------- | :----- | :--------------- | :----------------- |1832| :-------- | :----- | :--------------- | :----------------- |

1833| `pattern` | string | `"**/*.ts"` | 要匹配檔案的 glob 模式 |1833| `pattern` | string | `"**/*.ts"` | 要匹配檔案的 Glob 模式 |

1834| `path` | string | `"/path/to/dir"` | 可選要搜尋的目錄。預設為目前工作目錄 |1834| `path` | string | `"/path/to/dir"` | 可選要搜尋的目錄。預設為目前工作目錄 |

1835 1835 

1836<h5 id="grep">1836<h5 id="grep">


1884| `subagent_type` | string | `"Explore"` | 要使用的專門代理類型 |1884| `subagent_type` | string | `"Explore"` | 要使用的專門代理類型 |

1885| `model` | string | `"sonnet"` | 可選模型別名以覆寫預設值 |1885| `model` | string | `"sonnet"` | 可選模型別名以覆寫預設值 |

1886 1886 

1887當前景 Agent 呼叫完成時,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的結果和執行遙測。讀取這些欄位以檢查執行;對於跨子代理的令牌和成本匯總,使用 [令牌和成本計數器](/docs/zh-TW/monitoring-usage#token-counter),篩選為 `query_source` `"subagent"`,因為 `totalTokens` 和 `usage` 僅涵蓋最終請求:1887當前景 Agent 呼叫完成時,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的結果和執行遙測。讀取這些欄位以檢查執行;對於跨子代理的權杖和成本匯總,使用 [權杖和成本計數器](/docs/zh-TW/monitoring-usage#token-counter),篩選為 `query_source` `"subagent"`,因為 `totalTokens` 和 `usage` 僅涵蓋最終請求:

1888 1888 

1889| 欄位 | 類型 | 範例 | 描述 |1889| 欄位 | 類型 | 範例 | 描述 |

1890| :------------------ | :----- | :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |1890| :------------------ | :----- | :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |


1892| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理執行的識別碼 |1892| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理執行的識別碼 |

1893| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最終文字區塊,或對於其報告透過 `SubagentHandback` 的子代理,關於該交接的簡短說明代替 |1893| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最終文字區塊,或對於其報告透過 `SubagentHandback` 的子代理,關於該交接的簡短說明代替 |

1894| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子代理啟動的模型,可能與請求的模型不同 |1894| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子代理啟動的模型,可能與請求的模型不同 |

1895| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按順序使用的模型,連續重複摺疊;僅在模型在執行中交換時設定。需要 Claude Code v2.1.212 或更新版本 |1895| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按順序使用的模型,連續重複折疊;僅在模型在執行中交換時設定。需要 Claude Code v2.1.212 或更新版本 |

1896| `totalTokens` | number | `12450` | 子代理最終 API 請求的令牌計數:輸入、輸出和快取令牌結合。這不是整個執行的總計 |1896| `totalTokens` | number | `12450` | 子代理最終 API 請求的權杖計數:輸入、輸出和快取權杖結合。這不是整個執行的總計 |

1897| `totalDurationMs` | number | `48211` | 子代理執行的掛鐘持續時間 |1897| `totalDurationMs` | number | `48211` | 子代理執行的掛鐘持續時間 |

1898| `totalToolUseCount` | number | `7` | 子代理進行的工具呼叫計數 |1898| `totalToolUseCount` | number | `7` | 子代理進行的工具呼叫計數 |

1899| `usage` | object | `{"input_tokens": 8320, ...}` | 最終 API 請求的每類型令牌細目:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |1899| `usage` | object | `{"input_tokens": 8320, ...}` | 最終 API 請求的每類型權杖細目:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |

1900 1900 

1901在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理(Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中提供)透過該工具傳遞其報告,而不是作為文字返回。其 `completed` 結果的 `content` 欄位然後攜帶關於該交接的簡短說明,而不是報告本身。若要讀取報告,請在 `SubagentHandback` 上匹配 `PreToolUse` 或 `PostToolUse` hook 並讀取 `tool_input.message`。1901在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理(Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中提供)透過該工具傳遞其報告,而不是將其傳回為文字。其 `completed` 結果的 `content` 欄位然後攜帶關於該交接的簡短說明,而不是報告本身。若要讀取報告,匹配 `PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上,並讀取 `tool_input.message`。

1902 1902 

1903對於背景子代理,工具在任務移到背景時返回,因此 `tool_response` 不攜帶使用欄位:背景啟動立即返回,前景任務在執行中被背景化時返回。它有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。1903對於背景子代理,工具在任務移到背景時傳回,因此 `tool_response` 不攜帶使用欄位:背景啟動立即傳回,前景任務在該轉換時由 Claude Code 背景化傳回。它有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。

1904 1904 

1905在 `completed` 回應上,`resolvedModel` 命名子代理啟動的模型,可能與 `tool_input` 中的 `model` 值不同,例如當 `availableModels` 或其他覆寫適用時。在 `async_launched` 回應上,`resolvedModel` 命名代理移到背景時使用的模型,因此在背景化之前發生的交換會反映在那裡。`modelsUsed` 和背景化時間 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。1905在 `completed` 回應上,`resolvedModel` 命名子代理啟動的模型,可能與 `tool_input` 中的 `model` 值不同,例如當 `availableModels` 或另一個覆寫適用時。在 `async_launched` 回應上,`resolvedModel` 命名代理在移到背景時使用的模型,因此在背景化之前發生的交換會反映在那裡。`modelsUsed` 和背景化時間 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。

1906 1906 

1907<a id="askuserquestion" />1907<a id="askuserquestion" />

1908 1908 


1913詢問使用者一到四個多選題。1913詢問使用者一到四個多選題。

1914 1914 

1915| 欄位 | 類型 | 範例 | 描述 |1915| 欄位 | 類型 | 範例 | 描述 |

1916| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |1916| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- |

1917| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 要呈現的問題,每個都有 `question` 字串、簡短 `header`、`options` 陣列和可選 `multiSelect` 旗標 |1917| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 要呈現的問題,每個都有 `question` 字串、簡短 `header`、`options` 陣列和可選 `multiSelect` 旗標 |

1918| `answers` | object | `{"Which framework?": "React"}` | 可選。將問題文字對應到選定的選項標籤。多選答案用逗號連接標籤。Claude 不設定此欄位;透過 `updatedInput` 提供以程式設計方式回答 |1918| `answers` | object | `{"Which framework?": "React"}` | 可選。將問題文字對應到選定的選項標籤。多選答案用逗號連接標籤。Claude 不設定此欄位;透過 `updatedInput` 提供它以以程式設計方式回答 |

1919 1919 

1920<h5 id="exitplanmode">1920<h5 id="exitplanmode">

1921 ExitPlanMode1921 ExitPlanMode

1922</h5>1922</h5>

1923 1923 

1924呈現計畫並要求使用者在 Claude 離開 [計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 之前核准。Claude 在呼叫工具之前將計畫寫入磁碟上的檔案,因此模型的字面 `tool_input` 通常是空的。Claude Code 在將輸入傳遞給 hooks 之前注入計畫內容和檔案路徑。1924呈現計畫並要求使用者在 Claude 離開 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 之前核准它。Claude 在呼叫工具之前將計畫寫入磁碟上的檔案,因此來自模型的字面 `tool_input` 通常是空的。Claude Code 在將輸入傳遞給 hooks 之前注入計畫內容和檔案路徑。

1925 1925 

1926| 欄位 | 類型 | 範例 | 描述 |1926| 欄位 | 類型 | 範例 | 描述 |

1927| :--------------- | :----- | :------------------------------------------ | :---------------------------------------------------------------- |1927| :--------------- | :----- | :------------------------------------------ | :--------------------------------------------------------------- |

1928| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的計畫內容。從磁碟上的計畫檔案注入 |1928| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的計畫內容。從磁碟上的計畫檔案注入 |

1929| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計畫檔案的路徑。注入 |1929| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計畫檔案的路徑。注入 |

1930| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已棄用。Claude Code 接受欄位但忽略它。在 v2.1.205 之前,它攜帶 Claude 請求以實施計畫的基於提示的權限 |1930| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已棄用。Claude Code 接受欄位但忽略它。在 v2.1.205 之前,它攜帶 Claude 要求實施計畫的基於提示的權限 |

1931 1931 

1932在 `PostToolUse` 中,`tool_response` 是一個物件,包含 `plan` 和 `filePath` 欄位保留核准的計畫,加上內部狀態旗標。讀取 `tool_response.plan` 以獲取計畫內容,而不是從磁碟重新讀取檔案。1932在 `PostToolUse` 中,`tool_response` 是一個物件,具有 `plan` 和 `filePath` 欄位,保持核准的計畫,加上內部狀態旗標。讀取 `tool_response.plan` 以獲得計畫內容,而不是從磁碟重新讀取檔案。

1933 1933 

1934<h4 id="pretooluse-decision-control">1934<h4 id="pretooluse-decision-control">

1935 PreToolUse 決策控制1935 PreToolUse 決策控制

1936</h4>1936</h4>

1937 1937 

1938`PreToolUse` hooks 可以控制工具呼叫是否進行。與使用頂級 `decision` 欄位的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 物件內返回其決策。這提供了更豐富的控制:四個結果(允許、拒絕、詢問或延遲)加上在執行前修改工具輸入的能力。1938`PreToolUse` hooks 可以控制工具呼叫是否進行。與使用頂級 `decision` 欄位的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 物件內傳回其決策。這給予它更豐富的控制:四個結果(允許、拒絕、詢問或延遲)加上在執行前修改工具輸入的能力。

1939 1939 

1940| 欄位 | 描述 |1940| 欄位 | 描述 |

1941| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1941| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1942| `permissionDecision` | `"allow"` 跳過權限提示,除了 [任何模式自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,需要 [`updatedInput` 與其配對](#allow-with-updatedinput)。`"deny"` 防止工具呼叫。`"ask"` 提示使用者確認。`"defer"` 優雅地退出,以便稍後可以恢復工具。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 無論 hook 返回什麼都會被評估 |1942| `permissionDecision` | `"allow"` 跳過權限提示,除了 [任何模式自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,需要 [`updatedInput` 與其配對](#allow-with-updatedinput)。`"deny"` 防止工具呼叫。`"ask"` 提示使用者確認。`"defer"` 優雅地退出,以便稍後可以恢復工具。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 無論 hook 傳回什麼都會被評估 |

1943| `permissionDecisionReason` | 對於 `"allow"` 和 `"ask"`,顯示給使用者但不顯示給 Claude。對於 `"deny"`,顯示給 Claude。對於 `"defer"`,忽略 |1943| `permissionDecisionReason` | 對於 `"allow"` 和 `"ask"`,顯示給使用者但不顯示 Claude。對於 `"deny"`,顯示給 Claude。對於 `"defer"`,忽略 |

1944| `updatedInput` | 在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。Claude Code 根據您的 hook 返回的輸入評估權限規則和 Bash 命令的 [自動背景資格](/docs/zh-TW/tools-reference#background-commands),而不是 Claude 發送的輸入。與 `"allow"` 結合以自動核准,或與 `"ask"` 結合以向使用者顯示修改的輸入。對於 `"defer"`,忽略 |1944| `updatedInput` | 在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。Claude Code 根據您的 hook 傳回的輸入評估權限規則和 Bash 命令的 [自動背景資格](/docs/zh-TW/tools-reference#background-commands),而不是 Claude 傳送的輸入。與 `"allow"` 結合以自動核准,或與 `"ask"` 結合以向使用者顯示修改的輸入。對於 `"defer"`,忽略 |

1945| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。當 `permissionDecision` 為 `"defer"` 時忽略。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1945| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。當 `permissionDecision` 為 `"defer"` 時忽略。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

1946 1946 

1947當多個 PreToolUse hooks 返回不同的決策時,優先順序為 `deny` > `defer` > `ask` > `allow`。1947當多個 PreToolUse hooks 傳回不同的決策時,優先順序為 `deny` > `defer` > `ask` > `allow`。

1948 1948 

1949透過退出 2 阻止的 hook 路由方式與 `"deny"` 相同:Claude 看到 stderr 訊息作為拒絕原因。1949透過退出 2 阻止的 hook 以與 `"deny"` 相同的方式路由:Claude 看到 stderr 訊息作為拒絕原因。

1950 1950 

1951當 hook 返回 `"ask"` 時,顯示給使用者的權限提示包含一個標籤,識別 hook 來自何處:`[settings]` 對於來自任何設定檔或代理 frontmatter 的 hook,`[plugin:<name>]` 對於外掛的 hook,或 `[skill]` 對於來自 skill frontmatter 的 hook。這幫助使用者理解哪個設定來源要求確認。1951當 hook 傳回 `"ask"` 時,顯示給使用者的權限提示包括識別 hook 來源的標籤:`[settings]` 對於來自任何設定檔或代理 frontmatter 的 hook,`[plugin:<name>]` 對於外掛的 hook,或 `[skill]` 對於來自 skill frontmatter 的 hook。這幫助使用者理解哪個配置來源要求確認。

1952 1952 

1953Hook 的 `"ask"` 也在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中強制權限提示:分類器仍然可以拒絕工具呼叫,但無法無聲地核准呼叫。在 v2.1.211 之前,分類器可以核准在 [沙箱](/docs/zh-TW/sandboxing) 外執行的 Bash 命令而不顯示 hook 請求的提示;分類器仍然對該命令應用了自己的安全規則,hook `"deny"` 始終被尊重。1953Hook 的 `"ask"` 也在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中強制權限提示:分類器仍然可以拒絕工具呼叫,但它無法無聲地核准呼叫。在 v2.1.211 之前,分類器可以核准在 [sandbox](/docs/zh-TW/sandboxing) 外執行的 Bash 命令,而不顯示 hook 要求的提示;分類器仍然對該命令應用了自己的安全規則,hook `"deny"` 始終被尊重。

1954 1954 

1955```json theme={null}1955```json theme={null}

1956{1956{


1968 1968 

1969<span id="allow-with-updatedinput" />1969<span id="allow-with-updatedinput" />

1970 1970 

1971在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標,Claude Code 僅在執行有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 以接收提示時提供 `AskUserQuestion` 和 `ExitPlanMode`,例如 Agent SDK `canUseTool` 回呼。這些工具需要使用者互動。返回 `permissionDecision: "allow"` 與 `updatedInput` 一起滿足該要求:hook 從 stdin 讀取工具的輸入,透過您自己的 UI 收集答案,並在 `updatedInput` 中返回它,以便工具執行而不提示。單獨返回 `"allow"` 對這些工具不足夠。對於 `AskUserQuestion`,回顯原始 `questions` 陣列並新增一個 [`answers`](#askuserquestion) 物件,將每個問題的文字對應到選定的答案。1971在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標,Claude Code 僅在執行有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 以接收提示時提供 `AskUserQuestion` 和 `ExitPlanMode`,例如 Agent SDK `canUseTool` 回呼。這些工具需要使用者互動。傳回 `permissionDecision: "allow"` 與 `updatedInput` 一起滿足該要求:hook 從 stdin 讀取工具的輸入,透過您自己的 UI 收集答案,並在 `updatedInput` 中傳回它,以便工具執行而不提示。單獨傳回 `"allow"` 對這些工具不夠。對於 `AskUserQuestion`,回顯原始 `questions` 陣列並新增一個 [`answers`](#askuserquestion) 物件,將每個問題的文字對應到選定的答案。

1972 1972 

1973自 v2.1.199 起,其伺服器使用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 標記的 MCP 工具更嚴格:hook 無法使用 `"allow"` 跳過其核准提示,無論是否有 `updatedInput`,因為 Claude Code 無法確認 hook 收集了工具需要的互動。1973自 v2.1.199 起,其伺服器使用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 標記的 MCP 工具更嚴格:hook 無法使用 `"allow"` 跳過其核准提示,無論是否有 `updatedInput`,因為 Claude Code 無法確認 hook 收集了工具需要的互動。

1974 1974 


1985`AskUserQuestion` 工具是典型情況:Claude 想詢問使用者某事,但沒有終端來回答。`-p` 執行僅在有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時提供 `AskUserQuestion`,例如您使用 `--permission-prompt-tool` 傳遞的 MCP 工具,因此使用一個啟動執行。往返工作如下:1985`AskUserQuestion` 工具是典型情況:Claude 想詢問使用者某事,但沒有終端來回答。`-p` 執行僅在有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時提供 `AskUserQuestion`,例如您使用 `--permission-prompt-tool` 傳遞的 MCP 工具,因此使用一個啟動執行。往返工作如下:

1986 1986 

19871. Claude 呼叫 `AskUserQuestion`。`PreToolUse` hook 觸發。19871. Claude 呼叫 `AskUserQuestion`。`PreToolUse` hook 觸發。

19882. Hook 返回 `permissionDecision: "defer"`。工具不執行。程序以 `stop_reason: "tool_deferred"` 退出,待處理工具呼叫保留在文字記錄中。19882. Hook 傳回 `permissionDecision: "defer"`。工具不執行。程序以 `stop_reason: "tool_deferred"` 退出,待處理工具呼叫保留在文字記錄中。

19893. 呼叫程序從 SDK 結果讀取 `deferred_tool_use`,在其自己的 UI 中呈現問題,並等待答案。19893. 呼叫程序從 SDK 結果讀取 `deferred_tool_use`,在其自己的 UI 中呈現問題,並等待答案。

19904. 呼叫程序執行 `claude -p --resume <session-id>`,使用相同的權限主機。相同的工具呼叫再次觸發 `PreToolUse`。19904. 呼叫程序執行 `claude -p --resume <session-id>`,使用相同的權限主機。相同的工具呼叫再次觸發 `PreToolUse`。

19915. Hook 返回 `permissionDecision: "allow"`,答案在 `updatedInput` 中。工具執行,Claude 繼續。19915. Hook 傳回 `permissionDecision: "allow"`,答案在 `updatedInput` 中。工具執行,Claude 繼續。

1992 1992 

1993`deferred_tool_use` 欄位攜帶工具的 `id`、`name` 和 `input`。`input` 是 Claude 為工具呼叫生成的參數,在執行前捕獲:1993`deferred_tool_use` 欄位攜帶工具的 `id`、`name` 和 `input`。`input` 是 Claude 為工具呼叫產生的參數,在執行前擷取:

1994 1994 

1995```json theme={null}1995```json theme={null}

1996{1996{


2006}2006}

2007```2007```

2008 2008 

2009沒有逾時或重試限制。工作階段保留在磁碟上直到您恢復它,受 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 保留掃描約束,預設情況下在 30 天後刪除工作階段檔案,遵循 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)。如果恢復時答案還未準備好,hook 可以再次返回 `"defer"`,程序以相同方式退出。呼叫程序透過最終從 hook 返回 `"allow"` 或 `"deny"` 來控制何時打破迴圈。2009沒有逾時或重試限制。工作階段保留在磁碟上,直到您恢復它,受 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 保留掃描約束,預設情況下在 30 天後刪除工作階段檔案,遵循 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)。如果恢復時答案還未準備好,hook 可以再次傳回 `"defer"`,程序以相同方式退出。呼叫程序控制何時透過最終傳回 `"allow"` 或 `"deny"` 來打破迴圈。

2010 2010 

2011`"defer"` 僅在 Claude 在回合中進行單個工具呼叫時有效。如果 Claude 同時進行多個工具呼叫,`"defer"` 會被忽略並帶有警告,工具透過正常權限流程進行。約束存在是因為恢復只能重新執行一個工具:沒有辦法延遲批次中的一個呼叫而不留下其他未解決。2011`"defer"` 僅在 Claude 在回合中進行單個工具呼叫時有效。如果 Claude 同時進行多個工具呼叫,`"defer"` 會被忽略,並顯示警告,工具透過正常權限流程進行。約束存在是因為恢復只能重新執行一個工具:沒有辦法延遲批次中的一個呼叫而不留下其他未解決的。

2012 2012 

2013如果恢復時延遲的工具不再可用,程序以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,在 hook 觸發之前。這發生在為恢復的工作階段未連接提供工具的 MCP 伺服器時。`deferred_tool_use` 有效負載仍然包含,以便您可以識別哪個工具遺失。2013如果恢復時延遲的工具不再可用,程序以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,在 hook 觸發之前。這發生在為恢復的工作階段未連接提供工具的 MCP 伺服器時。`deferred_tool_use` 有效負載仍包含在內,以便您可以識別哪個工具遺失。

2014 2014 

2015<Note>2015<Note>

2016 若要在計畫模式中恢復延遲工作階段,請在 `--resume` 時傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),以便 Claude Code 可以呈現計畫以供核准。沒有它,Claude Code 不會恢復計畫模式。需要 Claude Code v2.1.246 或更新版本。2016 若要在 plan mode 中恢復延遲工作階段,請在 `--resume` 旁邊傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),以便 Claude Code 可以呈現計畫以供核准。沒有它,Claude Code 不會恢復 plan mode。需要 Claude Code v2.1.246 或更新版本。

2017 2017 

2018 當您使用 `-p` 恢復時,Claude Code 不會恢復任何其他儲存的權限模式。它在新 `claude -p` 執行會啟動的權限模式中啟動執行,因此如果延遲工作階段使用了一個,請再次傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`。當您使用 `claude --resume <session-id>` 恢復而不使用 `-p` 時,Claude Code 會恢復儲存的權限模式,但 [恢復時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume) 中列出的例外除外。2018 當您使用 `-p` 恢復時,Claude Code 不會恢復任何其他儲存的權限模式。它在新 `claude -p` 執行會啟動的權限模式中啟動執行,因此如果延遲工作階段使用了一個,請再次傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`。當您使用 `claude --resume <session-id>` 恢復而不使用 `-p` 時,Claude Code 恢復儲存的權限模式,但 [恢復時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume) 中列出的例外除外。

2019</Note>2019</Note>

2020 2020 

2021<h3 id="permissionrequest">2021<h3 id="permissionrequest">

2022 PermissionRequest2022 PermissionRequest

2023</h3>2023</h3>

2024 2024 

2025在 Claude Code 即將要求您許可使用工具時執行。在無法顯示提示的工作階段中,例如 [非互動模式](/docs/zh-TW/headless) 中的背景子代理,Claude Code 仍然執行這些 hooks,如果沒有 hook 返回決策,它會拒絕工具呼叫。2025在 Claude Code 即將要求您許可使用工具時執行。在無法顯示提示的工作階段中,例如 [非互動模式](/docs/zh-TW/headless) 中的背景子代理,Claude Code 仍執行這些 hooks,如果沒有 hook 傳回決策,它會拒絕工具呼叫。

2026使用 [PermissionRequest 決策控制](#permissionrequest-decision-control) 代表使用者允許或拒絕。2026使用 [PermissionRequest 決策控制](#permissionrequest-decision-control) 代表使用者允許或拒絕。

2027 2027 

2028當您需要 Claude 要求許可使用工具時的信號時使用此事件。Claude Code 僅在提示等待約六秒後才執行 [Notification](#notification) hook,其中 `permission_prompt` 類型。2028當您需要 Claude 要求許可使用工具時的信號時,使用此事件。Claude Code 僅在提示等待約六秒後才執行 [Notification](#notification) hook,其 `permission_prompt` 類型。

2029 2029 

2030Claude Code 不為沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation) 執行 PermissionRequest hooks。若要獲得該提示的信號,請使用 `permission_prompt` 通知類型。2030Claude Code 不為沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation) 執行 PermissionRequest hooks。若要獲得該提示的信號,請使用 `permission_prompt` 通知類型。

2031 2031 


2037 2037 

2038PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 欄位,如 PreToolUse hooks,但沒有 `tool_use_id`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。可選 `permission_suggestions` 陣列包含 Claude Code 為此請求建議的 [權限更新](#permission-update-entries),例如新增允許規則或更改權限模式。2038PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 欄位,如 PreToolUse hooks,但沒有 `tool_use_id`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。可選 `permission_suggestions` 陣列包含 Claude Code 為此請求建議的 [權限更新](#permission-update-entries),例如新增允許規則或更改權限模式。

2039 2039 

2040`permission_suggestions` 陣列不是您看到的選項的確切清單,因為每個權限對話建立自己的選項。某些對話(例如檔案編輯的對話)根本不讀取陣列,並從請求本身衍生其選項。讀取它的對話仍然可以保留一個選項,其建議保留在陣列中,例如當 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 隱藏規則保存選項時。它也可以提供陣列中沒有建議項目的選項,例如 [**是的,並切換到自動模式**](/docs/zh-TW/permission-modes#switch-permission-modes),它直接更改權限模式而不是透過權限更新。2040`permission_suggestions` 陣列不是您看到的選項的確切清單,因為每個權限對話都建立自己的選項。某些對話(例如檔案編輯的對話)根本不讀取陣列,並從請求本身衍生其選項。讀取它的對話仍然可以保留陣列中的建議,例如當 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 隱藏規則保存選項時。它也可以提供沒有建議項目的選項,例如 [**Yes, and switch to auto mode**](/docs/zh-TW/permission-modes#switch-permission-modes),它直接更改權限模式,而不是透過權限更新。

2041 2041 

2042PreToolUse hooks 在每個工具呼叫之前執行,無論是否需要權限。PermissionRequest hooks 僅在 Claude Code 即將要求您許可時執行,或當它會以其他方式自動拒絕無法提示的呼叫時執行。兩個事件都不對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。2042PreToolUse hooks 在每個工具呼叫之前執行,無論它是否需要權限。PermissionRequest hooks 僅在 Claude Code 即將要求您許可時執行,或當它否則會自動拒絕無法提示的呼叫時執行。兩個事件都不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。

2043 2043 

2044```json theme={null}2044```json theme={null}

2045{2045{


2068 PermissionRequest 決策控制2068 PermissionRequest 決策控制

2069</h4>2069</h4>

2070 2070 

2071`PermissionRequest` hooks 可以允許或拒絕權限請求。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回具有這些事件特定欄位的 `decision` 物件:2071`PermissionRequest` hooks 可以允許或拒絕權限請求。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回具有這些事件特定欄位的 `decision` 物件:

2072 2072 

2073| 欄位 | 描述 |2073| 欄位 | 描述 |

2074| :------------------- | :------------------------------------------------------------------------------------------------------------------ |2074| :------------------- | :------------------------------------------------------------------------------------------------------------------- |

2075| `behavior` | `"allow"` 授予權限,`"deny"` 拒絕。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 仍然被評估,因此返回 `"allow"` 的 hook 不會覆寫匹配的拒絕規則 |2075| `behavior` | `"allow"` 授予權限,`"deny"` 拒絕它。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 仍會被評估,因此傳回 `"allow"` 的 hook 不會覆寫匹配的拒絕規則 |

2076| `updatedInput` | 僅對 `"allow"`:在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。修改的輸入會針對拒絕和詢問規則重新評估 |2076| `updatedInput` | 僅對 `"allow"`:在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。修改的輸入會針對拒絕和詢問規則重新評估 |

2077| `updatedPermissions` | 僅對 `"allow"`:[權限更新項目](#permission-update-entries) 陣列以應用,例如新增允許規則或更改工作階段權限模式 |2077| `updatedPermissions` | 僅對 `"allow"`:[權限更新項目](#permission-update-entries) 陣列以應用,例如新增允許規則或更改工作階段權限模式 |

2078| `message` | 僅對 `"deny"`:告訴 Claude 為什麼權限被拒絕 |2078| `message` | 僅對 `"deny"`:告訴 Claude 為什麼權限被拒絕 |


2098 權限更新項目2098 權限更新項目

2099</h4>2099</h4>

2100 2100 

2101`updatedPermissions` 輸出欄位和 [`permission_suggestions` 輸入欄位](#permissionrequest-input) 都使用相同的項目物件陣列。每個項目都有一個 `type` 決定其他欄位,以及一個 `destination` 控制變更寫入位置。2101`updatedPermissions` 輸出欄位和 [`permission_suggestions` 輸入欄位](#permissionrequest-input) 都使用相同的項目物件陣列。每個項目都有一個 `type`,決定其他欄位,以及一個 `destination`,控制變更的寫入位置。

2102 2102 

2103| `type` | 欄位 | 效果 |2103| `type` | 欄位 | 效果 |

2104| :------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |2104| :------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

2105| `addRules` | `rules`、`behavior`、`destination` | 新增權限規則。`rules` 是 `{toolName, ruleContent?}` 物件的陣列。省略 `ruleContent` 以匹配整個工具。`behavior` 為 `"allow"`、`"deny"` 或 `"ask"` |2105| `addRules` | `rules`、`behavior`、`destination` | 新增權限規則。`rules` 是 `{toolName, ruleContent?}` 物件的陣列。省略 `ruleContent` 以匹配整個工具。`behavior` 為 `"allow"`、`"deny"` 或 `"ask"` |

2106| `replaceRules` | `rules`、`behavior`、`destination` | 將給定 `behavior` 在 `destination` 的所有規則替換為提供的 `rules` |2106| `replaceRules` | `rules`、`behavior`、`destination` | 將 `destination` 處給定 `behavior` 的所有規則替換為提供的 `rules` |

2107| `removeRules` | `rules`、`behavior`、`destination` | 移除給定 `behavior` 的匹配規則 |2107| `removeRules` | `rules`、`behavior`、`destination` | 移除給定 `behavior` 的匹配規則 |

2108| `setMode` | `mode`、`destination` | 更改權限模式。有效模式為 `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan` 和 `manual` 作為 `default` 的別名。`manual` 別名需要 Claude Code v2.1.200 或更新版本 |2108| `setMode` | `mode`、`destination` | 更改權限模式。有效模式為 `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan` 和 `manual` 作為 `default` 的別名。`manual` 別名需要 Claude Code v2.1.200 或更新版本 |

2109| `addDirectories` | `directories`、`destination` | 新增工作目錄。`directories` 是路徑字串的陣列 |2109| `addDirectories` | `directories`、`destination` | 新增工作目錄。`directories` 是路徑字串的陣列 |

2110| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |2110| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |

2111 2111 

2112<Note>2112<Note>

2113 `setMode` 搭配 `bypassPermissions` 僅在您已啟動工作階段時生效,且繞過模式已可用:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [使用者、`--settings` 或受管設定](/docs/zh-TW/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否則更新是無操作。當 [`permissions.disableBypassPermissionsMode`](/docs/zh-TW/permissions#managed-settings) 禁用模式或工作階段在 [受限模式](/docs/zh-TW/cli-reference#cli-flags) 中啟動時,更新也是無操作。2113 `setMode` 搭配 `bypassPermissions` 僅在您已啟動工作階段時生效,且 bypass 模式已可用:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [user、`--settings` 或 managed settings](/docs/zh-TW/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否則更新是無操作。當 [`permissions.disableBypassPermissionsMode`](/docs/zh-TW/permissions#managed-settings) 停用模式或工作階段在 [受限模式](/docs/zh-TW/cli-reference#cli-flags) 中啟動時,更新也是無操作。

2114 2114 

2115 `bypassPermissions` 無論 `destination` 如何都永遠不會作為 `defaultMode` 保留。2115 無論 `destination` 如何,`bypassPermissions` 永遠不會作為 `defaultMode` 保留。

2116</Note>2116</Note>

2117 2117 

2118每個項目上的 `destination` 欄位決定變更是保留在記憶體中還是保留到設定檔。2118每個項目上的 `destination` 欄位決定變更是保留在記憶體中還是保留到設定檔。


2134 2134 

2135在工具名稱上匹配,與 PreToolUse 相同的值。2135在工具名稱上匹配,與 PreToolUse 相同的值。

2136 2136 

2137當工具名稱不是正確的篩選器時更廣泛地匹配:2137當工具名稱不是正確的篩選器時,更廣泛地匹配:

2138 2138 

2139* 若要在任何工具成功完成後執行 hook,省略 `matcher` 或將其設定為 `"*"`。您的 hook 然後可以自己探索變更的內容,例如執行 `git status --porcelain`,它也列出 `git diff` 遺漏的未追蹤檔案。對於失敗的工具呼叫,在 [PostToolUseFailure](#posttoolusefailure) 下新增相同的 hook。2139* 若要在任何工具成功完成後執行 hook,省略 `matcher` 或將其設定為 `"*"`。您的 hook 然後可以自己探索變更了什麼,例如執行 `git status --porcelain`,它也列出 `git diff` 遺漏的未追蹤檔案。對於失敗的工具呼叫,在 [PostToolUseFailure](#posttoolusefailure) 下新增相同的 hook。

2140* 若要在特定檔案變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged)。當 `Bash` 命令或 Claude Code 外的程序重寫相同檔案時,Claude Code 不執行匹配 `Edit|Write` 的 `PostToolUse` hook。2140* 若要在特定檔案在磁碟上變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged)。當 `Bash` 命令或 Claude Code 外的程序重寫相同檔案時,Claude Code 不執行匹配 `Edit|Write` 的 `PostToolUse` hook。

2141 2141 

2142<h4 id="posttooluse-input">2142<h4 id="posttooluse-input">

2143 PostToolUse 輸入2143 PostToolUse 輸入

2144</h4>2144</h4>

2145 2145 

2146`PostToolUse` hooks 在工具已成功執行後觸發。輸入包括 `tool_input`(發送給工具的引數)和 `tool_response`(它返回的結果)。兩者的確切架構取決於工具。檔案工具 `tool_input` 路徑以與 [PreToolUse](#pretooluse-input) 相同的格式到達:始終絕對,使用平台的原生分隔符,因此 Windows 上為反斜線。對於 MCP 工具,輸入也攜帶 [`mcp_server`](#pretooluse-input) 物件。2146`PostToolUse` hooks 在工具已執行成功後觸發。輸入包括 `tool_input`(傳送給工具的引數)和 `tool_response`(它傳回的結果)。兩者的確切架構取決於工具。檔案工具 `tool_input` 路徑以與 [PreToolUse](#pretooluse-input) 相同的格式到達:始終絕對,具有平台的原生分隔符,因此 Windows 上的反斜線。對於 MCP 工具,輸入也攜帶 [`mcp_server`](#pretooluse-input) 物件。

2147 2147 

2148```json theme={null}2148```json theme={null}

2149{2149{


2174 PostToolUse 決策控制2174 PostToolUse 決策控制

2175</h4>2175</h4>

2176 2176 

2177`PostToolUse` hooks 可以在工具執行後提供回饋給 Claude。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定欄位:2177`PostToolUse` hooks 可以在工具執行後提供回饋給 Claude。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:

2178 2178 

2179| 欄位 | 描述 |2179| 欄位 | 描述 |

2180| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2180| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2181| `decision` | `"block"` 在工具結果旁邊新增 `reason`。Claude 仍然看到原始輸出;若要替換它,請使用 `updatedToolOutput` |2181| `decision` | `"block"` 在工具結果旁邊新增 `reason`。Claude 仍看到原始輸出;若要替換它,請使用 `updatedToolOutput` |

2182| `reason` | 當 `decision` 為 `"block"` 時顯示給 Claude 的解釋 |2182| `reason` | 當 `decision` 為 `"block"` 時顯示給 Claude 的說明 |

2183| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |2183| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

2184| `classifierContext` | 關於此呼叫結果的簡短說明,用於 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器而不是 Claude。請參閱 [為自動模式分類器註釋結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |2184| `classifierContext` | 關於此呼叫結果的簡短說明,用於 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器,而不是 Claude。請參閱 [為自動模式分類器註釋結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |

2185| `updatedToolOutput` | 在發送給 Claude 之前用提供的值替換工具的輸出。該值必須符合工具的輸出形狀 |2185| `updatedToolOutput` | 在將工具的輸出傳送給 Claude 之前,用提供的值替換它。該值必須符合工具的輸出形狀 |

2186| `updatedMCPToolOutput` | 僅替換 [MCP 工具](#match-mcp-tools) 的輸出。優先使用 `updatedToolOutput`,它適用於所有工具 |2186| `updatedMCPToolOutput` | 僅替換 [MCP 工具](#match-mcp-tools) 的輸出。優先使用 `updatedToolOutput`,它適用於所有工具 |

2187 2187 

2188下面的範例替換 `Bash` 呼叫的輸出。替換值符合 `Bash` 工具的輸出形狀:2188下面的範例替換 `Bash` 呼叫的輸出。替換值符合 `Bash` 工具的輸出形狀:


2203```2203```

2204 2204 

2205<Warning>2205<Warning>

2206 `updatedToolOutput` 僅更改 Claude 看到的內容。工具已在 hook 觸發時執行,因此任何寫入的檔案、執行的命令或發送的網路請求已生效。遙測(例如 OpenTelemetry 工具跨度和分析事件)也會在 hook 執行前捕獲原始輸出。若要在執行前防止或修改工具呼叫,請改用 [PreToolUse](#pretooluse) hook。2206 `updatedToolOutput` 僅更改 Claude 看到的內容。工具在 hook 觸發時已執行,因此任何寫入的檔案、執行的命令或傳送的網路請求都已生效。遙測(例如 OpenTelemetry 工具跨度和分析事件)也在 hook 執行前擷取原始輸出。若要在執行前防止或修改工具呼叫,請改用 [PreToolUse](#pretooluse) hook。

2207 2207 

2208 替換值必須符合工具的輸出形狀。內建工具返回結構化物件而不是純字串。例如,`Bash` 返回具有 `stdout`、`stderr`、`interrupted` 和 `isImage` 欄位的物件。對於內建工具,不符合工具輸出架構的值會被忽略,使用原始輸出。MCP 工具輸出通過而不進行架構驗證。去除 Claude 需要的錯誤詳細資訊可能導致它在錯誤假設上進行。2208 替換值必須符合工具的輸出形狀。內建工具傳回結構化物件,而不是純字串。例如,`Bash` 傳回具有 `stdout`、`stderr`、`interrupted` 和 `isImage` 欄位的物件。對於內建工具,不符合工具輸出架構的值會被忽略,使用原始輸出。MCP 工具輸出通過而不進行架構驗證。去除 Claude 需要的錯誤詳細資訊可能導致它在錯誤假設上進行。

2209</Warning>2209</Warning>

2210 2210 

2211<h4 id="annotate-a-result-for-the-auto-mode-classifier">2211<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2212 為自動模式分類器註釋結果2212 為自動模式分類器註釋結果

2213</h4>2213</h4>

2214 2214 

2215返回 `classifierContext` 以向 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器發送關於工具呼叫結果的簡短說明,而不是向 Claude。分類器 [永遠不會接收工具結果本身](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions),因此此欄位是支援的方式,在它審查稍後的動作之前告訴它工具呼叫返回的內容。該欄位需要 Claude Code v2.1.236 或更新版本。2215傳回 `classifierContext` 以將關於工具呼叫結果的簡短說明傳送給 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器,而不是 Claude。分類器 [永遠不會接收工具結果本身](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions),因此此欄位是在分類器審查稍後動作之前告訴它關於呼叫傳回內容的支援方式。該欄位需要 Claude Code v2.1.236 或更新版本。

2216 2216 

2217下面的範例告訴分類器查詢的輸出來自何處:2217下面的範例告訴分類器查詢的輸出來自何處:

2218 2218 


2225}2225}

2226```2226```

2227 2227 

2228分類器給予說明的權重取決於您設定 hook 的位置:2228分類器給予說明的權重取決於您配置 hook 的位置:

2229 2229 

2230* **在 Claude Code 中設定的 Hooks**:對於來自設定檔、外掛、skills 和代理 frontmatter 的 hooks,分類器將說明視為未驗證的應用程式提供的背景資訊。說明永遠不會建立使用者意圖,如果它聲稱您核准或請求了某事,分類器會根據您在對話中的自己訊息檢查該聲明2230* **在 Claude Code 中配置的 Hooks**:對於來自設定檔、外掛、skills 和代理 frontmatter 的 hooks,分類器將說明視為未驗證的應用程式提供的背景資訊。說明永遠不會建立使用者意圖,如果它聲稱您核准或要求了某事,分類器會根據您在對話中的自己訊息檢查該聲明

2231* **進程內 Agent SDK 回呼**:當應用程式嵌入 Claude Code 將 hook 註冊為 [TypeScript SDK 回呼](/docs/zh-TW/agent-sdk/hooks) 並在即時工作階段期間返回說明時,分類器可能會將使用者陳述(在說明中轉達)視為使用者意圖。這樣的陳述可以滿足分類器會接受來自您發送的訊息的同意要求,但它永遠不會解除您自己的訊息也無法解除的阻止。工作階段恢復後,Claude Code 將恢復的說明視為未驗證的背景資訊。當兩個群組的 hooks 註釋相同呼叫時,分類器將組合說明視為未驗證2231* **進程內 Agent SDK 回呼**:當應用程式嵌入 Claude Code 並將 hook 註冊為 [TypeScript SDK 回呼](/docs/zh-TW/agent-sdk/hooks) 並在即時工作階段期間傳回說明時,分類器可能會將使用者陳述(在說明中轉達)視為使用者意圖。這樣的陳述可以滿足分類器會接受來自您傳送的訊息的同意要求,但它永遠不會解除您自己的訊息也無法解除的阻止。工作階段恢復後,Claude Code 將恢復的說明視為未驗證的背景資訊。當來自兩個群組的 hooks 註釋相同呼叫時,分類器將組合說明視為未驗證

2232 2232 

2233Claude Code 在傳遞說明時應用這些限制:2233Claude Code 在傳遞說明時應用這些限制:

2234 2234 

2235* **長度**:Claude Code 將一個工具呼叫的說明上限設定為 2,000 個字元,並截斷其餘部分。上限在回應該呼叫的每個 hook 中共享2235* **長度**:Claude Code 將一個工具呼叫的說明上限設定為 2,000 個字元,並截斷其餘部分。上限在每個回應該呼叫的 hook 之間共享

2236* **僅同步回應**:Claude Code 忽略 [在背景執行](#run-hooks-in-the-background) 的 hook 回應中的欄位,因為該回應在 Claude Code 記錄工具結果後到達2236* **僅同步回應**:Claude Code 忽略 [在背景執行](#run-hooks-in-the-background) 的 hook 回應中的欄位,因為該回應在 Claude Code 記錄工具結果後到達

2237* **分類器不記錄的呼叫**:分類器的文字記錄省略唯讀查詢,例如檔案讀取和搜尋。Claude Code 捨棄附加到其中一個呼叫的說明2237* **分類器不記錄的呼叫**:分類器的文字記錄省略唯讀查詢,例如檔案讀取和搜尋。Claude Code 捨棄附加到其中一個呼叫的說明

2238* **與重寫的互動**:當說明描述您使用 `updatedToolOutput` 替換的輸出時,在相同的 hook 回應中返回兩個欄位。如果該重寫被拒絕或另一個 hook 的重寫替換它,Claude Code 會捨棄說明。Claude Code 傳遞您返回的說明而不進行重寫,即使另一個 hook 重寫輸出2238* **與重寫的互動**:當說明描述您使用 `updatedToolOutput` 替換的輸出時,在相同的 hook 回應中傳回兩個欄位。如果該重寫被拒絕或另一個 hook 的重寫替換它,Claude Code 會捨棄說明。Claude Code 傳遞您傳回的說明,而不進行重寫,即使另一個 hook 重寫輸出

2239 2239 

2240<Warning>2240<Warning>

2241 分類器將您放在 `classifierContext` 中的內容讀取為來自託管工作階段的應用程式的資訊,因此不要將不受信任的工具輸出或第三方文字複製到其中。將說明保持為關於此一個呼叫的簡短聲明,例如關於其來源的事實或使用者關於它的陳述;不要使用欄位傳遞不相關的訊息或事件流。2241 分類器將您放在 `classifierContext` 中的內容讀取為來自託管工作階段的應用程式的資訊,因此不要將不受信任的工具輸出或第三方文字複製到其中。將說明保持為關於此一個呼叫的簡短聲明,例如關於其來源的事實或關於它的使用者陳述;不要使用欄位傳遞不相關的訊息或事件流。

2242</Warning>2242</Warning>

2243 2243 

2244<h3 id="posttoolusefailure">2244<h3 id="posttoolusefailure">

2245 PostToolUseFailure2245 PostToolUseFailure

2246</h3>2246</h3>

2247 2247 

2248在啟動執行的工具失敗時執行:工具拋出錯誤,或 MCP 工具返回錯誤結果。使用此來記錄失敗、發送警報或向 Claude 提供更正回饋。2248在開始執行的工具失敗時執行:工具拋出錯誤,或 MCP 工具傳回錯誤結果。使用此來記錄失敗、傳送警報或向 Claude 提供更正回饋。

2249 2249 

2250在工具名稱上匹配,與 PreToolUse 相同的值。2250在工具名稱上匹配,與 PreToolUse 相同的值。

2251 2251 

2252<Note>2252<Note>

2253 此事件不對執行前被拒絕的工具呼叫觸發:未知工具名稱、失敗架構或工具特定驗證的輸入,或權限拒絕。驗證拒絕作為 `tool_use_error` 結果返回,在 hooks 執行前發生,因此它們既不觸發 `PreToolUse` 也不觸發此事件。權限拒絕觸發 `PreToolUse` 但不觸發此事件;請參閱 [PermissionDenied](#permissiondenied)。2253 此事件不會對執行前被拒絕的工具呼叫觸發:未知工具名稱、失敗架構或工具特定驗證的輸入,或權限拒絕。驗證拒絕作為 `tool_use_error` 結果傳回,發生在 hooks 執行之前,因此它們既不觸發 `PreToolUse` 也不觸發此事件。權限拒絕觸發 `PreToolUse` 但不觸發此事件;請參閱 [PermissionDenied](#permissiondenied)。

2254</Note>2254</Note>

2255 2255 

2256<h4 id="posttoolusefailure-input">2256<h4 id="posttoolusefailure-input">

2257 PostToolUseFailure 輸入2257 PostToolUseFailure 輸入

2258</h4>2258</h4>

2259 2259 

2260PostToolUseFailure hooks 接收與 PostToolUse 相同的 `tool_name` 和 `tool_input` 欄位,以及作為頂級欄位的錯誤資訊。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。例如,失敗的 `npm test` 命令可能傳遞:2260PostToolUseFailure hooks 接收與 PostToolUse 相同的 `tool_name` 和 `tool_input` 欄位,以及錯誤資訊作為頂級欄位。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。例如,失敗的 `npm test` 命令可能傳遞:

2261 2261 

2262```json theme={null}2262```json theme={null}

2263{2263{


2279```2279```

2280 2280 

2281| 欄位 | 描述 |2281| 欄位 | 描述 |

2282| :------------- | :------------------------------------------------------------------------- |2282| :------------- | :-------------------------------------------------------------------------- |

2283| `error` | 描述出錯內容的字串。格式取決於失敗的工具 |2283| `error` | 描述出錯內容的字串。格式取決於失敗的工具 |

2284| `is_interrupt` | 可選布林值。當失敗作為中止而不是工具報告的錯誤到達 Claude Code 時為 True。取消執行中的工具不觸發此 hook;工具結果攜帶中斷訊息 |2284| `is_interrupt` | 可選布林值。當失敗作為中止而不是工具報告的錯誤到達 Claude Code 時為 True。取消執行中的工具不會觸發此 hook;工具結果攜帶中斷訊息 |

2285| `duration_ms` | 可選。工具執行時間(毫秒)。不包括權限提示和 PreToolUse hooks 中花費的時間 |2285| `duration_ms` | 可選。工具執行時間(毫秒)。不包括權限提示和 PreToolUse hooks 中花費的時間 |

2286 2286 

2287`error` 字串通常是 Claude 作為失敗工具結果接收的相同文字。其格式因工具和失敗而異。根據 `tool_name`、`is_interrupt` 和第一行 `Exit code N` 鍵入您的 hook;將字串的其餘部分視為顯示文字,而不是穩定格式。2287`error` 字串通常與 Claude 接收的失敗工具結果相同。其格式因工具和失敗而異。在 `tool_name`、`is_interrupt` 和第一行 `Exit code N` 上鍵入您的 hook;將字串的其餘部分視為顯示文字,而不是穩定格式。

2288 2288 

2289* 對於 Bash 和 PowerShell,執行並退出的命令產生第一行 `Exit code N`,然後是命令產生的任何輸出作為一個區塊,其中 stdout 和 stderr 交錯2289* 對於 Bash 和 PowerShell,執行並退出的命令會產生第一行 `Exit code N`,然後是命令產生的任何輸出作為一個區塊,stdout 和 stderr 交錯

2290* 有效負載也可能攜帶裸失敗訊息,沒有退出代碼行,當 Claude Code 無法啟動 shell 程序本身時2290* 有效負載也可能攜帶裸失敗訊息,沒有退出代碼行,當 Claude Code 無法啟動 shell 程序本身時

2291* Claude Code 在 `... [N characters truncated] ...` 標記周圍中間截斷長字串,並可以插入自己的行,例如 `Command timed out after 2m 0s`2291* Claude Code 中間截斷長字串,圍繞 `... [N characters truncated] ...` 標記,並可以插入自己的行,例如 `Command timed out after 2m 0s`

2292 2292 

2293<h4 id="posttoolusefailure-decision-control">2293<h4 id="posttoolusefailure-decision-control">

2294 PostToolUseFailure 決策控制2294 PostToolUseFailure 決策控制

2295</h4>2295</h4>

2296 2296 

2297`PostToolUseFailure` hooks 可以在工具失敗後向 Claude 提供背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定欄位:2297`PostToolUseFailure` hooks 可以在工具失敗後向 Claude 提供背景資訊。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:

2298 2298 

2299| 欄位 | 描述 |2299| 欄位 | 描述 |

2300| :------------------ | :--------------------------------------------------------------------- |2300| :------------------ | :--------------------------------------------------------------------- |


2313 PostToolBatch2313 PostToolBatch

2314</h3>2314</h3>

2315 2315 

2316在批次中的每個工具呼叫都已解決後執行一次,在 Claude Code 發送下一個請求給模型之前。`PostToolUse` 每個工具執行一次,這意味著當 Claude 進行平行工具呼叫時它並發執行。`PostToolBatch` 恰好執行一次,包含完整批次,因此它是注入取決於執行的工具集而不是任何單個工具的背景資訊的正確位置。此事件沒有匹配器。2316在批次中的每個工具呼叫都已解決後執行一次,在 Claude Code 傳送下一個請求給模型之前。`PostToolUse` 每個工具執行一次,這意味著當 Claude 進行平行工具呼叫時它並發執行。`PostToolBatch` 恰好執行一次,具有完整批次,因此它是注入取決於執行的工具集而不是任何單個工具的背景資訊的正確位置。此事件沒有匹配器。

2317 2317 

2318<h4 id="posttoolbatch-input">2318<h4 id="posttoolbatch-input">

2319 PostToolBatch 輸入2319 PostToolBatch 輸入

2320</h4>2320</h4>

2321 2321 

2322除了 [常見輸入欄位](#common-input-fields) 外,PostToolBatch hooks 還會接收 `tool_calls`,一個描述批次中每個工具呼叫的陣列:2322除了 [常見輸入欄位](#common-input-fields) 外,PostToolBatch hooks 接收 `tool_calls`,一個描述批次中每個工具呼叫的陣列:

2323 2323 

2324```json theme={null}2324```json theme={null}

2325{2325{


2345}2345}

2346```2346```

2347 2347 

2348`tool_response` 包含模型在對應 `tool_result` 區塊中接收的相同內容。該值是序列化字串或內容區塊陣列,完全如工具發出的一樣。對於 `Read`,這意味著行號前綴文字而不是原始檔案內容。回應可能很大,因此僅解析您需要的欄位。2348`tool_response` 包含模型在對應 `tool_result` 區塊中接收的相同內容。該值是序列化字串或內容區塊陣列,完全如工具發出的。對於 `Read`,這意味著行號前綴文字,而不是原始檔案內容。回應可能很大,因此僅解析您需要的欄位。

2349 2349 

2350<Note>2350<Note>

2351 `tool_response` 形狀與 `PostToolUse` 的不同。`PostToolUse` 傳遞工具的結構化 `Output` 物件,例如 `Write` 的 `{filePath: "...", type: "create"}`;`PostToolBatch` 傳遞模型看到的序列化 `tool_result` 內容。2351 `tool_response` 形狀與 `PostToolUse` 的不同。`PostToolUse` 傳遞工具的結構化 `Output` 物件,例如 `Write` 的 `{filePath: "...", type: "create"}`;`PostToolBatch` 傳遞序列化 `tool_result` 內容模型看到的。

2352</Note>2352</Note>

2353 2353 

2354<h4 id="posttoolbatch-decision-control">2354<h4 id="posttoolbatch-decision-control">

2355 PostToolBatch 決策控制2355 PostToolBatch 決策控制

2356</h4>2356</h4>

2357 2357 

2358`PostToolBatch` hooks 可以為 Claude 注入背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定欄位:2358`PostToolBatch` hooks 可以為 Claude 注入背景資訊。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:

2359 2359 

2360| 欄位 | 描述 |2360| 欄位 | 描述 |

2361| :------------------ | :------------------------------------------------------------------------------------------------------ |2361| :------------------ | :------------------------------------------------------------------------------------------------------- |

2362| `additionalContext` | 在下一個模型呼叫之前注入一次的背景資訊字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude),了解傳遞詳細資訊、要放入其中的內容以及恢復的工作階段如何處理過去的值 |2362| `additionalContext` | 在下一個模型呼叫之前注入一次的背景資訊字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude),了解傳遞詳細資訊、要放入其中的內容,以及恢復的工作階段如何處理過去的值 |

2363 2363 

2364```json theme={null}2364```json theme={null}

2365{2365{


2370}2370}

2371```2371```

2372 2372 

2373返回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。阻止訊息來自 JSON `reason` 或 `stopReason`,或來自退出 2 時的 stderr。您在文字記錄中看到它作為警告,它保留在對話中,因此 Claude 在對話繼續時看到它。2373傳回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。阻止訊息來自 JSON `reason` 或 `stopReason`,或來自退出 2 的 stderr。您在文字記錄中看到它作為警告,它保留在對話中,因此當對話繼續時 Claude 看到它。

2374 2374 

2375<h3 id="permissiondenied">2375<h3 id="permissiondenied">

2376 PermissionDenied2376 PermissionDenied

2377</h3>2377</h3>

2378 2378 

2379在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 拒絕工具呼叫時執行,包括當它拒絕而沒有分類器判決時,因為 [與自動模式分開的安全檢查拒絕了分類器自己的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其回應未解析。此 hook 僅在自動模式中觸發:當您手動拒絕權限對話、`PreToolUse` hook 阻止呼叫或 `deny` 規則匹配時不執行。使用它來記錄拒絕、調整設定或告訴模型它可能重試工具呼叫。2379在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 拒絕工具呼叫時執行,包括當它拒絕而沒有分類器判決時,因為 [與自動模式分開的安全檢查拒絕了分類器自己的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其回應沒有解析。此 hook 僅在自動模式中觸發:當您手動拒絕權限對話、`PreToolUse` hook 阻止呼叫或 `deny` 規則匹配時,它不執行。使用它來記錄拒絕、調整配置或告訴模型它可能重試工具呼叫。

2380 2380 

2381在工具名稱上匹配,與 PreToolUse 相同的值。2381在工具名稱上匹配,與 PreToolUse 相同的值。

2382 2382 


2384 PermissionDenied 輸入2384 PermissionDenied 輸入

2385</h4>2385</h4>

2386 2386 

2387除了 [常見輸入欄位](#common-input-fields) 外,PermissionDenied hooks 還會接收 `tool_name`、`tool_input`、`tool_use_id` 和 `reason`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。2387除了 [常見輸入欄位](#common-input-fields) 外,PermissionDenied hooks 接收 `tool_name`、`tool_input`、`tool_use_id` 和 `reason`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。

2388 2388 

2389```json theme={null}2389```json theme={null}

2390{2390{


2404```2404```

2405 2405 

2406| 欄位 | 描述 |2406| 欄位 | 描述 |

2407| :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2407| :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2408| `reason` | 拒絕原因。對於分類器判決,在大多數工作階段中它命名方括號中的匹配規則,例如 `[Data Exfiltration]`;請參閱 [審查拒絕](/docs/zh-TW/auto-mode-config#review-denials) 以了解其他形式。對於 [無判決拒絕](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 開頭。對於因分類器模型不可用而拒絕,它是固定文字 `Classifier unavailable` |2408| `reason` | 拒絕原因。對於分類器判決,在大多數工作階段中它命名方括號中的匹配規則,例如 `[Data Exfiltration]`;請參閱 [審查拒絕](/docs/zh-TW/auto-mode-config#review-denials),了解其他形式。對於 [無判決拒絕](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 開頭。對於因分類器模型不可用而拒絕,它是固定文字 `Classifier unavailable` |

2409 2409 

2410<h4 id="permissiondenied-decision-control">2410<h4 id="permissiondenied-decision-control">

2411 PermissionDenied 決策控制2411 PermissionDenied 決策控制

2412</h4>2412</h4>

2413 2413 

2414PermissionDenied hooks 可以告訴模型它可能重試被拒絕的工具呼叫。返回一個 JSON 物件,其中 `hookSpecificOutput.retry` 設定為 `true`:2414PermissionDenied hooks 可以告訴模型它可能重試被拒絕的工具呼叫。傳回一個 JSON 物件,其 `hookSpecificOutput.retry` 設定為 `true`:

2415 2415 

2416```json theme={null}2416```json theme={null}

2417{2417{


2422}2422}

2423```2423```

2424 2424 

2425當 `retry` 為 `true` 時,Claude Code 向對話新增一條訊息,告訴模型它可能重試工具呼叫。Claude Code 不反轉拒絕本身。如果您的 hook 不返回 JSON 或返回 `retry: false`,拒絕成立,模型接收原始拒絕訊息。2425當 `retry` 為 `true` 時,Claude Code 向對話新增一條訊息,告訴模型它可能重試工具呼叫。Claude Code 不反轉拒絕本身。如果您的 hook 不傳回 JSON,或傳回 `retry: false`,拒絕成立,模型接收原始拒絕訊息。

2426 2426 

2427當分類器對動作 [沒有判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 時,Claude Code 忽略 `retry: true`:其回應未解析,或與自動模式分開的安全檢查拒絕了分類器自己的請求。對於這些拒絕,Claude Code 已經在拒絕訊息中告訴模型是否稍後重試或繼續。2427當分類器對動作產生 [無判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 時,Claude Code 忽略 `retry: true`:其回應沒有解析,或與自動模式分開的安全檢查拒絕了分類器自己的請求。對於這些拒絕,Claude Code 已在拒絕訊息中告訴模型是否稍後重試或繼續。

2428 2428 

2429<h3 id="notification">2429<h3 id="notification">

2430 Notification2430 Notification

2431</h3>2431</h3>

2432 2432 

2433在 Claude Code 發送通知時執行。在通知類型上匹配。省略匹配器以對所有通知類型執行 hooks。2433在 Claude Code 傳送通知時執行。在通知類型上匹配。省略匹配器以對所有通知類型執行 hooks。

2434 2434 

2435即使桌面通知已關閉,您也會接收這些 hook 事件:`preferredNotifChannel` 設定(包括 `notifications_disabled`)僅更改您如何被警報,而不是您的 hook 是否執行。2435即使桌面通知關閉,您也會接收這些 hook 事件:`preferredNotifChannel` 設定(包括 `notifications_disabled`)僅更改您如何被警報,而不是您的 hook 是否執行。

2436 2436 

2437| 匹配器 | 何時觸發 |2437| 匹配器 | 何時觸發 |

2438| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2438| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2439| `permission_prompt` | Claude 需要您核准工具使用或沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation),提示已等待約六秒 |2439| `permission_prompt` | Claude 需要您核准工具使用或沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation),提示已等待約六秒 |

2440| `idle_prompt` | Claude 約 60 秒前完成回應,您自那以後未輸入 |2440| `idle_prompt` | Claude 約 60 秒前完成回應,您自那以後沒有輸入 |

2441| `auth_success` | 驗證完成 |2441| `auth_success` | 驗證完成 |

2442| `elicitation_dialog` | MCP 伺服器開啟引出表單,您約六秒未輸入 |2442| `elicitation_dialog` | MCP 伺服器開啟引誘表單,您約六秒沒有輸入 |

2443| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,您約六秒未輸入 |2443| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,您約六秒沒有輸入 |

2444| `elicitation_complete` | MCP 伺服器報告 [URL 模式引出](#elicitation-input) 完成 |2444| `elicitation_complete` | MCP 伺服器報告 [URL 模式引誘](#elicitation-input) 完成 |

2445| `elicitation_response` | MCP 引出回應發送回伺服器 |2445| `elicitation_response` | MCP 引誘回應傳送回伺服器 |

2446| `agent_needs_input` | 背景工作階段在 [代理檢視](/docs/zh-TW/agent-view) 在終端中開啟時開始等待您的輸入,或目前工作階段詢問您 [代理團隊隊友的終端設定問題](/docs/zh-TW/agent-teams#choose-a-display-mode),您約六秒未輸入 |2446| `agent_needs_input` | 背景工作階段在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時開始等待您的輸入,或目前工作階段詢問您 [agent team](/docs/zh-TW/agent-teams) 隊友的終端設定問題,您約六秒沒有輸入 |

2447| `agent_completed` | 背景工作階段完成或失敗。僅在 [代理檢視](/docs/zh-TW/agent-view) 在終端中開啟時觸發 |2447| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時觸發 |

2448| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暫停後繼續您的任務:在重設時,或更早當您在 Claude Code 中執行某事時,例如新增使用額度、升級計畫或切換模型,使使用可用,搭配 [模型設定例外](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) |2448| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暫停後繼續您的任務:在重設時,或更早當您在 Claude Code 中做某事時,例如新增使用額度、升級您的計畫或切換模型,使使用可用,具有 [模型設定例外](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) |

2449| `quota_auto_resume_stale` | claude.ai 使用限制在您的電腦睡眠超過約 30 分鐘時重設。Claude Code 等待您按 `Enter` 而不是繼續。睡眠較短後它繼續並改為觸發 `quota_auto_resume_fired` |2449| `quota_auto_resume_stale` | claude.ai 使用限制在您的電腦睡眠超過約 30 分鐘時重設。Claude Code 等待您按 `Enter` 而不是繼續。在更短的睡眠後它繼續並改為觸發 `quota_auto_resume_fired` |

2450| `quota_auto_resume_disabled` | Claude Code 結束其對 claude.ai 使用限制的等待而不繼續您的任務:[`autoContinueAtUsageLimit`](/docs/zh-TW/settings-reference#autocontinueatusagelimit) 關閉或重設在 Claude Code 啟動的等待期間移動超過 24 小時,繼續的任務持續命中限制,或繼續在到達模型之前被阻止。當您按 `Esc` 或 `Ctrl+C` 或選擇 **不要自動繼續** 時不觸發 |2450| `quota_auto_resume_disabled` | Claude Code 結束其對 claude.ai 使用限制的等待而不繼續您的任務:[`autoContinueAtUsageLimit`](/docs/zh-TW/settings-reference#autocontinueatusagelimit) 關閉或重設在 Claude Code 自己啟動的等待期間移動超過 24 小時,繼續的任務持續命中限制,或繼續在到達模型之前被阻止。當您按 `Esc` 或 `Ctrl+C` 或選擇 **Don't continue automatically** 時不觸發 |

2451 2451 

2452`agent_needs_input` 和 `agent_completed` 類型需要 Claude Code v2.1.198 或更新版本。2452`agent_needs_input` 和 `agent_completed` 類型需要 Claude Code v2.1.198 或更新版本。

2453 2453 


2460<Note>2460<Note>

2461 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 類型與桌面通知共享其計時,因此在終端工作階段中您僅在您似乎遠離終端時看到它們:2461 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 類型與桌面通知共享其計時,因此在終端工作階段中您僅在您似乎遠離終端時看到它們:

2462 2462 

2463 * 期望 `permission_prompt` 一旦您約六秒未輸入。計時器在權限提示出現時啟動,每次按鍵都會延遲它。若要在 Claude 要求許可使用工具時立即執行 hook,請改用 [PermissionRequest](#permissionrequest)。2463 * 期望 `permission_prompt` 一旦您約六秒沒有輸入。計時器在權限提示出現時啟動,每次按鍵都會延遲它。若要在 Claude 要求許可使用工具時立即執行 hook,請改用 [PermissionRequest](#permissionrequest)。

2464 * 期望 `idle_prompt` 約 60 秒後 Claude 完成回應,且僅在您自那以後未輸入時。Claude Code 在等待 claude.ai 使用限制重設時不發送 `idle_prompt`。等待結束時,其中一個 `quota_auto_resume_*` 類型改為觸發。2464 * 期望 `idle_prompt` 約 60 秒後 Claude 完成回應,並且僅當您自那以後沒有輸入時。Claude Code 在等待 claude.ai 使用限制重設時不傳送 `idle_prompt`。當等待自己結束時,其中一個 `quota_auto_resume_*` 類型觸發。

2465 * 期望 `elicitation_dialog` 用於引出表單,或 `elicitation_url_dialog` 用於瀏覽器 URL 請求,一旦您約六秒未輸入。兩者共享與 `permission_prompt` 相同的六秒閘門:計時器在對話出現時啟動,每次按鍵都會延遲它。2465 * 期望 `elicitation_dialog` 對於引誘表單,或 `elicitation_url_dialog` 對於瀏覽器 URL 請求,一旦您約六秒沒有輸入。兩者共享與 `permission_prompt` 相同的六秒閘門:計時器在對話出現時啟動,每次按鍵都會延遲它。

2466 2466 

2467 在另一個對話在螢幕上時到達的權限請求或引出保持相同的六秒閘門,從請求到達時計時。其通知可以在請求仍在開啟對話後面等待時到達您。2467 在另一個對話在螢幕上時到達的權限請求或引誘與開啟的請求保持相同的六秒閘門,從請求到達時計時。其通知可以在請求仍在開啟對話後面等待時到達您。

2468</Note>2468</Note>

2469 2469 

2470Claude Code 在發送權限請求給 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/user-input) 的工作階段中以不同方式計時 `permission_prompt`,這是 Claude Desktop 和 VS Code 擴充功能託管 Claude Code 的方式:2470Claude Code 在傳送權限請求給 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/user-input) 的工作階段中以不同方式計時 `permission_prompt`,這是 Claude Desktop 和 VS Code 擴充功能如何託管 Claude Code 的方式:

2471 2471 

2472* 期望 `permission_prompt` 約六秒後 Claude 要求許可。Claude Code 在您輸入時不延遲它。2472* 期望 `permission_prompt` 約六秒後 Claude 要求許可。Claude Code 在您輸入時不延遲它。

2473* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不執行 `permission_prompt`。2473* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不執行 `permission_prompt`。


2475 2475 

2476在 v2.1.233 之前,`permission_prompt` 在這些工作階段中不觸發。2476在 v2.1.233 之前,`permission_prompt` 在這些工作階段中不觸發。

2477 2477 

2478使用單獨的匹配器根據通知類型執行不同的處理程式。此設定在 Claude 需要權限核准時觸發權限特定警報指令碼,在 Claude 閒置時觸發不同的通知:2478使用單獨的匹配器根據通知類型執行不同的處理程式。此配置在 Claude 需要權限核准時觸發權限特定的警報指令碼,以及在 Claude 閒置時觸發不同的通知:

2479 2479 

2480```json theme={null}2480```json theme={null}

2481{2481{


2508 Notification 輸入2508 Notification 輸入

2509</h4>2509</h4>

2510 2510 

2511除了 [常見輸入欄位](#common-input-fields) 外,Notification hooks 還會接收 `message` 搭配通知文字、可選 `title` 和 `notification_type` 指示哪個類型觸發。2511除了 [常見輸入欄位](#common-input-fields) 外,Notification hooks 接收 `message` 與通知文字、可選 `title` 和 `notification_type` 指示哪個類型觸發。

2512 2512 

2513```json theme={null}2513```json theme={null}

2514{2514{


2522}2522}

2523```2523```

2524 2524 

2525Notification hooks 無法阻止或修改通知。Claude Code 捨棄它們的 `systemMessage` 和 `continue` 欄位,但仍然發出 [`terminalSequence`](#emit-terminal-notifications),這是桌面通知範例所依賴的。Notification hooks 用於副作用,例如將通知轉發到外部服務。2525Notification hooks 無法阻止或修改通知。Claude Code 捨棄它們的 `systemMessage` 和 `continue` 欄位,但仍發出 [`terminalSequence`](#emit-terminal-notifications),這是桌面通知範例所依賴的。Notification hooks 用於副作用,例如將通知轉發到外部服務。

2526 2526 

2527<h3 id="subagentstart">2527<h3 id="subagentstart">

2528 SubagentStart2528 SubagentStart

2529</h3>2529</h3>

2530 2530 

2531在 Claude 使用 Agent 工具生成子代理時執行,當 Claude [恢復子代理](/docs/zh-TW/sub-agents#resume-subagents) 時,以及每次進程內 [代理團隊](/docs/zh-TW/agent-teams) 隊友處理新訊息時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,例如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂子代理](/docs/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。2531在 Claude 使用 Agent 工具生成子代理時執行,當 Claude [恢復子代理](/docs/zh-TW/sub-agents#resume-subagents) 時,以及每次進程內 [agent team](/docs/zh-TW/agent-teams) 隊友處理新訊息時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,例如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂子代理](/docs/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。

2532 2532 

2533對於由 [外掛](/docs/zh-TW/plugins) 提供的子代理,代理類型是外掛範圍識別碼,例如 `my-plugin:reviewer`,而不是裸 frontmatter 名稱。冒號將外掛範圍名稱放在正規表達式路徑上,因此使用 `^` 和 `$` 錨定匹配器以進行精確匹配:`^my-plugin:reviewer$`。2533對於由 [外掛](/docs/zh-TW/plugins) 提供的子代理,代理類型是外掛範圍的識別碼,例如 `my-plugin:reviewer`,而不是裸 frontmatter 名稱。冒號將外掛範圍的名稱放在正規表達式路徑上,因此使用 `^` 和 `$` 錨定匹配器以進行精確匹配:`^my-plugin:reviewer$`。

2534 2534 

2535<h4 id="subagentstart-input">2535<h4 id="subagentstart-input">

2536 SubagentStart 輸入2536 SubagentStart 輸入

2537</h4>2537</h4>

2538 2538 

2539除了 [常見輸入欄位](#common-input-fields) 外,SubagentStart hooks 還會接收 `agent_id` 搭配子代理的唯一識別碼和 `agent_type` 搭配匹配器篩選的代理名稱。2539除了 [常見輸入欄位](#common-input-fields) 外,SubagentStart hooks 接收 `agent_id` 與子代理的唯一識別碼和 `agent_type` 與匹配器篩選的代理名稱。

2540 2540 

2541```json theme={null}2541```json theme={null}

2542{2542{


2549}2549}

2550```2550```

2551 2551 

2552SubagentStart hooks 無法阻止子代理建立,但它們可以將背景資訊注入到子代理中。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您可以返回:2552SubagentStart hooks 無法阻止子代理建立,但它們可以將背景資訊注入子代理。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您可以傳回:

2553 2553 

2554| 欄位 | 描述 |2554| 欄位 | 描述 |

2555| :------------------ | :----------------------------------------------------------------------------- |2555| :------------------ | :----------------------------------------------------------------------------- |


2564}2564}

2565```2565```

2566 2566 

2567當 hook 再次為相同子代理執行時,Claude Code 僅在子代理的背景資訊還不包含早期執行副本時注入返回的背景資訊。在啟動時注入的副本保留在位置,保持子代理的 [prompt cache](/docs/zh-TW/prompt-caching#subagents-and-the-cache) 完整。在 [自動壓縮](/docs/zh-TW/sub-agents#auto-compaction) 捨棄該副本後,Claude Code 在下一次執行時再次注入背景資訊。2567當 hook 再次對同一子代理執行時,Claude Code 僅在子代理的背景資訊還不包含來自較早執行的複本時注入傳回的背景資訊。在啟動時注入的複本保留在位置,保持子代理的 [prompt cache](/docs/zh-TW/prompt-caching#subagents-and-the-cache) 完整。在 [自動壓縮](/docs/zh-TW/sub-agents#auto-compaction) 捨棄該複本後,Claude Code 再次注入下一次執行的背景資訊。

2568 2568 

2569<h3 id="subagentstop">2569<h3 id="subagentstop">

2570 SubagentStop2570 SubagentStop


2576 SubagentStop 輸入2576 SubagentStop 輸入

2577</h4>2577</h4>

2578 2578 

2579除了 [常見輸入欄位](#common-input-fields) 外,SubagentStop hooks 還會接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 欄位是用於匹配器篩選的值。`transcript_path` 是主工作階段的文字記錄,而 `agent_transcript_path` 是子代理自己的文字記錄,儲存在巢狀 `subagents/` 資料夾中。`last_assistant_message` 欄位包含子代理最終回應的文字內容,因此 hooks 可以存取它而不解析文字記錄檔案。2579除了 [常見輸入欄位](#common-input-fields) 外,SubagentStop hooks 接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 欄位是用於匹配器篩選的值。`transcript_path` 是主工作階段的文字記錄,而 `agent_transcript_path` 是子代理自己的文字記錄,儲存在巢狀 `subagents/` 資料夾中。`last_assistant_message` 欄位包含子代理最終回應的文字內容,因此 hooks 可以存取它而不解析文字記錄檔案。

2580 2580 

2581在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理在停止之前透過該工具傳遞其報告。`last_assistant_message` 欄位然後保留子代理的結束文字(如果有),這不是傳遞的報告。報告是該呼叫的 `message` 輸入,`PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上匹配時接收為 `tool_input.message`。2581並非每個 SubagentStop 事件都來自 Claude 生成的子代理。Claude Code 也為其某些自己的功能執行內部代理,例如 [prompt suggestions](/docs/zh-TW/interactive-mode#prompt-suggestions) 和 [`/btw` side questions](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw),SubagentStop 在其中一個完成時觸發。對於這些事件,`agent_type` 是工作階段本身執行的代理名稱,例如使用 [`--agent`](/docs/zh-TW/cli-reference#cli-flags) 或 [`agent` 設定](/docs/zh-TW/settings-reference#agent) 設定的,以及當工作階段執行而不使用一個時的空字串。

2582 2582 

2583SubagentStop hooks 也接收 [Stop 輸入](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 陣列。兩個陣列的範圍是父工作階段,而不是子代理。2583不命名代理類型的 `matcher` 不匹配空 `agent_type`。其匹配器為省略、`""`、`"*"` 或是匹配空字串的正規表達式的 hook 也對具有空 `agent_type` 的事件執行。

2584 

2585在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理在停止之前透過該工具傳遞其報告。`last_assistant_message` 欄位然後保持子代理的結束文字(如果有),這不是傳遞的報告。報告是該呼叫的 `message` 輸入,`PreToolUse` 或 `PostToolUse` hook 匹配 `SubagentHandback` 在 `tool_input.message` 中接收。

2586 

2587SubagentStop hooks 也接收 [Stop input](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 陣列。兩個陣列的範圍是父工作階段,而不是子代理。

2584 2588 

2585```json theme={null}2589```json theme={null}

2586{2590{


2599}2603}

2600```2604```

2601 2605 

2602SubagentStop hooks 使用與 [Stop hooks](#stop-decision-control) 相同的決策控制格式,包括 `hookSpecificOutput.additionalContext` 搭配 `hookEventName` 設定為 `"SubagentStop"`,用於保持子代理執行的非錯誤回饋。返回 `decision: "block"` 搭配 `reason` 保持子代理執行並將 `reason` 作為其下一個指令傳遞給子代理。透過退出 2 阻止的 hook 以相同方式傳遞其 stderr 訊息。若要在子代理返回後將背景資訊注入到父工作階段,請改用 `Agent` 工具上的 [`PostToolUse`](#posttooluse) hook。2606SubagentStop hooks 使用與 [Stop hooks](#stop-decision-control) 相同的決策控制格式,包括 `hookSpecificOutput.additionalContext`,其 `hookEventName` 設定為 `"SubagentStop"`,用於保持子代理執行的非錯誤回饋。傳回 `decision: "block"` 搭配 `reason` 保持子代理執行並將 `reason` 作為其下一個指示傳遞給子代理。透過退出 2 阻止的 hook 以相同方式傳遞其 stderr 訊息。若要在子代理傳回後將背景資訊注入父工作階段,請改用 [PostToolUse](#posttooluse) hook 在 `Agent` 工具上。

2603 2607 

2604<h3 id="taskcreated">2608<h3 id="taskcreated">

2605 TaskCreated2609 TaskCreated


2613 TaskCreated 輸入2617 TaskCreated 輸入

2614</h4>2618</h4>

2615 2619 

2616除了 [常見輸入欄位](#common-input-fields) 外,TaskCreated hooks 還會接收 `task_id`、`task_subject` 和可選的 `task_description`、`teammate_name` 和 `team_name`。2620除了 [常見輸入欄位](#common-input-fields) 外,TaskCreated hooks 接收 `task_id`、`task_subject` 和可選的 `task_description`、`teammate_name` 和 `team_name`。

2617 2621 

2618```json theme={null}2622```json theme={null}

2619{2623{


2641 TaskCreated 決策控制2645 TaskCreated 決策控制

2642</h4>2646</h4>

2643 2647 

2644TaskCreated hook 可以透過兩種方式阻止建立。任一方式,Claude Code 刪除任務並將您的訊息返回給 Claude 作為工具的錯誤。Claude Code 忽略此事件中的 `continue: false`,Claude 繼續工作。2648TaskCreated hook 可以透過兩種方式阻止建立。任一方式,Claude Code 刪除任務並將您的訊息傳回給 Claude 作為工具的錯誤。Claude Code 忽略此事件的 `continue: false`,Claude 繼續工作。

2645 2649 

2646* **退出代碼 2**:Claude Code 將 stderr 文字返回作為訊息。2650* **退出代碼 2**:Claude Code 將 stderr 文字傳回為訊息。

2647* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 將 `reason` 返回作為訊息。2651* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 將 `reason` 傳回為訊息。

2648 2652 

2649此範例阻止主題不遵循所需格式的任務:2653此範例阻止主題不遵循所需格式的任務:

2650 2654 


2665 TaskCompleted2669 TaskCompleted

2666</h3>2670</h3>

2667 2671 

2668在任務被標記為完成時執行。這在兩種情況下觸發:當任何代理透過 TaskUpdate 工具明確標記任務為完成時,或當 [代理團隊](/docs/zh-TW/agent-teams) 隊友以進行中的任務完成其回合時。使用此來強制完成條件,例如通過測試或 lint 檢查,然後任務才能關閉。2672在任務被標記為完成時執行。這在兩種情況下觸發:當任何代理透過 TaskUpdate 工具明確標記任務為完成時,或當 [agent team](/docs/zh-TW/agent-teams) 隊友以進行中的任務完成其回合時。使用此來強制完成標準,例如通過測試或 lint 檢查,然後任務才能關閉。

2669 2673 

2670TaskCompleted hooks 不支援匹配器,對每個出現觸發。2674TaskCompleted hooks 不支援匹配器,對每個出現觸發。

2671 2675 


2673 TaskCompleted 輸入2677 TaskCompleted 輸入

2674</h4>2678</h4>

2675 2679 

2676除了 [常見輸入欄位](#common-input-fields) 外,TaskCompleted hooks 還會接收 `task_id`、`task_subject` 和可選的 `task_description`、`teammate_name` 和 `team_name`。2680除了 [常見輸入欄位](#common-input-fields) 外,TaskCompleted hooks 接收 `task_id`、`task_subject` 和可選的 `task_description`、`teammate_name` 和 `team_name`。

2677 2681 

2678```json theme={null}2682```json theme={null}

2679{2683{


2704 2708 

2705TaskCompleted hooks 支援兩種方式來控制任務完成:2709TaskCompleted hooks 支援兩種方式來控制任務完成:

2706 2710 

2707* **退出代碼 2**:任務未被標記為完成,stderr 訊息作為回饋反饋給模型。2711* **退出代碼 2**:任務未被標記為完成,stderr 訊息被反饋給模型作為回饋。

2708* **JSON `{"continue": false, "stopReason": "..."}`**:當隊友完成其回合觸發事件時,完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。當 `TaskUpdate` 工具觸發事件時,Claude Code 忽略 `continue: false`;退出代碼 2 仍然阻止完成。2712* **JSON `{"continue": false, "stopReason": "..."}`**:當隊友完成其回合觸發事件時,完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。當 `TaskUpdate` 工具觸發事件時,Claude Code 忽略 `continue: false`;退出代碼 2 仍然阻止完成。

2709 2713 

2710此範例執行測試並在它們失敗時阻止任務完成:2714此範例執行測試並在它們失敗時阻止任務完成:


2730在主 Claude Code 代理完成回應時執行。如果停止發生是由於使用者中斷,則不執行。API 錯誤改為觸發 [StopFailure](#stopfailure)。2734在主 Claude Code 代理完成回應時執行。如果停止發生是由於使用者中斷,則不執行。API 錯誤改為觸發 [StopFailure](#stopfailure)。

2731 2735 

2732<Tip>2736<Tip>

2733 [`/goal`](/docs/zh-TW/goal) 命令是工作階段範圍提示型 Stop hook 的內建快捷方式。當您想讓 Claude 在不編寫 hook 設定的情況下朝著條件繼續工作時使用它。2737 [`/goal`](/docs/zh-TW/goal) 命令是工作階段範圍提示型 Stop hook 的內建快捷方式。當您想讓 Claude 在不編寫 hook 配置的情況下朝著條件繼續工作時,使用它。

2734</Tip>2738</Tip>

2735 2739 

2736<h4 id="stop-input">2740<h4 id="stop-input">

2737 Stop 輸入2741 Stop 輸入

2738</h4>2742</h4>

2739 2743 

2740除了 [常見輸入欄位](#common-input-fields) 外,Stop hooks 還會接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 欄位在 Claude Code 已作為 stop hook 的結果繼續時為 `true`。檢查此值或處理文字記錄以避免在永遠不會解決的條件上阻止。Claude Code 在 8 個連續阻止後覆寫 hook 並結束回合。2744除了 [常見輸入欄位](#common-input-fields) 外,Stop hooks 接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 欄位在 Claude Code 已作為 stop hook 的結果繼續時為 `true`。檢查此值或處理文字記錄以避免在永遠不會解決的條件上阻止。Claude Code 在 8 個連續阻止後覆寫 hook 並結束回合。

2741 2745 

2742`last_assistant_message` 欄位包含 Claude 最終回應的文字內容,因此 hooks 可以存取它而不解析文字記錄檔案。對於作用於剛完成回合的 hooks,例如朗讀或通知 hooks,使用此欄位而不是讀取 `transcript_path`:文字記錄檔案不保證在所有版本上的 Stop 時間包含最終訊息。2746`last_assistant_message` 欄位包含 Claude 最終回應的文字內容,因此 hooks 可以存取它而不解析文字記錄檔案。對於作用於剛完成回合的 hooks,例如朗讀或通知 hooks,使用此欄位而不是讀取 `transcript_path`:文字記錄檔案不保證在所有版本上的 Stop 時間包含最終訊息。

2743 2747 

2744`background_tasks` 和 `session_crons` 陣列讓 hooks 區分「工作階段完成」與「工作階段暫停等待背景工作喚醒它」。當任務登錄可到達時兩個陣列都存在,當沒有任何內容在進行中或排程時為空。2748`background_tasks` 和 `session_crons` 陣列讓 hooks 區分「工作階段完成」與「工作階段暫停等待背景工作喚醒它」。當任務登錄可到達時兩個陣列都存在,當沒有任何東西在飛行或排程時為空。

2745 2749 

2746`background_tasks` 中的每個項目描述一個進行中的任務並使用這些欄位:2750`background_tasks` 中的每個項目描述一個進行中的任務,並使用這些欄位:

2747 2751 

2748| 欄位 | 描述 |2752| 欄位 | 描述 |

2749| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------- |2753| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------- |

2750| `id` | 任務識別碼 |2754| `id` | 任務識別碼 |

2751| `type` | 友善任務類型標籤,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每個標籤識別哪個 Claude Code 功能建立了任務。對於無法識別的類型回退到原始判別式 |2755| `type` | 友善的任務類型標籤,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每個標籤識別哪個 Claude Code 功能建立了任務。對於無法識別的類型,回退到原始判別式 |

2752| `status` | 目前任務狀態 |2756| `status` | 目前任務狀態 |

2753| `description` | 自由文字描述,上限為 1000 個字元,當剪裁時在字串中帶有 `… [+N chars]` 標記 |2757| `description` | 自由文字描述,上限 1000 個字元,當剪裁時在字串中有 `… [+N chars]` 標記 |

2754| `command` | Shell 命令行,上限為 1000 個字元。僅對 `shell` 任務出現 |2758| `command` | Shell 命令行,上限 1000 個字元。僅對 `shell` 任務出現 |

2755| `agent_type` | 子代理類型名稱。僅對 `subagent` 任務出現 |2759| `agent_type` | 子代理類型名稱。僅對 `subagent` 任務出現 |

2756| `server` | MCP 伺服器名稱。僅對 `monitor` 和 `MCP task` 任務出現 |2760| `server` | MCP 伺服器名稱。僅對 `monitor` 和 `MCP task` 任務出現 |

2757| `tool` | MCP 工具名稱。僅對 `monitor` 和 `MCP task` 任務出現 |2761| `tool` | MCP 工具名稱。僅對 `monitor` 和 `MCP task` 任務出現 |

2758| `name` | 工作流程名稱。僅對 `workflow` 任務出現 |2762| `name` | 工作流程名稱。僅對 `workflow` 任務出現 |

2759 2763 

2760`session_crons` 中的每個項目描述一個工作階段範圍排程喚醒,來自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:2764`session_crons` 中的每個項目描述一個工作階段範圍的排程喚醒,來自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:

2761 2765 

2762| 欄位 | 描述 |2766| 欄位 | 描述 |

2763| :---------- | :---------------------------------------------------- |2767| :---------- | :--------------------------------------------------- |

2764| `id` | Cron 任務識別碼 |2768| `id` | Cron 任務識別碼 |

2765| `schedule` | Cron 表達式,例如 `0 9 * * 1-5` |2769| `schedule` | Cron 表達式,例如 `0 9 * * 1-5` |

2766| `recurring` | 對於一次性喚醒(其排程編碼單個觸發時間)為 `false`,對於在每個匹配上重新觸發的任務為 `true` |2770| `recurring` | 對於其排程編碼單個觸發時間的一次性喚醒為 `false`,對於在每個匹配上重新觸發的任務為 `true` |

2767| `prompt` | Cron 觸發時提交的提示,上限為 1000 個字元,帶有相同的 `… [+N chars]` 標記 |2771| `prompt` | 當 cron 觸發時提交的提示,上限 1000 個字元,具有相同的 `… [+N chars]` 標記 |

2768 2772 

2769此範例顯示一個 Stop 輸入,其中一個進行中的 shell 任務和一個循環 cron:2773此範例顯示一個 Stop 輸入,具有一個進行中的 shell 任務和一個循環 cron:

2770 2774 

2771```json theme={null}2775```json theme={null}

2772{2776{


2801 Stop 決策控制2805 Stop 決策控制

2802</h4>2806</h4>

2803 2807 

2804`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否繼續。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定欄位:2808`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否繼續。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:

2805 2809 

2806| 欄位 | 描述 |2810| 欄位 | 描述 |

2807| :------------------------------------- | :------------------------------------------------------------------------------------------ |2811| :------------------------------------- | :------------------------------------------------------------------------------------------- |

2808| `decision` | `"block"` 防止 Claude 停止。省略以允許 Claude 停止 |2812| `decision` | `"block"` 防止 Claude 停止。省略以允許 Claude 停止 |

2809| `reason` | 當 `decision` 為 `"block"` 時需要。告訴 Claude 為什麼它應該繼續 |2813| `reason` | 當 `decision` 為 `"block"` 時需要。告訴 Claude 為什麼它應該繼續 |

2810| `hookSpecificOutput.additionalContext` | Claude 的非錯誤回饋。對話繼續,以便 Claude 可以作用於它,但與 `decision: "block"` 不同,它在文字記錄中顯示為 hook 回饋而不是 hook 錯誤 |2814| `hookSpecificOutput.additionalContext` | Claude 的非錯誤回饋。對話繼續,以便 Claude 可以作用於它,但與 `decision: "block"` 不同,它在文字記錄中顯示為 hook 回饋,而不是 hook 錯誤 |

2811 2815 

2812透過退出 2 阻止的 hook 路由方式與 `reason` 相同:Claude 接收 stderr 訊息作為為什麼它應該繼續的解釋。2816透過退出 2 阻止的 hook 以與 `reason` 相同的方式路由:Claude 接收 stderr 訊息作為為什麼它應該繼續的說明。

2813 2817 

2814```json theme={null}2818```json theme={null}

2815{2819{


2818}2822}

2819```2823```

2820 2824 

2821當 hook 按設計工作並給予 Claude 指導時使用 `additionalContext`,例如「在完成前執行測試套件」。它透過與 `decision: "block"` 相同的迴圈保護保持對話進行,即 `stop_hook_active` 輸入和 8 個連續繼續上限,但文字記錄將其標籤為 `Stop hook feedback`,不顯示 hook 錯誤通知:2825當 hook 按設計工作並給予 Claude 指導時,使用 `additionalContext`,例如「在完成前執行測試套件」。它透過與 `decision: "block"` 相同的迴圈保護保持對話進行,即 `stop_hook_active` 輸入和 8 個連續繼續上限,但文字記錄將其標籤為 `Stop hook feedback`,不顯示 hook 錯誤通知:

2822 2826 

2823```json theme={null}2827```json theme={null}

2824{2828{


2833 StopFailure2837 StopFailure

2834</h3>2838</h3>

2835 2839 

2836在回合因 API 錯誤而結束時執行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的輸出和退出代碼,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此來記錄失敗、發送警報或在 Claude 因速率限制、驗證問題或其他 API 錯誤而無法完成回應時採取恢復動作。2840在回合因 API 錯誤結束時執行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的輸出和退出代碼,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此來記錄失敗、傳送警報或在 Claude 因速率限制、驗證問題或其他 API 錯誤無法完成回應時採取復原動作。

2837 2841 

2838<h4 id="stopfailure-input">2842<h4 id="stopfailure-input">

2839 StopFailure 輸入2843 StopFailure 輸入

2840</h4>2844</h4>

2841 2845 

2842除了 [常見輸入欄位](#common-input-fields) 外,StopFailure hooks 還會接收 `error`、可選 `error_details` 和可選 `last_assistant_message`。`error` 欄位識別錯誤類型並用於匹配器篩選。2846除了 [常見輸入欄位](#common-input-fields) 外,StopFailure hooks 接收 `error`、可選 `error_details` 和可選 `last_assistant_message`。`error` 欄位識別錯誤類型,用於匹配器篩選。

2843 2847 

2844| 欄位 | 描述 |2848| 欄位 | 描述 |

2845| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2849| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2846| `error` | 錯誤類型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |2850| `error` | 錯誤類型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |

2847| `error_details` | 關於錯誤的其他詳細資訊(如果可用) |2851| `error_details` | 關於錯誤的額外詳細資訊(如果可用) |

2848| `last_assistant_message` | 在對話中顯示的呈現錯誤文字。與 `Stop` 和 `SubagentStop` 不同,其中此欄位保留 Claude 的對話輸出,對於 `StopFailure` 它包含 API 錯誤字串本身,例如 `"API Error: Rate limit reached"` |2852| `last_assistant_message` | 在對話中顯示的呈現錯誤文字。與 `Stop` 和 `SubagentStop` 不同,其中此欄位保持 Claude 的對話輸出,對於 `StopFailure` 它包含 API 錯誤字串本身,例如 `"API Error: Rate limit reached"` |

2849 2853 

2850```json theme={null}2854```json theme={null}

2851{2855{


2865 TeammateIdle2869 TeammateIdle

2866</h3>2870</h3>

2867 2871 

2868在 [代理團隊](/docs/zh-TW/agent-teams) 隊友在完成其回合後即將閒置時執行。使用此來強制品質閘門,然後隊友停止工作,例如要求通過 lint 檢查或驗證輸出檔案存在。2872在 [agent team](/docs/zh-TW/agent-teams) 隊友在完成其回合後即將閒置時執行。使用此來強制品質閘門,然後隊友停止工作,例如要求通過 lint 檢查或驗證輸出檔案存在。

2869 2873 

2870TeammateIdle hooks 不支援匹配器,對每個出現觸發。2874TeammateIdle hooks 不支援匹配器,對每個出現觸發。

2871 2875 


2873 TeammateIdle 輸入2877 TeammateIdle 輸入

2874</h4>2878</h4>

2875 2879 

2876除了 [常見輸入欄位](#common-input-fields) 外,TeammateIdle hooks 還會接收 `teammate_name` 和 `team_name`。2880除了 [常見輸入欄位](#common-input-fields) 外,TeammateIdle hooks 接收 `teammate_name` 和 `team_name`。

2877 2881 

2878```json theme={null}2882```json theme={null}

2879{2883{


2898 2902 

2899TeammateIdle hooks 支援兩種方式來控制隊友行為:2903TeammateIdle hooks 支援兩種方式來控制隊友行為:

2900 2904 

2901* **退出代碼 2**:隊友接收 stderr 訊息作為回饋並繼續工作而不是閒置。2905* **退出代碼 2**:隊友接收 stderr 訊息作為回饋,並繼續工作而不是閒置。

2902* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。2906* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。

2903 2907 

2904此範例檢查建置成品存在,然後允許隊友閒置:2908此範例檢查建置成品存在,然後允許隊友閒置:


2918 ConfigChange2922 ConfigChange

2919</h3>2923</h3>

2920 2924 

2921在工作階段期間設定檔變更時執行。使用此來稽核設定變更、強制安全原則或阻止對設定檔的未授權修改。2925在工作階段期間配置檔案變更時執行。使用此來稽核設定變更、強制安全原則或阻止對配置檔案的未授權修改。

2922 2926 

2923Claude Code 在設定檔、受管原則檔案或 skill 檔案變更時執行 ConfigChange hooks。對於受管原則,它僅在 `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更時執行。它應用 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 和對 macOS 受管偏好設定或 Windows 登錄原則的變更而不執行。在 WSL 上搭配 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings),它也應用在其原則輪詢上變更的 Windows 端受管設定檔而不執行。2927Claude Code 在設定檔、受管原則檔案或 skill 檔案變更時執行 ConfigChange hooks。對於受管原則,它僅在 `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更時執行。它應用 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 和對 macOS 受管偏好設定或 Windows 登錄原則的變更,而不執行它們。在 WSL 上搭配 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings),它也在其原則輪詢上應用變更的 Windows 端受管設定檔,而不執行它們。

2924 2928 

2925匹配器篩選設定來源:2929匹配器篩選配置來源:

2926 2930 

2927| 匹配器 | 何時觸發 |2931| 匹配器 | 何時觸發 |

2928| :----------------- | :----------------------------------------------------- |2932| :----------------- | :----------------------------------------------------- |


2932| `policy_settings` | `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更 |2936| `policy_settings` | `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更 |

2933| `skills` | `.claude/skills/` 中的 skill 檔案變更 |2937| `skills` | `.claude/skills/` 中的 skill 檔案變更 |

2934 2938 

2935此範例記錄所有設定變更以進行安全稽核:2939此範例記錄所有配置變更以進行安全稽核:

2936 2940 

2937```json theme={null}2941```json theme={null}

2938{2942{


2956 ConfigChange 輸入2960 ConfigChange 輸入

2957</h4>2961</h4>

2958 2962 

2959除了 [常見輸入欄位](#common-input-fields) 外,ConfigChange hooks 還會接收 `source` 和可選的 `file_path`。`source` 欄位指示哪個設定類型變更,`file_path` 提供修改的特定檔案的路徑。2963除了 [常見輸入欄位](#common-input-fields) 外,ConfigChange hooks 接收 `source` 和可選的 `file_path`。`source` 欄位指示哪個配置類型變更,`file_path` 提供修改的特定檔案的路徑。

2960 2964 

2961```json theme={null}2965```json theme={null}

2962{2966{


2973 ConfigChange 決策控制2977 ConfigChange 決策控制

2974</h4>2978</h4>

2975 2979 

2976ConfigChange hooks 可以阻止設定變更生效。使用退出代碼 2 或 JSON `decision` 來防止變更。被阻止時,新設定不會套用到執行中的工作階段。2980ConfigChange hooks 可以阻止配置變更生效。使用退出代碼 2 或 JSON `decision` 來防止變更。當被阻止時,新設定不會套用到執行中的工作階段。

2977 2981 

2978| 欄位 | 描述 |2982| 欄位 | 描述 |

2979| :--------- | :-------------------------- |2983| :--------- | :-------------------------- |

2980| `decision` | `"block"` 防止設定變更被套用。省略以允許變更 |2984| `decision` | `"block"` 防止配置變更被應用。省略以允許變更 |

2981| `reason` | 接受但永遠不顯示 |2985| `reason` | 接受但永遠不顯示 |

2982 2986 

2983```json theme={null}2987```json theme={null}


2987}2991}

2988```2992```

2989 2993 

2990`policy_settings` 變更無法被阻止。當機器上的受管設定檔變更時,Hooks 仍然對 `policy_settings` 來源觸發,因此您可以使用它們來記錄這些編輯,但任何阻止決策都被忽略。這確保企業受管設定始終生效。當 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 到達或重新整理時,Claude Code 不執行 `ConfigChange` hooks。2994`policy_settings` 變更無法被阻止。當機器上的受管設定檔變更時,Hooks 仍對 `policy_settings` 來源觸發,因此您可以使用它們來記錄這些編輯,但任何阻止決策都會被忽略。這確保企業受管設定始終生效。當 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 到達或重新整理時,Claude Code 不執行 `ConfigChange` hooks。

2991 2995 

2992Claude Code 作用於 ConfigChange hook 的 JSON 輸出中的阻止決策,並捨棄 `systemMessage` 和 `continue`。被阻止的變更不向您或 Claude 呈現任何訊息,無論您是否使用 `reason` 或退出 2 時的 stderr 阻止。Claude Code 僅將一行寫入偵錯日誌。2996Claude Code 從 ConfigChange hook 的 JSON 輸出作用於阻止決策,並捨棄 `systemMessage` 和 `continue`。被阻止的變更不會向您或 Claude 呈現任何訊息,無論您使用 `reason` 還是退出 2 的 stderr 阻止。Claude Code 僅將一行寫入 debug log。

2993 2997 

2994<h3 id="cwdchanged">2998<h3 id="cwdchanged">

2995 CwdChanged2999 CwdChanged

2996</h3>3000</h3>

2997 3001 

2998在主對話中的 shell 命令變更工作目錄時執行,例如當 Claude 執行 `cd` 命令時。使用此來對目錄變更做出反應:重新載入環境變數、啟動專案特定工具鏈或自動執行設定指令碼。與 [FileChanged](#filechanged) 配對,用於 [direnv](https://direnv.net/) 等管理每個目錄環境的工具。3002在主對話中的 shell 命令變更工作目錄時執行,例如當 Claude 執行 `cd` 命令時。使用此來對目錄變更做出反應:重新載入環境變數、啟用專案特定的工具鏈,或自動執行設定指令碼。與 [FileChanged](#filechanged) 配對,用於 [direnv](https://direnv.net/) 等管理每個目錄環境的工具。

2999 3003 

3000CwdChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到下一個 CwdChanged 事件,當 Claude Code 清除它們時。3004CwdChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 CwdChanged 事件,當 Claude Code 清除它們時。

3001 3005 

3002CwdChanged 不支援匹配器,對每個出現觸發。3006CwdChanged 不支援匹配器,對每個出現觸發。

3003 3007 


3005 CwdChanged 輸入3009 CwdChanged 輸入

3006</h4>3010</h4>

3007 3011 

3008除了 [常見輸入欄位](#common-input-fields) 外,CwdChanged hooks 還會接收 `old_cwd` 和 `new_cwd`。3012除了 [常見輸入欄位](#common-input-fields) 外,CwdChanged hooks 接收 `old_cwd` 和 `new_cwd`。

3009 3013 

3010```json theme={null}3014```json theme={null}

3011{3015{


3022 CwdChanged 輸出3026 CwdChanged 輸出

3023</h4>3027</h4>

3024 3028 

3025除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 以動態設定 [FileChanged](#filechanged) 監視的檔案路徑:3029除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,CwdChanged hooks 可以傳回 `watchPaths` 以動態設定 [FileChanged](#filechanged) 監視的檔案路徑:

3026 3030 

3027| 欄位 | 描述 |3031| 欄位 | 描述 |

3028| :----------- | :--------------------------------------------------------------------- |3032| :----------- | :----------------------------------------------------------- |

3029| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。您的 `matcher` 設定中的路徑始終被監視。返回空陣列以清除動態清單,這在進入新目錄時是典型的 |3033| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。進入新目錄時傳回空陣列是典型的 |

3030 3034 

3031CwdChanged hooks 沒有決策控制。它們無法阻止目錄變更。3035CwdChanged hooks 沒有決策控制。它們無法阻止目錄變更。

3032 3036 

3033Claude Code 從其 JSON 輸出讀取 `watchPaths` 和 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它將 `systemMessage` 顯示為簡短終端通知。訊息不到達 SDK 訊息流。3037Claude Code 從其 JSON 輸出讀取 `watchPaths` 和 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它將 `systemMessage` 顯示為簡短的終端通知。訊息不到達 SDK 訊息流。

3034 3038 

3035<h3 id="directoryadded">3039<h3 id="directoryadded">

3036 DirectoryAdded3040 DirectoryAdded

3037</h3>3041</h3>

3038 3042 

3039在您使用 `/add-dir` 命令在工作階段中期新增工作目錄後執行,或在 SDK 用戶端使用 `register_repo_root` 控制請求新增工作目錄後執行。使用此來準備新增的儲存庫,例如安裝其相依性。3043在您使用 `/add-dir` 命令在工作階段中新增工作目錄後執行,或在 SDK 用戶端使用 `register_repo_root` 控制請求新增一個後執行。使用此來準備新增的儲存庫,例如安裝其相依性。

3040 3044 

3041Claude Code 在以下情況下不觸發此事件:3045Claude Code 在以下情況下不觸發此事件:

3042 3046 


3044* 您在 `/permissions` Workspace 標籤上新增目錄3048* 您在 `/permissions` Workspace 標籤上新增目錄

3045* 您新增已是工作目錄或在其內部的目錄3049* 您新增已是工作目錄或在其內部的目錄

3046 3050 

3047Claude Code 在重新整理沙箱和權限狀態後觸發 DirectoryAdded,因此沙箱工具在您的 hook 執行時已看到新目錄。Hook 命令本身執行未沙箱化。3051Claude Code 在重新整理 sandbox 和權限狀態後觸發 DirectoryAdded,因此沙箱工具在您的 hook 執行時已看到新目錄。Hook 命令本身執行未沙箱化。

3048 3052 

3049Claude Code 不等待 hook:新增立即完成,hook 在背景執行,使用 600 秒預設逾時。3053Claude Code 不等待 hook:新增立即完成,hook 在背景執行,具有 600 秒的預設逾時。

3050 3054 

3051匹配器篩選目錄的新增方式:3055匹配器篩選目錄的新增方式:

3052 3056 


3059 DirectoryAdded 輸入3063 DirectoryAdded 輸入

3060</h4>3064</h4>

3061 3065 

3062除了 [常見輸入欄位](#common-input-fields) 外,DirectoryAdded hooks 還會接收 `directory` 和 `source`。3066除了 [常見輸入欄位](#common-input-fields) 外,DirectoryAdded hooks 接收 `directory` 和 `source`。

3063 3067 

3064| 欄位 | 描述 |3068| 欄位 | 描述 |

3065| :---------- | :------------------------------------------------------------------------ |3069| :---------- | :------------------------------------------------------------------------ |

3066| `directory` | 新增的目錄的絕對路徑 |3070| `directory` | 已新增目錄的絕對路徑 |

3067| `source` | 目錄如何被新增,`/add-dir` 為 `"slash_command"` 或 SDK 控制請求為 `"register_repo_root"` |3071| `source` | 目錄如何被新增,`/add-dir` 為 `"slash_command"` 或 SDK 控制請求為 `"register_repo_root"` |

3068 3072 

3069```json theme={null}3073```json theme={null}


3079 3083 

3080DirectoryAdded hooks 沒有決策控制。它們無法阻止新增,這在 hook 執行時已完成。Claude Code 從其 JSON 輸出捨棄 `continue` 欄位,並根據來源以不同方式呈現其餘部分:3084DirectoryAdded hooks 沒有決策控制。它們無法阻止新增,這在 hook 執行時已完成。Claude Code 從其 JSON 輸出捨棄 `continue` 欄位,並根據來源以不同方式呈現其餘部分:

3081 3085 

3082* `slash_command`:Claude Code 將 hook 的 `systemMessage` 傳遞給 Claude 作為下一個對話回合的背景資訊,而不是向您顯示。失敗 hooks 的計數出現在文字記錄中。完整失敗輸出進入偵錯日誌3086* `slash_command`:Claude Code 將 hook 的 `systemMessage` 作為背景資訊傳遞給 Claude,在下一個對話回合上,而不是向您顯示。失敗 hooks 的計數出現在文字記錄中。完整失敗輸出進入 debug log

3083* `register_repo_root`:Claude Code 僅將 `systemMessage` 輸出和失敗輸出寫入偵錯日誌3087* `register_repo_root`:Claude Code 僅將 `systemMessage` 輸出和失敗輸出寫入 debug log

3084 3088 

3085<h3 id="filechanged">3089<h3 id="filechanged">

3086 FileChanged3090 FileChanged

3087</h3>3091</h3>

3088 3092 

3089在監視的檔案在磁碟上變更時執行。Claude Code 使用檔案系統監視器偵測變更,而不是檢查工具呼叫,因此無論什麼變更檔案,它都執行 hook:`Edit` 或 `Write` 工具呼叫、Claude 使用 `Bash` 執行的指令碼,或 Claude Code 外的程序。常見用途是在專案設定檔變更時重新載入環境變數。3093在監視的檔案在磁碟上變更時執行。Claude Code 使用檔案系統監視器偵測變更,而不是檢查工具呼叫,因此無論什麼變更檔案,它都執行 hook:`Edit` 或 `Write` 工具呼叫、Claude 使用 `Bash` 執行的指令碼,或 Claude Code 外的程序。常見用途是在專案配置檔案變更時重新載入環境變數。

3090 3094 

3091此事件的 `matcher` 有兩個角色:3095此事件的 `matcher` 有兩個角色:

3092 3096 

3093* **建立監視清單**:值在 `|` 上分割,每個段落註冊為工作目錄中的字面檔案名稱,因此 `".envrc|.env"` 監視恰好這兩個檔案。正規表達式模式在這裡不有用:`^\.env` 之類的值會監視字面名稱為 `^\.env` 的檔案。3097* **建立監視清單**:值在 `|` 上分割,每個段落註冊為工作目錄中的字面檔案名稱,因此 `".envrc|.env"` 恰好監視這兩個檔案。正規表達式模式在這裡不有用:`^\.env` 之類的值會監視字面名稱為 `^\.env` 的檔案。

3094* **篩選哪些 hooks 執行**:當監視的檔案變更時,相同的值使用標準 [匹配器規則](#matcher-patterns) 針對變更檔案的基名篩選哪些 hook 群組執行。3098* **篩選哪些 hooks 執行**:當監視的檔案變更時,相同的值使用標準 [匹配器規則](#matcher-patterns) 針對變更檔案的基名篩選哪個 hook 群組執行。

3095 3099 

3096此範例在任何變更後規範化 `data.csv` 中的行結尾,包括 `Bash` 命令或外部指令碼重寫檔案:3100此範例在任何變更後正規化 `data.csv` 中的行結尾,包括 `Bash` 命令或外部指令碼重寫檔案:

3097 3101 

3098```json theme={null}3102```json theme={null}

3099{3103{


3113}3117}

3114```3118```

3115 3119 

3116Hook 從 [JSON 輸入](#filechanged-input) 的 `file_path` 欄位讀取變更檔案的絕對路徑,在 stdin 上。其 `grep` 守衛測試 `perl` 移除的相同內容,行尾的 CR,因此規範化後的執行退出而不觸及檔案。較鬆散的守衛迴圈永遠,因為 `perl -i` 重寫檔案即使它替換無內容,Claude Code 在每次重寫後執行 hook。將此指令碼儲存在 `/path/to/normalize-line-endings.sh` 並使其可執行:3120Hook 從 [JSON 輸入](#filechanged-input) 的 `file_path` 欄位讀取變更檔案的絕對路徑,在 stdin 上。其 `grep` 守衛測試與 `perl` 移除的相同,行尾的 CR,因此在正規化後執行退出而不觸及檔案。較鬆散的守衛會無限迴圈,因為 `perl -i` 重寫檔案,即使它替換任何東西,Claude Code 在每次重寫後執行 hook。將此指令碼儲存在 `/path/to/normalize-line-endings.sh` 並使其可執行:

3117 3121 

3118```bash theme={null}3122```bash theme={null}

3119#!/bin/bash3123#!/bin/bash


3123fi3127fi

3124```3128```

3125 3129 

3126若要確認 hook 有效,要求 Claude 使用 `Bash` 命令將 CRLF 行附加到 `data.csv`。Claude Code 執行 hook,檔案以 LF 結尾。3130若要確認 hook 有效,要求 Claude 使用 Bash 命令將 CRLF 行附加到 `data.csv`。Claude Code 執行 hook,檔案最終使用 LF 結尾。

3127 3131 

3128若要監視您無法提前命名的檔案,請從 hook 返回 [`watchPaths`](#filechanged-output) 以動態更新監視清單。Claude Code 僅在某事命名要監視的檔案時啟動監視器,因此使用至少命名一個檔案的 FileChanged 群組播種清單,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 返回 `watchPaths`。匹配器仍然篩選當監視的檔案變更時哪些 hook 群組執行,因此給處理動態路徑的群組一個省略的匹配器,它匹配每個監視的檔案並不向監視清單新增任何內容。`"*"` 匹配器也匹配每個檔案,但 Claude Code 在監視清單中註冊它,如同任何其他值,作為字面名稱為 `*` 的檔案。3132若要監視您無法提前命名的檔案,從 hook 傳回 [`watchPaths`](#filechanged-output) 以動態更新監視清單。Claude Code 僅在某事命名要監視的檔案時啟動監視器,因此使用命名至少一個檔案的 FileChanged 群組播種清單,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 傳回 `watchPaths`。匹配器仍篩選當監視的檔案變更時哪個 hook 群組執行,因此給處理動態路徑的群組一個省略的匹配器,它匹配每個監視的檔案,並不向監視清單新增任何東西。`"*"` 匹配器也匹配每個檔案,但 Claude Code 像任何其他值一樣在監視清單中註冊它,作為字面名稱為 `*` 的檔案。

3129 3133 

3130FileChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到下一個 [CwdChanged](#cwdchanged) 事件,當 Claude Code 清除它們時。3134FileChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 [CwdChanged](#cwdchanged) 事件,當 Claude Code 清除它們時。

3131 3135 

3132<h4 id="filechanged-input">3136<h4 id="filechanged-input">

3133 FileChanged 輸入3137 FileChanged 輸入

3134</h4>3138</h4>

3135 3139 

3136除了 [常見輸入欄位](#common-input-fields) 外,FileChanged hooks 還會接收 `file_path` 和 `event`。3140除了 [常見輸入欄位](#common-input-fields) 外,FileChanged hooks 接收 `file_path` 和 `event`。

3137 3141 

3138| 欄位 | 描述 |3142| 欄位 | 描述 |

3139| :---------- | :-------------------------------------------------------- |3143| :---------- | :------------------------------------------------------- |

3140| `file_path` | 變更的檔案的絕對路徑 |3144| `file_path` | 變更檔案的絕對路徑 |

3141| `event` | 發生的情況:修改的檔案為 `"change"`、建立的檔案為 `"add"` 或刪除的檔案為 `"unlink"` |3145| `event` | 發生了什麼:修改檔案為 `"change"`、建立的檔案為 `"add"`,或刪除的檔案為 `"unlink"` |

3142 3146 

3143```json theme={null}3147```json theme={null}

3144{3148{


3155 FileChanged 輸出3159 FileChanged 輸出

3156</h4>3160</h4>

3157 3161 

3158除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 以動態更新監視的檔案路徑:3162除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,FileChanged hooks 可以傳回 `watchPaths` 以動態更新監視的檔案路徑:

3159 3163 

3160| 欄位 | 描述 |3164| 欄位 | 描述 |

3161| :----------- | :----------------------------------------------------------------------------- |3165| :----------- | :----------------------------------------------------------------------------- |

3162| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。您的 `matcher` 設定中的路徑始終被監視。當您的 hook 指令碼根據變更的檔案探索要監視的其他檔案時使用此 |3166| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。當您的 hook 指令碼根據變更檔案探索要監視的額外檔案時,使用此 |

3163 3167 

3164FileChanged hooks 沒有決策控制。它們無法阻止檔案變更發生。3168FileChanged hooks 沒有決策控制。它們無法阻止檔案變更發生。

3165 3169 

3166Claude Code 從其 JSON 輸出讀取 `watchPaths` 和 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它將 `systemMessage` 顯示為簡短終端通知。訊息不到達 SDK 訊息流。3170Claude Code 從其 JSON 輸出讀取 `watchPaths` 和 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它將 `systemMessage` 顯示為簡短的終端通知。訊息不到達 SDK 訊息流。

3167 3171 

3168<h3 id="worktreecreate">3172<h3 id="worktreecreate">

3169 WorktreeCreate3173 WorktreeCreate

3170</h3>3174</h3>

3171 3175 

3172在建立 worktree 時執行,無論是從 `claude --worktree`、從 [使用 `isolation: "worktree"` 的子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope),或用於 Claude Code 在其自己的 worktree 中隔離的 [背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)。預設情況下 Claude Code 使用 `git worktree` 建立隔離的工作副本。設定 WorktreeCreate hook 完全替換該預設 git 行為,讓您使用不同的版本控制系統,例如 SVN、Perforce 或 Mercurial。3176在建立 worktree 時執行,無論是從 `claude --worktree`、從 [使用 `isolation: "worktree"` 的子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope),或對於 Claude Code 在其自己的 worktree 中隔離的 [背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)。預設情況下,Claude Code 使用 `git worktree` 建立隔離的工作副本。配置 WorktreeCreate hook 替換該預設 git 行為,讓您使用不同的版本控制系統,如 SVN、Perforce 或 Mercurial。

3173 3177 

3174因為 hook 完全替換預設行為,[`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees) 不被處理。如果您需要複製本機設定檔,例如 `.env`,到新 worktree,請在您的 hook 指令碼內執行。3178因為 hook 完全替換預設行為,[`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees) 不被處理。如果您需要將本機配置檔案(如 `.env`)複製到新 worktree,請在您的 hook 指令碼內執行。

3175 3179 

3176Hook 必須返回建立的 worktree 目錄的路徑。Claude Code 使用此路徑作為隔離工作階段的工作目錄。請參閱 [WorktreeCreate 輸出](#worktreecreate-output),了解每個 hook 類型如何返回路徑。3180Hook 必須傳回建立的 worktree 目錄的路徑。Claude Code 使用此路徑作為隔離工作階段的工作目錄。請參閱 [WorktreeCreate 輸出](#worktreecreate-output),了解每個 hook 類型如何傳回路徑。

3177 3181 

3178Claude Code 作用於 hook 的成功和返回的路徑,並捨棄 `systemMessage` 和 `continue`。3182Claude Code 作用於 hook 的成功和傳回的路徑,並捨棄 `systemMessage` 和 `continue`。

3179 3183 

3180此範例建立 SVN 工作副本並列印路徑供 Claude Code 使用。將儲存庫 URL 替換為您自己的:3184此範例建立 SVN 工作副本並列印路徑供 Claude Code 使用。將儲存庫 URL 替換為您自己的:

3181 3185 


3196}3200}

3197```3201```

3198 3202 

3199Hook 從 stdin 上的 JSON 輸入讀取 worktree `name`,將新副本簽出到新目錄,並列印目錄路徑。最後一行的 `echo` 是 Claude Code 讀取為 worktree 路徑的內容。將任何其他輸出重定向到 stderr,以便它不干擾路徑。3203Hook 從 stdin 上的 JSON 輸入讀取 worktree `name`,將新副本簽出到新目錄,並列印目錄路徑。最後一行的 `echo` 是 Claude Code 讀取為 worktree 路徑的內容。將任何其他輸出重新導向到 stderr,以便它不會干擾路徑。

3200 3204 

3201<h4 id="worktreecreate-input">3205<h4 id="worktreecreate-input">

3202 WorktreeCreate 輸入3206 WorktreeCreate 輸入

3203</h4>3207</h4>

3204 3208 

3205除了 [常見輸入欄位](#common-input-fields) 外,WorktreeCreate hooks 還會接收 `name` 欄位。這是新 worktree 的 slug 識別碼,由使用者指定或自動生成,例如 `bold-oak-a3f2`。3209除了 [常見輸入欄位](#common-input-fields) 外,WorktreeCreate hooks 接收 `name` 欄位。這是新 worktree 的 slug 識別碼,由使用者指定或自動產生,例如 `bold-oak-a3f2`。

3206 3210 

3207```json theme={null}3211```json theme={null}

3208{3212{


3218 WorktreeCreate 輸出3222 WorktreeCreate 輸出

3219</h4>3223</h4>

3220 3224 

3221WorktreeCreate hooks 不使用標準允許/阻止決策模型。相反,hook 的成功或失敗決定結果。Hook 必須返回建立的 worktree 目錄的路徑:3225WorktreeCreate hooks 不使用標準允許/阻止決策模型。相反,hook 的成功或失敗決定結果。Hook 必須傳回建立的 worktree 目錄的路徑:

3222 3226 

3223* **命令 hooks** (`type: "command"`):將路徑列印為 stdout 的最後一個非空行。Claude Code 在讀取該行之前去除 ANSI 逸出代碼,因此在您的 `echo` 之前列印的 shell 啟動橫幅被忽略。將任何其他 hook 輸出重定向到 stderr。3227* **命令 hooks** (`type: "command"`):將路徑列印為 stdout 的最後一個非空行。Claude Code 在讀取該行之前去除 ANSI 逸出代碼,因此在您的 `echo` 之前列印的 shell 啟動橫幅會被忽略。將任何其他 hook 輸出重新導向到 stderr。

3224* **HTTP hooks** (`type: "http"`):在回應主體中返回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。3228* **HTTP hooks** (`type: "http"`):在回應主體中傳回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。

3225 3229 

3226如果 hook 失敗或不產生路徑,worktree 建立失敗並出現錯誤。3230如果 hook 失敗或不產生路徑,worktree 建立失敗,出現錯誤。

3227 3231 

3228Claude Code 根據 hook 執行的目錄解決相對路徑,摺疊其中的任何 `.` 或 `..` 段。如果結果路徑不是 Claude Code 可以進入的目錄,工作階段列印命名路徑的錯誤並以代碼 1 退出。3232Claude Code 根據 hook 執行的目錄解決相對路徑,折疊其中的任何 `.` 或 `..` 段。如果結果路徑不是 Claude Code 可以進入的目錄,工作階段列印命名路徑的錯誤並以代碼 1 退出。

3229 3233 

3230Claude Code 拒絕包含 `.` 或 `..` 段的絕對路徑,以及通過儲存庫根下方的符號連結的任何路徑,因為提交到儲存庫的符號連結可能將 worktree 重定向到其外部。錯誤命名被拒絕的元件。返回不通過儲存庫內符號連結的規範化路徑。在 v2.1.216 之前,worktree 建立遵循 hook 的路徑而不進行此篩選。3234Claude Code 拒絕包含 `.` 或 `..` 段的絕對路徑,以及通過儲存庫根下方符號連結的任何路徑,因為提交到儲存庫的符號連結可能會將 worktree 重新導向到其外部。錯誤命名被拒絕的元件。傳回不通過儲存庫內符號連結的正規化路徑。在 v2.1.216 之前,worktree 建立遵循 hook 的路徑,而不進行此篩選。

3231 3235 

3232<h3 id="worktreeremove">3236<h3 id="worktreeremove">

3233 WorktreeRemove3237 WorktreeRemove


3237 3241 

3238* 您退出 `--worktree` 工作階段並選擇移除它3242* 您退出 `--worktree` 工作階段並選擇移除它

3239* 具有 `isolation: "worktree"` 的子代理完成3243* 具有 `isolation: "worktree"` 的子代理完成

3240* 您刪除 [背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree 由 hook 建立3244* 您刪除 [背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree hook 建立

3241 3245 

3242對於基於 git 的 worktrees,Claude Code 使用 `git worktree remove` 自動處理清理。如果您為非 git 版本控制系統設定了 WorktreeCreate hook,請將其與 WorktreeRemove hook 配對以處理清理。沒有它,worktree 目錄保留在磁碟上。3246對於基於 git 的 worktrees,Claude Code 使用 `git worktree remove` 自動處理清理。如果您為非 git 版本控制系統配置了 WorktreeCreate hook,請將其與 WorktreeRemove hook 配對以處理清理。沒有它,worktree 目錄會保留在磁碟上。

3243 3247 

3244Claude Code 捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。3248Claude Code 捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。

3245 3249 

3246對於背景工作階段刪除,Claude Code 在執行 hook 之前驗證儲存的 worktree 路徑,並拒絕在儲存庫根下方是符號連結或通過符號連結的路徑。Hook 僅對仍包含檔案的 worktree 執行,當您在 [代理檢視](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時;對於這樣的 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 保持工作階段和 worktree。在 v2.1.216 之前,hook 在儲存的路徑上執行而不進行這些檢查。3250對於背景工作階段刪除,Claude Code 在執行 hook 之前驗證儲存的 worktree 路徑,並拒絕儲存庫根下方是符號連結或通過符號連結的路徑。Hook 僅對仍包含檔案的 worktree 執行,當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時;對於這樣的 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 保持工作階段和 worktree。在 v2.1.216 之前,hook 在儲存的路徑上執行,而不進行這些檢查。

3247 3251 

3248Claude Code 將 WorktreeCreate 返回的路徑作為 `worktree_path` 在 hook 輸入中傳遞。此範例讀取該路徑並移除目錄:3252Claude Code 將 WorktreeCreate 傳回的路徑作為 `worktree_path` 在 hook 輸入中傳遞。此範例讀取該路徑並移除目錄:

3249 3253 

3250```json theme={null}3254```json theme={null}

3251{3255{


3268 WorktreeRemove 輸入3272 WorktreeRemove 輸入

3269</h4>3273</h4>

3270 3274 

3271除了 [常見輸入欄位](#common-input-fields) 外,WorktreeRemove hooks 還會接收 `worktree_path` 欄位,這是正在移除的 worktree 的絕對路徑。3275除了 [常見輸入欄位](#common-input-fields) 外,WorktreeRemove hooks 接收 `worktree_path` 欄位,即被移除的 worktree 的絕對路徑。

3272 3276 

3273```json theme={null}3277```json theme={null}

3274{3278{


3280}3284}

3281```3285```

3282 3286 

3283WorktreeRemove hook 的退出代碼決定結果。當 hook 以非零退出且 `worktree_path` 的目錄仍然存在時,移除失敗:3287WorktreeRemove hook 的退出代碼決定結果。當 hook 以非零退出且 `worktree_path` 處的目錄仍存在時,移除失敗:

3284 3288 

3285* Worktree 保留在磁碟上,hook 的命令和 stderr 進入 [偵錯日誌](#debug-hooks)。3289* Worktree 保留在磁碟上,hook 的命令和 stderr 進入 [debug log](#debug-hooks)。

3286* 如果您刪除背景工作階段,工作階段也保留。[代理檢視](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息報告 hook 如何結束,例如 `exited 1`,引用其 stderr 的開頭,並說明再次刪除工作階段是否移除目錄。3290* 如果您刪除背景工作階段,工作階段也保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息報告 hook 如何結束,例如 `exited 1`,引用其 stderr 的開頭,並說明再次刪除工作階段是否無論如何移除目錄。

3287 3291 

3288<h3 id="precompact">3292<h3 id="precompact">

3289 PreCompact3293 PreCompact

3290</h3>3294</h3>

3291 3295 

3292在 Claude Code 即將執行壓縮操作之前執行。3296在 Claude Code 即將執行壓縮操作時執行。

3293 3297 

3294匹配器值指示壓縮是手動觸發還是自動觸發:3298匹配器值指示壓縮是手動還是自動觸發:

3295 3299 

3296| 匹配器 | 何時觸發 |3300| 匹配器 | 何時觸發 |

3297| :------- | :-------------------------------------------------------------------- |3301| :------- | :-------------------------------------------------------------------- |

3298| `manual` | `/compact` |3302| `manual` | `/compact` |

3299| `auto` | 當對話到達 [自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window) 時自動壓縮 |3303| `auto` | 當對話到達 [自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window) 時自動壓縮 |

3300 3304 

3301以代碼 2 退出以阻止壓縮。對於手動 `/compact`,stderr 訊息顯示給使用者。您也可以透過返回 JSON 搭配 `"decision": "block"` 來阻止。3305以代碼 2 退出以阻止壓縮。對於手動 `/compact`,stderr 訊息顯示給使用者。您也可以透過傳回 JSON 搭配 `"decision": "block"` 來阻止。

3302 3306 

3303阻止自動壓縮根據何時觸發有不同的效果。如果壓縮在背景資訊限制之前主動觸發,Claude Code 跳過它,對話繼續未壓縮。如果壓縮被觸發以從 API 已返回的背景資訊限制錯誤恢復,基礎錯誤呈現,目前請求失敗。3307阻止自動壓縮根據何時觸發有不同的效果。如果壓縮在背景限制之前主動觸發,Claude Code 跳過它,對話繼續未壓縮。如果壓縮被觸發以從 API 已傳回的背景限制錯誤復原,基礎錯誤呈現,目前請求失敗。

3304 3308 

3305Claude Code 捨棄 PreCompact hook 的 `systemMessage` 和 `continue` 欄位。3309Claude Code 捨棄 PreCompact hook 的 `systemMessage` 和 `continue` 欄位。

3306 3310 


3308 PreCompact 輸入3312 PreCompact 輸入

3309</h4>3313</h4>

3310 3314 

3311除了 [常見輸入欄位](#common-input-fields) 外,PreCompact hooks 還會接收 `trigger` 和 `custom_instructions`。對於 `manual`,`custom_instructions` 包含使用者傳遞到 `/compact` 的內容,當他們傳遞無內容時為 `null`。對於 `auto`,`custom_instructions` 為 `null`。3315除了 [常見輸入欄位](#common-input-fields) 外,PreCompact hooks 接收 `trigger` 和 `custom_instructions`。對於 `manual`,`custom_instructions` 包含使用者傳遞到 `/compact` 的內容,當他們傳遞任何東西時為 `null`。對於 `auto`,`custom_instructions` 為 `null`。

3312 3316 

3313```json theme={null}3317```json theme={null}

3314{3318{


3325 PostCompact3329 PostCompact

3326</h3>3330</h3>

3327 3331 

3328在 Claude Code 完成壓縮操作後執行。使用此事件對新壓縮狀態做出反應,例如記錄生成的摘要或更新外部狀態。Claude Code 捨棄 PostCompact hook 的 `systemMessage` 和 `continue` 欄位。3332在 Claude Code 完成壓縮操作後執行。使用此事件對新壓縮狀態做出反應,例如記錄產生的摘要或更新外部狀態。Claude Code 捨棄 PostCompact hook 的 `systemMessage` 和 `continue` 欄位。

3329 3333 

3330與 `PreCompact` 相同的匹配器值適用:3334與 `PreCompact` 相同的匹配器值適用:

3331 3335 


3338 PostCompact 輸入3342 PostCompact 輸入

3339</h4>3343</h4>

3340 3344 

3341除了 [常見輸入欄位](#common-input-fields) 外,PostCompact hooks 還會接收 `trigger` 和 `compact_summary`。`compact_summary` 欄位包含壓縮操作生成的對話摘要。3345除了 [常見輸入欄位](#common-input-fields) 外,PostCompact hooks 接收 `trigger` 和 `compact_summary`。`compact_summary` 欄位包含壓縮操作產生的對話摘要。

3342 3346 

3343```json theme={null}3347```json theme={null}

3344{3348{


3357 PreModelSwitch3361 PreModelSwitch

3358</h3>3362</h3>

3359 3363 

3360在 Claude Code 應用您或用戶端請求的模型切換之前執行。使用它來阻止切換、要求確認或在切換發生前顯示成本。3364在 Claude Code 應用您或用戶端要求的模型切換之前執行。使用它來阻止切換、要求確認或在切換發生前顯示成本。

3361 3365 

3362PreModelSwitch 需要 Claude Code v2.1.251 或更新版本。Claude Code 為這些請求執行它:3366PreModelSwitch 需要 Claude Code v2.1.251 或更新版本。Claude Code 為這些請求執行它:

3363 3367 

3364* `/model <name>` 和 `/model` 選擇器3368* `/model <name>` 和 `/model` 選擇器

3365* `Option+P` 或 `Alt+P` 模型選擇器3369* `Option+P` 或 `Alt+P` 模型選擇器

3366* `/config` 中的 Model 設定3370* `/config` 中的 Model 設定

3367* 當那改變工作階段的模型時打開 [快速模式](/docs/zh-TW/fast-mode)3371* 當那改變工作階段的模型時開啟 [fast mode](/docs/zh-TW/fast-mode)

3368* 來自 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 主機或 [Remote Control](/docs/zh-TW/remote-control) 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更3372* 來自 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 主機或 [Remote Control](/docs/zh-TW/remote-control) 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更

3369 3373 

3370Claude Code 不為它自己進行的切換執行 PreModelSwitch hooks,例如 [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback) 或恢復工作階段時恢復模型。這些變更僅到達 [PostModelSwitch](#postmodelswitch)。3374Claude Code 不為它自己進行的切換執行 PreModelSwitch hooks,例如 [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback) 或恢復工作階段時恢復模型。這些變更僅到達 [PostModelSwitch](#postmodelswitch)。

3371 3375 

3372Claude Code 根據工作階段切換到的模型的規範名稱比較匹配器,忽略任何 `[1m]` 後綴。別名(例如 `opus`)、日期模型 ID 和提供者特定 ID(例如 Amazon Bedrock 模型 ID)都匹配它們解決到的一個規範名稱,因此 `claude-opus-5` 涵蓋 Opus 5 的每個拼寫。3376Claude Code 根據工作階段切換到的模型的規範名稱比較匹配器,忽略任何 `[1m]` 後綴。別名(如 `opus`)、日期模型 ID 和提供者特定 ID(如 Amazon Bedrock 模型 ID)都匹配它們解決到的一個規範名稱,因此 `claude-opus-5` 涵蓋 Opus 5 的每個拼寫。

3373 3377 

3374當 Claude Code 無法確定目標的規範名稱時,例如僅您的 [LLM 閘道](/docs/zh-TW/llm-gateway) 知道的自訂模型 ID,它執行每個 PreModelSwitch hook,無論匹配器如何。阻止的 hook 應該檢查其輸入中的 `to_model` 而不是僅依賴匹配器。3378當 Claude Code 無法確定目標的規範名稱時,例如只有您的 [LLM gateway](/docs/zh-TW/llm-gateway) 知道的自訂模型 ID,它執行每個 PreModelSwitch hook,無論匹配器如何。阻止的 hook 應該從其輸入檢查 `to_model` 而不是僅依賴匹配器。

3375 3379 

3376將匹配器寫為精確名稱、`|` 分隔清單(例如 `claude-opus-4-6|claude-opus-5`)或正規表達式(例如 `.*opus.*`)。此範例使用精確名稱匹配器並也檢查 hook 輸入中的 `to_model`,因此它拒絕切換到 Opus 4.6,透過以代碼 2 退出,並讓任何其他目標通過:3380將匹配器寫為精確名稱、`|` 分隔清單(如 `claude-opus-4-6|claude-opus-5`)或正規表達式(如 `.*opus.*`)。此範例使用精確名稱匹配器,也從 hook 輸入檢查 `to_model`,因此它拒絕切換到 Opus 4.6,透過以代碼 2 退出,並讓任何其他目標通過:

3377 3381 

3378<Tabs>3382<Tabs>

3379 <Tab title="macOS/Linux">3383 <Tab title="macOS/Linux">


3426 }3430 }

3427 ```3431 ```

3428 3432 

3429 將此指令碼儲存到您專案中的 `.claude/hooks/block-opus-46.ps1`:3433 將此指令碼儲存到您的專案中的 `.claude/hooks/block-opus-46.ps1`:

3430 3434 

3431 ```powershell theme={null}3435 ```powershell theme={null}

3432 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3436 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json


3439 </Tab>3443 </Tab>

3440</Tabs>3444</Tabs>

3441 3445 

3442若要確認 hook 有效,從執行不同模型的工作階段執行 `/model claude-opus-4-6`。Claude Code 保持目前模型並報告 PreModelSwitch hook 阻止了切換,您的訊息作為原因。3446若要確認 hook 有效,從執行不同模型的工作階段執行 `/model claude-opus-4-6`。Claude Code 保持目前模型並報告 PreModelSwitch hook 阻止了切換,以您的訊息作為原因。

3443 3447 

3444<h4 id="premodelswitch-input">3448<h4 id="premodelswitch-input">

3445 PreModelSwitch 輸入3449 PreModelSwitch 輸入

3446</h4>3450</h4>

3447 3451 

3448除了 [常見輸入欄位](#common-input-fields) 外,PreModelSwitch hooks 還會接收此表中的欄位。最後五個描述重新發送對話到新模型的成本,因此 hook 可以在切換發生前顯示該數字。3452除了 [常見輸入欄位](#common-input-fields) 外,PreModelSwitch hooks 接收此表中的欄位。最後五個描述重新傳送對話到新模型的成本,因此 hook 可以在切換發生前顯示該數字。

3449 3453 

3450| 欄位 | 類型 | 描述 |3454| 欄位 | 類型 | 描述 |

3451| :-------------------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3455| :-------------------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3452| `from_model` | string | 切換變更的模型 ID |3456| `from_model` | string | 切換變更的模型 ID |

3453| `to_model` | string | 切換變更為的模型 ID。匹配器根據此模型的規範名稱比較 |3457| `to_model` | string | 切換變更為的模型 ID。匹配器根據此模型的規範名稱比較 |

3454| `requested_model` | string or `null` | 請求命名的模型:別名(例如 `opus`)、完整模型 ID 或當請求為預設模型時 `null` |3458| `requested_model` | string or `null` | 請求命名的模型:別名(如 `opus`)、完整模型 ID,或當請求為預設模型時 `null` |

3455| `source` | string | 請求來自何處:`/model <name>`、`/config` 中的 Model 設定或打開快速模式的 `"command"`;模型選擇器的 `"picker"`;來自 Agent SDK 主機或 Remote Control 的 `set_model` 請求或 `apply_flag_settings` 請求中的模型變更的 `"sdk"` |3459| `source` | string | 請求來自何處:`/model <name>`、`/config` 中的 Model 設定或開啟 fast mode 的 `"command"`;模型選擇器的 `"picker"`;來自 Agent SDK 主機或 Remote Control 的 `set_model` 請求或 `apply_flag_settings` 請求中的模型變更的 `"sdk"` |

3456| `context_tokens` | number | 下一個請求重新發送作為其提示的令牌:主對話中最後回應的輸入、快取讀取、快取建立和輸出令牌結合。第一個回應前為 `0` |3460| `context_tokens` | number | 下一個請求重新傳送為其提示的權杖:主對話中最後回應的輸入、快取讀取、快取建立和輸出權杖,結合。第一個回應前為 `0` |

3457| `prompt_cache_warm` | boolean | 目前模型的 prompt cache 是否可能仍然溫暖,意味著切換放棄它 |3461| `prompt_cache_warm` | boolean | 目前模型的 prompt cache 是否可能仍然溫暖,意味著切換放棄它 |

3458| `cache_ttl` | string | [Prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) Claude Code 為此工作階段請求:`"5m"` 或 `"1h"` |3462| `cache_ttl` | string | [Prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) Claude Code 為此工作階段要求:`"5m"` 或 `"1h"` |

3459| `estimated_cache_write_usd` | number | 在 `cache_ttl` 速率下將 `context_tokens` 寫入 `to_model` 上的 prompt cache 的估計成本(美元),不包括下一個回應 |3463| `estimated_cache_write_usd` | number | 在 `to_model` 上以 `cache_ttl` 速率將 `context_tokens` 寫入 prompt cache 的估計成本(美元),不包括下一個回應。伺服器可能不需要重新快取整個背景資訊,因此將其視為估計 |

3460| `pricing` | string | Claude Code 如何定價 `estimated_cache_write_usd`:當您的組織已設定它們時在您的組織自己的速率下為 `"configured"`、在清單價格下為 `"catalog"`,或當 `to_model` 沒有已知價格且 Claude Code 假設預設速率時為 `"default"` |3464| `pricing` | string | Claude Code 如何定價 `estimated_cache_write_usd`:當您的組織配置了它們時以您組織自己的速率為 `"configured"`,以清單價格為 `"catalog"`,或當 `to_model` 沒有已知價格且 Claude Code 假設預設速率時為 `"default"` |

3461 3465 

3462此範例顯示在執行 Sonnet 5 的工作階段中 `/model opus` 的輸入:3466此範例顯示在 Sonnet 5 執行的工作階段中 `/model opus` 的輸入:

3463 3467 

3464```json theme={null}3468```json theme={null}

3465{3469{


3483 PreModelSwitch 決策控制3487 PreModelSwitch 決策控制

3484</h4>3488</h4>

3485 3489 

3486`PreModelSwitch` hooks 可以取消切換、要求使用者確認或讓它進行。退出代碼 2 或頂級 `decision: "block"` 取消切換。3490`PreModelSwitch` hooks 可以取消切換、要求使用者確認它,或讓它進行。退出代碼 2 或頂級 `decision: "block"` 取消切換。

3487 3491 

3488為了更精細的控制,在 `hookSpecificOutput` 物件中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control) 上。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述兩個欄位:3492為了更精細的控制,在 `hookSpecificOutput` 物件中傳回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control)。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述兩個欄位:

3489 3493 

3490| 欄位 | 描述 |3494| 欄位 | 描述 |

3491| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |3495| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |

3492| `permissionDecision` | `"allow"` 進行並跳過 [Claude Code 在 prompt cache 溫暖時顯示的確認](/docs/zh-TW/prompt-caching#switching-models)。`"deny"` 取消切換。`"ask"` 提示使用者確認 |3496| `permissionDecision` | `"allow"` 進行並跳過 [Claude Code 在 prompt cache 溫暖時顯示的確認](/docs/zh-TW/prompt-caching#switching-models)。`"deny"` 取消切換。`"ask"` 提示使用者確認它 |

3493| `permissionDecisionReason` | 對於 `"deny"`,顯示給使用者作為切換被阻止的原因,或作為 `set_model` 請求的錯誤返回。對於 `"ask"`,在確認提示中顯示。對於 `"allow"` 忽略 |3497| `permissionDecisionReason` | 對於 `"deny"`,顯示給使用者作為切換被阻止的原因,或作為 `set_model` 請求的錯誤傳回。對於 `"ask"`,在確認提示中顯示。對於 `"allow"` 忽略 |

3494 3498 

3495僅互動式工作階段中的 `/model` 可以顯示 `"ask"` 提示。在每個其他表面上,包括搭配 `-p` 旗標的非互動模式、`/config` 和 `set_model` 請求,Claude Code 將 `"ask"` 視為拒絕。3499僅互動式工作階段中的 `/model` 可以顯示 `"ask"` 提示。在每個其他表面上,包括非互動模式搭配 `-p` 旗標、`/config` 和 `set_model` 請求,Claude Code 將 `"ask"` 視為拒絕。

3496 3500 

3497此範例要求使用者確認並引用 `context_tokens` 中的令牌計數:3501此範例要求使用者確認並引用來自 `context_tokens` 的權杖計數:

3498 3502 

3499```json theme={null}3503```json theme={null}

3500{3504{


3506}3510}

3507```3511```

3508 3512 

3509當多個 PreModelSwitch hooks 返回不同的決策時,優先順序為 `deny` > `ask` > `allow`。3513當多個 PreModelSwitch hooks 傳回不同的決策時,優先順序為 `deny` > `ask` > `allow`。

3510 3514 

3511Claude Code 無論決策如何都顯示您的 hook 返回的任何 `systemMessage`,因此成本報告 hook 可以返回 `{"systemMessage": "..."}` 並退出 0。3515Claude Code 無論決策如何都顯示您的 hook 傳回的任何 `systemMessage`,因此成本報告 hook 可以傳回 `{"systemMessage": "..."}` 並退出 0。

3512 3516 

3513在其逾時前未回應的 PreModelSwitch hook 會阻止切換。在 [PreToolUse](#timeouts) 上相比,逾時的命令 hook 讓工具呼叫繼續。此事件的預設逾時為 30 秒。`PreModelSwitch` 僅執行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 預設不適用。3517在其逾時前未回應的 PreModelSwitch hook 會阻止切換。在 [PreToolUse](#timeouts) 上,相比之下,逾時的命令 hook 讓工具呼叫繼續。此事件的預設逾時為 30 秒。`PreModelSwitch` 僅執行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 預設不適用。

3514 3518 

3515以 0 或 2 以外的代碼退出且不列印 JSON 決策的 hook 不阻止:Claude Code 顯示其 stderr 並應用切換,如 [其他退出代碼](#other-exit-codes) 下所述。3519以 0 或 2 以外的代碼退出且不列印 JSON 決策的 hook 不阻止:Claude Code 顯示其 stderr 並應用切換,如 [其他退出代碼](#other-exit-codes) 下所述。

3516 3520 


3518 PostModelSwitch3522 PostModelSwitch

3519</h3>3523</h3>

3520 3524 

3521在工作階段的模型變更後執行。使用它來給予 Claude 模型特定指導,而不編輯每個 CLAUDE.md,例如僅在某些模型上適用的組織範圍指令。3525在工作階段的模型變更後執行。使用它來給予 Claude 模型特定的指導,而不編輯每個 CLAUDE.md,例如僅在某些模型上適用的組織範圍指示。

3522 3526 

3523PostModelSwitch 需要 Claude Code v2.1.251 或更新版本。它無法阻止,因為模型已變更。Claude Code 在這些變更後執行 PostModelSwitch hooks:3527PostModelSwitch 需要 Claude Code v2.1.251 或更新版本。它無法阻止,因為模型已變更。Claude Code 在這些變更後執行 PostModelSwitch hooks:

3524 3528 

3525* 您或用戶端請求的切換3529* 您或用戶端要求的切換

3526* [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback),改變工作階段的模型3530* [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback),改變工作階段的模型

3527* 設定(例如 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting))進入或離開計畫模式3531* 設定(如 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting))進入或離開 plan mode

3528* Claude Code 恢復工作階段時恢復模型3532* Claude Code 在您恢復工作階段時恢復模型

3529 3533 

3530當 [回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains) 中的模型服務回合時,Claude Code 不執行 PostModelSwitch hooks,因為該替換持續一個回合並保持工作階段的模型不變。3534當 [回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains) 中的模型服務回合時,Claude Code 不執行 PostModelSwitch hooks,因為該替換持續一個回合,並保持工作階段的模型不變。

3531 3535 

3532匹配器遵循與 [PreModelSwitch](#premodelswitch) 相同的規則:Claude Code 根據工作階段切換到的模型的規範名稱比較它。3536匹配器遵循與 [PreModelSwitch](#premodelswitch) 相同的規則:Claude Code 根據工作階段切換到的模型的規範名稱比較它。

3533 3537 


3557 PostModelSwitch 輸入3561 PostModelSwitch 輸入

3558</h4>3562</h4>

3559 3563 

3560PostModelSwitch hooks 接收與 [PreModelSwitch](#premodelswitch-input) 相同的欄位,其中 `hook_event_name` 設定為 `"PostModelSwitch"` 和兩個更多 `source` 值:`"auto"` 用於自動回退或 Claude Code 自己進行的其他變更,`"resume"` 用於恢復工作階段時恢復的模型。3564PostModelSwitch hooks 接收與 [PreModelSwitch](#premodelswitch-input) 相同的欄位,其 `hook_event_name` 設定為 `"PostModelSwitch"` 和兩個更多 `source` 值:`"auto"` 對於自動回退或 Claude Code 自己進行的其他變更,以及 `"resume"` 對於您恢復工作階段時恢復的模型。

3561 3565 

3562當 `source` 為 `"auto"` 時 `requested_model` 為 `null`。當 `source` 為 `"resume"` 時,它是 Claude Code 恢復的儲存模型設定。3566當 `source` 為 `"auto"` 時,`requested_model` 為 `null`。當 `source` 為 `"resume"` 時,它是 Claude Code 恢復的儲存模型設定。

3563 3567 

3564<h4 id="postmodelswitch-decision-control">3568<h4 id="postmodelswitch-decision-control">

3565 PostModelSwitch 決策控制3569 PostModelSwitch 決策控制

3566</h4>3570</h4>

3567 3571 

3568Claude Code 在下一個切換後的請求中採用您的 hook 的 [純文字 stdout](#exit-code-0) 退出 0,或 JSON 輸出中的 `additionalContext`,並將其傳遞給 Claude。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您可以返回:3572Claude Code 採用您的 hook 的 [純文字 stdout](#exit-code-0) 在退出 0 上,或來自 JSON 輸出的 `additionalContext`,並在切換後的下一個請求中將其傳遞給 Claude。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您可以傳回:

3569 3573 

3570| 欄位 | 描述 |3574| 欄位 | 描述 |

3571| :------------------ | :------------------------------------------------------------------------ |3575| :------------------ | :------------------------------------------------------------------------ |

3572| `additionalContext` | 與下一個請求一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |3576| `additionalContext` | 與下一個請求一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

3573 3577 

3574如果 hook 在您發送下一個提示後五秒內未完成,Claude Code 發送該請求而不輸出,並改為將其附加到下一個請求。如果模型在下一個請求之前變更多次,Claude Code 僅傳遞最後切換目標模型的輸出。3578如果 hook 在您傳送下一個提示後五秒內未完成,Claude Code 傳送該請求而不輸出,並將其附加到下一個請求。如果模型在下一個請求之前變更多次,Claude Code 僅傳遞最後一個切換目標模型的輸出。

3575 3579 

3576<h3 id="sessionend">3580<h3 id="sessionend">

3577 SessionEnd3581 SessionEnd


3588| `logout` | 使用者登出 |3592| `logout` | 使用者登出 |

3589| `prompt_input_exit` | 使用者在提示輸入可見時退出 |3593| `prompt_input_exit` | 使用者在提示輸入可見時退出 |

3590| `other` | 其他退出原因 |3594| `other` | 其他退出原因 |

3591| `bypass_permissions_disabled` | 在 v2.1.234 中移除;Claude Code 不發送它。從您的 `SessionEnd` 匹配器中刪除它 |3595| `bypass_permissions_disabled` | 在 v2.1.234 中移除;Claude Code 不傳送它。從您的 `SessionEnd` 匹配器中刪除它 |

3592 3596 

3593<h4 id="sessionend-input">3597<h4 id="sessionend-input">

3594 SessionEnd 輸入3598 SessionEnd 輸入

3595</h4>3599</h4>

3596 3600 

3597除了 [常見輸入欄位](#common-input-fields) 外,SessionEnd hooks 還會接收指示工作階段為什麼結束的 `reason` 欄位。請參閱上面的 [原因表](#sessionend) 以了解所有值。3601除了 [常見輸入欄位](#common-input-fields) 外,SessionEnd hooks 接收 `reason` 欄位,指示工作階段為什麼結束。請參閱上面的 [原因表](#sessionend) 以獲得所有值。

3598 3602 

3599```json theme={null}3603```json theme={null}

3600{3604{


3610 3614 

3611SessionEnd hooks 的預設逾時為 1.5 秒。它在您退出、執行 `/clear` 或使用互動式 `/resume` 切換工作階段時適用。您可以透過兩種方式給予 hook 更多時間:3615SessionEnd hooks 的預設逾時為 1.5 秒。它在您退出、執行 `/clear` 或使用互動式 `/resume` 切換工作階段時適用。您可以透過兩種方式給予 hook 更多時間:

3612 3616 

3613* **每個 hook `timeout`**:在該 hook 的設定中設定 `timeout`。整體預算自動上升以符合您設定檔中最高每個 hook `timeout`,最多 60 秒。如果您以這種方式提高預算,沒有自己 `timeout` 的 hook 仍保持預設。在外掛提供的 hooks 上設定的逾時不提高預算。3617* **每個 hook `timeout`**:在該 hook 的配置中設定 `timeout`。整體預算自動上升以符合您設定檔中最高的每個 hook `timeout`,最多 60 秒。如果您以這種方式提高預算,沒有自己 `timeout` 的 hook 仍保持預設。在外掛提供的 hooks 上設定的逾時不會提高預算。

3614* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:以毫秒設定此環境變數以明確覆寫預算。您設定的值也成為每個沒有自己 `timeout` 的 hook 的逾時。3618* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:將此環境變數設定為毫秒以明確覆寫預算。您設定的值也成為每個沒有自己 `timeout` 的 hook 的逾時。

3615 3619 

3616此範例將預算設定為 5 秒:3620此範例將預算設定為 5 秒:

3617 3621 


3625 Elicitation3629 Elicitation

3626</h3>3630</h3>

3627 3631 

3628在 MCP 伺服器在任務中期請求使用者輸入時執行。預設情況下,Claude Code 為使用者顯示互動式對話以回應。Hooks 可以攔截此請求並以程式設計方式回應,完全跳過對話。3632在 MCP 伺服器要求使用者輸入中期任務時執行。預設情況下,Claude Code 為使用者回應顯示互動式對話。Hooks 可以攔截此請求並以程式設計方式回應,完全跳過對話。

3629 3633 

3630匹配器欄位根據 MCP 伺服器名稱匹配。3634匹配器欄位根據 MCP 伺服器名稱匹配。

3631 3635 


3633 Elicitation 輸入3637 Elicitation 輸入

3634</h4>3638</h4>

3635 3639 

3636除了 [常見輸入欄位](#common-input-fields) 外,Elicitation hooks 還會接收 `mcp_server_name`、`message` 和可選的 `mode`、`url`、`elicitation_id` 和 `requested_schema` 欄位。3640除了 [常見輸入欄位](#common-input-fields) 外,Elicitation hooks 接收 `mcp_server_name`、`message` 和可選的 `mode`、`url`、`elicitation_id` 和 `requested_schema` 欄位。

3637 3641 

3638對於表單模式引出,最常見的情況:3642對於表單模式引誘,最常見的情況:

3639 3643 

3640```json theme={null}3644```json theme={null}

3641{3645{


3655}3659}

3656```3660```

3657 3661 

3658對於 URL 模式引出,用於基於瀏覽器的驗證:3662對於 URL 模式引誘,用於基於瀏覽器的驗證:

3659 3663 

3660```json theme={null}3664```json theme={null}

3661{3665{


3674 Elicitation 輸出3678 Elicitation 輸出

3675</h4>3679</h4>

3676 3680 

3677若要以程式設計方式回應而不顯示對話,請返回具有 `hookSpecificOutput` 的 JSON 物件:3681若要以程式設計方式回應而不顯示對話,傳回具有 `hookSpecificOutput` 的 JSON 物件:

3678 3682 

3679```json theme={null}3683```json theme={null}

3680{3684{


3693| `action` | `accept`、`decline`、`cancel` | 是否接受、拒絕或取消請求 |3697| `action` | `accept`、`decline`、`cancel` | 是否接受、拒絕或取消請求 |

3694| `content` | object | 要提交的表單欄位值。僅在 `action` 為 `accept` 時使用 |3698| `content` | object | 要提交的表單欄位值。僅在 `action` 為 `accept` 時使用 |

3695 3699 

3696退出代碼 2 拒絕引出。Claude Code 不在任何地方顯示您的 stderr 訊息。3700退出代碼 2 拒絕引誘。Claude Code 不在任何地方顯示您的 stderr 訊息。

3697 3701 

3698Claude Code 作用於 Elicitation hook 的 JSON 輸出中的 `hookSpecificOutput` 並捨棄 `systemMessage` 和 `continue`。3702Claude Code 從 Elicitation hook 的 JSON 輸出作用於 `hookSpecificOutput`,並捨棄 `systemMessage` 和 `continue`。

3699 3703 

3700<h3 id="elicitationresult">3704<h3 id="elicitationresult">

3701 ElicitationResult3705 ElicitationResult

3702</h3>3706</h3>

3703 3707 

3704在使用者回應 MCP 引出後執行。Hooks 可以觀察、修改或阻止回應,然後將其發送回 MCP 伺服器。3708在使用者回應 MCP 引誘後執行。Hooks 可以觀察、修改或阻止回應,然後將其傳送回 MCP 伺服器。

3705 3709 

3706匹配器欄位根據 MCP 伺服器名稱匹配。3710匹配器欄位根據 MCP 伺服器名稱匹配。

3707 3711 


3709 ElicitationResult 輸入3713 ElicitationResult 輸入

3710</h4>3714</h4>

3711 3715 

3712除了 [常見輸入欄位](#common-input-fields) 外,ElicitationResult hooks 還會接收 `mcp_server_name`、`action` 和可選的 `mode`、`elicitation_id` 和 `content` 欄位。3716除了 [常見輸入欄位](#common-input-fields) 外,ElicitationResult hooks 接收 `mcp_server_name`、`action` 和可選的 `mode`、`elicitation_id` 和 `content` 欄位。

3713 3717 

3714```json theme={null}3718```json theme={null}

3715{3719{


3729 ElicitationResult 輸出3733 ElicitationResult 輸出

3730</h4>3734</h4>

3731 3735 

3732若要覆寫使用者的回應,請返回具有 `hookSpecificOutput` 的 JSON 物件:3736若要覆寫使用者的回應,傳回具有 `hookSpecificOutput` 的 JSON 物件:

3733 3737 

3734```json theme={null}3738```json theme={null}

3735{3739{


3748 3752 

3749退出代碼 2 阻止回應,將有效動作變更為 `decline`。Claude Code 不在任何地方顯示您的 stderr 訊息。3753退出代碼 2 阻止回應,將有效動作變更為 `decline`。Claude Code 不在任何地方顯示您的 stderr 訊息。

3750 3754 

3751Claude Code 作用於 ElicitationResult hook 的 JSON 輸出中的 `hookSpecificOutput` 並捨棄 `systemMessage` 和 `continue`。3755Claude Code 從 ElicitationResult hook 的 JSON 輸出作用於 `hookSpecificOutput`,並捨棄 `systemMessage` 和 `continue`。

3752 3756 

3753<h2 id="prompt-based-hooks">3757<h2 id="prompt-based-hooks">

3754 基於提示的 hooks3758 基於提示的 hooks


3759支援所有五種 hook 類型(`command`、`http`、`mcp_tool`、`prompt` 和 `agent`)的事件:3763支援所有五種 hook 類型(`command`、`http`、`mcp_tool`、`prompt` 和 `agent`)的事件:

3760 3764 

3761* `PermissionDenied`3765* `PermissionDenied`

3762* `PermissionRequest`

3763* `PostToolBatch`3766* `PostToolBatch`

3764* `PostToolUse`3767* `PostToolUse`

3765* `PostToolUseFailure`3768* `PostToolUseFailure`


3772* `UserPromptExpansion`3775* `UserPromptExpansion`

3773* `UserPromptSubmit`3776* `UserPromptSubmit`

3774 3777 

3778`PermissionRequest` 支援 `command`、`http`、`mcp_tool` 和 `prompt` hooks,但不支援 `agent` hooks。如果您在此事件上配置代理 hook,Claude Code 會跳過它,權限流程保持不變。要從 hook 允許或拒絕,請從命令或 HTTP hook 返回[決定物件](#permissionrequest-decision-control)。

3779 

3775支援 `command`、`http` 和 `mcp_tool` hooks 但不支援 `prompt` 或 `agent` 的事件:3780支援 `command`、`http` 和 `mcp_tool` hooks 但不支援 `prompt` 或 `agent` 的事件:

3776 3781 

3777* `ConfigChange`3782* `ConfigChange`


3904 代理 hooks 是實驗性的。行為和配置可能在未來版本中變更。對於生產工作流程,建議使用[命令 hooks](#command-hook-fields)。3909 代理 hooks 是實驗性的。行為和配置可能在未來版本中變更。對於生產工作流程,建議使用[命令 hooks](#command-hook-fields)。

3905</Warning>3910</Warning>

3906 3911 

3907基於代理的 hooks(`type: "agent"`)類似於基於提示的 hooks,但具有多輪工具存取。代理 hook 不是單一 LLM 呼叫,而是生成一個可以讀取檔案、搜尋程式碼和檢查程式碼庫以驗證條件的 subagent。代理 hooks 支援與基於提示的 hooks 相同的事件。3912基於代理的 hooks(`type: "agent"`)類似於基於提示的 hooks,但具有多輪工具存取。代理 hook 不是單一 LLM 呼叫,而是生成一個可以讀取檔案、搜尋程式碼和檢查程式碼庫以驗證條件的 subagent。代理 hooks 支援與[基於提示的 hooks](#prompt-based-hooks) 相同的事件,除了 `PermissionRequest`。

3908 3913 

3909<h3 id="how-agent-hooks-work">3914<h3 id="how-agent-hooks-work">

3910 代理 hooks 如何工作3915 代理 hooks 如何工作

Details

24 24 

25您也是這個迴圈的一部分。您可以在任何時刻中斷以引導 Claude 朝不同方向發展、提供額外上下文,或要求它嘗試不同的方法。Claude 自主工作,但對您的輸入保持回應。25您也是這個迴圈的一部分。您可以在任何時刻中斷以引導 Claude 朝不同方向發展、提供額外上下文,或要求它嘗試不同的方法。Claude 自主工作,但對您的輸入保持回應。

26 26 

27代理迴圈由兩個元件提供動力:[模型](#models)進行推理,[工具](#tools)採取行動。Claude Code 充當 Claude 周圍的**代理工具**:它提供工具、上下文管理和執行環境,將語言模型轉變為能力強大的編碼代理。27代理迴圈由兩個元件提供動力:[模型](#models)進行推理,[工具](#tools)採取行動。Claude Code 是 Claude 周圍的層,提供工具並管理模型看到的上下文。這個周圍層就是術語代理工具所指的。

28 28 

29<h3 id="models">29<h3 id="models">

30 模型30 模型


238 中斷和引導238 中斷和引導

239</h4>239</h4>

240 240 

241您可以在任何時刻重新導向 Claude,無需等待該輪次完成或重新開始:241您可以在任何時刻重新導向 Claude,無需重新開始。執行以下任一操作:

242 242 

243* **按 `Esc`** 立即停止 Claude。正在執行的工具呼叫被取消,Claude 等待您的下一個指令。如果您有排隊的訊息,Claude Code [會接著發送它們](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works)。243* **按 `Esc`** 立即停止 Claude。正在執行的工具呼叫被取消,Claude 等待您的下一個指令。如果您有排隊的訊息,Claude Code [會接著發送它們](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works)。

244* **輸入更正並按 `Enter`** 以在不停止正在執行的工具的情況下發送。Claude 在目前操作完成後立即讀取它,並在決定下一步之前進行調整。244* **輸入更正並按 `Enter`** 而不停止 Claude。訊息在輸入框上方顯示為已排隊。如果 Claude 正在執行工具呼叫,它會在這些呼叫完成後立即讀取訊息,在同一輪內進行調整,然後執行下一步。[在 Claude 工作時排隊訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works)涵蓋何時發送其他排隊項目。

245 245 

246<h3 id="delegate-don’t-dictate">246<h3 id="delegate-don’t-dictate">

247 委派,不要指示247 委派,不要指示

Details

26| `Ctrl+X Ctrl+K` | 停止此工作階段中所有執行中的[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),並關閉[成品自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own)以供其餘工作階段使用。在 3 秒內按兩次以確認 | 子代理控制 |26| `Ctrl+X Ctrl+K` | 停止此工作階段中所有執行中的[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),並關閉[成品自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own)以供其餘工作階段使用。在 3 秒內按兩次以確認 | 子代理控制 |

27| `Ctrl+D` | 退出 Claude Code 工作階段 | 第一次按下會顯示確認提示,第二次在 800ms 內按下會退出。當提示有文字時,`Ctrl+D` 會刪除游標後的字元 |27| `Ctrl+D` | 退出 Claude Code 工作階段 | 第一次按下會顯示確認提示,第二次在 800ms 內按下會退出。當提示有文字時,`Ctrl+D` 會刪除游標後的字元 |

28| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在預設文字編輯器中開啟 | 在您的預設文字編輯器中編輯您的提示或自訂回應。`Ctrl+X Ctrl+E` 是 readline 原生繫結。在 `/config` 中開啟**在外部編輯器中顯示最後回應**以在您的提示上方將 Claude 的先前回覆作為 `#` 註解內容前置;Claude Code 會在您儲存時移除註解區塊 |28| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在預設文字編輯器中開啟 | 在您的預設文字編輯器中編輯您的提示或自訂回應。`Ctrl+X Ctrl+E` 是 readline 原生繫結。在 `/config` 中開啟**在外部編輯器中顯示最後回應**以在您的提示上方將 Claude 的先前回覆作為 `#` 註解內容前置;Claude Code 會在您儲存時移除註解區塊 |

29| `Ctrl+L` | 重繪或清除螢幕 | 強制完整終端重繪,保留輸入和對話歷史記錄。如果顯示變得混亂或部分空白,請使用此選項來復原。在[全螢幕渲染](/docs/zh-TW/fullscreen#clear-the-conversation)中,它也會清除螢幕,您可以向上捲動以查看較早的訊息 |29| `Ctrl+L` | 重繪螢幕 | 強制完整終端重繪,保留輸入和對話歷史記錄。如果顯示變得混亂或部分空白,請使用此選項來復原。請參閱[清除對話](/docs/zh-TW/fullscreen#clear-the-conversation)以了解全螢幕渲染 |

30| `Ctrl+O` | 切換文字記錄檢視器 | 顯示詳細的工具使用情況和執行情況,每個助手訊息上都有時間戳記和使用的模型。也會展開預設摺疊的行,例如 MCP 呼叫,顯示為單一 `Called slack 3 times` 行,以及[來自您其他工作階段的訊息](/docs/zh-TW/cross-session-messaging#what-a-message-looks-like),顯示為單行 `Message from @<sender>` 預覽 |30| `Ctrl+O` | 切換文字記錄檢視器 | 顯示詳細的工具使用情況和執行情況,每個助手訊息上都有時間戳記和使用的模型。也會展開預設摺疊的行,例如 MCP 呼叫,顯示為單一 `Called slack 3 times` 行,以及[來自您其他工作階段的訊息](/docs/zh-TW/cross-session-messaging#what-a-message-looks-like),顯示為單行 `Message from @<sender>` 預覽 |

31| `Ctrl+R` | 反向搜尋命令歷史記錄 | 以互動方式搜尋先前的命令 |31| `Ctrl+R` | 反向搜尋命令歷史記錄 | 以互動方式搜尋先前的命令 |

32| `Ctrl+V` 或 `Cmd+V`(iTerm2)或 `Alt+V`(Windows 和 WSL) | 從剪貼簿貼上影像 | 在游標處插入 `[Image #N]` 晶片,以便您可以在提示中按位置參考它。在 WSL 上,`Ctrl+V` 和 `Alt+V` 都已繫結;如果您的終端攔截 `Ctrl+V`,請使用 `Alt+V` |32| `Ctrl+V` 或 `Cmd+V`(iTerm2)或 `Alt+V`(Windows 和 WSL) | 從剪貼簿貼上影像 | 在游標處插入 `[Image #N]` 晶片,以便您可以在提示中按位置參考它。在 WSL 上,`Ctrl+V` 和 `Alt+V` 都已繫結;如果您的終端攔截 `Ctrl+V`,請使用 `Alt+V` |


42| `Ctrl+Enter` 或 `Ctrl+X Ctrl+S` | 立即傳送排隊的訊息 | 中斷目前的回合,以便您的[排隊訊息](#queue-messages-while-claude-works)和您的草稿與它們一起立即發出,而不是在回合結束時。在[shell 模式](#shell-mode-with-prefix)中,該鍵會將您的命令排隊而不中斷。在不報告延伸鍵的終端中,`Ctrl+Enter` 會以純 `Enter` 的形式到達;`Ctrl+X Ctrl+S` 在任何終端中都有效。需要 Claude Code v2.1.275 或更新版本 |42| `Ctrl+Enter` 或 `Ctrl+X Ctrl+S` | 立即傳送排隊的訊息 | 中斷目前的回合,以便您的[排隊訊息](#queue-messages-while-claude-works)和您的草稿與它們一起立即發出,而不是在回合結束時。在[shell 模式](#shell-mode-with-prefix)中,該鍵會將您的命令排隊而不中斷。在不報告延伸鍵的終端中,`Ctrl+Enter` 會以純 `Enter` 的形式到達;`Ctrl+X Ctrl+S` 在任何終端中都有效。需要 Claude Code v2.1.275 或更新版本 |

43| `Shift+Tab` 或 `Alt+M`(當 Node 或 Bun 執行時間未啟用 VT 輸入模式時在 Windows 上) | 循環權限模式 | 循環通過 `default`(在模式指示器中標記為 Manual)、`acceptEdits`、`plan` 和(如果可用)`bypassPermissions`,然後是 `auto`。從 `auto`,第一次按下會切換到 `default`。請參閱[權限模式](/docs/zh-TW/permission-modes)。在檔案權限提示上,相同的鍵會關閉開啟的[註解欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)。沒有開啟欄位時,它會選擇允許該操作以供工作階段其餘部分的選項(當提示提供該選項時) |43| `Shift+Tab` 或 `Alt+M`(當 Node 或 Bun 執行時間未啟用 VT 輸入模式時在 Windows 上) | 循環權限模式 | 循環通過 `default`(在模式指示器中標記為 Manual)、`acceptEdits`、`plan` 和(如果可用)`bypassPermissions`,然後是 `auto`。從 `auto`,第一次按下會切換到 `default`。請參閱[權限模式](/docs/zh-TW/permission-modes)。在檔案權限提示上,相同的鍵會關閉開啟的[註解欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)。沒有開啟欄位時,它會選擇允許該操作以供工作階段其餘部分的選項(當提示提供該選項時) |

44| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切換模型 | 切換模型而不清除您的提示 |44| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切換模型 | 切換模型而不清除您的提示 |

45| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切換延伸思考 | 啟用或停用延伸思考模式。對 Fable 5.1 或 Fable 5 沒有影響,它們始終使用延伸思考。在 macOS 上無需設定 Option 為 Meta 即可運作 |45| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切換延伸思考 | 啟用或停用延伸思考模式。對 Opus 5.5 或 Fable 模型沒有影響,它們始終使用延伸思考。在 macOS 上無需設定 Option 為 Meta 即可運作 |

46| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切換快速模式 | 啟用或停用[快速模式](/docs/zh-TW/fast-mode) |46| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切換快速模式 | 啟用或停用[快速模式](/docs/zh-TW/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">


593 593 

594若要找出發生了哪一種情況,請使用 `claude --debug` 啟動拼寫檢查並輸入一個單詞。然後在 `~/.claude/debug/<session-id>.txt` 的偵錯日誌中查找 `[spellcheck]` 行。一行命名 Claude Code 啟動的程式,或列出它查找但未找到的程式。稍後的行說明它停止的原因。那裡的缺少字典錯誤表示檢查器沒有您的 `language` 值的字典,或當 `language` 未設定時沒有預設字典。安裝一個,或將 `language` 設定為您擁有的字典。594若要找出發生了哪一種情況,請使用 `claude --debug` 啟動拼寫檢查並輸入一個單詞。然後在 `~/.claude/debug/<session-id>.txt` 的偵錯日誌中查找 `[spellcheck]` 行。一行命名 Claude Code 啟動的程式,或列出它查找但未找到的程式。稍後的行說明它停止的原因。那裡的缺少字典錯誤表示檢查器沒有您的 `language` 值的字典,或當 `language` 未設定時沒有預設字典。安裝一個,或將 `language` 設定為您擁有的字典。

595 595 

596<h2 id="invisible-characters-in-prompts">

597 提示中的隱形字元

598</h2>

599 

600貼上的文字可能包含 Unicode 字元,終端機不會顯示這些字元,例如標籤字元、雙向控制字元和零寬度空格,因此提示可能包含您看不到的文字。為了防止複製的文字攜帶終端機不會顯示的指令,Claude Code 會在您按下 Enter 時移除這些字元,然後再傳送任何內容。它會清理提示和提示所包含的任何摺疊 [貼上文字參考](/docs/zh-TW/terminal-config#paste-large-content) 的內容。Claude Code 會保留波斯語和印度文字指令碼寫入的連接符以及表情符號序列內的選擇器。

601 

602如果 Claude Code 移除了任何內容,該 Enter 不會傳送任何內容。清理後的提示會回到輸入框中,並顯示通知,例如 `Removed 3 invisible characters · review and press Enter to send`,再次按下 Enter 會傳送顯示的文字。

603 

604當您在命令列上傳遞提示時,例如 `claude "fix the login bug"`,或將其管道傳入互動式工作階段時,Claude Code 不會等待第二次 Enter。它會移除字元、顯示通知並傳送清理後的提示。如果清理後的提示以 `/` 開頭,Claude Code 會將其放在輸入框中供您檢閱並傳送。

605 

596<h2 id="review-changes-with-/diff">606<h2 id="review-changes-with-/diff">

597 使用 /diff 檢視變更607 使用 /diff 檢視變更

598</h2>608</h2>

keybindings.md +53 −27

Details

85 85 

86在 `Global` 上下文中可用的動作:86在 `Global` 上下文中可用的動作:

87 87 

88| 動作 | 預設值 | 說明 |88| 動作 | 預設 | 說明 |

89| :--------------------- | :----- | :-------------------------------------------------------- |89| :--------------------- | :----- | :-------------------------------------------------------- |

90| `app:interrupt` | Ctrl+C | 取消目前操作 |90| `app:interrupt` | Ctrl+C | 取消目前操作 |

91| `app:exit` | Ctrl+D | 結束 Claude Code。在 800ms 內按兩次以確認 |91| `app:exit` | Ctrl+D | 結束 Claude Code。在 800ms 內按兩次以確認 |


99 99 

100用於導覽命令歷史記錄的動作:100用於導覽命令歷史記錄的動作:

101 101 

102| 動作 | 預設值 | 說明 |102| 動作 | 預設 | 說明 |

103| :----------------- | :----- | :-------- |103| :----------------- | :----- | :-------- |

104| `history:search` | Ctrl+R | 開啟歷史記錄搜尋 |104| `history:search` | Ctrl+R | 開啟歷史記錄搜尋 |

105| `history:previous` | Up | 上一個歷史記錄項目 |105| `history:previous` | Up | 上一個歷史記錄項目 |


111 111 

112在 `Chat` 上下文中可用的動作:112在 `Chat` 上下文中可用的動作:

113 113 

114| 動作 | 預設值 | 說明 |114| 動作 | 預設 | 說明 |

115| :-------------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :-------------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `chat:cancel` | Escape | 取消目前輸入 |116| `chat:cancel` | Escape | 取消目前輸入 |

117| `chat:clearInput` | Ctrl+L | 強制進行完整螢幕重新繪製,保留輸入和對話。在[全螢幕渲染](/docs/zh-TW/fullscreen#clear-the-conversation)中,也清除螢幕 |117| `chat:clearInput` | Ctrl+L | 強制進行完整螢幕重新繪製,保留輸入和對話 |

118| `chat:clearScreen` | Cmd+K | 與 `chat:clearInput` 相同。請參閱[清除對話](/docs/zh-TW/fullscreen#clear-the-conversation)以了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行為 |118| `chat:clearScreen` | Cmd+K | 與 `chat:clearInput` 相同。請參閱[清除對話](/docs/zh-TW/fullscreen#clear-the-conversation)以了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行為 |

119| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此工作階段中所有執行中的[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),並關閉此工作階段其餘部分的[成品自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own) |119| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此工作階段中所有執行中的[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),並關閉此工作階段其餘部分的[成品自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own) |

120| `chat:cycleMode` | Shift+Tab\* | 循環權限模式 |120| `chat:cycleMode` | Shift+Tab\* | 循環權限模式 |


138 138 

139在 `Autocomplete` 上下文中可用的動作:139在 `Autocomplete` 上下文中可用的動作:

140 140 

141| 動作 | 預設值 | 說明 |141| 動作 | 預設 | 說明 |

142| :---------------------- | :----- | :---- |142| :---------------------- | :----- | :---- |

143| `autocomplete:accept` | Tab | 接受建議 |143| `autocomplete:accept` | Tab | 接受建議 |

144| `autocomplete:dismiss` | Escape | 關閉選單 |144| `autocomplete:dismiss` | Escape | 關閉選單 |


151 151 

152在 `Confirmation` 上下文中可用的動作:152在 `Confirmation` 上下文中可用的動作:

153 153 

154| 動作 | 預設值 | 說明 |154| 動作 | 預設 | 說明 |

155| :---------------------- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------- |155| :---------------------- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------- |

156| `confirm:yes` | Y, Enter | 確認動作 |156| `confirm:yes` | Enter | 確認動作 |

157| `confirm:no` | N, Escape | 拒絕動作 |157| `confirm:no` | Escape | 拒絕動作 |

158| `confirm:previous` | Up | 上一個選項 |158| `confirm:previous` | Up | 上一個選項 |

159| `confirm:next` | Down | 下一個選項 |159| `confirm:next` | Down | 下一個選項 |

160| `confirm:nextField` | Tab | 下一個欄位 |160| `confirm:nextField` | Tab | 下一個欄位 |


166 166 

167在 v2.1.257 之前,`confirm:toggleExplanation` 動作(預設繫結到 `Ctrl+E`)在 Bash 和 PowerShell 權限提示上顯示模型產生的命令說明。167在 v2.1.257 之前,`confirm:toggleExplanation` 動作(預設繫結到 `Ctrl+E`)在 Bash 和 PowerShell 權限提示上顯示模型產生的命令說明。

168 168 

169對話框使用 `confirm:yes` 和 `confirm:no` 來接受和取消,即使它們不提出是或否的問題。如果您在此上下文中繫結裸字母(例如 `y` 或 `n`),該字母也會作用於從不將其顯示為按鍵的對話框。顯示 `y` 和 `n` 作為其按鍵的對話框會自行讀取這些字母,不需要繫結。

170 

171此範例將 `y` 繫結到 `confirm:yes`,將 `n` 繫結到 `confirm:no`:

172 

173```json theme={null}

174{

175 "bindings": [

176 {

177 "context": "Confirmation",

178 "bindings": {

179 "y": "confirm:yes",

180 "n": "confirm:no"

181 }

182 }

183 ]

184}

185```

186 

187在 v2.1.280 之前,`y` 也預設繫結到 `confirm:yes`,`n` 繫結到 `confirm:no`。如果您在 v2.1.280 之前使用 `/keybindings` 建立了 `keybindings.json`,該檔案會列出兩個繫結,它們會保持有效,直到您刪除這兩行。

188 

169<h3 id="permission-actions">189<h3 id="permission-actions">

170 權限動作190 權限動作

171</h3>191</h3>

172 192 

173在 `Confirmation` 上下文中可用於權限對話框的動作:193在 `Confirmation` 上下文中可用於權限對話框的動作:

174 194 

175| 動作 | 預設值 | 說明 |195| 動作 | 預設 | 說明 |

176| :----------------------- | :---- | :------------------------------------------------------ |196| :----------------------- | :---- | :------------------------------------------------------ |

177| `permission:toggleDebug` | (未繫結) | 切換權限偵錯資訊。v2.1.146 中移除了先前的 Ctrl+D 預設值,因為它與 `app:exit` 衝突 |197| `permission:toggleDebug` | (未繫結) | 切換權限偵錯資訊。v2.1.146 中移除了先前的 Ctrl+D 預設值,因為它與 `app:exit` 衝突 |

178 198 


182 202 

183在 `Transcript` 上下文中可用的動作:203在 `Transcript` 上下文中可用的動作:

184 204 

185| 動作 | 預設值 | 說明 |205| 動作 | 預設 | 說明 |

186| :------------------------- | :---------------- | :------- |206| :------------------------- | :---------------- | :------- |

187| `transcript:toggleShowAll` | Ctrl+E | 切換顯示所有內容 |207| `transcript:toggleShowAll` | Ctrl+E | 切換顯示所有內容 |

188| `transcript:exit` | q, Ctrl+C, Escape | 結束文字記錄檢視 |208| `transcript:exit` | q, Ctrl+C, Escape | 結束文字記錄檢視 |


195 215 

196在 `HistorySearch` 上下文中可用的動作:216在 `HistorySearch` 上下文中可用的動作:

197 217 

198| 動作 | 預設值 | 說明 |218| 動作 | 預設 | 說明 |

199| :------------------------- | :---------- | :---------------- |219| :------------------------- | :---------- | :---------------- |

200| `historySearch:next` | Ctrl+R | 下一個符合項目 |220| `historySearch:next` | Ctrl+R | 下一個符合項目 |

201| `historySearch:accept` | Escape, Tab | 接受選擇 |221| `historySearch:accept` | Escape, Tab | 接受選擇 |


211 231 

212在 `Task` 上下文中可用的動作:232在 `Task` 上下文中可用的動作:

213 233 

214| 動作 | 預設值 | 說明 |234| 動作 | 預設 | 說明 |

215| :---------------- | :-------------------- | :------------------------------------- |235| :---------------- | :-------------------- | :------------------------------------- |

216| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 背景執行目前工作。Ctrl+X Ctrl+B 快捷鍵避免 tmux 前綴衝突 |236| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 背景執行目前工作。Ctrl+X Ctrl+B 快捷鍵避免 tmux 前綴衝突 |

217 237 


221 241 

222在 `ThemePicker` 上下文中可用的動作:242在 `ThemePicker` 上下文中可用的動作:

223 243 

224| 動作 | 預設值 | 說明 |244| 動作 | 預設 | 說明 |

225| :------------------------------- | :----- | :------- |245| :------------------------------- | :----- | :------- |

226| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切換語法醒目提示 |246| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切換語法醒目提示 |

227 247 


231 251 

232在 `Help` 上下文中可用的動作:252在 `Help` 上下文中可用的動作:

233 253 

234| 動作 | 預設值 | 說明 |254| 動作 | 預設 | 說明 |

235| :------------- | :----- | :----- |255| :------------- | :----- | :----- |

236| `help:dismiss` | Escape | 關閉說明選單 |256| `help:dismiss` | Escape | 關閉說明選單 |

237 257 


241 261 

242在 `Tabs` 上下文中可用的動作:262在 `Tabs` 上下文中可用的動作:

243 263 

244| 動作 | 預設值 | 說明 |264| 動作 | 預設 | 說明 |

245| :-------------- | :-------------- | :---- |265| :-------------- | :-------------- | :---- |

246| `tabs:next` | Tab, Right | 下一個標籤 |266| `tabs:next` | Tab, Right | 下一個標籤 |

247| `tabs:previous` | Shift+Tab, Left | 上一個標籤 |267| `tabs:previous` | Shift+Tab, Left | 上一個標籤 |


252 272 

253在 `Attachments` 上下文中可用的動作:273在 `Attachments` 上下文中可用的動作:

254 274 

255| 動作 | 預設值 | 說明 |275| 動作 | 預設 | 說明 |

256| :--------------------- | :---------------- | :------ |276| :--------------------- | :---------------- | :------ |

257| `attachments:next` | Right | 下一個附件 |277| `attachments:next` | Right | 下一個附件 |

258| `attachments:previous` | Left | 上一個附件 |278| `attachments:previous` | Left | 上一個附件 |


265 285 

266在 `Footer` 上下文中可用的動作:286在 `Footer` 上下文中可用的動作:

267 287 

268| 動作 | 預設值 | 說明 |288| 動作 | 預設 | 說明 |

269| :---------------------- | :---------------- | :----------------------------------------------------------------------------- |289| :---------------------- | :---------------- | :----------------------------------------------------------------------------- |

270| `footer:next` | Right | 下一個頁尾項目 |290| `footer:next` | Right | 下一個頁尾項目 |

271| `footer:previous` | Left | 上一個頁尾項目 |291| `footer:previous` | Left | 上一個頁尾項目 |


275| `footer:clearSelection` | Escape | 清除頁尾選擇 |295| `footer:clearSelection` | Escape | 清除頁尾選擇 |

276| `footer:dismiss` | Backspace, Delete | 從頁尾關閉選定的[成品](/docs/zh-TW/artifacts)連結;已發佈的成品本身不受影響。在其他頁尾列上,這些按鍵無效。需要 v2.1.217 或更新版本 |296| `footer:dismiss` | Backspace, Delete | 從頁尾關閉選定的[成品](/docs/zh-TW/artifacts)連結;已發佈的成品本身不受影響。在其他頁尾列上,這些按鍵無效。需要 v2.1.217 或更新版本 |

277 297 

298當頁尾項目被選擇時(例如提示下方代理面板中的一列),`Enter` 會開啟它,即使您在 `Chat` 上下文中將 `Enter` 重新繫結到 `chat:queueSubmit` 或 `chat:newline`。

299 

300`Chat` 繫結在 `Footer` 上下文未繫結的按鍵上(例如 `chat:cycleMode` 的 `Shift+Tab`)在選擇項目時繼續有效。

301 

278<h3 id="message-selector-actions">302<h3 id="message-selector-actions">

279 訊息選擇器動作303 訊息選擇器動作

280</h3>304</h3>

281 305 

282在 `MessageSelector` 上下文中可用的動作:306在 `MessageSelector` 上下文中可用的動作:

283 307 

284| 動作 | 預設值 | 說明 |308| 動作 | 預設 | 說明 |

285| :----------------------- | :---------------------------------------- | :------- |309| :----------------------- | :---------------------------------------- | :------- |

286| `messageSelector:up` | Up, K, Ctrl+P | 在清單中向上移動 |310| `messageSelector:up` | Up, K, Ctrl+P | 在清單中向上移動 |

287| `messageSelector:down` | Down, J, Ctrl+N | 在清單中向下移動 |311| `messageSelector:down` | Down, J, Ctrl+N | 在清單中向下移動 |


295 319 

296在 `DiffDialog` 上下文中可用的動作:320在 `DiffDialog` 上下文中可用的動作:

297 321 

298| 動作 | 預設值 | 說明 |322| 動作 | 預設 | 說明 |

299| :-------------------- | :------ | :------------------------------------------------------------------------- |323| :-------------------- | :------ | :------------------------------------------------------------------------- |

300| `diff:dismiss` | Escape | 關閉差異檢視器;從詳細資訊檢視中,返回檔案清單 |324| `diff:dismiss` | Escape | 關閉差異檢視器;從詳細資訊檢視中,返回檔案清單 |

301| `diff:previousSource` | Left | 上一個差異來源 |325| `diff:previousSource` | Left | 上一個差異來源 |


307 331 

308差異詳細資訊檢視也會將分頁器風格的按鍵繫結到標準[滾動動作](#scroll-actions)。這些繫結是 `DiffDialog` 上下文的一部分,僅適用於詳細資訊檢視;[滾動動作](#scroll-actions)下列出的 `Scroll` 上下文預設值保持不變。332差異詳細資訊檢視也會將分頁器風格的按鍵繫結到標準[滾動動作](#scroll-actions)。這些繫結是 `DiffDialog` 上下文的一部分,僅適用於詳細資訊檢視;[滾動動作](#scroll-actions)下列出的 `Scroll` 上下文預設值保持不變。

309 333 

310| 動作 | 預設值 | 說明 |334| 動作 | 預設 | 說明 |

311| :-------------------- | :------------- | :---------- |335| :-------------------- | :------------- | :---------- |

312| `scroll:pageUp` | PageUp | 向上滾動視窗高度的一半 |336| `scroll:pageUp` | PageUp | 向上滾動視窗高度的一半 |

313| `scroll:pageDown` | PageDown | 向下滾動視窗高度的一半 |337| `scroll:pageDown` | PageDown | 向下滾動視窗高度的一半 |


337 361 

338在 `ModelPicker` 上下文中可用的動作:362在 `ModelPicker` 上下文中可用的動作:

339 363 

340| 動作 | 預設值 | 說明 |364| 動作 | 預設 | 說明 |

341| :---------------------------- | :---- | :--------------- |365| :---------------------------- | :---- | :--------------- |

342| `modelPicker:decreaseEffort` | Left | 降低努力程度 |366| `modelPicker:decreaseEffort` | Left | 降低努力程度 |

343| `modelPicker:increaseEffort` | Right | 提高努力程度 |367| `modelPicker:increaseEffort` | Right | 提高努力程度 |


359 383 

360在 `Select` 上下文中可用的動作:384在 `Select` 上下文中可用的動作:

361 385 

362| 動作 | 預設值 | 說明 |386| 動作 | 預設 | 說明 |

363| :---------------- | :-------------- | :------- |387| :---------------- | :-------------- | :------- |

364| `select:next` | Down, J, Ctrl+N | 下一個選項 |388| `select:next` | Down, J, Ctrl+N | 下一個選項 |

365| `select:previous` | Up, K, Ctrl+P | 上一個選項 |389| `select:previous` | Up, K, Ctrl+P | 上一個選項 |


370| `select:accept` | Enter | 接受選擇 |394| `select:accept` | Enter | 接受選擇 |

371| `select:cancel` | Escape | 取消選擇 |395| `select:cancel` | Escape | 取消選擇 |

372 396 

373Claude Code 在 `/skills` 選單中套用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 繫結。在大多數其他清單中,例如 `/model` 選擇器,Claude Code 使用 PageUp 和 PageDown 進行分頁,無論您的繫結如何,並忽略 Home 和 End。397Claude Code 在 `/skills` 選單中套用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 繫結。在大多數其他清單中,例如 `/model` 選擇器,您的 `select:first` 和 `select:last` 繫結會套用。PageUp 和 PageDown 會在這些清單中進行分頁,無論您的繫結如何。

398 

399在 v2.1.280 之前,這些其他清單忽略 Home、End 和您的 `select:first` 和 `select:last` 繫結。

374 400 

375<h3 id="plugin-actions">401<h3 id="plugin-actions">

376 Plugin 動作402 Plugin 動作


378 404 

379在 `Plugin` 上下文中可用的動作:405在 `Plugin` 上下文中可用的動作:

380 406 

381| 動作 | 預設值 | 說明 |407| 動作 | 預設 | 說明 |

382| :---------------- | :---- | :--------------------------------- |408| :---------------- | :---- | :--------------------------------- |

383| `plugin:toggle` | Space | 切換 plugin 選擇 |409| `plugin:toggle` | Space | 切換 plugin 選擇 |

384| `plugin:install` | I | 安裝選定的 plugins |410| `plugin:install` | I | 安裝選定的 plugins |


390 416 

391在 `Settings` 上下文中可用的動作。`select:accept` 和 `confirm:no` 動作會從[選擇](#select-actions)和[確認](#confirmation-actions)上下文中重複使用,具有設定特定的行為:變更會在您變更時立即套用到每個設定,因此 Escape 會關閉面板並儲存您的變更,而不是拒絕。417在 `Settings` 上下文中可用的動作。`select:accept` 和 `confirm:no` 動作會從[選擇](#select-actions)和[確認](#confirmation-actions)上下文中重複使用,具有設定特定的行為:變更會在您變更時立即套用到每個設定,因此 Escape 會關閉面板並儲存您的變更,而不是拒絕。

392 418 

393| 動作 | 預設值 | 說明 |419| 動作 | 預設 | 說明 |

394| :---------------- | :----------- | :--------------- |420| :---------------- | :----------- | :--------------- |

395| `settings:search` | / | 進入搜尋模式 |421| `settings:search` | / | 進入搜尋模式 |

396| `settings:retry` | R | 重試載入使用量資料(發生錯誤時) |422| `settings:retry` | R | 重試載入使用量資料(發生錯誤時) |


420 446 

421在啟用[語音聽寫](/docs/zh-TW/voice-dictation)時,在 `Chat` 上下文中可用的動作:447在啟用[語音聽寫](/docs/zh-TW/voice-dictation)時,在 `Chat` 上下文中可用的動作:

422 448 

423| 動作 | 預設值 | 說明 |449| 動作 | 預設 | 說明 |

424| :----------------- | :---- | :----------------------- |450| :----------------- | :---- | :----------------------- |

425| `voice:pushToTalk` | Space | 聽寫提示。根據 `/voice` 模式按住或點選 |451| `voice:pushToTalk` | Space | 聽寫提示。根據 `/voice` 模式按住或點選 |

426 452 


430 456 

431在啟用[全螢幕渲染](/docs/zh-TW/fullscreen)時,在 `Scroll` 上下文中可用的動作:457在啟用[全螢幕渲染](/docs/zh-TW/fullscreen)時,在 `Scroll` 上下文中可用的動作:

432 458 

433| 動作 | 預設值 | 說明 |459| 動作 | 預設 | 說明 |

434| :-------------------------- | :------------------- | :--------------------------------------------------- |460| :-------------------------- | :------------------- | :--------------------------------------------------- |

435| `scroll:lineUp` | `wheelup` | 向上滾動一行。滑鼠滾輪滾動會觸發此動作 |461| `scroll:lineUp` | `wheelup` | 向上滾動一行。滑鼠滾輪滾動會觸發此動作 |

436| `scroll:lineDown` | `wheeldown` | 向下滾動一行。滑鼠滾輪滾動會觸發此動作 |462| `scroll:lineDown` | `wheeldown` | 向下滾動一行。滑鼠滾輪滾動會觸發此動作 |

Details

255 255 

256這對於[子代理 worktree 隔離](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees)特別有用。子代理是為子任務生成的平行 Claude 實例,每個在 worktree 中執行的都會獲得輕量級簽出而不是完整樹。工作階段中的所有 worktrees 共享相同的 `sparsePaths`,因此如果一個子代理需要 `packages/api/` 而另一個需要 `packages/web/`,請列出兩者。256這對於[子代理 worktree 隔離](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees)特別有用。子代理是為子任務生成的平行 Claude 實例,每個在 worktree 中執行的都會獲得輕量級簽出而不是完整樹。工作階段中的所有 worktrees 共享相同的 `sparsePaths`,因此如果一個子代理需要 `packages/api/` 而另一個需要 `packages/web/`,請列出兩者。

257 257 

258在 `sparsePaths` 中列出目錄,而不是個別檔案。根級檔案(如 `package.json`、`tsconfig.base.json` 和鎖定檔案)始終與您列出的目錄一起簽出。根級目錄不是,因此如果您想要儲存庫根目錄的 `.claude/settings.json`、`.claude/rules/` 或 `.claude/skills/` 在 worktree 內可用,請在清單中包含 `.claude`。258在 `sparsePaths` 中列出目錄,而不是個別檔案。根級檔案(如 `package.json`、`tsconfig.base.json` 和鎖定檔案)始終與您列出的目錄一起簽出。根級目錄不是,因此如果您想要儲存庫根目錄的 `.claude/settings.json`、`.claude/rules/` 或 `.claude/skills/` 在 worktree 內可用,請在清單中包含 `.claude`。對於專案技能、代理和命令,請參閱[worktrees 與主簽出共享的內容](/docs/zh-TW/worktrees#what-worktrees-share-with-the-main-checkout)。

259 259 

260Sparse checkout 需要 git 在儲存庫的共享 `.git/config` 中啟用 `extensions.worktreeConfig`,同時存在 sparse worktree。Claude Code 在移除最後一個 worktree 後會移除該項目,但僅當 Claude Code 添加了它時。它永遠不會移除您自己設定的值。在 v2.1.207 之前,該項目在移除最後一個 worktree 後仍然存在,並且基於 go-git 的工具(例如 `tea`)無法開啟儲存庫,直到您執行 `git config --unset extensions.worktreeConfig`。260Sparse checkout 需要 git 在儲存庫的共享 `.git/config` 中啟用 `extensions.worktreeConfig`,同時存在 sparse worktree。Claude Code 在移除最後一個 worktree 後會移除該項目,但僅當 Claude Code 添加了它時。它永遠不會移除您自己設定的值。在 v2.1.207 之前,該項目在移除最後一個 worktree 後仍然存在,並且基於 go-git 的工具(例如 `tea`)無法開啟儲存庫,直到您執行 `git config --unset extensions.worktreeConfig`。

261 261 

Details

588| `400` 錯誤命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型構建不接受自適應推理,Claude Code 為 Claude 4.6 及更高版本的模型請求 | 升級閘道的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 改為有效。[模型配置](/docs/zh-TW/model-config)功能變數僅適用於提供者配置(例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`),不在 `ANTHROPIC_BASE_URL` 閘道後面 |588| `400` 錯誤命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型構建不接受自適應推理,Claude Code 為 Claude 4.6 及更高版本的模型請求 | 升級閘道的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 改為有效。[模型配置](/docs/zh-TW/model-config)功能變數僅適用於提供者配置(例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`),不在 `ANTHROPIC_BASE_URL` 閘道後面 |

589| `400` 錯誤陳述閘道自己的詞語中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 閘道強制執行比模型的本機視窗更小的上下文,並重寫上游錯誤,因此 Claude Code 不會將其識別為[過長錯誤](/docs/zh-TW/errors#prompt-is-too-long),並且不會自動壓縮和重試 | 執行 `/compact` 以恢復會話。要防止它,請將 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 設定為閘道的限制;Claude Code 將該值限制在至少 100,000 令牌和最多模型的上下文視窗,因此您無法匹配低於 100,000 的閘道限制,`/compact` 在那裡仍然是恢復。還要將 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 設定為低於閘道模型的輸出限制 |589| `400` 錯誤陳述閘道自己的詞語中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 閘道強制執行比模型的本機視窗更小的上下文,並重寫上游錯誤,因此 Claude Code 不會將其識別為[過長錯誤](/docs/zh-TW/errors#prompt-is-too-long),並且不會自動壓縮和重試 | 執行 `/compact` 以恢復會話。要防止它,請將 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 設定為閘道的限制;Claude Code 將該值限制在至少 100,000 令牌和最多模型的上下文視窗,因此您無法匹配低於 100,000 的閘道限制,`/compact` 在那裡仍然是恢復。還要將 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 設定為低於閘道模型的輸出限制 |

590| `400` 錯誤在每個請求上,在閘道自己的詞語中拒絕工具的輸入架構或其 `pattern`,在 Claude Code v2.1.265 至 v2.1.267 上 | 在這些版本上的逐步推出中,[Artifact 工具](/docs/zh-TW/artifacts#availability)架構帶有包含 `\p{...}` Unicode 字元類的正規表達式。Anthropic API 接受它,但檢查每個工具架構的 `pattern` 的閘道或上游使用自己的正規表達式引擎會拒絕整個請求 | 更新到 v2.1.268 或更高版本,不發送正規表達式。在受影響的版本上,[關閉 artifacts](/docs/zh-TW/artifacts#disable-artifacts),這會從請求中移除工具及其架構 |590| `400` 錯誤在每個請求上,在閘道自己的詞語中拒絕工具的輸入架構或其 `pattern`,在 Claude Code v2.1.265 至 v2.1.267 上 | 在這些版本上的逐步推出中,[Artifact 工具](/docs/zh-TW/artifacts#availability)架構帶有包含 `\p{...}` Unicode 字元類的正規表達式。Anthropic API 接受它,但檢查每個工具架構的 `pattern` 的閘道或上游使用自己的正規表達式引擎會拒絕整個請求 | 更新到 v2.1.268 或更高版本,不發送正規表達式。在受影響的版本上,[關閉 artifacts](/docs/zh-TW/artifacts#disable-artifacts),這會從請求中移除工具及其架構 |

591| `400` 錯誤在每個請求上,在閘道自己的詞語中拒絕無法識別的工具類型,例如 `Input tag 'advisor_20260301'`,在 Claude Code v2.1.275 上 | 在該版本上的逐步推出中,即使關閉顧問,請求也會帶有[顧問工具](/docs/zh-TW/advisor)項目。Anthropic API 接受它,但驗證工具類型的閘道或上游會拒絕整個請求;[轉發請求正文欄位不變](/docs/zh-TW/llm-gateway-protocol#forward-as-open-lists)的閘道會不受影響地通過它。該項目是一個不帶任何對話內容的聲明 | 更新到 v2.1.276 或更高版本,除非您打開顧問,否則不會在 `ANTHROPIC_BASE_URL` 閘道後面發送該項目。在 v2.1.275 上,設定 [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`](/docs/zh-TW/env-vars),這會從請求中移除該項目 |

591| 模型缺失於 `/model` 選擇器 | 閘道模型名稱不在 Claude Code 的內置列表中,或 Claude Code 顯示替換內置選項的 [`modelPicker`](/docs/zh-TW/settings-reference#modelpicker) 陣容 | 啟用[閘道模型發現](#add-gateway-models-to-the-model-picker)或使用[模型配置](/docs/zh-TW/model-config)變數添加名稱。如果 Claude Code 顯示替換 `modelPicker` 陣容,請將閘道模型添加到其中,或在受管設定提供時要求您的管理員添加它們 |592| 模型缺失於 `/model` 選擇器 | 閘道模型名稱不在 Claude Code 的內置列表中,或 Claude Code 顯示替換內置選項的 [`modelPicker`](/docs/zh-TW/settings-reference#modelpicker) 陣容 | 啟用[閘道模型發現](#add-gateway-models-to-the-model-picker)或使用[模型配置](/docs/zh-TW/model-config)變數添加名稱。如果 Claude Code 顯示替換 `modelPicker` 陣容,請將閘道模型添加到其中,或在受管設定提供時要求您的管理員添加它們 |

592| `/fast` 報告 `Fast mode unavailable due to network connectivity issues`,而推理請求有效 | [快速模式](/docs/zh-TW/fast-mode)可用性檢查直接進入 `api.anthropic.com`,不遵循 `ANTHROPIC_BASE_URL`,因此阻止的直接出站會導致檢查失敗。當檢查呈現來自 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 的閘道簽發的金鑰,而 Anthropic 拒絕它時,在開放網路上也會出現相同的訊息 | 如果出站被阻止,請將 `api.anthropic.com` 列入白名單,或設定跳過變數;對於被拒絕的閘道金鑰,只有跳過變數有幫助。請參閱[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |593| `/fast` 報告 `Fast mode unavailable due to network connectivity issues`,而推理請求有效 | [快速模式](/docs/zh-TW/fast-mode)可用性檢查直接進入 `api.anthropic.com`,不遵循 `ANTHROPIC_BASE_URL`,因此阻止的直接出站會導致檢查失敗。當檢查呈現來自 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 的閘道簽發的金鑰,而 Anthropic 拒絕它時,在開放網路上也會出現相同的訊息 | 如果出站被阻止,請將 `api.anthropic.com` 列入白名單,或設定跳過變數;對於被拒絕的閘道金鑰,只有跳過變數有幫助。請參閱[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

593| `/fast` 在使用 `ANTHROPIC_AUTH_TOKEN` 驗證的會話中報告 `Fast mode has been disabled by your organization`,儘管組織已啟用快速模式 | 可用性檢查需要 claude.ai 登入或 Anthropic API 金鑰;僅使用持有人令牌,Claude Code 會將快速模式視為已禁用,而不發送檢查 | 設定 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`;請參閱[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |594| `/fast` 在使用 `ANTHROPIC_AUTH_TOKEN` 驗證的會話中報告 `Fast mode has been disabled by your organization`,儘管組織已啟用快速模式 | 可用性檢查需要 claude.ai 登入或 Anthropic API 金鑰;僅使用持有人令牌,Claude Code 會將快速模式視為已禁用,而不發送檢查 | 設定 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`;請參閱[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

Details

144 144 

145如果您的開發人員設定了 `ANTHROPIC_CUSTOM_HEADERS`,這些標頭也會出現在請求上。145如果您的開發人員設定了 `ANTHROPIC_CUSTOM_HEADERS`,這些標頭也會出現在請求上。

146 146 

147<h3 id="gateway-hint-headers">

148 Gateway 提示標頭

149</h3>

150 

151Claude Code 也可以傳送路由提示:gateway 或路由器可以用來排程、快取或歸屬請求的每個請求事實。需要 Claude Code v2.1.273 或更新版本。

152 

153請求是否攜帶它們取決於 Claude Code 將其傳送到何處:

154 

155* 直接連接到 Anthropic API:預設傳送

156* 自訂基礎 URL:預設關閉,因為拒絕未知標頭的代理會導致請求失敗。若要接收它們,請為您的開發人員設定 [`CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`](/docs/zh-TW/env-vars),例如在[受管設定](/docs/zh-TW/managed-settings)的 `env` 區塊中

157* 任何其他後端,包括 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform:僅在設定 `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1` 時傳送

158 

159將 `CLAUDE_CODE_GATEWAY_HINT_HEADERS` 設定為 `0` 會停止每個連接上的標頭。

160 

161標頭只攜帶下面列出的內容:固定詞彙、工具名稱和持續時間,永遠不會是提示文字或檔案內容。每個值都是可列印的 ASCII。

162 

163| 標頭 | 描述 |

164| :---------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

165| `x-claude-code-request-class` | 這是什麼類型的請求:`main` 用於主對話的一個回合,`subagent` 用於[子代理](/docs/zh-TW/sub-agents)的一個回合,`workflow` 用於在工作流程內執行的代理,`compaction` 用於壓縮對話的摘要請求,或 `auxiliary` 用於側面請求,例如工作階段標題、分類器和摘要。在每個請求上傳送 |

166| `x-claude-code-agent-type` | 發出請求的子代理類型:內建代理類型名稱,例如 `Explore`、`Plan` 或 `general-purpose`,或 `custom` 用於使用者定義的代理,`teammate` 用於在主導者程序中執行的[代理團隊](/docs/zh-TW/agent-teams)成員,或 `fork` 用於[分支](/docs/zh-TW/sub-agents#fork-the-current-conversation)。僅在子代理自己的回合上存在;子代理的壓縮或側面請求保留代理 ID,但不攜帶類型。使用者選擇的代理名稱永遠不會被傳送 |

167| `x-claude-code-compaction` | 在[壓縮](/docs/zh-TW/prompt-caching#compacting-the-conversation)期間摘要對話的請求上存在。該值說明觸發了什麼:`auto` 當上下文視窗接近容量時,`manual` 用於 `/compact`,或 `reactive` 當 API 拒絕請求太長時。在所有其他請求上不存在 |

168| `x-claude-code-context-compacted` | 在壓縮後的第一個主對話請求上存在一次,具有與 `x-claude-code-compaction` 相同的值。此請求之前的對話前綴不再使用,因此可以刪除以其為鍵的快取 |

169| `x-claude-code-prev-tool-durations` | 此請求攜帶其結果的工具呼叫的測量執行時間,格式為 `<name>=<ms>;<name>=<ms>`,例如 `Bash=742;Read=9`。在同一對話的下一個請求之後傳送,來自主工作階段或子代理的一批工具呼叫 |

170 

171在解析 `x-claude-code-prev-tool-durations` 之前,請檢查 Claude Code 如何建立該值以及它遺漏了什麼:

172 

173* 項目:每個執行的工具呼叫一個,按其結果被收集的順序,以整毫秒為單位

174* 上限:Claude Code 最多傳送 32 個項目和 4 KB,保留第一個項目

175* 編碼:工具名稱是百分比編碼的,涵蓋 `%`、`;`、`=`、逗號、空格和任何超出可列印 ASCII 的字元

176* 解析:在 `;` 上分割,然後在 `=` 上分割,並解碼每個名稱

177* 缺失:壓縮呼叫、側面請求和新提示的第一個請求永遠不會攜帶它。不要將缺失的標頭讀作執行無工具的回合

178* 時間:每個時間都排除了權限提示和 hooks,平行工具呼叫各自報告自己的時間,因此項目不會加起來等於請求之間的間隙

179 

147<h3 id="forward-as-open-lists">180<h3 id="forward-as-open-lists">

148 作為開放清單轉發181 作為開放清單轉發

149</h3>182</h3>


221 254 

222* 當上游拒絕 `thinking` 欄位、中途對話系統訊息或這類訊息上的 `cache_control` 標記時,Claude Code 會重試請求並為對話的其餘部分禁用被拒絕的功能255* 當上游拒絕 `thinking` 欄位、中途對話系統訊息或這類訊息上的 `cache_control` 標記時,Claude Code 會重試請求並為對話的其餘部分禁用被拒絕的功能

223* 當上游拒絕[思考簽名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)時,包括以 `400` 拒絕其中區塊 `bound to a different conversation` 時,Claude Code 會從請求中移除較早的思考區塊、重試,並將它們排除在每個後續請求之外。新回應仍包含思考256* 當上游拒絕[思考簽名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)時,包括以 `400` 拒絕其中區塊 `bound to a different conversation` 時,Claude Code 會從請求中移除較早的思考區塊、重試,並將它們排除在每個後續請求之外。新回應仍包含思考

257* 當 gateway 或其上游將[顧問工具](/docs/zh-TW/advisor)項目在 `tools` 中拒絕為無法識別的工具類型時,Claude Code 會重試一次請求,不包含該項目及其 `anthropic-beta` 值。對該基礎 URL 的後續請求會將顧問排除在外,直到 Claude Code 退出,且 `/advisor` 對開發人員在該時間內不可用。Claude Code 通過 `400` 或 `422` 回應識別此拒絕,其訊息在 `Input tag` 後命名工具類型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 沒有重試此拒絕

224* Claude Code 不會重試上下文管理或工具架構欄位的拒絕,因此這些 `400` 錯誤會到達開發人員258* Claude Code 不會重試上下文管理或工具架構欄位的拒絕,因此這些 `400` 錯誤會到達開發人員

225 259 

226`bound to a different conversation` 拒絕來自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)檢查,當 `system`、`tools` 或較早的 `messages` 內容與產生思考的請求不同時,該檢查會失敗。重寫任何該內容的 gateway 可能會導致拒絕本身;[程式庫、代理和 gateway](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵蓋要逐字轉發的內容。260`bound to a different conversation` 拒絕來自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)檢查,當 `system`、`tools` 或較早的 `messages` 內容與產生思考的請求不同時,該檢查會失敗。重寫任何該內容的 gateway 可能會導致拒絕本身;[程式庫、代理和 gateway](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵蓋要逐字轉發的內容。

Details

184| `ANTHROPIC_BASE_URL` | 將 Claude Code 的 API 請求發送到閘道,而不是 `api.anthropic.com` | 總是 |184| `ANTHROPIC_BASE_URL` | 將 Claude Code 的 API 請求發送到閘道,而不是 `api.anthropic.com` | 總是 |

185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的認證 | 驗證對閘道的每個請求。幫助程式執行命令以擷取金鑰;變數持有靜態金鑰,分別作為 `Authorization: Bearer` 和 `x-api-key` 發送 | 總是;三者之一 |185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的認證 | 驗證對閘道的每個請求。幫助程式執行命令以擷取金鑰;變數持有靜態金鑰,分別作為 `Authorization: Bearer` 和 `x-api-key` 發送 | 總是;三者之一 |

186| `ANTHROPIC_CUSTOM_HEADERS` | 將額外的 HTTP 標頭新增到每個 API 請求 | 您的閘道在每個請求上需要租戶或路由標頭 |186| `ANTHROPIC_CUSTOM_HEADERS` | 將額外的 HTTP 標頭新增到每個 API 請求 | 您的閘道在每個請求上需要租戶或路由標頭 |

187| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 發送[閘道提示標頭](/docs/zh-TW/llm-gateway-protocol#gateway-hint-headers),它們為閘道的路由和排程決策分類每個請求。需要 Claude Code v2.1.273 或更新版本 | 您的閘道讀取提示標頭 |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在啟動時查詢閘道的 `/v1/models` 並將返回的名稱新增到 `/model` 選擇器 | 您的閘道提供 `/v1/models` 並且您希望開發者的選擇器從中填充 |188| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在啟動時查詢閘道的 `/v1/models` 並將返回的名稱新增到 `/model` 選擇器 | 您的閘道提供 `/v1/models` 並且您希望開發者的選擇器從中填充 |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 發送預發行功能標頭和正文欄位。[停用預發行功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities)涵蓋確切的範圍 | 您的閘道轉發到拒絕測試版欄位的 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上游。請參閱[閘道要求](#gateway-requirements) |189| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 發送預發行功能標頭和正文欄位。[停用預發行功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities)涵蓋確切的範圍 | 您的閘道轉發到拒絕測試版欄位的 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上游。請參閱[閘道要求](#gateway-requirements) |

189| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` 或 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 當其可用性檢查(直接呼叫 `api.anthropic.com` 而不是遵循 `ANTHROPIC_BASE_URL`)失敗、被攔截或因缺少 Anthropic 認證而被跳過時,恢復[快速模式](/docs/zh-TW/fast-mode) | 您的組織使用快速模式,開發者僅使用 `ANTHROPIC_AUTH_TOKEN` 進行身份驗證,在 `ANTHROPIC_API_KEY` 中有閘道發放的金鑰或來自 `apiKeyHelper`,或您的網路阻止或攔截對 `api.anthropic.com` 的直接請求;[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)涵蓋哪個變數符合您的配置 |190| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` 或 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 當其可用性檢查(直接呼叫 `api.anthropic.com` 而不是遵循 `ANTHROPIC_BASE_URL`)失敗、被攔截或因缺少 Anthropic 認證而被跳過時,恢復[快速模式](/docs/zh-TW/fast-mode) | 您的組織使用快速模式,開發者僅使用 `ANTHROPIC_AUTH_TOKEN` 進行身份驗證,在 `ANTHROPIC_API_KEY` 中有閘道發放的金鑰或來自 `apiKeyHelper`,或您的網路阻止或攔截對 `api.anthropic.com` 的直接請求;[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)涵蓋哪個變數符合您的配置 |

Details

294<span id="verify-that-a-policy-is-in-force" />294<span id="verify-that-a-policy-is-in-force" />

295 295 

296<h2 id="check-that-a-policy-is-in-force">296<h2 id="check-that-a-policy-is-in-force">

297 檢查原則是否有效297 檢查政策是否生效

298</h2>298</h2>

299 299 

300開發者報告原則未應用,或您想在推出到機隊之前確認推出已著陸。該機器上的兩個命令回答它:`/status` 顯示 Claude Code 選擇了哪個受管來源,`claude doctor` 列出它刪除的內容。300開發人員報告政策未應用,或者您想在將其推送到整個機隊之前確認推出已完成。該機器上的兩個命令可以回答這個問題:`/status` 顯示 Claude Code 選擇了哪個受管理的來源,而 `claude doctor` 列出它丟棄的內容。

301 301 

302<h3 id="read-the-source-in-/status">302<h3 id="read-the-source-in-/status">

303 讀取 /status 中的來源303 在 /status 中讀取來源

304</h3>304</h3>

305 305 

306在開發者的機器上,在 Claude Code 內執行 `/status` 並讀取 `Setting sources` 行。當受管來源有效時,該行列出 `Enterprise managed settings` 以及 Claude Code 在括號中選擇的來源:306在開發人員的機器上,在 Claude Code 內執行 `/status` 並讀取 `Setting sources` 行。當受管理的來源生效時,該行列出 `Enterprise managed settings`,並在括號中顯示 Claude Code 選擇的來源:

307 307 

308* `(remote)`:來自 claude.ai 或閘道的伺服器受管設定308* `(remote)`:來自 claude.ai 或閘道的伺服器管理設定

309* `(plist)` 或 `(HKLM)`:MDM 或作業系統原則309* `(plist)` 或 `(HKLM)`:MDM 或作業系統政策

310* `(file)`、`(drop-ins)` 或 `(file + drop-ins)`:`managed-settings.json`、放置目錄或兩者310* `(file)`、`(drop-ins)` 或 `(file + drop-ins)`:`managed-settings.json`、drop-in 目錄或兩者

311* `(remote + file, merged)` 或另一個以 `, merged` 結尾的列表:您的組織[組成每個受管來源](#compose-every-managed-source),Claude Code 將列出的來源合併到原則中。較低來源仍然可以提供 `env` 變數而不出現在列表中。需要 Claude Code v2.1.242 或更新版本311* `(remote + file, merged)` 或其他以 `, merged` 結尾的列表:您的組織[組合每個受管理的來源](#compose-every-managed-source),Claude Code 將列出的來源合併到政策中。較低的來源仍然可以提供 `env` 變數而不出現在列表中。需要 Claude Code v2.1.242 或更新版本

312* `(HKCU)`:使用者可寫登錄回退312* `(HKCU)`:使用者可寫的登錄檔備用方案

313* `(parent process)`:[嵌入主機](#let-an-embedding-host-add-policy)提供了限制性設定313* `(parent process)`:[嵌入主機](#let-an-embedding-host-add-policy)提供的限制性設定

314* `(helper)`:由選定的 MDM 或檔案來源配置的 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper)314* `(helper)`:由選定的 MDM 或檔案來源配置的 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper)

315 315 

316當 Claude Code 在機器上找到受管來源但未選擇它時,第二行 `Skipped sources` 命名每個這樣的來源。讀取它以區分從不到達機器的原則與到達它並被較高優先順序來源覆蓋的原則。需要 Claude Code v2.1.242 或更新版本。316當 Claude Code 在機器上找到受管理的來源但未選擇它時,第二行 `Skipped sources` 會列出每個這樣的來源。讀取它以區分政策從未到達機器的情況和政策到達但被更高優先級來源覆蓋的情況。需要 Claude Code v2.1.242 或更新版本。

317 317 

318當原則未應用時,`Setting sources` 行告訴您您有以下兩個問題中的哪一個:318當政策未應用時,`Setting sources` 行會告訴您您有以下兩個問題中的哪一個:

319 319 

320* **該行遺失**:Claude Code 找不到傳遞原則金鑰的受管來源。320* **該行缺失**:Claude Code 找不到傳遞政策金鑰的受管理來源。

321 321 

322 如果您部署了受管設定檔案,請檢查它位於作業系統的路徑,並且它包含[原則金鑰](#how-claude-code-combines-managed-sources)而不是僅控制金鑰。不是有效 JSON 的檔案不會產生此狀態;Claude Code [拒絕啟動](#find-entries-claude-code-dropped)。322 如果您部署了受管理設定檔案,請檢查它是否位於作業系統的路徑中,以及它是否包含[政策金鑰](#how-claude-code-combines-managed-sources)而不僅僅是控制金鑰。不是有效 JSON 的檔案不會產生此狀態;Claude Code [拒絕啟動](#find-entries-claude-code-dropped)。

323 323 

324 當您改為透過伺服器受管設定部署時,執行 `claude doctor`,它報告[擷取結果](/docs/zh-TW/server-managed-settings#verify-settings-delivery)。324 當您改為通過伺服器管理設定部署時,執行 `claude doctor`,它會報告[擷取結果](/docs/zh-TW/server-managed-settings#verify-settings-delivery)。

325* **該行命名您部署的來源以外的來源**:存在較高優先順序的來源,Claude Code 忽略了您的,`Skipped sources` 列出它。[Claude Code 如何結合受管來源](#how-claude-code-combines-managed-sources)給出順序。325* **該行命名的來源不是您部署的來源**:存在更高優先級的來源,Claude Code 忽略了您的來源,`Skipped sources` 列出了它。[Claude Code 如何組合受管理來源](#how-claude-code-combines-managed-sources)給出了順序。

326 326 

327<span id="invalid-entries-in-managed-settings" />327<span id="invalid-entries-in-managed-settings" />

328 328 

329<h3 id="find-entries-claude-code-dropped">329<h3 id="find-entries-claude-code-dropped">

330 尋找 Claude Code 刪除的項目330 尋找 Claude Code 丟棄的項目

331</h3>331</h3>

332 332 

333當受管設定檔案、MDM 設定檔、登錄值或伺服器受管有效負載無法通過架構驗證時,Claude Code 首先跳過它可以修復的個別項目,例如一個無效的權限規則,每個都有警告,然後刪除任何頂層金鑰,其值仍然失敗,並繼續強制執行每個剩餘的有效金鑰。333當受管理設定檔案、MDM 設定檔、登錄檔值或伺服器管理承載未通過架構驗證時,Claude Code 首先跳過它可以修復的個別項目(例如一個無效的權限規則),並為每個項目發出警告,然後丟棄任何頂級金鑰,其值仍然失敗,並繼續強制執行每個剩餘的有效金鑰。

334 334 

335Claude Code 對 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 發出的 `managedSettings` 更嚴格:它進行相同的項目修復,但任何倖存的架構違規都會導致整個協助程式執行失敗,在啟動時 Claude Code 拒絕啟動,與協助程式退出非零相同。335Claude Code 對 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 發出的 `managedSettings` 更加嚴格:它進行相同的項目修復,但任何倖存的架構違規都會導致整個 helper 執行失敗,在啟動時 Claude Code 拒絕啟動,與 helper 以非零狀態退出的情況相同。

336 336 

337當受管設定檔案、放置檔案、MDM plist 或 HKLM 登錄值存在但無法解析為 JSON 物件時,Claude Code 拒絕啟動並列印[命名來源的錯誤](/docs/zh-TW/errors#managed-settings-document-could-not-be-parsed),即使另一個管理來源傳遞有效原則。每個來源在以下情況下以這種方式失敗:337當受管理設定檔案、drop-in 檔案、MDM plist 或 HKLM 登錄檔值存在但無法解析為 JSON 物件時,Claude Code 拒絕啟動並列印[命名來源的錯誤](/docs/zh-TW/errors#managed-settings-document-could-not-be-parsed),即使另一個管理員來源提供有效政策也是如此。每個來源在以下情況下以這種方式失敗:

338 338 

339* **受管設定檔案或放置檔案**:檔案不是有效的 JSON,或其頂層不是物件339* **受管理設定檔案或 drop-in 檔案**:檔案不是有效的 JSON,或其頂級不是物件

340* **MDM plist**:macOS 的 `plutil` 報告 plist 格式不正確,或其轉換的內容不是 JSON 物件340* **MDM plist**:macOS 的 `plutil` 報告 plist 格式不正確,或其轉換的內容不是 JSON 物件

341* **HKLM 登錄值**:`Settings` 值不是字串、為空或不持有 JSON 物件341* **HKLM 登錄檔值**:`Settings` 值不是字串、為空或不包含 JSON 物件

342 342 

343三個來源狀態不會導致此拒絕:343三個來源狀態不會導致此拒絕:

344 344 

345* 缺少的檔案、設定檔或登錄值不是失敗;Claude Code 在沒有該來源的情況下執行。345* 缺失的檔案、設定檔或登錄檔值不是失敗;Claude Code 在沒有該來源的情況下執行。

346* 空的受管設定檔案計為 `{}`。346* 空的受管理設定檔案計為 `{}`。

347* 使用者可寫 HKCU 登錄金鑰中的格式不正確的值永遠不會阻止啟動。Claude Code 將其報告為 `/status` 和 `claude doctor` 中的通知。347* 使用者可寫的 HKCU 登錄檔金鑰中的格式不正確的值永遠不會阻止啟動。Claude Code 將其報告為 `/status` 和 `claude doctor` 中的通知。

348 348 

349如果受管設定檔案、放置檔案或 `managed-settings.d/` 目錄無法讀取,且沒有管理來源提供原則,使用 claude.ai 或 Claude Console 認證登入的工作階段在啟動時退出,並顯示聯絡管理員的訊息。349如果受管理設定檔案、drop-in 檔案或 `managed-settings.d/` 目錄無法讀取,且沒有管理員來源提供政策,使用 claude.ai 或 Claude Console 認證登入的工作階段將在啟動時退出,並顯示聯絡管理員的訊息。

350 350 

351若要尋找刪除的項目,請查看以下三個位置之一:351要尋找丟棄的項目,請查看以下三個位置之一:

352 352 

353* 互動式工作階段在啟動時顯示列出無效項目的對話。353* 互動式工作階段在啟動時顯示列出無效項目的對話框。

354* 使用 `-p` 的非互動式執行將摘要列印到 stderr。354* 使用 `-p` 的非互動式執行會將摘要列印到 stderr。

355* [`claude doctor`](/docs/zh-TW/debug-your-config) 列出每個無效項目及其來源和欄位。355* [`claude doctor`](/docs/zh-TW/debug-your-config) 列出每個無效項目及其來源和欄位。

356 356 

357<h4 id="keys-that-fail-closed">357<h4 id="keys-that-fail-closed">

358 失敗關閉的金鑰358 失敗關閉的金鑰

359</h4>359</h4>

360 360 

361少數強制執行金鑰在無效時不會被刪除。Claude Code 強制執行更嚴格的回退,直到值被修復;表格顯示它對每個金鑰強制執行的內容:361少數強制執行金鑰在無效時不會被丟棄。Claude Code 強制執行更嚴格的備用方案,直到修復該值;該表格顯示了它為每個金鑰強制執行的內容:

362 362 

363| 欄位 | 存在但無效時的行為 |363| 欄位 | 存在但無效時的行為 |

364| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |364| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | 強制執行為空允許清單,直到值被修復,因此使用者添加的沒有 MCP 伺服器被允許。您的組織透過 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers) 傳遞的伺服器仍然載入,`managed-mcp.json` 伺服器按[伺服器如何被評估](/docs/zh-TW/managed-mcp#how-a-server-is-evaluated)載入。個別無效項目被剝離,有效子集被強制執行。 |365| `allowedMcpServers` | 強制執行為空的允許清單,直到修復該值,因此使用者添加的任何 MCP 伺服器都不被允許。您的組織通過 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers) 提供的伺服器仍然會載入,`managed-mcp.json` 伺服器根據[伺服器如何被評估](/docs/zh-TW/managed-mcp#how-a-server-is-evaluated)載入。個別無效項目被剝離,有效子集被強制執行。 |

366| `allowedHttpHookUrls` | Claude Code 強制執行空[允許清單](/docs/zh-TW/settings-reference#allowedhttphookurls),直到您修復值。如果僅個別項目無效,它會剝離該項目並強制執行其餘項目。 |366| `allowedHttpHookUrls` | Claude Code 強制執行空的受管理[允許清單](/docs/zh-TW/settings-reference#allowedhttphookurls),直到您修復該值,因此 HTTP hook 只有在另一個設定檔案列出其 URL 時才會執行。如果只有個別項目無效,Claude Code 會剝離該項目並強制執行其餘項目。 |

367| `httpHookAllowedEnvVars` | Claude Code 強制執行空[允許清單](/docs/zh-TW/settings-reference#httphookallowedenvvars),直到您修復值。如果僅個別項目無效,它會剝離該項目並強制執行其餘項目。 |367| `httpHookAllowedEnvVars` | Claude Code 強制執行空的受管理[允許清單](/docs/zh-TW/settings-reference#httphookallowedenvvars),直到您修復該值,因此標頭變數只有在另一個設定檔案命名它時才會被插值。如果只有個別項目無效,Claude Code 會剝離該項目並強制執行其餘項目。 |

368| `allowedChannelPlugins` | Claude Code 強制執行空允許清單,直到您修復值,因此傳遞給 `--channels` 的沒有頻道外掛被允許。如果僅個別項目無效,它會剝離該項目並強制執行其餘項目。 |368| `allowedChannelPlugins` | Claude Code 強制執行空的允許清單,直到您修復該值,因此傳遞給 `--channels` 的任何頻道外掛都不被允許。如果只有個別項目無效,它會剝離該項目並強制執行其餘項目。 |

369| `allowManagedHooksOnly` | 視為 `true` 直到修復:[掛鉤限制](/docs/zh-TW/settings-reference#allowmanagedhooksonly)適用,除非 `disableCommandPluginSources` 明確為 `false`,否則命令來源的外掛被禁用。 |369| `strictKnownMarketplaces` | 強制執行為空的允許清單,直到修復該值,因此沒有[市場來源](/docs/zh-TW/plugin-marketplaces#managed-marketplace-restrictions)被允許。無效或無法強制執行的個別項目(例如無法編譯的 `hostPattern` 正規表達式)被剝離,有效子集被強制執行。 |

370| `allowManagedHooksOnly` | 視為 `true` 直到修復:[hook 限制](/docs/zh-TW/settings-reference#allowmanagedhooksonly)適用,除非 `disableCommandPluginSources` 明確為 `false`,否則命令來源的外掛被禁用。 |

370| `allowManagedMcpServersOnly` | 視為 `true`。 |371| `allowManagedMcpServersOnly` | 視為 `true`。 |

371| `disableCommandPluginSources` | 視為 `true`,因此命令來源的外掛保持禁用,直到值被修復。 |372| `disableCommandPluginSources` | 視為 `true`,因此命令來源的外掛保持禁用,直到修復該值。 |

372| `availableModels` | 強制執行為空允許清單,直到修復,因此僅預設模型可用;非字串項目被剝離,有效子集被強制執行。 |373| `disableSideloadFlags` | 視為 `true` 直到修復該值,具有為 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags) 列出的效果。 |

374| `availableModels` | 強制執行為空的允許清單直到修復,因此只有預設模型可用;非字串項目被剝離,有效子集被強制執行。 |

373| `enforceAvailableModels` | 視為 `true`。 |375| `enforceAvailableModels` | 視為 `true`。 |

374| `forceLoginOrgUUID` | 沒有組織被允許登入,直到值被修復。 |376| `syncClaudeAiPlugins` | 視為 `false`,因此[claude.ai 外掛](/docs/zh-TW/settings-reference#syncclaudeaiplugins)的同步關閉,直到修復該值。 |

375| `gatewayInternalNetworks` | 當無效值來自機器上最高的受管來源時,`/login` 拒絕該機器上的每個新[雲閘道](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)登入,直到值被修復。 |377| `forceLoginOrgUUID` | 直到修復該值,不允許任何組織登入。 |

376| `crossSessionInbound` | 視為 `refuse`,最嚴格的值,因此入站[跨工作階段訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)被拒絕,直到值被修復。開發者看到[警告](/docs/zh-TW/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)。 |378| `gatewayInternalNetworks` | 當無效值來自機器上最高的受管理來源時,`/login` 拒絕該機器上的每個新[雲端閘道](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)登入,直到修復該值。 |

377| `deniedMcpServers` | 個別無效項目被剝離,有效子集被強制執行。完全無效的值被刪除並顯示警告,因為拒絕每個伺服器會阻止原則從未命名的伺服器。 |379| `crossSessionInbound` | 視為 `refuse`(最限制性的值),因此入站[跨工作階段訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)被拒絕,直到修復該值。開發人員看到[警告](/docs/zh-TW/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)。 |

378| `sandbox.credentials` | 可恢復的無效項目降級為 `mode: "deny"` 並顯示警告;無法恢復的項目被剝離;有效項目保持強制執行。請參閱[受管設定中的無效認證項目](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings) |380| `deniedMcpServers` | 個別無效項目被剝離,有效子集被強制執行。完全無效的值被丟棄並發出警告,因為拒絕每個伺服器會阻止政策從未命名的伺服器。 |

381| `blockedMarketplaces` | 個別無效項目被剝離,有效子集被強制執行。解析但永遠無法匹配的項目(例如無法編譯的 `hostPattern` 正規表達式)被保留並發出警告。它在修復前不會阻止任何內容,但[市場限制](/docs/zh-TW/plugin-marketplaces#managed-marketplace-restrictions)保持活躍。完全無效的值被丟棄並發出警告,因為阻止每個市場會阻止政策從未命名的來源。 |

382| `sandbox.credentials` | 可恢復的無效項目被降級為 `mode: "deny"` 並發出警告;無法恢復的項目被剝離;有效項目保持強制執行。請參閱[受管理設定中的無效認證項目](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings) |

379 383 

380`allowedHttpHookUrls` 和 `httpHookAllowedEnvVars` 跨設定檔案合併,因此您的使用者、專案或本機設定中的項目在受管清單為空時仍然適用。這兩個金鑰和 `allowedChannelPlugins` 的回退需要 Claude Code v2.1.267 或更新版本;較早版本在其值或任何項目無效時刪除整個金鑰。384`allowedHttpHookUrls` 和 `httpHookAllowedEnvVars` 跨設定檔案合併,因此您的使用者、專案或本機設定中的項目在受管理清單為空時仍然適用。

381 385 

382`requiredMinimumVersion` 和 `requiredMaximumVersion` 按設計失敗開放:無效值被刪除而不是強制執行。386這兩個金鑰和 `allowedChannelPlugins` 的備用方案需要 Claude Code v2.1.267 或更新版本;較早的版本在其值或任何項目無效時丟棄整個金鑰。`strictKnownMarketplaces`、`blockedMarketplaces` 和 `disableSideloadFlags` 備用方案需要 Claude Code v2.1.277 或更新版本;較早的版本在其值或任何項目無效時丟棄整個金鑰。

383 387 

384此容差僅適用於受管設定。使用者、專案和本機設定檔案保持嚴格:JSON 或頂層形狀失敗驗證的檔案被整體拒絕並報告,無效的個別項目(例如格式不正確的權限規則)被跳過並顯示警告,而檔案的其餘部分適用。388`requiredMinimumVersion` 和 `requiredMaximumVersion` 按設計開放失敗:無效值被丟棄而不是強制執行。

389 

390此容差僅適用於受管理設定。使用者、專案和本機設定檔案保持嚴格:JSON 或頂級形狀驗證失敗的檔案被整體拒絕並報告,失敗的個別項目(例如格式不正確的權限規則)被跳過並發出警告,而檔案的其餘部分適用。

385 391 

386<span id="managed-only-settings" />392<span id="managed-only-settings" />

387 393 

memory.md +24 −7

Details

82<Tip>82<Tip>

83 執行 `/init` 以自動產生起始 CLAUDE.md。Claude 分析您的程式碼庫並建立包含建置命令、測試指令和它發現的專案慣例的檔案。如果 CLAUDE.md 已存在,`/init` 會建議改進而不是覆寫它。從那裡使用 Claude 不會自行發現的指令進行精煉。83 執行 `/init` 以自動產生起始 CLAUDE.md。Claude 分析您的程式碼庫並建立包含建置命令、測試指令和它發現的專案慣例的檔案。如果 CLAUDE.md 已存在,`/init` 會建議改進而不是覆寫它。從那裡使用 Claude 不會自行發現的指令進行精煉。

84 84 

85 設定 `CLAUDE_CODE_NEW_INIT=1` 以啟用互動式多階段流程。`/init` 詢問要設定哪些成品:CLAUDE.md 檔案、skills 和 hooks。然後它使用子代理探索您的程式碼庫,透過後續問題填補空白,並在寫入任何檔案之前呈現可審查的提案。85 設定 `CLAUDE_CODE_NEW_INIT` 環境變數為 `1` 以啟用互動式多階段流程。在執行 `/init` 之前在您的 shell 中或在設定檔的 `env` 區塊中設定它,如 [設定環境變數](/docs/zh-TW/env-vars#set-environment-variables) 中所示。設定後,`/init` 會詢問要設定哪些成品:CLAUDE.md 檔案、skills 和 hooks。然後它使用子代理探索您的程式碼庫,透過後續問題填補空白,並在寫入任何檔案之前呈現可審查的提案。該變數僅改變 `/init` 的執行方式,因此您可以保持它設定。

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

166```166```

167 167 

168內聯形式在 Bash 或 Zsh 中為該次啟動設定變數。若要在每個工作階段中保持它開啟,請將它新增至 `~/.claude/settings.json` 中的 `env` 區塊,如 [設定環境變數](/docs/zh-TW/env-vars#set-environment-variables) 中所示。

169 

168這會從其他目錄載入 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。如果您從 [`--setting-sources`](/docs/zh-TW/cli-reference) 排除 `local`,則會跳過 `CLAUDE.local.md`。170這會從其他目錄載入 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。如果您從 [`--setting-sources`](/docs/zh-TW/cli-reference) 排除 `local`,則會跳過 `CLAUDE.local.md`。

169 171 

170<h3 id="organize-rules-with-claude/rules/">172<h3 id="organize-rules-with-claude/rules/">


244 246 

245Glob 語法將 `[` 視為括號表達式的開始,例如 `[abc]`。具有無法讀取為括號表達式的 `[` 的模式(例如 `photos [2024/**`)無效:它不匹配任何檔案,規則的其他模式保持工作。若要匹配檔案名稱中的字面 `[`,請將其逸出為 `photos \[2024/**`。在 v2.1.207 之前,一個無效模式會導致 Read 工具對規則評估的每個檔案失敗,而不是不匹配任何檔案。247Glob 語法將 `[` 視為括號表達式的開始,例如 `[abc]`。具有無法讀取為括號表達式的 `[` 的模式(例如 `photos [2024/**`)無效:它不匹配任何檔案,規則的其他模式保持工作。若要匹配檔案名稱中的字面 `[`,請將其逸出為 `photos \[2024/**`。在 v2.1.207 之前,一個無效模式會導致 Read 工具對規則評估的每個檔案失敗,而不是不匹配任何檔案。

246 248 

249<h4 id="rules-frontmatter-reference">

250 規則 frontmatter 參考

251</h4>

252 

253使用 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 在檔案頂部的 `---` 標記之間設定規則。`paths` 是 Claude Code 從規則讀取的唯一欄位;任何其他欄位都會被忽略而不出現錯誤。Claude Code 在將規則載入到背景之前移除 frontmatter。

254 

255| 欄位 | 必需 | 描述 |

256| :------ | :- | :---------------------------------------------------------------- |

257| `paths` | 否 | [將規則範圍限制為匹配檔案](#path-specific-rules) 的 Glob 模式。接受 YAML 清單或逗號分隔的字串 |

258 

259如果標記之間的 YAML 無法解析,Claude Code 會忽略 frontmatter 並載入規則,就像它沒有 `paths` 一樣。執行 `claude --debug` 以查看解析錯誤。

260 

247<h4 id="share-rules-across-projects-with-symlinks">261<h4 id="share-rules-across-projects-with-symlinks">

248 使用符號連結在專案間共享規則262 使用符號連結在專案間共享規則

249</h4>263</h4>


271└── workflows.md # Your preferred workflows285└── workflows.md # Your preferred workflows

272```286```

273 287 

274使用者級規則在專案規則之前載入,給予專案規則更高的優先順序。288Claude Code 在專案規則之前載入使用者級規則,因此專案規則在 Claude 的背景中出現得更晚。兩個集合都不會覆寫另一個:如果使用者規則和專案規則衝突,Claude 可能會遵循任一個,因此請保持兩者一致。

275 289 

276<h3 id="manage-claude-md-for-large-teams">290<h3 id="manage-claude-md-for-large-teams">

277 為大型團隊管理 CLAUDE.md291 為大型團隊管理 CLAUDE.md


424* 您使用的是 v2.1.277 之前的 Claude Code 版本438* 您使用的是 v2.1.277 之前的 Claude Code 版本

425* 您的工作階段不會[從 Anthropic 擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching),例如因為您使用 Amazon Bedrock 或其他第三方提供者,或您停用了遙測。連結的部分有完整清單439* 您的工作階段不會[從 Anthropic 擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching),例如因為您使用 Amazon Bedrock 或其他第三方提供者,或您停用了遙測。連結的部分有完整清單

426* 這是您[安裝或升級](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)到具有 `AGENTS.md` 支援的版本後的第一個工作階段。Claude 會從您的下一個工作階段開始讀取 `AGENTS.md`440* 這是您[安裝或升級](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)到具有 `AGENTS.md` 支援的版本後的第一個工作階段。Claude 會從您的下一個工作階段開始讀取 `AGENTS.md`

427* 您或您的組織設定了 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks) 或 [`allowManagedHooksOnly`](/docs/zh-TW/settings-reference#allowmanagedhooksonly),或您在 `/plugin` 中停用了內建 `agents-md` 外掛程式441* 您停用了內建 `agents-md` 外掛程式在 `/plugin` 中

428 442 

429若要在這些工作階段中將您的 `AGENTS.md` 提供給 Claude,請[從 `CLAUDE.md` 匯入](#share-one-file-with-other-coding-tools)。443若要在這些工作階段中將您的 `AGENTS.md` 提供給 Claude,請[從 `CLAUDE.md` 匯入](#share-one-file-with-other-coding-tools)。

430 444 


435通過**專案指示**設定讀取的 `AGENTS.md` 與 `CLAUDE.md` 在以下方面有所不同:449通過**專案指示**設定讀取的 `AGENTS.md` 與 `CLAUDE.md` 在以下方面有所不同:

436 450 

437| | `CLAUDE.md` | 通過設定讀取的 `AGENTS.md` |451| | `CLAUDE.md` | 通過設定讀取的 `AGENTS.md` |

438| :-------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :----------------------------------------------------------------------------------------------------------- |452| :-------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :----------------------------------------------- |

439| `/memory` 和 `/context` 中的**記憶檔案**清單 | 列出 | 未列出。若要確認 Claude 讀取了它,請查看預設值下的 [`AGENTS.md loaded` 行](#when-claude-code-reads-agents-md),或詢問 Claude 其專案指示說了什麼 |

440| [`InstructionsLoaded` hooks](/docs/zh-TW/hooks#instructionsloaded) | 觸發 | 不觸發。當 `CLAUDE.md` 匯入或符號連結到 `AGENTS.md` 時,它們會照常觸發 |453| [`InstructionsLoaded` hooks](/docs/zh-TW/hooks#instructionsloaded) | 觸發 | 不觸發。當 `CLAUDE.md` 匯入或符號連結到 `AGENTS.md` 時,它們會照常觸發 |

441| 當 [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) 設定時,您使用 `--add-dir` 新增的目錄 | 它們的 `CLAUDE.md` 載入 | 它們的 `AGENTS.md` 不載入 |454| 當 [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) 設定時,您使用 `--add-dir` 新增的目錄 | 它們的 `CLAUDE.md` 載入 | 它們的 `AGENTS.md` 不載入 |

442| 工作目錄外檔案的 `@path` 匯入 | Claude Code 要求您核准[外部匯入](#import-additional-files) | 僅在您已經為此專案核准外部匯入時載入,無提示 |455| 工作目錄外檔案的 `@path` 匯入 | Claude Code 要求您核准[外部匯入](#import-additional-files) | 僅在您已經為此專案核准外部匯入時載入,無提示 |


604 617 

605要除錯:618要除錯:

606 619 

607* 執行 `/context` 並檢查 **Memory files** 下的清單,以驗證您的 CLAUDE.md 和 CLAUDE.local.md 檔案是否已載入。如果 `CLAUDE.md` 檔案未列出,Claude 看不到它。`AGENTS.md` 只有在 `CLAUDE.md` 匯入它時才會出現在那裡,而不是當 Claude [直接讀取它](#where-agents-md-differs-from-claude-md) 時。使用 `/memory` 開啟和編輯檔案。620* 執行 `/context` 並檢查 **Memory files** 下的清單,以驗證您的 CLAUDE.md 和 CLAUDE.local.md 檔案是否已載入。如果 `CLAUDE.md` 檔案未列出,Claude 看不到它。使用 `/memory` 開啟和編輯檔案。

608* 檢查相關的 CLAUDE.md 是否位於為您的工作階段載入的位置(請參閱 [選擇 CLAUDE.md 檔案的位置](#choose-where-to-put-claude-md-files))。621* 檢查相關的 CLAUDE.md 是否位於為您的工作階段載入的位置(請參閱 [選擇 CLAUDE.md 檔案的位置](#choose-where-to-put-claude-md-files))。

609* 使指令更具體。「使用 2 空格縮排」比「正確格式化程式碼」效果更好。622* 使指令更具體。「使用 2 空格縮排」比「正確格式化程式碼」效果更好。

610* 查找跨 CLAUDE.md 檔案的衝突指令。如果兩個檔案為相同行為提供不同的指導,Claude 可能會任意選擇一個。623* 查找跨 CLAUDE.md 檔案的衝突指令。如果兩個檔案為相同行為提供不同的指導,Claude 可能會任意選擇一個。


6283. 檢查您的工作階段是否為 [無法載入 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的工作階段,例如第三方提供者上的工作階段或停用遙測的工作階段。6413. 檢查您的工作階段是否為 [無法載入 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的工作階段,例如第三方提供者上的工作階段或停用遙測的工作階段。

6294. 在您的工作階段中輸入 `/config` 以開啟設定面板,並確認 **Project instructions** 未設定為 `claude-md` 或 `managed-only`。如果您根本看不到該設定,您的工作階段是 [無法載入 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的工作階段。6424. 在您的工作階段中輸入 `/config` 以開啟設定面板,並確認 **Project instructions** 未設定為 `claude-md` 或 `managed-only`。如果您根本看不到該設定,您的工作階段是 [無法載入 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的工作階段。

630 643 

631當 Claude 直接讀取 `AGENTS.md` 時,您不會在 `/memory` 或 `/context` 中看到它,因此請檢查 `AGENTS.md loaded` 行或改為詢問 Claude 其專案指令說什麼。如果您想保留找到的 `CLAUDE.md`,或您的工作階段無法載入 `AGENTS.md`,[在您的 `AGENTS.md` 旁邊新增匯入它的 `CLAUDE.md`](#share-one-file-with-other-coding-tools)。644要檢查 Claude 是否讀取了您的 `AGENTS.md`,請執行 `/memory` 並在清單中查找其路徑。

645 

646在 v2.1.280 之前,`/memory` 和 `/context` 未列出 Claude 直接讀取的 `AGENTS.md`。在這些版本上,改為詢問 Claude 其專案指令說什麼。

647 

648如果您想保留找到的 `CLAUDE.md`,或您的工作階段無法載入 `AGENTS.md`,[在您的 `AGENTS.md` 旁邊新增匯入它的 `CLAUDE.md`](#share-one-file-with-other-coding-tools)。

632 649 

633<h3 id="i-don’t-know-what-auto-memory-saved">650<h3 id="i-don’t-know-what-auto-memory-saved">

634 我不知道自動記憶保存了什麼651 我不知道自動記憶保存了什麼

Details

123| `OTEL_LOG_ASSISTANT_RESPONSES` | 在 `assistant_response` 事件上啟用助理回應文字的日誌記錄(預設值:停用)。未設定時,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更新版本 | `1` 啟用,`0` 保持編輯 |123| `OTEL_LOG_ASSISTANT_RESPONSES` | 在 `assistant_response` 事件上啟用助理回應文字的日誌記錄(預設值:停用)。未設定時,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更新版本 | `1` 啟用,`0` 保持編輯 |

124| `OTEL_LOG_TOOL_DETAILS` | 啟用工具事件和追蹤跨度屬性中的工具參數和輸入引數的日誌記錄:Bash 命令、MCP 伺服器和工具名稱、技能名稱、使用者撰寫的工作流程名稱和工具輸入。也在 `user_prompt` 事件上啟用自訂、外掛程式和 MCP 命令名稱(預設值:停用)。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使關閉旗標,`mcp_server_name`/`mcp_tool_name` 也會在 `tool_decision`/`tool_result` 上發出。例外需要 Claude Code v2.1.214 或更新版本 | `1` 啟用 |124| `OTEL_LOG_TOOL_DETAILS` | 啟用工具事件和追蹤跨度屬性中的工具參數和輸入引數的日誌記錄:Bash 命令、MCP 伺服器和工具名稱、技能名稱、使用者撰寫的工作流程名稱和工具輸入。也在 `user_prompt` 事件上啟用自訂、外掛程式和 MCP 命令名稱(預設值:停用)。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使關閉旗標,`mcp_server_name`/`mcp_tool_name` 也會在 `tool_decision`/`tool_result` 上發出。例外需要 Claude Code v2.1.214 或更新版本 | `1` 啟用 |

125| `OTEL_LOG_TOOL_CONTENT` | 啟用 [`tool.output` 跨度事件](#tool-output-span-event)中工具內容的日誌記錄(預設值:停用)。跨度屬性在[其自己的閘道](#new-context-gates)下攜帶工具內容。需要[追蹤](#traces-beta)。內容在內容限制處截斷(預設值:60 KB) | `1` 啟用 |125| `OTEL_LOG_TOOL_CONTENT` | 啟用 [`tool.output` 跨度事件](#tool-output-span-event)中工具內容的日誌記錄(預設值:停用)。跨度屬性在[其自己的閘道](#new-context-gates)下攜帶工具內容。需要[追蹤](#traces-beta)。內容在內容限制處截斷(預設值:60 KB) | `1` 啟用 |

126| `OTEL_LOG_MANAGED_SETTINGS` | 將編輯的受管設定和設定編輯前的 SHA-256 摘要新增到[受管設定已解決](#managed-settings-resolved-event)事件(預設值:停用)。專案或本機設定中的值不會將其開啟。需要 Claude Code v2.1.274 或更新版本 | `1` 啟用 |

126| `OTEL_LOG_RAW_API_BODIES` | 將完整的 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出(預設值:停用)。主體包括整個對話歷史記錄。啟用此項意味著同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 會揭露的所有內容 | `1` 表示在內容限制處截斷的內聯主體(預設值:60 KB),或 `file:<dir>` 表示磁碟上未截斷的主體,在事件中帶有 `body_ref` 指標 |127| `OTEL_LOG_RAW_API_BODIES` | 將完整的 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出(預設值:停用)。主體包括整個對話歷史記錄。啟用此項意味著同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 會揭露的所有內容 | `1` 表示在內容限制處截斷的內聯主體(預設值:60 KB),或 `file:<dir>` 表示磁碟上未截斷的主體,在事件中帶有 `body_ref` 指標 |

127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 內容限制:內容承載屬性(例如模型回應、工具內容、系統提示和原始 API 主體)的最大長度,包括截斷標記,以 UTF-16 程式碼單位計(預設值:61440,即 60 KB)。預設值適用於將屬性值上限設為 64 KB 的後端;只有在您的後端接受更大的值時才提高它,或降低它以減少遙測量。當設定了 OpenTelemetry SDK 屬性限制 `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` 或其日誌記錄和跨度變體之一時,Claude Code 會在該較小的值處截斷,以便 `[TRUNCATED ...]` 標記保持在 SDK 限制內。需要 Claude Code v2.1.214 或更新版本 | `262144` |128| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 內容限制:內容承載屬性(例如模型回應、工具內容、系統提示和原始 API 主體)的最大長度,包括截斷標記,以 UTF-16 程式碼單位計(預設值:61440,即 60 KB)。預設值適用於將屬性值上限設為 64 KB 的後端;只有在您的後端接受更大的值時才提高它,或降低它以減少遙測量。當設定了 OpenTelemetry SDK 屬性限制 `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` 或其日誌記錄和跨度變體之一時,Claude Code 會在該較小的值處截斷,以便 `[TRUNCATED ...]` 標記保持在 SDK 限制內。需要 Claude Code v2.1.214 或更新版本 | `262144` |

128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 指標時間性偏好(預設值:`delta`)。如果您的後端期望累積時間性,請設定為 `cumulative` | `delta`、`cumulative` |129| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 指標時間性偏好(預設值:`delta`)。如果您的後端期望累積時間性,請設定為 `cumulative` | `delta`、`cumulative` |


241| `workflow.run_id` | 產生此代理的[工作流程](/docs/zh-TW/workflows)工具執行的執行識別碼,前綴為 `wf_`。對於不是由工作流程產生的代理不存在 | |242| `workflow.run_id` | 產生此代理的[工作流程](/docs/zh-TW/workflows)工具執行的執行識別碼,前綴為 `wf_`。對於不是由工作流程產生的代理不存在 | |

242| `workflow.name` | 產生此代理的工作流程的名稱。使用者撰寫的名稱會被替換為 `custom`,除非設定了閘道 | `OTEL_LOG_TOOL_DETAILS` |243| `workflow.name` | 產生此代理的工作流程的名稱。使用者撰寫的名稱會被替換為 `custom`,除非設定了閘道 | `OTEL_LOG_TOOL_DETAILS` |

243| `speed` | `fast` 或 `normal` | |244| `speed` | `fast` 或 `normal` | |

245| `effort` | [努力等級](/docs/zh-TW/model-config#adjust-effort-level)應用於請求:`low`、`medium`、`high`、`xhigh` 或 `max`。當 Claude Code 不傳送努力等級時不存在,例如在不支援努力的模型上。需要 Claude Code v2.1.274 或更新版本 | |

244| `llm_request.context` | 根據父項跨度為 `interaction`、`tool` 或 `standalone` | |246| `llm_request.context` | 根據父項跨度為 `interaction`、`tool` 或 `standalone` | |

245| `duration_ms` | 掛鐘持續時間,包括重試 | |247| `duration_ms` | 掛鐘持續時間,包括重試 | |

246| `ttft_ms` | 首個權杖的時間(毫秒) | |248| `ttft_ms` | 首個權杖的時間(毫秒) | |


385echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"387echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

386```388```

387 389 

388如果幫助程式失敗或列印不符合這些需求的輸出,Claude Code 會在以下位置報告錯誤:390如果幫助程式失敗或列印不符合這些需求的輸出,匯出會失敗,您的遙測後端在幫助程式再次運作之前不會從工作階段接收任何內容。Claude Code 會在以下位置報告失敗:

389 391 

392* 互動式工作階段中的警告通知,[`otelHeadersHelper failed; telemetry is not being exported`](/docs/zh-TW/errors#otelheadershelper-failed),在幫助程式首次失敗時每個工作階段顯示一次

390* `/status` 輸出393* `/status` 輸出

391* 偵錯日誌,當使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 執行或在工作階段中執行 `/debug` 後394* 偵錯日誌,當使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 執行或在工作階段中執行 `/debug` 後

392* stderr,在以 `-p` 啟動的非互動式工作階段中395* stderr,在以 `-p` 啟動的非互動式工作階段中


709當使用者提交提示時,Claude Code 可能會進行多個 API 呼叫並執行多個工具。`prompt.id` 屬性可讓您將所有這些事件與觸發它們的單一提示相關聯。712當使用者提交提示時,Claude Code 可能會進行多個 API 呼叫並執行多個工具。`prompt.id` 屬性可讓您將所有這些事件與觸發它們的單一提示相關聯。

710 713 

711| 屬性 | 描述 |714| 屬性 | 描述 |

712| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |715| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

713| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示時產生的所有事件 |716| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示時產生的所有事件 |

714| `event.sequence` | 0 為基礎的計數器,用於排序事件,按 Claude Code 程序而非按工作階段計數 |717| `event.sequence` | 0 為基礎的計數器,用於排序事件,按 Claude Code 程序而非按工作階段計數 |

715| `message.uuid` | 訊息的 UUID,如工作階段文字記錄中所保存,`~/.claude/projects/*/*.jsonl` 檔案。出現在 `assistant_response` 上,以及 `user_prompt` 上,除了命令分派外,它可以產生零個或多個訊息。在 `assistant_response` 上,這是回應的最終文字記錄項目,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本 |718| `message.uuid` | 訊息的 UUID,如工作階段文字記錄中所保存,`~/.claude/projects/*/*.jsonl` 檔案。出現在 `assistant_response` 上,以及 `api_response_body` 上,以及 `user_prompt` 上,除了命令分派外,它可以產生零個或多個訊息。在 `assistant_response` 和 `api_response_body` 上,這是回應的最終文字記錄項目,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本,或 v2.1.274 或更新版本在 `api_response_body` 上 |

716| `client_request_id` | 用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。出現在第一方 API 連線上的 `api_request` 和 `api_error` 上;在第三方提供者後端上不存在,以及當請求透過非串流回退重試時。將請求與其回應配對,並且對於永遠不會產生伺服器 `request_id` 的逾時等失敗仍然可用。與 `llm_request` 追蹤跨度上的相同屬性相符。需要 Claude Code v2.1.214 或更新版本 |719| `client_request_id` | 用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。出現在第一方 API 連線上的 `api_request` 和 `api_error` 上;在第三方提供者後端上不存在,以及當請求透過非串流回退重試時。將請求與其回應配對,並且對於永遠不會產生伺服器 `request_id` 的逾時等失敗仍然可用。與 `llm_request` 追蹤跨度上的相同屬性相符。需要 Claude Code v2.1.214 或更新版本 |

717 720 

718若要追蹤由單一提示觸發的所有活動,請按特定 `prompt.id` 值篩選您的事件。這會傳回 user\_prompt 事件、任何 api\_request 事件以及處理該提示時發生的任何 tool\_result 事件。721若要追蹤由單一提示觸發的所有活動,請按特定 `prompt.id` 值篩選您的事件。這會傳回 user\_prompt 事件、任何 api\_request 事件以及處理該提示時發生的任何 tool\_result 事件。


721 724 

722對於訊息層級重建,每個事件類別都攜帶與工作階段文字記錄中的欄位相符的金鑰。文字記錄項目格式是[Claude Code 內部的](/docs/zh-TW/sessions#where-transcripts-are-stored),在版本之間變更,因此在這些欄位上聯接的管道可能會在任何版本上中斷;將聯接視為版本特定的而非穩定的合約:725對於訊息層級重建,每個事件類別都攜帶與工作階段文字記錄中的欄位相符的金鑰。文字記錄項目格式是[Claude Code 內部的](/docs/zh-TW/sessions#where-transcripts-are-stored),在版本之間變更,因此在這些欄位上聯接的管道可能會在任何版本上中斷;將聯接視為版本特定的而非穩定的合約:

723 726 

724* `message.uuid` 在 `user_prompt` 和 `assistant_response` 上727* `message.uuid` 在 `user_prompt`、`assistant_response` 和 `api_response_body` 上

725* `request_id` 在 API 事件上,在文字記錄的助理項目上保存為 `requestId`728* `request_id` 在 API 事件上,在文字記錄的助理項目上保存為 `requestId`

726* `tool_use_id` 在 `tool_result` 和 `tool_decision` 事件上729* `tool_use_id` 在 `tool_result` 和 `tool_decision` 事件上

727 730 


1342* `files_past_cutoff`:早於保留期的檔案,掃描無法刪除,例如因為權限錯誤或檔案被保持開啟。值高於零表示檔案超過了設定的保留期;零不是沒有任何檔案的證明,因為整個目錄的移除失敗計入 `error_count`1345* `files_past_cutoff`:早於保留期的檔案,掃描無法刪除,例如因為權限錯誤或檔案被保持開啟。值高於零表示檔案超過了設定的保留期;零不是沒有任何檔案的證明,因為整個目錄的移除失敗計入 `error_count`

1343* `error_count`:掃描在列出或刪除檔案時遇到的錯誤數1346* `error_count`:掃描在列出或刪除檔案時遇到的錯誤數

1344 1347 

1348<h4 id="managed-settings-resolved-event">

1349 受管設定已解析事件

1350</h4>

1351 

1352在工作階段解析的[受管設定](/docs/zh-TW/managed-settings)時記錄:在工作階段開始時一次,當受管設定或[原則協助程式](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program)的狀態在工作階段期間變更時再次,以及當 Claude Code 因 `error.type` 屬性列出的原因之一拒絕啟動或結束工作階段時。

1353使用此事件尋找在非預期受管來源上執行的機器、原則協助程式失敗的機器,以及機器拒絕啟動的原因。

1354需要 Claude Code v2.1.274 或更新版本。

1355 

1356預設情況下,事件會攜帶受管來源和原則協助程式的狀態,但不會攜帶設定本身。若要新增編輯的 `managed_settings.settings` 屬性和 `managed_settings.resolved_sha256` 摘要,請設定 `OTEL_LOG_MANAGED_SETTINGS=1`:

1357 

1358* 在受管設定、使用者設定或 `--settings` 的 `env` 區塊中設定它,或在您啟動 Claude Code 的環境中設定。專案或本機設定中的值不會啟用它,因為複製的儲存庫可以寫入它們。

1359* 伺服器受管設定可以在不顯示[安全核准對話](/docs/zh-TW/server-managed-settings#security-approval-dialogs)的情況下設定它,因為變數只會將您組織自己的編輯原則新增到您的組織已接收的事件。

1360 

1361在您尚未[信任](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder)的資料夾中的互動工作階段中,Claude Code 不會匯出拒絕事件,因為專案和本機設定可能會在信任前將匯出指向不同的收集器。

1362 

1363**事件名稱**:`claude_code.managed_settings_resolved`

1364 

1365**屬性**:

1366 

1367* 所有[標準屬性](#standard-attributes)

1368* `event.name`:`"managed_settings_resolved"`

1369* `event.timestamp`:ISO 8601 時間戳記

1370* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件,在[事件關聯屬性](#event-correlation-attributes)下所述

1371* `managed_settings.trigger`:工作階段啟動事件為 `"startup"`,當受管設定或原則協助程式的狀態在工作階段稍後變更時為 `"change"`,或當受管設定原則停止工作階段時為 `"refused"`。Claude Code 僅在屬性與其傳送的最後一個事件不同時傳送 `change` 事件,變更的設定值計數即使 `OTEL_LOG_MANAGED_SETTINGS` 關閉時也計數

1372* `error.type`:Claude Code 停止工作階段的原因。僅在 `refused` 事件上存在:

1373 * `"helper_failed"`:[原則協助程式執行失敗](/docs/zh-TW/settings-reference#helper-failures)

1374 * `"policy_invalid"`:受管設定包含阻止 Claude Code 啟動的錯誤,或管理員來源無法載入,因此 Claude Code 無法檢查組織登入強制執行

1375 * `"consent_rejected"`:使用者拒絕了伺服器受管設定的[安全核准對話](/docs/zh-TW/server-managed-settings#security-approval-dialogs)

1376 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](/docs/zh-TW/settings-reference#forceremotesettingsrefresh) 需要的設定擷取失敗

1377 * `"gateway_rejected"`:[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)以 HTTP 403 回答受管設定載入

1378 * `"version_below_minimum"`:此版本的 Claude Code 低於 [`requiredMinimumVersion`](/docs/zh-TW/settings-reference#requiredminimumversion) 或高於 [`requiredMaximumVersion`](/docs/zh-TW/settings-reference#requiredmaximumversion)

1379 * `"_OTHER"`:Claude 應用程式閘道受管設定載入因另一個原因失敗

1380* `managed_settings.sources`:每個傳遞至少一個[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)的受管來源,優先順序最高優先,包括其金鑰在 `first-wins` 下不生效的來源。值為 `"remote"`、`"plist"` 或 `"hklm"` 用於 MDM 或 OS 層級原則、`"file"` 用於受管設定檔案和放置、`"parent"` 當[嵌入主機](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)提供設定時,以及 `"hkcu"` 用於 [Windows HKCU 登錄值](/docs/zh-TW/managed-settings#where-each-mechanism-stores-the-policy)當 Claude Code [讀取它](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)時。僅攜帶控制金鑰的來源或 Claude Code 無法讀取的來源不會列出。當沒有受管來源傳遞原則金鑰時為空陣列。作為字串陣列發出

1381* `managed_settings.source_behavior`:Claude Code 讀取的 [`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 值,`"first-wins"` 或 `"merge"`。當沒有來源設定金鑰時為 `"first-wins"`

1382* `managed_settings.helper.state`:所選 MDM 或檔案來源設定的原則協助程式的狀態:

1383 * `"ok"`:協助程式的輸出作為受管設定提供

1384 * `"bad_path"`、`"not_a_file"`、`"exit_nonzero"`、`"timed_out"`、`"oversize"`、`"parse_failed"`、`"envelope_invalid"` 或 `"schema_rejected"`:協助程式的最後一次執行失敗。[協助程式失敗](/docs/zh-TW/settings-reference#helper-failures)描述案例

1385 * `"none"`:未設定協助程式,或設定它的來源不是 MDM 原則或受管設定檔案

1386* `managed_settings.helper.applied`:當協助程式自己的輸出作為受管設定提供時為 `"output"`,當它不提供時為 `"none"`

1387* `managed_settings.helper.entry`:當 Claude Code 選擇 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 時為 `"policyHelper"`。當它選擇沒有協助程式時不存在

1388* `managed_settings.helper.path`:協助程式的設定 [`path`](/docs/zh-TW/settings-reference#policyhelper-path)。每當 Claude Code 選擇協助程式時存在,無論 `OTEL_LOG_MANAGED_SETTINGS` 是否設定

1389* `managed_settings.resolved_sha256`(當 `OTEL_LOG_MANAGED_SETTINGS=1` 時):編輯前解析的受管設定的 SHA-256,序列化為 JSON,金鑰遞迴排序且無空白。具有相同摘要的機器執行相同的原則。Claude Code 僅使用選擇加入傳送摘要,因為短原則可以透過雜湊猜測恢復。當沒有受管設定解析時不存在,以及在 `refused` 事件上

1390* `managed_settings.settings`(當 `OTEL_LOG_MANAGED_SETTINGS=1` 時):解析的受管設定的名稱和形狀作為 JSON 字串,值編輯。在 `refused` 事件上不存在。Claude Code 從其設定架構建立它:

1391 

1392 * 架構宣告匯出的設定名稱,架構不宣告的金鑰被遺漏

1393 * 布林值、數字和字串值架構限制為固定選項集,例如 `permissions.defaultMode`,按原樣匯出。`sandbox.network.httpProxyPort` 和 `sandbox.network.socksProxyPort` 匯出為 `"[REDACTED]"`

1394 * 每個其他字串,例如 `model`、`apiKeyHelper`、每個 `env` 值、每個 URL 和每個命令,匯出為 `"[REDACTED]"`

1395 * 地圖的項目名稱,例如 `env` 變數名稱和外掛程式 ID,按原樣匯出。架構不輸入其項目的設定,例如 `vimInsertModeRemaps`,匯出為單一 `"[REDACTED]"`,`sandbox.ignoreViolations` 匯出為其路徑清單的清單,不含命令模式

1396 * 清單保留其長度,每個項目按相同規則編輯

1397 * `permissions.allow`、`permissions.deny` 或 `permissions.ask` 規則匯出為其工具名稱,內容編輯,例如 `Read([REDACTED])`,當工具內建於此版本的 Claude Code 或是 `mcp__` 參考(例如 `mcp__jira__create_issue`)時。任何其他規則匯出為 `"[REDACTED]"`

1398 * 鉤子遵循相同規則,因此固定選項和數字欄位(例如 `type` 和 `timeout`)顯示,而每個命令、URL、`matcher` 和 `if` 條件匯出為 `"[REDACTED]"`

1399 

1400 例如,具有 `apiKeyHelper`、兩個 `env` 變數和拒絕規則的受管設定匯出為 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.

1401 

1402 Claude Code 在 8 KB UTF-8 處切割值,切割值不是有效的 JSON

1403* `managed_settings.settings_truncated`(當 `managed_settings.settings` 存在時):當 Claude Code 在 8 KB 處切割 `managed_settings.settings` 時為 `true`,否則為 `false`。作為布林值而非字串發出

1404 

1345<h2 id="interpret-metrics-and-events-data">1405<h2 id="interpret-metrics-and-events-data">

1346 解釋指標和事件資料1406 解釋指標和事件資料

1347</h2>1407</h2>


1461建立偵測規則時,查詢您想要監控的訊號並查詢您的後端以取得相應的事件和屬性:1521建立偵測規則時,查詢您想要監控的訊號並查詢您的後端以取得相應的事件和屬性:

1462 1522 

1463| 訊號 | 事件 | 關鍵屬性 |1523| 訊號 | 事件 | 關鍵屬性 |

1464| ---------------- | -------------------------------------------------------------------- | ---------------------------------------------------------- |1524| ------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1465| 工具呼叫被允許或拒絕,以及由什麼 | `tool_decision` | `decision`、`source`、`tool_name`、`tool_parameters` |1525| 工具呼叫被允許或拒絕,以及由什麼 | `tool_decision` | `decision`、`source`、`tool_name`、`tool_parameters` |

1466| 權限模式升級 | `permission_mode_changed` | `from_mode`、`to_mode`、`trigger` |1526| 權限模式升級 | `permission_mode_changed` | `from_mode`、`to_mode`、`trigger` |

1467| 原則 hook 阻止了操作 | `hook_execution_complete` | `hook_event`、`num_blocking` |1527| 原則 hook 阻止了操作 | `hook_execution_complete` | `hook_event`、`num_blocking` |


1469| MCP 伺服器連線或失敗 | `mcp_server_connection` | `status`、`server_name`、`is_plugin`、`error_code` |1529| MCP 伺服器連線或失敗 | `mcp_server_connection` | `status`、`server_name`、`is_plugin`、`error_code` |

1470| Plugin 已安裝及其來源 | `plugin_installed` | `plugin.name`、`marketplace.name`、`marketplace.is_official` |1530| Plugin 已安裝及其來源 | `plugin_installed` | `plugin.name`、`marketplace.name`、`marketplace.is_official` |

1471| 執行的命令和觸及的檔案 | `tool_result`(已執行)或 `tool_decision`(已拒絕)搭配 `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`;`tool_input`(僅限 `tool_result`) |1531| 執行的命令和觸及的檔案 | `tool_result`(已執行)或 `tool_decision`(已拒絕)搭配 `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`;`tool_input`(僅限 `tool_result`) |

1532| 受管設定來源機器執行的內容、其原則協助程式是否健康,以及機器拒絕啟動的原因 | `managed_settings_resolved` | `managed_settings.trigger`、`managed_settings.sources`、`managed_settings.source_behavior`、`managed_settings.helper.state`、`error.type`;`managed_settings.settings` 和 `managed_settings.resolved_sha256` 搭配 `OTEL_LOG_MANAGED_SETTINGS=1` |

1472 1533 

1473Claude Code 僅發出原始事件流。異常偵測、基線設定、跨工作階段關聯和警報是您的 SIEM 或可觀測性後端的責任。1534Claude Code 僅發出原始事件流。異常偵測、基線設定、跨工作階段關聯和警報是您的 SIEM 或可觀測性後端的責任。

1474 1535 

Details

245| `registry.npmjs.org` | 外掛程式安裝(擷取 npm 來源外掛程式套件和安裝外掛程式的 Node.js 套件相依性)、`npx` 啟動的 MCP 伺服器,以及 npm 和 bun 安裝 Claude Code 本身的套件登錄 |245| `registry.npmjs.org` | 外掛程式安裝(擷取 npm 來源外掛程式套件和安裝外掛程式的 Node.js 套件相依性)、`npx` 啟動的 MCP 伺服器,以及 npm 和 bun 安裝 Claude Code 本身的套件登錄 |

246| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-TW/chrome) 擴充功能 WebSocket 橋接 |246| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-TW/chrome) 擴充功能 WebSocket 橋接 |

247| `*.frame.claudeusercontent.com` | [Artifact](/docs/zh-TW/artifacts) 內容讀取。當 Claude 開啟 Artifact 時,CLI 會從此主機擷取 Artifact 的檔案,且僅當 Artifact 工具[可用](/docs/zh-TW/artifacts#availability)於您的帳戶時。若要關閉工具並移除此需求,請設定 [`"enableArtifact": false`](/docs/zh-TW/settings-reference#enableartifact) 或 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/zh-TW/env-vars);Claude Code 也會遵守已棄用的 [`disableArtifact`](/docs/zh-TW/settings-reference#disableartifact) 設定。請參閱[停用 Artifact](/docs/zh-TW/artifacts#disable-artifacts) 以了解這些設定如何互動 |247| `*.frame.claudeusercontent.com` | [Artifact](/docs/zh-TW/artifacts) 內容讀取。當 Claude 開啟 Artifact 時,CLI 會從此主機擷取 Artifact 的檔案,且僅當 Artifact 工具[可用](/docs/zh-TW/artifacts#availability)於您的帳戶時。若要關閉工具並移除此需求,請設定 [`"enableArtifact": false`](/docs/zh-TW/settings-reference#enableartifact) 或 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/zh-TW/env-vars);Claude Code 也會遵守已棄用的 [`disableArtifact`](/docs/zh-TW/settings-reference#disableartifact) 設定。請參閱[停用 Artifact](/docs/zh-TW/artifacts#disable-artifacts) 以了解這些設定如何互動 |

248| `github.com` | 複製 GitHub 託管的[外掛程式市集](/docs/zh-TW/plugin-marketplaces)和外掛程式,包括官方 Anthropic 市集,透過 HTTPS 或 SSH。若要僅透過 HTTPS 複製 GitHub `owner/repo` 來源,請設定 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-TW/env-vars) |

248| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-TW/commands) 的變更日誌摘要。在互動式工作階段中,Claude Code 也會在啟動時在背景擷取它,當其快取的變更日誌尚未涵蓋執行中的版本時,例如更新後的首次啟動;非互動式和雲端工作階段永遠不會擷取它 |249| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-TW/commands) 的變更日誌摘要。在互動式工作階段中,Claude Code 也會在啟動時在背景擷取它,當其快取的變更日誌尚未涵蓋執行中的版本時,例如更新後的首次啟動;非互動式和雲端工作階段永遠不會擷取它 |

249| `*-review.googlesource.com` | 在 `googlesource.com` 簽出上進行 Gerrit 變更查詢。當 Claude Desktop Code 索引標籤工作階段在[受信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)的簽出上啟動或繼續時,其 `origin` 是 `googlesource.com` 主機,Claude Code 會匿名詢問該主機的 `-review` 伺服器,以取得與 HEAD 的 `Change-Id` 相符的開啟變更,每次啟動或繼續一次。其他工作階段類型會略過查詢,且不會連線到其他 Gerrit 主機。選用:使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars) 停用 |250| `*-review.googlesource.com` | 在 `googlesource.com` 簽出上進行 Gerrit 變更查詢。當 Claude Desktop Code 索引標籤工作階段在[受信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)的簽出上啟動或繼續時,其 `origin` 是 `googlesource.com` 主機,Claude Code 會匿名詢問該主機的 `-review` 伺服器,以取得與 HEAD 的 `Change-Id` 相符的開啟變更,每次啟動或繼續一次。其他工作階段類型會略過查詢,且不會連線到其他 Gerrit 主機。選用:使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars) 停用 |

250| `http-intake.logs.us5.datadoghq.com` | 操作遙測事件,僅在 CLI 直接使用 Anthropic API 時傳送,絕不會用於 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。選用:使用 [`DISABLE_TELEMETRY`](/docs/zh-TW/data-usage#telemetry-services) 或 `DO_NOT_TRACK` 停用 |251| `http-intake.logs.us5.datadoghq.com` | 操作遙測事件,僅在 CLI 直接使用 Anthropic API 時傳送,絕不會用於 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。選用:使用 [`DISABLE_TELEMETRY`](/docs/zh-TW/data-usage#telemetry-services) 或 `DO_NOT_TRACK` 停用 |

output-styles.md +125 −43

Details

4 4 

5# 輸出樣式5# 輸出樣式

6 6 

7> 將 Claude Code 適配用於軟體工程以外的用途7> 使用內建輸出樣式(例如簡潔或詳細說明)改變 Claude Code 的角色、語氣和回應格式,或撰寫自訂樣式。

8 8 

9輸出樣式改變 Claude 的回應方式,而不是 Claude 知道什麼。它們設定 Claude 的角色、語氣和輸出格式,適用於每一個回應。當您每次都重新提示相同的語音或格式,或者當您希望 Claude 充當軟體工程師以外的角色時,請使用一個。9輸出樣式是一組指令,為工作階段中的每個回應設定 Claude 的角色、語氣和回應格式。Claude Code 除了預設樣式外,還包括四種內建樣式,您也可以撰寫自己的樣式。

10 10 

11自訂輸出樣式將您的指令提供給 Claude,並讓您選擇是否保留 Claude Code 的內建軟體工程指令。當您改變 Claude 的溝通方式但仍在編碼時(例如始終用圖表回答),請保留它們。當 Claude 根本不進行軟體工程時(例如寫作助手或資料分析師),請省略它們。11使用輸出樣式來改變 Claude 在整個工作階段中的回應和協作方式,這樣您就不需要在每個提示中重複請求。例如,內建樣式可以使回應更簡短、為每個變更新增說明,或讓 Claude 在不提出例行問題的情況下開始工作。自訂樣式也可以將 Claude 轉變為軟體工程師以外的角色,例如寫作助手或資料分析師。

12 12 

13有關您的專案、慣例或程式碼庫的說明,請改用 [CLAUDE.md](/docs/zh-TW/memory)。13* 若要使用內建樣式,請從[內建輸出樣式](#built-in-output-styles)中選擇一個,並[切換到它](#change-your-output-style)。

14* 若要撰寫您自己的指令,請[建立自訂輸出樣式](#create-a-custom-output-style)。

15 

16<Note>

17 輸出樣式提供 Claude 要遵循的指令。它不保證某些事情總是發生或永遠不會發生。某些需求適合不同的功能:

18 

19 * 對於 Claude 應該了解的關於您專案的內容,請使用 [CLAUDE.md](/docs/zh-TW/memory)。

20 * 對於必須每次都發生的事情,例如每次編輯後的格式化或阻止命令,請使用[掛鉤](/docs/zh-TW/hooks-guide)。

21 * 對於技能、子代理和其他選項,請參閱[在輸出樣式和其他功能之間選擇](#choose-between-an-output-style-and-other-features)。

22</Note>

14 23 

15<h2 id="built-in-output-styles">24<h2 id="built-in-output-styles">

16 內建輸出樣式25 內建輸出樣式

17</h2>26</h2>

18 27 

19Claude Code 的**預設**輸出樣式是其標準指令集,旨在幫助您有效地完成軟體工程任務。28Claude Code 以[**預設**](#default)樣式開始,這是其完成軟體工程任務的標準指令。其他四種內建樣式各自保留這些指令並添加自己的指令。

29 

30此表格顯示每種樣式如何改變工作階段以及何時適用:

31 

32| 樣式 | 改變的內容 | 何時使用 |

33| :-------------------------- | :-------------------------------------- | :----------------------------------- |

34| [Proactive](#proactive) | Claude 立即開始工作,對例行決策做出合理的假設,而不是詢問 | 您希望 Claude 透過例行決策繼續工作,如果假設有誤,您可以改正方向 |

35| [Concise](#concise) | 回應以結果開頭,省略前言、敘述和回顧 | 預設回應比您想要的更長 |

36| [Explanatory](#explanatory) | Claude 添加簡短的 `Insight` 區塊,解釋其編寫程式碼背後的選擇 | 您正在熟悉程式碼庫或想要隨著變更一起了解推理過程 |

37| [Learning](#learning) | Claude 解釋其選擇,並留下小段程式碼供您自己編寫 | 您想要實踐編碼練習,同時任務仍然完成 |

38 

39<h3 id="default">

40 預設

41</h3>

42 

43預設表示未選擇任何輸出樣式。Claude Code 不添加樣式指令,Claude 從 Claude Code 的標準系統提示詞工作,該提示詞是為軟體工程任務編寫的。

44 

45`default` 出現在 `/output-style` 列表中與其他樣式一起,因此您[以相同方式選擇它](#change-your-output-style)。

46 

47<h3 id="proactive">

48 Proactive

49</h3>

50 

51在 Proactive 樣式中,Claude 在您發送任務後立即開始實施。它對例行決策做出合理的假設,而不是停下來詢問,除非您要求計畫,否則不會切換到 Plan Mode。您可以隨時重新導向它。

52 

53該樣式的指令也告訴 Claude 在刪除資料或變更共享或生產系統的操作前在對話中與您確認。該確認是 Claude 遵循的指令,與權限提示分開。

54 

55切換到 Proactive 樣式不會改變您的[權限模式](/docs/zh-TW/permission-modes)。您的權限模式仍然決定哪些工具呼叫在不詢問您的情況下執行,因此權限提示的出現方式與您切換前相同。

56 

57<h3 id="concise">

58 Concise

59</h3>

60 

61在 Concise 樣式中,回應的第一句陳述發生了什麼或答案是什麼。Claude 省略了引言、逐步敘述和結尾回顧,並在一到三句話內回答簡單問題。它以與預設樣式相同的徹底程度進行工程工作。需要 Claude Code v2.1.237 或更新版本。

62 

63Claude 在以下情況下仍會完整編寫:

64 

65* **您要求的任何內容**:當您要求解釋或更多詳細資訊時,Claude 會完整回答。

66* **您安全行動所需的任何內容**:錯誤報告、失敗的測試輸出、安全警告和破壞性操作的確認保留其完整內容。

67 

68<h3 id="explanatory">

69 Explanatory

70</h3>

71 

72在 Explanatory 樣式中,Claude 以與預設樣式相同的方式執行任務,並添加其做出選擇原因的簡短解釋。每個解釋出現在對話中,在其相關程式碼之前或之後,在標記為 `Insight` 的區塊中。解釋不會作為註解寫入您的檔案中。

73 

74`Insight` 區塊包含關於您的程式碼庫或 Claude 編寫的程式碼的兩到三個要點,例如在添加 API 端點後的這個:

75 

76```text theme={null}

77★ Insight ─────────────────────────────────────

78- Every route in this repo goes through the withAuth wrapper, so the new endpoint gets session checks without its own middleware.

79- Rate limits are set per route in limits.ts, which is why this change adds an entry there rather than a global default.

80─────────────────────────────────────────────────

81```

20 82 

21還有四種額外的內建輸出樣式:83<h3 id="learning">

84 Learning

85</h3>

86 

87在 Learning 樣式中,Claude 添加與 [Explanatory 樣式](#explanatory)相同的 `Insight` 區塊,並要求您編寫一些程式碼。Claude 自己處理例行實施。當它到達具有真實設計決策的部分時,例如錯誤處理、資料結構或具有多個有效方法的業務邏輯,它會為您留下幾行。

88 

89Claude 用檔案中的 `TODO(human)` 註解標記該位置,然後發送一個請求,說明已經構建的內容、要編寫的內容以及要權衡的內容:

22 90 

23* **Proactive**:Claude 立即執行,做出合理的假設而不是暫停進行例行決策,並偏好行動而非規劃。這比[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)提供更強的自主執行指導,且無需改變您的權限模式,因此您的權限模式仍會決定哪些工具在不詢問的情況下執行。91```text theme={null}

92● Learn by Doing

24 93 

25* **Concise**:Claude 以結果開頭,跳過前言和敘述,並預設保持回應簡潔,同時以與預設樣式相同的徹底程度進行工程工作。當您要求解釋或更多詳細資訊時,Claude 會完整回答。Claude 始終保留錯誤報告、安全警告和破壞性操作確認的完整內容。需要 Claude Code v2.1.237 或更新版本。94Context: The upload form is in place and calls validateFile() before accepting a file. Size and type checks work for images, but the switch statement has no handling for documents yet.

26 95 

27* **Explanatory**:在幫助您完成軟體工程任務的同時提供教育性的「Insights」。幫助您理解實現選擇和程式碼庫模式。96Your Task: In upload.js, implement the case "document" branch inside validateFile(). Look for TODO(human).

97 

98Guidance: Decide on a size limit for documents and whether the file extension has to match the MIME type. Return {valid: boolean, error?: string}.

99```

28 100 

29* **Learning**:協作式的邊做邊學模式,Claude 不僅會在編碼時分享「Insights」,還會要求您自己貢獻小的、策略性的程式碼片段。Claude Code 將在您的程式碼中添加 `TODO(human)` 標記供您實現。101Claude 然後停止並等待。在 `TODO(human)` 註解處編寫您的程式碼,並告訴 Claude 您已完成。Claude 會回應一個關於您程式碼的 `Insight`,並繼續執行任務。

30 102 

31<h2 id="change-your-output-style">103<h2 id="change-your-output-style">

32 變更您的輸出樣式104 變更您的輸出樣式

33</h2>105</h2>

34 106 

35以下列其中一種方式選擇樣式:107使用命令、選單或設定檔選擇樣式。命令和兩個選單都會將您的選擇儲存到[本地專案層級](/docs/zh-TW/settings)的 `.claude/settings.local.json`。

36 108 

37* **`/output-style` 命令**:執行 `/output-style <style>` 以切換,例如 `/output-style concise`。不帶引數時,該命令會列出您可以選擇的樣式並標記目前的樣式。Claude Code 會將您的選擇儲存到[本地專案層級](/docs/zh-TW/settings)的 `.claude/settings.local.json`。109* **`/output-style` 命令**:執行 `/output-style <style>` 以切換,例如 `/output-style concise`。不帶引數時,該命令會列出您可以選擇的樣式並標記目前的樣式。

38 110 

39 該命令也適用於[非互動模式](/docs/zh-TW/headless)和 Agent SDK 工作階段,以及來自行動應用程式或網頁的[遠端控制](/docs/zh-TW/remote-control#limitations),您只能列出和選擇[內建樣式](#built-in-output-styles)。需要 Claude Code v2.1.269 或更新版本。111 該命令也適用於[非互動模式](/docs/zh-TW/headless)和 Agent SDK 工作階段,以及來自行動應用程式或網頁的[遠端控制](/docs/zh-TW/remote-control#limitations),您只能列出和選擇[內建樣式](#built-in-output-styles)。需要 Claude Code v2.1.269 或更新版本。

40* **終端機**:執行 `/config` 並選擇**輸出樣式**以從選單中選擇樣式。Claude Code 會將您的選擇儲存到[本地專案層級](/docs/zh-TW/settings)的 `.claude/settings.local.json`。112* **終端機選單**:執行 `/config` 並選擇**輸出樣式**以從選單中選擇樣式。

41* **VS Code 擴充功能**:使用 `/` 開啟[命令選單](/docs/zh-TW/vs-code#use-the-prompt-box)並選擇**輸出樣式**以選擇樣式,包括您的自訂樣式。Claude Code 會將您的選擇儲存到 `.claude/settings.local.json`,這是終端機選單寫入的同一個檔案。需要 Claude Code v2.1.257 或更新版本。113* **VS Code 擴充功能**:使用 `/` 開啟[命令選單](/docs/zh-TW/vs-code#use-the-prompt-box)並選擇**輸出樣式**以選擇樣式,包括您的自訂樣式。需要 Claude Code v2.1.257 或更新版本。

42* **桌面應用程式**:在設定檔中設定 `outputStyle` 欄位,例如 `.claude/settings.local.json`,這是終端機選單寫入的檔案。當您在那裡執行 `/config` 時,Claude Code [開啟**設定 > Claude Code**](/docs/zh-TW/desktop#what%E2%80%99s-not-available-in-desktop)而不是選單。114* **桌面應用程式**:在設定檔中設定 `outputStyle` 欄位,例如 `.claude/settings.local.json`,這是終端機選單寫入的檔案。當您在那裡執行 `/config` 時,Claude Code [開啟**設定 > Claude Code**](/docs/zh-TW/desktop#what%E2%80%99s-not-available-in-desktop)而不是選單。

43 115 

44若要在不使用選單的情況下設定樣式,請直接編輯設定檔中的 `outputStyle` 欄位:116若要在不使用選單的情況下設定樣式,請直接編輯設定檔中的 `outputStyle` 欄位:


49}121}

50```122```

51 123 

124該值區分大小寫,因此請將內建名稱寫成 `Proactive`、`Concise`、`Explanatory` 和 `Learning`。不完全符合樣式名稱的值(例如 `explanatory`)會給您預設樣式。`/output-style` 命令會忽略大小寫。

125 

126若要在各專案中將樣式設為預設值,請在 `~/.claude/settings.json` 中設定 `outputStyle`。專案本身的設定檔會[優先於](/docs/zh-TW/settings#settings-precedence)該值。

127 

52當您在工作階段中切換樣式時,Claude 會從您的下一則訊息開始使用新樣式。如需了解該第一則訊息在 prompt caching 中的成本,請參閱[變更輸出樣式](/docs/zh-TW/prompt-caching#changing-output-style)。在 v2.1.251 之前,新樣式僅在您執行 `/clear` 或開始新工作階段後才會套用。128當您在工作階段中切換樣式時,Claude 會從您的下一則訊息開始使用新樣式。如需了解該第一則訊息在 prompt caching 中的成本,請參閱[變更輸出樣式](/docs/zh-TW/prompt-caching#changing-output-style)。在 v2.1.251 之前,新樣式僅在您執行 `/clear` 或開始新工作階段後才會套用。

53 129 

54<h2 id="create-a-custom-output-style">130<h2 id="create-a-custom-output-style">


70 專案輸出樣式會從工作目錄和儲存庫根目錄之間的每個 `.claude/output-styles/` 載入。當多個這些巢狀目錄定義同名樣式時,Claude Code 會使用最接近工作目錄的那個。146 專案輸出樣式會從工作目錄和儲存庫根目錄之間的每個 `.claude/output-styles/` 載入。當多個這些巢狀目錄定義同名樣式時,Claude Code 會使用最接近工作目錄的那個。

71 </Step>147 </Step>

72 148 

73 <Step title="添加 frontmatter 和指令">149 <Step title="新增 frontmatter 和指令">

74 決定是否保留 Claude Code 的軟體工程指令。如果您改變 Claude 的溝通方式但仍希望它以相同方式編碼,請設定 `keep-coding-instructions: true`。如果 Claude 不會進行軟體工程,請省略它。150 決定是否保留 Claude Code 的軟體工程指令。如果您改變 Claude 的溝通方式但仍希望它以相同方式編碼,請設定 `keep-coding-instructions: true`。如果 Claude 不會進行軟體工程,請省略它。

75 151 

76 此範例在保留 Claude 編碼行為的同時,在每個說明前面加上圖表:152 此範例在保留 Claude 編碼行為的同時,在每個說明前面加上圖表:


98[Plugins](/docs/zh-TW/plugins-reference) 也可以在 `output-styles/` 目錄中提供輸出樣式。174[Plugins](/docs/zh-TW/plugins-reference) 也可以在 `output-styles/` 目錄中提供輸出樣式。

99 175 

100<h3 id="frontmatter">176<h3 id="frontmatter">

101 Frontmatter177 Frontmatter 參考

102</h3>178</h3>

103 179 

104輸出樣式檔案支援這些 frontmatter 欄位:180使用 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 在檔案頂部的 `---` 標記之間設定輸出樣式。所有欄位都是選用的,欄位名稱使用以連字號分隔的小寫單字。拼寫錯誤的欄位會被忽略而不會出現錯誤。如果 YAML 無法解析,樣式仍會以其檔案名稱載入,且不會設定任何欄位;執行 `claude --debug` 以查看解析錯誤。

105 181 

106| Frontmatter | 用途 | 預設 |182| 欄位 | 必要 | 描述 |

107| :------------------------- | :-------------------------------------------------------------------------------------------------------------- | :------ |183| :------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------- |

108| `name` | 輸出樣式的名稱,如果不是檔案名稱 | 繼承自檔案名稱 |184| `name` | 否 | 輸出樣式的名稱,在 `/config` 選擇器中顯示。預設:檔案名稱 |

109| `description` | 輸出樣式的描述,在 `/config` 選擇器中顯示 | 無 |185| `description` | 否 | 輸出樣式的描述,在 `/config` 選擇器中顯示 |

110| `keep-coding-instructions` | 保留 Claude Code 的內建軟體工程指令 | `false` |186| `keep-coding-instructions` | 否 | 設定為 `true` 以將 Claude Code 的內建軟體工程指令與您的樣式一起保留。預設:`false` |

111| `force-for-plugin` | 僅限 Plugin 輸出樣式:在啟用 plugin 時自動應用此樣式,無需要求使用者選擇它。覆蓋使用者的 `outputStyle` 設定。如果多個啟用的 plugin 設定此項,Claude Code 使用第一個載入的。 | `false` |187| `force-for-plugin` | 否 | 僅限 Plugin 輸出樣式。設定為 `true` 以在啟用 plugin 時自動應用此樣式,無需要求使用者選擇它。覆蓋使用者的 `outputStyle` 設定。如果多個啟用的 plugin 設定此項,Claude Code 會使用第一個載入的。預設:`false` |

112 188 

113<h2 id="how-output-styles-work">189<span id="comparisons-to-related-features" />

114 輸出樣式的工作原理

115</h2>

116 190 

117輸出樣式會改變 Claude Code 提供給 Claude 的指令。191<h2 id="choose-between-an-output-style-and-other-features">

192 在輸出樣式和其他功能之間選擇

193</h2>

118 194 

119* Claude Code 在每個請求中都會發送作用中樣式的指令。195輸出樣式適用於工作階段中的每個回應。這是 Claude 遵循的指令,所以沒有任何東西強制執行它。當您想要的內容比每個回應更狹隘,或必須無一例外地發生時,另一個功能更適合。

120* 當您[選擇預設以外的樣式](#change-your-output-style)時,Claude Code 也會在對話期間提醒 Claude 該樣式。

121* 自訂輸出樣式排除了 Claude Code 的內建軟體工程指令,例如如何限定變更範圍、編寫註解和驗證工作,除非 `keep-coding-instructions` 設定為 `true`。

122 196 

123輸出樣式適用於主對話和[分支](/docs/zh-TW/sub-agents#fork-the-current-conversation),分支會繼承父項的完整對話和系統提示。其他[子代理會執行自己的系統提示](/docs/zh-TW/sub-agents#what-loads-at-startup),因此樣式不會改變它們的回應方式。197此表格將您想要的內容與執行該功能的功能相匹配:

124 198 

125Token 使用量取決於樣式。樣式的指令會增加輸入 token,儘管 prompt caching 在工作階段中的第一個請求之後會降低此成本。199| 您想要 | 使用 | 為什麼適合 |

200| :---------------------------------- | :------------------------------------------------------------------- | :----------------------------------------------- |

201| 每個回應都採用特定的語氣、長度或格式,或 Claude 採用不同的角色 | 輸出樣式 | 它適用於整個工作階段,您可以用一個命令切換樣式 |

202| Claude 了解您專案的慣例、命令和結構 | [CLAUDE.md](/docs/zh-TW/memory) | 它保存 Claude 應該了解的程式碼庫內容,無論您選擇哪種樣式,它都會保持載入 |

203| 一種任務類型的指令,例如發行檢查清單或審查程序 | [skill](/docs/zh-TW/skills) | Claude 只在您叫用它或任務相符時才載入它,所以它不會影響無關的回應 |

204| 每次都無一例外地發生的事情,例如每次編輯後的格式化或阻止命令 | [hook](/docs/zh-TW/hooks-guide) | Claude Code 在生命週期事件時自己執行 hook,所以它不依賴 Claude 遵循指令 |

205| 具有自己的指令、模型和工具的助手,用於專注的任務 | [subagent](/docs/zh-TW/sub-agents) | 它在具有自己系統提示的單獨上下文中執行,並將摘要返回到您的對話 |

206| 您在啟動 Claude Code 時傳遞的 Claude 指令的補充 | [`--append-system-prompt`](/docs/zh-TW/cli-reference#system-prompt-flags) | 它附加到系統提示而不移除任何內容 |

126 207 

127內建的 Explanatory 和 Learning 樣式按設計會產生比預設更長的回應,這會增加輸出 token。Concise 樣式則相反,它會指示 Claude 預設保持回應簡潔。對於自訂樣式,輸出 token 使用量取決於您的指令告訴 Claude 要產生什麼。208這些功能可以組合。例如,您可以使用 CLAUDE.md 來保存 Claude 應該了解的內容、輸出樣式來決定它如何回應,以及 hook 來保證任何必須發生的事情。[擴展 Claude Code](/docs/zh-TW/features-overview) 比較其餘的擴展功能。

128 209 

129<h2 id="comparisons-to-related-features">210<h2 id="how-output-styles-work">

130 與相關功能的比較211 輸出樣式的運作方式

131</h2>212</h2>

132 213 

133多個功能自訂 Claude Code 的行為方式。輸出樣式變更 Claude Code 的預設指令,並應用於每個回應。其他功能添加指令而不改變預設值,或將其限定於特定任務。214輸出樣式會變更 Claude Code 提供給 Claude 的指令。

215 

216* Claude Code 在每個請求中都會傳送作用中樣式的指令。

217* 自訂輸出樣式會省略 Claude Code 的內建軟體工程指令,例如如何限定變更範圍、撰寫註解和驗證工作,除非 `keep-coding-instructions` 設定為 `true`。

218 

219輸出樣式適用於主對話和[分支](/docs/zh-TW/sub-agents#fork-the-current-conversation),分支會繼承父代的完整對話和系統提示。其他[子代理會執行自己的系統提示](/docs/zh-TW/sub-agents#what-loads-at-startup),因此樣式不會改變它們的回應方式。

220 

221權杖使用量取決於樣式。樣式的指令會增加輸入權杖,不過提示快取會在工作階段中的第一個請求之後降低此成本。

134 222 

135| 功能 | 工作原理 | 使用時機 |223內建的 Explanatory 和 Learning 樣式設計上會產生比 Default 更長的回應,這會增加輸出權杖。Concise 樣式則相反,它會指示 Claude 預設保持回應簡潔。對於自訂樣式,輸出權杖使用量取決於您的指令告訴 Claude 要產生什麼。

136| :-------------------------- | :------------------- | :--------------------------------------------------------------------- |

137| 輸出樣式 | 變更 Claude Code 的預設指令 | 您希望每次都有不同的角色、語氣或預設回應格式 |

138| [CLAUDE.md](/docs/zh-TW/memory) | 在系統提示之後添加使用者訊息 | Claude 應該始終知道您的專案慣例和程式碼庫上下文 |

139| `--append-system-prompt` | 附加到系統提示而不移除任何內容 | 您希望以 [CLI 旗標](/docs/zh-TW/cli-reference#system-prompt-flags) 的形式在啟動時進行一次性添加 |

140| [Agents](/docs/zh-TW/sub-agents) | 使用自己的系統提示、模型和工具運行子代理 | 您希望為專注任務提供單獨作用域的幫助程式 |

141| [Skills](/docs/zh-TW/skills) | 在呼叫或相關時載入特定於任務的指令 | 您有可重複使用的工作流程 |

142 224 

143<h2 id="related-resources">225<h2 id="related-resources">

144 相關資源226 相關資源

overview.md +1 −0

Details

247* [快速入門](/docs/zh-TW/quickstart):逐步完成您的第一個真實任務,從探索程式碼庫到提交修復247* [快速入門](/docs/zh-TW/quickstart):逐步完成您的第一個真實任務,從探索程式碼庫到提交修復

248* [儲存說明和記憶](/docs/zh-TW/memory):使用 CLAUDE.md 檔案和自動記憶為 Claude 提供持久說明248* [儲存說明和記憶](/docs/zh-TW/memory):使用 CLAUDE.md 檔案和自動記憶為 Claude 提供持久說明

249* [常見工作流程](/docs/zh-TW/common-workflows)和[最佳實踐](/docs/zh-TW/best-practices):充分利用 Claude Code 的模式249* [常見工作流程](/docs/zh-TW/common-workflows)和[最佳實踐](/docs/zh-TW/best-practices):充分利用 Claude Code 的模式

250* [Claude Academy](https://academy.claude.com/):免費自主進度課程,包括 [Claude Code 101](https://academy.claude.com/courses/claude-code-101) 和 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action)

250* [每項任務的工具](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code):Claude Code 團隊如何使用[動態工作流程](/docs/zh-TW/workflows)大規模協調子代理251* [每項任務的工具](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code):Claude Code 團隊如何使用[動態工作流程](/docs/zh-TW/workflows)大規模協調子代理

251* [設定](/docs/zh-TW/settings):為您的工作流程自訂 Claude Code252* [設定](/docs/zh-TW/settings):為您的工作流程自訂 Claude Code

252* [疑難排解](/docs/zh-TW/troubleshooting):常見問題的解決方案253* [疑難排解](/docs/zh-TW/troubleshooting):常見問題的解決方案

permission-modes.md +106 −91

Details

246```246```

247 247 

248<h2 id="analyze-before-you-edit-with-plan-mode">248<h2 id="analyze-before-you-edit-with-plan-mode">

249 使用計畫模式在編輯前進行分析249 使用 Plan Mode 在編輯前進行分析

250</h2>250</h2>

251 251 

252計畫模式會告訴 Claude 在進行變更前先研究並提出建議。Claude 會讀取檔案、執行 shell 命令進行探索,並撰寫計畫,但不會編輯您的原始碼。除了在[略過權限可用](#skip-all-checks-with-bypasspermissions-mode)的互動式終端工作階段中,編輯會保持被阻止,直到您批准計畫為止。252Plan Mode 告訴 Claude 在進行變更前先研究並提出建議。Claude 會讀取檔案、執行 shell 命令進行探索,並撰寫計畫,但不會編輯您的原始碼。除了在具有[略過權限可用](#skip-all-checks-with-bypasspermissions-mode)的互動式終端機工作階段中,編輯會保持被阻止,直到您核准計畫。

253 253 

254當[自動模式](/docs/zh-TW/auto-mode-config)可用且 `useAutoModeDuringPlan` 設定開啟(預設為開啟)時,分類器會在規劃期間審查 shell 命令而不是提示您。批准的命令執行,拒絕的命令被阻止。否則,[內建唯讀集合](/docs/zh-TW/permissions#read-only-commands)外的命令會提示批准,包括當沙箱的[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)啟用時。在具有可用略過權限的互動式終端工作階段中,分類器和提示都不適用於規劃命令;[使用 bypassPermissions 模式跳過所有檢查](#skip-all-checks-with-bypasspermissions-mode)涵蓋仍會在那裡提示的少數事項。在 v2.1.212 到 v2.1.217 中,沒有略過權限的工作階段會為唯讀集合外的每個命令提示,無論自動模式是否可用。254當[自動模式](/docs/zh-TW/auto-mode-config)可用且 `useAutoModeDuringPlan` 設定已開啟(預設為開啟)時,分類器會在規劃期間檢查 shell 命令,而不是提示您。已核准的命令會執行,被拒絕的命令會被阻止。否則,[內建唯讀集合](/docs/zh-TW/permissions#read-only-commands)之外的命令會提示您核准,包括當沙箱的[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)已啟用時。在具有可用略過權限的互動式終端機工作階段中,分類器和提示都不適用於規劃命令;[使用 bypassPermissions Mode 略過所有檢查](#skip-all-checks-with-bypasspermissions-mode)涵蓋了仍在該處提示的少數事項。在 v2.1.212 至 v2.1.217 中,沒有略過權限的工作階段會針對唯讀集合之外的每個命令提示,無論自動模式是否可用。

255 255 

256按下 `Shift+Tab` 或在單一提示前加上 `/plan` 即可進入計畫模式。您也可以從 CLI 開始使用計畫模式:256按 `Shift+Tab` 或在單一提示前加上 `/plan` 來進入 Plan Mode。您也可以從 CLI 開始使用 Plan Mode:

257 257 

258```bash theme={null}258```bash theme={null}

259claude --permission-mode plan259claude --permission-mode plan

260```260```

261 261 

262再次按下 `Shift+Tab` 即可在不批准計畫的情況下離開計畫模式。262再次按 `Shift+Tab` 以離開 Plan Mode,而不核准計畫。

263 263 

264<h3 id="review-and-approve-a-plan">264<h3 id="review-and-approve-a-plan">

265 檢視並批准計畫265 檢查並核准計畫

266</h3>266</h3>

267 267 

268計畫準備好後,Claude 會呈現計畫並詢問如何進行。從該提示中,您可以選擇:268當計畫準備好時,Claude 會呈現它並詢問如何進行。從該提示中,您可以選擇:

269 269 

270* **是的,並使用自動模式**:批准並以[自動模式](#eliminate-prompts-with-auto-mode)啟動。當自動模式不可用時,此選項讀作**是的,自動接受編輯**。如果您以啟用略過權限的方式啟動工作階段,該選項讀作**是的,並為此工作階段切換到略過權限(無進一步提示)**。270* **是的,並使用自動模式**:核准並開始使用[自動模式](#eliminate-prompts-with-auto-mode)。如果自動模式對您的工作階段[不可用](#eliminate-prompts-with-auto-mode),例如因為您的組織關閉了它,此選項會顯示為**是的,自動接受編輯**。如果您使用啟用的略過權限開始工作階段,該選項會改為顯示**是的,並為此工作階段切換到 BYPASS PERMISSIONS(無進一步提示)**。

271* **是的,手動批准編輯**:批准並逐個檢視每個編輯。271* **是的,手動核准編輯**:核准並逐個檢查每個編輯。

272* **否,繼續規劃**:保持在計畫模式並告訴 Claude 要變更什麼。272* **否,繼續規劃**:保持在 Plan Mode 並告訴 Claude 要變更什麼。

273 273 

274批准計畫會退出計畫模式並將工作階段切換至每個批准選項所描述的權限模式,以便 Claude 開始編輯。若要再次規劃,請使用 `Shift+Tab` 循環回到計畫模式,或在下一個提示前加上 `/plan`。274核准計畫會退出 Plan Mode 並將工作階段切換到每個核准選項描述的權限模式,因此 Claude 開始編輯。若要再次規劃,使用 `Shift+Tab` 循環回到 Plan Mode,或在下一個提示前加上 `/plan`。

275 275 

276按下 `Ctrl+G` 即可在預設文字編輯器中開啟提議的計畫並直接編輯,然後 Claude 才會繼續進行。當啟用 [`showClearContextOnPlanAccept`](/docs/zh-TW/settings-reference#showclearcontextonplanaccept) 時,清單會獲得第一個選項,該選項批准計畫並清除規劃上下文。276按 `Ctrl+G` 在您的預設文字編輯器中開啟提議的計畫並在 Claude 繼續前直接編輯它。當[`showClearContextOnPlanAccept`](/docs/zh-TW/settings-reference#showclearcontextonplanaccept)已啟用時,清單會獲得第一個選項,該選項核准計畫並清除規劃內容。

277 277 

278接受計畫也會根據計畫內容為工作階段提供[產生的標題](/docs/zh-TW/sessions#name-your-sessions),除非您已命名工作階段。278接受計畫也會根據計畫為工作階段提供[產生的標題](/docs/zh-TW/sessions#name-your-sessions),除非您已經命名了工作階段。

279 279 

280<h3 id="set-plan-mode-as-the-default">280<h3 id="set-plan-mode-as-the-default">

281 將計畫模式設定為預設值281 將 Plan Mode 設定為預設值

282</h3>282</h3>

283 283 

284若要將計畫模式設定為專案的終端工作階段的預設值,請在 `.claude/settings.json` 中將 `defaultMode` 設定為 `plan`,如[以不同的權限模式啟動](#start-in-a-different-mode)下的範例所示。[VS Code 擴充功能](/docs/zh-TW/vs-code)啟動的對話不讀取專案設定以取得起始權限模式。在那裡,請改為在 VS Code 使用者設定中將 `claudeCode.initialPermissionMode` 設定為 `plan`。284若要讓 Plan Mode 成為專案終端機工作階段的預設值,請在 `.claude/settings.json` 中將 `defaultMode` 設定為 `plan`,放置如[以不同權限模式開始](#start-in-a-different-mode)下的範例所示。[VS Code 擴充功能](/docs/zh-TW/vs-code)啟動的對話不會讀取專案設定以取得起始權限模式。在那裡,改為在您的 VS Code 使用者設定中將 `claudeCode.initialPermissionMode` 設定為 `plan`。

285 285 

286<h2 id="eliminate-prompts-with-auto-mode">286<h2 id="eliminate-prompts-with-auto-mode">

287 使用自動模式消除權限提示287 使用自動模式消除權限提示


289 289 

290自動模式讓 Claude 無需例行權限提示即可執行。一個獨立的分類器模型在操作執行前進行審查,阻止任何超出您請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的惡意內容驅動的操作。明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會強制提示。290自動模式讓 Claude 無需例行權限提示即可執行。一個獨立的分類器模型在操作執行前進行審查,阻止任何超出您請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的惡意內容驅動的操作。明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會強制提示。

291 291 

292在 Pro、Max 和 Team 方案上,自動模式是[會話開始時的內建預設權限模式](#which-mode-a-session-starts-in)。292在 Pro、Max 和 Team 計畫上,自動模式是[會話開始時的內建預設權限模式](#which-mode-a-session-starts-in)。

293 293 

294分類器也會審查 Claude 使用 [`SendMessage`](/docs/zh-TW/tools-reference) 發送給另一個代理的每條訊息,無論是純文本還是結構化的[代理團隊](/docs/zh-TW/agent-teams)訊息,在 Claude Code 傳遞之前,無論是在自動模式還是在[計畫模式中分類器審查命令](#analyze-before-you-edit-with-plan-mode)時;發送審查需要 Claude Code v2.1.222 或更新版本。294分類器也會審查 Claude 使用 [`SendMessage`](/docs/zh-TW/tools-reference) 發送給另一個代理的每條訊息,無論是純文字還是結構化的[代理團隊](/docs/zh-TW/agent-teams)訊息,在 Claude Code 傳遞之前,無論是在自動模式還是在[計畫模式中分類器審查命令](#analyze-before-you-edit-with-plan-mode)時;發送審查需要 Claude Code v2.1.222 或更新版本。

295 295 

296分類器也會審查並批准或阻止針對[關鍵路徑](#critical-paths)的 `rm` 和 `rmdir` 移除操作,例如 `rm -rf /` 和 `rm -rf ~`,包括當移除操作位於命令或程序替換內時。296分類器也會審查並批准或阻止針對[關鍵路徑](#critical-paths)的 `rm` 和 `rmdir` 移除,例如 `rm -rf /` 和 `rm -rf ~`,包括當移除位於命令或程序替換內時。

297 297 

298自動模式也會促使 Claude 繼續工作而不停下來提出澄清問題,儘管當您的提示或技能明確依賴它時,Claude 仍會提問。如需在仍會提示您的模式中獲得更強的自主行為,請改為設定[主動輸出風格](/docs/zh-TW/output-styles)。298自動模式也會促使 Claude 繼續工作而不停下來提出澄清問題,儘管當您的提示或技能明確依賴它時 Claude 仍會詢問。如需在仍會提示您的模式中獲得更強的自主行為,請改為設定[主動輸出風格](/docs/zh-TW/output-styles)。

299 299 

300<Warning>300<Warning>

301 自動模式減少了權限提示,但不保證安全性。將其用於您信任一般方向的任務,而不是作為敏感操作審查的替代品。301 自動模式減少了權限提示,但不保證安全性。將其用於您信任一般方向的任務,而不是作為敏感操作審查的替代品。


303 303 

304自動模式僅在您的帳戶符合以下所有要求時才可用:304自動模式僅在您的帳戶符合以下所有要求時才可用:

305 305 

306* **方案**:所有方案。306* **計畫**:所有計畫。

307* **組織**:在 Team 和 Enterprise 上,自動模式預設可用。管理員可以通過在[受管設定](/docs/zh-TW/managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來為組織關閉它。307* **組織**:在 Team 和 Enterprise 上,自動模式預設可用。管理員可以通過在[受管設定](/docs/zh-TW/managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來為組織關閉它。

308* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上,Claude Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或[Fable 模型](/docs/zh-TW/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)會話上,僅限 Claude Sonnet 5、Opus 4.7 或更新版本以及 Fable 模型。較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供者上都不受支援。308* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上,Claude Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或[Fable 模型](/docs/zh-TW/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)會話上,僅限 Claude Sonnet 5、Opus 4.7 或更新版本以及 Fable 模型。較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供者上都不受支援。

309* **提供者**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 Claude 應用程式閘道會話上預設可用。309* **提供者**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 Claude 應用程式閘道會話上預設可用。

310 310 

311如果 Claude Code 報告自動模式不可用,首先檢查這些要求以及任何設定檔是否設定了 [`disableAutoMode`](/docs/zh-TW/settings-reference#disableautomode)。Anthropic 也可能已在伺服器端關閉自動模式,或伺服器可能已為您的帳戶拒絕自動模式。收到任一答案的會話會保持自動模式關閉直到會話結束,因此稍後啟動新會話。311如果 Claude Code 報告自動模式不可用,首先檢查這些要求以及任何設定檔是否設定了 [`disableAutoMode`](/docs/zh-TW/settings-reference#disableautomode)。Anthropic 也可能已在伺服器端關閉自動模式,或伺服器可能已為您的帳戶拒絕自動模式。收到任一答案的會話會保持自動模式關閉直到會話結束,因此稍後啟動新會話。

312 312 

313命名模型並說自動模式「無法確定」操作安全性的單獨訊息意味著分類器請求失敗。該失敗通常是暫時的,但在 Amazon Bedrock 上,它可能會重複出現,直到您的帳戶可以調用命名的模型。請參閱[錯誤參考](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)以了解原因和應對措施。313一條單獨的訊息,命名一個模型並說自動模式「無法確定」操作的安全性,意味著分類器請求失敗。該失敗通常是暫時的,但在 Amazon Bedrock 上,它可能會重複出現,直到您的帳戶可以調用命名的模型。請參閱[錯誤參考](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)以了解原因和應對方法。

314 314 

315如果您在[設定](/docs/zh-TW/settings-reference#all-settings)中設定 `defaultMode: "auto"`,而終端會話在沒有錯誤的情況下以手動模式啟動,該設定可能位於 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不會從這些檔案生效。將其移至 `~/.claude/settings.json`。對於 VS Code 擴充功能啟動的對話,請改為檢查擴充功能自己的列表[切換權限模式](#switch-permission-modes)。315如果您在[設定](/docs/zh-TW/settings-reference#all-settings)中設定 `defaultMode: "auto"`,而終端會話在沒有錯誤的情況下以手動模式啟動,該設定可能位於 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不會從這些檔案生效。將其移至 `~/.claude/settings.json`。對於 VS Code 擴充功能啟動的對話,請改為檢查擴充功能自己的列表[切換權限模式](#switch-permission-modes)。

316 316 


318 Bedrock、Agent Platform 或 Foundry 上的自動模式318 Bedrock、Agent Platform 或 Foundry 上的自動模式

319</h3>319</h3>

320 320 

321在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和已登入的[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)會話上,自動模式預設出現在 `Shift+Tab` 循環中。出現在循環中不會改變會話開始時的權限模式:在這些提供者上,終端會話以您的 [`defaultMode`](/docs/zh-TW/settings-reference#permissions-defaultmode) 開始,除非您更改它,否則為手動模式,而[VS Code 擴充功能](/docs/zh-TW/vs-code)中的對話除非 `claudeCode.initialPermissionMode` 或您在擴充功能中選擇的模式設定了一個,否則以手動模式開始。這些提供者上僅支援 Claude Sonnet 5、Opus 4.7 或更新版本以及 Fable 模型。321在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)會話上,自動模式預設出現在 `Shift+Tab` 循環中。出現在循環中不會改變會話開始時的權限模式:在這些提供者上,終端會話以您的 [`defaultMode`](/docs/zh-TW/settings-reference#permissions-defaultmode) 開始,除非您更改它,否則為手動模式,而 [VS Code 擴充功能](/docs/zh-TW/vs-code)中的對話除非 `claudeCode.initialPermissionMode` 或您在擴充功能中選擇的模式設定了一個,否則以手動模式開始。這些提供者上僅支援 Claude Sonnet 5、Opus 4.7 或更新版本以及 Fable 模型。

322 322 

323要使自動模式成為預設啟動權限模式,請在使用者或受管設定中設定 `"permissions": {"defaultMode": "auto"}`。在 VS Code 擴充功能啟動的會話中,改為從模式指示器選擇 **Auto**。[切換權限模式](#switch-permission-modes)涵蓋了什麼會優先於該選擇。323要使自動模式成為預設啟動權限模式,請在使用者或受管設定中設定 `"permissions": {"defaultMode": "auto"}`。在 VS Code 擴充功能啟動的會話中,改為從模式指示器選擇 **Auto**。[切換權限模式](#switch-permission-modes)涵蓋了什麼優先於該選擇。

324 324 

325[`/doctor`](/docs/zh-TW/commands#all-commands) 檢查在這些提供者上提議此使用者設定預設,方式與在 Anthropic API 上相同。325[`/doctor`](/docs/zh-TW/commands#all-commands)檢查在這些提供者上提議此使用者設定預設,就像在 Anthropic API 上一樣。

326 326 

327要防止開發人員使用自動模式,請在[受管設定](/docs/zh-TW/managed-settings)中將 `disableAutoMode` 設定為 `"disable"`。這會從 `Shift+Tab` 循環中移除 `auto`,而以 `--permission-mode auto` 啟動的會話會以手動模式啟動。已在自動模式中執行的會話在設定從[管理員部署的來源](/docs/zh-TW/managed-settings#which-managed-source-claude-code-uses)到達該會話時會離開它,並顯示 `auto mode disabled by settings`。在 v2.1.251 之前,執行中的會話會保持自動模式直到它結束。327要防止開發人員使用自動模式,請在[受管設定](/docs/zh-TW/managed-settings)中將 `disableAutoMode` 設定為 `"disable"`。這會從 `Shift+Tab` 循環中移除 `auto`,並且以 `--permission-mode auto` 啟動的會話以手動模式啟動。已在自動模式中執行的會話在設定從[管理員部署的來源](/docs/zh-TW/managed-settings#which-managed-source-claude-code-uses)到達該會話時會離開它,並顯示 `auto mode disabled by settings`。在 v2.1.251 之前,執行中的會話會保持自動模式直到它結束。

328 328 

329在 v2.1.158 到 v2.1.206 中,自動模式在這些提供者上是關閉的,直到您設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,而 Claude Code 在這些提供者上忽略 `defaultMode: "auto"`,除非也設定了該變數。該變數仍被接受以保持相容性,從 v2.1.207 開始沒有效果。329在 v2.1.158 到 v2.1.206 中,自動模式在這些提供者上是關閉的,直到您設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,並且 Claude Code 在這些提供者上忽略 `defaultMode: "auto"`,除非也設定了該變數。該變數仍被接受以保持相容性,從 v2.1.207 開始沒有效果。

330 330 

331<h3 id="server-side-classifier-review">331<h3 id="server-side-classifier-review">

332 伺服器端分類器審查332 伺服器端分類器審查

333</h3>333</h3>

334 334 

335在 Enterprise 方案和使用 Claude API 的帳戶上,在 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每當您將 `ANTHROPIC_BASE_URL` 指向[LLM 閘道或代理](/docs/zh-TW/llm-gateway)時,自動模式中的 Claude Code 會要求伺服器審查[進入分類器的操作](#how-the-classifier-evaluates-actions)作為會話的模型請求的一部分。在伺服器審查它們的地方,其判決決定這些操作。在它不審查的地方,通常是因為 LLM 閘道或代理干擾了流量,或因為平台、區域或認證還沒有伺服器端檢查,Claude Code 會回退到自己的分類器請求,一旦該回退在會話的其餘部分保持,它會在那些請求被計費的帳戶上顯示[關於分類器請求費用的一次性對話](/docs/zh-TW/auto-mode-classifier-billing)。要跳過詢問伺服器並始終使用 Claude Code 自己的分類器請求,請設定 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-TW/env-vars)。該變數在直接連接到 Anthropic API 時不被讀取。如果您設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 並保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未設定,Claude Code 也會停止詢問伺服器。335在 Enterprise 計畫和使用 Claude API 的帳戶上,在 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每當您將 `ANTHROPIC_BASE_URL` 指向[LLM 閘道或代理](/docs/zh-TW/llm-gateway)時,自動模式中的 Claude Code 要求伺服器審查[進入分類器的操作](#how-the-classifier-evaluates-actions)作為會話模型請求的一部分。伺服器審查它們的地方,其判決決定了這些操作。它不審查的地方,最常見的原因是 LLM 閘道或代理干擾了流量,或因為平台、區域或認證還沒有伺服器端檢查,Claude Code 會回退到自己的分類器請求,一旦該回退在會話的其餘部分保持,它會在那些請求被計費的帳戶上顯示[關於分類器請求費用的通知](/docs/zh-TW/auto-mode-classifier-billing)。要跳過詢問伺服器並始終使用 Claude Code 自己的分類器請求,請設定 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-TW/env-vars)。該變數在直接連接到 Anthropic API 時不被讀取。如果您設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 並保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未設定,Claude Code 也會停止詢問伺服器。

336 336 

337預設詢問伺服器需要 Claude Code v2.1.278 或更新版本。337預設詢問伺服器需要 Claude Code v2.1.278 或更新版本。

338 338 


340 分類器預設阻止的內容340 分類器預設阻止的內容

341</h3>341</h3>

342 342 

343分類器信任您的工作目錄和為其配置的遠端,當會話啟動時。在會話期間使用 `git remote add` 或 `git remote set-url` 添加或重新指向的遠端不受信任,其他所有內容都被視為外部,直到您[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。在 v2.1.200 之前,中途添加的遠端也受信任。343分類器信任您的工作目錄和會話啟動時為其配置的遠端。在會話期間使用 `git remote add` 或 `git remote set-url` 添加或重新指向的遠端不受信任,其他所有內容都被視為外部,直到您[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。在 v2.1.200 之前,會話中期添加的遠端也受信任。

344 344 

345**預設阻止**:345**預設阻止**:

346 346 


352* 修改共享基礎設施352* 修改共享基礎設施

353* 不可逆地銷毀會話前存在的檔案353* 不可逆地銷毀會話前存在的檔案

354* 強制推送354* 強制推送

355* 提交或推送會將秘密或敏感資料發送到儲存庫外的更改,或擴大部署所暴露的內容。這涵蓋將秘密傳遞給尚未接收它的目的地的 CI 工作流程或部署配置、讀取秘密存儲並將資料發送出去的指令碼或設定步驟,以及擴大部署發佈內容的配置更改,例如登錄、可見性、工件或來源地圖設定。檢查適用於任何分支,即使儲存庫是公開的也適用,並在提交或推送時觸發,無論該提交或推送是否觸發管道;清除它需要命名執行效果,而不僅僅是提交或推送。在 v2.1.211 之前,此檢查的範圍限於預設分支:推送到那裡時如果攜帶敏感內容、隱藏或誤描述相對於您要求的內容、從儲存庫外部移植的內容或繞過您要求的審查的內容,則被阻止355* 提交或推送會將秘密或敏感資料發送到儲存庫外的更改,或擴大部署公開的內容。這涵蓋將秘密傳遞給不已接收它的目的地的 CI 工作流程或部署配置、讀取秘密存儲並發送資料的指令碼或設定步驟,以及擴大部署發佈內容的配置更改,例如登錄、可見性、工件或來源地圖設定。檢查適用於任何分支,即使儲存庫是公開的也適用,並在提交或推送時觸發,無論該提交或推送是否觸發管道;清除它需要命名執行效果,而不僅僅是提交或推送。在 v2.1.211 之前,此檢查的範圍限於預設分支:推送到那裡時,如果它攜帶敏感內容、相對於您要求的隱藏或誤述的更改、從儲存庫外部移植的內容或繞過您要求的審查的內容,則被阻止

356* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分類器假設會丟棄未提交的更改356* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分類器推測會丟棄未提交的更改

357* `git commit --amend` 當 HEAD 的提交不是在此會話中建立的357* `git commit --amend` 當 HEAD 的提交不是在此會話中建立的

358* 從 v2.1.198 開始,`git commit --amend` 當 HEAD 的提交已經被推送。僅訊息重新措辭不被阻止:`--amend -m` 沒有新暫存的內容,在 Claude 在此會話期間建立的提交上358* 從 v2.1.198 開始,`git commit --amend` 當 HEAD 的提交已經被推送。僅訊息重述不被阻止:`--amend -m` 沒有新暫存的內容,在 Claude 在此會話期間建立的提交上

359* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用銷毀資源的計畫359* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用銷毀資源的計畫

360 360 

361Claude Code v2.1.195 及更新版本預設阻止更多類別。其中幾個取決於[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)條目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。361Claude Code v2.1.195 及更新版本預設阻止更多類別。其中幾個取決於[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)條目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。


363* 寫入秘密管理器,或更改 DNS 記錄或 TLS 憑證363* 寫入秘密管理器,或更改 DNS 記錄或 TLS 憑證

364* 合併沒有人類批准的拉取請求、批准 Claude 自己的拉取請求或禁用 CI 檢查364* 合併沒有人類批准的拉取請求、批准 Claude 自己的拉取請求或禁用 CI 檢查

365* 發佈本身是自動化命令的評論,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`365* 發佈本身是自動化命令的評論,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`

366* 切換、調整或刪除生產功能旗標366* 切換、調整或刪除生產功能標誌

367* 將基礎設施更改應用於受保護的 IaC 範圍,或排空並移除叢集節點367* 將基礎設施更改應用於受保護的 IaC 範圍,或排空並移除叢集節點

368* 寫入超出您命名的資源的共享計算叢集,例如標籤選擇器或 `--all` 捕捉其他使用者的工作368* 寫入超出您命名的資源的共享計算叢集,例如標籤選擇器或 `--all` 捕獲其他使用者的工作

369* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和准入 Webhooks369* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和准入 webhooks

370* 互動式 shell 或連接埠轉發到敏感遠端目標370* 互動式 shell 或連接埠轉發到敏感遠端目標

371* 開啟隧道或反向 shell,使本地服務可從公開網際網路存取371* 開啟隧道或反向 shell,使本地服務可從公開網際網路訪問

372* 將即時認證或令牌列印到文字記錄或檔案372* 將即時認證或令牌列印到文字記錄或檔案中

373* 存取在您的[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中列為敏感資料位置的位置,或從其中複製資料。從 v2.1.198 開始,這也會阻止從一個位置發送資料到該條目排除的受眾373* 訪問在您的[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中列為敏感資料位置的位置,或從其中複製資料。從 v2.1.198 開始,這也會阻止從一個發送資料到該條目排除的受眾

374* 繞過您的內部套件登錄將套件安裝路由到公開登錄。從 v2.1.198 開始,這也適用於您在對話中告訴 Claude 存在內部登錄或鏡像的情況,而不僅僅是在您的環境中列出的情況374* 將套件安裝繞過您的內部套件登錄路由到公開登錄。從 v2.1.198 開始,這也適用於您在對話中告訴 Claude 內部登錄或鏡像存在的情況,而不僅僅是在您的環境中列出的情況

375* 使用禁用安全防護的旗標執行命令,例如 `--insecure`375* 使用禁用安全防護的標誌執行命令,例如 `--insecure`

376* 啟動在沒有人類批准或沙箱的情況下執行的自主代理迴圈,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 啟動的迴圈。從 v2.1.198 開始,這也涵蓋執行禁用隔離和每個操作批准的第三方代理或評估工具,例如使用 `--yes-always` 啟動的執行器376* 啟動在沒有人類批准或沙箱的情況下執行的自主代理迴圈,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 啟動的迴圈。從 v2.1.198 開始,這也涵蓋執行第三方代理或評估工具,隔離和按操作批准禁用,例如使用 `--yes-always` 啟動的執行器

377* [Chrome 中的 Claude](/docs/zh-TW/chrome)瀏覽器操作可能會將頁面內容、Cookie 或認證發送到跨來源377* [Chrome 中的 Claude](/docs/zh-TW/chrome)瀏覽器操作,可能會將頁面內容、Cookie 或認證發送到跨來源

378 378 

379Claude Code v2.1.198 及更新版本也預設阻止這些:379Claude Code v2.1.198 及更新版本也預設阻止這些:

380 380 

381* 通過萬用字元、glob 或年齡篩選器而不是特定命名路徑刪除 `/tmp`、`$TMPDIR` 或其他共享暫存或快取目錄中的檔案381* 按萬用字元、glob 或年齡篩選器而不是按特定命名路徑刪除 `/tmp`、`$TMPDIR` 或另一個共享暫存或快取目錄中的檔案

382* 在發送、上傳、發佈或寫入其他人或共享系統的內容中包含敏感詳細資訊,當您自己的訊息未授權這些詳細資訊給該收件人時。PR 和問題正文、提交訊息和評論在儲存庫在信任邊界外或公開時計為此類出站內容,包括您組織自己的公開儲存庫;內部檔案路徑、代碼名稱、即時 API 回應資料(例如電子郵件或帳戶識別碼)和基礎設施識別碼計為敏感詳細資訊。PR、問題和提交訊息範圍需要 Claude Code v2.1.200 或更新版本。PR 或問題正文中的即時個人資料(例如電子郵件地址、帳戶或組織識別碼或使用指標)需要您命名這些詳細資訊和收件人,無論儲存庫的可見性或信任邊界如何。該檢查需要 Claude Code v2.1.203 或更新版本382* 在內容發送、上傳、發佈或寫入其他人或共享系統時包含敏感詳細資訊,當您自己的訊息沒有授權這些詳細資訊給該收件人時。PR 和問題正文、提交訊息和評論在儲存庫在信任邊界外或公開時計為此類出站內容,包括您組織自己的公開儲存庫;內部檔案路徑、代碼名稱、即時 API 回應資料(例如電子郵件或帳戶識別碼)和基礎設施識別碼計為敏感詳細資訊。PR、問題和提交訊息範圍需要 Claude Code v2.1.200 或更新版本。PR 或問題正文中的即時個人資料(例如電子郵件地址、帳戶或組織識別碼或使用指標)需要您命名這些詳細資訊和收件人,無論儲存庫的可見性或信任邊界如何。該檢查需要 Claude Code v2.1.203 或更新版本

383* 將按鍵發送到 Claude Code 自己的 tmux 窗格以驅動其自己的介面,分類器將其視為 Claude 更改自己的權限或監督383* 將按鍵發送到 Claude Code 自己的 tmux 窗格以驅動其自己的介面,分類器將其視為 Claude 更改自己的權限或監督

384 384 

385Claude Code v2.1.200 及更新版本也預設阻止這些:385Claude Code v2.1.200 及更新版本也預設阻止這些:

386 386 

387* 註解掉、刪除或強制通過保護安全行為的測試或斷言,例如驗證、存取控制、輸入驗證或沙箱387* 註解掉、刪除或強制通過保護安全行為的測試或斷言,例如身份驗證、存取控制、輸入驗證或沙箱

388* 刪除或拆除 Claude 在會話中未建立的有狀態資源,當沒有更具體的刪除規則適用且您未命名該資源時388* 刪除或拆除有狀態資源 Claude 在會話中沒有建立的資源,當沒有更具體的刪除規則適用且您沒有命名該資源時

389* 將 API 基礎 URL、代理端點、Webhook 接收器或登錄鏡像重新指向不適合任務的第三方主機,包括在 `.env.example` 等範例檔案中389* 在不適合任務的第三方主機上重新指向 API 基礎 URL、代理端點、webhook 接收器或登錄鏡像,包括在 `.env.example` 等範例檔案中

390* 使用 `git remote set-url` 或 `git remote add` 更改推送的去向,除非您命名了新遠端390* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新遠端

391* 推送秘密或個人或受信任的資料到已知為公開的儲存庫,或推送不是該儲存庫自己工作一部分的機密材料到那裡。dotfiles 儲存庫自己的主題是個人或受信任資料的唯一例外,來自私有儲存庫到任何公開表面的內容以相同方式被阻止;兩項改進都需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,個人資料與機密材料分組,僅當它不是該儲存庫自己工作的一部分時才被阻止。當儲存庫的可見性未確定時,分類器不會單獨基於此進行阻止;它改為根據其他規則判斷內容391* 推送秘密或個人或受信任的資料到已知為公開的儲存庫,或推送不是該儲存庫自己工作一部分的機密材料到那裡。dotfiles 儲存庫自己的主題是個人或受信任資料的唯一例外,來自私有儲存庫到任何公開表面的內容以相同方式被阻止;兩項改進都需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,個人資料與機密材料分組,僅當它不是該儲存庫自己工作的一部分時才被阻止。當儲存庫的可見性未確定時,分類器不會單獨基於此進行阻止;它改為根據其他規則判斷內容

392* 針對不同的儲存庫或組織開啟拉取請求、使用 `gh repo fork` 進行分叉或推送到第三方儲存庫,除非您命名了該外部目標392* 針對不同儲存庫或組織開啟拉取請求、使用 `gh repo fork` 進行分叉或推送到第三方儲存庫,除非您命名了該外部目標

393 393 

394Claude Code v2.1.203 及更新版本也預設阻止這些:394Claude Code v2.1.203 及更新版本也預設阻止這些:

395 395 

396* 來自敏感本地存儲或其名稱、路徑或類型將其標記為敏感的檔案的內容進入提交、推送、PR 或問題文本、gist 或貼上或套件發佈,除非您命名了來源和目的地。會話文字記錄和對話日誌、認證和配置點資料夾(例如 SSH 金鑰、雲端認證、瀏覽器設定檔和 shell 歷史記錄)以及使用者資料匯出都計為此類,儲存庫是私有的不會清除它396* 來自敏感本地存儲或其名稱、路徑或類型將其標記為敏感的檔案的內容進入提交、推送、PR 或問題文字、gist 或貼上或套件發佈,除非您命名了來源和目的地。會話文字記錄和對話日誌、認證和配置點資料夾(例如 SSH 金鑰、雲端認證、瀏覽器設定檔和 shell 歷史記錄)以及使用者資料匯出都計為此類,儲存庫是私有的不會清除它

397 397 

398Claude Code v2.1.205 及更新版本也預設阻止這些:398Claude Code v2.1.205 及更新版本也預設阻止這些:

399 399 

400* 寫入 Claude Code 會話文字記錄、`~/.claude/projects/` 下的 `.jsonl` 歷史檔案或您配置的配置目錄,無論是直接還是通過 shell 命令。該規則也涵蓋 Claude Code 為其自己的檢查附加到每個文字記錄條目的中繼資料行。讀取文字記錄不被阻止400* 寫入 Claude Code 會話文字記錄、`~/.claude/projects/` 下的 `.jsonl` 歷史檔案或您配置的配置目錄,無論是直接還是通過 shell 命令。該規則也涵蓋 Claude Code 為其自己的檢查附加到每個文字記錄條目的中繼資料行。讀取文字記錄不被阻止

401* 遞迴強制刪除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目標是 shell 變數或以其為根的 glob,在對話中分類器看到的任何地方都未分配。該值僅來自較早的命令輸出,分類器永遠不會收到,因此分類器無法根據其他刪除規則驗證刪除目標。當您命名正在刪除的確切路徑或 Claude 使用寫入命令的已解析文字路徑重新執行刪除時,該塊會清除。分類器可以解析其目標的刪除不受影響。目標為裸 `*` 或以 `/*` 或 `\*` 結尾的 `Remove-Item` 目標永遠不會到達分類器:Claude Code [直接拒絕它們](#remove-item-in-powershell)401* 遞迴強制刪除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目標是 shell 變數或以其為根的 glob,在對話中分類器看到的任何地方都沒有指派。該值僅來自較早的命令輸出,分類器永遠不會收到,因此分類器無法根據其他刪除規則驗證刪除目標。當您命名正在刪除的確切路徑或 Claude 使用寫入命令的已解析文字路徑重新執行刪除時,該塊會清除。分類器可以解析其目標的刪除不受影響。`Remove-Item` 目標是裸 `*` 或以 `/*` 或 `\*` 結尾的目標永遠不會到達分類器:Claude Code [直接拒絕它們](#remove-item-in-powershell)

402 402 

403Claude Code v2.1.257 及更新版本也預設阻止這些:403Claude Code v2.1.257 及更新版本也預設阻止這些:

404 404 

405* 從雲端實例中繼資料端點(例如 `169.254.169.254`)請求認證,或使用機器自己的服務帳戶或節點身份明確驗證雲端、叢集或登錄呼叫405* 從雲端實例中繼資料端點(例如 `169.254.169.254`)請求認證,或使用機器自己的服務帳戶或節點身份明確驗證雲端、叢集或登錄呼叫

406* 通過直接請求以外的路由到達公開主機,例如隧道、反向 shell 或重新寫入以指向外部的解析器或代理配置406* 通過直接請求以外的路由到達公開主機,例如隧道、反向 shell 或重寫為指向外部的解析器或代理配置

407* 讀取屬於主機而不是您的任務的認證,例如節點憑證或節點的容器登錄驗證407* 讀取屬於主機而不是您的任務的認證,例如節點憑證或節點的容器登錄身份驗證

408* 連接到或掃描 Claude 未啟動的同級容器、Pod 或 VM,或容器下的節點408* 連接到或掃描 Claude 沒有啟動的同級容器、pod 或 VM,或容器下的節點

409 409 

410如果 Claude Code 在允許其中之一的地方執行,請在 `autoMode.environment` 中的[主機包含條目](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中描述該設定。410如果 Claude Code 在允許其中之一的地方執行,請在 `autoMode.environment` 中的[主機包含條目](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中描述該設定。

411 411 

412Claude Code v2.1.261 及更新版本也預設阻止這些:412Claude Code v2.1.261 及更新版本也預設阻止這些:

413 413 

414* 在訊息、PR 或問題文本、文件或連結將被開啟或提取的任何其他地方發佈或寫入公開貼上、圖表或資料共享服務的連結,當 URL 本身攜帶正在共享的內容時,除非您命名了該服務414* 在訊息、PR 或問題文字、文件或連結將被開啟或提取的任何其他地方發佈或寫入公開貼上、圖表或資料共享服務的連結,當 URL 本身攜帶正在共享的內容時,除非您命名了該服務

415 415 

416**預設允許**:416**預設允許**:

417 417 

418* 工作目錄中的本地檔案操作418* 您工作目錄中的本地檔案操作

419* 安裝在您的鎖定檔案或清單中聲明的依賴項419* 安裝在您的鎖定檔案或清單中聲明的依賴項

420* 讀取 `.env` 並將認證發送到其匹配的 API420* 讀取 `.env` 並將認證發送到其匹配的 API

421* 唯讀 HTTP 請求421* 唯讀 HTTP 請求

422* 推送到您正在處理的儲存庫的任何分支,包括預設分支。其名稱將其標記為部署或發佈目標的非預設分支,例如 `production` 或 `gh-pages`,不涵蓋:分類器根據其自己的條款判斷推送到那裡。推送的內容仍根據其他規則進行檢查,[`permissions.deny` 規則](/docs/zh-TW/permissions#manage-permissions)仍可以在每種模式中[按書寫方式](/docs/zh-TW/permissions#bash-rule-limits)阻止推送命令,遠端自己的分支保護仍然適用。在 v2.1.211 之前,僅允許推送到您啟動的分支、Claude 建立的分支和到預設分支的例行推送,在 v2.1.203 之前任何直接推送到預設分支都被阻止422* 推送到您正在處理的儲存庫的任何分支,包括預設分支。其名稱將其標記為部署或發佈目標的非預設分支,例如 `production` 或 `gh-pages`,不涵蓋:分類器根據其自己的條款判斷推送到那裡。推送的內容仍根據其他規則進行檢查,[`permissions.deny` 規則](/docs/zh-TW/permissions#manage-permissions)仍可以在每種模式中[按書寫](/docs/zh-TW/permissions#bash-rule-limits)阻止推送命令,遠端自己的分支保護仍然適用。在 v2.1.211 之前,僅允許推送到您啟動的分支、Claude 建立的分支和到預設分支的例行推送,在 v2.1.203 之前任何直接推送到預設分支都被阻止

423 423 

424Claude Code v2.1.195 及更新版本也預設允許這些:424Claude Code v2.1.195 及更新版本也預設允許這些:

425 425 

426* 刪除 Claude 在同一會話中較早建立的確切工作426* 刪除 Claude 在同一會話中較早建立的確切工作

427* 作為您的任務的一部分讀取、審查或寫入安全相關的程式碼、配置和威脅模型427* 作為您的任務的一部分讀取、審查或寫入安全相關的程式碼、配置和威脅模型

428* 在同一多代理會話中一起工作的代理之間的訊息428* 在同一多代理會話中一起工作的代理之間的訊息

429* 將資料發送到您在 [`environment`](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、儲存桶和服務。這僅涵蓋資料流,不涵蓋同一基礎設施上的破壞性或認證操作429* 將資料發送到您在 [`environment`](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、儲存桶和服務。這僅涵蓋資料流,而不是同一基礎設施上的破壞性或認證操作

430* [Chrome 中的 Claude](/docs/zh-TW/chrome)導航到受信任的內部域、localhost 或您命名的 URL430* [Chrome 中的 Claude](/docs/zh-TW/chrome)導航到受信任的內部域、localhost 或您命名的 URL

431 431 

432沙箱命令預設不獲得網路存取。Claude 在命令本身上命名命令需要的主機,分類器與命令一起審查它們,批准的列表僅為該一個命令開啟這些主機。[每個命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)涵蓋列表可以和不能開啟的內容以及命令到達未列出的主機時發生的情況。432沙箱命令預設沒有網路存取。Claude 在命令本身上命名命令需要的主機,分類器與命令一起審查它們,批准的列表僅為該一個命令開啟這些主機。[按命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)涵蓋列表可以和不能開啟什麼以及當命令到達未列出的主機時會發生什麼。

433 433 

434執行 `claude auto-mode defaults` 以將完整規則列表列印為 JSON。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定添加受信任的儲存庫、儲存桶和服務:請參閱[配置自動模式](/docs/zh-TW/auto-mode-config)。434執行 `claude auto-mode defaults` 以將完整規則列表列印為 JSON。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定添加受信任的儲存庫、儲存桶和服務:請參閱[配置自動模式](/docs/zh-TW/auto-mode-config)。

435 435 

436推送到您正在處理的儲存庫的任何分支並建立與您的請求相符的拉取請求無需提示即可執行,除非推送或拉取請求屬於[阻止列表](#what-the-classifier-blocks-by-default),例如秘密或敏感資料離開儲存庫,或針對不同儲存庫或組織的拉取請求。要在保持自動模式的同時要求這些命令前的人類檢查點,請添加 `permissions.ask` 規則,這些規則與命令[按書寫方式](/docs/zh-TW/permissions#bash-rule-limits)相符:請參閱[常見邊界](/docs/zh-TW/auto-mode-config#common-boundaries)。436推送到您正在處理的儲存庫的任何分支並建立與您的請求相符的拉取請求無需提示即可執行,除非推送或拉取請求屬於[阻止列表](#what-the-classifier-blocks-by-default),例如秘密或敏感資料離開儲存庫,或針對不同儲存庫或組織的拉取請求。要在保持自動模式的同時要求這些命令前的人類檢查點,請添加 `permissions.ask` 規則,這些規則與命令[按書寫](/docs/zh-TW/permissions#bash-rule-limits)相符:請參閱[常見邊界](/docs/zh-TW/auto-mode-config#common-boundaries)。

437 437 

438<h3 id="first-read-outside-the-working-directories">438<h3 id="first-read-outside-the-working-directories">

439 工作目錄外的第一次讀取439 工作目錄外的第一次讀取


441 441 

442當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 關閉時,檔案讀取在自動模式中無需提示即可執行,包括在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取。Claude 第一次在工作目錄外的路徑上使用 Read、Grep 或 Glob 工具時,Claude Code 會詢問您是否繼續允許這些讀取。442當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 關閉時,檔案讀取在自動模式中無需提示即可執行,包括在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取。Claude 第一次在工作目錄外的路徑上使用 Read、Grep 或 Glob 工具時,Claude Code 會詢問您是否繼續允許這些讀取。

443 443 

444提示不會出現在非互動式 `-p` 執行或背景會話中;那裡的讀取照常執行。444該提示不會出現在非互動式 `-p` 執行或背景會話中;那裡的讀取照常執行。

445 445 

446無論您的答案如何,Claude 都會繼續工作:446無論您的答案如何,Claude 都會繼續工作:

447 447 

448* **繼續允許**:讀取執行,工作目錄外的後續讀取照常執行,Claude Code 記錄您的答案,以便提示不會再次出現448* **繼續允許**:讀取執行,稍後對工作目錄外的讀取照常執行,Claude Code 記錄您的答案,以便提示不會再次出現

449* **從現在開始阻止**:讀取被拒絕,Claude Code 在您的使用者設定中將 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 設定為 `true`,這使檔案工具在每個後續會話和每種權限模式中拒絕此類讀取。要稍後讓 Claude 讀取此類路徑,請使用 `/add-dir` 添加其目錄或移除該設定。449* **從現在開始阻止**:讀取被拒絕,Claude Code 在您的使用者設定中將 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 設定為 `true`,這使檔案工具在每個稍後的會話和每種權限模式中拒絕此類讀取。要稍後讓 Claude 讀取此類路徑,請使用 `/add-dir` 添加其目錄或移除該設定。

450* **下次再問**:讀取被拒絕,下一次工作目錄外的讀取會再次提示450* **下次再詢問**:讀取被拒絕,下一次對工作目錄外的讀取會再次提示

451 451 

452<h3 id="boundaries-you-state-in-conversation">452<h3 id="boundaries-you-state-in-conversation">

453 您在對話中陳述的邊界453 您在對話中陳述的邊界

454</h3>454</h3>

455 455 

456分類器將您在對話中陳述的邊界視為阻止信號。如果您告訴 Claude「不要推送」或「等待我審查後再部署」,分類器會阻止匹配的操作,即使預設規則會允許它們。邊界保持有效,直到您在後續訊息中解除它。Claude 自己的判斷條件已滿足不會解除它。456分類器將您在對話中陳述的邊界視為阻止信號。如果您告訴 Claude「不要推送」或「在我審查後再部署」,分類器會阻止匹配的操作,即使預設規則會允許它們。邊界保持有效,直到您在稍後的訊息中解除它。Claude 自己的判斷認為條件已滿足不會解除它。

457 457 

458邊界不作為規則儲存。分類器在每次檢查時從文字記錄中重新讀取它們,因此如果[上下文壓縮](/docs/zh-TW/costs#reduce-token-usage)移除陳述邊界的訊息,邊界可能會丟失。為了獲得硬保證,請改為添加[拒絕規則](/docs/zh-TW/permissions#permission-rule-syntax)。458邊界不作為規則儲存。分類器在每次檢查時從文字記錄重新讀取它們,因此如果[上下文壓縮](/docs/zh-TW/costs#reduce-token-usage)移除陳述邊界的訊息,邊界可能會丟失。為了硬保證,請改為添加[拒絕規則](/docs/zh-TW/permissions#permission-rule-syntax)。

459 

460<h3 id="approvals-you-state-in-conversation">

461 您在對話中陳述的批准

462</h3>

463 

464如果您告訴 Claude 被阻止的操作是允許的,分類器會將其讀取為您的批准,並可以清除該塊。您如何措辭決定了操作是否執行以及批准的範圍有多遠:

465 

466* **命名操作及其細節**:您的訊息必須命名操作和使其危險的具體事物,例如強制推送的分支。僅命名動詞不會清除任何內容,因此「您可以強制推送」會使塊保持原位。

467* **期望它涵蓋一個操作**:批准涵蓋您命名的破壞性操作,因此稍後的操作會再次被阻止,除非您授予批准作為常設。要停止一次批准一個例行模式,請將其添加到 [`autoMode.allow`](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)。

468* **某些塊保持原位**:[分類器的優先順序](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)列出了您的批准可以到達的塊。要執行它不會清除的步驟,[離開自動模式](#switch-permission-modes)並回答權限提示。

459 469 

460<h3 id="when-auto-mode-falls-back">470<h3 id="when-auto-mode-falls-back">

461 自動模式何時回退471 當自動模式回退時

462</h3>472</h3>

463 473 

464當自動模式無法批准您的會話操作時,發生的情況取決於情況:474當自動模式無法批准您的會話操作時,會發生什麼取決於情況:

465 475 

466* **被阻止的操作**:Claude Code 顯示通知並在 `/permissions` 下的 **Recently denied** 標籤中列出操作,您可以按 `r` 使用手動批准重試它。當分類器對操作[沒有產生判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,因為自動模式之外的安全檢查拒絕了分類器自己的請求或其回應未解析,Claude Code 拒絕操作而不顯示通知或 **Recently denied** 條目。476* **被阻止的操作**:Claude Code 顯示通知並在 `/permissions` 下的 **Recently denied** 標籤中列出操作,您可以按 `r` 使用手動批准重試它。當分類器對操作[沒有產生判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,因為自動模式以外的安全檢查拒絕了分類器自己的請求或其回應沒有解析,Claude Code 拒絕該操作而沒有通知或 **Recently denied** 條目。

467* **重複阻止**:如果分類器連續 3 次或總共 20 次阻止操作,自動模式暫停,Claude Code 恢復提示。批准提示的操作會恢復自動模式。這些閾值不可配置。任何允許的操作重置連續計數器,而總計數器在會話中持續,僅在其自己的限制觸發回退時重置。當[自動模式之外的安全檢查拒絕分類器的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,Claude Code 不計算拒絕到任一閾值;連結的條目涵蓋 Claude Code 如何處理這些拒絕。477* **重複塊**:如果分類器連續 3 次或總共 20 次阻止操作,自動模式暫停,Claude Code 恢復提示。批准提示的操作會恢復自動模式。這些閾值不可配置。任何允許的操作重置連續計數器,而總計數器在會話期間持續,僅在其自己的限制觸發回退時重置。當[自動模式以外的安全檢查拒絕分類器的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,Claude Code 不會計算拒絕以達到任一閾值;連結的條目涵蓋 Claude Code 如何處理這些拒絕。

468* **無法提示的會話**:沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的[非互動式](/docs/zh-TW/headless) `-p` 執行沒有回退提示。當重複阻止達到閾值時,操作不執行,Claude 繼續工作。當[自動模式之外的安全檢查拒絕分類器的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時也適用。Claude Code 在任一情況下都不停止執行。478* **無法提示的會話**:沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的[非互動式](/docs/zh-TW/headless) `-p` 執行沒有回退提示。當重複塊達到閾值時,操作不執行,Claude 繼續工作。當[自動模式以外的安全檢查拒絕分類器的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時也適用相同情況。Claude Code 在任一情況下都不會停止執行。

469* **檢查期間的模式切換**:如果您在分類器檢查待決時切換權限模式,Claude Code 會丟棄新模式不會請求的判決,而不是應用它:您會被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中操作被自動拒絕。479* **檢查期間的模式切換**:如果您在分類器檢查待處理時切換權限模式,Claude Code 會丟棄新模式不會請求的判決,而不是應用它:您會被提示進行批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自動拒絕操作。

470 480 

471重複阻止通常意味著分類器缺少關於您的基礎設施的上下文。使用 `/feedback` 報告誤報,或讓管理員[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。481重複塊通常意味著分類器缺少關於您的基礎設施的上下文。使用 `/feedback` 報告誤報,或讓管理員[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。

472 482 

473<span id="how-the-classifier-evaluates-actions" />483<span id="how-the-classifier-evaluates-actions" />

474 484 


477 每個操作都經過固定的決策順序。第一個匹配的步驟獲勝:487 每個操作都經過固定的決策順序。第一個匹配的步驟獲勝:

478 488 

479 1. 與您的[允許、詢問或拒絕規則](/docs/zh-TW/permissions#manage-permissions)相符的操作立即解決,但以下例外:489 1. 與您的[允許、詢問或拒絕規則](/docs/zh-TW/permissions#manage-permissions)相符的操作立即解決,但以下例外:

480 * 寫入[受保護路徑](#protected-paths)的操作即使允許規則相符也會路由到分類器,Claude Code v2.1.218 及更新版本中針對[關鍵路徑](#critical-paths)的 `rm` 和 `rmdir` 移除操作也是如此490 * 寫入[受保護路徑](#protected-paths)的操作會路由到分類器,即使允許規則相符,`rm` 和 `rmdir` 移除針對 Claude Code v2.1.218 及更新版本中的[關鍵路徑](#critical-paths)也是如此

481 * 標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允許規則相符也會直接提示您,您的組織設定為 [`ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的會話中也是如此491 * 標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允許規則相符也會直接提示您,您的組織設定為 [`ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的會話中也是如此

482 * 攜帶[每個命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令即使允許規則相符也會路由到分類器,因為規則批准命令,而不是其主機492 * 攜帶[按命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也會路由到分類器,即使允許規則相符,因為規則批准命令,而不是其主機

483 * 在命令內容上相符的詢問規則,例如 `Bash(git push *)`,回退到權限提示493 * 在命令內容上相符的詢問規則,例如 `Bash(git push *)`,回退到權限提示

484 2. 唯讀操作和工作目錄中的檔案編輯被自動批准,除了寫入[受保護路徑](#protected-paths)和[工作目錄外的第一次讀取](#first-read-outside-the-working-directories),這會提示您494 2. 唯讀操作和您工作目錄中的檔案編輯會自動批准,除了寫入[受保護路徑](#protected-paths)和[工作目錄外的第一次讀取](#first-read-outside-the-working-directories),這會提示您

485 3. 其他所有內容都進入分類器。在步驟 1 中直接提示您的連接器工具和` requiresUserInteraction` MCP 工具永遠不會到達分類器,因此組織要求的批准或同意步驟都不會被自動批准495 3. 其他所有內容都進入分類器。在步驟 1 中直接提示您的連接器工具和 `requiresUserInteraction` MCP 工具永遠不會到達分類器,因此既不是組織要求的批准也不是同意步驟會自動批准

486 4. 如果分類器阻止,Claude 收到原因並嘗試替代方案。在大多數會話中,原因命名分類器相符的規則,例如 `[Data Exfiltration]`,而不是給出書面解釋;請參閱[審查拒絕](/docs/zh-TW/auto-mode-config#review-denials)496 4. 如果分類器阻止,Claude 收到原因並嘗試替代方案。在大多數會話中,原因命名分類器相符的規則,例如 `[Data Exfiltration]`,而不是給出書面解釋;請參閱[審查拒絕](/docs/zh-TW/auto-mode-config#review-denials)

487 497 

488 進入自動模式時,授予任意程式碼執行的廣泛允許規則被丟棄:498 進入自動模式時,授予任意程式碼執行的廣泛允許規則會被丟棄:

489 499 

490 * 無限制 `Bash(*)` 或 `PowerShell(*)`500 * 無條件 `Bash(*)` 或 `PowerShell(*)`

491 * 萬用字元解釋器,例如 `Bash(python*)`501 * 萬用字元解釋器,例如 `Bash(python*)`

492 * 套件管理器執行命令502 * 套件管理器執行命令

493 * `Agent` 允許規則503 * `Agent` 允許規則

494 * [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 允許規則,因為 Claude Code 通過 shell 執行 Monitor 命令504 * [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 允許規則,因為 Claude Code 通過 shell 執行 Monitor 命令

495 505 

496 狹義規則,例如 `Bash(npm test)` 保持有效。Claude Code 在您離開自動模式時恢復丟棄的規則。在 v2.1.236 之前,Claude Code 在自動模式中保持 `Monitor` 允許規則有效,因此與整個工具相符的規則批准 Monitor 命令而不進行分類器審查。506 狹窄的規則,例如 `Bash(npm test)` 保持有效。Claude Code 在您離開自動模式時恢復丟棄的規則。在 v2.1.236 之前,Claude Code 在自動模式中保持 `Monitor` 允許規則有效,因此與整個工具相符的規則批准 Monitor 命令而無需分類器審查。

497 507 

498 Claude Code 也在會丟棄未提交工作的命令前執行 `git status`,例如 `git reset --hard` 或 `rm -rf`,並向分類器顯示是否存在暫存、修改或未追蹤的工作。Claude Code 在該檢查中報告未追蹤的檔案,即使儲存庫的 git 配置設定 `status.showUntrackedFiles=no`。508 Claude Code 也在會丟棄未提交工作的命令(例如 `git reset --hard` 或 `rm -rf`)之前自己執行 `git status`,並向分類器顯示是否存在暫存、修改或未追蹤的工作。Claude Code 在該檢查中報告未追蹤的檔案,即使儲存庫的 git 配置設定 `status.showUntrackedFiles=no`。

499 509 

500 在 Claude Code 本身發送的分類器請求中,分類器看到使用者訊息、除唯讀查詢(例如檔案讀取和搜尋)之外的工具呼叫,以及您的 CLAUDE.md 內容。工具結果從這些請求中被剝離,因此檔案或網頁中的惡意內容無法直接操縱分類器。510 在 Claude Code 本身發送的分類器請求中,分類器看到使用者訊息、除了唯讀查詢(例如檔案讀取和搜尋)之外的工具呼叫以及您的 CLAUDE.md 內容。工具結果從這些請求中被剝離,因此檔案或網頁中的惡意內容無法直接操縱分類器。

501 511 

502 您可以使用 [PostToolUse hook 的 `classifierContext` 欄位](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)註解呼叫的結果,分類器將其讀取為應用程式提供的上下文。該欄位需要 Claude Code v2.1.236 或更新版本。512 您可以使用 [PostToolUse hook 的 `classifierContext` 欄位](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)註解呼叫的結果,分類器將其讀取為應用程式提供的上下文。該欄位需要 Claude Code v2.1.236 或更新版本。

503 513 

504 單獨的伺服器端探針掃描傳入的工具結果並在 Claude 讀取之前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱[自動模式公告](https://claude.com/blog/auto-mode)和[工程深入探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。514 一個單獨的伺服器端探針掃描傳入的工具結果並在 Claude 讀取之前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱[自動模式公告](https://claude.com/blog/auto-mode)和[工程深入探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。

505 </Accordion>515 </Accordion>

506 516 

507 <Accordion title="自動模式如何處理子代理">517 <Accordion title="自動模式如何處理子代理">

508 分類器在三個點檢查[子代理](/docs/zh-TW/sub-agents)工作:518 分類器在三個點檢查[子代理](/docs/zh-TW/sub-agents)工作:

509 519 

510 1. 在子代理啟動前,委派的任務描述被評估,因此危險看起來的任務在生成時被阻止。520 1. 在子代理啟動之前,委派的任務描述被評估,因此看起來危險的任務在生成時被阻止。

511 2. 當子代理執行時,其每個操作都通過分類器,使用與父會話相同的規則,子代理的 frontmatter 中的任何 `permissionMode` 都被忽略。521 2. 當子代理執行時,其每個操作都通過分類器,使用與父會話相同的規則,子代理前言中的任何 `permissionMode` 都被忽略。

512 3. 當子代理完成時,分類器審查其工作和最終報告,然後父代讀取報告。當分類器標記子代理的工作或報告,或單獨的 API 安全檢查拒絕審查時,報告仍被傳遞,前面加上安全警告。當分類器不可用於審查時,報告到達時帶有驗證子代理工作後再根據其採取行動的說明。522 3. 當子代理完成時,分類器審查其工作和最終報告,然後父代讀取報告。當分類器標記子代理的工作或報告,或單獨的 API 安全檢查拒絕審查時,報告仍被傳遞,前面加上安全警告。當分類器對審查不可用時,報告到達時帶有驗證子代理工作的說明,然後再根據它採取行動。

513 

514 步驟 1 需要 Claude Code v2.1.178 或更新版本。較早的版本在步驟 2 和 3 應用分類器,但在子代理啟動前未評估任務描述。

515 </Accordion>523 </Accordion>

516 524 

517 <Accordion title="成本和延遲">525 <Accordion title="成本和延遲">

518 分類器預設在 Claude Sonnet 5 上執行,而不是在您的 `/model` 選擇上。Anthropic 配置的伺服器端分類器模型優先於該預設。當您的會話模型是 Claude Sonnet 4.6,或當 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 排除 Sonnet 5 時,分類器改為在會話的模型上執行,或當會話在[Fable 模型](/docs/zh-TW/model-config#work-with-fable)上執行時在 Opus 模型上執行;在 Anthropic API 以外的提供者上,該 Opus 回退是提供者的預設 Opus 模型。526 分類器預設在 Claude Sonnet 5 上執行,而不是在您的 `/model` 選擇上。Anthropic 配置伺服器端的分類器模型優先於該預設。當您的會話模型是 Claude Sonnet 4.6,或當 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 排除 Sonnet 5 時,分類器改為在會話模型上執行,或在會話在[Fable 模型](/docs/zh-TW/model-config#work-with-fable)上執行時在 Opus 模型上執行;在 Anthropic API 以外的提供者上,該 Opus 回退是提供者的預設 Opus 模型。

519 527 

520 會話的第一個自動模式請求驗證 Sonnet 5 預設:如果請求成功,Sonnet 5 保持會話的分類器模型,如果它失敗是因為模型不可用,會話改為使用回退。在該驗證解決後,分類器的模型在會話中不會改變。528 會話的第一個自動模式請求驗證 Sonnet 5 預設:如果請求成功,Sonnet 5 保持會話的分類器模型,如果它失敗因為模型不可用,會話改為使用回退。在該驗證解決後,分類器的模型在會話期間不會改變。

521 529 

522 在 Enterprise 方案和使用 Claude API、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 的帳戶上,分類器呼叫計入您的令牌使用。每次檢查發送文字記錄的一部分加上待決操作,在執行前添加往返。工作目錄外的讀取和受保護路徑外的編輯跳過分類器,因此開銷主要來自 shell 命令和網路操作。在伺服器審查操作的地方,作為會話的模型請求的一部分,沒有單獨的分類器呼叫要計數;請參閱[伺服器端分類器審查](#server-side-classifier-review)。530 在 Enterprise 計畫和使用 Claude API 的帳戶上,[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry,分類器呼叫計入您的令牌使用量。每次檢查發送文字記錄的一部分加上待處理操作,在執行前添加往返。讀取和受保護路徑外的工作目錄編輯跳過分類器,因此開銷主要來自 shell 命令和網路操作。伺服器審查它們作為會話模型請求的一部分的地方,沒有單獨的分類器呼叫要計數;請參閱[伺服器端分類器審查](#server-side-classifier-review)。

523 531 

524 沙箱網路存取不添加每個連接分類器請求。分類器與命令一起判斷[命令命名的主機](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 根據批准的列表檢查每個連接而不再次呼叫分類器。532 沙箱網路存取不添加按連接分類器請求。分類器判斷[命令命名的主機](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)與命令一起在一次審查中,Claude Code 檢查每個連接對批准列表而無需再次呼叫分類器。

525 </Accordion>533 </Accordion>

526</AccordionGroup>534</AccordionGroup>

527 535 


662 670 

663Claude Code 也將直接在 shell 變數下的 glob 或尾部斜線視為關鍵路徑移除,例如 `rm -rf "$DIR"/*`,因為當變數為空時命令變成從檔案系統根目錄的移除。671Claude Code 也將直接在 shell 變數下的 glob 或尾部斜線視為關鍵路徑移除,例如 `rm -rf "$DIR"/*`,因為當變數為空時命令變成從檔案系統根目錄的移除。

664 672 

673此變數情況的提示會命名被標記的 `rm` 並說明如何重寫它以便檢查通過:

674 

675* 對於像 `$DIR` 這樣的變數,保護每個擴展,使得當變數未設定或為空時 shell 會停止並出現錯誤,如 `rm -rf "${DIR:?}"/*`,或使用字面路徑

676* 對於通常已設定的變數,例如 `$HOME`,使用字面路徑

677 

678其擴展都以這種方式保護的移除不是關鍵路徑移除,因此在 `bypassPermissions` 模式中它會在沒有提示的情況下執行。

679 

665使用 `(...)` 的子殼層、使用 `{ ...; }` 的大括號群組、使用 `$(...)` 或反引號的命令替換,或使用 `<(...)` 的程序替換隱藏移除,不會跳過檢查。Claude Code 找到關鍵路徑移除,無論它位於巢狀形式內部(如 `(rm -rf ~)` 或 `echo "$(rm -rf ~)"`),還是位於同一命令中的其他地方。680使用 `(...)` 的子殼層、使用 `{ ...; }` 的大括號群組、使用 `$(...)` 或反引號的命令替換,或使用 `<(...)` 的程序替換隱藏移除,不會跳過檢查。Claude Code 找到關鍵路徑移除,無論它位於巢狀形式內部(如 `(rm -rf ~)` 或 `echo "$(rm -rf ~)"`),還是位於同一命令中的其他地方。

666 681 

667<h3 id="remove-item-in-powershell">682<h3 id="remove-item-in-powershell">

permissions.md +2 −10

Details

26 26 

27在 v2.1.211 之前,Claude Code 總是在啟動目錄中保存規則,因此在 worktree 或子目錄中授予的批准不適用於專案的其餘部分。較早版本在子目錄或 worktree 中保存的規則仍然適用於在那裡啟動的工作階段。27在 v2.1.211 之前,Claude Code 總是在啟動目錄中保存規則,因此在 worktree 或子目錄中授予的批准不適用於專案的其餘部分。較早版本在子目錄或 worktree 中保存的規則仍然適用於在那裡啟動的工作階段。

28 28 

29有時權限提示只提供一次性批准,沒有"不要再問"選項,也沒有允許操作用於工作階段其餘部分的選項。Claude Code 只在提示可以向您顯示它們允許的所有內容時才提供這些選項,因此您從提示保存的規則只涵蓋其選項命名的內容。29有時權限提示只提供一次性批准,沒有"不要再問"選項,也沒有允許操作用於工作階段其餘部分的選項。Claude Code 只在提示可以向您顯示它們允許的所有內容時才提供這些選項,因此您從提示保存的規則只涵蓋其選項命名的內容。當提示只提供一次性批准時,批准操作一次,或在 [`/permissions`](#manage-permissions) 中自己添加規則。

30 

31當您啟動 Claude Code 的目錄是使選項標籤過長的原因時,Claude Code 會在標籤中縮短它,用 `~` 替換您的主目錄,然後用 `…` 替換路徑的末尾,並保留選項。您仍然保存相同的規則。Claude Code 在三種情況下省略選項:

32 

33* **命令或編輯:** 太大而無法完整顯示。

34* **規則涵蓋的命令或路徑:** 標籤無法容納它們全部。

35* **啟動目錄過長,未縮短:** 它包含 Claude Code 無法安全顯示的字元,或甚至其開始都不適合。

36 

37批准操作一次,或在 [`/permissions`](#manage-permissions) 中自己添加規則。

38 30 

39<h3 id="add-a-comment-when-you-answer-a-permission-prompt">31<h3 id="add-a-comment-when-you-answer-a-permission-prompt">

40 當您回答權限提示時添加評論32 當您回答權限提示時添加評論


250 242 

251當 `&&` 或 `||` 後面沒有任何內容時,例如在 `npm test &&` 中,Claude Code 會將命令視為無法解析,不會將其分割為子命令以進行允許規則符合,所以像 `Bash(npm *)` 這樣的規則不會批准它。243當 `&&` 或 `||` 後面沒有任何內容時,例如在 `npm test &&` 中,Claude Code 會將命令視為無法解析,不會將其分割為子命令以進行允許規則符合,所以像 `Bash(npm *)` 這樣的規則不會批准它。

252 244 

253當您使用「是,不要再問」批准複合命令時,Claude Code 會為每個需要批准的子命令儲存一個單獨的規則,而不是為完整複合字串儲存單一規則。例如,批准 `git status && npm test` 會為 `npm test` 儲存一個規則,因此未來的 `npm test` 呼叫會被識別,無論 `&&` 前面是什麼。子命令如 `cd` 進入子目錄會為該路徑產生自己的 Read 規則。單一複合命令最多可能儲存 5 個規則。245當您使用「是,不要再問」批准複合命令時,Claude Code 會為每個需要批准的子命令儲存一個單獨的規則,而不是為完整複合字串儲存單一規則。例如,批准 `git status && npm test` 會為 `npm test` 儲存一個規則,因此未來的 `npm test` 呼叫會被識別,無論 `&&` 前面是什麼。子命令如 `cd` 進入工作目錄外的目錄會為該路徑產生自己的 Read 規則。單一複合命令最多可能儲存 5 個規則。

254 246 

255<h4 id="process-wrappers">247<h4 id="process-wrappers">

256 包裝器248 包裝器

plugin-evals.md +3 −1

Details

339 授予工具339 授予工具

340</h3>340</h3>

341 341 

342執行永遠不會停止要求許可。需要您未授予的授予的內建工具,例如 `Bash`、`Write`、`Edit`、`WebFetch` 和 `WebSearch`,會從工作階段中移除,因此 Claude 根本無法呼叫它們。允許清單是案例在 `allowed_tools` 中列出的唯讀工具,來自 `Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`Agent`、`TodoWrite` 和任務工具 `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate`、`TaskStop` 和 `TaskOutput`,加上您使用 `--allow-tools` 授予的任何內容,它適用於執行中的每個案例。若要讓案例使用 `Bash`、`Write`、`Edit`、`WebFetch` 或 `WebSearch`,請自己授予它們:342執行永遠不會停止要求許可。需要您未授予的授予的內建工具,例如 `Bash`、`Write`、`Edit`、`WebFetch` 和 `WebSearch`,會從工作階段中移除,因此 Claude 根本無法呼叫它們。

343 

344允許清單是案例在 `allowed_tools` 中列出的唯讀工具,來自 `Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`Agent`、`TodoWrite` 和任務工具 `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate` 和 `TaskStop`,加上您使用 `--allow-tools` 授予的任何內容。該授予適用於執行中的每個案例。若要讓案例使用 `Bash`、`Write`、`Edit`、`WebFetch` 或 `WebSearch`,請自己授予它們:

343 345 

344```bash theme={null}346```bash theme={null}

345claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

Details

71Detailed system prompt for the agent describing its role, expertise, and behavior.71Detailed system prompt for the agent describing its role, expertise, and behavior.

72```72```

73 73 

74Plugin agents 支援 `name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、[`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) 和 `isolation` frontmatter 欄位。唯一有效的 `isolation` 值是 `"worktree"`。基於安全考量,plugin 提供的 agents 不支援 `hooks`、`mcpServers` 和 `permissionMode`。74<h4 id="plugin-agent-frontmatter">

75 Plugin agent frontmatter

76</h4>

77 

78Plugin agent 檔案使用與 [subagent 檔案相同的 frontmatter 欄位](/docs/zh-TW/sub-agents#supported-frontmatter-fields),除了當 agent 來自 plugin 時,Claude Code 只支援其中一些:

79 

80* **支援**:`name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、`omitClaudeMd`、`isolation`、`color` 和 `experimental`。唯一有效的 `isolation` 值是 `"worktree"`。

81* **基於安全考量不支援**:`hooks`、`mcpServers` 和 `permissionMode`。Claude Code 在從 plugin 載入 agent 時會忽略這些。若要使用它們,請將 agent 檔案複製到 `.claude/agents/` 或 `~/.claude/agents/`。

82* **不支援**:`initialPrompt`。

83 

84您可以將 plugin agent 檔案放在 `agents/` 的子資料夾中。Claude Code [會遞迴載入它們](/docs/zh-TW/sub-agents#choose-the-subagent-scope),並將 plugin 名稱、每個子資料夾名稱和檔案名稱用冒號連接以形成 agent 的範圍名稱。例如,名為 `my-plugin` 的 plugin 中的 `agents/review/security.md` 會載入為 `my-plugin:review:security`。兩個設定會改變該名稱:

85 

86* Frontmatter `name`:它只替換檔案名稱,所以 `agents/review/security.md` 中的 `name: audit` 會載入為 `my-plugin:review:audit`

87* Manifest [`agents`](#component-path-fields) 欄位:您在其中列出的檔案會載入而不含子資料夾名稱,所以 `"agents": "./custom/review/security.md"` 會載入為 `my-plugin:security`

75 88 

76Claude Code 會載入 plugin agent,即使其 frontmatter 沒有 `name` 或無法解析:89Claude Code 會載入 plugin agent,即使其 frontmatter 沒有 `name` 或無法解析:

77 90 


469***482***

470 483 

471<h2 id="plugin-manifest-schema">484<h2 id="plugin-manifest-schema">

472 Plugin 資訊清單架構485 Plugin manifest schema

473</h2>486</h2>

474 487 

475`.claude-plugin/plugin.json` 檔案定義了您的 plugin 的中繼資料和設定。488`.claude-plugin/plugin.json` 檔案定義了你的 plugin 的中繼資料和設定。

476 489 

477資訊清單是選用的。如果省略,Claude Code 會在[預設位置](#file-locations-reference)自動探索元件,並從目錄名稱衍生 plugin 名稱。當您需要提供中繼資料或自訂元件路徑時,請使用資訊清單。490manifest 是選用的。如果省略,Claude Code 會在[預設位置](#file-locations-reference)自動探索元件,並從目錄名稱衍生 plugin 名稱。當你需要提供中繼資料或自訂元件路徑時,請使用 manifest。

478 491 

479<h3 id="complete-schema">492<h3 id="complete-schema">

480 完整架構493 Complete schema

481</h3>494</h3>

482 495 

483```json theme={null}496```json theme={null}


516```529```

517 530 

518<h3 id="required-fields">531<h3 id="required-fields">

519 必要欄位532 必需欄位

520</h3>533</h3>

521 534 

522如果您包含資訊清單,`name` 是唯一必要的欄位。535如果你包含 manifest,`name` 是唯一必需的欄位。

523 536 

524| 欄位 | 類型 | 說明 | 範例 |537| 欄位 | 類型 | 說明 | 範例 |

525| :----- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |538| :----- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

526| `name` | string | 唯一識別碼,採用 kebab-case,不含空格、控制字元或雙向格式化字元。當[市集項目](/docs/zh-TW/plugin-marketplaces#plugin-entries)以不同名稱列出 plugin 時,市集項目名稱是 `enabledPlugins` 金鑰和 `/plugin` 使用的名稱 | `"deployment-tools"` |539| `name` | string | 唯一識別碼,採用 kebab-case,不含空格、控制字元或雙向格式化字元。當[marketplace 項目](/docs/zh-TW/plugin-marketplaces#plugin-entries)以不同名稱列出 plugin 時,marketplace 項目名稱是 `enabledPlugins` 鍵和 `/plugin` 使用的名稱 | `"deployment-tools"` |

527 540 

528此名稱用於元件命名空間。例如,在 UI 中,名稱為 `plugin-dev` 的 plugin 的代理程式 `agent-creator` 將顯示為 `plugin-dev:agent-creator`。541此名稱用於命名空間元件。例如,在 UI 中,名稱為 `plugin-dev` 的 plugin 的 agent `agent-creator` 將顯示為 `plugin-dev:agent-creator`。

529 542 

530<h3 id="unrecognized-fields">543<h3 id="unrecognized-fields">

531 無法識別的欄位544 無法識別的欄位

532</h3>545</h3>

533 546 

534Claude Code 會忽略它無法識別的頂層欄位。您可以在 `plugin.json` 中保留來自另一個生態系統的中繼資料,plugin 仍會載入。這使得維護一個資訊清單變得實用,該資訊清單可同時用作 VS Code 或 Cursor 擴充功能資訊清單、npm `package.json` 或 MCPB/DXT 套件資訊清單。547Claude Code 會忽略它無法識別的頂層欄位。你可以在 `plugin.json` 中保留來自另一個生態系統的中繼資料,plugin 仍然會載入。這使得維護一個 manifest 作為 VS Code 或 Cursor extension manifest、npm `package.json` 或 MCPB/DXT bundle manifest 變得實用。

535 548 

536`claude plugin validate` 會將無法識別的欄位報告為警告,而非錯誤。如果欄位與已識別的欄位相差一或兩個字元,警告會建議可能的預期名稱。只有無法識別欄位警告的 plugin 仍會通過驗證並在執行時載入。549`claude plugin validate` 將無法識別的欄位報告為警告,而不是錯誤。如果欄位名稱與已識別的欄位相差一或兩個字元,警告會建議可能的預期名稱。只有無法識別欄位警告的 plugin 仍會通過驗證並在執行時載入。

537 550 

538Claude Code 如何處理已識別欄位但值類型錯誤的情況取決於該欄位:551Claude Code 如何處理已識別欄位但值類型錯誤的情況取決於該欄位:

539 552 

540* **大多數欄位**:plugin 無法載入。例如,`keywords` 值為字串而非陣列是載入錯誤,`claude plugin validate` 會將其報告為錯誤。553* **大多數欄位**:plugin 無法載入。例如,`keywords` 值是字串而不是陣列是載入錯誤,`claude plugin validate` 會將其報告為錯誤。

541* **`experimental` 和 `metadata`**:Claude Code 會忽略非物件值,`claude plugin validate` 會報告警告。554* **`experimental` 和 `metadata`**:Claude Code 會忽略非物件值,`claude plugin validate` 會報告警告。

542 555 

543傳遞 `--strict` 以將警告視為錯誤。在 CI 中使用它來在發佈前捕捉拼寫錯誤的欄位名稱或來自另一個工具資訊清單的遺留欄位,即使 plugin 在執行時會載入。556傳遞 `--strict` 以將警告視為錯誤。在 CI 中使用它來在發佈前捕捉拼寫錯誤的欄位名稱或來自另一個工具 manifest 的遺留欄位,即使 plugin 在執行時會載入。

544 557 

545```bash theme={null}558```bash theme={null}

546claude plugin validate ./my-plugin --strict559claude plugin validate ./my-plugin --strict


551</h3>564</h3>

552 565 

553| 欄位 | 類型 | 說明 | 範例 |566| 欄位 | 類型 | 說明 | 範例 |

554| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |567| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

555| `$schema` | string | JSON Schema URL,用於編輯器自動完成和驗證。Claude Code 在載入時會忽略此欄位。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |568| `$schema` | string | JSON Schema URL,用於編輯器自動完成和驗證。Claude Code 在載入時忽略此欄位。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

556| `displayName` | string | 在 `/plugin` 選擇器和其他 UI 表面中顯示的人類可讀名稱。對於市集安裝的 plugin,[市集項目](/docs/zh-TW/plugin-marketplaces#optional-plugin-fields)上的 `displayName` 優先於此值。當兩個位置都未設定顯示名稱時,使用者會看到 `name`。與 `name` 不同,可包含空格和任何大小寫。不用於命名空間或查詢。 | `"Deployment Tools"` |569| `displayName` | string | 在 `/plugin` 選擇器和其他 UI 表面中顯示的人類可讀名稱。對於 marketplace 安裝的 plugin,[marketplace 項目](/docs/zh-TW/plugin-marketplaces#optional-plugin-fields)上的 `displayName` 優先於此值。當兩個位置都未設定顯示名稱時,使用者會看到 `name`。與 `name` 不同,可以包含空格和任何大小寫。不用於命名空間或查詢。 | `"Deployment Tools"` |

557| `version` | string | 選用。語義版本。設定此項會將 plugin 固定到該版本字串,因此使用者只有在您提升版本時才會收到更新,除了[`command` 來源](/docs/zh-TW/plugin-marketplaces#command-sources)或[載入中的 plugin](#plugin-caching-and-file-resolution) 外;請參閱[版本管理](#version-management)。如果也在市集項目中設定,`plugin.json` 優先。如果省略,版本來自[版本管理](#version-management)中的下一個來源。 | `"2.1.0"` |570| `version` | string | 選用。語義版本。設定此項會將 plugin 固定到該版本字串,因此使用者只有在你提升版本時才會收到更新,除了[`command` source](/docs/zh-TW/plugin-marketplaces#command-sources)或[就地載入](#plugin-caching-and-file-resolution)的 plugin;請參閱[版本管理](#version-management)。如果也在 marketplace 項目中設定,`plugin.json` 優先。如果省略,版本來自[版本管理](#version-management)中的下一個來源。 | `"2.1.0"` |

558| `description` | string | plugin 用途的簡短說明 | `"Deployment automation tools"` |571| `description` | string | plugin 用途的簡要說明 | `"Deployment automation tools"` |

559| `author` | object | 作者資訊 | `{"name": "Dev Team", "email": "dev@company.com"}` |572| `author` | object | 作者資訊 | `{"name": "Dev Team", "email": "dev@company.com"}` |

560| `homepage` | string | 文件 URL | `"https://docs.example.com"` |573| `homepage` | string | 文件 URL | `"https://docs.example.com"` |

561| `repository` | string | 原始碼 URL | `"https://github.com/user/plugin"` |574| `repository` | string | 原始碼 URL | `"https://github.com/user/plugin"` |

562| `license` | string | 授權識別碼 | `"MIT"`、`"Apache-2.0"` |575| `license` | string | 授權識別碼 | `"MIT"`、`"Apache-2.0"` |

563| `keywords` | array | 探索標籤 | `["deployment", "ci-cd"]` |576| `keywords` | array | 探索標籤 | `["deployment", "ci-cd"]` |

564| `metadata` | object | 自由格式物件,用於您自己的資料,例如權利或目錄欄位。Claude Code 不會讀取它,因此值永遠不會影響 plugin 行為。Claude Code 會忽略非物件值,`claude plugin validate` 會將其報告為警告。在 v2.1.222 之前,Claude Code 將金鑰視為[無法識別的欄位](#unrecognized-fields)。 | `{"catalogId": "cat-123"}` |577| `metadata` | object | 自由格式物件,用於你自己的資料,例如權利或目錄欄位。Claude Code 不會讀取它,因此值永遠不會影響 plugin 行為。Claude Code 會忽略非物件值,`claude plugin validate` 會將其報告為警告。在 v2.1.222 之前,Claude Code 將該鍵視為[無法識別的欄位](#unrecognized-fields)。 | `{"catalogId": "cat-123"}` |

565| `defaultEnabled` | boolean | 當使用者未設定時,plugin 是否以啟用狀態開始。預設為 `true`。請參閱[預設啟用](#default-enablement)。 | `false` |578| `defaultEnabled` | boolean | 當使用者未設定時,plugin 是否以啟用狀態開始。預設為 `true`。請參閱[預設啟用](#default-enablement)。 | `false` |

566 579 

567<h3 id="default-enablement">580<h3 id="default-enablement">

568 預設啟用581 預設啟用

569</h3>582</h3>

570 583 

571在 `plugin.json` 中設定 `defaultEnabled: false` 以發佈已停用安裝的 plugin。使用者可使用 `claude plugin enable <plugin>` 或 `/plugin` 介面將其開啟。對於新增成本或使用者應選擇加入的 plugin(例如連接到外部服務的 plugin),請使用此選項。584在 `plugin.json` 中設定 `defaultEnabled: false` 以發佈已停用安裝的 plugin。使用者使用 `claude plugin enable <plugin>` 或 `/plugin` 介面將其開啟。對於新增成本或使用者應選擇加入的 plugin(例如連接到外部服務的 plugin),請使用此選項。

572 585 

573`defaultEnabled` 是當沒有其他因素決定 plugin 狀態時的後備選項。使用者的設定和相依性要求優先於它:586`defaultEnabled` 是當沒有其他因素決定 plugin 狀態時的後備。使用者的設定和依賴項要求優先於它:

574 587 

575* **使用者的設定**:任何設定範圍中 `enabledPlugins` 中的 plugin 項目。一旦寫入,它會在 plugin 更新和重新安裝中持續存在,因此在後續版本中變更 `defaultEnabled` 不會翻轉現有使用者。588* **使用者的設定**:任何設定範圍中 `enabledPlugins` 中的 plugin 項目。一旦寫入,它會在 plugin 更新和重新安裝中持續存在,因此在後續版本中變更 `defaultEnabled` 不會翻轉現有使用者。

576* **相依性要求**:當 plugin 由另一個啟用的 plugin 所需時,Claude Code 會在安裝或啟用時為其寫入 `true`。這給了它明確的設定,因此它自己的預設不再適用。請參閱[啟用或停用具有相依性的 plugin](/docs/zh-TW/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)。589* **依賴項要求**:當 plugin 由另一個活躍的 plugin 要求時,Claude Code 在安裝或啟用時為其寫入 `true`。這給了它一個明確的設定,因此它自己的預設不再適用。請參閱[啟用或停用具有依賴項的 plugin](/docs/zh-TW/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)。

577 590 

578相同欄位也可以出現在 plugin 的市集項目中,其優先於 `plugin.json` 中的值。請參閱[選用 plugin 欄位](/docs/zh-TW/plugin-marketplaces#optional-plugin-fields)。591相同的欄位可以出現在 plugin 的 marketplace 項目中,其優先於 `plugin.json` 中的值。請參閱[選用 plugin 欄位](/docs/zh-TW/plugin-marketplaces#optional-plugin-fields)。

579 592 

580<h3 id="component-path-fields">593<h3 id="component-path-fields">

581 元件路徑欄位594 元件路徑欄位

582</h3>595</h3>

583 596 

584| 欄位 | 類型 | 說明 | 範例 |597| 欄位 | 類型 | 說明 | 範例 |

585| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |598| :---------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

586| `skills` | string\|array | 包含 `<name>/SKILL.md` 的自訂 skill 目錄。新增至預設 `skills/` 掃描。請參閱[路徑行為規則](#path-behavior-rules)以了解市集根目錄例外 | `"./custom/skills/"` |599| `skills` | string\|array | 包含 `<name>/SKILL.md` 的自訂 skill 目錄。新增到預設 `skills/` 掃描。請參閱[路徑行為規則](#path-behavior-rules)以了解 marketplace-root 例外 | `"./custom/skills/"` |

587| `commands` | string\|array | 自訂平面 `.md` skill 檔案或目錄(取代預設 `commands/`) | `"./custom/cmd.md"` 或 `["./cmd1.md"]` |600| `commands` | string\|array | 自訂平面 `.md` skill 檔案或目錄(取代預設 `commands/`) | `"./custom/cmd.md"` 或 `["./cmd1.md"]` |

588| `agents` | string\|array | 自訂代理程式檔案(取代預設 `agents/`) | `"./custom/agents/reviewer.md"` |601| `agents` | string\|array | 自訂 agent 檔案(取代預設 `agents/`) | `"./custom/agents/reviewer.md"` |

589| `workflows` | string\|array | 自訂[工作流程](/docs/zh-TW/workflows)指令檔案或目錄(取代預設 `workflows/`) | `"./custom/workflows/"` |602| `workflows` | string\|array | 自訂[工作流程](/docs/zh-TW/workflows)指令檔案或目錄(取代預設 `workflows/`) | `"./custom/workflows/"` |

590| `hooks` | string\|array\|object | Hook 設定路徑或內嵌設定 | `"./my-extra-hooks.json"` |603| `hooks` | string\|array\|object | Hook 設定路徑或內嵌設定 | `"./my-extra-hooks.json"` |

591| `mcpServers` | string\|array\|object | MCP 設定路徑或內嵌設定 | `"./my-extra-mcp-config.json"` |604| `mcpServers` | string\|array\|object | MCP 設定路徑或內嵌設定 | `"./my-extra-mcp-config.json"` |

592| `outputStyles` | string\|array | 自訂輸出樣式檔案/目錄(取代預設 `output-styles/`) | `"./styles/"` |605| `outputStyles` | string\|array | 自訂輸出樣式檔案/目錄(取代預設 `output-styles/`) | `"./styles/"` |

593| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 設定,用於程式碼智慧(前往定義、尋找參考等) | `"./.lsp.json"` |606| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 設定,用於程式碼智慧(前往定義、尋找參考等) | `"./.lsp.json"` |

594| `experimental.themes` | string\|array | 色彩主題檔案/目錄(取代預設 `themes/`)。請參閱[主題](#themes) | `"./themes/"` |607| `experimental.themes` | string\|array | 色彩主題檔案/目錄(取代預設 `themes/`)。請參閱[主題](#themes) | `"./themes/"` |

595| `experimental.monitors` | string\|array | 當 plugin 啟用時自動啟動的背景 [Monitor](/docs/zh-TW/tools-reference#monitor-tool) 設定。請參閱[監視器](#monitors) | `"./monitors.json"` |608| `experimental.monitors` | string\|array | 當 plugin 活躍時自動啟動的背景 [Monitor](/docs/zh-TW/tools-reference#monitor-tool) 設定。請參閱[監視器](#monitors) | `"./monitors.json"` |

596| `experimental.evals` | string\|array | plugin 根目錄下的目錄,用於保存 plugin 的[評估案例](/docs/zh-TW/plugin-evals#use-a-different-eval-directory),當它不是預設 `evals/` 時。`claude plugin eval --eval-dir` 會覆寫它 | `"quality/evals"` |609| `experimental.evals` | string\|array | plugin 根目錄下的目錄,保存 plugin 的 [eval 案例](/docs/zh-TW/plugin-evals#use-a-different-eval-directory),當它不是預設 `evals/` 時。`claude plugin eval --eval-dir` 會覆蓋它 | `"quality/evals"` |

597| `userConfig` | object | 在啟用時提示的使用者可設定值。請參閱[使用者設定](#user-configuration) | |610| `userConfig` | object | 在啟用時提示的使用者可設定值。請參閱[使用者設定](#user-configuration) | |

598| `channels` | array | 訊息注入的頻道宣告(Telegram、Slack、Discord 樣式)。請參閱[頻道](#channels) | |611| `channels` | array | 訊息注入的頻道宣告(Telegram、Slack、Discord 風格)。請參閱[頻道](#channels) | |

599| `dependencies` | array | 此 plugin 所需的其他 plugin,可選擇使用 semver 版本限制。請參閱[限制 plugin 相依性版本](/docs/zh-TW/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |612| `dependencies` | array | 此 plugin 需要的其他 plugin,可選擇使用 semver 版本限制。請參閱[限制 plugin 依賴項版本](/docs/zh-TW/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

600 613 

601<h3 id="experimental-components">614<h3 id="experimental-components">

602 實驗性元件615 實驗性元件

603</h3>616</h3>

604 617 

605`experimental` 金鑰下的元件 `themes` 和 `monitors` 具有資訊清單架構,該架構可能在版本之間變更,同時它們穩定。您宣告它們的位置是一個單獨的遷移:頂層仍然有效,`claude plugin validate` 發出警告,未來版本將需要 `experimental.*`。618`experimental` 鍵下的元件 `themes` 和 `monitors` 具有在版本之間可能變更的 manifest schema,同時它們穩定。你宣告它們的位置是一個單獨的遷移:頂層仍然有效,`claude plugin validate` 發出警告,未來版本將需要 `experimental.*`。

606 619 

607<h3 id="user-configuration">620<h3 id="user-configuration">

608 使用者設定621 使用者設定


628}641}

629```642```

630 643 

631金鑰必須是有效的識別碼。每個選項支援這些欄位:644鍵必須是有效的識別碼。每個選項支援這些欄位:

632 645 

633| 欄位 | 必要 | 說明 |646| 欄位 | 必需 | 說明 |

634| :------------ | :- | :---------------------------------------------------------------------- |647| :------------ | :- | :--------------------------------------------------------------------------------------------------------------------------- |

635| `type` | 是 | `string`、`number`、`boolean`、`directory` 或 `file` 之一 |648| `type` | 是 | `string`、`number`、`boolean`、`directory` 或 `file` 之一 |

636| `title` | 是 | 在設定對話方塊中顯示的標籤 |649| `title` | 是 | 在設定對話方塊中顯示的標籤 |

637| `description` | 是 | 在欄位下方顯示的說明文字 |650| `description` | 是 | 在欄位下方顯示的說明文字 |

638| `sensitive` | 否 | 如果為 `true`,會遮罩輸入並將值儲存在安全儲存中,而不是 `settings.json` |651| `sensitive` | 否 | 如果為 `true`,會遮罩輸入並將值儲存在安全儲存中而不是 `settings.json` |

639| `required` | 否 | 如果為 `true`,當欄位為空時驗證失敗 |652| `required` | 否 | 如果為 `true`,當欄位為空時驗證失敗 |

640| `default` | 否 | 當使用者未提供任何內容時使用的值 |653| `default` | 否 | 當使用者未提供任何內容時使用的值 |

641| `options` | 否 | 對於 `string` 類型,欄位接受的值,在 `/config` 中顯示為選擇器。需要 Claude Code v2.1.271 或更新版本 |654| `options` | 否 | 對於 `string` 類型,欄位接受的值,在 `/config` 中顯示為它們上的選擇器。請參閱[將欄位限制為固定選項](#limit-a-field-to-fixed-options)。需要 Claude Code v2.1.271 或更新版本 |

642| `multiple` | 否 | 對於 `string` 類型,允許字串陣列 |655| `multiple` | 否 | 對於 `string` 類型,允許字串陣列 |

643| `min` / `max` | 否 | `number` 類型的界限 |656| `min` / `max` | 否 | `number` 類型的邊界 |

644 657 

645除了 `sensitive` 欄位和 `multiple` 清單外,每個啟用 plugin 的每個欄位也會在 `/config` 面板中顯示為一列。這些列需要 Claude Code v2.1.269 或更新版本。658除了 `sensitive` 欄位和 `multiple` 列表,每個啟用 plugin 的每個欄位也會在 `/config` 面板中顯示為一列。這些列需要 Claude Code v2.1.269 或更新版本。

646 659 

647每個值都可用於在 MCP 和 LSP 伺服器設定以及 hook 命令中替換為 `${user_config.KEY}`。非敏感值也可以在 skill 和代理程式內容中替換。所有值都會匯出到 hook 程序作為 `CLAUDE_PLUGIN_OPTION_<KEY>` 環境變數,其中 `<KEY>` 是選項金鑰的大寫版本。660每個值都可用於在 MCP 和 LSP 伺服器設定和 hook 命令中作為 `${user_config.KEY}` 進行替換。非敏感值也可以在 skill 和 agent 內容中替換。所有值都會匯出到 hook 程序作為 `CLAUDE_PLUGIN_OPTION_<KEY>` 環境變數,其中 `<KEY>` 是選項鍵的大寫形式。

648 661 

649在 shell 中執行的欄位會拒絕 `${user_config.*}`:將設定的值替換到 shell 命令中會讓 shell 執行該值包含的任何內容,因此元件會失敗並出現[錯誤](/docs/zh-TW/errors#plugin-command-references-user-config)。每個被拒絕的欄位都有一個替代方式來傳遞值:662在 shell 中執行的欄位拒絕 `${user_config.*}`:將設定值替換到 shell 命令中會讓 shell 執行該值包含的任何內容,因此元件會失敗並出現[錯誤](/docs/zh-TW/errors#plugin-command-references-user-config)。每個被拒絕的欄位都有一個替代方式來傳遞值:

650 663 

651| 被拒絕的欄位 | 如何傳遞值 |664| 被拒絕的欄位 | 如何傳遞值 |

652| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |665| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |


656 669 

657在 v2.1.207 之前,這些欄位替換了 `${user_config.KEY}` 值;更新依賴此功能的 plugin。670在 v2.1.207 之前,這些欄位替換了 `${user_config.KEY}` 值;更新依賴此功能的 plugin。

658 671 

659非敏感值儲存在您的使用者 `settings.json` 中的 [`pluginConfigs`](/docs/zh-TW/settings-reference#pluginconfigs) 金鑰下,作為 `pluginConfigs[<plugin-id>].options`。672非敏感值儲存在你的使用者 `settings.json` 中的 [`pluginConfigs`](/docs/zh-TW/settings-reference#pluginconfigs) 鍵下,作為 `pluginConfigs[<plugin-id>].options`。

660 673 

661在 macOS 上,Claude Code 將敏感值儲存在 macOS Keychain 中,當 Keychain 拒絕寫入時回退到 `~/.claude/.credentials.json`。在沒有支援的 keychain 的平台上,它將它們儲存在 `~/.claude/.credentials.json` 中。Keychain 儲存與 OAuth 令牌共享,總限制約為 2 KB,因此請保持敏感值較小。674在 macOS 上,Claude Code 將敏感值儲存在 macOS Keychain 中,當 Keychain 拒絕寫入時回退到 `~/.claude/.credentials.json`。在沒有支援的 keychain 的平台上,它將它們儲存在 `~/.claude/.credentials.json` 中。Keychain 儲存與 OAuth 令牌共享,總限制約為 2 KB,因此保持敏感值較小。

662 675 

663Claude Code 只從三個設定來源讀取所有 `pluginConfigs` 值:676Claude Code 只從三個設定來源讀取所有 `pluginConfigs` 值:

664 677 


666* **`--settings`**:CLI 旗標或 SDK 內嵌設定679* **`--settings`**:CLI 旗標或 SDK 內嵌設定

667* **受管設定**:[組織控制的原則](/docs/zh-TW/permissions#managed-settings)680* **受管設定**:[組織控制的原則](/docs/zh-TW/permissions#managed-settings)

668 681 

669當多個來源設定相同金鑰時,受管設定優先,然後是 `--settings`,然後是使用者設定。您可以從此清單中移除的唯一來源是使用者設定:傳遞 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 而不包含 `user`,Claude Code 會跳過它們。受管設定和 `--settings` 保持您傳遞的任何內容。SDK 的 [`settingSources`](/docs/zh-TW/agent-sdk/claude-code-features#what-settingsources-does-not-control) 選項設定相同的清單。682當多個來源設定相同的鍵時,受管設定優先,然後是 `--settings`,然後是使用者設定。你可以從此列表中移除的唯一來源是使用者設定:傳遞 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 而不包含 `user`,Claude Code 會跳過它們。受管設定和 `--settings` 保持你傳遞的任何內容。SDK 的 [`settingSources`](/docs/zh-TW/agent-sdk/claude-code-features#what-settingsources-does-not-control) 選項設定相同的列表。

683 

684專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的項目被忽略。兩個檔案都位於工作區中,因此複製的儲存庫可以在那裡提供值,這些值會流入 plugin hook 命令、MCP 伺服器設定、LSP 命令和監視器命令。在 v2.1.207 之前,這些項目被讀取。限制特定於 `pluginConfigs`:[`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 仍然遵守專案和本地設定。

685 

686<h4 id="limit-a-field-to-fixed-options">

687 將欄位限制為固定選項

688</h4>

689 

690在 `userConfig` 欄位上設定 `options` 以讓使用者從固定列表中選擇其值。

691 

692要將 `tone` 欄位限制為三個選項,在 `options` 中列出它們並將 `default` 設定為其中之一:

693 

694```json theme={null}

695{

696 "userConfig": {

697 "tone": {

698 "type": "string",

699 "title": "Tone",

700 "description": "Voice for generated replies",

701 "options": ["neutral", "warm", "formal"],

702 "default": "neutral"

703 }

704 }

705}

706```

707 

708如果你在任何欄位上宣告 `options`,Claude Code v2.1.271 之前版本的使用者無法載入 plugin。

709 

710當你在欄位上設定 `options` 時,遵循這些規則:

711 

712* 將 `type` 設定為 `string`

713* 不要將 `multiple` 或 `sensitive` 設定為 `true`

714* 將 `default` 設定為其中一個選項

715* 如果你不設定 `default`,將 `required` 設定為 `true`

716* 列出至少一個選項,每個 1 到 64 個字元長

717* 不要以空格開始或結束選項

718* 不要在選項中使用控制字元、不可見字元、改變文字方向的字元或除了常規空格以外的空格

719* 不要列出相同的選項兩次,即使是不同的字母大小寫

670 720 

671專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的項目會被忽略。兩個檔案都位於工作區中,因此複製的儲存庫可以在那裡提供值,這些值會流入 plugin hook 命令、MCP 伺服器設定、LSP 命令和監視器命令。在 v2.1.207 之前,這些項目被讀取。限制特定於 `pluginConfigs`:[`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 仍然遵守專案和本機設定。721如果你違反任何這些規則,plugin 無法載入。執行 `claude plugin validate` 以查看哪個欄位違反了哪個規則。

672 722 

673<h3 id="channels">723<h3 id="channels">

674 頻道724 頻道

675</h3>725</h3>

676 726 

677`channels` 欄位讓 plugin 宣告一個或多個訊息頻道,將內容注入對話中。每個頻道繫結到 plugin 提供的 MCP 伺服器。727`channels` 欄位讓 plugin 宣告一個或多個訊息頻道,將內容注入到對話中。每個頻道繫結到 plugin 提供的 MCP 伺服器。

678 728 

679```json theme={null}729```json theme={null}

680{730{


699}749}

700```750```

701 751 

702`server` 欄位是必要的,必須符合 plugin 的 `mcpServers` 中的金鑰。選用的每個頻道 `userConfig` 使用與頂層欄位相同的架構,讓 plugin 在啟用時提示 bot 令牌或擁有者 ID。752`server` 欄位是必需的,必須符合 plugin 的 `mcpServers` 中的鍵。選用的每個頻道 `userConfig` 使用與頂層欄位相同的 schema,讓 plugin 在啟用時提示 bot 令牌或擁有者 ID。

703 753 

704<h3 id="path-behavior-rules">754<h3 id="path-behavior-rules">

705 路徑行為規則755 路徑行為規則


707 757 

708自訂路徑是取代還是擴展 plugin 的預設目錄取決於欄位:758自訂路徑是取代還是擴展 plugin 的預設目錄取決於欄位:

709 759 

710* **取代預設**:`commands`、`agents`、`workflows`、`outputStyles`、`experimental.themes`、`experimental.monitors`。例如,當資訊清單指定 `commands` 時,預設 `commands/` 目錄不會被掃描。若要保留預設並新增更多,請明確列出:`"commands": ["./commands/", "./extras/"]`760* **取代預設**:`commands`、`agents`、`workflows`、`outputStyles`、`experimental.themes`、`experimental.monitors`。例如,當 manifest 指定 `commands` 時,預設 `commands/` 目錄不會被掃描。要保留預設並新增更多,明確列出它:`"commands": ["./commands/", "./extras/"]`

711* **新增至預設**:`skills`。預設 `skills/` 目錄始終被掃描,`skills` 中列出的目錄與其一起載入。例外:對於[其 `source` 解析為市集根目錄的市集項目](/docs/zh-TW/plugin-marketplaces#advanced-plugin-entries),宣告特定子目錄會取代預設 `skills/` 掃描761* **新增到預設**:`skills`。預設 `skills/` 目錄始終被掃描,`skills` 中列出的目錄與它一起載入。例外:對於[其 `source` 解析為 marketplace 根目錄的 marketplace 項目](/docs/zh-TW/plugin-marketplaces#advanced-plugin-entries),宣告特定子目錄會取代預設 `skills/` 掃描

712* **自己的合併規則**:[hooks](#hooks)、[MCP 伺服器](#mcp-servers) 和 [LSP 伺服器](#lsp-servers)。請參閱每個部分以了解多個來源如何結合762* **自己的合併規則**:[hooks](#hooks)、[MCP 伺服器](#mcp-servers) 和 [LSP 伺服器](#lsp-servers)。請參閱每個部分以了解多個來源如何組合

713 763 

714當 plugin 同時具有預設資料夾和相符的資訊清單金鑰時,Claude Code 會在 `claude plugin list` 和 `/plugin` 詳細檢視中警告被忽略的資料夾。plugin 仍會使用資訊清單路徑載入。當資訊清單金鑰指向預設資料夾時,Claude Code 不會警告,例如 `"commands": ["./commands/deploy.md"]`,因為該路徑明確命名資料夾。764當 plugin 同時具有預設資料夾和匹配的 manifest 鍵時,Claude Code 會在 `claude plugin list` 和 `/plugin` 詳細檢視中警告被忽略的資料夾。plugin 仍然使用 manifest 路徑載入。當 manifest 鍵指向預設資料夾時,Claude Code 不會發出警告,例如 `"commands": ["./commands/deploy.md"]`,因為該路徑明確命名了資料夾。

715 765 

716對於所有路徑欄位:766對於所有路徑欄位:

717 767 

718* 所有路徑必須相對於 plugin 根目錄並以 `./` 開頭,除了 `skills` 欄位也接受 `"."`768* 所有路徑必須相對於 plugin 根目錄並以 `./` 開頭,除了 `skills` 欄位也接受 `"."`

719 * `"."` 和 `"./"` 都表示 plugin 根目錄本身769 * `"."` 和 `"./"` 都表示 plugin 根目錄本身

720 * 在 v2.1.221 之前,`"."` 無法通過資訊清單驗證,plugin 無法載入,因此使用 `"./"` 以支援較早版本770 * 在 v2.1.221 之前,`"."` 無法通過 manifest 驗證,plugin 無法載入,因此使用 `"./"` 以支援較早版本

721* 來自自訂路徑的元件使用相同的命名和命名空間規則771* 來自自訂路徑的元件使用相同的命名和命名空間規則,除了 agent 檔案。請參閱 [Agents](#agents) 以了解 agent 名稱如何運作

722* 多個路徑可以指定為陣列772* 多個路徑可以指定為陣列

723* skill 路徑可以指向直接包含 `SKILL.md` 的目錄,例如 `"skills": ["."]` 用於 plugin 根目錄773* skill 路徑可以指向直接包含 `SKILL.md` 的目錄,例如 `"skills": ["."]` 用於 plugin 根目錄

724 * Claude Code 從 `SKILL.md` 中的前置事項 `name` 欄位取得 skill 的呼叫名稱,因此無論安裝目錄名稱如何,名稱保持穩定774 * Claude Code 從 `SKILL.md` 中的 frontmatter `name` 欄位取得 skill 的呼叫名稱,因此無論安裝目錄名稱如何,名稱保持穩定

725 * 如果前置事項中未設定 `name`,Claude Code 會回退到目錄基底名稱775 * 如果 frontmatter 中未設定 `name`,Claude Code 會回退到目錄基名

726 776 

727具有根目錄中 `SKILL.md`、沒有 `skills/` 子目錄且沒有 `skills` 資訊清單欄位的 plugin 會自動載入為單一 skill plugin。您不需要為此配置在 `plugin.json` 中設定 `"skills": ["./"]`。777具有根目錄中的 `SKILL.md`、沒有 `skills/` 子目錄且沒有 `skills` manifest 欄位的 plugin 會自動載入為單一 skill plugin。對於此佈局,你不需要在 `plugin.json` 中設定 `"skills": ["./"]`。

728 778 

729**路徑範例**:779**路徑範例**:

730 780 


750| 變數 | 解析為 | 用途 |800| 變數 | 解析為 | 用途 |

751| :---------------------- | :--------------------------------------------------------- | :------------------------------------------------ |801| :---------------------- | :--------------------------------------------------------- | :------------------------------------------------ |

752| `${CLAUDE_PLUGIN_ROOT}` | plugin 安裝目錄的絕對路徑 | 與 plugin 捆綁的指令碼、二進位檔案和設定檔 |802| `${CLAUDE_PLUGIN_ROOT}` | plugin 安裝目錄的絕對路徑 | 與 plugin 捆綁的指令碼、二進位檔案和設定檔 |

753| `${CLAUDE_PLUGIN_DATA}` | [持續目錄](#persistent-data-directory),在首次參考時建立,在 plugin 更新中存活 | 已安裝的相依性,例如 `node_modules` 或 Python 虛擬環境、產生的程式碼和快取 |803| `${CLAUDE_PLUGIN_DATA}` | [持久目錄](#persistent-data-directory),在首次參考時建立,在 plugin 更新中存活 | 已安裝的依賴項,例如 `node_modules` 或 Python 虛擬環境、生成的程式碼和快取 |

754| `${CLAUDE_PROJECT_DIR}` | 專案根目錄 | 專案本機指令碼和設定檔 |804| `${CLAUDE_PROJECT_DIR}` | 專案根目錄 | 專案本地指令碼和設定檔 |

755 805 

756所有三個都匯出為環境變數到 hook 程序以及 MCP 和 LSP 伺服器子程序。它們不存在於 Claude 透過 Bash 工具執行的命令環境中,無論是在主工作階段或子代理中。在 plugin 內容中,寫入預留位置,Claude Code 會在載入內容時內嵌替換路徑。哪些欄位內嵌替換它們取決於 plugin 元件:806所有三個都匯出為環境變數到 hook 程序和 MCP 及 LSP 伺服器子程序。它們不存在於 Claude 通過 Bash 工具執行的命令環境中,無論是在主工作階段還是在子 agent 中。在 plugin 內容中,寫入佔位符,Claude Code 在載入內容時內嵌替換路徑。哪些欄位內嵌替換它們取決於 plugin 元件:

757 807 

758| Plugin 元件 | 預留位置解析的欄位 |808| Plugin 元件 | 佔位符解析的欄位 |

759| :------------------------ | :--------------------------------------- |809| :------------------------ | :--------------------------------------- |

760| Skill 和代理程式內容 | 預留位置出現的任何位置 |810| Skill 和 agent 內容 | 佔位符出現的任何地方 |

761| Hook 和監視器命令 | 預留位置出現的任何位置 |811| Hook 和監視器命令 | 佔位符出現的任何地方 |

762| MCP `stdio` 伺服器 | `command`、`args`、`env` |812| MCP `stdio` 伺服器 | `command`、`args`、`env` |

763| MCP `http`、`sse`、`ws` 伺服器 | `url`、`headers`、`headersHelper` |813| MCP `http`、`sse`、`ws` 伺服器 | `url`、`headers`、`headersHelper` |

764| LSP 伺服器 | `command`、`args`、`env`、`workspaceFolder` |814| LSP 伺服器 | `command`、`args`、`env`、`workspaceFolder` |

765 815 

766在 hook 命令中,使用[執行形式](/docs/zh-TW/hooks#exec-form-and-shell-form)搭配 `args`,以便每個路徑作為一個引數傳遞,無需引號。在 shell 形式 hook 和監視器命令中,用雙引號包裝變數,如 `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`。此 shell 形式 hook 執行與 plugin 捆綁的指令碼:816在 hook 命令中,使用[執行形式](/docs/zh-TW/hooks#exec-form-and-shell-form)搭配 `args`,以便每個路徑作為一個引數傳遞,不需要引號。在 shell 形式 hook 和監視器命令中,用雙引號包裝變數,如 `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`。此 shell 形式 hook 執行與 plugin 捆綁的指令碼:

767 817 

768```json theme={null}818```json theme={null}

769{819{


782}832}

783```833```

784 834 

785對於複製的 plugin,`${CLAUDE_PLUGIN_ROOT}` 在 plugin 更新時變更。前一個版本的目錄在更新後的寬限期內保留在磁碟上,但將其視為暫時的,不要在那裡寫入狀態。請參閱 [plugin 快取](#plugin-caching-and-file-resolution)以了解哪些 plugin 被複製以及清理語義。835對於複製的 plugin,`${CLAUDE_PLUGIN_ROOT}` 在 plugin 更新時變更。前一個版本的目錄在更新後的寬限期內保留在磁碟上,但將其視為暫時的,不要在那裡寫入狀態。對於從本地目錄 marketplace 就地載入的 plugin,變數指向穩定的來源目錄。請參閱 [plugin 快取](#plugin-caching-and-file-resolution)以了解哪些 plugin 被複製以及清理語義。

786 836 

787當複製的 plugin 在工作階段中期更新時,hook 命令、監視器、MCP 伺服器和 LSP 伺服器繼續使用前一個版本的路徑。執行 `/reload-plugins` 以將 hook、MCP 伺服器和 LSP 伺服器切換到新路徑;監視器需要工作階段重新啟動。在沒有互動式終端的工作階段中,重新載入會將 plugin MCP 伺服器保留在舊路徑上,直到下一個工作階段。837當複製的 plugin 在工作階段中途更新時,hook 命令、監視器、MCP 伺服器和 LSP 伺服器繼續使用前一個版本的路徑。執行 `/reload-plugins` 以將 hook、MCP 伺服器和 LSP 伺服器切換到新路徑;監視器需要工作階段重新啟動。在沒有互動式終端的工作階段中,重新載入會將 plugin MCP 伺服器保留在舊路徑上,直到下一個工作階段。

788 838 

789對於具有 `command` 來源的 plugin,Claude Code [可以重新載入 plugin 本身](/docs/zh-TW/plugin-marketplaces#when-claude-code-re-runs-the-command)。839對於具有 `command` source 的 plugin,Claude Code [可以重新載入 plugin 本身](/docs/zh-TW/plugin-marketplaces#when-claude-code-re-runs-the-command)。

790 840 

791MCP 伺服器也可以呼叫 `roots/list` 要求以在執行時讀取工作階段的工作目錄。請參閱 [`roots/list` 傳回的內容以及 Claude Code 何時通知伺服器變更](/docs/zh-TW/mcp#option-3-add-a-local-stdio-server)。841MCP 伺服器也可以呼叫 `roots/list` 請求以在執行時讀取工作階段的工作目錄。請參閱[`roots/list` 返回的內容以及 Claude Code 何時通知伺服器變更](/docs/zh-TW/mcp#option-3-add-a-local-stdio-server)。

792 842 

793<h4 id="persistent-data-directory">843<h4 id="persistent-data-directory">

794 持續資料目錄844 持久資料目錄

795</h4>845</h4>

796 846 

797`${CLAUDE_PLUGIN_DATA}` 目錄解析為 `~/.claude/plugins/data/{id}/`,其中 `{id}` 是 plugin 識別碼,其中 `a-z`、`A-Z`、`0-9`、`_` 和 `-` 以外的字元被替換為 `-`。對於安裝為 `formatter@my-marketplace` 的 plugin,目錄是 `~/.claude/plugins/data/formatter-my-marketplace/`。847`${CLAUDE_PLUGIN_DATA}` 目錄解析為 `~/.claude/plugins/data/{id}/`,其中 `{id}` 是 plugin 識別碼,其中 `a-z`、`A-Z`、`0-9`、`_` 和 `-` 以外的字元被替換為 `-`。對於安裝為 `formatter@my-marketplace` 的 plugin,目錄是 `~/.claude/plugins/data/formatter-my-marketplace/`。

798 848 

799常見用途是一次安裝語言相依性並在工作階段和 plugin 更新中重複使用它們。將其用於 Python 相依性、使用 Yarn 或 pnpm 鎖定的相依性,以及其生命週期指令碼必須執行的套件。對於市集安裝的 plugin,您可能根本不需要它:Claude Code 在快取 plugin 時會自動安裝符合條件的 [Node.js 套件相依性](#node-js-package-dependencies)。849常見用途是一次安裝語言依賴項並在工作階段和 plugin 更新中重複使用它們。將其用於 Python 依賴項、使用 Yarn 或 pnpm 鎖定的依賴項以及其生命週期指令碼必須執行的套件。對於 marketplace 安裝的 plugin,你可能根本不需要它:Claude Code 在快取 plugin 時自動安裝符合條件的 [Node.js 套件依賴項](#node-js-package-dependencies)。

800 850 

801因為資料目錄的壽命超過任何單一 plugin 版本,單獨檢查目錄存在無法偵測當更新變更 plugin 的相依性資訊清單時。建議的模式是比較捆綁的資訊清單與資料目錄中的副本,並在它們不同時重新安裝。851因為資料目錄的壽命超過任何單一 plugin 版本,單獨檢查目錄存在無法偵測當更新變更 plugin 的依賴項 manifest 時。建議的模式是比較捆綁的 manifest 與資料目錄中的副本,並在它們不同時重新安裝。

802 852 

803此 `SessionStart` hook 在首次執行時安裝 `node_modules`,並在 plugin 更新包含變更的 `package.json` 時再次安裝:853此 `SessionStart` hook 在首次執行時安裝 `node_modules`,並在 plugin 更新包含變更的 `package.json` 時再次安裝:

804 854 


819}869}

820```870```

821 871 

822`diff` 在儲存的副本遺失或與捆綁的副本不同時以非零值退出,涵蓋首次執行和相依性變更更新。如果 `npm install` 失敗,尾部 `rm` 會移除複製的資訊清單,以便下一個工作階段重試。872`diff` 在儲存的副本遺失或與捆綁的副本不同時以非零值退出,涵蓋首次執行和依賴項變更更新。如果 `npm install` 失敗,尾部 `rm` 會移除複製的 manifest,以便下一個工作階段重試。

823 873 

824捆綁在 `${CLAUDE_PLUGIN_ROOT}` 中的指令碼可以針對持續的 `node_modules` 執行:874然後在 `${CLAUDE_PLUGIN_ROOT}` 中捆綁的指令碼可以針對持久的 `node_modules` 執行:

825 875 

826```json theme={null}876```json theme={null}

827{877{


837}887}

838```888```

839 889 

840當您從最後一個安裝 plugin 的範圍卸載 plugin 時,資料目錄會自動刪除。`/plugin` 介面顯示目錄大小並在刪除前提示。CLI 預設刪除;傳遞 [`--keep-data`](#plugin-uninstall) 以保留它。890當你從最後一個安裝它的範圍卸載 plugin 時,資料目錄會自動刪除。`/plugin` 介面顯示目錄大小並在刪除前提示。CLI 預設刪除;傳遞 [`--keep-data`](#plugin-uninstall) 以保留它。

841 891 

842***892***

843 893 


957├── agents/ # Subagent 定義1007├── agents/ # Subagent 定義

958│ ├── security-reviewer.md1008│ ├── security-reviewer.md

959│ ├── performance-tester.md1009│ ├── performance-tester.md

960│ └── compliance-checker.md1010│ ├── compliance-checker.md

1011│ └── review/ # 此處的 Agents 載入為 enterprise-plugin:review:<name>

1012│ └── accessibility.md

961├── workflows/ # Workflow 指令碼1013├── workflows/ # Workflow 指令碼

962│ └── release-audit.js1014│ └── release-audit.js

963├── output-styles/ # 輸出樣式定義1015├── output-styles/ # 輸出樣式定義


997| **資訊清單** | `.claude-plugin/plugin.json` | Plugin 中繼資料和設定(選用) |1049| **資訊清單** | `.claude-plugin/plugin.json` | Plugin 中繼資料和設定(選用) |

998| **Skills** | `skills/` | 具有 `<name>/SKILL.md` 結構的 Skills |1050| **Skills** | `skills/` | 具有 `<name>/SKILL.md` 結構的 Skills |

999| **Commands** | `commands/` | Skills 作為平面 Markdown 檔案。新 plugins 請使用 `skills/` |1051| **Commands** | `commands/` | Skills 作為平面 Markdown 檔案。新 plugins 請使用 `skills/` |

1000| **Agents** | `agents/` | Subagent Markdown 檔案 |1052| **Agents** | `agents/` | Subagent Markdown 檔案。子資料夾是 [agent 名稱](#agents) 的一部分 |

1001| **Workflows** | `workflows/` | [Workflow](/docs/zh-TW/workflows) 指令碼檔案 |1053| **Workflows** | `workflows/` | [Workflow](/docs/zh-TW/workflows) 指令碼檔案 |

1002| **輸出樣式** | `output-styles/` | 輸出樣式定義 |1054| **輸出樣式** | `output-styles/` | 輸出樣式定義 |

1003| **主題** | `themes/` | 色彩主題定義 |1055| **主題** | `themes/` | 色彩主題定義 |

Details

96 96 

97[`opusplan` 模型設定](/docs/zh-TW/model-config#opusplan-model-setting)在計畫模式期間解析為 Opus,在執行期間解析為 Sonnet,因此每次計畫模式切換都是模型切換並啟動新的快取。97[`opusplan` 模型設定](/docs/zh-TW/model-config#opusplan-model-setting)在計畫模式期間解析為 Opus,在執行期間解析為 Sonnet,因此每次計畫模式切換都是模型切換並啟動新的快取。

98 98 

99[自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 模型和 Opus 5 上也是模型切換。當安全分類器在具有回退模型的類別中標記請求時,Claude Code 會在該模型上重新執行請求,並且工作階段會在那裡繼續。99[自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 模型、Opus 5.5 和 Opus 5 上也是模型切換。當安全分類器在具有回退模型的類別中標記請求時,Claude Code 會在該模型上重新執行請求,並且工作階段會在那裡繼續。

100 100 

101當技能或命令的前置資料命名一個[`model`](/docs/zh-TW/skills#frontmatter-reference)不同於工作階段目前模型時,該回合也是模型切換:下一個請求會讀取整個對話歷史記錄而沒有快取命中。工作階段模型會在您的下一個提示時繼續。`context: fork` 技能會設定[分叉子代理的模型](/docs/zh-TW/skills#run-skills-in-a-subagent)。101當技能或命令的前置資料命名一個[`model`](/docs/zh-TW/skills#frontmatter-reference)不同於工作階段目前模型時,該回合也是模型切換:下一個請求會讀取整個對話歷史記錄而沒有快取命中。工作階段模型會在您的下一個提示時繼續。`context: fork` 技能會設定[分叉子代理的模型](/docs/zh-TW/skills#run-skills-in-a-subagent)。

102 102 

Details

1384* [Anthropic 團隊如何使用 Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code):來自工程、產品、設計和資料團隊的真實工作流程,深入探討[法律](https://claude.com/blog/how-anthropic-uses-claude-legal)、[行銷](https://claude.com/blog/how-anthropic-uses-claude-marketing)和[網路安全](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)1384* [Anthropic 團隊如何使用 Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code):來自工程、產品、設計和資料團隊的真實工作流程,深入探討[法律](https://claude.com/blog/how-anthropic-uses-claude-legal)、[行銷](https://claude.com/blog/how-anthropic-uses-claude-marketing)和[網路安全](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)

1385* [擴展代理編碼指南](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf):企業採用指南1385* [擴展代理編碼指南](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf):企業採用指南

1386 1386 

1387如需這些模式的影片演練,請參閱 Anthropic Academy 上的免費 [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action) 課程。1387如需這些模式的影片演練,請參閱 [Claude Academy](https://academy.claude.com/) 上的免費 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action) 課程。

1388 1388 

1389<h2 id="related-resources">1389<h2 id="related-resources">

1390 相關資源1390 相關資源

quickstart.md +2 −1

Details

377 獲取幫助377 獲取幫助

378</h2>378</h2>

379 379 

380* **在 Claude Code 中**:輸入 `/help` 或詢問「how do I...」380* **在 Claude Code 中**:輸入 `/help` 或詢問「how do I」問題

381* **文件**:您在這裡!瀏覽其他指南381* **文件**:您在這裡!瀏覽其他指南

382* **課程**:參加 [Claude Code 101](https://academy.claude.com/courses/claude-code-101) 和其他免費自學課程,位於 [Claude Academy](https://academy.claude.com/)

382* **社群**:加入我們的 [Discord](https://www.anthropic.com/discord) 以獲取提示和支援383* **社群**:加入我們的 [Discord](https://www.anthropic.com/discord) 以獲取提示和支援

Details

187* **使用 `/teleport` 拉取會話**:當您使用 `/teleport` 將[雲端會話](/docs/zh-TW/claude-code-on-the-web#from-cloud-to-terminal)拉入您的終端機時,連接的裝置不會接收拉取的對話的較早歷史記錄。雙向的新訊息會進出拉取的對話,該對話現在是您的終端機中開啟的對話。187* **使用 `/teleport` 拉取會話**:當您使用 `/teleport` 將[雲端會話](/docs/zh-TW/claude-code-on-the-web#from-cloud-to-terminal)拉入您的終端機時,連接的裝置不會接收拉取的對話的較早歷史記錄。雙向的新訊息會進出拉取的對話,該對話現在是您的終端機中開啟的對話。

188* **來自您其他會話的訊息**:使用[跨會話訊息](/docs/zh-TW/cross-session-messaging),相同的連接會在不同機器上的您自己的會話之間以及來自您的[雲端會話](/docs/zh-TW/claude-code-on-the-web)的訊息,通過 Anthropic 伺服器(如 Remote Control 流量的其餘部分)進行傳遞。[在其他機器上的訊息會話](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)涵蓋傳遞規則,[控制入站訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)涵蓋入站控制。需要 Claude Code v2.1.224 或更新版本。188* **來自您其他會話的訊息**:使用[跨會話訊息](/docs/zh-TW/cross-session-messaging),相同的連接會在不同機器上的您自己的會話之間以及來自您的[雲端會話](/docs/zh-TW/claude-code-on-the-web)的訊息,通過 Anthropic 伺服器(如 Remote Control 流量的其餘部分)進行傳遞。[在其他機器上的訊息會話](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)涵蓋傳遞規則,[控制入站訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)涵蓋入站控制。需要 Claude Code v2.1.224 或更新版本。

189* **您在回合中途發送的提示**:當您在目前回合結束之前從連接的裝置發送提示時,Claude Code 會將其排隊,並在該回合完成後將其保留在裝置的文字記錄中。189* **您在回合中途發送的提示**:當您在目前回合結束之前從連接的裝置發送提示時,Claude Code 會將其排隊,並在該回合完成後將其保留在裝置的文字記錄中。

190* **您的變更的差異**:當會話的目錄在 git 儲存庫中時,連接的裝置的差異窗格會顯示您未提交變更的差異。該裝置通過連接請求差異,Claude Code 在您的機器上計算它。當您的工作樹是乾淨的時,Claude Code 改為提供您的分支自從它從預設分支分歧以來的變更。在 v2.1.247 之前,Claude Code 只向由 `claude remote-control` 提供的會話中的連接的裝置報告差異。190* **您的變更的差異**:當會話的目錄在 git 儲存庫中時,連接的裝置的差異窗格會顯示您的變更。該裝置通過連接請求差異,Claude Code 在您的機器上計算它。在有提交領先儲存庫預設分支的分支上,窗格會顯示自分支從它分歧以來的變更,包括您未提交的編輯。在預設分支本身上,或在沒有領先它的分支上,窗格只會顯示您未提交的變更。在 v2.1.247 之前,Claude Code 只向由 `claude remote-control` 提供的會話中的連接的裝置報告差異。

191* **模型**:當您從連接的裝置選擇[模型](/docs/zh-TW/model-config)時,Claude Code 會在該模型上執行會話。終端機的 `/model` 選擇器、`/status` 和 `/config` 會顯示該模型。需要 Claude Code v2.1.238 或更新版本。191* **模型**:當您從連接的裝置選擇[模型](/docs/zh-TW/model-config)時,Claude Code 會在該模型上執行會話。終端機的 `/model` 選擇器、`/status` 和 `/config` 會顯示該模型。需要 Claude Code v2.1.238 或更新版本。

192 * 您從裝置的模型控制中選擇的模型只適用於目前會話。當您從裝置向互動式會話發送 `/model <name>` 時,Claude Code 也會為新會話設定您的預設值。192 * 您從裝置的模型控制中選擇的模型只適用於目前會話。當您從裝置向互動式會話發送 `/model <name>` 時,Claude Code 也會為新會話設定您的預設值。

193 * 如果您發送 Claude Code 無法識別的名稱,例如預期模型 ID 的顯示名稱,Claude Code [拒絕選擇](/docs/zh-TW/errors#model-is-not-a-recognized-model-id),會話會保留其目前的模型。在 v2.1.260 之前,Claude Code 會儲存來自裝置的模型控制的無法識別的選擇,您的下一條訊息會失敗。193 * 如果您發送 Claude Code 無法識別的名稱,例如預期模型 ID 的顯示名稱,Claude Code [拒絕選擇](/docs/zh-TW/errors#model-is-not-a-recognized-model-id),會話會保留其目前的模型。在 v2.1.260 之前,Claude Code 會儲存來自裝置的模型控制的無法識別的選擇,您的下一條訊息會失敗。

sandboxing.md +59 −51

Details

16 開始使用16 開始使用

17</h2>17</h2>

18 18 

19沙箱內建於 Claude Code 中,在 macOS、Linux 和 WSL2 上執行。不支援原生 Windows。在 Windows 上,在 WSL2 發行版內執行 Claude Code。19sandbox 內建於 Claude Code 中,可在 macOS、Linux 和 WSL2 上執行。不支援原生 Windows。在 Windows 上,請在 WSL2 發行版中執行 Claude Code。

20 20 

21在 macOS 上,無需安裝任何內容:沙箱化使用內建的 Seatbelt 框架。在 Linux 和 WSL2 上,沙箱依賴於兩個套件,詳見 [Set up Linux and WSL2](#set-up-linux-and-wsl2)。即使您還沒有安裝它們,您也可以從 `/sandbox` 開始,因為其面板會顯示是否缺少任何內容。21在 macOS 上,無需安裝任何內容:sandboxing 使用內建的 Seatbelt 框架。在 Linux 和 WSL2 上,sandbox 依賴於兩個套件,詳見[設定 Linux 和 WSL2](#set-up-linux-and-wsl2)。即使您尚未安裝這些套件,也可以開始使用 `/sandbox`,因為其面板會顯示是否缺少任何內容。

22 22 

23<Steps>23<Steps>

24 <Step title="執行 /sandbox">24 <Step title="執行 /sandbox">


28 /sandbox28 /sandbox

29 ```29 ```

30 30 

31 這會開啟沙箱面板,有三個標籤,以及當可選的 seccomp 過濾器缺失時 Linux 上的 Dependencies 標籤:31 這會開啟 sandbox 面板,包含三個標籤,以及在 Linux 上缺少選用 seccomp 篩選器時的 Dependencies 標籤:

32 32 

33 * **Mode**:選擇沙箱化命令的批准方式,詳見下一步33 * **Mode**:選擇如何核准 sandboxed 命令,詳見下一步

34 * **Overrides**:選擇在沙箱下失敗的命令是否可以回退到執行未沙箱化。這是 [`allowUnsandboxedCommands`](/docs/zh-TW/settings-reference#sandbox-allowunsandboxedcommands) 設定34 * **Overrides**:選擇在 sandbox 下失敗的命令是否可以回退到執行 unsandboxed。這是 [`allowUnsandboxedCommands`](/docs/zh-TW/settings-reference#sandbox-allowunsandboxedcommands) 設定

35 * **Config**:檢視已解析的沙箱設定35 * **Config**:檢視已解析的 sandbox 設定

36 36 

37 如果面板只顯示 Dependencies 標籤,則缺少必需的套件。按照 [Set up Linux and WSL2](#set-up-linux-and-wsl2) 中的說明安裝它,重新啟動 Claude Code,然後再次執行 `/sandbox`。37 如果面板只顯示 Dependencies 標籤,表示缺少必需的套件。按照[設定 Linux 和 WSL2](#set-up-linux-and-wsl2) 中的說明安裝它,重新啟動 Claude Code,然後再次執行 `/sandbox`。

38 </Step>38 </Step>

39 39 

40 <Step title="選擇一個模式">40 <Step title="選擇一個模式">

41 在 Mode 標籤上,選擇自動允許或常規權限。自動允許在不提示的情況下執行沙箱化命令,常規權限即使命令沙箱化也保持常規權限提示。請參閱 [Sandbox modes](#sandbox-modes) 了解在自動允許模式中仍然提示的命令。41 在 Mode 標籤上,選擇自動允許或一般權限。自動允許會執行 sandboxed 命令而不提示,一般權限則即使在命令被 sandboxed 時也保持一般權限提示。請參閱[Sandbox 模式](#sandbox-modes),了解在自動允許模式下仍會提示哪些命令。

42 </Step>42 </Step>

43 43 

44 <Step title="執行 Bash 命令">44 <Step title="執行 Bash 命令">

45 要求 Claude 執行命令,例如構建或測試套件。預設情況下,沙箱內的命令可以寫入工作目錄、工作階段暫存目錄,以及任何您使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` [新增的目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。命令首次需要新的網路域時,Claude Code 會提示批准;在 [auto mode](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中,Claude 改為在命令本身上命名該命令需要的主機 [on the command itself](#per-command-allowed-domains-in-auto-mode),供分類器與其一起檢查。45 要求 Claude 執行命令,例如建置或測試套件。根據預設,sandbox 內的命令可以寫入工作目錄、工作階段暫存目錄,以及任何[您使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。

46 46 

47 無法沙箱化執行的命令會回退到常規權限流程。Claude Code 將其權限提示標題為「Bash command (unsandboxed)」而不是「Bash command」,因此您可以判斷哪些命令在沙箱外執行。若要擴大或縮小沙箱允許的內容,請參閱 [Configure sandboxing](#configure-sandboxing)。47 命令首次需要新的網路網域時,Claude Code 會提示核准;在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 改為在[命令本身](#per-command-allowed-domains-in-auto-mode)上命名命令需要的主機,供分類器與其一起檢閱。

48 48 

49 如果沙箱化命令在容器內因 `Operation not permitted` 失敗,請參閱 [Troubleshooting](#troubleshooting) 下的 Bubblewrap 項目。49 無法 sandboxed 執行的命令會回退到一般權限流程。Claude Code 將其權限提示標題為「Bash 命令 (unsandboxed)」而不是「Bash 命令」,因此您可以判斷哪些命令在 sandbox 外執行。若要擴大或縮小 sandbox 允許的範圍,請參閱[設定 sandboxing](#configure-sandboxing)。

50 

51 如果 sandboxed 命令在容器內因 `Operation not permitted` 而失敗,請參閱[疑難排解](#troubleshooting)下的 Bubblewrap 項目。

50 </Step>52 </Step>

51</Steps>53</Steps>

52 54 

53在面板中選擇模式時,Claude Code 會將其儲存到您專案的本地設定 `.claude/settings.local.json`,這適用於目前專案。Claude Code 在那裡儲存設定時會將該檔案新增到您的全域 gitignore。若要在所有專案中啟用沙箱,請在 `~/.claude/settings.json` 的使用者設定中將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true`。若要為組織中的每個開發人員強制執行沙箱化,請使用 [managed settings](#enforce-sandboxing-with-managed-settings)。55當您在面板中選擇一個模式時,Claude Code 會將其儲存到您專案的本機設定 `.claude/settings.local.json`,該設定適用於目前專案。Claude Code 在那裡儲存設定時會將該檔案新增到您的全域 gitignore。若要在所有專案中啟用 sandbox,請在使用者設定 `~/.claude/settings.json` 中將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true`。若要為組織中的每個開發人員強制執行 sandboxing,請使用[受管設定](#enforce-sandboxing-with-managed-settings)。

54 56 

55若要在一個工作階段中變更沙箱而不寫入設定檔,請使用 [`--settings`](/docs/zh-TW/settings#change-a-setting-for-one-session) 啟動 Claude Code。例如,此命令啟動一個沙箱化工作階段,其中 Claude 無法在沙箱外重試被阻止的命令:57若要在一個工作階段中變更 sandbox 而不寫入設定檔,請使用 [`--settings`](/docs/zh-TW/settings#change-a-setting-for-one-session) 啟動 Claude Code。例如,此命令啟動一個 sandboxed 工作階段,其中 Claude 無法在 sandbox 外重試被阻止的命令:

56 58 

57```bash theme={null}59```bash theme={null}

58claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'60claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'

59```61```

60 62 

61<Warning>63<Warning>

62 預設情況下,如果沙箱因缺少依賴項或不支援的平台而無法啟動,Claude Code 會顯示警告並在沒有沙箱化的情況下執行命令。若要改為將其設為硬失敗,請將 [`sandbox.failIfUnavailable`](/docs/zh-TW/settings-reference#sandbox-failifunavailable) 設定為 `true`。這適用於需要沙箱化作為安全閘道的受管部署。64 根據預設,如果 sandbox 因缺少相依性或平台不受支援而無法啟動,Claude Code 會顯示警告並執行命令而不進行 sandboxing。若要改為將其設為硬失敗,請將 [`sandbox.failIfUnavailable`](/docs/zh-TW/settings-reference#sandbox-failifunavailable) 設定為 `true`。這適用於需要 sandboxing 作為安全閘道的受管部署。

63</Warning>65</Warning>

64 66 

65<h3 id="set-up-linux-and-wsl2">67<h3 id="set-up-linux-and-wsl2">

66 設定 Linux 和 WSL268 設定 Linux 和 WSL2

67</h3>69</h3>

68 70 

69在 Linux 和 WSL2 上,沙箱依賴於兩個套件:71在 Linux 和 WSL2 上,sandbox 依賴於兩個套件:

70 72 

71* [`bubblewrap`](https://github.com/containers/bubblewrap):無特權沙箱化工具,強制執行檔案系統隔離73* [`bubblewrap`](https://github.com/containers/bubblewrap):強制檔案系統隔離的無特權 sandboxing 工具

72* [`socat`](http://www.dest-unreach.org/socat/):用於通過沙箱代理路由網路流量的中繼74* [`socat`](http://www.dest-unreach.org/socat/):用於透過 sandbox 代理路由網路流量的中繼

73 75 

74使用您發行版的套件管理器安裝它們:76使用您發行版的套件管理員安裝它們:

75 77 

76<Tabs>78<Tabs>

77 <Tab title="Ubuntu/Debian">79 <Tab title="Ubuntu/Debian">


87 </Tab>89 </Tab>

88</Tabs>90</Tabs>

89 91 

90當依賴項缺失時,`/sandbox` 中的 Dependencies 標籤會列出您的平台缺少 `ripgrep`、`bubblewrap`、`socat` 和 seccomp 過濾器中的哪些。如果在安裝並重新啟動 Claude Code 後沒有看到該標籤,則所有依賴項都已存在。92當缺少相依性時,`/sandbox` 中的 Dependencies 標籤會列出您的平台缺少 `ripgrep`、`bubblewrap`、`socat` 和 seccomp 篩選器中的哪些。如果安裝並重新啟動 Claude Code 後沒有看到該標籤,表示所有相依性都已存在。

91 93 

92Ripgrep 與原生 Claude Code 二進位檔案一起打包。seccomp 過濾器是可選的,增加 Unix 域套接字阻止。如果缺少,請使用 `npm install -g @anthropic-ai/sandbox-runtime` 安裝它。94Ripgrep 與原生 Claude Code 二進位檔案一起打包。seccomp 篩選器是選用的,可新增 Unix 網域套接字阻止。如果缺少,請使用 `npm install -g @anthropic-ai/sandbox-runtime` 安裝它。

93 95 

94當缺少必需的依賴項時,Dependencies 標籤是唯一顯示的標籤,直到您安裝它。當只有可選的 seccomp 過濾器缺失時,Dependencies 標籤會與其他標籤一起出現。依賴項檢查在啟動時執行,因此在安裝套件後重新啟動 Claude Code,以便 `/sandbox` 檢測到它們。96當缺少必需的相依性時,Dependencies 標籤是唯一顯示的標籤,直到您安裝它。當只缺少選用的 seccomp 篩選器時,Dependencies 標籤會與其他標籤一起出現。相依性檢查在啟動時執行,因此在安裝套件後重新啟動 Claude Code,以便 `/sandbox` 偵測到它們。

95 97 

96<AccordionGroup>98<AccordionGroup>

97 <Accordion title="Ubuntu 24.04 及更新版本:允許 bubblewrap 建立使用者命名空間">99 <Accordion title="Ubuntu 24.04 及更新版本:允許 bubblewrap 建立使用者命名空間">

98 在 Ubuntu 24.04 及更新版本上,預設 AppArmor 策略防止 bubblewrap 建立隔離所需的使用者命名空間。100 在 Ubuntu 24.04 及更新版本上,預設 AppArmor 原則會防止 bubblewrap 建立隔離所需的使用者命名空間。

99 101 

100 若要檢查您的環境(包括 WSL2 內)是否強制執行此限制,請執行 `sysctl kernel.apparmor_restrict_unprivileged_userns`。如果命令傳回 `0`,請跳過此步驟。如果列印 `No such file or directory` 錯誤,金鑰不存在,您可以跳過此步驟。如果傳回 `1`,請新增授予 `bwrap` 此功能的 AppArmor 設定檔:102 若要檢查您的環境(包括 WSL2 內)是否強制執行此限制,請執行 `sysctl kernel.apparmor_restrict_unprivileged_userns`。如果命令傳回 `0`,請跳過此步驟。如果列印 `No such file or directory` 錯誤,表示金鑰不存在,您可以跳過此步驟。如果傳回 `1`,請新增授予 `bwrap` 此功能的 AppArmor 設定檔:

101 103 

102 ```bash theme={null}104 ```bash theme={null}

103 sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'105 sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'


111 EOF113 EOF

112 ```114 ```

113 115 

114 該設定檔僅適用於 `bwrap` 本身,不適用於在沙箱內執行的命令。重新載入 AppArmor 以應用它:116 該設定檔僅適用於 `bwrap` 本身,不適用於在 sandbox 內執行的命令。重新載入 AppArmor 以套用它:

115 117 

116 ```bash theme={null}118 ```bash theme={null}

117 sudo systemctl reload apparmor119 sudo systemctl reload apparmor


119 </Accordion>121 </Accordion>

120 122 

121 <Accordion title="WSL2 注意事項">123 <Accordion title="WSL2 注意事項">

122 使用 PowerShell 中的 `wsl -l -v` 檢查您的 WSL 版本。如果您看到 `Sandboxing requires WSL2`,您的發行版執行的是 WSL1。將其升級到 WSL2 或在沒有沙箱化的情況下執行 Claude Code。124 使用 `wsl -l -v` 從 PowerShell 檢查您的 WSL 版本。如果您看到 `Sandboxing requires WSL2`,您的發行版正在執行 WSL1。將其升級到 WSL2 或執行 Claude Code 而不進行 sandboxing。

123 125 

124 在 WSL2 上,WSL 將 Windows 二進位檔案(例如 `cmd.exe`、`powershell.exe` 或 `/mnt/c/` 下的任何內容)的啟動交給 Windows 主機,通過 Unix 套接字進行,因此沙箱化命令是否可以啟動一個取決於沙箱的 [Unix-socket settings](/docs/zh-TW/settings-reference#sandbox-network-allowunixsockets):可選的 seccomp 過濾器必須安裝才能首先阻止套接字。若要允許這些啟動,請設定 `allowAllUnixSockets`;若要將它們完全排除在沙箱外,請將命令新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。126 在 WSL2 上,WSL 會將 Windows 二進位檔案(例如 `cmd.exe`、`powershell.exe` 或 `/mnt/c/` 下的任何內容)的啟動交給 Windows 主機,透過 Unix 套接字進行,因此 sandboxed 命令是否可以啟動一個取決於 sandbox 的 [Unix 套接字設定](/docs/zh-TW/settings-reference#sandbox-network-allowunixsockets):必須安裝選用的 seccomp 篩選器才能首先阻止套接字。若要允許這些啟動,請設定 `allowAllUnixSockets`;若要將它們完全保留在 sandbox 外,請將命令新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。

125 </Accordion>127 </Accordion>

126</AccordionGroup>128</AccordionGroup>

127 129 

128<h3 id="sandbox-modes">130<h3 id="sandbox-modes">

129 沙箱模式131 Sandbox 模式

130</h3>132</h3>

131 133 

132Claude Code 提供兩種沙箱模式。在兩種模式中,沙箱強制執行相同的檔案系統和網路限制;區別僅在於沙箱化命令是自動批准還是需要明確權限。134Claude Code 提供兩種 sandbox 模式。在兩種模式中,sandbox 強制執行相同的檔案系統和網路限制;唯一的區別是 sandboxed 命令是否自動核准或需要明確權限。

133 135 

134<h4 id="auto-allow-mode">136<h4 id="auto-allow-mode">

135 自動允許模式137 自動允許模式

136</h4>138</h4>

137 139 

138當命令可以沙箱化時,Claude Code 在沙箱內執行它並自動批准,無需詢問您的權限。無法沙箱化的命令(例如需要存取非允許主機的網路存取的命令)會回退到常規權限流程,其中 Claude Code 檢查您的 [permission rules](/docs/zh-TW/permissions) 並限制這些規則不允許的任何命令,在 Manual 模式中提示。140當命令可以被 sandboxed 時,Claude Code 在 sandbox 內執行它並自動核准,無需詢問您的權限。無法被 sandboxed 的命令(例如需要存取非允許主機的網路存取的命令)會回退到一般權限流程,其中 Claude Code 檢查您的[權限規則](/docs/zh-TW/permissions)並限制這些規則不允許的任何命令,在手動模式下提示。

139 141 

140即使在自動允許模式中,以下仍然適用:142即使在自動允許模式下,以下仍然適用:

141 143 

142* 明確的 [deny rules](/docs/zh-TW/permissions) 始終被尊重144* 明確的[拒絕規則](/docs/zh-TW/permissions)始終受到尊重

143* 針對 [critical path](/docs/zh-TW/permission-modes#critical-paths) 的 `rm` 或 `rmdir` 命令仍然會通過常規權限流程145* 針對[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)的 `rm` 或 `rmdir` 命令仍會進行一般權限流程

144* 內容範圍的 [ask rules](/docs/zh-TW/permissions)(例如 `Bash(git push *)`)仍然會強制提示,即使是沙箱化命令146* 內容範圍的[詢問規則](/docs/zh-TW/permissions)(例如 `Bash(git push *)`)仍會強制提示,即使是 sandboxed 命令

145* 裸 `Bash` ask 規則,或等效的 `Bash(*)` 形式,對於執行沙箱化的命令會被跳過;它仍然適用於回退到常規權限流程的命令。在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,規則不會被跳過:它對沙箱化命令也會提示,包括唯讀命令。在 v2.1.212 之前,跳過也適用於 plan mode147* 裸 `Bash` 詢問規則或等效的 `Bash(*)` 形式會被跳過以執行 sandboxed 的命令;它仍然適用於回退到一般權限流程的命令。在[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)中,規則不會被跳過:它會提示 sandboxed 命令,包括唯讀命令。在 v2.1.212 之前,跳過也適用於計畫模式

146 148 

147<Info>149<Info>

148 自動允許模式獨立於您的權限模式設定工作,但有一個例外:[plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 和在 auto mode 中,針對帶有 [per-command allowed domains](#per-command-allowed-domains-in-auto-mode) 的命令。即使您不在「接受編輯」模式中,當啟用自動允許時,沙箱化 Bash 命令也會自動執行。這意味著在沙箱邊界內修改檔案的 Bash 命令將執行而不提示,即使在 Manual 模式中,檔案編輯工具會提示。150 自動允許模式獨立於您的權限模式設定運作,除了[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)和自動模式中的命令帶有[每個命令允許的網域](#per-command-allowed-domains-in-auto-mode)。即使您不在「接受編輯」模式中,當啟用自動允許時,sandboxed Bash 命令也會自動執行。這表示在 sandbox 邊界內修改檔案的 Bash 命令會執行而不提示,即使在手動模式中,檔案編輯工具也會提示。

149 151 

150 在 plan mode 中,自動允許不會擴大批准;請參閱 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 了解 Claude Code 在您計劃時如何限制命令。在 v2.1.212 之前,自動允許在 plan mode 中也無需提示執行沙箱化命令。152 在計畫模式中,自動允許不會擴大核准;請參閱[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode),了解 Claude Code 如何在您計畫時限制命令。在 v2.1.212 之前,自動允許在計畫模式中也執行 sandboxed 命令而不提示。

151</Info>153</Info>

152 154 

153<h4 id="regular-permissions-mode">155<h4 id="regular-permissions-mode">

154 常規權限模式156 一般權限模式

155</h4>157</h4>

156 158 

157所有 Bash 命令都通過常規權限流程進行,即使沙箱化也是如此。這提供了更多控制,但需要更多批准。159所有 Bash 命令都會進行一般權限流程,即使被 sandboxed。這提供了更多控制,但需要更多核准。

158 160 

159<h4 id="the-unsandboxed-retry-escape-hatch">161<h4 id="the-unsandboxed-retry-escape-hatch">

160 未沙箱化重試逃生艙162 Unsandboxed 重試逃生艙

161</h4>163</h4>

162 164 

163某些命令根本無法在沙箱內執行,例如與其不相容的工具或需要您未允許的主機的工具。Claude Code 在被阻止命令的結果中報告沙箱違規,命名沙箱拒絕的路徑或主機,因此 Claude 看到沙箱阻止了什麼。與其讓任務失敗或要求您關閉沙箱化,Claude Code 包含一個逃生艙:Claude 分析違規,可能使用 `dangerouslyDisableSandbox` 參數重試命令。165某些命令根本無法在 sandbox 內執行,例如與其不相容的工具或需要您未允許的主機的工具。Claude Code 在被阻止命令的結果中報告 sandbox 違規,命名 sandbox 拒絕的路徑或主機,因此 Claude 會看到 sandbox 阻止的內容。Claude Code 不會讓任務失敗或要求您關閉 sandboxing,而是包含一個逃生艙:Claude 分析違規並可能使用 `dangerouslyDisableSandbox` 參數重試命令。

164 166 

165重試的命令在沙箱外執行,因此通過常規權限流程進行。在 Manual 模式中您會獲得確認提示。在 [auto mode](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中,分類器評估基礎命令。當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 開啟時,需要批准才能在沙箱外執行的重試會提示您。若要在 auto mode 中即使在每次未沙箱化重試時也被提示,請新增 [ask rule](/docs/zh-TW/permissions#match-by-input-parameter) 用於 `Bash(dangerouslyDisableSandbox:true)`。167重試的命令在 sandbox 外執行,因此會進行一般權限流程。在手動模式中,您會收到確認提示。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,分類器會評估基礎命令。當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 開啟時,需要核准才能在 sandbox 外執行的重試會提示您。若要在自動模式中的每次 unsandboxed 重試時都收到提示,請為 `Bash(dangerouslyDisableSandbox:true)` 新增[詢問規則](/docs/zh-TW/permissions#match-by-input-parameter)。

166 168 

167您可以通過在 [sandbox settings](/docs/zh-TW/settings-reference#sandbox-settings) 中設定 `"allowUnsandboxedCommands": false` 來禁用此逃生艙。禁用逃生艙後,Claude Code 會忽略 `dangerouslyDisableSandbox` 參數,Claude 執行的每個命令都必須沙箱化執行,除非您已在 `excludedCommands` 中列出它。`/sandbox` **Overrides** 標籤將此設定顯示為 **Strict sandbox mode**。169您可以透過在[sandbox 設定](/docs/zh-TW/settings-reference#sandbox-settings)中設定 `"allowUnsandboxedCommands": false` 來停用此逃生艙。停用逃生艙後,Claude Code 會忽略 `dangerouslyDisableSandbox` 參數,Claude 執行的每個命令都必須 sandboxed 執行,除非您已在 `excludedCommands` 中列出它。`/sandbox` **Overrides** 標籤將此設定顯示為**嚴格 sandbox 模式**。

168 170 

169嚴格沙箱模式適用於 Claude 執行的命令。您在 [`!` shell-mode prompt](/docs/zh-TW/interactive-mode#shell-mode-with-prefix) 自己輸入的命令在沙箱外執行,除非工作階段是以下之一:171嚴格 sandbox 模式適用於 Claude 執行的命令。您在 [`!` shell 模式提示](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)中自己輸入的命令在 sandbox 外執行,除非工作階段是以下之一:

170 172 

171* **[背景工作階段](/docs/zh-TW/agent-view)**:嚴格沙箱模式也涵蓋 shell-mode 命令173* **[背景工作階段](/docs/zh-TW/agent-view)**:嚴格 sandbox 模式也涵蓋 shell 模式命令

172* **已設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars#variables) 的 Linux 工作階段**:每個命令都沙箱化執行,包括 shell-mode 命令174* **Linux 工作階段,設定了 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars#variables)**:每個命令都 sandboxed 執行,包括 shell 模式命令

173 175 

174在 v2.1.260 之前,嚴格沙箱模式在每個工作階段中沙箱化 shell-mode 命令。176在 v2.1.260 之前,嚴格 sandbox 模式在每個工作階段中都 sandboxed shell 模式命令。

175 177 

176<h4 id="temporary-directories">178<h4 id="temporary-directories">

177 暫存目錄179 暫存目錄

178</h4>180</h4>

179 181 

180工作階段暫存目錄在沙箱內預設可寫,與工作目錄一起。除非您 [disable filesystem isolation](#disable-filesystem-isolation),Claude Code 為沙箱化命令設定 `$TMPDIR` 為此目錄,因此寫入暫存檔案的工具無需額外配置即可工作。未沙箱化命令繼承您的 shell 的 `$TMPDIR` 不變,因此當檔案系統隔離開啟時,沙箱化和未沙箱化命令將 `$TMPDIR` 解析為不同的目錄。若要在兩者之間傳遞暫存檔案,請改為在工作目錄下寫入它們。182工作階段暫存目錄在 sandbox 內預設可寫,與工作目錄一起。除非您[停用檔案系統隔離](#disable-filesystem-isolation),Claude Code 會為 sandboxed 命令設定 `$TMPDIR` 為此目錄,因此寫入暫存檔案的工具無需額外設定即可運作。

183 

184Unsandboxed 命令在設定時會繼承您 shell 的 `$TMPDIR`,因此在檔案系統隔離開啟時,sandboxed 和 unsandboxed 命令會將 `$TMPDIR` 解析為不同的目錄。如果您的 shell 將 `$TMPDIR` 保留為未設定或空白,參考 `$TMPDIR` 的 unsandboxed 命令會收到您的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆蓋,或當您未設定一個或覆蓋是長路徑時的作業系統暫存目錄,因此變數不會展開為空字串。若要在兩者之間傳遞暫存檔案,請改為在工作目錄下寫入它們。

181 185 

182<h2 id="configure-sandboxing">186<h2 id="configure-sandboxing">

183 設定沙箱化187 設定沙箱化


741 745 

742* **命令因主機不允許錯誤而失敗**:許多 CLI 工具需要到達特定主機。在提示時授予權限會將主機新增到您的允許清單,以便工具在將來在沙箱內執行。746* **命令因主機不允許錯誤而失敗**:許多 CLI 工具需要到達特定主機。在提示時授予權限會將主機新增到您的允許清單,以便工具在將來在沙箱內執行。

743* **`jest` 掛起或失敗**:`watchman` 與沙箱不相容。改為執行 `jest --no-watchman`。747* **`jest` 掛起或失敗**:`watchman` 與沙箱不相容。改為執行 `jest --no-watchman`。

744* **Go 型 CLI 在 macOS 上 TLS 驗證失敗**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能無法進行 TLS 驗證。在 `excludedCommands` 中列出這些工具以在沙箱外執行它們。如果您使用 `httpProxyPort` 與 MITM 代理和自訂 CA,請改為將 [`enableWeakerNetworkIsolation`](/docs/zh-TW/settings-reference#sandbox-enableweakernetworkisolation) 設定為 `true`。748* **Go 型 CLI 在 macOS 上 TLS 驗證失敗**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能無法進行 TLS 驗證。在 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 中列出這些工具。如果您使用 `httpProxyPort` 與 MITM 代理和自訂 CA,請改為將 [`enableWeakerNetworkIsolation`](/docs/zh-TW/settings-reference#sandbox-enableweakernetworkisolation) 設定為 `true`。

745* **`open`、`osascript` 或瀏覽器型驗證流程在 macOS 上因錯誤 `-600` 而失敗**:沙箱預設會阻止 Apple Events。在您的使用者、受管理或 CLI 設定中將 [`allowAppleEvents`](/docs/zh-TW/settings-reference#sandbox-allowappleevents) 設定為 `true` 以允許它們。專案設定會被忽略此金鑰。啟用它會移除程式碼執行隔離,因為沙箱化命令之後可以啟動其他應用程式而不進行沙箱化,無需使用者提示,並向執行中的應用程式傳送 AppleScript 命令,受限於 macOS 自動化同意提示 (TCC)。或者,將命令新增到 `excludedCommands` 以在沙箱外執行它。749* **`open`、`osascript` 或瀏覽器型驗證流程在 macOS 上因錯誤 `-600` 而失敗**:沙箱預設會阻止 Apple Events。在您的使用者、受管理或 CLI 設定中將 [`allowAppleEvents`](/docs/zh-TW/settings-reference#sandbox-allowappleevents) 設定為 `true` 以允許它們。專案設定會被忽略此金鑰。啟用它會移除程式碼執行隔離,因為沙箱化命令之後可以啟動其他應用程式而不進行沙箱化,無需使用者提示,並向執行中的應用程式傳送 AppleScript 命令,受限於 macOS 自動化同意提示 (TCC)。或者,將命令新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。

746* **`docker` 命令失敗**:`docker` 與沙箱不相容。將 `docker *` 新增到 `excludedCommands` 以在沙箱外執行它。750* **`docker` 命令失敗**:`docker` 與沙箱不相容。將 `docker *` 新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。

747* **`pbcopy`、`xclip` 或 `wl-copy` 不會更新剪貼簿**:這些剪貼簿公用程式可能無法從沙箱內到達系統剪貼簿,在這種情況下,傳送給它們的文字不會到達。若要將 Claude 的輸出放在您的剪貼簿上,請要求 Claude 在其回應中列印它,然後執行 [`/copy`](/docs/zh-TW/commands),它從 Claude Code 程序而不是從沙箱化命令寫入剪貼簿。或者,將 `pbcopy *`、`wl-copy *` 或 `xclip *` 新增到 `excludedCommands` 以在沙箱外執行命令。751* **`pbcopy`、`xclip` 或 `wl-copy` 不會更新剪貼簿**:這些剪貼簿公用程式可能無法從沙箱內到達系統剪貼簿,在這種情況下,傳送給它們的文字不會到達。

752 

753 若要將 Claude 的輸出放在您的剪貼簿上,請要求 Claude 在其回應中列印它,然後執行 [`/copy`](/docs/zh-TW/commands)。`/copy` 從 Claude Code 程序而不是從沙箱化命令寫入剪貼簿。

754 

755 當 Claude 將文字傳送給這些工具之一時,將工具新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 本身不會將該呼叫從沙箱中取出。

748* **git 命令因 `unable to unlink old` 而失敗**:`git merge`、`git checkout` 和類似命令在需要取代沙箱拒絕寫入的檔案時以這種方式失敗,無論該檔案是在 [受保護路徑](#protected-paths) 下(例如 `.claude/skills`)、在您的 `denyWrite` 項目之一下,還是完全在沙箱允許命令寫入的目錄之外。在 Linux 和 WSL2 上,錯誤以 `Read-only file system` 結尾。756* **git 命令因 `unable to unlink old` 而失敗**:`git merge`、`git checkout` 和類似命令在需要取代沙箱拒絕寫入的檔案時以這種方式失敗,無論該檔案是在 [受保護路徑](#protected-paths) 下(例如 `.claude/skills`)、在您的 `denyWrite` 項目之一下,還是完全在沙箱允許命令寫入的目錄之外。在 Linux 和 WSL2 上,錯誤以 `Read-only file system` 結尾。

749 757 

750 失敗後,Claude 可能會 [提供在沙箱外重新執行命令](#the-unsandboxed-retry-escape-hatch);批准該重試,或在另一個終端中自己執行 git 命令。如果您已將 `allowUnsandboxedCommands` 設定為 `false`,Claude 無法提供重試,因此請自己執行命令。如果相同的 git 命令經常失敗,請將其新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。758 失敗後,Claude 可能會 [提供在沙箱外重新執行命令](#the-unsandboxed-retry-escape-hatch);批准該重試,或在另一個終端中自己執行 git 命令。如果您已將 `allowUnsandboxedCommands` 設定為 `false`,Claude 無法提供重試,因此請自己執行命令。如果相同的 git 命令經常失敗,請將其新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。

Details

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official

32```32```

33 33 

34`/plugin` 會開啟互動式面板,且僅在終端機 CLI 中可用。如果 Claude 回覆 `/plugin` 在此環境中不可用,請以其他方式安裝:34`/plugin` 會開啟終端機 CLI 中的互動式面板。如果 Claude 回覆 `/plugin` 在此環境中不可用,請以其他方式安裝:

35 35 

36* **Claude 桌面應用程式、本地或 SSH 工作階段**:點擊提示旁的 **+** 按鈕開啟 [外掛程式瀏覽器](/docs/zh-TW/desktop#install-plugins),然後點擊 **Plugins**,再點擊 **Add plugin**36* **Claude 桌面應用程式、本地或 SSH 工作階段**:點擊提示旁的 **+** 按鈕開啟 [外掛程式瀏覽器](/docs/zh-TW/desktop#install-plugins),然後點擊 **Plugins**,再點擊 **Add plugin**

37* **雲端工作階段**:在 `.claude/settings.json` 中聲明外掛程式,如 [在雲端工作階段和共享儲存庫中啟用](#enable-in-cloud-sessions-and-shared-repositories) 下所示37* **VS Code 擴充功能**:從 [**Manage plugins** 對話框](/docs/zh-TW/vs-code#manage-plugins) 安裝

38* **雲端工作階段**:為您的 claude.ai 帳戶啟用外掛程式,以便 Claude Code 將其載入為 [同步外掛程式](/docs/zh-TW/plugins-reference#synced-plugins)。雲端工作階段不會從您的使用者設定或儲存庫的 `.claude/settings.json` 載入外掛程式,如 [您的設定中有哪些內容會保留](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 所說明

38 39 

39終端機安裝會提示輸入範圍。選擇使用者範圍以將外掛程式寫入您的使用者設定,這樣它會在您在此機器上啟動的每個新本地工作階段中載入。40終端機安裝會提示輸入範圍。選擇使用者範圍以將外掛程式寫入您的使用者設定,這樣它會在您在此機器上啟動的每個新本地工作階段中載入。

40 41 


45 46 

46檢查安裝摘要。如果它報告 `Run /reload-plugins to activate.`,請參閱 [在不重新啟動的情況下套用外掛程式變更](/docs/zh-TW/discover-plugins#apply-plugin-changes-without-restarting) 以在您目前的工作階段中啟用外掛程式。47檢查安裝摘要。如果它報告 `Run /reload-plugins to activate.`,請參閱 [在不重新啟動的情況下套用外掛程式變更](/docs/zh-TW/discover-plugins#apply-plugin-changes-without-restarting) 以在您目前的工作階段中啟用外掛程式。

47 48 

48<h3 id="enable-in-cloud-sessions-and-shared-repositories">49<h3 id="enable-for-your-team-in-local-sessions">

49 在雲端工作階段和共享儲存庫中啟用50 在本地工作階段中為您的團隊啟用

50</h3>51</h3>

51 52 

52使用者範圍的外掛程式不會進入 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web),因為這些工作階段不會在您的機器上執行。要在那裡啟用外掛程式,或為克隆儲存庫的所有人開啟它,請在專案的簽入設定中聲明它:53要在您的團隊成員在儲存庫中啟動的本地工作階段中開啟外掛程式,請在專案的簽入設定中聲明它:

53 54 

54```json .claude/settings.json theme={null}55```json .claude/settings.json theme={null}

55{56{

Details

184 184 

185代理需要 `--capacity 1`,因為代理 URL 是每個工作階段的,Git 2.32 或更新版本,因為較舊的 Git 忽略代理用來隔離工作階段的配置機制。如果任一要求未滿足,執行器拒絕啟動。因為代理從 Anthropic 端提取,您的 Git 主機必須可從 Anthropic 基礎設施到達,與 Anthropic 託管工作階段相同的要求;對於僅在您的網路內可路由的 Git 主機,改用 [`checkout` 生命週期鉤子](/docs/zh-TW/self-hosted-environments-configuration#checkout)。每個執行器程序一次處理一個工作階段,因此執行更多副本以實現並行性。啟用代理後,`--git-host-rewrite` 和 `--git-ssh-rewrite` 無效:代理 URL 指向 `api.anthropic.com`,而不是您的 Git 主機。185代理需要 `--capacity 1`,因為代理 URL 是每個工作階段的,Git 2.32 或更新版本,因為較舊的 Git 忽略代理用來隔離工作階段的配置機制。如果任一要求未滿足,執行器拒絕啟動。因為代理從 Anthropic 端提取,您的 Git 主機必須可從 Anthropic 基礎設施到達,與 Anthropic 託管工作階段相同的要求;對於僅在您的網路內可路由的 Git 主機,改用 [`checkout` 生命週期鉤子](/docs/zh-TW/self-hosted-environments-configuration#checkout)。每個執行器程序一次處理一個工作階段,因此執行更多副本以實現並行性。啟用代理後,`--git-host-rewrite` 和 `--git-ssh-rewrite` 無效:代理 URL 指向 `api.anthropic.com`,而不是您的 Git 主機。

186 186 

187執行器也會在註冊時向 Anthropic 報告選擇加入,在啟動時列印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。選擇加入執行器上的每個工作階段隨後使用 Anthropic 管理的 Git 或每個工作階段的代理 URL。當工作階段使用每個工作階段的代理 URL 時,執行器記錄一行 `[runner:warn]` 說明這一點。187執行器也會在註冊時向 Anthropic 報告選擇加入,在啟動時列印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。報告選擇加入需要 Claude Code v2.1.267 或更新版本,較早的版本接受該旗標而不報告它或列印該行。選擇加入執行器上的每個工作階段隨後使用 Anthropic 管理的 Git 或每個工作階段的代理 URL。當工作階段使用每個工作階段的代理 URL 時,執行器記錄一行 `[runner:warn]` 說明這一點。

188 188 

189<h3 id="rewrite-git-urls-for-private-networks">189<h3 id="rewrite-git-urls-for-private-networks">

190 為私有網路重寫 Git URL190 為私有網路重寫 Git URL


223如果您的節點是 ARM,將 `linux-x64` 交換為 `linux-arm64`,或在 Alpine 等 musl 基礎映像上交換為 `linux-x64-musl` 或 `linux-arm64-musl`;請參閱 [Alpine Linux 設定](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)以了解 musl 映像需要的額外套件。URL 是標準 Claude Code 發佈位置,因此您可以根據[二進位檔案完整性和程式碼簽名](/docs/zh-TW/setup#binary-integrity-and-code-signing)中描述的發佈的已簽名清單驗證下載的二進位檔案。使用 Claude Code 版本 2.1.224 或更新版本構建映像,然後將其推送到您的登錄檔並在下面的配方中引用它:223如果您的節點是 ARM,將 `linux-x64` 交換為 `linux-arm64`,或在 Alpine 等 musl 基礎映像上交換為 `linux-x64-musl` 或 `linux-arm64-musl`;請參閱 [Alpine Linux 設定](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)以了解 musl 映像需要的額外套件。URL 是標準 Claude Code 發佈位置,因此您可以根據[二進位檔案完整性和程式碼簽名](/docs/zh-TW/setup#binary-integrity-and-code-signing)中描述的發佈的已簽名清單驗證下載的二進位檔案。使用 Claude Code 版本 2.1.224 或更新版本構建映像,然後將其推送到您的登錄檔並在下面的配方中引用它:

224 224 

225```bash theme={null}225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.224 -t <your-registry>/claude-runner:latest .226docker build --build-arg CLAUDE_CODE_VERSION=2.1.267 -t <your-registry>/claude-runner:latest .

227```227```

228 228 

229<h2 id="size-cpu-and-memory-for-sessions">229<h2 id="size-cpu-and-memory-for-sessions">

Details

169* **`env` 區塊**:除了與認證金鑰配對的遙測單位和路由變數(下面涵蓋)外,它會跨管理員控制的來源按金鑰合併。對於每個環境變數,定義它的最高優先順序來源會獲勝,較低的管理員來源會填入較高來源未設定的變數。因此,端點管理的 `env` 項目會在伺服器管理的設定未設定該變數時套用,或在快取的伺服器值[等待伺服器確認時被保留](#fetch-and-caching-behavior)時套用。需要 Claude Code v2.1.223 或更新版本。在 v2.1.223 之前,Claude Code 僅套用選定來源的整個 `env` 區塊。169* **`env` 區塊**:除了與認證金鑰配對的遙測單位和路由變數(下面涵蓋)外,它會跨管理員控制的來源按金鑰合併。對於每個環境變數,定義它的最高優先順序來源會獲勝,較低的管理員來源會填入較高來源未設定的變數。因此,端點管理的 `env` 項目會在伺服器管理的設定未設定該變數時套用,或在快取的伺服器值[等待伺服器確認時被保留](#fetch-and-caching-behavior)時套用。需要 Claude Code v2.1.223 或更新版本。在 v2.1.223 之前,Claude Code 僅套用選定來源的整個 `env` 區塊。

170 * **遙測單位**:`OTEL_EXPORTER_OTLP_*` 匯出器金鑰、`OTEL_LOG_*` 內容擷取切換、`OTEL_LOGS_EXPORTER` 以及測試版追蹤變數 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT` 遵循設定任何這些變數的最高來源作為一個單位。傳遞 `otelHeadersHelper` 認證金鑰的來源也會聲稱該單位,但僅在它是選定來源時才會放置這些變數:未被選定但傳遞該金鑰的來源不會貢獻其中任何一個,仍然會阻止較低來源填入它們。無論哪種方式,來自一個來源的匯出器端點永遠無法與來自另一個來源的認證配對。170 * **遙測單位**:`OTEL_EXPORTER_OTLP_*` 匯出器金鑰、`OTEL_LOG_*` 內容擷取切換、`OTEL_LOGS_EXPORTER` 以及測試版追蹤變數 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT` 遵循設定任何這些變數的最高來源作為一個單位。傳遞 `otelHeadersHelper` 認證金鑰的來源也會聲稱該單位,但僅在它是選定來源時才會放置這些變數:未被選定但傳遞該金鑰的來源不會貢獻其中任何一個,仍然會阻止較低來源填入它們。無論哪種方式,來自一個來源的匯出器端點永遠無法與來自另一個來源的認證配對。

171 * **認證配對的路由**:將路由變數與選定來源專用認證金鑰(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配對的來源,僅在它贏得該位置時才會貢獻這些路由變數。171 * **認證配對的路由**:將路由變數與選定來源專用認證金鑰(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配對的來源,僅在它贏得該位置時才會貢獻這些路由變數。

172* **閘道登入金鑰**:Claude Code 永遠不會從伺服器管理的設定讀取 [`forceLoginGatewayUrl`](/docs/zh-TW/settings-reference#forcelogingatewayurl) 或 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此選擇伺服器管理的設定既不會提供閘道登入,也不會隱藏在 MDM 原則或受管設定檔中設定的登入。[`managedSourcesBehavior` 項目](/docs/zh-TW/settings-reference#managedsourcesbehavior)說明機器上的哪個管理員來源提供它們。172* **閘道登入金鑰**:Claude Code 永遠不會從伺服器管理的設定讀取 [`forceLoginGatewayUrl`](/docs/zh-TW/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/zh-TW/settings-reference#gatewayinternalnetworks) 或 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此伺服器管理的設定中的值既不會套用,也不會隱藏在 MDM 原則或受管設定檔中設定的值。[`managedSourcesBehavior` 項目](/docs/zh-TW/settings-reference#managedsourcesbehavior)說明機器上的哪個管理員來源提供它們。

173 173 

174<h3 id="fetch-and-caching-behavior">174<h3 id="fetch-and-caching-behavior">

175 擷取和快取行為175 擷取和快取行為

sessions.md +8 −2

Details

134| 從 claude.ai 或 Claude 應用程式 | 重新命名 [Remote Control session](/docs/zh-TW/remote-control#connect-from-another-device);Claude Code 在 CLI 中應用相同的名稱。需要 Claude Code v2.1.221 或更新版本 |134| 從 claude.ai 或 Claude 應用程式 | 重新命名 [Remote Control session](/docs/zh-TW/remote-control#connect-from-another-device);Claude Code 在 CLI 中應用相同的名稱。需要 Claude Code v2.1.221 或更新版本 |

135| 從桌面應用程式 | 在 [desktop app](/docs/zh-TW/desktop#work-in-parallel-with-sessions) 中重新命名 session |135| 從桌面應用程式 | 在 [desktop app](/docs/zh-TW/desktop#work-in-parallel-with-sessions) 中重新命名 session |

136 136 

137session 命名後,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它;桌面應用程式 session 在應用程式中恢復,該應用程式保持自己的 session 歷史記錄。請參閱[恢復 session](#resume-a-session) 以了解名稱解析在 worktrees 中的行為方式。137通過 CLI 路由或從 claude.ai 命名 session 後,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它;桌面應用程式 session 在應用程式中恢復,該應用程式保持自己的 session 歷史記錄。請參閱[恢復 session](#resume-a-session) 以了解名稱解析在 worktrees 中的行為方式。

138 138 

139當您使用此機器上另一個活躍 session 已經使用的名稱啟動或恢復互動式 session,或將 session 重新命名為這樣的名稱時,Claude Code 會將名稱保留給已經擁有它的 session,將您的名稱重新命名為帶有兩個單詞後綴的變體,例如 `auth-refactor-graceful-unicorn`,並告知您。如果您想自己選擇一個名稱,請使用新名稱執行 `/rename`。在 v2.1.232 之前,兩個 sessions 都保留了該名稱。139當您使用此機器上另一個活躍 session 已經使用的名稱啟動或恢復互動式 session,或將 session 重新命名為這樣的名稱時,Claude Code 會將名稱保留給已經擁有它的 session,將您的名稱重新命名為帶有兩個單詞後綴的變體,例如 `auth-refactor-graceful-unicorn`,並告知您。如果您想自己選擇一個名稱,請使用新名稱執行 `/rename`。在 v2.1.232 之前,兩個 sessions 都保留了該名稱。

140 140 


147您未命名的 sessions 仍然會獲得 Claude Code 指派的兩個標籤。只有生成的標題可作為恢復控制代碼:147您未命名的 sessions 仍然會獲得 Claude Code 指派的兩個標籤。只有生成的標題可作為恢復控制代碼:

148 148 

149* 預設顯示名稱:您從未命名的互動式 sessions 在啟動時仍會獲得預設顯示名稱。需要 Claude Code v2.1.196 或更新版本。預設名稱結合了工作目錄的名稱和一個兩字元的後綴,例如 `my-app-3f`,並在執行中 sessions 的列表中識別該 session,例如 [agent view](/docs/zh-TW/agent-view) 和 `claude agents --json` 輸出。預設名稱不是恢復控制代碼。如果您將其傳遞給 `claude --resume` 或 `/resume`,Claude Code 找不到該 session。命名 session 會在這些列表中取代預設名稱,接受計畫也會這樣做。149* 預設顯示名稱:您從未命名的互動式 sessions 在啟動時仍會獲得預設顯示名稱。需要 Claude Code v2.1.196 或更新版本。預設名稱結合了工作目錄的名稱和一個兩字元的後綴,例如 `my-app-3f`,並在執行中 sessions 的列表中識別該 session,例如 [agent view](/docs/zh-TW/agent-view) 和 `claude agents --json` 輸出。預設名稱不是恢復控制代碼。如果您將其傳遞給 `claude --resume` 或 `/resume`,Claude Code 找不到該 session。命名 session 會在這些列表中取代預設名稱,接受計畫也會這樣做。

150* 生成的標題:如果您未命名 session,Claude Code 會為其生成 session 標題。標題是您第一個提示的簡短摘要,由對小型/快速模型(通常是 Haiku 級別模型)的背景請求編寫。接受計畫會將其替換為基於計畫的標題。命名 session 會取代生成的標題。您會在 [session 選擇器](#use-the-session-picker) 中和未設定名稱時的狀態列 [`session_name`](/docs/zh-TW/statusline) 欄位中看到第一個提示標題。計畫標題顯示在相同的兩個位置,也顯示在執行中 sessions 的列表中,其中它取代了預設顯示名稱。您可以將任一標題傳遞給 `claude --resume` 或 `/resume`,Claude Code 會以與您設定的名稱相同的方式解析它。150* 生成的標題:如果您未命名 session,Claude Code 會為其生成 session 標題。標題是您第一個提示的簡短摘要,由對小型/快速模型(通常是 Haiku 級別模型)的背景請求編寫。您直接從 shell 或指令碼啟動的 `claude -p` 執行不會獲得一個。

151 

152 接受計畫會將生成的標題替換為基於計畫的標題。命名 session 也會取代它。

153 

154 您會在 [session 選擇器](#use-the-session-picker) 中和未設定名稱時的狀態列 [`session_name`](/docs/zh-TW/statusline) 欄位中看到第一個提示標題。計畫標題顯示在相同的兩個位置,也顯示在執行中 sessions 的列表中,其中它取代了預設顯示名稱。

155 

156 您可以將任一標題傳遞給 `claude --resume` 或 `/resume`,Claude Code 會以與您設定的名稱相同的方式解析它。

151 157 

152<h2 id="use-the-session-picker">158<h2 id="use-the-session-picker">

153 使用 session 選擇器159 使用 session 選擇器

settings.md +3 −3

Details

468 將個人設定保留在儲存庫之外468 將個人設定保留在儲存庫之外

469</h3>469</h3>

470 470 

471若要在一個專案中為自己變更設定而不為隊友變更,請將其儲存在專案內的 `.claude/settings.local.json` 中。Claude Code 在提交的 `.claude/settings.json` 上應用該檔案,因此如果您的團隊檔案設定 `"model": "claude-sonnet-5"` 而您想要 Opus,請在本機檔案中放入 `"model": "claude-opus-4-8"`,只有您的工作階段會變更。471若要在一個專案中為自己變更設定而不為隊友變更,請將其儲存在專案內的 `.claude/settings.local.json` 中。Claude Code 在提交的 `.claude/settings.json` 上應用該檔案,因此如果您的團隊檔案設定 `"model": "claude-sonnet-5"` 而您想要 Opus,請在本機檔案中放入 `"model": "claude-opus-5-5"`,只有您的工作階段會變更。

472 472 

473Claude Code 也寫入此檔案,將其保留在您的提交之外,並在不需要信任步驟的情況下應用其允許規則:473Claude Code 也寫入此檔案,將其保留在您的提交之外,並在不需要信任步驟的情況下應用其允許規則:

474 474 


598例如,若要在 Opus 上啟動一個工作階段而不變更您的預設值:598例如,若要在 Opus 上啟動一個工作階段而不變更您的預設值:

599 599 

600```bash theme={null}600```bash theme={null}

601claude --settings '{"model": "claude-opus-4-8"}'601claude --settings '{"model": "claude-opus-5-5"}'

602```602```

603 603 

604<h3 id="when-edits-take-effect">604<h3 id="when-edits-take-effect">


803 803 

804[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)在[雲端環境](/docs/zh-TW/cloud-environments)中執行,在您儲存庫的新複製上,而不是在您的機器上。這改變了哪些設定到達它:804[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)在[雲端環境](/docs/zh-TW/cloud-environments)中執行,在您儲存庫的新複製上,而不是在您的機器上。這改變了哪些設定到達它:

805 805 

806* **共享專案設定**(`.claude/settings.json`):在一個儲存庫的工作階段中讀取,因為檔案是複製的一部分,且工作階段在其內部啟動。在那裡提交設定以在這些工作階段中應用它。具有多個儲存庫的工作階段在複製上方啟動,因此從每個儲存庫的 `.claude/settings.json` 它只載入檔案宣告的 plugins 和 marketplaces,而不是權限規則、hooks、`env` 或其他金鑰;請參閱[從您的設定進行的內容](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)。806* **共享專案設定**(`.claude/settings.json`):在一個儲存庫的工作階段中讀取,因為檔案是複製的一部分,且工作階段在其內部啟動。在那裡提交設定以在這些工作階段中應用它。具有多個儲存庫的工作階段在複製上方啟動,並從每個儲存庫的 `.claude/settings.json` 只讀取 `enabledPlugins` 和 `extraKnownMarketplaces` 金鑰,而不是權限規則、hooks、`env` 或其他金鑰。這些兩個金鑰宣告的市集和外掛仍然[不會在雲端工作階段中載入](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)。

807* **使用者和專案本機設定**(`~/.claude/settings.json` 和 `.claude/settings.local.json`):未讀取。兩者都保留在您的機器上,本機檔案不在複製中。807* **使用者和專案本機設定**(`~/.claude/settings.json` 和 `.claude/settings.local.json`):未讀取。兩者都保留在您的機器上,本機檔案不在複製中。

808* **受管設定**:只有[伺服器管理設定](/docs/zh-TW/server-managed-settings)到達雲端工作階段;您裝置上的 `managed-settings.json` 檔案或 MDM 設定檔不會。[自託管環境](/docs/zh-TW/self-hosted-environments)也讀取其執行器映像中的受管設定檔案。[Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明該檔案何時適用。808* **受管設定**:只有[伺服器管理設定](/docs/zh-TW/server-managed-settings)到達雲端工作階段;您裝置上的 `managed-settings.json` 檔案或 MDM 設定檔不會。[自託管環境](/docs/zh-TW/self-hosted-environments)也讀取其執行器映像中的受管設定檔案。[Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明該檔案何時適用。

809* **`/config`**:在您的瀏覽器中的 claude.ai/code,開啟您的 claude.ai 設定的 Claude Code 部分而不是變更值。若要為雲端工作階段變更設定,請在環境上設定[環境變數](/docs/zh-TW/cloud-environments#set-environment-variables),或在具有一個儲存庫的工作階段中,將金鑰提交到該儲存庫的 `.claude/settings.json`。809* **`/config`**:在您的瀏覽器中的 claude.ai/code,開啟您的 claude.ai 設定的 Claude Code 部分而不是變更值。若要為雲端工作階段變更設定,請在環境上設定[環境變數](/docs/zh-TW/cloud-environments#set-environment-variables),或在具有一個儲存庫的工作階段中,將金鑰提交到該儲存庫的 `.claude/settings.json`。

Details

29 ```json ~/.claude/settings.json theme={null}29 ```json ~/.claude/settings.json theme={null}

30 {30 {

31 "model": "claude-sonnet-5",31 "model": "claude-sonnet-5",

32 "effortLevel": "xhigh",32 "modelSettings": {

33 "claude-sonnet-5": { "effortLevel": "xhigh" }

34 },

33 "editorMode": "vim",35 "editorMode": "vim",

34 "theme": "light-daltonized",36 "theme": "light-daltonized",

35 "statusLine": {37 "statusLine": {


58 {60 {

59 // 在 Sonnet 5 上開始每個工作階段61 // 在 Sonnet 5 上開始每個工作階段

60 "model": "claude-sonnet-5",62 "model": "claude-sonnet-5",

61 // 在沒有儲存級別的模型上進行比預設高級別更深入的推理;/effort 為每個模型儲存一個級別,--effort 為單個工作階段設定一個級別63 // 在 Sonnet 5 上執行高於其預設高級別的推理;/effort 為每個模型儲存一個級別,--effort 為單個工作階段設定一個級別

62 "effortLevel": "xhigh",64 "modelSettings": {

65 "claude-sonnet-5": { "effortLevel": "xhigh" }

66 },

63 // 提示中的 Vim 快捷鍵67 // 提示中的 Vim 快捷鍵

64 "editorMode": "vim",68 "editorMode": "vim",

65 // 色盲友善的淺色主題69 // 色盲友善的淺色主題

Details

685| [`hooks`](#hooks) | 在 Claude Code 生命週期中的點執行您自己的命令作為 [hooks](/docs/zh-TW/hooks) | Hooks 和自動化 | Any file |685| [`hooks`](#hooks) | 在 Claude Code 生命週期中的點執行您自己的命令作為 [hooks](/docs/zh-TW/hooks) | Hooks 和自動化 | Any file |

686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | 限制 [HTTP hooks](/docs/zh-TW/hooks) 可以在標頭中放入的環境變數 | Hooks 和自動化 | Any file |686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | 限制 [HTTP hooks](/docs/zh-TW/hooks) 可以在標頭中放入的環境變數 | Hooks 和自動化 | Any file |

687| [`includeCoAuthoredBy`](#includecoauthoredby) | 已棄用;使用 `attribution` 隱藏或變更提交和 PR 歸屬 | Git 和歸屬 | Any file |687| [`includeCoAuthoredBy`](#includecoauthoredby) | 已棄用;使用 `attribution` 隱藏或變更提交和 PR 歸屬 | Git 和歸屬 | Any file |

688| [`includeGitInstructions`](#includegitinstructions) | 從[系統提示](/docs/zh-TW/sub-agents#what-loads-at-startup)中移除內建的提交和 PR 指示 | Git 和歸屬 | Any file |688| [`includeGitInstructions`](#includegitinstructions) | 從 Claude 的內容中移除內建的提交和 PR 指示 | Git 和歸屬 | Any file |

689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 當 Claude 在等待您時取得[推播通知](/docs/zh-TW/remote-control#mobile-push-notifications) | 遠端、桌面和通知 | Any file |689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 當 Claude 在等待您時取得[推播通知](/docs/zh-TW/remote-control#mobile-push-notifications) | 遠端、桌面和通知 | Any file |

690| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [傳訊另一台機器上的其中一個工作階段](/docs/zh-TW/cross-session-messaging#require-approval-for-cross-machine-messages)之前詢問您 | 代理、工作階段和 worktrees | Any file |690| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [傳訊另一台機器上的其中一個工作階段](/docs/zh-TW/cross-session-messaging#require-approval-for-cross-machine-messages)之前詢問您 | 代理、工作階段和 worktrees | Any file |

691| [`keybindingFlavor`](#keybindingflavor) | 已棄用且無效;字詞編輯快捷鍵始終[遵循 readline 慣例](/docs/zh-TW/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 介面和終端 | Any file |691| [`keybindingFlavor`](#keybindingflavor) | 已棄用且無效;字詞編輯快捷鍵始終[遵循 readline 慣例](/docs/zh-TW/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 介面和終端 | Any file |


797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止載入[在您的 claude.ai 帳戶上啟用的外掛程式](/docs/zh-TW/plugins-reference#synced-plugins)並停止下載新的外掛程式 | 外掛程式和技能 | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止載入[在您的 claude.ai 帳戶上啟用的外掛程式](/docs/zh-TW/plugins-reference#synced-plugins)並停止下載新的外掛程式 | 外掛程式和技能 | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止載入[在您的 claude.ai 帳戶上啟用的技能](/docs/zh-TW/skills#how-synced-skills-behave)並停止下載新的技能 | 外掛程式和技能 | User, local, or managed |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止載入[在您的 claude.ai 帳戶上啟用的技能](/docs/zh-TW/skills#how-synced-skills-behave)並停止下載新的技能 | 外掛程式和技能 | User, local, or managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 在 diffs 和程式碼區塊中關閉語法醒目提示 | 介面和終端 | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 在 diffs 和程式碼區塊中關閉語法醒目提示 | 介面和終端 | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | 設定 Claude 內聯接收多少[背景工作](/docs/zh-TW/tools-reference#background-commands)的輸出 | 記憶和內容 | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | 在 v2.1.277 中移除,以及它調整大小的 `TaskOutput` 工具 | 記憶和內容 | Any file |

801| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中移除;請參閱[指定隊友和模型](/docs/zh-TW/agent-teams#specify-teammates-and-models)以了解 Claude Code 如何選擇隊友的模型 | 全域設定設定 | Global config |801| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中移除;請參閱[指定隊友和模型](/docs/zh-TW/agent-teams#specify-teammates-and-models)以了解 Claude Code 如何選擇隊友的模型 | 全域設定設定 | Global config |

802| [`teammateMode`](#teammatemode) | 選擇[代理團隊隊友顯示](/docs/zh-TW/agent-teams#choose-a-display-mode)的方式 | 代理、工作階段和 worktrees | Any file |802| [`teammateMode`](#teammatemode) | 選擇[代理團隊隊友顯示](/docs/zh-TW/agent-teams#choose-a-display-mode)的方式 | 代理、工作階段和 worktrees | Any file |

803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支援它的終端中隱藏終端進度列 | 介面和終端 | Any file |803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支援它的終端中隱藏終端進度列 | 介面和終端 | Any file |


993 `fastModePerSessionOptIn`993 `fastModePerSessionOptIn`

994</h3>994</h3>

995 995 

996通常,執行 `/fast` 會將 [`fastMode`](#fastmode) 儲存到人員的使用者設定,因此快速模式在之後每個工作階段的開始時開啟。將此金鑰設定為 `true` 以停止:儲存的 `fastMode: true` 不再在工作階段開始時開啟快速模式,每個人必須在他們想要的每個工作階段中執行 `/fast`。Claude Code 在其檔案中保留 `fastMode` 金鑰,因此關閉此金鑰會恢復舊行為。Team 或 Enterprise 計畫上的擁有者可以透過[伺服器受管設定](/docs/zh-TW/server-managed-settings)在組織範圍內部署它。996通常,執行 `/fast` 會將 [`fastMode`](#fastmode) 儲存到人員的使用者設定,因此快速模式在之後每個工作階段的開始時開啟。將此金鑰設定為 `true` 以停止:儲存的 `fastMode: true` 不再在工作階段開始時開啟快速模式,每個人必須在他們想要的每個工作階段中執行 `/fast`。Claude Code 在其檔案中保留 `fastMode` 金鑰,因此關閉此金鑰會恢復舊行為。Team 或 Enterprise 計畫上的擁有者可以透過[伺服器受管設定](/docs/zh-TW/server-managed-settings)在組織範圍內部署它。當受管設定設定此金鑰時,`/fast on` 在互動終端工作階段外被拒絕,並報告您的組織已禁用快速模式。這涵蓋[非互動模式](/docs/zh-TW/headless)、[VS Code 擴充功能](/docs/zh-TW/vs-code)和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。

997 997 

998* **範圍**: [`任何檔案`](#scopes)998* **範圍**: [`任何檔案`](#scopes)

999* **類型**: 布林值999* **類型**: 布林值


1206 `modelSettings`1206 `modelSettings`

1207</h3>1207</h3>

1208 1208 

1209為您使用的每個模型儲存[努力級別](/docs/zh-TW/model-config#adjust-effort-level)。在機器上的互動工作階段中,當您使用 `/effort` 或 `/model` 選擇器的努力滑塊將 `low`、`medium`、`high` 或 `xhigh` 儲存為預設時,Claude Code 在您使用的模型下將該級別寫入此處,因此您很少手動編輯此金鑰。[`effortLevel`](#effortlevel) 項目列出 `/effort` 僅適用於該工作階段的工作階段。需要 Claude Code v2.1.251 或更新版本。1209為您使用的每個模型儲存[努力級別](/docs/zh-TW/model-config#adjust-effort-level)。在機器上的互動工作階段中,當您使用 `/effort` 或 [VS Code 擴充功能的模型選擇器](/docs/zh-TW/vs-code#use-the-prompt-box)的努力滑塊將 `low`、`medium`、`high` 或 `xhigh` 儲存為預設時,Claude Code 在您使用的模型下將該級別寫入此處,因此您很少手動編輯此金鑰。[`effortLevel`](#effortlevel) 項目列出 `/effort` 僅適用於該工作階段的工作階段。需要 Claude Code v2.1.251 或更新版本。

1210 1210 

1211手動編輯金鑰以變更或移除您儲存的級別。1211手動編輯金鑰以變更或移除您儲存的級別。

1212 1212 


1837 `sandbox.excludedCommands`1837 `sandbox.excludedCommands`

1838</h3>1838</h3>

1839 1839 

1840命名 Claude Code 始終在沙箱外執行的命令,例如在沙箱下不起作用的工具。每個項目使用與 `Bash(...)` [permission rule](/docs/zh-TW/permissions#permission-rule-syntax) 內容相同的語法:精確命令、前綴(例如 `docker *`)或萬用字元模式。當複合命令的任何部分與項目相符時,Claude Code 執行整個命令而不使用沙箱。1840命名 Claude Code 始終在沙箱外執行的命令,例如在沙箱下不起作用的工具。每個項目使用與 `Bash(...)` [permission rule](/docs/zh-TW/permissions#permission-rule-syntax) 內容相同的語法:精確命令、前綴(例如 `docker *`)或萬用字元模式。

1841 

1842您的項目僅當它們涵蓋複合命令中的每個命令時才將 Bash 呼叫從沙箱中取出,某些呼叫形式即使如此仍保持沙箱化。單獨的 `docker *` 項目不會將 `npm ci && docker build .` 從沙箱中取出。

1841 1843 

1842* **Scope**: [`Any file`](#scopes)1844* **Scope**: [`Any file`](#scopes)

1843* **Type**: 命令模式陣列1845* **Type**: 命令模式陣列


1851}1853}

1852```1854```

1853 1855 

1856Claude Code 在這些形式中保持 Bash 呼叫沙箱化,以及其他形式:

1857 

1858* 以 `sudo`、`eval` 或 `xargs` 開頭的命令

1859* `cd`、`pushd` 或 `popd`,無論它在呼叫中的任何地方出現

1860* 命令替換、子殼層或控制流程區塊,例如 `if` 或 `for`

1861* 重新導向,例如 `docker build . > build.log`,除了僅複製檔案描述符的重新導向,如 `2>&1` 所做的

1862* 來自變數的命令名稱

1863 

1864例如,`cd build && docker compose up` 在 `docker *` 項目下保持沙箱化,新增 `cd` 項目不會改變這一點。

1865 

1854排除的命令仍會經過常規權限流程。排除是一種便利,不是安全邊界:當工具只需要在特定位置寫入時,優先使用 [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)。Claude Code 合併工作階段載入的每個設定範圍中的項目,此清單沒有僅受管的鎖定,所以保持受管清單狹窄。1866排除的命令仍會經過常規權限流程。排除是一種便利,不是安全邊界:當工具只需要在特定位置寫入時,優先使用 [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)。Claude Code 合併工作階段載入的每個設定範圍中的項目,此清單沒有僅受管的鎖定,所以保持受管清單狹窄。

1855 1867 

1856<h3 id="sandbox-allowunsandboxedcommands">1868<h3 id="sandbox-allowunsandboxedcommands">


3064 `taskOutputMaxChars`3076 `taskOutputMaxChars`

3065</h3>3077</h3>

3066 3078 

3067設定[背景工作](/docs/zh-TW/tools-reference#background-commands)的輸出字元數,當 Claude 使用 `TaskOutput` 工具讀取工作時,Claude 內聯接收。當完成的工作的輸出更長時,Claude 接收最近的字元。當您的背景工作經常產生超過預設值的輸出時,請提高限制。需要 Claude Code v2.1.261 或更高版本。3079<Warning>

3068 3080 在 v2.1.277 中移除,連同它調整大小的 `TaskOutput` 工具一起。設定它對目前版本沒有影響。Claude 改為使用 `Read` 讀取背景工作的[輸出檔案](/docs/zh-TW/tools-reference#background-commands)。

3069* **範圍**:[`任何檔案`](#scopes)3081</Warning>

3070* **類型**:字元數,正整數。Claude Code 將值限制在 `4000` 到 `128000` 的範圍內

3071* **預設**:未設定,因此 Claude 內聯接收最多 32,000 個字元

3072 

3073```json settings.json theme={null}

3074{

3075 "taskOutputMaxChars": 100000

3076}

3077```

3078 3082 

3079當您設定此鍵時,Claude Code 忽略 [`TASK_MAX_OUTPUT_LENGTH`](/docs/zh-TW/env-vars) 環境變數。3083透過 v2.1.276,您設定此鍵為[背景工作](/docs/zh-TW/tools-reference#background-commands)的輸出字元數,當 Claude 使用 `TaskOutput` 工具讀取工作時,Claude 內聯接收。

3080 3084 

3081<h2 id="interface-and-terminal">3085<h2 id="interface-and-terminal">

3082 介面和終端3086 介面和終端


3992 3996 

3993若要隱藏所有歸屬,請將 [`commit`](#attribution-commit) 和 [`pr`](#attribution-pr) 設定為空字串,並將 [`sessionUrl`](#attribution-sessionurl) 設定為 `false`。一旦您設定 `commit` 或 `pr`,Claude Code 就會忽略已棄用的 `includeCoAuthoredBy` 設定,並對您未設定的兩者使用其預設文字。3997若要隱藏所有歸屬,請將 [`commit`](#attribution-commit) 和 [`pr`](#attribution-pr) 設定為空字串,並將 [`sessionUrl`](#attribution-sessionurl) 設定為 `false`。一旦您設定 `commit` 或 `pr`,Claude Code 就會忽略已棄用的 `includeCoAuthoredBy` 設定,並對您未設定的兩者使用其預設文字。

3994 3998 

3999Claude Code 告訴 Claude,您自己關於歸屬的指示(例如 CLAUDE.md 或[記憶](/docs/zh-TW/memory)規則)優先於這些提交和 PR 行,除非該行在[受管設定](/docs/zh-TW/managed-settings)中設定。

4000 

3995<h3 id="includecoauthoredby">4001<h3 id="includecoauthoredby">

3996 `includeCoAuthoredBy`4002 `includeCoAuthoredBy`

3997</h3>4003</h3>


4020 `includeGitInstructions`4026 `includeGitInstructions`

4021</h3>4027</h3>

4022 4028 

4023在工作階段開始時,Claude Code 會將兩個與 git 相關的部分新增至 Claude 的提示:其內建的提交和拉取請求撰寫方式說明(在 Bash 工具的描述中)以及您存放庫的 git 狀態快照(在系統提示中),意思是目前分支、主要分支、`git status` 輸出和最近的提交。將此鍵設定為 `false` 以將兩者都排除,例如當您使用自己的 git 工作流程技能時。4029Claude Code 給予 Claude 兩個與 git 相關的內容片段:其內建的提交和拉取請求撰寫方式說明(在 Bash 工具的描述中),以及您存放庫的 git 狀態快照。快照保存目前分支、主要分支、`git status` 輸出和最近的提交。Claude Code 在對話開始時讀取它。

4030 

4031將此鍵設定為 `false` 以將兩者都排除,例如當您使用自己的 git 工作流程技能時。

4024 4032 

4025* **Scope**: [`Any file`](#scopes)4033* **Scope**: [`Any file`](#scopes)

4026* **Type**: 布林值4034* **Type**: 布林值

4027 * `true`: Claude Code 包含其內建的提交和拉取請求工作流程說明以及 git 狀態快照。雲端工作階段永遠不會包含快照4035 * `true`: Claude Code 包含其內建的提交和拉取請求工作流程說明和 git 狀態快照。雲端工作階段永遠不會包含快照

4028 * `false`: Claude Code 將兩者都排除4036 * `false`: Claude Code 將兩者都排除

4029* **Default**: `true`4037* **Default**: `true`

4030* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS`](/docs/zh-TW/env-vars) 對此鍵優先4038* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS`](/docs/zh-TW/env-vars) 對此鍵優先


5938防止背景自動更新和 `claude update` 安裝低於此版本的任何版本,因此移至 `"stable"` 頻道不會從較新的 `"latest"` 組建中降級您。當您在 `/config` 中選擇在切換頻道時保持在目前版本時,Claude Code 會為您寫入此金鑰,並在您切換回 `"latest"` 時清除它。5946防止背景自動更新和 `claude update` 安裝低於此版本的任何版本,因此移至 `"stable"` 頻道不會從較新的 `"latest"` 組建中降級您。當您在 `/config` 中選擇在切換頻道時保持在目前版本時,Claude Code 會為您寫入此金鑰,並在您切換回 `"latest"` 時清除它。

5939 5947 

5940* **範圍**:[`Any file`](#scopes)。在受管設定中設定以固定組織範圍的最小值,使用者和專案設定無法降低。5948* **範圍**:[`Any file`](#scopes)。在受管設定中設定以固定組織範圍的最小值,使用者和專案設定無法降低。

5941* **類型**:字串,版本號碼,例如 `"2.1.100"`5949* **類型**:字串,版本號碼,例如 `"2.1.100"`;不是有效版本的值會被忽略

5942* **預設**:未設定,因此更新可以安裝頻道提供的任何版本5950* **預設**:未設定,因此更新可以安裝頻道提供的任何版本

5943 5951 

5944此範例遵循穩定頻道,並拒絕安裝低於 2.1.100 的任何版本:5952此範例遵循穩定頻道,並拒絕安裝低於 2.1.100 的任何版本:

skills.md +151 −147

Details

120 選擇技能的載入位置120 選擇技能的載入位置

121</h2>121</h2>

122 122 

123技能的儲存位置決定了哪些工作階段會載入它。將其儲存在主目錄下,可在每個專案中使用;將其提交到儲存庫,可與該處的所有人共享;或透過外掛程式或受管設定分發,以覆蓋整個團隊。123技能的儲存位置決定了哪些工作階段會載入它。將其儲存在主目錄下,可在每個專案中使用;將其提交到版本庫,可與該處的所有人共享;或透過外掛程式或受管設定分發,以覆蓋整個團隊。

124 124 

125| 位置 | 路徑 | 載入於 |125| 位置 | 路徑 | 載入於 |

126| :----------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |126| :----------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |

127| 企業 | `.claude/skills/<skill-name>/SKILL.md` 在[受管設定目錄](/docs/zh-TW/managed-settings#delivery-mechanisms)中 | 您的組織部署它的機器上的所有使用者 |127| 企業 | `.claude/skills/<skill-name>/SKILL.md` 在[受管設定目錄](/docs/zh-TW/managed-settings#delivery-mechanisms)中 | 您的組織部署該設定的機器上的所有使用者 |

128| 個人 | `~/.claude/skills/<skill-name>/SKILL.md` | 此機器上的所有專案,但不包括[協作或雲端工作階段](#skills-in-cowork-and-cloud-sessions) |128| 個人 | `~/.claude/skills/<skill-name>/SKILL.md` | 此機器上的所有專案,但不包括[Cowork 或雲端工作階段](#skills-in-cowork-and-cloud-sessions) |

129| 專案 | `.claude/skills/<skill-name>/SKILL.md` | 此儲存庫中的工作階段。提交它,您的團隊也會獲得它 |129| 專案 | `.claude/skills/<skill-name>/SKILL.md` | 此版本庫中的工作階段。提交它,您的團隊也會獲得它 |

130| 巢狀 | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | 在 `<subdir>` 中或其下方啟動的工作階段。在上方啟動的工作階段在 Claude 處理該處的檔案時會載入技能一次。請參閱[單一儲存庫和子目錄](#discovery-from-parent-and-nested-directories) |130| 巢狀 | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | 在 `<subdir>` 中或其下方啟動的工作階段。在其上方啟動的工作階段在 Claude 處理該處的檔案時會載入該技能。請參閱[單一版本庫和子目錄](#discovery-from-parent-and-nested-directories) |

131| 其他目錄 | `.claude/skills/<skill-name>/SKILL.md` 在您使用 `--add-dir` 傳遞的目錄中 | 該工作階段。請參閱[專案外的目錄](#skills-from-additional-directories) |131| 其他目錄 | `.claude/skills/<skill-name>/SKILL.md` 在您使用 `--add-dir` 傳遞的目錄中 | 該工作階段。請參閱[專案外的目錄](#skills-from-additional-directories) |

132| 外掛程式 | `<plugin>/skills/<skill-name>/SKILL.md` | [外掛程式](/docs/zh-TW/plugins)啟用的任何位置,作為 `/plugin-name:skill-name` |132| 外掛程式 | `<plugin>/skills/<skill-name>/SKILL.md` | [外掛程式](/docs/zh-TW/plugins)啟用的任何位置,作為 `/plugin-name:skill-name` |

133| claude.ai 帳戶 | 為您的 claude.ai 帳戶啟用的技能 | 協作和雲端工作階段,以及您使用該帳戶登入的終端工作階段。請參閱[從 claude.ai 同步的技能](#how-synced-skills-behave) |133| claude.ai 帳戶 | 為您的 claude.ai 帳戶啟用的技能 | Cowork 工作階段、雲端工作階段,以及您使用該帳戶登入的終端工作階段。請參閱[從 claude.ai 同步的技能](#how-synced-skills-behave) |

134 134 

135技能資料夾也遵循這些規則:135技能資料夾也遵循以下規則:

136 136 

137* **符號連結資料夾**:企業、個人或專案位置中的 `<skill-name>` 項目可以是指向磁碟上其他位置的目錄的符號連結。Claude Code 從目標讀取 `SKILL.md` 並載入技能一次,即使多個位置指向同一目標。外掛程式技能[以不同方式處理符號連結](/docs/zh-TW/plugins-reference#share-files-within-a-marketplace-with-symlinks)。137* **符號連結資料夾**:企業、個人或專案位置中的 `<skill-name>` 項目可以是磁碟上其他位置目錄的符號連結。Claude Code 從目標讀取 `SKILL.md` 並載入技能一次,即使多個位置指向同一目標。外掛程式技能[以不同方式處理符號連結](/docs/zh-TW/plugins-reference#share-files-within-a-marketplace-with-symlinks)。

138* **保留名稱**:不要將技能資料夾命名為 `synced`,無論大小寫如何。Claude Code 使用 `~/.claude/skills/synced/` 來[儲存從 claude.ai 下載的技能](#where-synced-skills-load),並跳過您在企業、個人和專案位置中以該名稱編寫的技能。138* **保留名稱**:不要將技能資料夾命名為 `synced`,無論大小寫如何。Claude Code 使用 `~/.claude/skills/synced/` 來[儲存從 claude.ai 下載的技能](#where-synced-skills-load),並跳過您在企業、個人和專案位置中以該名稱編寫的技能。

139* **命令檔案**:`.claude/commands/` 中的 Markdown 檔案是較舊的格式,仍然有效。它支持相同的[前置資料](#frontmatter-reference),除了 `name` 和 `paths`。若要找到您輸入以叫用它的名稱,請參閱[技能如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。對於新工作,建議使用技能,因為技能也支持[支援檔案](#add-supporting-files)。139* **命令檔案**:`.claude/commands/` 中的 Markdown 檔案是較舊的格式,仍然有效。它支援相同的[前置資料](#frontmatter-reference),除了 `name` 和 `paths`。若要找到您輸入以叫用它的名稱,請參閱[技能如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。對於新工作,建議使用技能,因為技能也支援[支援檔案](#add-supporting-files)。

140* **技能資料夾作為外掛程式**:將 `.claude-plugin/plugin.json` 新增到技能資料夾,它會載入為[外掛程式](/docs/zh-TW/plugins-reference#skills-directory-plugins),名稱為 `<name>@skills-dir`,因此它可以捆綁代理、hooks 和 MCP 伺服器。在專案的 `.claude/skills/` 中,這需要先接受工作區信任對話。140* **技能資料夾作為外掛程式**:將 `.claude-plugin/plugin.json` 新增到技能資料夾,它會載入為[外掛程式](/docs/zh-TW/plugins-reference#skills-directory-plugins),名稱為 `<name>@skills-dir`,因此可以捆綁代理、hooks 和 MCP 伺服器。在專案的 `.claude/skills/` 中,這需要先接受工作區信任對話。

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">

143 在單一儲存庫和子目錄中載入技能143 在單一版本庫和子目錄中載入技能

144</h3>144</h3>

145 145 

146Claude Code 從啟動它的目錄中的 `.claude/skills/` 以及直到儲存庫根目錄的每個父目錄中載入專案技能,因此在 `packages/frontend/` 中啟動仍會拾取在根目錄定義的技能。當您在 v2.1.246 或更新版本上[使用 `/cd` 移動工作階段](/docs/zh-TW/permissions#move-the-session-to-another-directory)時,Claude Code 會新增新目錄的專案技能。146Claude Code 從您啟動它的目錄中的 `.claude/skills/` 以及直到版本庫根目錄的每個父目錄中載入專案技能,因此在 `packages/frontend/` 中啟動仍會拾取在根目錄定義的技能。當您在 v2.1.246 或更新版本上[使用 `/cd` 移動工作階段](/docs/zh-TW/permissions#move-the-session-to-another-directory)時,Claude Code 會新增新目錄的專案技能。

147 147 

148`.claude/skills/` 目錄中啟動位置下方的技能在啟動時不會載入。它們在 Claude 首次讀取或編輯該子目錄中的檔案時載入,並在工作階段的其餘時間保持可用。在此之前,它們不會出現在 `/` 功能表中,您無法按名稱叫用它們。若要更快載入它們,請使用子目錄的路徑執行 `/add-dir`,這需要 Claude Code v2.1.257 或更新版本。148在連結的 [git worktree](/docs/zh-TW/worktrees) 中執行的工作階段中,Claude Code 只在 worktree 根目錄之前搜尋父目錄。在 Claude Code v2.1.277 或更新版本上,當 worktree 簽出在其根目錄沒有 `.claude/skills` 目錄時,Claude Code 會改為載入主簽出的專案技能。請參閱[worktrees 與主簽出共享的內容](/docs/zh-TW/worktrees#what-worktrees-share-with-the-main-checkout)。

149 149 

150當巢狀技能與另一個技能共享名稱時,兩者都保持可用。在儲存庫根目錄有 `deploy` 技能,在 `apps/web/.claude/skills/` 中有另一個:150位於您啟動位置下方的 `.claude/skills/` 目錄中的技能在啟動時不會載入。它們在 Claude 首次讀取或編輯該子目錄中的檔案時載入,並在工作階段的其餘時間保持可用。在此之前,它們不會出現在 `/` 功能表中,您也無法按名稱叫用它們。若要更早載入它們,請使用子目錄的路徑執行 `/add-dir`,這需要 Claude Code v2.1.257 或更新版本。

151 

152當巢狀技能與另一個技能共享名稱時,兩者都保持可用。在版本庫根目錄有 `deploy` 技能,在 `apps/web/.claude/skills/` 中有另一個:

151 153 

152* `/deploy` 執行根技能。Claude Code 也會為 Claude 列出目錄限定的變體,並提供指示以叫用其目錄保存它正在處理的檔案的變體,因此巢狀技能仍適用於 `apps/web/` 中的工作。154* `/deploy` 執行根技能。Claude Code 也會為 Claude 列出目錄限定的變體,並提供指示以叫用其目錄保存它正在處理的檔案的變體,因此巢狀技能仍適用於 `apps/web/` 中的工作。

153* `/apps/web:deploy` 單獨執行巢狀技能。其描述命名它適用的目錄。155* `/apps/web:deploy` 單獨執行巢狀技能。其描述命名了它適用的目錄。

154 156 

155<h3 id="skills-from-additional-directories">157<h3 id="skills-from-additional-directories">

156 從專案外的目錄載入技能158 從專案外的目錄載入技能


160 162 

161Claude Code 監視您在啟動時使用 `--add-dir` 傳遞的目錄中的 `.claude/skills/`,如[在工作階段期間編輯技能](#live-change-detection)所述。它不監視新增目錄的 `.claude/commands/` 或 `.claude/agents/`,因此在更改該處的檔案後重新啟動工作階段。163Claude Code 監視您在啟動時使用 `--add-dir` 傳遞的目錄中的 `.claude/skills/`,如[在工作階段期間編輯技能](#live-change-detection)所述。它不監視新增目錄的 `.claude/commands/` 或 `.claude/agents/`,因此在更改該處的檔案後重新啟動工作階段。

162 164 

163這些載入取決於 `project` [設定來源](/docs/zh-TW/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources),預設為開啟。[`strictPluginOnlyCustomization`](/docs/zh-TW/settings-reference#strictpluginonlycustomization) 原則、[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)和 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags) 各自進一步限制它們,如這些頁面所述。請參閱[其他目錄授予檔案存取權限,而非設定](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)以了解新增目錄載入的完整表格,包括 `CLAUDE.md` 和外掛程式設定。165這些載入取決於 `project` [設定來源](/docs/zh-TW/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources),預設為開啟。[`strictPluginOnlyCustomization`](/docs/zh-TW/settings-reference#strictpluginonlycustomization) 原則、[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)和 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags) 各自進一步限制它們,如這些頁面所述。請參閱[其他目錄授予檔案存取權限,而非設定](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)以取得新增目錄載入的完整表格,包括 `CLAUDE.md` 和外掛程式設定。

164 166 

165<h3 id="resolve-skills-that-share-a-name">167<h3 id="resolve-skills-that-share-a-name">

166 解決共享名稱的技能168 解決共享名稱的技能

167</h3>169</h3>

168 170 

169當兩個技能共享名稱時,每個技能來自的位置決定了 `/name` 執行的是哪一個。該表涵蓋企業、個人、專案、巢狀、外掛程式和 claude.ai 位置、捆綁技能和命令檔案:171當兩個技能共享名稱時,每個技能的來源決定了 `/name` 執行哪一個。該表涵蓋企業、個人、專案、巢狀、外掛程式和 claude.ai 位置、捆綁技能和命令檔案:

170 172 

171| 相同名稱在 | 執行哪一個 |173| 相同名稱在 | 執行哪一個 |

172| :-------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |174| :-------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- |

173| 企業、個人和專案中的兩個 | 企業優於個人,個人優於專案。在 `~/.claude/skills/` 和專案的 `.claude/skills/` 中都有 `deploy` 時,`/deploy` 執行個人的 |175| 企業、個人和專案中的兩個 | 企業優於個人,個人優於專案。在 `~/.claude/skills/` 和專案的 `.claude/skills/` 中都有 `deploy` 時,`/deploy` 執行個人的 |

174| 這些位置中的任何一個和[捆綁技能](#bundled-skills) | 您的技能替換捆綁命令,但不替換其別名。專案 `code-review` 技能替換 `/code-review`,捆綁別名 `/review` 永遠不會執行您的技能 |176| 這些位置中的任何一個和[捆綁技能](#bundled-skills) | 您的技能取代捆綁命令,但不取代其別名。專案 `code-review` 技能取代 `/code-review`,捆綁別名 `/review` 永遠不會執行您的技能 |

175| 技能和 `.claude/commands/` 中的檔案 | 技能 |177| 技能和 `.claude/commands/` 中的檔案 | 技能 |

176| 專案根技能和巢狀技能 | 兩者都載入。請參閱[單一儲存庫和子目錄](#discovery-from-parent-and-nested-directories) |178| 專案根技能和巢狀技能 | 兩者都載入。請參閱[單一版本庫和子目錄](#discovery-from-parent-and-nested-directories) |

177| 外掛程式技能和上述任何位置的技能 | 兩者都載入,因為外掛程式技能被命名為 `/plugin-name:skill-name` |179| 外掛程式技能和上述任何位置的技能 | 兩者都載入,因為外掛程式技能命名為 `/plugin-name:skill-name` |

178| 上述任何一個和[從您的 claude.ai 帳戶同步的技能](#how-synced-skills-behave) | 另一個技能或命令。同步技能仍作為 `/anthropic-skills:<name>` 執行。請參閱[當同步技能名稱與另一個命令相符時](#when-a-synced-skill-name-matches-another-command) |180| 上述任何一個和[從您的 claude.ai 帳戶同步的技能](#how-synced-skills-behave) | 其他技能或命令。同步技能仍作為 `/anthropic-skills:<name>` 執行。請參閱[當同步技能名稱與另一個命令相符時](#when-a-synced-skill-name-matches-another-command) |

179 181 

180<h3 id="skills-in-cowork-and-cloud-sessions">182<h3 id="skills-in-cowork-and-cloud-sessions">

181 在協作和雲端工作階段中使用技能183 在 Cowork 和雲端工作階段中使用技能

182</h3>184</h3>

183 185 

184[協作](https://claude.com/product/cowork)工作階段和[雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup),包括[例行工作](/docs/zh-TW/routines),不會讀取您機器上的 `~/.claude/skills/`。互動式和排程協作工作階段都會載入為您的 claude.ai 帳戶啟用的技能,在工作階段開始時同步;從桌面應用程式側邊欄中的**自訂**或從 claude.ai 上的技能設定管理它們。雲端工作階段另外載入提交到複製儲存庫的 `.claude/skills/` 的專案技能。186[Cowork](https://claude.com/product/cowork) 工作階段和[雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup),包括[例行工作](/docs/zh-TW/routines),不會讀取您機器上的 `~/.claude/skills/`。互動式和排程 Cowork 工作階段都會載入為您的 claude.ai 帳戶啟用的技能,在工作階段啟動時同步;從 Desktop 應用程式側邊欄中的**自訂**或 claude.ai 上的技能設定管理它們。雲端工作階段另外載入提交到複製版本庫的 `.claude/skills/` 的專案技能。

185 187 

186如果技能僅存在於您機器上的 `~/.claude/skills/` 中,當[例行工作](/docs/zh-TW/routines)叫用它時,Claude Code 會報告找不到該技能,因為每次例行工作執行都會作為新的雲端工作階段啟動。若要在這些工作階段中提供個人技能:188如果技能僅存在於您機器上的 `~/.claude/skills/` 中,當[例行工作](/docs/zh-TW/routines)叫用它時,Claude Code 會報告找不到該技能,因為每次例行工作執行都會啟動為新的雲端工作階段。若要在這些工作階段中提供個人技能:

187 189 

188* 對於協作和雲端工作階段,為您的 claude.ai 帳戶啟用該技能。190* 對於 Cowork 和雲端工作階段,為您的 claude.ai 帳戶啟用該技能。

189* 對於雲端工作階段,您可以改為將技能提交到儲存庫的 `.claude/skills/`,或在儲存庫的 `.claude/settings.json` 中宣告的外掛程式中提供它。儲存庫宣告的外掛程式[在工作階段開始時安裝](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup);僅在您的使用者設定中啟用的外掛程式不會轉移。191* 對於雲端工作階段,您可以改為將技能提交到版本庫的 `.claude/skills/`。在版本庫的 `.claude/settings.json` 中宣告的外掛程式和僅在您的使用者設定中啟用的外掛程式[不會在雲端工作階段中載入](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)。

190 192 

191[桌面排程工作](/docs/zh-TW/desktop-scheduled-tasks)在您的機器上本機執行,因此它們確實載入 `~/.claude/skills/`。193[Desktop 排程工作](/docs/zh-TW/desktop-scheduled-tasks)在您的機器上本地執行,因此它們會載入 `~/.claude/skills/`。

192 194 

193<h3 id="how-synced-skills-behave">195<h3 id="how-synced-skills-behave">

194 從 claude.ai 同步的技能196 從 claude.ai 同步的技能

195</h3>197</h3>

196 198 

197本節適用於您,如果您使用協作或雲端工作階段,或在終端中使用 claude.ai 帳戶登入 Claude Code。在這些工作階段中,Claude Code 會載入為您的 claude.ai 帳戶啟用的技能,無需您進行任何設定,如[同步技能的載入位置](#where-synced-skills-load)所述。這些技能包括您在 claude.ai 設定中建立或開啟的技能、您的組織在那裡提供的技能,以及 Anthropic 的內建技能,例如 `pdf` 和 `xlsx`。199如果您使用 Cowork 或雲端工作階段,或在終端中使用 claude.ai 帳戶登入 Claude Code,本節適用於您。在這些工作階段中,Claude Code 會載入為您的 claude.ai 帳戶啟用的技能,無需您進行任何設定,如[同步技能的載入位置](#where-synced-skills-load)所述。這些技能包括您在 claude.ai 設定中建立或開啟的技能、您的組織在那裡提供的技能,以及 Anthropic 的內建技能,例如 `pdf` 和 `xlsx`。

198 200 

199Claude Code 從您的帳戶下載同步技能,而不是讀取您在執行工作階段的機器上編寫的檔案,因此它對同步技能應用不適用於您儲存在[技能位置](#where-skills-live)中的技能的規則。201Claude Code 從您的帳戶下載同步技能,而不是讀取您在工作階段執行的機器上編寫的檔案,因此它對同步技能應用不適用於您儲存在[技能位置](#where-skills-live)中的技能的規則。

200 202 

201<h4 id="where-synced-skills-load">203<h4 id="where-synced-skills-load">

202 同步技能的載入位置204 同步技能的載入位置

203</h4>205</h4>

204 206 

205在協作或雲端工作階段中,Claude Code 載入為您的 claude.ai 帳戶啟用的技能,[協作和雲端工作階段中的技能](#skills-in-cowork-and-cloud-sessions)說明如何選擇這些工作階段獲得的技能。207在 Cowork 或雲端工作階段中,Claude Code 會載入為您的 claude.ai 帳戶啟用的技能,[Cowork 和雲端工作階段中的技能](#skills-in-cowork-and-cloud-sessions)說明了如何選擇這些工作階段獲得的技能。

206 208 

207在您的終端中,Claude Code 在您使用 claude.ai 帳戶登入的工作階段中同步這些技能。當工作階段啟動時,Claude Code 會在背景中將您帳戶的技能下載到 `~/.claude/skills/synced/`,然後在工作階段執行時大約每 10 分鐘檢查一次 claude.ai 是否有變更。當檢查發現技能在 claude.ai 上被新增、編輯或關閉時,Claude Code 會在執行中的工作階段中新增、更新或移除它,無需重新啟動。終端工作階段中的同步需要 Claude Code v2.1.273 或更新版本。209在您的終端中,Claude Code 在您使用 claude.ai 帳戶登入的工作階段中同步這些技能。當工作階段啟動時,Claude Code 在背景中將您帳戶的技能下載到 `~/.claude/skills/synced/` 中,然後在工作階段執行時大約每 10 分鐘檢查一次 claude.ai 是否有變更。當檢查發現技能在 claude.ai 上被新增、編輯或關閉時,Claude Code 在執行中的工作階段中新增、更新或移除它,無需重新啟動。終端工作階段中的同步需要 Claude Code v2.1.273 或更新版本。

208 210 

209同步永遠不會延遲啟動,因為 Claude 只在叫用技能時才等待技能的下載。因此,短[非互動式](/docs/zh-TW/headless)執行可能在新增的技能下載之前完成,在這種情況下,稍後的工作階段會下載它。若要讓非互動式執行下載您的技能並在回答提示之前等待清單,請將 [`CLAUDE_CODE_SYNC_SKILLS`](/docs/zh-TW/env-vars#variables) 設定為 `1`。211同步永遠不會延遲啟動,因為 Claude 只在叫用技能時等待技能的下載。因此,短[非互動式](/docs/zh-TW/headless)執行可能在新增的技能下載之前完成,在這種情況下,稍後的工作階段會下載它。若要使非互動式執行下載您的技能並在回答提示之前等待清單,請將 [`CLAUDE_CODE_SYNC_SKILLS`](/docs/zh-TW/env-vars#variables) 設定為 `1`。

210 212 

211Claude Code 僅在使用您的 claude.ai 帳戶登入的工作階段中同步,並[從 Anthropic 取得功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)。它不在這些工作階段中同步:213Claude Code 僅在使用您的 claude.ai 帳戶登入的工作階段中同步,並[從 Anthropic 擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)。它不在這些工作階段中同步:

212 214 

213* 不使用 `/login` 儲存的登入的工作階段,例如使用 API 金鑰驗證的工作階段,或 `ANTHROPIC_AUTH_TOKEN`、`CLAUDE_CODE_OAUTH_TOKEN` 或 `apiKeyHelper` 指令碼提供認證的工作階段215* 不使用 `/login` 儲存的登入的工作階段,例如使用 API 金鑰進行驗證的工作階段,或 `ANTHROPIC_AUTH_TOKEN`、`CLAUDE_CODE_OAUTH_TOKEN` 或 `apiKeyHelper` 指令碼提供認證的工作階段

214* 不取得功能旗標的工作階段,例如 Amazon Bedrock 上的工作階段或您設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的工作階段216* 不擷取功能旗標的工作階段,例如 Amazon Bedrock 上的工作階段或您設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的工作階段

215* [裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中的工作階段或您使用 `--safe-mode` 啟動的工作階段217* [裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中的工作階段或您使用 `--safe-mode` 啟動的工作階段

216* 您的組織的受管設定[將技能鎖定到外掛程式來源](/docs/zh-TW/settings-reference#strictpluginonlycustomization-skills)的工作階段,或您使用[`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags)清單啟動的工作階段,該清單省略了 `user`218* 您的組織的受管設定[將技能鎖定到外掛程式來源](/docs/zh-TW/settings-reference#strictpluginonlycustomization-skills)的工作階段,或您使用省略 `user` 的 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 清單啟動的工作階段

217 219 

218如果您在工作階段期間使用 `/login` 登入,請重新啟動 Claude Code 以開始同步。220如果您在工作階段期間使用 `/login` 登入,請重新啟動 Claude Code 以開始同步。

219 221 

220較早工作階段同步的技能保留在磁碟上。Claude Code 在稍後使用相同帳戶登入的工作階段中載入它們,即使它無法連接到 claude.ai。222較早工作階段同步的技能保留在磁碟上。Claude Code 在稍後登入同一帳戶的工作階段中載入它們,即使它無法連線到 claude.ai。

223 

224Claude Code 下載同步技能,永遠不上傳它們。如果您或 Claude 編輯 `~/.claude/skills/synced/` 下的檔案,該變更不會儲存到您的 claude.ai 帳戶,稍後的同步可能會覆蓋或移除它。若要變更同步技能,請在 claude.ai 上更新它;下一次同步會下載新版本。

221 225 

222若要查看哪些技能已同步,請執行 `/skills`。功能表在 `claude.ai sync` 下列出它們。226若要查看哪些技能已同步,請執行 `/skills`。功能表在 `claude.ai sync` 下列出它們。

223 227 

224Anthropic 的某些技能,例如 `pdf` 和 `xlsx`,始終同步。對於其餘的,在 claude.ai 上的技能設定中開啟或關閉技能以變更它是否同步。228Anthropic 的某些技能,例如 `pdf` 和 `xlsx`,始終同步。對於其餘的,在 claude.ai 上的技能設定中開啟或關閉技能,以變更它是否同步。

225 229 

226若要停止在機器上同步,請在您的使用者設定中將 [`syncClaudeAiSkills`](/docs/zh-TW/settings-reference#syncclaudeaiskills) 設定為 `false`。Claude Code 停止下載,下次啟動時會將已同步的技能移動到 `~/.claude/skills/.trash/`,並不再載入它們。您的組織可以透過在 claude.ai 上關閉技能來為所有人關閉同步。若要在保持技能開啟的情況下停止同步,它可以在[受管設定](/docs/zh-TW/managed-settings)中設定相同的金鑰。230若要停止在機器上同步,請在您的使用者設定中將 [`syncClaudeAiSkills`](/docs/zh-TW/settings-reference#syncclaudeaiskills) 設定為 `false`。Claude Code 停止下載,下次啟動時會將已同步的技能移動到 `~/.claude/skills/.trash/`,並不再載入它們。您的組織可以透過在 claude.ai 上關閉技能來為所有人關閉同步。若要在保持技能開啟的情況下停止同步,它可以在[受管設定](/docs/zh-TW/managed-settings)中設定相同的金鑰。

227 231 

228如果您的組織在 claude.ai 上關閉技能,Claude Code 會移除下載的技能,它們停止載入。移除的技能會移動到 `~/.claude/skills/.trash/`,您可以在[保留掃描](/docs/zh-TW/claude-directory#cleaned-up-automatically)刪除它們之前復原檔案。一旦您的組織重新開啟技能,Claude Code 會在下次同步時下載您啟用的技能。232如果您的組織在 claude.ai 上關閉技能,Claude Code 會移除下載的技能,它們停止載入。移除的技能移動到 `~/.claude/skills/.trash/`,您可以在[保留掃描](/docs/zh-TW/claude-directory#cleaned-up-automatically)刪除它們之前復原檔案。一旦您的組織重新開啟技能,Claude Code 會在下一次同步時下載您啟用的技能。

229 233 

230<h4 id="when-a-synced-skill-name-matches-another-command">234<h4 id="when-a-synced-skill-name-matches-another-command">

231 當同步技能名稱與另一個命令相符時235 當同步技能名稱與另一個命令相符時

232</h4>236</h4>

233 237 

234您可以透過其完整名稱 `/anthropic-skills:<name>` 或其短名稱 `/<name>` 叫用同步技能。當另一個命令使用該短名稱時,`/<name>` 執行另一個命令,同步技能僅作為 `/anthropic-skills:<name>` 執行。在本機 `deploy` 技能和同步 `deploy` 的情況下,`/deploy` 執行本機技能,`/anthropic-skills:deploy` 執行同步技能。在 v2.1.269 之前,同步技能僅有其短名稱。238您可以透過其完整名稱 `/anthropic-skills:<name>` 或其短名稱 `/<name>` 叫用同步技能。當另一個命令使用該短名稱時,`/<name>` 執行其他命令,同步技能僅作為 `/anthropic-skills:<name>` 執行。使用本地 `deploy` 技能和同步 `deploy` 時,`/deploy` 執行本地技能,`/anthropic-skills:deploy` 執行同步的。在 v2.1.269 之前,同步技能只有其短名稱。

235 239 

236另一個命令可以是以下任何一個:240其他命令可以是以下任何一個:

237 241 

238* 內建命令或[捆綁技能](#bundled-skills),包括在您的工作階段中不可用的命令,例如在您關閉捆綁技能後242* 內建命令或[捆綁技能](#bundled-skills),包括在您的工作階段中不可用的,例如在您關閉捆綁技能後

239* 任何[本機層級](#where-skills-live)的技能或 `.claude/commands/` 中的檔案243* 任何[本地層級](#where-skills-live)的技能或 `.claude/commands/` 中的檔案

240* 外掛程式技能244* 外掛程式技能

241* [MCP 提示](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)245* [MCP 提示](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)

242 246 

243Claude Code 標籤同步技能,以便您可以判斷它們來自何處。`/skills` 功能表和 `/context` 在 `claude.ai sync` 下分組同步技能,`/` 命令功能表將它們標記為來自 claude.ai。247Claude Code 標籤同步技能,以便您可以判斷它們的來源。`/skills` 功能表和 `/context` 在 `claude.ai sync` 下分組同步技能,`/` 命令功能表將它們標記為來自 claude.ai。

244 248 

245比較名稱時,Claude Code 忽略大小寫、間距和不可見字元,並將相容性形式(如全寬字母和破折號變體)視為其純等效項。例如,名為 `Commit` 的同步技能和名為 `commit` 的本機技能計為相同名稱,因此 `/commit` 繼續執行您的本機技能。249比較名稱時,Claude Code 忽略大小寫、間距和不可見字元,並將相容性形式(例如全寬字母和破折號變體)視為其純等效項。例如,名為 `Commit` 的同步技能和名為 `commit` 的本地技能計為相同名稱,因此 `/commit` 繼續執行您的本地技能。

246 250 

247僅因另一個字母表中的相似字母而不同的名稱計為不同名稱,`claude.ai sync` 標籤是您區分兩者的方式。這些檢查和標籤需要 Claude Code v2.1.228 或更新版本。251僅因來自另一個字母表的外觀相似字母而不同的名稱計為不同名稱,`claude.ai sync` 標籤是您區分兩者的方式。這些檢查和標籤需要 Claude Code v2.1.228 或更新版本。

248 252 

249<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">253<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

250 Claude Code 如何處理同步技能的前置資料254 Claude Code 如何處理同步技能的前置資料


261 265 

262Claude Code 對同步技能主體的處理取決於工作階段執行的位置:266Claude Code 對同步技能主體的處理取決於工作階段執行的位置:

263 267 

264* 在雲端工作階段中,主體保持本機技能具有的行為,因為工作階段在隔離容器中執行。268* 在雲端工作階段中,主體保持本地技能具有的行為,因為工作階段在隔離容器中執行。

265* 在您桌面上的協作工作階段中,主體保持本機技能具有的行為,除了 Claude Code 將每個 `!` 命令行替換為 [`disableSkillShellExecution` 預留位置](#inject-dynamic-context),就像它對您在那裡提供的每個技能所做的一樣。269* 在您桌面上的 Cowork 工作階段中,主體保持本地技能具有的行為,除了 Claude Code 將每個 `!` 命令列替換為 [`disableSkillShellExecution` 預留位置](#inject-dynamic-context),就像它對您在那裡提供的每個技能所做的一樣。

266* 在您機器上的任何其他工作階段中,Claude Code 不執行 [`!` 命令](#inject-dynamic-context),不附加 `@` 參考命名的檔案(就像它對本機技能所做的那樣),也不替換 `${CLAUDE_PROJECT_DIR}` 和 `${CLAUDE_SESSION_ID}` 預留位置,因此 `@` 參考和兩個預留位置都作為字面文字到達 Claude。`!` 命令行也作為字面文字到達 Claude,或在 `disableSkillShellExecution` 開啟時作為該預留位置。此處理需要 Claude Code v2.1.228 或更新版本。270* 在您機器上的任何其他工作階段中,Claude Code 不執行 [`!` 命令](#inject-dynamic-context),不附加 `@` 參考命名的檔案,方式與本地技能不同,不替換 `${CLAUDE_PROJECT_DIR}` 和 `${CLAUDE_SESSION_ID}` 預留位置,因此 `@` 參考和兩個預留位置都作為字面文字到達 Claude。`!` 命令列也作為字面文字到達 Claude,或當 `disableSkillShellExecution` 開啟時作為該預留位置。此處理需要 Claude Code v2.1.228 或更新版本。

267 271 

268<h3 id="live-change-detection">272<h3 id="live-change-detection">

269 在工作階段期間編輯技能273 在工作階段期間編輯技能

270</h3>274</h3>

271 275 

272Claude Code 監視技能目錄的檔案變更,除了在[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中。當您在 `~/.claude/skills/`、專案 `.claude/skills/` 或 `--add-dir` 目錄內的 `.claude/skills/` 下新增、編輯或移除技能時,Claude Code 在目前工作階段內拾取變更,無需重新啟動。如果您建立工作階段啟動時不存在的頂層技能目錄,請重新啟動 Claude Code,以便它可以監視新目錄。276Claude Code 監視技能目錄的檔案變更,除了在[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中。當您在 `~/.claude/skills/`、專案 `.claude/skills/` 或 `--add-dir` 目錄內的 `.claude/skills/` 中新增、編輯或移除技能時,Claude Code 在目前工作階段內拾取變更,無需重新啟動。如果您建立在工作階段啟動時不存在的頂層技能目錄,請重新啟動 Claude Code,以便它可以監視新目錄。

273 277 

274即時變更偵測僅涵蓋 `SKILL.md` 文字。對於也是[外掛程式](/docs/zh-TW/plugins-reference#skills-directory-plugins)的技能資料夾,`hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的變更需要 `/reload-plugins` 才能生效。278即時變更偵測僅涵蓋 `SKILL.md` 文字。對於也是[外掛程式](/docs/zh-TW/plugins-reference#skills-directory-plugins)的技能資料夾,`hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的變更需要 `/reload-plugins` 才能生效。

275 279 


277 移除技能281 移除技能

278</h3>282</h3>

279 283 

280移除技能的方式取決於它來自何處:284您移除技能的方式取決於它的來源:

281 285 

282* **個人或專案技能**:刪除技能的目錄,`~/.claude/skills/<skill-name>/` 或 `.claude/skills/<skill-name>/`。Claude Code [在目前工作階段中將其從 `/skills` 中移除](#live-change-detection);Claude Code 已從其載入的內容遵循[技能內容生命週期](#skill-content-lifecycle)。286* **個人或專案技能**:刪除技能的目錄,`~/.claude/skills/<skill-name>/` 或 `.claude/skills/<skill-name>/`。Claude Code [在目前工作階段中將其從 `/skills` 中移除](#live-change-detection);Claude Code 已從其載入的內容遵循[技能內容生命週期](#skill-content-lifecycle)。

283* **企業技能**:管理員從[受管設定目錄](/docs/zh-TW/managed-settings#delivery-mechanisms)內的 `.claude/skills/` 刪除技能的目錄,例如 Linux 上的 `/etc/claude-code/.claude/skills/<skill-name>/`。287* **企業技能**:管理員從[受管設定目錄](/docs/zh-TW/managed-settings#delivery-mechanisms)內的 `.claude/skills/` 中刪除技能的目錄,例如 Linux 上的 `/etc/claude-code/.claude/skills/<skill-name>/`。

284* **外掛程式技能**:從 `/plugin` 功能表禁用或卸載提供它的外掛程式,或使用 `/plugin uninstall <plugin-name>@<marketplace-name>`。Claude Code 在[變更應用](/docs/zh-TW/discover-plugins#apply-plugin-changes-without-restarting)時或當您重新啟動時卸載外掛程式的技能。288* **外掛程式技能**:從 `/plugin` 功能表停用或解除安裝提供它的外掛程式,或使用 `/plugin uninstall <plugin-name>@<marketplace-name>`。當[變更適用](/docs/zh-TW/discover-plugins#apply-plugin-changes-without-restarting)或您重新啟動時,Claude Code 卸載外掛程式的技能。

285* **從 claude.ai 同步的技能**:在您[啟用它](#skills-in-cowork-and-cloud-sessions)的相同位置為您的 claude.ai 帳戶關閉該技能。Claude Code 在下次[同步您的技能](#where-synced-skills-load)時將其從 `~/.claude/skills/synced/` 中移除。如果您改為手動刪除目錄,下次同步會在技能在 claude.ai 上保持啟用時再次下載它。289* **從 claude.ai 同步的技能**:在您[啟用它](#skills-in-cowork-and-cloud-sessions)的相同位置為您的 claude.ai 帳戶關閉該技能。Claude Code 在下一次[同步您的技能](#where-synced-skills-load)時將其從 `~/.claude/skills/synced/` 中移除。如果您改為手動刪除目錄,下一次同步會在技能在 claude.ai 上保持啟用時再次下載它。

286* **捆綁技能**:設定 [`disableBundledSkills`](#bundled-skills) 為 `true` 以關閉捆綁技能,或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中將一個技能設定為 `"off"` 以隱藏它。290* **捆綁技能**:將 [`disableBundledSkills`](#bundled-skills) 設定為 `true` 以關閉捆綁技能,或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中將一個技能設定為 `"off"` 以隱藏它。

287 291 

288若要保留個人或專案技能但停止 Claude 自動叫用它,請在其前置資料中設定 [`disable-model-invocation: true`](#control-who-invokes-a-skill),或在不想編輯檔案時在 [`skillOverrides`](#override-skill-visibility-from-settings) 中設定 `"user-invocable-only"`。292若要保留個人或專案技能但停止 Claude 自動叫用它,請在其前置資料中設定 [`disable-model-invocation: true`](#control-who-invokes-a-skill),或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中設定 `"user-invocable-only"`,當您不想編輯檔案時。

289 293 

290<h2 id="configure-skills">294<h2 id="configure-skills">

291 設定 skills295 設定 skills


297 Skills 內容的類型301 Skills 內容的類型

298</h3>302</h3>

299 303 

300Skill 檔案可以包含任何指示,但思考您想如何調用它們有助於指導應該包含的內容:304Skill 檔案可以包含任何指示,但思考您想如何調用它們有助於指導應該包含什麼:

301 305 

302**參考內容**新增 Claude 應用於您目前工作的知識。慣例、模式、風格指南、領域知識。此內容以內聯方式運行,因此 Claude 可以將其與您的對話上下文一起使用。306**參考內容**添加 Claude 應用於您目前工作的知識。慣例、模式、風格指南、領域知識。此內容以內聯方式運行,因此 Claude 可以將其與您的對話上下文一起使用。

303 307 

304```yaml theme={null}308```yaml theme={null}

305---309---


313- Include request validation317- Include request validation

314```318```

315 319 

316**任務內容**為特定操作(如部署、提交或程式碼生成)提供 Claude 逐步指示。這些通常是您想直接使用 `/skill-name` 調用的操作,而不是讓 Claude 決定何時運行它們。新增 `disable-model-invocation: true` 以防止 Claude 自動觸發它。下面的範例新增了 `context: fork`,它在自己的 subagent 上下文中運行 skill;請參閱[在 subagent 中運行 skills](#run-skills-in-a-subagent)。320**任務內容**為特定操作(如部署、提交或程式碼生成)提供 Claude 逐步指示。這些通常是您想直接使用 `/skill-name` 調用的操作,而不是讓 Claude 決定何時運行它們。添加 `disable-model-invocation: true` 以防止 Claude 自動觸發它。下面的範例添加了 `context: fork`,它在自己的子代理上下文中運行 skill;請參閱[在子代理中運行 skills](#run-skills-in-a-subagent)。

317 321 

318```yaml theme={null}322```yaml theme={null}

319---323---


3293. Push to the deployment target3333. Push to the deployment target

330```334```

331 335 

332保持主體本身簡潔。一旦 skill 載入,其內容[在各個回合中保持在上下文中](#skill-content-lifecycle),因此每一行都是一個重複的 token 成本。說明要做什麼,而不是敘述如何或為什麼,並應用與[CLAUDE.md 內容](/docs/zh-TW/best-practices#write-an-effective-claude-md)相同的簡潔性測試。336保持主體本身簡潔。一旦 skill 加載,其內容[在各個回合中保持在上下文中](#skill-content-lifecycle),因此每一行都是一個重複的 token 成本。說明要做什麼,而不是敘述如何或為什麼,並應用與[CLAUDE.md 內容](/docs/zh-TW/best-practices#write-an-effective-claude-md)相同的簡潔性測試。

333 337 

334<h3 id="frontmatter-reference">338<h3 id="frontmatter-reference">

335 Frontmatter 參考339 Frontmatter 參考

336</h3>340</h3>

337 341 

338除了 markdown 內容外,您可以使用位於 `SKILL.md` 檔案頂部 `---` 標記之間的 YAML frontmatter 欄位來設定 skill 行為:342使用位於 `SKILL.md` 頂部 `---` 標記之間的 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 設定 skill,並在結束 `---` 之後將 skill 的指示寫為 Markdown。欄位名稱使用由連字號分隔的小寫單詞,除了 `when_to_use`。`.claude/commands/` 中的[命令檔案](#where-skills-live)接受相同的欄位,除了 `name` 和 `paths`。此範例設定四個欄位:

339 343 

340```yaml theme={null}344```yaml theme={null}

341---345---


348Your skill instructions here...352Your skill instructions here...

349```353```

350 354 

351所有欄位都是選用的。只建議使用 `description`,以便 Claude 知道何時使用該 skill。355所有欄位都是可選的。只有 `description` 是建議的,以便 Claude 知道何時使用 skill。欄位名稱必須與表格完全匹配,包括連字號:Claude Code 會忽略它不識別的欄位,而不報告錯誤。

352 356 

353Claude Code 僅在開啟的 `---` 是檔案的第一行時才讀取 frontmatter。否則,它會將整個檔案(包括 `---` 標記)視為 skill 內容。357Claude Code 僅在開啟 `---` 是檔案的第一行時讀取 frontmatter。否則,它將整個檔案(包括 `---` 標記)視為 skill 內容。如果標記之間的 YAML 無法解析,skill 仍會加載,但沒有設定任何欄位;請參閱[Skill 未觸發](#skill-not-triggering)以查找並修復錯誤。

354 358 

355布林欄位接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小寫),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 僅識別 `true` 和 `false`。359布林欄位接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小寫),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 僅識別 `true` 和 `false`。

356 360 

357| 欄位 | 必需 | 說明 |361| 欄位 | 必需 | 說明 |

358| :------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |362| :------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

359| `name` | 否 | 在 skill 清單中顯示的顯示名稱。預設為目錄名稱。請參閱[skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解該欄位如何與您鍵入以調用 skill 的名稱互動。 |363| `name` | 否 | 在 skill 列表中顯示的顯示名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |

360| `description` | 建議 | skill 的功能及何時使用。Claude 使用此項來決定何時應用該 skill。如果省略,則使用 markdown 內容的第一段。將關鍵用例放在首位:組合的 `description` 和 `when_to_use` 文字在 skill 清單中被截斷為 1,536 個字元,以減少上下文使用。 |364| `description` | 建議 | Skill 的功能以及何時使用它。Claude 使用此來決定何時應用 skill。如果省略,使用 markdown 內容的第一個非空行。將關鍵用例放在首位:組合的 `description` 和 `when_to_use` 文本在 skill 列表中被截斷為 1,536 個字元,以減少上下文使用。 |

361| `when_to_use` | 否 | Claude 應何時調用該 skill 的其他上下文,例如觸發短語或範例請求。附加到 skill 清單中的 `description`,並計入 1,536 字元上限。 |365| `when_to_use` | 否 | Claude 應何時調用 skill 的其他上下文,例如觸發短語或範例請求。附加到 skill 列表中的 `description`,並計入 1,536 字元上限。 |

362| `argument-hint` | 否 | 在自動完成期間顯示的提示,以指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |366| `argument-hint` | 否 | 在自動完成期間顯示的提示,以指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |

363| `arguments` | 否 | 用於 skill 內容中[`$name` 替換](#available-string-substitutions)的具名位置引數。接受以空格分隔的字串或 YAML 清單。名稱按順序對應到引數位置。 |367| `arguments` | 否 | 用於 skill 內容中[`$name` 替換](#available-string-substitutions)的命名位置引數。接受以空格分隔的字串或 YAML 列表。名稱按順序映射到引數位置。 |

364| `disable-model-invocation` | 否 | 設定為 `true` 以防止 Claude 自動載入此 skill。用於您想使用 `/name` 手動觸發的工作流程。也防止 skill 被[預載入 subagents](/docs/zh-TW/sub-agents#preload-skills-into-subagents)。從 v2.1.196 開始,也防止 skill 在[排程任務](/docs/zh-TW/scheduled-tasks)以該 skill 作為其提示時運行。預設值:`false`。 |368| `disable-model-invocation` | 否 | 設定為 `true` 以防止 Claude 自動加載此 skill。用於您想使用 `/name` 手動觸發的工作流程。也防止 skill 被[預加載到子代理中](/docs/zh-TW/sub-agents#preload-skills-into-subagents)。從 v2.1.196 開始,也防止 skill 在[排程任務](/docs/zh-TW/scheduled-tasks)以 skill 作為其提示觸發時運行。預設值:`false`。 |

365| `user-invocable` | 否 | 當只有 Claude 應調用該 skill 時設定為 `false`:Claude Code 將其從 `/` 功能表中隱藏,並且當您鍵入 `/name` 時不會運行它。用於使用者不應直接調用的背景知識。預設值:`true`。 |369| `user-invocable` | 否 | 當只有 Claude 應調用 skill 時設定為 `false`:Claude Code 將其從 `/` 菜單中隱藏,當您鍵入 `/name` 時不運行它。用於使用者不應直接調用的背景知識。預設值:`true`。 |

366| `allowed-tools` | 否 | Claude 在調用此 skill 的回合中可以使用而無需請求許可的工具。當您傳送下一條訊息時,授予將被清除。接受以空格或逗號分隔的字串或 YAML 清單。請參閱[為 skill 預先批准工具](#pre-approve-tools-for-a-skill)。 |370| `allowed-tools` | 否 | Claude 在調用此 skill 的回合中可以使用而無需請求許可的工具。當您發送下一條訊息時,授予清除。接受以空格或逗號分隔的字串或 YAML 列表。請參閱[為 skill 預先批准工具](#pre-approve-tools-for-a-skill)。 |

367| `disallowed-tools` | 否 | 此 skill 處於活動狀態時從 Claude 可用工具池中移除的工具。用於不應呼叫某些工具的自主 skills,例如背景迴圈的 `AskUserQuestion`。接受以空格或逗號分隔的字串或 YAML 清單。當您傳送下一條訊息時,限制將被清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除[`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。 |371| `disallowed-tools` | 否 | 此 skill 處於活動狀態時從 Claude 的可用工具池中移除的工具。用於不應呼叫某些工具的自主 skills,例如背景迴圈的 `AskUserQuestion`。接受以空格或逗號分隔的字串或 YAML 列表。當您發送下一條訊息時,限制清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除[`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。 |

368| `model` | 否 | 此 skill 處於活動狀態時要使用的模型。覆蓋適用於目前回合的其餘部分,不會儲存到設定。當您傳送下一個提示時,工作階段模型會繼續。接受與[`/model`](/docs/zh-TW/model-config)相同的值,或 `inherit` 以保持活動模型。您組織的[`availableModels`](/docs/zh-TW/model-config#restrict-model-selection)允許清單排除的值不會被使用,工作階段會保持其目前模型。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,以及在[計畫模式中分類器檢查命令時](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode),自動模式不支援的模型也不會被使用,工作階段會保持其目前模型。使用 `context: fork` 時,該值設定[分叉 subagent 的模型](#run-skills-in-a-subagent),而被排除的值遵循[與 subagent 模型覆蓋相同的規則](/docs/zh-TW/model-config#restrict-model-selection)。 |372| `model` | 否 | 此 skill 處於活動狀態時要使用的模型。覆蓋適用於目前回合的其餘部分,不會保存到設定。當您發送下一個提示時,工作階段模型恢復。接受與[`/model`](/docs/zh-TW/model-config)相同的值,或 `inherit` 以保持活動模型。您組織的[`availableModels`](/docs/zh-TW/model-config#restrict-model-selection)允許清單排除的值不被使用,工作階段保持其目前模型。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,以及在[計畫模式中,當分類器檢查命令時](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode),自動模式不支援的模型也不被使用,工作階段保持其目前模型。使用 `context: fork` 時,該值設定[分叉子代理的模型](#run-skills-in-a-subagent),排除的值遵循[與子代理模型覆蓋相同的規則](/docs/zh-TW/model-config#restrict-model-selection)。 |

369| `effort` | 否 | 此 skill 處於活動狀態時的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。覆蓋工作階段努力等級。預設值:從工作階段繼承。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用等級取決於模型。 |373| `effort` | 否 | 此 skill 處於活動狀態時的[努力級別](/docs/zh-TW/model-config#adjust-effort-level)。覆蓋工作階段努力級別。預設值:從工作階段繼承。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用級別取決於模型。 |

370| `context` | 否 | 設定為 `fork` 以在分叉 subagent 上下文中運行。請參閱[在 subagent 中運行 skills](#run-skills-in-a-subagent)。 |374| `context` | 否 | 設定為 `fork` 以在分叉子代理上下文中運行。請參閱[在子代理中運行 skills](#run-skills-in-a-subagent)。 |

371| `agent` | 否 | 設定 `context: fork` 時要使用的 subagent 類型。 |375| `agent` | 否 | 設定 `context: fork` 時要使用的子代理類型。 |

372| `background` | 否 | 僅適用於 `context: fork`。設定為 `false` 以在調用該 skill 的回合中等待分叉 subagent 的結果,而不是[在背景中運行它](#run-skills-in-a-subagent)。預設值:`true`。需要 Claude Code v2.1.218 或更新版本。 |376| `background` | 否 | 僅適用於 `context: fork`。設定為 `false` 以在調用 skill 的回合中等待分叉子代理的結果,而不是[在背景中運行它](#run-skills-in-a-subagent)。預設值:`true`。需要 Claude Code v2.1.218 或更新版本。 |

373| `hooks` | 否 | Claude Code 在調用該 skill 時註冊並在工作階段的其餘部分保持運行的 hooks。請參閱[skills 和 agents 中的 Hooks](/docs/zh-TW/hooks#hooks-in-skills-and-agents)以了解設定格式和 `once` 選項。 |377| `hooks` | 否 | Claude Code 在調用 skill 時註冊並在工作階段的其餘部分保持運行的 hooks。請參閱[Skills 和代理中的 Hooks](/docs/zh-TW/hooks#hooks-in-skills-and-agents)以了解設定格式和 `once` 選項。 |

374| `paths` | 否 | Glob 模式,限制何時啟動此 skill。接受以逗號分隔的字串或 YAML 清單。設定後,Claude 僅在處理與模式相符的檔案時自動載入該 skill。使用與[路徑特定規則](/docs/zh-TW/memory#path-specific-rules)相同的格式。 |378| `paths` | 否 | Glob 模式,限制何時啟動此 skill。接受以逗號分隔的字串或 YAML 列表。設定時,Claude 僅在處理與模式匹配的檔案時自動加載 skill。使用與[路徑特定規則](/docs/zh-TW/memory#path-specific-rules)相同的格式。 |

375| `shell` | 否 | 用於此 skill 中的 `` !`command` `` 和 ` ```! ` 區塊的 shell。接受 `bash`(預設)或 `powershell`。設定 `powershell` 在啟用[PowerShell 工具](/zh-TW/tools-reference#powershell-tool)時透過 PowerShell 運行內聯 shell 命令:在沒有 Git Bash 的 Windows 上預設開啟,在具有 Git Bash 的 claude.ai 和 Console 帳戶上預設開啟,在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 工作階段以及 macOS、Linux 和 WSL 上需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。將其設定為 `0` 以關閉工具。 |379| `shell` | 否 | 用於此 skill 中 `` !`command` `` 和 ` ```! ` 區塊的 shell。接受 `bash`(預設)或 `powershell`。設定 `powershell` 在啟用 [PowerShell 工具](/zh-TW/tools-reference#powershell-tool)時透過 PowerShell 運行內聯 shell 命令:在沒有 Git Bash 的 Windows 上預設開啟,在具有 Git Bash 的 claude.ai 和 Console 帳戶上預設開啟,在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 工作階段以及 macOS、Linux 和 WSL 上需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。設定為 `0` 以關閉工具。 |

376| `metadata` | 否 | 您自己的鍵值資料的自由格式 YAML 對應,例如權利或目錄欄位,由您自己的工具從 `SKILL.md` 讀取。Claude Code 不對其內容進行操作,並會丟棄不是對應的值。不要重複使用 frontmatter 欄位名稱(例如 `paths`)作為鍵。 |380| `metadata` | 否 | 您自己的鍵值資料的自由格式 YAML 映射,例如權利或目錄欄位,由您自己的工具從 `SKILL.md` 讀取。Claude Code 不對其內容進行操作,並丟棄不是映射的值。不要重複使用 frontmatter 欄位名稱(例如 `paths`)作為鍵。 |

377| `license` | 否 | 涵蓋該 skill 的授權。[Agent Skills](https://agentskills.io) 規格的一部分;請參閱[在 Claude Code 外使用 skill frontmatter](#using-skill-frontmatter-outside-claude-code)。Claude Code 接受該欄位但不對其進行操作。 |381| `license` | 否 | 涵蓋 skill 的許可證。[Agent Skills](https://agentskills.io) 規範的一部分;請參閱[在 Claude Code 外使用 skill frontmatter](#using-skill-frontmatter-outside-claude-code)。Claude Code 接受該欄位但不對其進行操作。 |

378| `compatibility` | 否 | skill 的環境要求,例如預期的產品或系統先決條件,如[Agent Skills](https://agentskills.io) 規格所定義;請參閱[在 Claude Code 外使用 skill frontmatter](#using-skill-frontmatter-outside-claude-code)。接受最多 500 個字元的字串。Claude Code 接受該欄位但不對其進行操作。 |382| `compatibility` | 否 | Skill 的環境要求,例如預期的產品或系統先決條件,如 [Agent Skills](https://agentskills.io) 規範所定義;請參閱[在 Claude Code 外使用 skill frontmatter](#using-skill-frontmatter-outside-claude-code)。接受最多 500 個字元的字串。Claude Code 接受該欄位但不對其進行操作。 |

379 383 

380<h4 id="using-skill-frontmatter-outside-claude-code">384<h4 id="using-skill-frontmatter-outside-claude-code">

381 在 Claude Code 外使用 skill frontmatter385 在 Claude Code 外使用 skill frontmatter

382</h4>386</h4>

383 387 

384Claude Code 接受上表中的每個欄位。在 Claude Code 外,您只能使用[Agent Skills](https://agentskills.io) 規格中的欄位:388Claude Code 接受上表中的每個欄位。在 Claude Code 外,您只能使用 [Agent Skills](https://agentskills.io) 規範中的欄位:

385 389 

386| 發佈路徑 | 您可以使用的 Frontmatter 欄位 |390| 分發路徑 | 您可以使用的 Frontmatter 欄位 |

387| :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------ |391| :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------ |

388| Claude Code skills 在[任何等級](#where-skills-live),包括[plugin](/docs/zh-TW/plugins) skills | 上表中的每個欄位 |392| Claude Code skills 在[任何級別](#where-skills-live),包括[插件](/docs/zh-TW/plugins) skills | 上表中的每個欄位 |

389| claude.ai skill 上傳、Skills API 和使用 [anthropics/skills](https://github.com/anthropics/skills) 中的 `package_skill.py` 進行打包 | `name`、`description`、`license`、`compatibility`、`metadata`、`allowed-tools` |393| claude.ai skill 上傳、Skills API 和使用 [anthropics/skills](https://github.com/anthropics/skills) 中的 `package_skill.py` 進行打包 | `name`、`description`、`license`、`compatibility`、`metadata`、`allowed-tools` |

390 394 

391當您為[Cowork 和雲端工作階段](#skills-in-cowork-and-cloud-sessions)啟用個人 skill(包括例行程序)時,您會將其上傳到 claude.ai,因此適用相同的規則。395當您為 claude.ai 帳戶啟用個人 skill 時(例如在 [Cowork 和雲端工作階段](#skills-in-cowork-and-cloud-sessions)和例行程序中使用它),您將其上傳到 claude.ai,因此適用相同的規則。

392 396 

393如果您包含規格不允許的任何欄位,打包或上傳將失敗並出現硬錯誤,而不是忽略該欄位:397如果您包含規範不允許的任何欄位,打包或上傳會失敗並出現硬錯誤,而不是忽略該欄位:

394 398 

395```399```

396Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name400Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name

397```401```

398 402 

399將 frontmatter 限制為規格的六個欄位可避免上述意外鍵錯誤。[Agent Skills 規格](https://agentskills.io)和[Skills API 要求](https://docs.claude.com/en/api/skills-guide)定義這些路徑驗證的所有其他內容。Claude Code 專用的主體功能,例如[動態上下文注入](#inject-dynamic-context),在 claude.ai 聊天或透過 API 中不起作用。Claude Code 接受所有六個欄位,因此遵循規格的 frontmatter 在 Claude Code 中無需更改即可載入。403將 frontmatter 限制為規範的六個欄位可避免上述意外鍵錯誤。[Agent Skills 規範](https://agentskills.io)和 [Skills API 要求](https://docs.claude.com/en/api/skills-guide)定義這些路徑驗證的所有其他內容。Claude Code 特定的主體功能,例如[動態上下文注入](#inject-dynamic-context),在 claude.ai 聊天或透過 API 中不起作用。Claude Code 接受所有六個欄位,因此遵循規範的 frontmatter 在 Claude Code 中加載時無需更改。

400 404 

401<h4 id="how-a-skill-gets-its-command-name">405<h4 id="how-a-skill-gets-its-command-name">

402 skill 如何獲得其命令名稱406 Skill 如何獲得其命令名稱

403</h4>407</h4>

404 408 

405您鍵入以調用 skill 的命令來自 skill 檔案的位置,對於 plugin skills,也來自 frontmatter `name` 欄位。在個人或專案 skill 中,`name` 僅設定在 skill 清單中顯示的顯示標籤,命令仍來自目錄名稱。在 plugin skill 中,`name` 設定命令的最後一段,plugin 前綴保持不變。409您鍵入以調用 skill 的命令來自 skill 檔案的位置,對於插件 skills,也來自 frontmatter `name` 欄位。在個人或專案 skill 中,`name` 僅設定在 skill 列表中顯示的顯示標籤,命令仍來自目錄名稱。在插件 skill 中,`name` 設定命令的最後一段,插件前綴保持不變。

406 410 

407下表顯示了每個佈局的命令名稱來自何處:411下表顯示了每個佈局的命令名稱來自何處:

408 412 

409| Skill 位置 | 命令名稱來源 | 範例 |413| Skill 位置 | 命令名稱來源 | 範例 |

410| :------------------------------------------------------------- | :-------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- |414| :-------------------------------------------------------------- | :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- |

411| `~/.claude/skills/` 或 `.claude/skills/` 下的 Skill 目錄 | 目錄名稱 | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |415| `~/.claude/skills/` 或 `.claude/skills/` 下的 Skill 目錄 | 目錄名稱 | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

412| [嵌套](#where-skills-live)`.claude/skills/` 目錄,當名稱與另一個 skill 衝突時 | 相對於工作目錄的子目錄路徑,然後是 skill 目錄名稱 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |416| [嵌套](#where-skills-live) `.claude/skills/` 目錄,當名稱與另一個 skill 衝突時 | 相對於工作目錄的子目錄路徑,然後是 skill 目錄名稱 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

413| `.claude/commands/` 下的檔案 | 檔案名稱(不含副檔名) | `.claude/commands/deploy.md` → `/deploy` |417| `.claude/commands/` 下的檔案 | 檔案名稱(不含副檔名) | `.claude/commands/deploy.md` → `/deploy` |

414| `.claude/commands/` 的子目錄中的檔案 | 相對於 `commands/` 的子目錄路徑,每個 `/` 替換為 `:`,然後是不含副檔名的檔案名稱 | `.claude/commands/frontend/component.md` → `/frontend:component` |418| `.claude/commands/` 的子目錄中的檔案 | 相對於 `commands/` 的子目錄路徑,每個 `/` 替換為 `:`,然後是檔案名稱(不含副檔名) | `.claude/commands/frontend/component.md` → `/frontend:component` |

415| Plugin `skills/` 子目錄 | Frontmatter `name` 或目錄名稱,由 plugin 命名空間 | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`,或使用 `name: fancy` 時為 `/my-plugin:fancy` |419| 插件 `skills/` 子目錄 | Frontmatter `name` 或目錄名稱,由插件命名空間 | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`,或使用 `name: fancy` 時為 `/my-plugin:fancy` |

416| Plugin 根 `SKILL.md` | Frontmatter `name`,以 plugin 目錄名稱作為後備 | `my-plugin/SKILL.md` 搭配 `name: review` → `/my-plugin:review`。請參閱[路徑行為規則](/docs/zh-TW/plugins-reference#path-behavior-rules) |420| 插件根 `SKILL.md` | Frontmatter `name`,以插件目錄名稱作為後備 | `my-plugin/SKILL.md` 帶有 `name: review` → `/my-plugin:review`。請參閱[路徑行為規則](/docs/zh-TW/plugins-reference#path-behavior-rules) |

417| Skill [從 claude.ai 同步](#how-synced-skills-behave) | 您 claude.ai 帳戶上的 skill 名稱,前綴為 `anthropic-skills:` | 帳戶 skill `deploy` → `/anthropic-skills:deploy`,或在沒有其他命令使用該名稱時為 `/deploy` |421| Skill [從 claude.ai 同步](#how-synced-skills-behave) | 您 claude.ai 帳戶上 skill 的名稱,前綴為 `anthropic-skills:` | 帳戶 skill `deploy` → `/anthropic-skills:deploy`,或在沒有其他命令使用該名稱時為 `/deploy` |

418 422 

419在 plugin skill 中,frontmatter `name` 替換命令最後一段中的目錄名稱,因此 `my-plugin/skills/review/SKILL.md` 搭配 `name: fancy` 變成 `/my-plugin:fancy`。除非另一個命令已使用該名稱,否則裸 `/fancy` 也會調用該 skill。如果您寫的 `name` 已經以 plugin 自己的前綴開頭,Claude Code 在 v2.1.246 或更新版本上不會再次新增前綴。例如,`name: my-plugin:fancy` 仍然變成 `/my-plugin:fancy`。從 v2.1.216 到 v2.1.245,當 `name` 已經帶有前綴時,Claude Code 會加倍前綴。423在插件 skill 中,frontmatter `name` 替換命令最後一段中的目錄名稱,因此 `my-plugin/skills/review/SKILL.md` 帶有 `name: fancy` 變成 `/my-plugin:fancy`。裸 `/fancy` 也調用 skill,除非另一個命令已使用該名稱。如果您寫的 `name` 已經以插件自己的前綴開頭,Claude Code 在 v2.1.246 或更新版本上不會再次添加前綴。例如,`name: my-plugin:fancy` 仍然變成 `/my-plugin:fancy`。從 v2.1.216 到 v2.1.245,當 `name` 已經帶有它時,Claude Code 會加倍前綴。

420 424 

421在[非互動式工作階段](/docs/zh-TW/headless)中,名稱 `help` 和 `feedback` 不是為其僅限終端的內建命令保留的,因此具有其中一個名稱的 plugin skill 在那裡保持其裸命令。每個其他僅限終端的內建命令的名稱(例如 `/login`)即使該命令無法在這些工作階段中運行,仍然保留。425在[非互動式工作階段](/docs/zh-TW/headless)中,名稱 `help` 和 `feedback` 不是為其僅限終端的內建命令保留的,因此具有其中一個名稱的插件 skill 在那裡保持其裸命令。每個其他僅限終端的內建命令的名稱(例如 `/login`)保持保留,即使該命令無法在這些工作階段中運行。

422 426 

423對於 plugin 根 `SKILL.md`,沒有 skill 目錄可以從中獲取名稱,因此 `name` 提供整個最後一段。沒有 `name` 欄位,Claude Code 會回退到 plugin 的目錄名稱。427對於插件根 `SKILL.md`,沒有 skill 目錄可以從中獲取名稱,因此 `name` 提供整個最後一段。沒有 `name` 欄位,Claude Code 回退到插件的目錄名稱。

424 428 

425<h4 id="available-string-substitutions">429<h4 id="available-string-substitutions">

426 可用的字串替換430 可用的字串替換


429Skills 支援 skill 內容中動態值的字串替換:433Skills 支援 skill 內容中動態值的字串替換:

430 434 

431| 變數 | 說明 |435| 變數 | 說明 |

432| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |436| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

433| `$ARGUMENTS` | 調用 skill 時傳遞的所有引數。當沒有佔位符接收引數時,Claude Code 將它們附加為 `ARGUMENTS: <value>`。請參閱[將引數傳遞給 skills](#pass-arguments-to-skills)。 |437| `$ARGUMENTS` | 調用 skill 時傳遞的所有引數。當沒有佔位符接收引數時,Claude Code 將它們附加為 `ARGUMENTS: <value>`。請參閱[將引數傳遞給 skills](#pass-arguments-to-skills)。 |

434| `$ARGUMENTS[N]` | 按 0 為基礎的索引存取特定引數,例如 `$ARGUMENTS[0]` 表示第一個引數。 |438| `$ARGUMENTS[N]` | 按 0 為基礎的索引訪問特定引數,例如 `$ARGUMENTS[0]` 表示第一個引數。 |

435| `$N` | `$ARGUMENTS[N]` 的簡寫,例如 `$0` 表示第一個引數或 `$1` 表示第二個引數。 |439| `$N` | `$ARGUMENTS[N]` 的簡寫,例如 `$0` 表示第一個引數或 `$1` 表示第二個引數。 |

436| `$name` | 在[`arguments`](#frontmatter-reference) frontmatter 清單中宣告的具名引數。名稱按順序對應到位置,因此使用 `arguments: [issue, branch]` 時,佔位符 `$issue` 擴展為第一個引數,`$branch` 擴展為第二個引數。 |440| `$name` | 在 [`arguments`](#frontmatter-reference) frontmatter 列表中聲明的命名引數。名稱按順序映射到位置,因此使用 `arguments: [issue, branch]`,佔位符 `$issue` 擴展到第一個引數,`$branch` 擴展到第二個引數。 |

437| `${CLAUDE_SESSION_ID}` | 目前工作階段 ID。用於記錄、建立工作階段特定檔案或將 skill 輸出與工作階段相關聯。 |441| `${CLAUDE_SESSION_ID}` | 目前工作階段 ID。用於日誌記錄、建立工作階段特定檔案或將 skill 輸出與工作階段相關聯。 |

438| `${CLAUDE_EFFORT}` | 目前努力等級:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一個不同的等級,報告為 `xhigh`。使用此項根據活動努力設定調整 skill 指示。 |442| `${CLAUDE_EFFORT}` | 目前努力級別:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一個不同的級別,報告為 `xhigh`。使用此來根據活動努力設定調整 skill 指示。 |

439| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 檔案的目錄。對於 plugin skills,這是 plugin 內 skill 的子目錄,而不是 plugin 根。在 bash 注入命令中使用此項以參考與 skill 捆綁的指令碼或檔案,無論目前工作目錄如何。 |443| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 檔案的目錄。對於插件 skills,這是插件內 skill 的子目錄,而不是插件根。在 bash 注入命令中使用此來參考與 skill 捆綁的指令碼或檔案,無論目前工作目錄如何。 |

440| `${CLAUDE_PROJECT_DIR}` | 專案根目錄。這是與 [hooks](/docs/zh-TW/hooks#reference-scripts-by-path) 和 MCP 伺服器相同的路徑,作為 `CLAUDE_PROJECT_DIR` 接收。使用此項參考專案本地指令碼或檔案,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,獨立於 skill 的安裝位置。 |444| `${CLAUDE_PROJECT_DIR}` | 專案根目錄。這是 [hooks](/docs/zh-TW/hooks#reference-scripts-by-path) 和 MCP 伺服器作為 `CLAUDE_PROJECT_DIR` 接收的相同路徑。使用此來參考專案本地指令碼或檔案,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,獨立於 skill 的安裝位置。 |

441| `${CLAUDE_PLUGIN_ROOT}` | Plugin 的安裝目錄。僅在 plugin skills 中替換。使用此項參考 plugin 中任何位置的捆綁指令碼或檔案,包括在 plugin 的 skills 之間共用的資源。請參閱[plugin 環境變數](/docs/zh-TW/plugins-reference#environment-variables)。 |445| `${CLAUDE_PLUGIN_ROOT}` | 插件的安裝目錄。僅在插件 skills 中替換。使用此來參考插件中任何位置的指令碼或檔案,包括在插件的 skills 之間共享的資源。請參閱[插件環境變數](/docs/zh-TW/plugins-reference#environment-variables)。 |

442| `${CLAUDE_PLUGIN_DATA}` | Plugin 的[持久資料目錄](/docs/zh-TW/plugins-reference#persistent-data-directory),在 plugin 更新後仍然存在。僅在 plugin skills 中替換。使用此項參考已安裝的相依性、生成的檔案或必須超越更新的快取。 |446| `${CLAUDE_PLUGIN_DATA}` | 插件的[持久資料目錄](/docs/zh-TW/plugins-reference#persistent-data-directory),在插件更新後倖存。僅在插件 skills 中替換。使用此來參考已安裝的依賴項、生成的檔案或必須超越更新的快取。 |

443 447 

444Claude Code 在兩個位置替換 `${CLAUDE_SKILL_DIR}` 和 `${CLAUDE_PROJECT_DIR}`:skill 的 markdown 內容和[`allowed-tools`](#frontmatter-reference) frontmatter 中的 Bash 規則。在 plugin skill 中,Claude Code 在相同的兩個位置替換 `${CLAUDE_PLUGIN_ROOT}` 和 `${CLAUDE_PLUGIN_DATA}`。在兩個位置使用相同的變數可讓 skill 運行捆綁的指令碼而無需許可提示。以下 skill 顯示了該模式:448Claude Code 在兩個地方替換 `${CLAUDE_SKILL_DIR}` 和 `${CLAUDE_PROJECT_DIR}`:skill 的 markdown 內容和 [`allowed-tools`](#frontmatter-reference) frontmatter 中的 Bash 規則。在插件 skill 中,Claude Code 在相同的兩個地方替換 `${CLAUDE_PLUGIN_ROOT}` 和 `${CLAUDE_PLUGIN_DATA}`。在兩個地方使用相同的變數讓 skill 運行捆綁的指令碼而無需許可提示。以下 skill 顯示了該模式:

445 449 

446```yaml theme={null}450```yaml theme={null}

447---451---


453Run `${CLAUDE_SKILL_DIR}/scripts/render.sh <csv-file>` to render the chart.457Run `${CLAUDE_SKILL_DIR}/scripts/render.sh <csv-file>` to render the chart.

454```458```

455 459 

456如果此 skill 安裝在 `~/.claude/skills/render-chart/`,`${CLAUDE_SKILL_DIR}` 的兩個出現都會擴展為該目錄。`allowed-tools` 規則然後與 skill 主體告訴 Claude 運行的確切命令相符,因此指令碼運行而無需提示。460如果此 skill 安裝在 `~/.claude/skills/render-chart/`,`${CLAUDE_SKILL_DIR}` 的兩個出現都擴展到該目錄。`allowed-tools` 規則然後匹配 skill 主體告訴 Claude 運行的確切命令,因此指令碼運行而無需提示。

457 461 

458`${CLAUDE_PROJECT_DIR}` 替換需要 Claude Code v2.1.196 或更新版本。462`${CLAUDE_PROJECT_DIR}` 替換需要 Claude Code v2.1.196 或更新版本。

459 463 

460索引引數使用 shell 風格的引用,因此將多字值包裝在引號中以將其作為單個引數傳遞。例如,`/my-skill "hello world" second` 使 `$0` 擴展為 `hello world`,`$1` 擴展為 `second`。`$ARGUMENTS` 佔位符始終擴展為鍵入的完整引數字串。464索引引數使用 shell 風格的引用,因此將多字值包裝在引號中以將其作為單個引數傳遞。例如,`/my-skill "hello world" second` 使 `$0` 擴展到 `hello world`,`$1` 擴展到 `second`。`$ARGUMENTS` 佔位符始終擴展到完整的引數字串,如鍵入的那樣。

461 465 

462沒有對應引數的索引佔位符(例如僅傳遞一個引數時的 `$2`)在內容中保持不變。來自[`arguments`](#frontmatter-reference) frontmatter 的具名佔位符,沒有匹配的引數,擴展為空字串。466沒有對應引數的索引佔位符(例如僅傳遞一個引數時的 `$2`)在內容中保持不變。來自 [`arguments`](#frontmatter-reference) frontmatter 的命名佔位符,沒有匹配的引數,擴展為空字串。

463 467 

464如果您傳遞的引數值本身包含文字(例如 `$1` 或 `$ARGUMENTS`),Claude Code 會將其插入為文字,不會擴展它。例如,如果 skill 的主體包含 `Summarize $0`,您運行 `/summarize "$ARGUMENTS from yesterday"`,Claude 會收到 `Summarize $ARGUMENTS from yesterday`。Claude Code 仍然在插入引數後替換 `${CLAUDE_*}` 變數(例如 `${CLAUDE_SKILL_DIR}`)。468如果您傳遞的引數值本身包含文本(例如 `$1` 或 `$ARGUMENTS`),Claude Code 將其作為文字文本插入,不擴展它。例如,如果 skill 的主體包含 `Summarize $0`,您運行 `/summarize "$ARGUMENTS from yesterday"`,Claude 接收 `Summarize $ARGUMENTS from yesterday`。Claude Code 仍然在插入引數後替換 `${CLAUDE_*}` 變數(例如 `${CLAUDE_SKILL_DIR}`)。

465 469 

466要在數字、`ARGUMENTS` 或宣告的引數名稱之前包含文字 `$`(例如散文中的 `$1.00`),請使用反斜線進行轉義:`\$1.00`。任何其他 `$` 之前的反斜線保持不變。只有直接在令牌之前的單個反斜線才能轉義它。雙反斜線(例如 `\\$1`)將兩個反斜線保留在原位,`$1` 仍然擴展為引數值。反斜線轉義僅涵蓋這些引數佔位符。反斜線不會防止 `${CLAUDE_*}` 變數的替換,其中變數適用。470要在數字、`ARGUMENTS` 或聲明的引數名稱之前包含文字 `$`(例如散文中的 `$1.00`),使用反斜杠轉義它:`\$1.00`。任何其他 `$` 之前的反斜杠保持不變。只有直接在令牌之前的單個反斜杠轉義它。雙反斜杠(例如 `\\$1`)保留兩個反斜杠,`$1` 仍然擴展到引數值。反斜杠轉義僅涵蓋這些引數佔位符。反斜杠不防止 `${CLAUDE_*}` 變數的替換,其中變數適用。

467 471 

468**使用替換的範例:**472**使用替換的範例:**

469 473 


479```483```

480 484 

481<h3 id="add-supporting-files">485<h3 id="add-supporting-files">

482 新增支援檔案486 添加支援檔案

483</h3>487</h3>

484 488 

485Skills 可以在其目錄中包含多個檔案。這使 `SKILL.md` 專注於基本要素,同時讓 Claude 僅在需要時存取詳細參考資料。大型參考文件、API 規格或範例集合不需要在每次 skill 運行時載入上下文。489Skills 可以在其目錄中包含多個檔案。這使 `SKILL.md` 專注於要點,同時讓 Claude 在需要時訪問詳細的參考資料。大型參考文件、API 規範或範例集合不需要在每次 skill 運行時加載到上下文中。

486 490 

487```text theme={null}491```text theme={null}

488my-skill/492my-skill/


493 └── helper.py (utility script - executed, not loaded)497 └── helper.py (utility script - executed, not loaded)

494```498```

495 499 

496從 `SKILL.md` 參考支援檔案,以便 Claude 知道每個檔案包含什麼以及何時載入它:500從 `SKILL.md` 參考支援檔案,以便 Claude 知道每個檔案包含什麼以及何時加載它:

497 501 

498```markdown theme={null}502```markdown theme={null}

499## Additional resources503## Additional resources


502- For usage examples, see [examples.md](examples.md)506- For usage examples, see [examples.md](examples.md)

503```507```

504 508 

505<Tip>將 `SKILL.md` 保持在 500 行以下。將詳細參考資料移至單獨的檔案。</Tip>509<Tip>保持 `SKILL.md` 在 500 行以下。將詳細的參考資料移到單獨的檔案。</Tip>

506 510 

507<h3 id="control-who-invokes-a-skill">511<h3 id="control-who-invokes-a-skill">

508 控制誰調用 skill512 控制誰調用 skill

509</h3>513</h3>

510 514 

511預設情況下,您和 Claude 都可以調用任何 skill。您可以鍵入 `/skill-name` 直接調用它,Claude 可以在與您的對話相關時自動載入它。兩個 frontmatter 欄位可讓您限制此項:515預設情況下,您和 Claude 都可以調用任何 skill。您可以鍵入 `/skill-name` 直接調用它,Claude 可以在與您的對話相關時自動加載它。兩個 frontmatter 欄位讓您限制這一點:

512 516 

513* **`disable-model-invocation: true`**:只有您可以調用該 skill。用於具有副作用或您想控制時機的工作流程,例如 `/commit`、`/deploy` 或 `/send-slack-message`。您不希望 Claude 因為您的程式碼看起來準備好就決定部署。517* **`disable-model-invocation: true`**:只有您可以調用 skill。用於具有副作用或您想控制時序的工作流程,例如 `/commit`、`/deploy` 或 `/send-slack-message`。您不希望 Claude 因為您的程式碼看起來準備好就決定部署。

514 518 

515* **`user-invocable: false`**:只有 Claude 可以調用該 skill。用於不可作為命令操作的背景知識。`legacy-system-context` skill 解釋舊系統的工作方式。Claude 應在相關時知道這一點,但 `/legacy-system-context` 對使用者來說不是一個有意義的操作。519* **`user-invocable: false`**:只有 Claude 可以調用 skill。用於不可作為命令操作的背景知識。`legacy-system-context` skill 解釋舊系統的工作原理。Claude 應在相關時知道這一點,但 `/legacy-system-context` 對使用者來說不是一個有意義的操作。

516 520 

517此範例建立一個只有您可以觸發的部署 skill。如果您設定 `disable-model-invocation: true`,Claude 無法自動運行該 skill:521此範例建立一個只有您可以觸發的部署 skill。如果您設定 `disable-model-invocation: true`,Claude 無法自動運行 skill:

518 522 

519```yaml theme={null}523```yaml theme={null}

520---524---


5314. Verify the deployment succeeded5354. Verify the deployment succeeded

532```536```

533 537 

534如果 Claude 仍然嘗試,Claude Code 會阻止呼叫並指示它不要以另一種方式重現部署步驟,因此預期 Claude 會建議您自己運行 `/deploy`。538如果 Claude 仍然嘗試,Claude Code 會阻止呼叫並指示它不要以另一種方式重現部署步驟,因此期望 Claude 建議您自己運行 `/deploy`。

535 539 

536以下是兩個欄位如何影響調用和上下文載入的方式:540以下是兩個欄位如何影響調用和上下文加載:

537 541 

538| Frontmatter | 您可以調用 | Claude 可以調用 | 何時載入到上下文中 |542| Frontmatter | 您可以調用 | Claude 可以調用 | 何時加載到上下文中 |

539| :------------------------------- | :---- | :---------- | :---------------------- |543| :------------------------------- | :---- | :---------- | :---------------------- |

540| (預設) | 是 | 是 | 描述始終在上下文中,調用時載入完整 skill |544| (預設) | 是 | 是 | 描述始終在上下文中,調用時加載完整 skill |

541| `disable-model-invocation: true` | 是 | 否 | 描述不在上下文中,您調用時載入完整 skill |545| `disable-model-invocation: true` | 是 | 否 | 描述不在上下文中,您調用時加載完整 skill |

542| `user-invocable: false` | 否 | 是 | 描述始終在上下文中,調用時載入完整 skill |546| `user-invocable: false` | 否 | 是 | 描述始終在上下文中,調用時加載完整 skill |

543 547 

544<Note>548<Note>

545 在常規工作階段中,skill 描述被載入到上下文中,以便 Claude 知道什麼可用,但完整 skill 內容僅在調用時載入。[具有預載入 skills 的 Subagents](/docs/zh-TW/sub-agents#preload-skills-into-subagents)的工作方式不同:完整 skill 內容在啟動時被注入。549 在常規工作階段中,skill 描述被加載到上下文中,以便 Claude 知道什麼可用,但完整 skill 內容僅在調用時加載。[具有預加載 skills 的子代理](/docs/zh-TW/sub-agents#preload-skills-into-subagents)的工作方式不同:完整 skill 內容在啟動時注入。

546</Note>550</Note>

547 551 

548<h3 id="skill-content-lifecycle">552<h3 id="skill-content-lifecycle">

549 Skill 內容生命週期553 Skill 內容生命週期

550</h3>554</h3>

551 555 

552當您或 Claude 調用 skill 時,呈現的 `SKILL.md` 內容作為單個訊息進入對話,並在後續回合中保持在那裡。此持久性適用於 skill 的指示,而不是其許可:[`allowed-tools`](#pre-approve-tools-for-a-skill) 授予在您傳送下一條訊息時被清除。Claude Code 不會在後續回合中重新讀取 skill 檔案,因此將應該在整個任務中應用的指導寫為常設指示,而不是一次性步驟。556當您或 Claude 調用 skill 時,呈現的 `SKILL.md` 內容作為單個訊息進入對話,並在後續回合中保持在那裡。此持久性適用於 skill 的指示,而不是其許可:[`allowed-tools`](#pre-approve-tools-for-a-skill) 授予在您發送下一條訊息時清除。Claude Code 不會在後續回合中重新讀取 skill 檔案,因此將應在整個任務中應用的指導寫為常設指示,而不是一次性步驟。

553 557 

554當 Claude 重新調用其呈現內容與上下文中已有的副本相同的 skill 時,Claude Code 新增一個簡短說明該 skill 已載入的註記,而不是內容的第二份副本。當呈現內容不同時(因為引數改變或[動態上下文](#inject-dynamic-context)命令產生新輸出),Claude Code 會再次附加完整內容。558當 Claude 重新調用其呈現內容與已在上下文中的副本相同的 skill 時,Claude Code 添加一個簡短的註釋,說明 skill 已加載,而不是內容的第二份副本。當呈現內容不同時(因為引數改變或[動態上下文](#inject-dynamic-context)命令產生新輸出),Claude Code 附加完整內容。

555 559 

556[自動壓縮](/docs/zh-TW/how-claude-code-works#when-context-fills-up)在 token 預算內進行調用的 skills。當對話被摘要以釋放上下文時,Claude Code 在摘要後重新附加每個 skill 的最新調用,保留每個的前 5,000 個 token。重新附加的 skills 共用 25,000 個 token 的組合預算。Claude Code 從最近調用的 skill 開始填充此預算,因此如果您在一個工作階段中調用了許多,較舊的 skills 可能在壓縮後完全被丟棄。560[自動壓縮](/docs/zh-TW/how-claude-code-works#when-context-fills-up)在 token 預算內進行調用的 skills。當對話被總結以釋放上下文時,Claude Code 在總結後重新附加每個 skill 的最新調用,保留每個的前 5,000 個 token。重新附加的 skills 共享 25,000 個 token 的組合預算。Claude Code 從最近調用的 skill 開始填充此預算,因此如果您在一個工作階段中調用了許多,較舊的 skills 可能在壓縮後完全被丟棄。

557 561 

558如果 skill 似乎在第一個回應後停止影響行為,內容通常仍然存在,模型正在選擇其他工具或方法。加強 skill 的 `description` 和指示,以便模型繼續偏好它,或使用[hooks](/docs/zh-TW/hooks)以確定性地強制行為。如果 skill 很大或您在它之後調用了其他幾個,在壓縮後重新調用它以恢復完整內容。562如果 skill 似乎在第一個回應後停止影響行為,內容通常仍然存在,模型選擇其他工具或方法。加強 skill 的 `description` 和指示,以便模型繼續偏好它,或使用 [hooks](/docs/zh-TW/hooks) 來確定性地強制行為。如果 skill 很大或您在它之後調用了其他幾個,在壓縮後重新調用它以恢復完整內容。

559 563 

560<h3 id="pre-approve-tools-for-a-skill">564<h3 id="pre-approve-tools-for-a-skill">

561 為 skill 預先批准工具565 為 skill 預先批准工具

562</h3>566</h3>

563 567 

564`allowed-tools` 欄位在調用 skill 的回合中授予列出的工具的許可,因此 Claude 可以使用它們而無需提示您批准。當您傳送下一條訊息時,授予被清除,即使 skill 內容[保持在上下文中](#skill-content-lifecycle);再次調用 skill 會為該回合重新應用它。它不限制哪些工具可用:每個工具仍然可呼叫,您的[許可設定](/docs/zh-TW/permissions)仍然管理未列出的工具。要為整個工作階段而不是單個回合預先批准工具,請改為將允許規則新增到這些許可設定。568`allowed-tools` 欄位在調用 skill 的回合中授予列出的工具的許可,因此 Claude 可以使用它們而無需提示您批准。當您發送下一條訊息時,授予清除,即使 skill 內容[保持在上下文中](#skill-content-lifecycle);再次調用 skill 為該回合重新應用它。它不限制哪些工具可用:每個工具保持可呼叫,您的[許可設定](/docs/zh-TW/permissions)仍然管理未列出的工具。要為整個工作階段而不是單個回合預先批准工具,請改為向這些許可設定添加允許規則。

565 569 

566工作區信任不會限制此欄位。Claude Code 在您或 Claude 調用該 skill 時應用專案 skill 的 `allowed-tools`,包括在您從未信任的資料夾中的 `-p` 運行中。skill 可以授予自己廣泛的工具存取權限,因此在您在存放庫中運行 Claude Code 之前,請檢查 skills 的 `allowed-tools`。570工作區信任不限制此欄位。Claude Code 在您或 Claude 調用 skill 時應用專案 skill 的 `allowed-tools`,包括在您從未信任的資料夾中的 `-p` 運行中。Skill 可以授予自己廣泛的工具訪問,因此在您在那裡運行 Claude Code 之前檢查簽入到儲存庫的 skills 的 `allowed-tools`。

567 571 

568此 skill 讓 Claude 在您調用它時無需每次使用批准即可運行 git 命令:572此 skill 讓 Claude 在您調用它時運行 git 命令而無需每次使用批准:

569 573 

570```yaml theme={null}574```yaml theme={null}

571---575---


576---580---

577```581```

578 582 

579要在 skill 處於活動狀態時從 Claude 的可用工具池中移除工具,請在 skill 的 frontmatter 中的 `disallowed-tools` 中列出它們。當您傳送下一條訊息時,限制被清除。與拒絕規則一樣,該欄位無法在任何其他工具保持時移除[`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。要在所有 skills 和提示中阻止工具,請在您的[許可設定](/docs/zh-TW/permissions)中新增拒絕規則。583要在 skill 處於活動狀態時從 Claude 的可用工具池中移除工具,在 skill 的 frontmatter 中的 `disallowed-tools` 中列出它們。當您發送下一條訊息時,限制清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。要在所有 skills 和提示中阻止工具,在您的[許可設定](/docs/zh-TW/permissions)中添加拒絕規則。

580 584 

581<h3 id="pass-arguments-to-skills">585<h3 id="pass-arguments-to-skills">

582 將引數傳遞給 skills586 將引數傳遞給 skills

583</h3>587</h3>

584 588 

585您和 Claude 都可以在調用 skill 時傳遞引數。引數可透過 `$ARGUMENTS` 佔位符取得。589您和 Claude 都可以在調用 skill 時傳遞引數。引數可透過 `$ARGUMENTS` 佔位符獲得。

586 590 

587此 skill 按編號修復 GitHub 問題。`$ARGUMENTS` 佔位符被替換為 skill 名稱後面的任何內容:591此 skill 按編號修復 GitHub 問題。`$ARGUMENTS` 佔位符被替換為 skill 名稱後面的任何內容:

588 592 


6025. Create a commit6065. Create a commit

603```607```

604 608 

605當您運行 `/fix-issue 123` 時,Claude 會收到「Fix GitHub issue 123 following our coding standards...」609當您運行 `/fix-issue 123` 時,Claude 接收「Fix GitHub issue 123 following our coding standards...」

606 610 

607如果您使用引數調用 skill,但 skill 內容中沒有佔位符接收一個,Claude Code 會將 `ARGUMENTS: <your input>` 附加到 skill 內容的末尾,以便 Claude 仍然看到您鍵入的內容。佔位符是 `$ARGUMENTS`、索引形式(例如 `$1`)或具名引數。沒有其位置引數的索引佔位符保持為文字,不計為接收一個。具名佔位符計數,即使其位置沒有引數,因為它擴展為空字串。611如果您使用引數調用 skill,但 skill 內容中沒有佔位符接收一個,Claude Code 將 `ARGUMENTS: <your input>` 附加到 skill 內容的末尾,以便 Claude 仍然看到您鍵入的內容。佔位符是 `$ARGUMENTS`、索引形式(例如 `$1`)或命名引數。沒有其位置引數的索引佔位符保持為文字文本,不計為接收一個。命名佔位符計數,即使其位置沒有引數,因為它擴展為空字串。

608 612 

609您也可以在一條訊息的開始時堆疊多個 skills。鍵入 `/write-tests /fix-issue 123` 會載入兩個 skills,並將尾隨文字 `123` 作為 `$ARGUMENTS` 傳遞給每個。在 v2.1.199 之前,只有第一個 skill 載入並接收 `/fix-issue 123` 作為文字引數文字。613您也可以在一條訊息的開始堆疊多個 skills。鍵入 `/write-tests /fix-issue 123` 加載兩個 skills 並將尾隨文本 `123` 作為 `$ARGUMENTS` 傳遞給每個。在 v2.1.199 之前,只有第一個 skill 加載並接收 `/fix-issue 123` 作為文字引數文本。

610 614 

611Claude Code 擴展第一個 skill 加上最多五個堆疊在其後的。擴展在第一個不是內聯使用者可調用 skill 的令牌處停止,因此運行為[分叉 subagent](#run-skills-in-a-subagent) 的 skill(例如[`/code-review`](/docs/zh-TW/code-review#review-a-diff-locally))或其引數本身可能以斜線命令開頭的 skill(例如 `/loop`)也在那裡結束運行。該令牌及其後的所有內容都成為每個擴展 skill 的引數文字。從 v2.1.218 開始,`/code-review` 作為分叉 subagent 運行;在較早的版本上,它以內聯方式運行並堆疊。615Claude Code 擴展第一個 skill 加上最多五個堆疊在它之後的。擴展在第一個不是內聯使用者可調用 skill 的令牌處停止,因此作為[分叉子代理](#run-skills-in-a-subagent)運行的 skill(例如[`/code-review`](/docs/zh-TW/code-review#review-a-diff-locally))或其引數本身可能以斜杠命令開始的 skill(例如 `/loop`)也在那裡結束運行。該令牌和它之後的所有內容成為每個擴展 skill 的引數文本。從 v2.1.218 開始,`/code-review` 作為分叉子代理運行;在較早的版本上,它內聯運行並堆疊。

612 616 

613要按位置存取個別引數,請使用 `$ARGUMENTS[N]` 或較短的 `$N`:617要按位置訪問個別引數,使用 `$ARGUMENTS[N]` 或較短的 `$N`:

614 618 

615```yaml theme={null}619```yaml theme={null}

616---620---


622Preserve all existing behavior and tests.626Preserve all existing behavior and tests.

623```627```

624 628 

625運行 `/migrate-component SearchBar JavaScript TypeScript` 會將 `$ARGUMENTS[0]` 替換為 `SearchBar`,`$ARGUMENTS[1]` 替換為 `JavaScript`,`$ARGUMENTS[2]` 替換為 `TypeScript`。使用 `$N` 簡寫的相同 skill:629運行 `/migrate-component SearchBar JavaScript TypeScript` 將 `$ARGUMENTS[0]` 替換為 `SearchBar`,`$ARGUMENTS[1]` 替換為 `JavaScript`,`$ARGUMENTS[2]` 替換為 `TypeScript`。使用 `$N` 簡寫的相同 skill:

626 630 

627```yaml theme={null}631```yaml theme={null}

628---632---


790當此技能執行時:794當此技能執行時:

791 795 

7921. 建立新的隔離內容7961. 建立新的隔離內容

7932. 子代理接收技能內容作為其提示(「Research \$ARGUMENTS thoroughly...」)7972. 子代理接收技能內容作為其提示(「Research \$ARGUMENTS thoroughly」指示)

7943. `agent` 欄位決定執行環境(模型、工具和權限)7983. `agent` 欄位決定執行環境(模型、工具和權限)

7954. 子代理總結其結果並在完成時將其返回到您的主要對話7994. 子代理總結其結果並在完成時將其返回到您的主要對話

796 800 

slack.md +1 −1

Details

23 23 

24* **錯誤調查和修復**:要求 Claude 在 Slack 頻道中報告錯誤時立即調查和修復。24* **錯誤調查和修復**:要求 Claude 在 Slack 頻道中報告錯誤時立即調查和修復。

25* **快速代碼審查和修改**:讓 Claude 根據團隊反饋實現小功能或重構代碼。25* **快速代碼審查和修改**:讓 Claude 根據團隊反饋實現小功能或重構代碼。

26* **協作調試**:當團隊討論提供關鍵背景資訊(例如錯誤重現或用戶報告)時,Claude 可以使用該資訊來指導其調試方法。26* **協作調試**:當團隊討論提供關鍵背景資訊(例如錯誤重現或使用者報告)時,Claude 可以使用該資訊來指導其調試方法。

27* **並行任務執行**:在 Slack 中啟動編碼任務,同時繼續其他工作,完成時接收通知。27* **並行任務執行**:在 Slack 中啟動編碼任務,同時繼續其他工作,完成時接收通知。

28 28 

29<h2 id="prerequisites">29<h2 id="prerequisites">

statusline.md +1 −1

Details

236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

237 "transcript_path": "/path/to/transcript.jsonl",237 "transcript_path": "/path/to/transcript.jsonl",

238 "model": {238 "model": {

239 "id": "claude-opus-5",239 "id": "claude-opus-5-5",

240 "display_name": "Opus"240 "display_name": "Opus"

241 },241 },

242 "workspace": {242 "workspace": {

sub-agents.md +32 −16

Details

32 32 

33Claude Code 包括內建 subagents,Claude 在適當時會自動使用。每個都繼承父對話的權限;大多數以受限的工具集執行。33Claude Code 包括內建 subagents,Claude 在適當時會自動使用。每個都繼承父對話的權限;大多數以受限的工具集執行。

34 34 

35Explore 和 Plan 會跳過您的 CLAUDE.md 檔案和父工作階段的 git status,以保持研究快速且經濟高效。其他所有內建和[自訂 subagent](#configure-subagents) 都會載入兩者,除非其定義設定 [`omitClaudeMd`](#supported-frontmatter-fields) 欄位以跳過使用者、專案和本機 CLAUDE.md 檔案。如需了解到達 subagent 的完整詳細資訊,請參閱[啟動時載入的內容](#what-loads-at-startup)。35Explore 和 Plan 會跳過您的 CLAUDE.md 檔案和 git status 快照,以保持研究快速且經濟高效。其他所有內建和[自訂 subagent](#configure-subagents) 都會載入兩者,除非其定義設定 [`omitClaudeMd`](#supported-frontmatter-fields) 欄位以跳過使用者、專案和本機 CLAUDE.md 檔案。如需了解到達 subagent 的完整詳細資訊,請參閱[啟動時載入的內容](#what-loads-at-startup)。

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">


230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233`--agents` 標誌接受 JSON,具有 `prompt` 欄位加上這些 [frontmatter](#supported-frontmatter-fields) 欄位:`description`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`omitClaudeMd` 和 `isolation`。使用 `prompt` 作為系統提示,等同於基於檔案的 subagents 中的 markdown 主體。JSON 中的每個頂級鍵是代理的名稱。不要以 `-` 開頭的名稱。233`--agents` 標誌接受 JSON,具有 `prompt` 欄位加上這些 [frontmatter](#supported-frontmatter-fields) 欄位:`description`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`omitClaudeMd` 和 `isolation`。使用 `prompt` 作為系統提示,等同於基於檔案的 subagents 中的 markdown 主體。`color` 和 `experimental` 在此不被接受,會被忽略而不是拒絕。

234 

235JSON 中的每個頂級鍵是代理的名稱。不要以 `-` 開頭的名稱。

234 236 

235關於 Claude Code 對無法載入的值所做的操作,以及跳過該檢查的標誌和環境變數,請參閱 [`Invalid --agents configuration`](/docs/zh-TW/errors#invalid-agents-configuration)。237關於 Claude Code 對無法載入的值所做的操作,以及跳過該檢查的標誌和環境變數,請參閱 [`Invalid --agents configuration`](/docs/zh-TW/errors#invalid-agents-configuration)。

236 238 


293 295 

294當主要對話本身在 worktree 中隔離執行時,Claude Code 對工作階段和它產生的每個 subagent 應用相同的檢查,包括沒有 `isolation: worktree` 的 subagents;請參閱 [How Claude Code enforces isolation](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)。296當主要對話本身在 worktree 中隔離執行時,Claude Code 對工作階段和它產生的每個 subagent 應用相同的檢查,包括沒有 `isolation: worktree` 的 subagents;請參閱 [How Claude Code enforces isolation](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)。

295 297 

296<h4 id="supported-frontmatter-fields">298<h3 id="supported-frontmatter-fields">

297 支援的 frontmatter 欄位299 Frontmatter 參考

298</h4>300</h3>

299 301 

300以下欄位可用於 YAML frontmatter。只有 `name` 和 `description` 是必需的。302使用 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 在檔案頂部的 `---` 標記之間配置 subagent,並在結束 `---` 後將其系統提示寫為 Markdown。只有 `name` 和 `description` 是必需的。

303 

304多字欄位名稱使用 camelCase,例如 `maxTurns` 和 `disallowedTools`,必須與表格完全相符:Claude Code 忽略它不識別的欄位而不報告錯誤。若要找出 subagent 檔案未載入的原因,請參閱 [Subagent files Claude Code skips](#subagent-files-claude-code-skips)。

301 305 

302| Field | 必需 | Description |306| Field | 必需 | Description |

303| :---------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |307| :---------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

304| `name` | 是 | 使用小寫字母和連字號的唯一識別碼。[Hooks](/docs/zh-TW/hooks#subagentstart) 將此值作為 `agent_type` 接收。檔案名稱不必相符。名稱不能包含 `:`,這是為 [plugin-scoped identifiers](/docs/zh-TW/plugins) 保留的,例如 `my-plugin:reviewer`。Claude Code 不會載入名稱包含一個的檔案,並將錯誤記錄到除錯日誌。在 v2.1.218 之前,此類名稱被接受 |308| `name` | 是 | 唯一識別碼,例如 `code-reviewer` 或 `reviewer-v2`。[Hooks](/docs/zh-TW/hooks#subagentstart) 將此值作為 `agent_type` 接收。檔案名稱不必相符。名稱不能包含 `:`,這是為 [plugin-scoped identifiers](/docs/zh-TW/plugins) 保留的,例如 `my-plugin:reviewer`。Claude Code 不會載入名稱包含一個的檔案,並將錯誤記錄到除錯日誌。在 v2.1.218 之前,此類名稱被接受 |

305| `description` | 是 | Claude 何時應委派給此 subagent |309| `description` | 是 | Claude 何時應委派給此 subagent |

306| `tools` | 否 | [Tools](#available-tools) subagent 可以使用。如果省略,繼承 subagents 可用的每個工具。如果清單中沒有條目解析為工具,subagent 通常 [fails to launch](/docs/zh-TW/errors#agent-would-be-spawned-with-zero-tools) 並出現命名條目的錯誤。若要將 Skills 預載入上下文,請使用 `skills` 欄位而不是在此列出 `Skill` |310| `tools` | 否 | [Tools](#available-tools) subagent 可以使用,作為逗號分隔的字串(例如 `Read, Grep, Bash`)或 YAML 清單。如果省略,繼承 subagents 可用的每個工具。如果清單中沒有條目解析為工具,subagent 通常 [fails to launch](/docs/zh-TW/errors#agent-would-be-spawned-with-zero-tools) 並出現命名條目的錯誤。若要將 Skills 預載入上下文,請使用 `skills` 欄位而不是在此列出 `Skill` |

307| `disallowedTools` | 否 | 要拒絕的工具,從繼承或指定的清單中移除。具有指定符的條目(例如 `Bash(git push *)`)仍然 [removes the whole tool](#available-tools) |311| `disallowedTools` | 否 | 要拒絕的工具,從繼承或指定的清單中移除。格式與 `tools` 相同。具有指定符的條目(例如 `Bash(git push *)`)仍然 [removes the whole tool](#available-tools) |

308| `model` | 否 | [Model](#choose-a-model) 使用:`sonnet`、`opus`、`haiku`、`fable`、完整模型 ID(例如,`claude-opus-5`)或 `inherit`。當您省略它時,Claude Code 在 [subagent model order](#choose-a-model) 中選擇模型 |312| `model` | 否 | [Model](#choose-a-model) 使用:`sonnet`、`opus`、`haiku`、`fable`、完整模型 ID(例如,`claude-opus-5-5`)或 `inherit`。當您省略它時,Claude Code 在 [subagent model order](#choose-a-model) 中選擇模型 |

309| `permissionMode` | 否 | [Permission mode](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、`plan` 或 `manual` 作為 `default` 的別名。`manual` 別名需要 Claude Code v2.1.200 或更高版本。針對 [plugin subagents](#choose-the-subagent-scope) 被忽略 |313| `permissionMode` | 否 | [Permission mode](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、`plan` 或 `manual` 作為 `default` 的別名。`manual` 別名需要 Claude Code v2.1.200 或更高版本。針對 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

310| `maxTurns` | 否 | subagent 停止前的最大代理轉數。當 subagent 達到限制時,Claude Code 傳回其輸出標記為部分,Claude 可以 [resume it](#resume-subagents) 以繼續。部分標記需要 Claude Code v2.1.246 或更高版本 |314| `maxTurns` | 否 | subagent 停止前的最大代理轉數。當 subagent 達到限制時,Claude Code 傳回其輸出標記為部分,Claude 可以 [resume it](#resume-subagents) 以繼續。部分標記需要 Claude Code v2.1.246 或更高版本 |

311| `skills` | 否 | [Skills](/docs/zh-TW/skills) 在啟動時預載入到 subagent 的上下文中。注入完整技能內容,而不僅僅是描述。Subagents 仍然可以透過 Skill 工具呼叫未列出的專案、使用者和外掛程式技能 |315| `skills` | 否 | [Skills](/docs/zh-TW/skills) 在啟動時預載入到 subagent 的上下文中。注入完整技能內容,而不僅僅是描述。Subagents 仍然可以透過 Skill 工具呼叫未列出的專案、使用者和外掛程式技能 |


317| `effort` | 否 | 此 subagent 活動時的努力程度。覆蓋工作階段努力程度。預設:從工作階段繼承。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用的層級取決於模型 |321| `effort` | 否 | 此 subagent 活動時的努力程度。覆蓋工作階段努力程度。預設:從工作階段繼承。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用的層級取決於模型 |

318| `isolation` | 否 | 設定為 `worktree` 以在臨時 [git worktree](/docs/zh-TW/worktrees) 中執行 subagent,為其提供儲存庫的隔離副本,預設從您的 [default branch](/docs/zh-TW/worktrees#choose-the-base-branch) 分支,而不是父工作階段的 `HEAD`。如果 subagent 不進行任何更改,worktree 會自動清理 |322| `isolation` | 否 | 設定為 `worktree` 以在臨時 [git worktree](/docs/zh-TW/worktrees) 中執行 subagent,為其提供儲存庫的隔離副本,預設從您的 [default branch](/docs/zh-TW/worktrees#choose-the-base-branch) 分支,而不是父工作階段的 `HEAD`。如果 subagent 不進行任何更改,worktree 會自動清理 |

319| `color` | 否 | Subagent 在任務清單和文字中的顯示顏色。接受 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan` |323| `color` | 否 | Subagent 在任務清單和文字中的顯示顏色。接受 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan` |

320| `initialPrompt` | 否 | 當此代理作為主工作階段代理執行時(透過 `--agent` 或 `agent` 設定),自動提交為第一個使用者轉數。[Commands](/docs/zh-TW/commands) 和 [skills](/docs/zh-TW/skills) 會被處理。前置於任何使用者提供的提示 |324| `initialPrompt` | 否 | 當此代理作為主工作階段代理執行時(透過 `--agent` 或 `agent` 設定),自動提交為第一個使用者轉數。[Commands](/docs/zh-TW/commands) 和 [skills](/docs/zh-TW/skills) 會被處理。前置於任何使用者提供的提示。針對 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

321| `experimental` | 否 | 實驗選項的對應。將其 `cacheTtl` 鍵設定為 `5m` 或 `1h` 以選擇此 subagent 請求的 [prompt cache lifetime](/docs/zh-TW/prompt-caching#choose-the-ttl-yourself),在 [cache lifetime precedence](/docs/zh-TW/prompt-caching#choose-the-ttl-yourself) 中 frontmatter 的位置。Claude Code 忽略任何其他值,在您的 Claude 訂閱使用使用額度時忽略 `1h`,並僅從 subagent 檔案讀取欄位。需要 Claude Code v2.1.248 或更高版本 |325| `experimental` | 否 | 實驗選項的對應。將其 `cacheTtl` 鍵設定為 `5m` 或 `1h` 以選擇此 subagent 請求的 [prompt cache lifetime](/docs/zh-TW/prompt-caching#choose-the-ttl-yourself),在 [cache lifetime precedence](/docs/zh-TW/prompt-caching#choose-the-ttl-yourself) 中 frontmatter 的位置。Claude Code 忽略任何其他值,在您的 Claude 訂閱使用使用額度時忽略 `1h`,並僅從 subagent 檔案讀取欄位。需要 Claude Code v2.1.248 或更高版本 |

322 326 

323在 `experimental` 對應內寫入 `cacheTtl`,而不是在 frontmatter 的頂級。327在 `experimental` 對應內寫入 `cacheTtl`,而不是在 frontmatter 的頂級。


360`model` 欄位控制 subagent 使用的模型:364`model` 欄位控制 subagent 使用的模型:

361 365 

362* **Model alias**:使用可用的別名之一:`sonnet`、`opus`、`haiku` 或 `fable`366* **Model alias**:使用可用的別名之一:`sonnet`、`opus`、`haiku` 或 `fable`

363* **Full model ID**:使用完整模型 ID,例如 `claude-opus-5` 或 `claude-sonnet-5`。接受與 `--model` 標誌相同的值367* **Full model ID**:使用完整模型 ID,例如 `claude-opus-5-5` 或 `claude-sonnet-5`。接受與 `--model` 標誌相同的值

364* **inherit**:使用與主要對話相同的模型368* **inherit**:使用與主要對話相同的模型

365 369 

366當 Claude 呼叫 subagent 時,它也可以為該特定呼叫傳遞 `model` 參數。Claude Code 按此順序解析 subagent 的模型:370當 Claude 呼叫 subagent 時,它也可以為該特定呼叫傳遞 `model` 參數。Claude Code 按此順序解析 subagent 的模型:


3703. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-TW/model-config#environment-variables) 環境變數,當您將其設定為模型別名或模型 ID 時3743. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-TW/model-config#environment-variables) 環境變數,當您將其設定為模型別名或模型 ID 時

3714. 主要對話的模型3754. 主要對話的模型

372 376 

377在兩種情況下,家族別名(例如 `opus`)在每次呼叫參數或 frontmatter 中解析為主要對話的模型,而不是 [version the alias points to](/docs/zh-TW/model-config#model-aliases):

378 

379* **主要對話的模型屬於該家族**:subagent 在主要對話的確切模型上執行,包括任何 `[1m]` 後綴,因此它獲得與主要對話相同的 [extended context](/docs/zh-TW/model-config#extended-context) 視窗。

380* **Claude Code 無法告訴主要對話的模型家族,在 [a provider other than the Anthropic API](/docs/zh-TW/third-party-integrations) 上**:這可能發生在 Amazon Bedrock 上的 [application inference profile ARN](/docs/zh-TW/amazon-bedrock#iam-configuration),Claude Code 尚未解析為支援模型。此情況僅涵蓋 `opus` 別名,當您設定 [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/zh-TW/model-config#environment-variables) 時不適用,因為 `opus` 然後解析為您設定的模型。

381 

382`CLAUDE_CODE_SUBAGENT_MODEL` 中的別名始終解析為別名指向的版本,即使它命名主要對話的家族。

383 

373設定 `CLAUDE_CODE_SUBAGENT_MODEL` 本身不會改變內建 Explore 和 Plan subagents 執行的模型。若要改變它,請參閱 [Run every subagent on one model](#run-every-subagent-on-one-model)。384設定 `CLAUDE_CODE_SUBAGENT_MODEL` 本身不會改變內建 Explore 和 Plan subagents 執行的模型。若要改變它,請參閱 [Run every subagent on one model](#run-every-subagent-on-one-model)。

374 385 

375在 v2.1.251 之前,`CLAUDE_CODE_SUBAGENT_MODEL` 在此順序中排在第一位,並覆蓋每次呼叫參數和 frontmatter,包括 `model: inherit`。386在 v2.1.251 之前,`CLAUDE_CODE_SUBAGENT_MODEL` 在此順序中排在第一位,並覆蓋每次呼叫參數和 frontmatter,包括 `model: inherit`。


436* `EnterPlanMode`447* `EnterPlanMode`

437* `ExitPlanMode`,除非 subagent 的 [`permissionMode`](#permission-modes) 是 `plan`448* `ExitPlanMode`,除非 subagent 的 [`permissionMode`](#permission-modes) 是 `plan`

438* `ScheduleWakeup`449* `ScheduleWakeup`

439* `TaskOutput`

440* `WaitForMcpServers`450* `WaitForMcpServers`

441* `Workflow`451* `Workflow`

442 452 

443第二個過濾器適用於在背景中執行的 subagents。除了 `Agent` 和 `ExitPlanMode`,它們遵循第一個過濾器的條件,無論 subagent 在哪裡執行,背景 subagent 保持每個 MCP 工具,但只有這些內建工具:`Read`、`Grep`、`Glob`、`Bash`、`PowerShell`、`Edit`、`Write`、`NotebookEdit`、`WebFetch`、`WebSearch`、`TodoWrite`、`Skill`、`ToolSearch`、`EnterWorktree`、`ExitWorktree`、`Monitor`、`TaskStop`、`SendMessage` 和 `Artifact`,加上 [`SubagentHandoff`](/docs/zh-TW/tools-reference) 用於透過它報告的 subagent。Claude Code 從背景 subagent 移除每個其他內建工具,無論繼承或在 `tools` 欄位中列出,因此相同的定義可以在前景和背景中解析為不同的工具。移除報告沒有錯誤,除非它使 `tools` 清單 [resolving to nothing](/docs/zh-TW/errors#agent-would-be-spawned-with-zero-tools)。453第二個過濾器適用於在背景中執行的 subagents。除了 `Agent` 和 `ExitPlanMode`,它們遵循第一個過濾器的條件,無論 subagent 在哪裡執行,背景 subagent 保持每個 MCP 工具,但只有這些內建工具:`Read`、`Grep`、`Glob`、`LSP`、`Bash`、`PowerShell`、`Edit`、`Write`、`NotebookEdit`、`WebFetch`、`WebSearch`、`TodoWrite`、`Skill`、`ToolSearch`、`EnterWorktree`、`ExitWorktree`、`Monitor`、`TaskStop`、`SendMessage` 和 `Artifact`,加上 [`SubagentHandback`](/docs/zh-TW/tools-reference) 用於透過它報告的 subagent。Claude Code 從背景 subagent 移除每個其他內建工具,無論繼承或在 `tools` 欄位中列出,因此相同的定義可以在前景和背景中解析為不同的工具。移除報告沒有錯誤,除非它使 `tools` 清單 [resolving to nothing](/docs/zh-TW/errors#agent-would-be-spawned-with-zero-tools)。

454 

455在 v2.1.280 之前,背景 subagents 無法使用 `LSP`。

444 456 

445[`ListAgents`](/docs/zh-TW/cross-session-messaging) 遵循這些過濾器,如同任何內建工具:前景 subagent 在啟用跨工作階段訊息的工作階段中繼承它,背景 subagent 不保持它。457[`ListAgents`](/docs/zh-TW/cross-session-messaging) 遵循這些過濾器,如同任何內建工具:前景 subagent 在啟用跨工作階段訊息的工作階段中繼承它,背景 subagent 不保持它。

446 458 


749Subagents 可以定義在 subagent 生命週期期間執行的 [hooks](/docs/zh-TW/hooks)。有兩種方式來配置 hooks:761Subagents 可以定義在 subagent 生命週期期間執行的 [hooks](/docs/zh-TW/hooks)。有兩種方式來配置 hooks:

750 762 

751* **在 subagent 的 frontmatter 中**:定義只在該 subagent 活動時執行的 hooks763* **在 subagent 的 frontmatter 中**:定義只在該 subagent 活動時執行的 hooks

752* **在 `settings.json` 中**:定義在 subagents 啟動或停止時在主工作階段中執行的 hooks。工具事件(例如 `PreToolUse` 和 `PostToolUse`)對 subagent 的工具呼叫的觸發方式與在主要對話中相同,`SubagentStart` 和 `SubagentStop` 在 subagent 啟動或完成時觸發764* **在 `settings.json` 中**:定義在主工作階段中回應 subagent 生命週期事件的工作階段範圍 hooks。工具事件(例如 `PreToolUse` 和 `PostToolUse`)對 subagent 的工具呼叫的觸發方式與在主要對話中相同,`SubagentStart` 和 `SubagentStop` 在 subagent 啟動或完成時觸發

753 765 

754來自 [settings files、managed policy settings 和 plugins](/docs/zh-TW/hooks#hook-locations) 的 Hooks 都適用於 subagents 內,因此 `settings.json` 中的 `PreToolUse` hook 也在 subagent 使用的每個工具之前執行。766來自 [settings files、managed policy settings 和 plugins](/docs/zh-TW/hooks#hook-locations) 的 Hooks 都適用於 subagents 內,因此 `settings.json` 中的 `PreToolUse` hook 也在 subagent 使用的每個工具之前執行。

755 767 


987 999 

988掃描不會判斷內容是否惡意,也不會改變報告中的指令可以做什麼:報告導致 Claude 進行的工具呼叫仍然會通過工作階段的 [權限檢查](/docs/zh-TW/permissions) 和 [沙箱化](/docs/zh-TW/sandboxing)。它不是 [限制 subagent 可以到達的內容](#control-subagent-capabilities) 的替代品。1000掃描不會判斷內容是否惡意,也不會改變報告中的指令可以做什麼:報告導致 Claude 進行的工具呼叫仍然會通過工作階段的 [權限檢查](/docs/zh-TW/permissions) 和 [沙箱化](/docs/zh-TW/sandboxing)。它不是 [限制 subagent 可以到達的內容](#control-subagent-capabilities) 的替代品。

989 1001 

1002一份返回給 Claude 作為 subagent 結果的報告也會在標題下到達,該標題將其標記為 subagent 輸出。標題說明報告中的指令或批准聲明是 subagent 的言論,不具有您的任何權限。

1003 

1004[背景 subagent 的報告](#run-subagents-in-foreground-or-background) 到達完成通知內,該通知被標記為自動化事件而不是來自您的訊息。

1005 

990<Note>1006<Note>

991 Subagent 輸出掃描需要 Claude Code v2.1.210 或更新版本。1007 Subagent 輸出掃描需要 Claude Code v2.1.210 或更新版本。

992</Note>1008</Note>


1115* **系統提示**:代理自己的提示加上 Claude Code 附加的環境詳細資訊,而不是 Claude Code 系統提示。自訂 subagents 在 [markdown 正文](#write-subagent-files) 或 `prompt` 欄位中定義它們。內建代理有預定義的提示。1131* **系統提示**:代理自己的提示加上 Claude Code 附加的環境詳細資訊,而不是 Claude Code 系統提示。自訂 subagents 在 [markdown 正文](#write-subagent-files) 或 `prompt` 欄位中定義它們。內建代理有預定義的提示。

1116* **任務訊息**:Claude 在交接工作時編寫的委派提示。1132* **任務訊息**:Claude 在交接工作時編寫的委派提示。

1117* **CLAUDE.md 檔案**:主要對話載入的 [CLAUDE.md 層級](/docs/zh-TW/memory#how-claude-md-files-load) 的每個級別,包括 `~/.claude/CLAUDE.md`、專案規則、`CLAUDE.local.md`、受管理的政策檔案和任何 [`AGENTS.md` 檔案](/docs/zh-TW/memory#agents-md) 作為專案指令載入。內建的 Explore 和 Plan 代理跳過這個。subagent 的定義設定 [`omitClaudeMd`](#supported-frontmatter-fields) 時,只載入受管理的政策檔案,或當定義來自 [受管理設定](#choose-the-subagent-scope) 時完全不載入。1133* **CLAUDE.md 檔案**:主要對話載入的 [CLAUDE.md 層級](/docs/zh-TW/memory#how-claude-md-files-load) 的每個級別,包括 `~/.claude/CLAUDE.md`、專案規則、`CLAUDE.local.md`、受管理的政策檔案和任何 [`AGENTS.md` 檔案](/docs/zh-TW/memory#agents-md) 作為專案指令載入。內建的 Explore 和 Plan 代理跳過這個。subagent 的定義設定 [`omitClaudeMd`](#supported-frontmatter-fields) 時,只載入受管理的政策檔案,或當定義來自 [受管理設定](#choose-the-subagent-scope) 時完全不載入。

1118* **Git 狀態**:在父工作階段開始時拍攝的快照。當工作目錄不是 Git 儲存庫或當 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 為 `false` 時不存在。Explore 和 Plan 無論如何都跳過它。1134* **Git 狀態**:在 subagent 啟動時拍攝的快照。當工作目錄不是 Git 儲存庫或當 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 為 `false` 時不存在。Explore 和 Plan 無論如何都跳過它。

1119* **預載入的技能**:代理的 [`skills` 欄位](#preload-skills-into-subagents) 中命名的任何技能的完整內容。內建代理不預載入技能。1135* **預載入的技能**:代理的 [`skills` 欄位](#preload-skills-into-subagents) 中命名的任何技能的完整內容。內建代理不預載入技能。

1120* **同級名單**:系統提醒,列出 `main` 和工作階段中的每個其他命名代理,每個都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更新版本。名單僅在 subagent 的工具包括 `SendMessage` 且至少有一個其他代理有名稱時出現,無論 Claude 在產生時命名它還是它作為 [agent teams](/docs/zh-TW/agent-teams) 隊友執行。它是在 subagent 啟動時拍攝的快照,所以稍後命名的代理不會出現。1136* **同級名單**:系統提醒,列出 `main` 和工作階段中的每個其他命名代理,每個都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更新版本。名單僅在 subagent 的工具包括 `SendMessage` 且至少有一個其他代理有名稱時出現,無論 Claude 在產生時命名它還是它作為 [agent teams](/docs/zh-TW/agent-teams) 隊友執行。它是在 subagent 啟動時拍攝的快照,所以稍後命名的代理不會出現。

1121 1137 

Details

343 貼上大型內容343 貼上大型內容

344</h2>344</h2>

345 345 

346當您貼上超過 800 個字元或超過三行的內容到提示時,Claude Code 會將輸入摺疊為預留位置,例如 `[Pasted text #1 +120 lines]`,以保持輸入框可用。在短於 12 列的終端視窗中,行限制會降低,因此 Claude Code 在 11 列時會摺疊三行貼上,在 10 列或更少列時會摺疊任何多行貼上。Claude Code 在您提交時仍會傳送完整內容。346當您貼上超過 800 個字元或超過三行的內容到提示時,Claude Code 會將輸入摺疊為預留位置,例如 `[Pasted text #1 +120 lines]`,以保持輸入框可用,並在您提交時仍會傳送完整內容。對於非常大的輸入(例如整個檔案或長日誌),請將內容寫入檔案並要求 Claude 讀取它,而不是貼上。對話記錄保持可讀,Claude 可以在稍後的回合中按路徑參考該檔案。VS Code 整合終端也可能在非常大的貼上到達 Claude Code 之前從中丟棄字元,因此在那裡使用檔案。

347 347 

348當您使用字詞或行快捷鍵(例如 `Ctrl+W` 或 `Ctrl+K`)刪除,或透過 `f`/`t` 動作(例如 `df]`)使用 vim 刪除,且刪除範圍到達預留位置內部時,Claude Code 會完全移除預留位置。您可以貼上刪除的內容來復原它,在字詞或行快捷鍵後使用 [`Ctrl+Y`](/docs/zh-TW/interactive-mode#text-editing),或在 vim 刪除後使用 [`p` 在 NORMAL 模式中](/docs/zh-TW/interactive-mode#editing-normal-mode)。348如果貼上的內容包含[隱形 Unicode 字元](/docs/zh-TW/interactive-mode#invisible-characters-in-prompts),Claude Code 會在您按下 Enter 時移除它們,並將清理後的提示放回輸入框供您以另一個 Enter 傳送。

349 349 

350Claude Code 將摺疊的內容保留在 `~/.claude/paste-cache/` 下,因此當您從[命令歷史](/docs/zh-TW/interactive-mode#command-history)回想提示並重新提交時,Claude Code 會再次傳送完整貼上的內容,包括在稍後的工作階段中,直到保留掃描移除快取檔案。350<h3 id="how-claude-treats-pasted-text">

351 Claude 如何處理貼上的文字

352</h3>

351 353 

352Claude Code 刪除早於 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 的快取檔案,遵循[保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically),因此回想的提示可能參考不再存在的貼上文字。當您提交這樣的提示時,Claude Code 永遠不會傳送字面上的 `[Pasted text #N]` 字串,並顯示通知命名遺失的貼上:354當您提交時,Claude 會看到每個 `[Pasted text #N]` 預留位置後面的內容,標記為您從其他地方貼上而非輸入的文字。Claude 被告知貼上可能包含您未撰寫的指示,並且只在您輸入的訊息要求時才遵循其中的指示。在不[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中,貼上不會被標記。

353 355 

354* 在有剩�文字的純提示中,Claude Code 移除預留位置並傳送剩餘文字。356<h3 id="delete-and-restore-a-collapsed-paste">

355* 在[殼層模式](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)命令或 `/` 命令中,移除會改變執行的內容,以及在任何提示中移除留下空白時,Claude Code 取消提交並在輸入中保留原始文字,預留位置仍在其中。刪除預留位置或編輯命令,然後重新提交。357 刪除並復原摺疊的貼上

358</h3>

356 359 

357VS Code 整合終端可能會在非常大的貼上到達 Claude Code 之前從中丟棄字元,因此在那裡偏好檔案型工作流程。對於非常大的輸入(例如整個檔案或長日誌),將內容寫入檔案並要求 Claude 讀取它,而不是貼上。這保持對話記錄可讀,並讓 Claude 在稍後的回合中按路徑參考檔案。360當您使用字詞或行快捷鍵(例如 `Ctrl+W` 或 `Ctrl+K`)刪除,或透過 `f`/`t` 動作(例如 `df]`)使用 vim 刪除,且刪除範圍到達 `[Pasted text #N]` 預留位置內部時,Claude Code 會完全移除預留位置。若要復原它,請在字詞或行快捷鍵後使用 [`Ctrl+Y`](/docs/zh-TW/interactive-mode#text-editing) 貼上刪除的內容,或在 vim 刪除後使用 [`p` 在 NORMAL 模式中](/docs/zh-TW/interactive-mode#editing-normal-mode)。

361 

362<h3 id="recall-a-prompt-that-had-pasted-text">

363 回想包含貼上文字的提示

364</h3>

365 

366Claude Code 將每個 `[Pasted text #N]` 預留位置後面的內容保留在 `~/.claude/paste-cache/` 下,因此當您從[命令歷史](/docs/zh-TW/interactive-mode#command-history)回想提示並重新提交時,完整的貼上內容會再次傳送,包括在稍後的工作階段中。

367 

368早於 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 的快取檔案會根據[保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)被刪除,因此回想的提示可能參考不再存在的貼上文字。當您提交這樣的提示時,Claude Code 永遠不會傳送字面上的 `[Pasted text #N]` 字串,並顯示通知命名遺失的貼上:

369 

370* 在有剩餘文字的純提示中,Claude Code 移除預留位置並傳送剩餘文字。

371* 在[殼層模式](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)命令或 `/` 命令中,移除會改變執行的內容,以及在任何提示中移除留下空白時,Claude Code 取消提交並在輸入中保留原始文字,預留位置仍在其中。刪除預留位置或編輯命令,然後重新提交。

358 372 

359<h2 id="edit-prompts-with-vim-keybindings">373<h2 id="edit-prompts-with-vim-keybindings">

360 使用 Vim 快捷鍵編輯提示詞374 使用 Vim 快捷鍵編輯提示詞

Details

86 86 

87對於大多數組織,Claude for Teams 或 Claude for Enterprise 提供最佳體驗。團隊成員可以通過單一訂閱同時存取 Claude Code 和網頁版 Claude,具有集中計費和無需基礎設施設置的優勢。87對於大多數組織,Claude for Teams 或 Claude for Enterprise 提供最佳體驗。團隊成員可以通過單一訂閱同時存取 Claude Code 和網頁版 Claude,具有集中計費和無需基礎設施設置的優勢。

88 88 

89**Claude for Teams** 是自助服務,包括協作功能、管理工具和計費管理。最適合需要快速開始的較小團隊。89**Claude for Teams** 是自助服務,包括協作功能、管理工具、SSO、計費管理和[伺服器管理的設定](/docs/zh-TW/server-managed-settings),用於組織範圍的 Claude Code 配置。最適合需要快速開始的較小團隊。

90 90 

91**Claude for Enterprise** 增加了 SSO 和域名捕獲、基於角色的權限、合規性 API 存取和託管策略設置,用於部署組織範圍的 Claude Code 配置。最適合具有安全和合規性要求的大型組織。91**Claude for Enterprise** 增加了網域擷取、角色型權限和合規性 API 存取。最適合具有安全和合規性要求的大型組織。

92 92 

93了解更多關於 [Team 計劃](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) 和 [Enterprise 計劃](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。93了解更多關於 [Team 計劃](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) 和 [Enterprise 計劃](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。

94 94 

Details

24| `Raw mode is not supported` 安裝期間 | [重新執行安裝程式](#raw-mode-is-not-supported-during-install) |24| `Raw mode is not supported` 安裝期間 | [重新執行安裝程式](#raw-mode-is-not-supported-during-install) |

25| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 憑證](#tls-or-ssl-connection-errors) |25| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 憑證](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` 或無法連線到下載伺服器 | [檢查網路和代理設定](#check-network-connectivity) |26| `Failed to fetch version` 或無法連線到下載伺服器 | [檢查網路和代理設定](#check-network-connectivity) |

27| `irm is not recognized` 或 `&& is not valid` | [在您的 shell 上使用正確的命令](#wrong-install-command-on-windows) |27| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [在您的 shell 上使用正確的命令](#wrong-install-command-on-windows) |

28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [更新 Homebrew](#homebrew-cask-unavailable-or-outdated) |28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [更新 Homebrew](#homebrew-cask-unavailable-or-outdated) |

29| `'bash' is not recognized as the name of a cmdlet` | [使用 Windows 安裝程式命令](#wrong-install-command-on-windows) |29| `'bash' is not recognized as the name of a cmdlet` | [使用 Windows 安裝程式命令](#wrong-install-command-on-windows) |

30| `A parameter cannot be found that matches parameter name 'fsSL'` | [使用 Windows 安裝程式命令](#wrong-install-command-on-windows) |30| `A parameter cannot be found that matches parameter name 'fsSL'` | [使用 Windows 安裝程式命令](#wrong-install-command-on-windows) |


512 Windows 上的錯誤安裝命令512 Windows 上的錯誤安裝命令

513</h3>513</h3>

514 514 

515如果您看到 `'irm' is not recognized`、`The token '&&' is not valid`、`A parameter cannot be found that matches parameter name 'fsSL'` 或 `'bash' is not recognized as the name of a cmdlet`,您複製了不同 shell 或作業系統的安裝命令。如果命令列印指令碼的文字而不是安裝任何東西,您只執行了它的一部分。515如果您看到 `'irm' is not recognized`、`The token '&&' is not a valid statement separator`、`A parameter cannot be found that matches parameter name 'fsSL'` 或 `'bash' is not recognized as the name of a cmdlet`,您複製了不同 shell 或作業系統的安裝命令。如果命令列印指令碼的文字而不是安裝任何東西,您只執行了它的一部分。

516 516 

517* **`irm` 未被識別**:您在 CMD 中,而非 PowerShell。您有兩個選項:517* **`irm` 未被識別**:您在 CMD 中,而非 PowerShell。您有兩個選項:

518 518 

Details

473. 考慮將大型構建目錄新增到您的 `.gitignore` 檔案473. 考慮將大型構建目錄新增到您的 `.gitignore` 檔案

484. 使用 [`claude --safe-mode`](/docs/zh-TW/cli-reference#cli-flags) 重新啟動以檢查外掛程式、MCP 伺服器或 hook 是否為來源。它會停用該工作階段的所有自訂;如果使用量下降,請參閱[偵錯您的設定](/docs/zh-TW/debug-your-config#test-against-a-clean-configuration)以找出是哪一個484. 使用 [`claude --safe-mode`](/docs/zh-TW/cli-reference#cli-flags) 重新啟動以檢查外掛程式、MCP 伺服器或 hook 是否為來源。它會停用該工作階段的所有自訂;如果使用量下降,請參閱[偵錯您的設定](/docs/zh-TW/debug-your-config#test-against-a-clean-configuration)以找出是哪一個

49 49 

50如果工作階段的堆積記憶體超過 2.5GB,會出現重大記憶體使用警告。若要釋放記憶體,請重新啟動 Claude Code 並執行 [`claude --continue`](/docs/zh-TW/cli-reference#cli-flags) 以在新程序中繼續對話。

51 

52在[全螢幕渲染](/docs/zh-TW/fullscreen)外,執行 `/compact` 也會釋放記憶體。一旦記憶體使用量降回 2.5GB 以下,警告就會消失。

53 

50如果在這些步驟後記憶體使用仍然很高,請執行 `/heapdump` 以將兩個檔案寫入 `~/Desktop`:一個名為 `<session-id>.heapsnapshot` 的 JavaScript 堆快照和一個名為 `<session-id>-diagnostics.json` 的記憶體分解。Claude Code [從命令選單隱藏該命令](/docs/zh-TW/commands#how-the-command-menu-matches-what-you-type);請完整輸入。在沒有 Desktop 資料夾的 Linux 上,檔案會寫入您的主目錄。54如果在這些步驟後記憶體使用仍然很高,請執行 `/heapdump` 以將兩個檔案寫入 `~/Desktop`:一個名為 `<session-id>.heapsnapshot` 的 JavaScript 堆快照和一個名為 `<session-id>-diagnostics.json` 的記憶體分解。Claude Code [從命令選單隱藏該命令](/docs/zh-TW/commands#how-the-command-menu-matches-what-you-type);請完整輸入。在沒有 Desktop 資料夾的 Linux 上,檔案會寫入您的主目錄。

51 55 

52<Warning>56<Warning>


114 118 

115若要將 Claude 的輸出放在您的剪貼簿上,請要求 Claude 在其回應中列印內容,然後執行 [`/copy`](/docs/zh-TW/commands)。`/copy` 從 Claude Code 程序本身而不是從沙箱化命令寫入剪貼簿,因此沙箱不會阻止它。它可以複製單個程式碼區塊而不是整個回應,它也會將複製的內容寫入檔案並列印路徑,這在剪貼簿寫入無法到達您的終端時提供備用方案,例如透過 SSH。119若要將 Claude 的輸出放在您的剪貼簿上,請要求 Claude 在其回應中列印內容,然後執行 [`/copy`](/docs/zh-TW/commands)。`/copy` 從 Claude Code 程序本身而不是從沙箱化命令寫入剪貼簿,因此沙箱不會阻止它。它可以複製單個程式碼區塊而不是整個回應,它也會將複製的內容寫入檔案並列印路徑,這在剪貼簿寫入無法到達您的終端時提供備用方案,例如透過 SSH。

116 120 

117若要讓管道化命令直接到達剪貼簿,請將 `pbcopy *`、`wl-copy *` 或 `xclip *` 新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands),以便命令在沙箱外執行。121當 Claude 將文字傳送到其中一個工具時,將 `pbcopy *`、`wl-copy *` 或 `xclip *` 新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 本身不會將該呼叫從沙箱中取出。

118 122 

119<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">123<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">

120 複製的文字無法透過 SSH 到達您的本機剪貼簿124 複製的文字無法透過 SSH 到達您的本機剪貼簿

ultrareview.md +10 −3

Details

50 50 

51基礎分支不需要存在於您的本機複製中;Claude Code 會從 `origin` 擷取它。如果名稱有拼寫錯誤,Claude Code 會在錯誤中建議最接近的分支名稱。51基礎分支不需要存在於您的本機複製中;Claude Code 會從 `origin` 擷取它。如果名稱有拼寫錯誤,Claude Code 會在錯誤中建議最接近的分支名稱。

52 52 

53提交 ID 或標籤也可以作為基礎,審查則涵蓋您的分支自該提交以來的變更。

54 

53<h3 id="review-a-pull-request">55<h3 id="review-a-pull-request">

54 審查提取請求56 審查提取請求

55</h3>57</h3>


114Ultrareview 在任何審查工作執行前檢查差異,並在無法按原樣審查時告訴您:116Ultrareview 在任何審查工作執行前檢查差異,並在無法按原樣審查時告訴您:

115 117 

116* **差異過大**:分支審查預設最多可包含 500 個變更檔案和 8,000 個變更行。確切值可能會變更,[拒絕](/docs/zh-TW/errors#diff-is-too-large-for-ultrareview)會命名生效的值、您的差異大小和變更行數最多的檔案。Claude Code 以相同方式拒絕過大的提取請求,命名其檔案和行數,但不命名每個檔案的明細118* **差異過大**:分支審查預設最多可包含 500 個變更檔案和 8,000 個變更行。確切值可能會變更,[拒絕](/docs/zh-TW/errors#diff-is-too-large-for-ultrareview)會命名生效的值、您的差異大小和變更行數最多的檔案。Claude Code 以相同方式拒絕過大的提取請求,命名其檔案和行數,但不命名每個檔案的明細

117* **沒有要審查的內容**:當針對基礎的差異為空時,Claude Code 會說明並建議暫存或提交本機編輯,或傳遞不同的基礎119* **沒有要審查的內容**:當針對基礎的差異為空時,ultrareview 會拒絕並命名它比較的分支或提交,以及您所在的情況,例如在基礎分支本身上且沒有未提交的內容,或其提交全部已是基礎一部分的分支。它也會為該情況建議解決方式,例如切換到您有工作的分支、暫存或提交本機編輯,或傳遞不同的基礎

118* **沒有合併基礎**:當您的分支與基礎分支沒有共享歷史記錄時,Claude Code 會改為審查儲存庫中的每個追蹤檔案;備用方案需要完整複製並套用相同的大小限制。在沒有分支或其他參考的簽出上(例如透過在擷取 URL 後簽出 `FETCH_HEAD` 建立的分離 HEAD),Claude Code [拒絕審查](/docs/zh-TW/errors#your-checkout-has-no-branches)並建議先建立分支120* **首次提交**:儲存庫的首次提交沒有更早的內容可比較,因此在您在啟動對話方塊中確認後,ultrareview 會審查其中的每個檔案。如果您有未追蹤的檔案,它會改為拒絕並告訴您 `git add` 您想審查的檔案。相同的大小限制適用。

121 

122 首次提交只有在該確認後才會整體審查,因此 `claude ultrareview` 子命令和 `claude -p` 會拒絕它並指向互動式工作階段。需要 Claude Code v2.1.277 或更新版本

123* **沒有合併基礎**:當您的分支與基礎分支沒有共享歷史記錄時,或儲存庫沒有基礎分支可比較時,ultrareview 會改為審查儲存庫中的每個追蹤檔案。備用方案需要完整複製並套用相同的大小限制。它只有在您在啟動對話方塊中確認或自行執行 `claude ultrareview` 子命令時才會啟動。在 `claude -p` 和任何其他都不會發生的地方,ultrareview 會拒絕,說審查會涵蓋每個檔案,並指向互動式工作階段。

124 

125 在沒有分支或其他參考的簽出上(例如透過在擷取 URL 後簽出 `FETCH_HEAD` 建立的分離 HEAD),Claude Code [拒絕審查](/docs/zh-TW/errors#your-checkout-has-no-branches)並建議先建立分支

119 126 

120<h2 id="pricing-and-free-runs">127<h2 id="pricing-and-free-runs">

121 定價和免費執行次數128 定價和免費執行次數


166 173 

167不帶引數時,該子命令審查您目前分支與預設分支之間的差異,當沒有合併基礎時具有與 `/code-review ultra` 相同的[整個儲存庫備用方案](#diff-limits-and-fallbacks)。傳遞 PR 編號以審查拉取請求,或傳遞基礎分支以改為審查與該分支的差異;[基礎分支處理](#review-against-a-different-base)與互動命令相符。174不帶引數時,該子命令審查您目前分支與預設分支之間的差異,當沒有合併基礎時具有與 `/code-review ultra` 相同的[整個儲存庫備用方案](#diff-limits-and-fallbacks)。傳遞 PR 編號以審查拉取請求,或傳遞基礎分支以改為審查與該分支的差異;[基礎分支處理](#review-against-a-different-base)與互動命令相符。

168 175 

169當您執行該子命令時,您同意整個儲存庫備用方案以及計費和條款提示,因此執行開始時無需等待輸入。176當您執行該子命令時,您同意整個儲存庫備用方案以及計費和條款提示,因此執行開始時無需等待輸入。執行它本身就是同意的表現。當 Claude 代替您執行該子命令時,例如透過 Bash 工具,Claude Code 會拒絕整個儲存庫審查。

170 177 

171在 Claude Code v2.1.218 或更新版本上,您也可以在非互動工作階段中執行 `/code-review ultra` 來啟動雲端審查,例如 `claude -p '/code-review ultra'`。Claude Code 啟動審查並列印追蹤連結,無需等待發現,不同於 `claude ultrareview`,後者會阻止直到發現到達。當審查會計費使用量配額時,Claude Code 在啟動前停止並指向您 `claude ultrareview`,因為計費確認需要互動工作階段。在 v2.1.218 之前,非互動工作階段中的 `/code-review ultra` 執行本機審查。178在 Claude Code v2.1.218 或更新版本上,您也可以在非互動工作階段中執行 `/code-review ultra` 來啟動雲端審查,例如 `claude -p '/code-review ultra'`。Claude Code 啟動審查並列印追蹤連結,無需等待發現,不同於 `claude ultrareview`,後者會阻止直到發現到達。當審查會計費使用量配額時,Claude Code 在啟動前停止並指向您 `claude ultrareview`,因為計費確認需要互動工作階段。在 v2.1.218 之前,非互動工作階段中的 `/code-review ultra` 執行本機審查。

172 179 

vs-code.md +85 −22

Details

90 * 在手動模式中,當 Claude 想要編輯檔案時,它會顯示原始檔案和建議變更的並排比較,然後要求權限。您可以接受、拒絕或告訴 Claude 改為執行什麼操作。如果您在接受前直接在差異檢視中編輯建議的內容,Claude 會被告知您已修改它,因此不會假設檔案與其原始提案相符。90 * 在手動模式中,當 Claude 想要編輯檔案時,它會顯示原始檔案和建議變更的並排比較,然後要求權限。您可以接受、拒絕或告訴 Claude 改為執行什麼操作。如果您在接受前直接在差異檢視中編輯建議的內容,Claude 會被告知您已修改它,因此不會假設檔案與其原始提案相符。

91 91 

92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code 顯示 Claude 建議變更的差異,以及詢問是否進行編輯的權限提示" width="3292" height="1876" data-path="images/vs-code-edits.png" />92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code 顯示 Claude 建議變更的差異,以及詢問是否進行編輯的權限提示" width="3292" height="1876" data-path="images/vs-code-edits.png" />

93 

94 若要逐次檢閱建議的編輯,請使用差異中每個變更下方的**接受此變更**和**拒絕此變更**按鈕。拒絕變更會在建議的內容中還原它;接受會將其標記為已檢閱。接受或拒絕整個檔案仍會完成檢閱。超過 100 個變更的差異會在沒有逐個變更按鈕的情況下開啟,因此請將其作為整個檔案進行檢閱。逐個變更檢閱需要 Claude Code v2.1.275 或更新版本。

95 

96 相同的操作可從編輯器的內容功能表和命令面板中取得,分別為**Claude Code: Accept Change at Cursor** 和**Claude Code: Reject Change at Cursor**。

93 </Step>97 </Step>

94</Steps>98</Steps>

95 99 


110 * **Manual**:Claude 在檔案編輯和大多數 shell 命令前詢問權限。114 * **Manual**:Claude 在檔案編輯和大多數 shell 命令前詢問權限。

111 * **Plan**:Claude 描述它將執行的操作,並在進行變更前等待批准。VS Code 會自動將計畫作為完整 Markdown 文件開啟,您可以在其中新增內嵌註解以在 Claude 開始前提供回饋。115 * **Plan**:Claude 描述它將執行的操作,並在進行變更前等待批准。VS Code 會自動將計畫作為完整 Markdown 文件開啟,您可以在其中新增內嵌註解以在 Claude 開始前提供回饋。

112 * **Edit automatically**:Claude 進行編輯而不詢問。116 * **Edit automatically**:Claude 進行編輯而不詢問。

113* **Model**:從命令菜單中選擇 **Switch model…** 以在會話中途變更模型。您也可以點擊提示框底部的模型名稱以開啟相同的選擇器。當目前的模型支援[努力等級](/docs/zh-TW/model-config#adjust-effort-level)時,選擇器也會顯示 **Effort** 列和模型名稱按鈕會顯示選定的等級。模型名稱按鈕和 **Effort** 列需要 Claude Code v2.1.257 或更新版本。117* **Model**:從命令菜單中選擇 **Switch model…** 以在會話中途變更模型。您也可以點擊提示框底部的模型名稱以開啟相同的選擇器。

114* **Command menu**:點擊 `/` 或輸入 `/` 以開啟命令菜單。選項包括附加檔案、切換模型和切換延伸思考。Customize 部分提供對 MCP 伺服器、slash commands、輸出樣式、hooks、記憶、權限和外掛程式的存取。帶有終端機圖示的項目會在整合終端機中開啟。118 

119 當目前的模型支援[努力等級](/docs/zh-TW/model-config#adjust-effort-level)時,選擇器也會顯示 **Effort** 列和模型名稱按鈕會顯示選定的等級。當您選擇 `max` 以外的等級時,Claude Code 會在您的使用者設定中的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 下將其儲存為目前模型的預設值;`max` 僅適用於目前會話。模型名稱按鈕和 **Effort** 列需要 Claude Code v2.1.257 或更新版本。

120* **Command menu**:點擊 `/` 或輸入 `/` 以開啟命令菜單。選項包括附加檔案、切換模型和切換延伸思考。

121 

122 Customize 部分提供對 MCP 伺服器、slash commands、輸出樣式、hooks、記憶、指示和外掛程式的存取。帶有終端機圖示的項目會在整合終端機中開啟。

123 

115 * 若要瀏覽 `/usage` 或 [`/remote-control`](/docs/zh-TW/remote-control) 等命令,請在 Customize 部分中選擇 **Slash commands**。對話方塊會列出它們並提供篩選框。選擇一個以執行它。在提示框中輸入 `/` 仍會內嵌建議命令。需要 Claude Code v2.1.257 或更新版本。124 * 若要瀏覽 `/usage` 或 [`/remote-control`](/docs/zh-TW/remote-control) 等命令,請在 Customize 部分中選擇 **Slash commands**。對話方塊會列出它們並提供篩選框。選擇一個以執行它。在提示框中輸入 `/` 仍會內嵌建議命令。需要 Claude Code v2.1.257 或更新版本。

116 * 在 Customize 部分中選擇 **Output styles** 以選擇[輸出樣式](/docs/zh-TW/output-styles),包括您的自訂樣式。需要 Claude Code v2.1.257 或更新版本。125 * 在 Customize 部分中選擇 **Output styles** 以選擇[輸出樣式](/docs/zh-TW/output-styles),包括您的自訂樣式。需要 Claude Code v2.1.257 或更新版本。

117 126 

118 若要改為建立自訂樣式,請從 **Output styles** 菜單中選擇 **Build a custom style**。Claude Code 會在專案或使用者層級為您寫入[樣式檔案](/docs/zh-TW/output-styles#create-a-custom-output-style)。需要 Claude Code v2.1.261 或更新版本。127 若要改為建立自訂樣式,請從 **Output styles** 菜單中選擇 **Build a custom style**。Claude Code 會在專案或使用者層級為您寫入[樣式檔案](/docs/zh-TW/output-styles#create-a-custom-output-style)。需要 Claude Code v2.1.261 或更新版本。

119 * 在 Customize 部分中選擇 **Hooks** 以檢視會話中載入的 [hooks](/docs/zh-TW/hooks),按事件分組。您可以新增、編輯或移除儲存在您的使用者、專案和本機設定檔中的 hooks。來自其他來源(例如受管設定或外掛程式)的 Hooks 是唯讀的。需要 Claude Code v2.1.269 或更新版本。128 * 在 Customize 部分中選擇 **Hooks** 以檢視會話中載入的 [hooks](/docs/zh-TW/hooks),按事件分組。您可以新增、編輯或移除儲存在您的使用者、專案和本機設定檔中的 hooks。來自其他來源(例如受管設定或外掛程式)的 Hooks 是唯讀的。需要 Claude Code v2.1.269 或更新版本。

120 * 在 Customize 部分中選擇 **Permissions** 以檢視會話的[權限規則](/docs/zh-TW/permissions),分組為 Allow、Ask 和 Deny。您可以將規則新增到您的使用者、專案或本機設定,並移除儲存在那裡的規則。來自其他來源(例如受管設定或僅針對此會話進行的批准)的規則是唯讀的。需要 Claude Code v2.1.269 或更新版本。129 * 在 Customize 部分中選擇 **Permissions** 以檢視會話的[權限規則](/docs/zh-TW/permissions),分組為 Allow、Ask 和 Deny。您可以將規則新增到您的使用者、專案或本機設定,並移除儲存在那裡的規則。來自其他來源(例如受管設定或僅針對此會話進行的批准)的規則是唯讀的。需要 Claude Code v2.1.269 或更新版本。

130 * 在 Customize 部分中選擇 **Memory** 以開啟或關閉[自動記憶](/docs/zh-TW/memory#auto-memory)。當它開啟時,您也可以瀏覽 Claude 已儲存的記憶,並在您的檔案管理員中顯示儲存它們的資料夾。需要 Claude Code v2.1.274 或更新版本。

131 

132 點擊已儲存的記憶以在對話方塊中讀取它,您可以在其中編輯文字、刪除記憶或在編輯器中開啟其檔案。在對話方塊中檢視、編輯和刪除記憶需要 Claude Code v2.1.275 或更新版本。

133 * 在 Customize 部分中選擇 **Instructions** 以編輯 Claude 讀取的 [CLAUDE.md 檔案](/docs/zh-TW/memory#claude-md-files)。選擇一個檔案以在編輯器中開啟它。如果檔案還不存在,Claude Code 會先建立它。需要 Claude Code v2.1.274 或更新版本。

121 * Settings 部分包括 **Enable Remote Control for all sessions**,它設定 [`remoteControlAtStartup`](/docs/zh-TW/settings-reference#remotecontrolatstartup) 以控制[新的互動式會話是否自動連接到 Remote Control](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions)。需要 Claude Code v2.1.203 或更新版本。134 * Settings 部分包括 **Enable Remote Control for all sessions**,它設定 [`remoteControlAtStartup`](/docs/zh-TW/settings-reference#remotecontrolatstartup) 以控制[新的互動式會話是否自動連接到 Remote Control](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions)。需要 Claude Code v2.1.203 或更新版本。

122 135 

123 當您在 VS Code 視窗中開啟或關閉切換開關時,變更會套用到該 VS Code 視窗中已開啟的會話,而不僅僅是您之後啟動的會話。如果您關閉它,開啟的會話會中斷連接。使用 Claude Code v2.1.261 或更新版本,變更也會到達您其他 VS Code 視窗中開啟的會話。136 當您在 VS Code 視窗中開啟或關閉切換開關時,變更會套用到該 VS Code 視窗中已開啟的會話,而不僅僅是您之後啟動的會話。如果您關閉它,開啟的會話會中斷連接。使用 Claude Code v2.1.261 或更新版本,變更也會到達您其他 VS Code 視窗中開啟的會話。

124 * Settings 部分也包括 **Focus view**,它隱藏工具呼叫、工具結果和思考在可展開的列後面,只留下您的提示和 Claude 的回應。在那裡切換它,使用 `Ctrl+Option+F`(Mac)/ `Ctrl+Alt+F`(Windows/Linux),或從命令選擇區使用 **Claude Code: Toggle Focus view**。變更會套用到每個開啟的會話並在會話間保持。需要 Claude Code v2.1.221 或更新版本。137 * Settings 部分也包括 **Focus view**,它隱藏工具呼叫、工具結果和思考在可展開的列後面,只留下您的提示和 Claude 的回應。在那裡切換它,使用 `Ctrl+Option+F`(Mac)/ `Ctrl+Alt+F`(Windows/Linux),或從命令選擇區使用 **Claude Code: Toggle Focus view**。變更會套用到每個開啟的會話並在會話間保持。需要 Claude Code v2.1.221 或更新版本。

125 138 

126 Claude 最新的待辦事項清單保持可見,待處理問題中 Claude 詢問的文字也保持可見;這需要 Claude Code v2.1.225 或更新版本。當 Claude 執行 [subagents](/docs/zh-TW/sub-agents) 時,帶有其最新活動的即時進度列會出現在啟動它們的工具呼叫群組下。這需要 Claude Code v2.1.269 或更新版本。139 Claude 最新的待辦事項清單保持可見,待處理問題中 Claude 詢問的文字也保持可見;這需要 Claude Code v2.1.225 或更新版本。當 Claude 執行 [subagents](/docs/zh-TW/sub-agents) 時,帶有其最新活動的即時進度列會出現在啟動它們的工具呼叫群組下。這需要 Claude Code v2.1.269 或更新版本。

140 * 若要登出您的 Anthropic 帳戶,請在 Settings 部分中選擇 **Sign out**,或輸入 `/logout`。在[第三方提供者](#use-third-party-providers)上,菜單不提供任一選項。需要 Claude Code v2.1.277 或更新版本。

127 * 若要報告錯誤,請點擊菜單底部的 **Report a problem**,或輸入 `/bug` 或 `/feedback` 並附上可選的描述以預填報告。當您提交報告且您已在第一方連接上登入 Anthropic 時,Claude Code 會將其傳送給 Anthropic。在第三方提供者上,或沒有 Anthropic 認證時,對話方塊仍會開啟,但提交會顯示錯誤且不傳送任何內容:與 CLI 的 `/bug` 不同,擴充功能不會寫入本機存檔。需要 Claude Code v2.1.229 或更新版本。141 * 若要報告錯誤,請點擊菜單底部的 **Report a problem**,或輸入 `/bug` 或 `/feedback` 並附上可選的描述以預填報告。當您提交報告且您已在第一方連接上登入 Anthropic 時,Claude Code 會將其傳送給 Anthropic。在第三方提供者上,或沒有 Anthropic 認證時,對話方塊仍會開啟,但提交會顯示錯誤且不傳送任何內容:與 CLI 的 `/bug` 不同,擴充功能不會寫入本機存檔。需要 Claude Code v2.1.229 或更新版本。

128 142 

129 如果您的組織政策關閉產品回饋,**Report a problem** 不會出現在菜單中,而 `/bug` 和 `/feedback` 會顯示 `Feedback is turned off by your organization's policy or this environment's settings.` 通知,而不是開啟報告。143 如果您的組織政策關閉產品回饋,**Report a problem** 不會出現在菜單中,而 `/bug` 和 `/feedback` 會顯示 `Feedback is turned off by your organization's policy or this environment's settings.` 通知,而不是開啟報告。

130* **Side questions**:輸入 `/btw` 後跟一個問題以詢問有關您的會話的問題[而不新增到對話](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)。答案會在聊天旁的面板中開啟,您可以在其中提出後續問題。執行緒在視窗重新載入後仍然存在。Claude Code 保留最新的 20 個交換,並根據 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 排程過期儲存的執行緒,只要 Claude Code 可以[安全地確定保留期](/docs/zh-TW/claude-directory#cleaned-up-automatically)。若要清除執行緒,請點擊面板中的垃圾桶圖示。需要 Claude Code v2.1.227 或更新版本。144* **Side questions**:輸入 `/btw` 後跟一個問題以詢問有關您的會話的問題[而不新增到對話](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)。答案會在聊天旁的面板中開啟,您可以在其中提出後續問題。執行緒在視窗重新載入後仍然存在。Claude Code 保留最新的 20 個交換,並根據 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 排程過期儲存的執行緒,只要 Claude Code 可以[安全地確定保留期](/docs/zh-TW/claude-directory#cleaned-up-automatically)。若要清除執行緒,請點擊面板中的垃圾桶圖示。需要 Claude Code v2.1.227 或更新版本。

145* **Copy a response**:將滑鼠懸停在回應上並點擊 **Copy response** 以將其複製到您的剪貼簿,或輸入 `/copy` 以複製最新的回應。`/copy 2` 複製倒數第二個。需要 Claude Code v2.1.277 或更新版本。

131* **Context indicator**:提示框顯示您使用了多少 Claude 的內容視窗。Claude 會在需要時自動壓縮,或您可以手動執行 `/compact`。146* **Context indicator**:提示框顯示您使用了多少 Claude 的內容視窗。Claude 會在需要時自動壓縮,或您可以手動執行 `/compact`。

132* **Prompt cache clock**:內容指示器旁的時鐘圖示估計對話的 [prompt cache](/docs/zh-TW/prompt-caching) 在過期前還剩多少時間。它從快取的五分鐘或一小時[生命週期](/docs/zh-TW/prompt-caching#cache-lifetime)倒數,每個使用快取的回應都會重新啟動倒數。除了壓縮外,[使快取失效的操作](/docs/zh-TW/prompt-caching#actions-that-invalidate-the-cache)不會重設時鐘,因此在您切換模型後它仍然可以顯示剩餘的分鐘數。147* **Prompt cache clock**:內容指示器旁的時鐘圖示估計對話的 [prompt cache](/docs/zh-TW/prompt-caching) 在過期前還剩多少時間。它從快取的五分鐘或一小時[生命週期](/docs/zh-TW/prompt-caching#cache-lifetime)倒數,每個使用快取的回應都會重新啟動倒數。除了壓縮外,[使快取失效的操作](/docs/zh-TW/prompt-caching#actions-that-invalidate-the-cache)不會重設時鐘,因此在您切換模型後它仍然可以顯示剩餘的分鐘數。

133 * 在倒數結束前,圖示會顯示剩餘的分鐘數,例如 **12m**。148 * 在倒數結束前,圖示會顯示剩餘的分鐘數,例如 **12m**。


136* **Agent map**:當對話包括 [subagents](/docs/zh-TW/sub-agents) 時,代理計數(例如 **2 agents**)會出現在提示框底部。其點顯示任何 subagent 是否正在工作或等待您的權限。151* **Agent map**:當對話包括 [subagents](/docs/zh-TW/sub-agents) 時,代理計數(例如 **2 agents**)會出現在提示框底部。其點顯示任何 subagent 是否正在工作或等待您的權限。

137 152 

138 點擊代理計數以開啟代理地圖,它將對話的 subagents 繪製為主代理下的樹,每個都有其狀態、經過的時間和令牌計數。點擊 subagent 以查看其提示和工具呼叫、開啟其唯讀文字記錄,或在其執行時停止它。需要 Claude Code v2.1.269 或更新版本。153 點擊代理計數以開啟代理地圖,它將對話的 subagents 繪製為主代理下的樹,每個都有其狀態、經過的時間和令牌計數。點擊 subagent 以查看其提示和工具呼叫、開啟其唯讀文字記錄,或在其執行時停止它。需要 Claude Code v2.1.269 或更新版本。

154 

155 地圖也會在代理下方列出會話的其他[背景工作](/docs/zh-TW/tools-reference#background-commands),例如背景 shell 命令和[監視器](/docs/zh-TW/tools-reference#monitor-tool)。點擊一列以開啟工作的卡片並在那裡停止它。

156 

157 若要在沒有顯示代理計數時開啟地圖,例如當 Claude 已啟動背景 shell 但沒有 subagents 時,請在提示框中輸入 `/tasks`。地圖中的背景工作和輸入的 `/tasks` 需要 Claude Code v2.1.277 或更新版本。

139* **Extended thinking**:讓 Claude 花更多時間推理複雜問題。透過命令菜單(`/`)開啟它。Claude 的推理在對話中顯示為摺疊的區塊:點擊一個區塊以閱讀它,或按 `Ctrl+O` 以展開或摺疊會話中的每個思考區塊。請參閱[Extended thinking](/docs/zh-TW/model-config#extended-thinking)以了解詳細資訊。158* **Extended thinking**:讓 Claude 花更多時間推理複雜問題。透過命令菜單(`/`)開啟它。Claude 的推理在對話中顯示為摺疊的區塊:點擊一個區塊以閱讀它,或按 `Ctrl+O` 以展開或摺疊會話中的每個思考區塊。請參閱[Extended thinking](/docs/zh-TW/model-config#extended-thinking)以了解詳細資訊。

140* **Multi-line input**:按 `Shift+Enter` 以新增一行而不傳送。這也適用於問題對話的「Other」自由文字輸入。159* **Multi-line input**:按 `Shift+Enter` 以新增一行而不傳送。這也適用於問題對話的「Other」自由文字輸入。

141 160 


154 173 

155當您在編輯器中選擇文字時,Claude 可以自動看到您的反白程式碼。提示框頁尾顯示選擇了多少行。按 `Option+K`(Mac)/ `Alt+K`(Windows/Linux)以插入帶有檔案路徑和行號的 @-mention(例如 `@app.ts#5-10`)。點擊選擇指示器上的 **X** 以將其從內容中移除,使 Claude 不會接收選擇。當您選擇其他文字時,指示器會重新出現。174當您在編輯器中選擇文字時,Claude 可以自動看到您的反白程式碼。提示框頁尾顯示選擇了多少行。按 `Option+K`(Mac)/ `Alt+K`(Windows/Linux)以插入帶有檔案路徑和行號的 @-mention(例如 `@app.ts#5-10`)。點擊選擇指示器上的 **X** 以將其從內容中移除,使 Claude 不會接收選擇。當您選擇其他文字時,指示器會重新出現。

156 175 

176擴充功能會從某些檔案中隱藏選定的文字。當檔案在您的工作區內且符合您的 `files.exclude` 或 `search.exclude` 設定時,Claude 最多會接收檔案的路徑而不是您選擇的文字。同樣適用於 git 忽略的檔案,只要 VS Code 的 `search.useIgnoreFiles` 設定和擴充功能的 [`respectGitIgnore` 設定](#extension-settings)都開啟(預設值),這就是預設值。此篩選器僅涵蓋聊天面板:當 Claude Code 在整合終端機中執行時,CLI 會傳送您選擇的文字,無論檔案如何,因此新增[`Read` 拒絕規則](#the-built-in-ide-mcp-server)以防止檔案的內容到達 Claude。

177 

157Claude 也會看到您在編輯器中開啟的檔案,即使沒有選擇任何內容,提示框也會顯示其名稱。若要僅新增您選擇的文字,請關閉[附加開啟檔案設定](vscode://settings/claudeCode.attachOpenFile)。此設定需要 Claude Code v2.1.271 或更新版本。178Claude 也會看到您在編輯器中開啟的檔案,即使沒有選擇任何內容,提示框也會顯示其名稱。若要僅新增您選擇的文字,請關閉[附加開啟檔案設定](vscode://settings/claudeCode.attachOpenFile)。此設定需要 Claude Code v2.1.271 或更新版本。

158 179 

159若要附加影像,請從您的剪貼簿將其貼到提示框中。您也可以在將檔案拖入提示框時按住 `Shift` 以將它們新增為附件。點擊任何附件上的 X 以將其從內容中移除。180您也可以將影像和檔案附加到您的訊息:

181 

182* 若要附加影像,請從您的剪貼簿將其貼到提示框中。

183* 若要附加檔案,請在將它們拖入提示框時按住 `Shift`。

184* 若要從內容中移除附件,請點擊它上面的 X。

160 185 

161<h3 id="resume-past-conversations">186<h3 id="resume-past-conversations">

162 恢復過去的對話187 恢復過去的對話


171 196 

172預設情況下,14 天內沒有活動的會話會自動移動到 **Archived sessions**,除非它已開啟、未讀或在[群組](#organize-sessions-into-groups)中。自動存檔需要 Claude Code v2.1.265 或更新版本。若要變更期間或關閉它,請開啟[存檔非活動會話設定](vscode://settings/claudeCode.archiveInactiveSessions)並選擇天數或 **Never**。197預設情況下,14 天內沒有活動的會話會自動移動到 **Archived sessions**,除非它已開啟、未讀或在[群組](#organize-sessions-into-groups)中。自動存檔需要 Claude Code v2.1.265 或更新版本。若要變更期間或關閉它,請開啟[存檔非活動會話設定](vscode://settings/claudeCode.archiveInactiveSessions)並選擇天數或 **Never**。

173 198 

174若要恢復已存檔的會話,請展開 **Archived sessions** 並點擊 **Unarchive session**。在 v2.1.257 之前,操作是 **Delete session**,它隱藏了一個會話且無法恢復。您當時刪除的會話在升級後會出現在 **Archived sessions** 下。199若要恢復已存檔的會話,請展開 **Archived sessions** 並點擊 **Unarchive session**。若要一次恢復每個已存檔的會話,請將滑鼠懸停在活動列中會話清單中的 **Archived sessions** 標題上,並點擊其取消存檔圖示,這需要 Claude Code v2.1.277 或更新版本。在 v2.1.257 之前,操作是 **Delete session**,它隱藏了一個會話且無法恢復。您當時刪除的會話在升級後會出現在 **Archived sessions** 下。

175 200 

176當您恢復的對話以計畫模式結束時,Claude Code 會恢復計畫模式。需要 Claude Code v2.1.246 或更新版本。Claude Code 在兩種情況下不會恢復它:201當您恢復的對話以計畫模式結束時,Claude Code 會恢復計畫模式。需要 Claude Code v2.1.246 或更新版本。Claude Code 在兩種情況下不會恢復它:

177 202 


182 從 Claude.ai 恢復雲端會話207 從 Claude.ai 恢復雲端會話

183</h3>208</h3>

184 209 

185如果您使用[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web),您可以直接在 VS Code 中恢復這些雲端會話。這需要使用 **Claude.ai Subscription** 登入,而不是 Anthropic Console。210如果您執行[雲端會話](/docs/zh-TW/claude-code-on-the-web),您可以直接在 VS Code 中恢復它們。這需要使用 **Claude.ai Subscription** 登入,而不是 Anthropic Console。

186 211 

187<Steps>212<Steps>

188 <Step title="開啟會話歷史">213 <Step title="開啟會話歷史">


199</Steps>224</Steps>

200 225 

201<Note>226<Note>

202 只有使用 GitHub 存放庫啟動的網路會話才會出現在 Web 標籤中。恢復會在本機載入對話歷史;變更不會同步回 claude.ai。227 只有使用 GitHub 存放庫啟動的雲端會話才會出現在 Web 標籤中。恢復會在本機載入對話歷史;變更不會同步回 claude.ai。

203</Note>228</Note>

204 229 

205<h3 id="check-account-and-usage">230<h3 id="check-account-and-usage">

206 檢查帳戶和使用情況231 檢查帳戶和使用情況

207</h3>232</h3>

208 233 

209執行 `/usage` 以開啟帳戶和使用情況對話方塊。對話方塊需要 claude.ai 登入,因此在[第三方提供者](#use-third-party-providers)上不提供。它顯示您登入的帳戶、您的方案和您方案限制的使用情況列,例如目前會話和週。每個列顯示其限制重設的時間。234執行 `/usage` 以開啟帳戶和使用情況對話方塊。它顯示您登入的帳戶,使用情況報告因登入而異:

235 

236* **claude.ai plan**:您方案限制的使用情況列,例如目前會話和週。每個列顯示其限制重設的時間。

237 

238 對話方塊也會分解對您的方案限制有貢獻的內容。它標記佔最近使用情況 10% 或以上的行為,例如快取未命中、長內容和子代理程式繁重或高度平行會話,每個都有減少它的提示。Attribution 表格顯示每個 skill、subagent、外掛程式和 MCP 伺服器貢獻了多少使用情況。

210 239 

211對話方塊也會分解對您的方案限制有貢獻的內容。它標記佔最近使用情況 10% 或以上的行為,例如快取未命中、長內容和子代理程式繁重或高度平行會話,每個都有減少它的提示。Attribution 表格顯示每個 skill、subagent、外掛程式和 MCP 伺服器貢獻了多少使用情況。240 使用 Day 和 Week 切換以在過去 24 小時和過去 7 天之間切換。這些數字是近似值,並從此機器上的本機會話計算,因此不包括來自其他裝置或 claude.ai 的使用情況。

241* **Other sign-ins**:當方案限制不適用於您的登入時,例如在[第三方提供者](#use-third-party-providers)上或使用 API 金鑰時,Usage 部分會改為顯示會話自己的成本和令牌使用情況。CLI 的 `/usage` 在其[會話區塊](/docs/zh-TW/costs#track-your-costs)中顯示相同的總計。活動列中的會話清單也會在其 **Account & usage** 標題下顯示活動會話的總計。需要 Claude Code v2.1.277 或更新版本。

212 242 

213使用 Day 和 Week 切換以在過去 24 小時和過去 7 天之間切換。這些數字是近似值,並從此機器上的本機會話計算,因此不包括來自其他裝置或 claude.ai 的使用情況。如需有關追蹤和減少使用情況的更多資訊,請參閱[追蹤您的成本](/docs/zh-TW/costs#track-your-costs)。243如需有關追蹤和減少使用情況的更多資訊,請參閱[追蹤您的成本](/docs/zh-TW/costs#track-your-costs)。

214 244 

215<h2 id="customize-your-workflow">245<h2 id="customize-your-workflow">

216 自訂您的工作流程246 自訂您的工作流程


228* **主要側邊欄**:左側邊欄,包含 Explorer、Search 等圖示。258* **主要側邊欄**:左側邊欄,包含 Explorer、Search 等圖示。

229* **編輯器區域**:將 Claude 作為標籤開啟,與您的檔案並排。適合處理附帶工作。259* **編輯器區域**:將 Claude 作為標籤開啟,與您的檔案並排。適合處理附帶工作。

230 260 

261當 Claude 在新編輯器群組中開啟標籤時,擴充功能會鎖定該群組,因此當 Claude 標籤處於焦點時您開啟的檔案會進入另一個群組,而不是在其旁邊。

262 

263若要停止擴充功能鎖定群組,請關閉 [Lock Editor Groups 設定](vscode://settings/claudeCode.lockEditorGroups)。已經鎖定的群組會保持鎖定狀態,直到您解除鎖定為止。此設定需要 Claude Code v2.1.274 或更新版本。

264 

231<Tip>265<Tip>

232 將側邊欄用於您的主要 Claude 工作階段,並為附帶工作開啟額外的標籤。Claude 會記住您偏好的位置。Activity Bar 工作階段清單圖示與 Claude 面板分開:工作階段清單始終在 Activity Bar 中可見,而 Claude 面板圖示只有在面板停靠到左側邊欄時才會出現在那裡。266 將側邊欄用於您的主要 Claude 工作階段,並為附帶工作開啟額外的標籤。Claude 會記住您偏好的位置。Activity Bar 工作階段清單圖示與 Claude 面板分開:工作階段清單始終在 Activity Bar 中可見,而 Claude 面板圖示只有在面板停靠到左側邊欄時才會出現在那裡。

233</Tip>267</Tip>


237* **編輯器標籤**:對話會與其標籤一起回到。271* **編輯器標籤**:對話會與其標籤一起回到。

238* **側邊欄**:如果您在過去 10 分鐘內傳送了訊息或 Claude 在其中回應,對話會回到。如果它沒有回到,請從 [工作階段歷史記錄](#resume-past-conversations) 繼續對話。272* **側邊欄**:如果您在過去 10 分鐘內傳送了訊息或 Claude 在其中回應,對話會回到。如果它沒有回到,請從 [工作階段歷史記錄](#resume-past-conversations) 繼續對話。

239 273 

274如果重新載入在 Claude 執行步驟中途中斷,當對話回到時 Claude 會繼續該步驟,聊天中的通知會標記該繼續。需要 Claude Code v2.1.274 或更新版本。如果步驟在一小時前被中斷或工作階段在其他地方開啟,對話會改為回到閒置狀態。

275 

276若要關閉繼續功能,請開啟 [Continue After Reload 設定](vscode://settings/claudeCode.continueAfterReload) 並取消勾選。

277 

240<h3 id="run-multiple-conversations">278<h3 id="run-multiple-conversations">

241 執行多個對話279 執行多個對話

242</h3>280</h3>


304該 URL 採用兩個查詢參數:342該 URL 採用兩個查詢參數:

305 343 

306| 參數 | 描述 |344| 參數 | 描述 |

307| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |345| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |

308| `plugin` | plugin 的名稱,如其 marketplace 所列。必需。 |346| `plugin` | plugin 的名稱,如其 marketplace 所列。必需。 |

309| `marketplace` | plugin 的來源,採用 [Marketplaces 標籤](#manage-marketplaces) 接受的任何形式,例如 GitHub `owner/repo` 或 git URL。如果包含 `&` 等字元,請進行 URL 編碼。省略時預設為 `anthropics/claude-plugins-official`。 |347| `marketplace` | plugin 的來源:GitHub `owner/repo`、`https://` URL 或 git SSH URL,例如 `git@github.com:owner/repo.git`。省略時預設為 `anthropics/claude-plugins-official`。 |

348 

349[Marketplaces 標籤](#manage-marketplaces)接受的某些值在連結中不適用,例如本機路徑或 `http://` 位址。對於這些,VS Code 會顯示錯誤訊息,對話框不會開啟。

310 350 

311兩種情況在對話框中以訊息結束,而不是範圍選擇:351兩種情況在對話框中以訊息結束,而不是範圍選擇:

312 352 


366| 命令 | 快捷鍵 | 說明 |406| 命令 | 快捷鍵 | 說明 |

367| -------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |407| -------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |

368| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | 在編輯器和 Claude 之間切換焦點 |408| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | 在編輯器和 Claude 之間切換焦點 |

409| Focus last message | - | 將鍵盤焦點移至對話中最新的訊息,或移至等待權限提示,以便您可以使用鍵盤或螢幕閱讀器從該處讀取。在[終端機模式](#switch-to-terminal-mode)中不可用。需要 Claude Code v2.1.268 或更新版本 |

369| Open in Side Bar | - | 在側邊欄中開啟 Claude |410| Open in Side Bar | - | 在側邊欄中開啟 Claude |

370| Open in Terminal | - | 在終端機模式中開啟 Claude |411| Open in Terminal | - | 在終端機模式中開啟 Claude |

371| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | 以編輯器標籤頁開啟新對話 |412| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | 以編輯器標籤頁開啟新對話 |


373| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | 開始新對話。需要 Claude 獲得焦點且 `enableNewConversationShortcut` 設定為 `true` |414| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | 開始新對話。需要 Claude 獲得焦點且 `enableNewConversationShortcut` 設定為 `true` |

374| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | 重新開啟最近關閉的 Claude 工作階段標籤頁。當最後關閉的標籤頁不是 Claude 工作階段時,會回退到 VS Code 的正常重新開啟關閉編輯器功能。可使用 `enableReopenClosedSessionShortcut` 停用 |415| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | 重新開啟最近關閉的 Claude 工作階段標籤頁。當最後關閉的標籤頁不是 Claude 工作階段時,會回退到 VS Code 的正常重新開啟關閉編輯器功能。可使用 `enableReopenClosedSessionShortcut` 停用 |

375| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | 插入對目前檔案和選取項目的參考(需要編輯器獲得焦點) |416| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | 插入對目前檔案和選取項目的參考(需要編輯器獲得焦點) |

417| Accept Change at Cursor | - | 在[檢視提議的編輯](#get-started)時,逐次接受游標處的變更。需要 Claude Code v2.1.275 或更新版本 |

418| Reject Change at Cursor | - | 在逐次檢視提議的編輯時,還原游標處的變更。需要 Claude Code v2.1.275 或更新版本 |

376| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | 隱藏或顯示對話中的工具活動。在 Claude 面板或側邊欄可見時有效。需要 Claude Code v2.1.221 或更新版本 |419| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | 隱藏或顯示對話中的工具活動。在 Claude 面板或側邊欄可見時有效。需要 Claude Code v2.1.221 或更新版本 |

377| Rename Session Tab | - | 重新命名作用中 Claude 標籤頁中的工作階段。需要 Claude Code v2.1.257 或更新版本 |420| Rename Session Tab | - | 重新命名作用中 Claude 標籤頁中的工作階段。需要 Claude Code v2.1.257 或更新版本 |

378| Add Session Tab to Group | - | 將作用中 Claude 標籤頁中的工作階段新增至您選擇或建立的[工作階段群組](#organize-sessions-into-groups)。需要 Claude Code v2.1.257 或更新版本 |421| Add Session Tab to Group | - | 將作用中 Claude 標籤頁中的工作階段新增至您選擇或建立的[工作階段群組](#organize-sessions-into-groups)。需要 Claude Code v2.1.257 或更新版本 |


457| `useTerminal` | `false` | 以終端機模式而非圖形面板啟動 Claude |500| `useTerminal` | `false` | 以終端機模式而非圖形面板啟動 Claude |

458| `initialPermissionMode` | - | 控制新對話的核准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的別名,並選擇模式指示器中標示為 **Manual** 的模式。當您將其保留為未設定時,擴充功能會選擇起始權限模式,如[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)中所述。 |501| `initialPermissionMode` | - | 控制新對話的核准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的別名,並選擇模式指示器中標示為 **Manual** 的模式。當您將其保留為未設定時,擴充功能會選擇起始權限模式,如[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)中所述。 |

459| `preferredLocation` | `panel` | Claude 開啟的位置:`sidebar`(右側)或 `panel`(新標籤) |502| `preferredLocation` | `panel` | Claude 開啟的位置:`sidebar`(右側)或 `panel`(新標籤) |

503| `lockEditorGroups` | `true` | [鎖定 Claude 為其標籤啟動的編輯器群組](#choose-where-claude-lives),以便您在 Claude 標籤聚焦時開啟的檔案會進入另一個群組。關閉時,擴充功能永遠不會鎖定編輯器群組。需要 Claude Code v2.1.274 或更新版本 |

460| `autosave` | `true` | Claude 讀取或寫入檔案前自動儲存檔案 |504| `autosave` | `true` | Claude 讀取或寫入檔案前自動儲存檔案 |

461| `attachOpenFile` | `true` | 將編輯器中開啟的檔案新增至您的訊息,並在提示框中顯示。關閉時,只會新增您選取的文字。需要 Claude Code v2.1.271 或更新版本 |505| `attachOpenFile` | `true` | 將編輯器中開啟的檔案新增至您的訊息,並在提示框中顯示。關閉時,只會新增您選取的文字。需要 Claude Code v2.1.271 或更新版本 |

462| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而非 Enter 來傳送提示 |506| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而非 Enter 來傳送提示 |

507| `scrollToBottomOnSend` | `true` | 當您傳送訊息時,將對話捲動到底部。關閉時,對話會停留在您離開的位置。需要 Claude Code v2.1.275 或更新版本 |

463| `enableNewConversationShortcut` | `false` | 啟用 Cmd/Ctrl+N 以開始新對話 |508| `enableNewConversationShortcut` | `false` | 啟用 Cmd/Ctrl+N 以開始新對話 |

464| `enableReopenClosedSessionShortcut` | `true` | 使用 Cmd/Ctrl+Shift+T 重新開啟最近關閉的 Claude 工作階段標籤。當最後關閉的標籤不是 Claude 工作階段時,快捷鍵會改為執行 VS Code 的正常重新開啟已關閉編輯器命令。 |509| `enableReopenClosedSessionShortcut` | `true` | 使用 Cmd/Ctrl+Shift+T 重新開啟最近關閉的 Claude 工作階段標籤。當最後關閉的標籤不是 Claude 工作階段時,快捷鍵會改為執行 VS Code 的正常重新開啟已關閉編輯器命令。 |

465| `archiveInactiveSessions` | `14` | 在無活動的這許多天後[自動封存工作階段](#resume-past-conversations):`1`、`2`、`7` 或 `14`。設定為 `0` 以關閉。需要 Claude Code v2.1.265 或更新版本 |510| `archiveInactiveSessions` | `14` | 在無活動的這許多天後[自動封存工作階段](#resume-past-conversations):`1`、`2`、`7` 或 `14`。設定為 `0` 以關閉。需要 Claude Code v2.1.265 或更新版本 |

511| `continueAfterReload` | `true` | 視窗重新載入後,Claude [繼續已還原工作階段中被中斷的步驟](#choose-where-claude-lives)。需要 Claude Code v2.1.274 或更新版本 |

466| `hideOnboarding` | `false` | 隱藏上線檢查清單(畢業帽圖示) |512| `hideOnboarding` | `false` | 隱藏上線檢查清單(畢業帽圖示) |

467| `focusView` | `false` | 將工具呼叫、工具結果和思考隱藏在可展開的列後面,只留下您的提示和 Claude 的回應。Claude 的最新待辦事項清單保持可見;這需要 Claude Code v2.1.225 或更新版本。您也可以從命令選單切換焦點檢視。需要 Claude Code v2.1.221 或更新版本 |513| `focusView` | `false` | 將工具呼叫、工具結果和思考隱藏在可展開的列後面,只留下您的提示和 Claude 的回應。Claude 的最新待辦事項清單保持可見;這需要 Claude Code v2.1.225 或更新版本。您也可以從命令選單切換焦點檢視。需要 Claude Code v2.1.221 或更新版本 |

468| `respectGitIgnore` | `true` | 從檔案搜尋中排除 .gitignore 模式 |514| `respectGitIgnore` | `true` | 從檔案搜尋中排除 .gitignore 模式,以及從[選擇內容](#reference-files-and-folders) |

469| `usePythonEnvironment` | `true` | 執行 Claude 時啟動工作區的 Python 環境。需要 Python 擴充功能。 |515| `usePythonEnvironment` | `true` | 執行 Claude 時啟動工作區的 Python 環境。需要 Python 擴充功能。 |

470| `environmentVariables` | `[]` | 為 Claude 程序設定環境變數。使用 Claude Code 設定以改為共享設定。 |516| `environmentVariables` | `[]` | 為 Claude 程序設定環境變數。使用 Claude Code 設定以改為共享設定。 |

471| `disableLoginPrompt` | `false` | 略過驗證提示(用於第三方提供者設定) |517| `disableLoginPrompt` | `false` | 略過驗證提示(用於第三方提供者設定) |


476 使用螢幕閱讀器522 使用螢幕閱讀器

477</h2>523</h2>

478 524 

479擴充功能的聊天面板可與螢幕閱讀器搭配使用。您無需開啟任何設定:擴充功能會為每位使用者宣告對話活動,不會有任何視覺變化。這與 CLI 的選擇加入 [螢幕閱讀器模式](/docs/zh-TW/accessibility) 不同,後者會調整終端機介面。525擴充功能的聊天面板可與螢幕閱讀器搭配使用。您無需開啟任何設定:擴充功能會為每位使用者宣佈對話活動,不會有任何視覺變化。這與 CLI 的選擇加入 [螢幕閱讀器模式](/docs/zh-TW/accessibility) 不同,後者會調整終端機介面。

480 526 

481聊天面板中的螢幕閱讀器支援需要 Claude Code v2.1.236 或更新版本。527聊天面板中的螢幕閱讀器支援需要 Claude Code v2.1.236 或更新版本。

482 528 

483在對話期間,擴充功能會宣告:529在對話期間,擴充功能會宣佈:

530 

531* **Claude 的回覆**:擴充功能會在回覆完成時宣佈一次,並在文字串流進入時保持沉默。您的螢幕閱讀器會將程式碼區塊讀作行數摘要,按標籤讀取連結,並逐個儲存格讀取表格;完整回覆在文字記錄中保持可讀。

532* **權限要求和問題**:當擴充功能的權限提示出現時,擴充功能會宣佈要求,並命名 Claude 想要使用的工具。當 Claude 詢問您問題以及當 Claude 完成計畫並等待您的審查時,它也會以相同方式宣佈。

533* **狀態變更**:擴充功能會在 Claude 開始工作時、Claude 準備好接收您的輸入時以及 Claude Code 開始壓縮對話時宣佈。

534* **錯誤和模型提示**:擴充功能會宣佈對話中的錯誤,並在 [使用額度同意提示](/docs/zh-TW/model-config#fable-and-usage-credits) 或 [標記要求提示](/docs/zh-TW/model-config#ask-before-switching) 出現時宣佈。

535 

536當 Claude 工作時,您的螢幕閱讀器會讀取文字標籤來代替進度微調器的動畫。

537 

538當您重新開啟工作階段或切換到另一個工作階段時,擴充功能不會宣佈任何內容:已還原的歷史記錄、待處理的權限提示和進行中的狀態會保持沉默,直到發生新的事情。

539 

540<h3 id="use-the-chat-panel-from-the-keyboard">

541 從鍵盤使用聊天面板

542</h3>

543 

544文字記錄中的每一輪都以視覺上隱藏的標題開始,標題以啟動該輪的提示命名,因此您可以使用螢幕閱讀器的標題導覽在各輪之間跳轉。

545 

546在一輪內,當您在訊息中移動時,您的螢幕閱讀器會宣佈您所在的訊息來源:

484 547 

485* **Claude 的回覆**:擴充功能會在回覆完成時宣告一次,並在文字串流進入時保持沉默。您的螢幕閱讀器會將程式碼區塊讀作行數摘要,按標籤讀取連結,並逐個儲存格讀取表格;完整回覆在文字記錄中保持可讀。548* **您的訊息**:「您」

486* **權限請求和問題**:當權限提示出現時,擴充功能會宣告請求,並命名 Claude 想要使用的工具。當 Claude 向您提出問題以及當 Claude 完成計畫並等待您的審查時,它也會以相同方式宣告。549* **Claude 的訊息**:「Claude」

487* **狀態變更**:當 Claude 開始工作、Claude 準備好接收您的輸入,以及 Claude Code 開始壓縮對話時,擴充功能會宣告。550* **工具步驟**:「Claude」加上工具名稱,例如「Claude, Bash」

488* **錯誤和模型提示**:擴充功能會宣告對話中的錯誤,並在 [使用額度同意提示](/docs/zh-TW/model-config#fable-and-usage-credits) 或 [標記請求提示](/docs/zh-TW/model-config#ask-before-switching) 出現時宣告。551* **思考區塊**:「Claude, thinking」

489 552 

490文字記錄中的每一輪都以視覺上隱藏的標題開始,標題標有啟動該輪的提示,因此您可以使用螢幕閱讀器的標題導覽在各輪之間跳轉。您也可以使用 `Tab` 將焦點移至文字記錄本身,因為擴充功能會將其公開為標記區域,並按自己的步調讀取。當 Claude 工作時,您的螢幕閱讀器會讀取文字標籤,以取代進度微調器的動畫。553由於擴充功能將文字記錄公開為標記區域,您也可以使用 `Tab` 將焦點移至文字記錄本身,並按自己的步調讀取。若要改為將焦點移至最新訊息或待處理的權限提示,請從 [命令選擇板](#vs-code-commands-and-shortcuts) 執行 **Claude Code: Focus last message**。

491 554 

492當您重新開啟工作階段或切換到另一個工作階段時,擴充功能不會宣告任何內容:已還原的歷史記錄、待處理的權限提示和進行中的狀態會保持沉默,直到發生新的事情。555當權限提示上的選項儲存權限規則或目錄存取時,其標籤的結尾會命名核准的儲存位置,例如「所有專案」或「此工作階段」。在該選項獲得焦點時,按 `Left` 或 `Right` 箭頭鍵以變更目的地,擴充功能會在您移動到每個目的地時宣佈該目的地。您也可以按一下標籤中的目的地。箭頭鍵需要 Claude Code v2.1.268 或更新版本。

493 556 

494<h2 id="vs-code-extension-vs-claude-code-cli">557<h2 id="vs-code-extension-vs-claude-code-cli">

495 VS Code 擴充功能 vs. Claude Code CLI558 VS Code 擴充功能 vs. Claude Code CLI


543 監控背景程序606 監控背景程序

544</h3>607</h3>

545 608 

546擴充功能中背景工作的可見性與 CLI 相比受限。為了獲得更好的可見性,讓 Claude 輸出命令,以便您可以在 VS Code 的整合終端機中執行它。609在提示框中輸入 `/tasks` 以開啟[代理地圖](#use-the-prompt-box),其中列出工作階段的背景工作,例如 Claude 作為背景 shell 命令執行的開發伺服器。按一下工作以開啟其卡片並在該處停止它。需要 Claude Code v2.1.277 或更新版本。

547 610 

548<h3 id="connect-to-external-tools-with-mcp">611<h3 id="connect-to-external-tools-with-mcp">

549 使用 MCP 連接到外部工具612 使用 MCP 連接到外部工具


610 </Step>673 </Step>

611</Steps>674</Steps>

612 675 

613在第三方提供者上,擴充功能不提供需要 claude.ai 帳戶的功能,例如使用情況追蹤、[語音聽寫](/docs/zh-TW/voice-dictation)和用於[從 Claude.ai 繼續雲端工作階段](#resume-cloud-sessions-from-claude-ai)的 Web 標籤。來自較早 `/login` 的 claude.ai 登入會保留下來但未使用:擴充功能不會在任何請求中傳送它。676在第三方提供者上,擴充功能不提供需要 claude.ai 帳戶的功能,例如使用情況追蹤、[語音聽寫](/docs/zh-TW/voice-dictation)和用於[從 Claude.ai 繼續雲端工作階段](#resume-cloud-sessions-from-claude-ai)的 Web 標籤。如需了解帳戶與使用情況對話框在這些登入上顯示的內容,請參閱[檢查帳戶和使用情況](#check-account-and-usage)。來自較早 `/login` 的 claude.ai 登入會保留下來但未使用:擴充功能不會在任何請求中傳送它。

614 677 

615<h2 id="security-and-privacy">678<h2 id="security-and-privacy">

616 安全性和隱私679 安全性和隱私

workflows.md +4 −2

Details

231 231 

232在 v2.1.216 之前,Claude Code 跟隨連結,這可能會將檔案放在您選擇的位置之外。232在 v2.1.216 之前,Claude Code 跟隨連結,這可能會將檔案放在您選擇的位置之外。

233 233 

234在具有多個 `.claude/` 目錄的 monorepo 中,您可以將工作流程保留在它們適用的套件旁邊。自 v2.1.178 起,儲存到專案位置會寫入您的工作目錄和儲存庫根目錄之間已存在的最接近的 `.claude/workflows/` 目錄,或如果尚不存在則寫入儲存庫根目錄。專案工作流程也從該路徑沿著的每個 `.claude/workflows/` 載入,當多個定義相同名稱時 Claude Code 執行最接近工作目錄的那個。234在具有多個 `.claude/` 目錄的 monorepo 中,您可以將工作流程保留在它們適用的套件旁邊。儲存到專案位置會寫入您的工作目錄和儲存庫根目錄之間已存在的最接近的 `.claude/workflows/` 目錄,或如果尚不存在則寫入儲存庫根目錄。專案工作流程也從該路徑沿著的每個 `.claude/workflows/` 載入,當多個定義相同名稱時 Claude Code 執行最接近工作目錄的那個。

235 235 

236如果專案工作流程和個人工作流程共享名稱,則執行專案工作流程。236如果專案工作流程和個人工作流程共享名稱,則執行專案工作流程。

237 237 


348 348 

349主體是具有頂級 `await` 的純 JavaScript。`agent()` 生成一個子代理,`pipeline()` 為清單中的每個項目執行一個,而 `parallel()` 同時執行一組代理任務並等待所有任務完成。349主體是具有頂級 `await` 的純 JavaScript。`agent()` 生成一個子代理,`pipeline()` 為清單中的每個項目執行一個,而 `parallel()` 同時執行一組代理任務並等待所有任務完成。

350 350 

351如果您停止 `agent()` 呼叫中途或它遇到無法恢復的 API 錯誤,該呼叫會解析為 `null`。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,分類器可以在子代理啟動之前阻止 `agent()` 呼叫。被阻止的呼叫會解析為 `null` 並在執行的進度檢視中顯示原因。`pipeline()` 在結果陣列中保留每個 `null`,這就是為什麼範例以 `.filter(Boolean)` 結尾以刪除這些項目。351如果您停止 `agent()` 呼叫中途或它遇到無法恢復的 API 錯誤,該呼叫會解析為 `null`。`pipeline()` 在結果陣列中保留每個 `null`,這就是為什麼範例以 `.filter(Boolean)` 結尾以刪除這些項目。

352 

353在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,您的指令碼傳遞給 `agent()` 的提示不會計為您的請求,當分類器審查該子代理的動作時,因為 Claude Code 將其標記為指令碼計算的文字。

352 354 

353如果您在 `agent()` 呼叫上傳遞 `schema`,該子代理會傳回與形狀相符的 JSON 而不是散文。Claude Code 在啟動子代理之前檢查架構:當它可以證明架構自相矛盾時,呼叫會失敗並出現錯誤,命名矛盾,子代理永遠不會啟動。它可以證明的一個矛盾是 `additionalProperties: false` 排除的 `required` 鍵。355如果您在 `agent()` 呼叫上傳遞 `schema`,該子代理會傳回與形狀相符的 JSON 而不是散文。Claude Code 在啟動子代理之前檢查架構:當它可以證明架構自相矛盾時,呼叫會失敗並出現錯誤,命名矛盾,子代理永遠不會啟動。它可以證明的一個矛盾是 `additionalProperties: false` 排除的 `required` 鍵。

354 356 

worktrees.md +10 −5

Details

59 清理 worktrees59 清理 worktrees

60</h2>60</h2>

61 61 

62當您退出互動式 worktree 會話時,Claude 會檢查 worktree 是否有移除會刪除的工作:已變更或未追蹤的檔案,以及新提交。62當您退出互動式 worktree 會話時,Claude 會檢查 worktree 是否有移除會刪除的工作:已變更或未追蹤的檔案、已簽出子模組內的未提交工作,以及新提交。

63 63 

64* **worktree 是乾淨的**:對於未命名的會話,Claude 會自動移除 worktree 及其分支。[已命名](/docs/zh-TW/sessions#name-your-sessions)的會話會先提示您,以便您可以保留 worktree 供稍後使用64* **worktree 是乾淨的**:對於未命名的會話,Claude 會自動移除 worktree 及其分支。[已命名](/docs/zh-TW/sessions#name-your-sessions)的會話會先提示您,以便您可以保留 worktree 供稍後使用

65* **worktree 中有工作**:Claude 會提示您保留或移除 worktree。保留會保留目錄和分支,以便您稍後可以返回。移除會刪除 worktree 目錄及其分支,以及其中的所有工作65* **worktree 中有工作**:Claude 會提示您保留或移除 worktree。保留會保留目錄和分支,以便您稍後可以返回。移除會刪除 worktree 目錄及其分支,以及其中的所有工作

66* **worktree 的狀態無法驗證**:當 Claude Code 無法計算 worktree 的變更或無法檢查其子模組簽出時,它會提示您而不是自動移除 worktree。提示會說明它無法檢查的內容

66 67 

67使用 `-p` 的非互動式執行沒有退出提示,因此 Claude 不會清理它們的 worktrees,Claude Code 會在建立時對每個 worktree 保留它所取得的鎖定,直到稍後會話的[陳舊鎖定掃描](#clean-up-subagent-and-background-session-worktrees)釋放它。要移除一個,請執行 `git worktree remove`;如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。68使用 `-p` 的非互動式執行沒有退出提示,因此 Claude 不會清理它們的 worktrees,Claude Code 會在建立時對每個 worktree 保留它所取得的鎖定,直到稍後會話的[陳舊鎖定掃描](#clean-up-subagent-and-background-session-worktrees)釋放它。要移除一個,請執行 `git worktree remove`;如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。

68 69 


101* **檔案編輯**:Claude Code 會阻止針對主要檢出中的路徑的 `Edit`、`Write` 或 `NotebookEdit`。102* **檔案編輯**:Claude Code 會阻止針對主要檢出中的路徑的 `Edit`、`Write` 或 `NotebookEdit`。

102* **命令工作目錄**:Claude Code 會阻止其工作目錄解析為主要檢出的 Bash、PowerShell 或 Monitor 命令,或其工作目錄無法驗證保持在其外的命令。103* **命令工作目錄**:Claude Code 會阻止其工作目錄解析為主要檢出的 Bash、PowerShell 或 Monitor 命令,或其工作目錄無法驗證保持在其外的命令。

103* **Git 重定向**:Claude Code 會阻止將 git 重定向到主要檢出的 Bash 或 Monitor 命令。重定向可以透過 `git -C`、`--git-dir`、`GIT_DIR` 或 `GIT_WORK_TREE` 變數,或在執行 git 之前 `cd` 到主要檢出。104* **Git 重定向**:Claude Code 會阻止將 git 重定向到主要檢出的 Bash 或 Monitor 命令。重定向可以透過 `git -C`、`--git-dir`、`GIT_DIR` 或 `GIT_WORK_TREE` 變數,或在執行 git 之前 `cd` 到主要檢出。

104* **命令形狀**:當 Claude Code 無法從命令文字驗證命令執行的任何 git 保持在 worktree 內時,Claude Code 會阻止 Bash 或 Monitor 命令,例如當命令名稱在執行時計算或語法無法解析時。Claude Code 會告訴 Claude 如何重寫被拒絕的命令,例如將其分割成純粹的、獨立的命令。您無法關閉此檢查。105* **命令形狀**:當 Claude Code 無法從命令文字驗證命令執行的任何 git 保持在 worktree 內時,Claude Code 會阻止 Bash 或 Monitor 命令。例如,當命令名稱在執行時計算、語法無法解析,或像 `${!name}` 或 `${ command; }` 這樣的展開可能執行文字中未明確說明的命令時,就會發生這種情況。Claude Code 會告訴 Claude 如何重寫被拒絕的命令,例如將其分割成純粹的、獨立的命令。您無法關閉此檢查。

105 106 

106檢查適用於您啟動 Claude Code 的儲存庫。它們也涵蓋連結 worktree 連結自的主要檢出。對於 PowerShell 命令,Claude Code 只應用工作目錄檢查。107檢查適用於您啟動 Claude Code 的儲存庫。它們也涵蓋連結 worktree 連結自的主要檢出。對於 PowerShell 命令,Claude Code 只應用工作目錄檢查。

107 108 

108Claude 將每次拒絕視為命名 worktree 並說明如何進行的工具錯誤。109Claude 將每次拒絕視為命名 worktree 並說明如何進行的工具錯誤。如需被拒絕的命令,請參閱[拒絕訊息的含義以及如何清除它](/docs/zh-TW/errors#command-blocked-by-the-worktree-isolation-checks)。

109 110 

110<h2 id="isolate-subagents-with-worktrees">111<h2 id="isolate-subagents-with-worktrees">

111 使用 worktrees 隔離子代理112 使用 worktrees 隔離子代理


139當您[背景](/docs/zh-TW/agent-view#send-the-session-to-the-background)一個 `--worktree` 會話時,其 worktree 會變成背景會話 worktree,掃描可以移除。掃描在這些情況下保留 worktree:140當您[背景](/docs/zh-TW/agent-view#send-the-session-to-the-background)一個 `--worktree` 會話時,其 worktree 會變成背景會話 worktree,掃描可以移除。掃描在這些情況下保留 worktree:

140 141 

141* worktree 仍然保留工作:已變更或未追蹤的檔案,或未推送的提交。142* worktree 仍然保留工作:已變更或未追蹤的檔案,或未推送的提交。

143* worktree 中已簽出的子模組保留已變更或未追蹤的檔案,或 Claude Code 無法檢查 worktree 的子模組。此檢查需要 Claude Code v2.1.274 或更新版本。

142* Claude Code 無法確定儲存庫配置定義的篩選驅動程式,或在儲存庫配置中找到它無法關閉的設定,在[四個也阻止 worktree 建立的情況](#git-lfs-content-is-missing-from-a-worktree-claude-code-created)中的任何一個適用。144* Claude Code 無法確定儲存庫配置定義的篩選驅動程式,或在儲存庫配置中找到它無法關閉的設定,在[四個也阻止 worktree 建立的情況](#git-lfs-content-is-missing-from-a-worktree-claude-code-created)中的任何一個適用。

143* worktree 屬於您未背景的 `--worktree` 會話,無論其年齡如何。145* worktree 屬於您未背景的 `--worktree` 會話,無論其年齡如何。

144* 您自己使用 `git worktree add` 建立了 worktree,即使您隨後在其中執行了 `--worktree <name>` 會話並背景了該會話。146* 您自己使用 `git worktree add` 建立了 worktree,即使您隨後在其中執行了 `--worktree <name>` 會話並背景了該會話。


251 Worktrees 與主要檢出共享的內容253 Worktrees 與主要檢出共享的內容

252</h2>254</h2>

253 255 

254Worktree 獲得自己的檔案和分支,但它與儲存庫的 `.git` 目錄、專案範圍外掛程式和已儲存的權限批准共享主要檢出:256Worktree 獲得自己的檔案和分支,但它與主要檢出共享以下內容:

255 257 

256* **儲存庫的 `.git` 目錄**:worktree 中的 git 命令寫入主儲存庫的共享 `.git` 目錄,[沙箱化](/docs/zh-TW/sandboxing#filesystem-isolation)允許這些寫入,因此 `git commit` 等命令可以從啟用沙箱的 worktree 內部工作。258* **儲存庫的 `.git` 目錄**:worktree 中的 git 命令寫入主儲存庫的共享 `.git` 目錄,[沙箱化](/docs/zh-TW/sandboxing#filesystem-isolation)允許這些寫入,因此 `git commit` 等命令可以從啟用沙箱的 worktree 內部工作。

257* **外掛程式**:從主要檢出在[專案範圍](/docs/zh-TW/plugins-reference#plugin-installation-scopes)安裝的外掛程式也會在同一儲存庫的 worktrees 中載入,因此您不需要為每個 worktree 重新安裝它們。需要 Claude Code v2.1.200 或更新版本。259* **外掛程式**:從主要檢出在[專案範圍](/docs/zh-TW/plugins-reference#plugin-installation-scopes)安裝的外掛程式也會在同一儲存庫的 worktrees 中載入,因此您不需要為每個 worktree 重新安裝它們。需要 Claude Code v2.1.200 或更新版本。

258* **權限批准**:在 worktree 會話中為 Bash 命令選擇「是,不再詢問」會將規則儲存到主要檢出的 `.claude/settings.local.json`,因此它適用於主要檢出和儲存庫的每個其他 worktree,並在 worktree 移除後存活。在 Windows 和 Claude Code [不使用儲存庫根目錄](/docs/zh-TW/settings#where-claude-code-looks-for-each-file)的其他情況下,規則會保留在該 worktree 中。在 v2.1.211 之前,在 worktree 中授予的批准被儲存在該 worktree 內,不適用於其他地方,並在 worktree 移除時丟失。請參閱[批准的儲存位置](/docs/zh-TW/permissions#permission-system)。260* **權限批准**:在 worktree 會話中為 Bash 命令選擇「是,不再詢問」會將規則儲存到主要檢出的 `.claude/settings.local.json`,因此它適用於主要檢出和儲存庫的每個其他 worktree,並在 worktree 移除後存活。在 Windows 和 Claude Code [不使用儲存庫根目錄](/docs/zh-TW/settings#where-claude-code-looks-for-each-file)的其他情況下,規則會保留在該 worktree 中。在 v2.1.211 之前,在 worktree 中授予的批准被儲存在該 worktree 內,不適用於其他地方,並在 worktree 移除時丟失。請參閱[批准的儲存位置](/docs/zh-TW/permissions#permission-system)。

261* **未追蹤的技能、代理程式和命令**:當 worktree 檢出在其根目錄沒有 `.claude/skills` 目錄時(例如因為您的 `.claude/skills` 被 gitignored),Claude Code 會在 worktree 會話中載入主要檢出的[專案技能](/docs/zh-TW/skills#where-skills-live)。在具有自己的 `.claude/skills` 目錄的 worktree 中,只會載入該副本。

259 262 

260所有三個都適用於您是使用 `--worktree`、使用 `git worktree add` 還是透過[桌面應用程式](/docs/zh-TW/desktop#work-in-parallel-with-sessions)建立 worktree。263 相同的讀取涵蓋 `.claude/agents` 和 `.claude/commands`。對於技能,讀取需要 Claude Code v2.1.277 或更新版本。

264 

265無論您是使用 `--worktree`、使用 `git worktree add` 還是透過[桌面應用程式](/docs/zh-TW/desktop#work-in-parallel-with-sessions)建立 worktree,所有這些都適用。

261 266 

262<h2 id="manage-worktrees-manually">267<h2 id="manage-worktrees-manually">

263 手動管理 worktrees268 手動管理 worktrees