SpyBara
Go Premium

Documentation 2026-10-10 23:01 UTC to 2026-10-11 23:57 UTC

20 files changed +245 −53. View all changes and history on the product overview
2026
Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

2386 kind: "task-notification";2386 kind: "task-notification";

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

2388 fireReason?: string;2388 fireReason?: string;

2389 runId?: string;

2389 }2390 }

2390 | { kind: "coordinator" }2391 | { kind: "coordinator" }

2391 | { kind: "auto-continuation" }2392 | { kind: "auto-continuation" }


2415 2416 

2416`fireReason` 以簡短的小寫 token 說明 `scheduled-trigger` 通知觸發的原因,例如 `scheduled`、`manual`、`retry`、`catch_up` 或 `api`。Anthropic 伺服器會在 [routine](/docs/zh-TW/routines) 的傳遞上設定它,您的應用程式則在宣告排程執行時設定它。當兩者都未傳送時,此欄位不存在。需要 TypeScript Agent SDK v0.3.280 或更新版本。2417`fireReason` 以簡短的小寫 token 說明 `scheduled-trigger` 通知觸發的原因,例如 `scheduled`、`manual`、`retry`、`catch_up` 或 `api`。Anthropic 伺服器會在 [routine](/docs/zh-TW/routines) 的傳遞上設定它,您的應用程式則在宣告排程執行時設定它。當兩者都未傳送時,此欄位不存在。需要 TypeScript Agent SDK v0.3.280 或更新版本。

2417 2418 

2419一個背景任務可以在同一個 `task_id` 下執行多次,例如當 Claude [繼續執行 subagent](/docs/zh-TW/agent-sdk/subagents#resume-subagents) 時。每次執行都有其自己的 [`run_id`](#sdktaskstartedmessage)。當某次執行的通知以使用者訊息的形式送達您的工作階段時,該訊息 `task-notification` origin 上的 `runId` 會保有相同的值。通知可能在任務的下一次執行開始後才送達,但它仍帶有較早那次執行的 ID。若要判斷某個回合屬於哪次執行,請比較 `runId`,而非 `task_id`。需要 TypeScript Agent SDK v0.3.292 或更新版本。

2420 

2418<h4 id="declare-a-scheduled-run">2421<h4 id="declare-a-scheduled-run">

2419 宣告排程執行2422 宣告排程執行

2420</h4>2423</h4>


3262 工具輸入類型3265 工具輸入類型

3263</h2>3266</h2>

3264 3267 

3265所有內建 Claude Code 工具的輸入 schema 文件。這些類型從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出,可用於類型安全的工具互動。3268內建 Claude Code 工具的輸入 schema 文件。這些類型從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出,可用於類型安全的工具互動。

3266 3269 

3267<h3 id="toolinputschemas">3270<h3 id="toolinputschemas">

3268 `ToolInputSchemas`3271 `ToolInputSchemas`


4078 工具輸出類型4081 工具輸出類型

4079</h2>4082</h2>

4080 4083 

4081所有內建 Claude Code 工具的輸出 schema 文件。這些類型從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出,代表每個工具傳回的實際回應資料。4084內建 Claude Code 工具的輸出 schema 文件。這些類型從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出,代表每個工具傳回的實際回應資料。

4082 4085 

4083<h3 id="tooloutputschemas">4086<h3 id="tooloutputschemas">

4084 `ToolOutputSchemas`4087 `ToolOutputSchemas`


5731 `SDKTaskNotificationMessage`5734 `SDKTaskNotificationMessage`

5732</h3>5735</h3>

5733 5736 

5734背景工作完成、失敗或停止時的通知。背景工作包括 `run_in_background` Bash 命令、[Monitor](#monitor) 監視和背景 subagent。如需 `ambient` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了該欄位及其版本要求。5737背景工作完成、失敗或停止時的通知。背景工作包括 `run_in_background` Bash 命令、[Monitor](#monitor) 監視和背景 subagent。如需 `run_id` 和 `ambient` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了這些欄位及其版本要求。

5735 5738 

5736```typescript theme={null}5739```typescript theme={null}

5737type SDKTaskNotificationMessage = {5740type SDKTaskNotificationMessage = {

5738 type: "system";5741 type: "system";

5739 subtype: "task_notification";5742 subtype: "task_notification";

5740 task_id: string;5743 task_id: string;

5744 run_id?: string;

5741 tool_use_id?: string;5745 tool_use_id?: string;

5742 status: "completed" | "failed" | "stopped";5746 status: "completed" | "failed" | "stopped";

5743 reason?: "worker_restart";5747 reason?: "worker_restart";


5910 type: "system";5914 type: "system";

5911 subtype: "task_started";5915 subtype: "task_started";

5912 task_id: string;5916 task_id: string;

5917 run_id?: string;

5913 tool_use_id?: string;5918 tool_use_id?: string;

5914 description: string;5919 description: string;

5915 task_type?: string;5920 task_type?: string;


5922};5927};

5923```5928```

5924 5929 

5930`run_id` 識別工作的一次執行。當工作以相同的 `task_id` 再次執行時,例如 [Claude 恢復的 subagent](/docs/zh-TW/agent-sdk/subagents#resume-subagents),新的執行會取得新的 `run_id`。該欄位需要 Agent SDK v0.3.292 或更新版本。使用它來區分同一工作的各次執行:

5931 

5932* **將訊息與執行進行比對**:同一次執行的 `task_started`、[`task_progress`](#sdktaskprogressmessage)、[`task_updated`](#sdktaskupdatedmessage) 和 [`task_notification`](#sdktasknotificationmessage) 訊息攜帶相同的 `run_id`。每個 [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage) 中該執行的項目也攜帶它,傳遞該執行通知的使用者訊息之 origin 上的 [`runId`](#task-notification-subkinds) 也是如此。

5933* **偵測延遲到達的訊息**:以純字串比較時,同一工作的執行 ID 會依各次執行開始的順序排序,因此 `run_id` 排在您正在顯示的執行之前的訊息來自較早的執行。除了該比較之外,請將此值視為不透明值。

5934* **退回使用 `task_id`**:當訊息未攜帶 `run_id` 時,例如已恢復的工作階段為關閉先前程序所啟動的工作而發出的 `task_notification`,請依 `task_id` 歸屬該訊息。

5935 

5936例如,以下三則訊息(已刪減為其識別欄位)來自 Claude 恢復過一次的背景 subagent。兩則 `task_started` 訊息共用同一個 `task_id`,而結束第一次執行的通知攜帶第一次執行的 ID:

5937 

5938```json theme={null}

5939{"subtype": "task_started", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubbs7i8-6f0c2d41"}

5940{"subtype": "task_notification", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubbs7i8-6f0c2d41", "status": "completed"}

5941{"subtype": "task_started", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubc18m1-b7719e05"}

5942```

5943 

5925`ambient` 對不屬於工作階段工作的工作為 `true`,例如 Claude Code 為其自身運作而執行的工作。即時更新監視器也是環境工作,包括使用者要求的監視器。從活動指示器中排除環境工作。該欄位需要 Agent SDK v0.3.247 或更新版本。5944`ambient` 對不屬於工作階段工作的工作為 `true`,例如 Claude Code 為其自身運作而執行的工作。即時更新監視器也是環境工作,包括使用者要求的監視器。從活動指示器中排除環境工作。該欄位需要 Agent SDK v0.3.247 或更新版本。

5926 5945 

5927`ambient` 也出現在 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 和 [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage) 項目上。5946`ambient` 也出現在 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 和 [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage) 項目上。


5945 `SDKTaskProgressMessage`5964 `SDKTaskProgressMessage`

5946</h3>5965</h3>

5947 5966 

5948在 subagent 或背景工作執行時定期發出。5967在 subagent 或背景工作執行時定期發出。如需 `run_id` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了該欄位及其版本要求。

5949 5968 

5950對於 subagent 工作,`summary` 欄位攜帶模型產生的進度摘要,僅在啟用 [`agentProgressSummaries`](#options) 時填入。對於 [背景化的 MCP 工具呼叫](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls),`summary` 攜帶 MCP 伺服器最新報告的進度,不依賴該選項。5969對於 subagent 工作,`summary` 欄位攜帶模型產生的進度摘要,僅在啟用 [`agentProgressSummaries`](#options) 時填入。對於 [背景化的 MCP 工具呼叫](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls),`summary` 攜帶 MCP 伺服器最新報告的進度,不依賴該選項。

5951 5970 


5954 type: "system";5973 type: "system";

5955 subtype: "task_progress";5974 subtype: "task_progress";

5956 task_id: string;5975 task_id: string;

5976 run_id?: string;

5957 tool_use_id?: string;5977 tool_use_id?: string;

5958 description: string;5978 description: string;

5959 subagent_type?: string;5979 subagent_type?: string;


5973 `SDKTaskUpdatedMessage`5993 `SDKTaskUpdatedMessage`

5974</h3>5994</h3>

5975 5995 

5976在背景工作的狀態變更時發出,例如當它從 `running` 轉換為 `completed` 時。將 `patch` 合併到以 `task_id` 為鍵的本機工作對應表中。`end_time` 欄位是 Unix 紀元時間戳記(以毫秒為單位),可與 `Date.now()` 比較。5996在背景工作的狀態變更時發出,例如當它從 `running` 轉換為 `completed` 時。將 `patch` 合併到以 `task_id` 為鍵的本機工作對應表中。`end_time` 欄位是 Unix 紀元時間戳記(以毫秒為單位),可與 `Date.now()` 比較。如需 `run_id` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了該欄位及其版本要求。

5977 5997 

5978```typescript theme={null}5998```typescript theme={null}

5979type SDKTaskUpdatedMessage = {5999type SDKTaskUpdatedMessage = {

5980 type: "system";6000 type: "system";

5981 subtype: "task_updated";6001 subtype: "task_updated";

5982 task_id: string;6002 task_id: string;

6003 run_id?: string;

5983 patch: {6004 patch: {

5984 status?: "pending" | "running" | "completed" | "failed" | "killed";6005 status?: "pending" | "running" | "completed" | "failed" | "killed";

5985 description?: string;6006 description?: string;


5997 `SDKBackgroundTasksChangedMessage`6018 `SDKBackgroundTasksChangedMessage`

5998</h3>6019</h3>

5999 6020 

6000每當即時背景工作集變更時發出:工作啟動、完成或被終止;前景 agent 被背景化;或工作的 `description`、`ambient` 或 `parent_task_id` 欄位變更。如需每個項目上的 `parent_task_id` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了該欄位及其版本要求。6021每當即時背景工作集變更時發出:工作啟動、完成或被終止;前景 agent 被背景化;或工作的 `description`、`ambient` 或 `parent_task_id` 欄位變更。如需每個項目上的 `run_id` 和 `parent_task_id` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了這些欄位及其版本要求。

6001 6022 

6002`tasks` 陣列是完整的即時集。用每個 payload 替換任何快取集,而不是配對 `task_started` 和 `task_notification` 事件,如此下一個成員資格變更會更正您遺漏的任何事件。6023`tasks` 陣列是完整的即時集。用每個 payload 替換任何快取集,而不是配對 `task_started` 和 `task_notification` 事件,如此下一個成員資格變更會更正您遺漏的任何事件。

6003 6024 


6015 subtype: "background_tasks_changed";6036 subtype: "background_tasks_changed";

6016 tasks: {6037 tasks: {

6017 task_id: string;6038 task_id: string;

6039 run_id?: string;

6018 task_type: string;6040 task_type: string;

6019 subagent_type?: string;6041 subagent_type?: string;

6020 description: string;6042 description: string;

agent-view.md +2 −0

Details

300* **您停止了回合**:Claude Code 會取消切換並顯示 `Backgrounding cancelled — the turn was stopped.` 例如,當您 [使用 `Esc` 中斷 Claude](/docs/zh-TW/interactive-mode#general-controls)、在主對話的權限提示上 [不附註解](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt) 選擇 **No**,或在主對話中對 Claude 提出的問題按 `Esc` 時,回合就會停止。再按一次 `←` 即可將工作階段移至背景。300* **您停止了回合**:Claude Code 會取消切換並顯示 `Backgrounding cancelled — the turn was stopped.` 例如,當您 [使用 `Esc` 中斷 Claude](/docs/zh-TW/interactive-mode#general-controls)、在主對話的權限提示上 [不附註解](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt) 選擇 **No**,或在主對話中對 Claude 提出的問題按 `Esc` 時,回合就會停止。再按一次 `←` 即可將工作階段移至背景。

301* **佇列中的訊息無法移動**:您 [在 Claude 工作時加入佇列](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works) 的訊息會隨對話移至背景工作階段。當其中某則訊息無法移動時,工作階段會留在前景,而 Claude Code 會顯示如 `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.` 的通知。301* **佇列中的訊息無法移動**:您 [在 Claude 工作時加入佇列](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works) 的訊息會隨對話移至背景工作階段。當其中某則訊息無法移動時,工作階段會留在前景,而 Claude Code 會顯示如 `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.` 的通知。

302 302 

303當 Claude Code 將工作階段移至背景時(無論是在約十秒後,還是在您再按一次 `←` 後),它會停止 Claude 仍在前景執行的 shell 命令。Claude Code 不會針對該命令顯示 `Background this session?` 對話框。在背景工作階段中,Claude 沒有該命令曾經啟動的記錄,因此 Claude 可能會再次執行該命令。若要在工作階段移動時讓命令繼續執行,請在 Claude Code 仍在等待時按 `Ctrl+B` [將其轉為背景命令](/docs/zh-TW/interactive-mode#background-bash-commands)。

304 

303即使對話尚無任何訊息,按 `←` 也會建立該工作階段的列,因此 `→` 仍可返回該工作階段。305即使對話尚無任何訊息,按 `←` 也會建立該工作階段的列,因此 `→` 仍可返回該工作階段。

304 306 

305您可以使用 `/config` 中的 [`leftArrowOpensAgents`](/docs/zh-TW/settings-reference#leftarrowopensagents) 設定,為前景工作階段關閉此快捷鍵。307您可以使用 `/config` 中的 [`leftArrowOpensAgents`](/docs/zh-TW/settings-reference#leftarrowopensagents) 設定,為前景工作階段關閉此快捷鍵。

Details

126* **使用您的 Console 帳戶登入**,標記為 `(recommended)`:Claude Code 保留該登入的 OAuth 權杖,並將其儲存為 [Anthropic 設定檔](#anthropic-profiles-and-federation-credentials)。它不建立 API 金鑰126* **使用您的 Console 帳戶登入**,標記為 `(recommended)`:Claude Code 保留該登入的 OAuth 權杖,並將其儲存為 [Anthropic 設定檔](#anthropic-profiles-and-federation-credentials)。它不建立 API 金鑰

127* **建立 API 金鑰**,標記為 `(legacy)`:Claude Code 為您建立 Console API 金鑰,並將其與您的其他認證一起儲存127* **建立 API 金鑰**,標記為 `(legacy)`:Claude Code 為您建立 Console API 金鑰,並將其與您的其他認證一起儲存

128 128 

129實際上,設定檔儲存 OAuth 登入,而 API 金鑰是靜態認證:Claude Code 會自動重新整理設定檔的登入,當重新整理失敗時,請求會失敗並顯示 [Anthropic 設定檔登入已過期](/docs/zh-TW/errors#anthropic-profile-login-expired),直到您再次登入。129實際上,設定檔儲存 OAuth 登入,而 API 金鑰是靜態憑證。Claude Code 會自動重新整理設定檔的登入,當重新整理失敗時,請求會失敗並顯示 [設定檔登入過期錯誤](/docs/zh-TW/errors#anthropic-profile-login-expired),直到您再次登入。

130 130 

131您不會在每台機器上都獲得選擇。Claude Code 在以下情況下會在不詢問的情況下建立 API 金鑰:131您不會在每台機器上都獲得選擇。Claude Code 在以下情況下會在不詢問的情況下建立 API 金鑰:

132 132 


292 292 

293若要確認 Claude Code 選擇了哪個來源,請執行 `/status`。`Profile` 列會命名來源以代替 `Login method` 列,當設定檔是使用中的認證時,`Organization` 和 `Email` 列會顯示其帳戶。293若要確認 Claude Code 選擇了哪個來源,請執行 `/status`。`Profile` 列會命名來源以代替 `Login method` 列,當設定檔是使用中的認證時,`Organization` 和 `Email` 列會顯示其帳戶。

294 294 

295當 `user_oauth` 設定檔的登入已過期且 Claude Code 無法重新整理它時,請求會失敗,並顯示 [Anthropic profile login expired](/docs/zh-TW/errors#anthropic-profile-login-expired)。295當 `user_oauth` 設定檔的登入已過期且 Claude Code 無法續約時,請求會失敗,並顯示[設定檔登入過期錯誤](/docs/zh-TW/errors#anthropic-profile-login-expired)。

296 296 

297需要您的 claude.ai 登入的功能,例如 [claude.ai connectors](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) 和 [`/schedule`](/docs/zh-TW/routines),在選擇這些來源之一時不可用。若要停止 Claude Code 選擇來源:297需要您的 claude.ai 登入的功能,例如 [claude.ai connectors](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) 和 [`/schedule`](/docs/zh-TW/routines),在選擇這些來源之一時不可用。若要停止 Claude Code 選擇來源:

298 298 

costs.md +13 −0

Details

90 90 

91當您的計畫限制請求失敗時(通常是因為使用情況端點受到速率限制),`/usage` 會顯示它在過去 60 分鐘內在此機器上載入的最後使用情況列,以及一個 `Showing last-known usage` 備註,說明該資料是多久前取得的。按 `r` 重試;成功重試會用新資料取代最後已知的列。如果沒有過去 60 分鐘內的快照,`/usage` 會報告使用情況端點受到速率限制,並提供相同的重試快捷方式。在 v2.1.208 之前,在尚未載入使用情況的工作階段中受到速率限制的請求始終會顯示錯誤,沒有任何列。91當您的計畫限制請求失敗時(通常是因為使用情況端點受到速率限制),`/usage` 會顯示它在過去 60 分鐘內在此機器上載入的最後使用情況列,以及一個 `Showing last-known usage` 備註,說明該資料是多久前取得的。按 `r` 重試;成功重試會用新資料取代最後已知的列。如果沒有過去 60 分鐘內的快照,`/usage` 會報告使用情況端點受到速率限制,並提供相同的重試快捷方式。在 v2.1.208 之前,在尚未載入使用情況的工作階段中受到速率限制的請求始終會顯示錯誤,沒有任何列。

92 92 

93<h3 id="read-the-token-count-beside-the-spinner">

94 閱讀旋轉指示器旁的 token 計數

95</h3>

96 

97Claude 在主要對話中工作時,旋轉指示器旁的那一行結尾可能會顯示經過時間和 token 計數,例如 `Deciphering… (10m 27s · ↓ 5.5k tokens)`。這是目前回合到目前為止所產生輸出的即時近似計數。在輸出陸續抵達或工具執行期間,計數旁的箭頭會朝下。

98 

99* **涵蓋範圍**:回合產生的輸出,例如 Claude 串流回傳的文字和工具呼叫、其思考,以及在[前景](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)執行的 subagent 的輸出

100* **不包含的內容**:Claude Code 傳送給模型的內容,因此您的提示詞、對話歷史記錄以及其餘上下文不會使其變動

101* **重設時機**:每個回合開始時,以及 Claude Code [壓縮對話](/docs/zh-TW/prompt-caching#compacting-the-conversation)時

102* **隱藏時機**:在輸出開始抵達之前、該列太窄無法容納時,以及在[螢幕閱讀器模式](/docs/zh-TW/accessibility)中

103 

104它不會與 `/usage` Session 區塊中的 `Usage by model` 輸出數字相符,因為後者加總的是整個工作階段,而非單一回合。它也與[詳細模式新增](/docs/zh-TW/statusline#notifications-share-the-status-line-row)的 token 計數不同,因為該計數衡量的是您上下文的大小,而非單一回合的輸出。

105 

93<h3 id="analyze-your-usage-patterns">106<h3 id="analyze-your-usage-patterns">

94 分析您的使用情況模式107 分析您的使用情況模式

95</h3>108</h3>

Details

98 98 

99安全模式仍然會套用來自您組織的受管 hook 和設定原則。受管外掛、skills、`CLAUDE.md` 和 MCP 伺服器會被關閉。99安全模式仍然會套用來自您組織的受管 hook 和設定原則。受管外掛、skills、`CLAUDE.md` 和 MCP 伺服器會被關閉。

100 100 

101如果問題在安全模式中持續存在,或您的設定本身令人懷疑,請與不從您常用設定載入任何內容的工作階段進行比較。將 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 指向空目錄以略過 `~/.claude` 下的所有內容,並從沒有 `.claude` 資料夾、`.mcp.json` 或 `CLAUDE.md` 的目錄啟動,以便也跳過專案設定。101如果問題在安全模式中持續存在,或您的設定本身令人懷疑,請啟動一個完全不含您自己設定的工作階段,並檢查問題是否仍然出現。

102 102 

103```bash theme={null}103<Steps>

104cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude104 <Step title="建立空目錄並切換到該目錄">

105```105 在沒有執行任何 Claude Code 工作階段的情況下,於您的 shell 中建立目錄並移至其中:

106 106 

107乾淨的工作階段沒有使用者或專案設定、hooks、MCP servers、plugins 或記憶。在首次啟動時,預期會看到首次執行設定畫面,從主題選擇開始。如果您看到它們,乾淨的設定目錄就已生效。稍後使用相同目錄的啟動會跳過這些畫面,因為 Claude Code 會將上線狀態儲存在那裡。107 <Tabs>

108 108 <Tab title="Bash 或 Zsh">

109* 如果您的組織部署受管設定,受管設定仍然適用。Claude Code 會讀取 MDM 設定檔、登錄原則和來自設定目錄外部位置的 `managed-settings.json`,並在乾淨工作階段取得認證後[再次擷取伺服器管理的設定](/docs/zh-TW/server-managed-settings#fetch-and-caching-behavior)109 ```bash theme={null}

110* 您將被提示再次登入110 mkdir -p ~/claude-clean/empty && cd ~/claude-clean/empty

111 111 ```

112如果問題在此消失,原因在於您的真實 `~/.claude` 或專案 `.claude` 檔案中的某處。一次一個地重新引入它們,方法是將檔案複製到臨時目錄或從您的專案啟動,以找到哪一個。如果它在乾淨的工作階段中持續存在,原因在於您的使用者和專案設定之外。執行 `/status` 以檢查是否啟用了受管設定,查找影響 Claude Code 的 [環境變數](/docs/zh-TW/env-vars),然後參閱 [Troubleshooting](/docs/zh-TW/troubleshooting)。112 </Tab>

113 

114 <Tab title="PowerShell">

115 ```powershell theme={null}

116 New-Item -ItemType Directory -Force "$HOME/claude-clean/empty" | Out-Null

117 Set-Location "$HOME/claude-clean/empty"

118 ```

119 </Tab>

120 </Tabs>

121 </Step>

122 

123 <Step title="使用乾淨的設定目錄啟動 Claude Code">

124 在同一個 shell 中,將 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 設定為一個新的目錄來取代 `~/.claude`,並傳入 [`--setting-sources user`](/docs/zh-TW/cli-reference#cli-flags) 以關閉專案設定,例如 `.claude/settings.json`、`CLAUDE.md` 和 `.mcp.json`:

125 

126 <Tabs>

127 <Tab title="Bash 或 Zsh">

128 此變數僅適用於這一次啟動。

129 

130 ```bash theme={null}

131 CLAUDE_CONFIG_DIR=~/claude-clean/config claude --setting-sources user

132 ```

133 </Tab>

134 

135 <Tab title="PowerShell">

136 此變數會在此 PowerShell 工作階段的剩餘時間內保持設定,因此在同一視窗中稍後啟動的 `claude` 會繼續使用乾淨的目錄。若要回到您平常的目錄,請在下次啟動前執行 `Remove-Item Env:CLAUDE_CONFIG_DIR`。

137 

138 ```powershell theme={null}

139 $env:CLAUDE_CONFIG_DIR = "$HOME/claude-clean/config"

140 claude --setting-sources user

141 ```

142 </Tab>

143 </Tabs>

144 

145 首次啟動時,您會再次經歷首次執行設定畫面,這表示乾淨的設定目錄已生效。受管設定仍然適用,而且如果您使用 claude.ai 帳戶登入,[連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)仍會載入。

146 </Step>

147 

148 <Step title="重現問題">

149 在乾淨的工作階段中重複觸發問題的操作:

150 

151 * **問題消失**:原因在於您的使用者或專案設定。將 `~/.claude.json` 和 `~/.claude` 中的檔案一次一個地複製到 `~/claude-clean/config`。如果沒有任何一個讓問題重新出現,請在同一個 shell 中前往您的專案目錄,並在不使用 `--setting-sources user` 的情況下啟動 Claude Code。在 Bash 或 Zsh 中,執行 `CLAUDE_CONFIG_DIR=~/claude-clean/config claude`。在 PowerShell 中,該變數仍然已設定,因此執行 `claude` 即可。

152 * **問題持續存在**:原因在於您的使用者和專案設定之外。在工作階段中執行 `/status` 以檢查是否有受管設定,檢查您 shell 中的[環境變數](/docs/zh-TW/env-vars),然後參閱[疑難排解](/docs/zh-TW/troubleshooting)。

153 </Step>

154</Steps>

113 155 

114<h2 id="check-common-causes">156<h2 id="check-common-causes">

115 檢查常見原因157 檢查常見原因


127| `settings.json` 值似乎被忽略 | 相同的鍵在 `settings.local.json` 中設定 | `settings.local.json` 會覆寫 `settings.json`,兩者都會覆寫 `~/.claude/settings.json`。請參閱 [settings 優先順序](/docs/zh-TW/settings#settings-precedence)。 |169| `settings.json` 值似乎被忽略 | 相同的鍵在 `settings.local.json` 中設定 | `settings.local.json` 會覆寫 `settings.json`,兩者都會覆寫 `~/.claude/settings.json`。請參閱 [settings 優先順序](/docs/zh-TW/settings#settings-precedence)。 |

128| Skill 未出現在 `/skills` 中 | Skill 檔案位於 `.claude/skills/name.md` 而不是在資料夾中 | 使用包含 `SKILL.md` 的資料夾:`.claude/skills/name/SKILL.md`。 |170| Skill 未出現在 `/skills` 中 | Skill 檔案位於 `.claude/skills/name.md` 而不是在資料夾中 | 使用包含 `SKILL.md` 的資料夾:`.claude/skills/name/SKILL.md`。 |

129| Skill 出現在 `/skills` 中,但 Claude 從未叫用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述與您提出請求的方式不符 | 檢查 `/skills` 中的徽章:「user-only」標籤表示 Claude 不會自動觸發它。請參閱 [skill 叫用](/docs/zh-TW/skills)。 |171| Skill 出現在 `/skills` 中,但 Claude 從未叫用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述與您提出請求的方式不符 | 檢查 `/skills` 中的徽章:「user-only」標籤表示 Claude 不會自動觸發它。請參閱 [skill 叫用](/docs/zh-TW/skills)。 |

130| 子目錄 `CLAUDE.md` 指示似乎被忽略 | 子目錄檔案按需載入,而不是在工作階段開始時載入 | 請參閱 [子目錄檔案何時載入](/docs/zh-TW/memory#how-claude-md-files-load)。在 v2.1.288 之前,只有 Read 工具會載入它們。 |172| 子目錄 `CLAUDE.md` 指示似乎被忽略 | 子目錄檔案按需載入,而不是在工作階段開始時載入 | 若要載入子目錄的 `CLAUDE.md`,請要求 Claude 讀取該子目錄中的另一個檔案。請參閱 [子目錄檔案何時載入](/docs/zh-TW/memory#how-claude-md-files-load)。 |

131| 子代理忽略 `CLAUDE.md` 指示 | 內建的 Explore 和 Plan 代理會跳過 `CLAUDE.md`。自訂子代理的載入方式與主對話相同,除非其定義設定 [`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) | 對於 Explore 或 Plan,在您的委派提示中重新陳述指示。對於設定 `omitClaudeMd` 的子代理,移除該欄位。對於任何其他自訂子代理,將關鍵指示放在代理檔案本文中,該本文會成為代理的系統提示。請參閱 [啟動時載入的內容](/docs/zh-TW/sub-agents#what-loads-at-startup)。 |173| 子代理忽略 `CLAUDE.md` 指示 | 內建的 Explore 和 Plan 代理會跳過 `CLAUDE.md`。自訂子代理的載入方式與主對話相同,除非其定義設定 [`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) | 對於 Explore 或 Plan,在您的委派提示中重新陳述指示。對於設定 `omitClaudeMd` 的子代理,移除該欄位。對於任何其他自訂子代理,將關鍵指示放在代理檔案本文中,該本文會成為代理的系統提示。請參閱 [啟動時載入的內容](/docs/zh-TW/sub-agents#what-loads-at-startup)。 |

132| 清理邏輯在工作階段結束時永遠不會執行 | 未設定 `SessionEnd` hook | 在 `settings.json` 中新增 `SessionEnd` hook。請參閱 [hook 事件列表](/docs/zh-TW/hooks#hook-events)。 |174| 清理邏輯在工作階段結束時永遠不會執行 | 未設定 `SessionEnd` hook | 在 `settings.json` 中新增 `SessionEnd` hook。請參閱 [hook 事件列表](/docs/zh-TW/hooks#hook-events)。 |

133| `.mcp.json` 中的 MCP 伺服器永遠不會載入 | 檔案位於 `.claude/` 下,或其伺服器位於頂層 `servers` 鍵下(如 VS Code 的 `mcp.json`),而不是 `mcpServers` | 專案 MCP 設定位於存放庫根目錄的 `.mcp.json`,而不是在 `.claude/` 內,伺服器位於 `mcpServers` 鍵下。請參閱 [MCP 設定](/docs/zh-TW/mcp)。 |175| `.mcp.json` 中的 MCP 伺服器永遠不會載入 | 檔案位於 `.claude/` 下,或其伺服器位於頂層 `servers` 鍵下(如 VS Code 的 `mcp.json`),而不是 `mcpServers` | 專案 MCP 設定位於存放庫根目錄的 `.mcp.json`,而不是在 `.claude/` 內,伺服器位於 `mcpServers` 鍵下。請參閱 [MCP 設定](/docs/zh-TW/mcp)。 |

desktop.md +53 −0

Details

913 913 

914每個項目都需要 `id`、`name` 和 `sshHost`。`sshPort` 和 `sshIdentityFile` 欄位是選用的。使用者也可以將 `sshConfigs` 新增到他們自己的 `~/.claude/settings.json`。914每個項目都需要 `id`、`name` 和 `sshHost`。`sshPort` 和 `sshIdentityFile` 欄位是選用的。使用者也可以將 `sshConfigs` 新增到他們自己的 `~/.claude/settings.json`。

915 915 

916如果您在 `sshHost` 中省略 `user@`,Desktop 會以每位開發人員的 `~/.ssh/config` 為該主機設定的 `User` 連接,否則會以他們在自己電腦上的使用者名稱連接。

917 

916<h4 id="restrict-which-ssh-hosts-users-can-connect-to">918<h4 id="restrict-which-ssh-hosts-users-can-connect-to">

917 限制使用者可以連接的 SSH 主機919 限制使用者可以連接的 SSH 主機

918</h4>920</h4>


937 939 

938`sshHostAllowlist` 僅從受管設定讀取;使用者或專案設定中的值會被忽略。只有 Claude Desktop 應用程式遵守此設定;Claude Code CLI 和 IDE 擴充功能不讀取它,它也不限制透過 Bash 工具執行的 `ssh` 命令。它控制 Desktop 應用程式連接的主機,而不是網路出口,因此如果您需要硬邊界,請將其與您組織的網路或零信任控制配對。940`sshHostAllowlist` 僅從受管設定讀取;使用者或專案設定中的值會被忽略。只有 Claude Desktop 應用程式遵守此設定;Claude Code CLI 和 IDE 擴充功能不讀取它,它也不限制透過 Bash 工具執行的 `ssh` 命令。它控制 Desktop 應用程式連接的主機,而不是網路出口,因此如果您需要硬邊界,請將其與您組織的網路或零信任控制配對。

939 941 

942<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">

943 關閉本機工作階段並分發 SSH 連線

944</h4>

945 

946若要關閉本機工作階段,並將 SSH 工作階段限制在您選擇的主機,請同時部署 [`disableDesktopLocalSessions`](/docs/zh-TW/settings-reference#disabledesktoplocalsessions)、[`sshConfigs`](#pre-configure-ssh-connections-for-your-team) 和 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to)。

947 

948<Note>

949 此設定適用於以 Claude 帳戶登入的使用者。使用[第三方供應商](/docs/zh-TW/third-party-integrations)時,SSH 工作階段預設為關閉,而設定 `sshHostAllowlist` 可以將其開啟。部署這些鍵之前,請先閱讀 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。

950</Note>

951 

952以下範例會關閉本機工作階段、新增一個連線,並將 SSH 工作階段限制在該連線的主機:

953 

954```json managed-settings.json theme={null}

955{

956 "disableDesktopLocalSessions": true,

957 "sshConfigs": [

958 {

959 "id": "shared-dev-vm",

960 "name": "Shared Dev VM",

961 "sshHost": "dev.example.com"

962 }

963 ],

964 "sshHostAllowlist": ["dev.example.com"]

965}

966```

967 

968這些鍵適用於桌面應用程式。它們不會影響執行 Claude Code 的其他方式,例如 CLI、Cowork 和雲端工作階段:

969 

970* **CLI**:這些鍵都無法阻止開發人員在自己的電腦上執行 Claude Code CLI

971* **Cowork**:這些鍵都不適用於 [Cowork](https://claude.com/docs/cowork/overview) 工作階段或 Cowork 排程任務

972* **雲端工作階段**:這些鍵都不會改變[雲端工作階段](#cloud-sessions)是否可用。若要將其關閉,請使用 [Admin console 控制項](#admin-console-controls)下的 **Cloud sessions** 設定。

973 

974調整此範例時,請檢查主機名稱和 Desktop 版本:

975 

976* **主機名稱**:請確保 `sshHostAllowlist` 中有一個模式符合每個 `sshConfigs` 項目的主機名稱(不含 `user@`),否則開發人員將無法連接到它。有關 Desktop 如何比對主機名稱,請參閱[限制使用者可以連接的 SSH 主機](#restrict-which-ssh-hosts-users-can-connect-to)。

977* **版本**:`disableDesktopLocalSessions` 需要 Claude Desktop v1.37937.0 或更新版本

978 

979請將這三個鍵放在同一個[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)中,也就是您所提供的最高優先順序來源。如果您提供[伺服器管理設定](/docs/zh-TW/server-managed-settings),也請在每台電腦上最高優先順序的 MDM 政策或受管設定檔中保留這三個鍵的副本。Desktop 會在啟動時擷取伺服器管理設定,在擷取成功之前,套用的是電腦上的副本。

980 

981若要確認設定已套用,請檢查開發人員的電腦:

982 

983<Steps>

984 <Step title="檢查環境下拉式選單">

985 結束並重新開啟 Desktop,然後在提示詞輸入框中開啟環境下拉式選單。**Local** 會呈灰色,且 **Shared Dev VM** 會出現在 **SSH** 下方。如果 **Local** 仍可使用,請檢查 Desktop 版本、檔案是否為有效的 JSON,以及電腦讀取的是哪個受管來源。

986 </Step>

987 

988 <Step title="新增不在允許清單中的主機">

989 使用不在允許清單中的主機名稱(例如 `other.example.com`)[新增 SSH 連線](#ssh-sessions)。Desktop 會儲存該連線但拒絕連接,並說明您組織的設定不允許此連線。

990 </Step>

991</Steps>

992 

940<h2 id="enterprise-configuration">993<h2 id="enterprise-configuration">

941 企業設定994 企業設定

942</h2>995</h2>

env-vars.md +1 −1

Details

256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設定為 `1` 可停用所有背景任務功能,包括 Bash 與 subagent 工具上的 `run_in_background` 參數、自動背景化,以及 Ctrl+B 快速鍵 |256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設定為 `1` 可停用所有背景任務功能,包括 Bash 與 subagent 工具上的 `run_in_background` 參數、自動背景化,以及 Ctrl+B 快速鍵 |

257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 設定為 `1` 可阻止 Claude Code 將缺少或為空 `Content-Type` 標頭的 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應視為 Amazon Bedrock 的二進位事件串流。預設情況下,Claude Code 假設是閘道從原本未經修改的回應中移除了該標頭,因此會解碼本文,讓串流持續運作。僅針對也會將串流重新輸出為 server-sent events 的閘道設定此變數;Claude Code 隨後會將沒有標頭的本文讀取為 server-sent events。需要 Claude Code v2.1.239 或更新版本 |257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 設定為 `1` 可阻止 Claude Code 將缺少或為空 `Content-Type` 標頭的 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應視為 Amazon Bedrock 的二進位事件串流。預設情況下,Claude Code 假設是閘道從原本未經修改的回應中移除了該標頭,因此會解碼本文,讓串流持續運作。僅針對也會將串流重新輸出為 server-sent events 的閘道設定此變數;Claude Code 隨後會將沒有標頭的本文讀取為 server-sent events。需要 Claude Code v2.1.239 或更新版本 |

258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 設定為 `1` 可略過檢查 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應是否帶有 `application/vnd.amazon.eventstream` content-type。若未設定此變數,當回應帶有不同的 content-type 時,Claude Code 會使請求失敗,並顯示指出該類型的錯誤,這表示[閘道或代理伺服器正在轉換回應](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。請將閘道設定為原封不動地轉送 `Content-Type` 標頭與本文,而非設定此變數。需要 Claude Code v2.1.208 或更新版本 |258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 設定為 `1` 可略過檢查 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應是否帶有 `application/vnd.amazon.eventstream` content-type。若未設定此變數,當回應帶有不同的 content-type 時,Claude Code 會使請求失敗,並顯示指出該類型的錯誤,這表示[閘道或代理伺服器正在轉換回應](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。請將閘道設定為原封不動地轉送 `Content-Type` 標頭與本文,而非設定此變數。需要 Claude Code v2.1.208 或更新版本 |

259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設定為 `1` 可在 [supervisor](/docs/zh-TW/agent-view#the-supervisor-process) 停止、重新啟動或更新[背景工作階段](/docs/zh-TW/agent-view)的程序時,停止該工作階段正在執行的背景 shell 命令、動態工作流程,以及(自 v2.1.198 起)背景 subagent,而非將它們交給該工作階段的下一個程序。僅影響此交接:使用 `←` 或 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會延續進行中的工作,而 `CLAUDE_DISABLE_ADOPT` 會同時關閉兩者。需要 Claude Code v2.1.196 或更新版本 |259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設定為 `1` 可在 [supervisor](/docs/zh-TW/agent-view#the-supervisor-process) 停止、重新啟動或更新[背景工作階段](/docs/zh-TW/agent-view)的程序時,停止該工作階段正在執行的背景 shell 命令、動態工作流程,以及(自 v2.1.198 起)背景 subagent,而非將它們交給該工作階段的下一個程序。僅影響該交接:使用 `←` 或 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會延續進行中的背景工作,而 `CLAUDE_DISABLE_ADOPT` 會同時關閉兩者。需要 Claude Code v2.1.196 或更新版本 |

260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 設定為 `1` 可阻止 Claude Code 在記憶體壓力下終止[背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)。預設情況下,在 macOS 與 Linux 上,當作業系統回報嚴重記憶體壓力,且工作階段已閒置 30 分鐘、沒有任何回合或 subagent 正在執行時,Claude Code 會終止背景 shell。Windows 沒有記憶體壓力訊號,因此此變數在該平台上沒有作用。需要 Claude Code v2.1.193 或更新版本 |260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 設定為 `1` 可阻止 Claude Code 在記憶體壓力下終止[背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)。預設情況下,在 macOS 與 Linux 上,當作業系統回報嚴重記憶體壓力,且工作階段已閒置 30 分鐘、沒有任何回合或 subagent 正在執行時,Claude Code 會終止背景 shell。Windows 沒有記憶體壓力訊號,因此此變數在該平台上沒有作用。需要 Claude Code v2.1.193 或更新版本 |

261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 設定為 `1` 可停用 Claude Code 隨附的 [skill](/docs/zh-TW/skills) 與工作流程:隨附的 skill 與工作流程會被完全移除,而 `/init` 等內建命令仍可輸入,但會對模型隱藏。`/doctor` 與內建命令一樣仍可輸入;請改用 `DISABLE_DOCTOR_COMMAND` 將其隱藏。來自外掛、`.claude/skills/` 與 `.claude/commands/` 的 skill 不受影響。等同於 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 設定 |261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 設定為 `1` 可停用 Claude Code 隨附的 [skill](/docs/zh-TW/skills) 與工作流程:隨附的 skill 與工作流程會被完全移除,而 `/init` 等內建命令仍可輸入,但會對模型隱藏。`/doctor` 與內建命令一樣仍可輸入;請改用 `DISABLE_DOCTOR_COMMAND` 將其隱藏。來自外掛、`.claude/skills/` 與 `.claude/commands/` 的 skill 不受影響。等同於 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 設定 |

262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | 設定為 `1` 可讓 [Claude in Chrome](/docs/zh-TW/chrome) 瀏覽器工具保持可用,同時省略系統提示詞中的 Chrome 區段與 `/claude-in-chrome` [隨附 skill](/docs/zh-TW/skills#bundled-skills)。適用於嵌入 Claude Code 並自行提供瀏覽器指引的主機。需要 Claude Code v2.1.257 或更新版本 |262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | 設定為 `1` 可讓 [Claude in Chrome](/docs/zh-TW/chrome) 瀏覽器工具保持可用,同時省略系統提示詞中的 Chrome 區段與 `/claude-in-chrome` [隨附 skill](/docs/zh-TW/skills#bundled-skills)。適用於嵌入 Claude Code 並自行提供瀏覽器指引的主機。需要 Claude Code v2.1.257 或更新版本 |

errors.md +21 −12

Details

94| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [身分驗證](#your-account-is-on-hold) |94| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [身分驗證](#your-account-is-on-hold) |

95| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [身分驗證](#your-account-is-on-hold) |95| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [身分驗證](#your-account-is-on-hold) |

96| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [身分驗證](#anthropic-profile-login-expired) |96| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [身分驗證](#anthropic-profile-login-expired) |

97| `Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile` | [身分驗證](#anthropic-profile-login-expired) |

97| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [身分驗證](#anthropic-profile-login-expired) |98| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [身分驗證](#anthropic-profile-login-expired) |

98| `does not meet scope requirement user:profile` | [身分驗證](#oauth-scope-requirement) |99| `does not meet scope requirement user:profile` | [身分驗證](#oauth-scope-requirement) |

99| `claude.ai rejected the session token` / `session token rejected` | [身分驗證](#claude-ai-rejected-the-session-token) |100| `claude.ai rejected the session token` / `session token rejected` | [身分驗證](#claude-ai-rejected-the-session-token) |


1303Failed to authenticate: OAuth session expired and could not be refreshed1304Failed to authenticate: OAuth session expired and could not be refreshed

1304```1305```

1305 1306 

1307若 `Login expired` 訊息以 `or re-authenticate your Anthropic profile` 結尾,請參閱 [Anthropic profile login expired](#anthropic-profile-login-expired)。

1308 

1306這與 [OAuth token 已撤銷或已過期](#oauth-token-revoked-or-expired)並非相同狀態。那些訊息回報的是 API 傳回的拒絕。`Login expired` 是 Claude Code 本身針對已無法更新的登入所產生的訊息,因此不會傳送任何請求。當更新失敗是因為帳戶本身遭到停權而非登入過時,Claude Code 會改為顯示[您的帳戶已遭暫停](#your-account-is-on-hold)。1309這與 [OAuth token 已撤銷或已過期](#oauth-token-revoked-or-expired)並非相同狀態。那些訊息回報的是 API 傳回的拒絕。`Login expired` 是 Claude Code 本身針對已無法更新的登入所產生的訊息,因此不會傳送任何請求。當更新失敗是因為帳戶本身遭到停權而非登入過時,Claude Code 會改為顯示[您的帳戶已遭暫停](#your-account-is-on-hold)。

1307 1310 

1308以 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方供應商進行身分驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。1311以 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方供應商進行身分驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。


1468 Anthropic 設定檔登入已過期1471 Anthropic 設定檔登入已過期

1469</h3>1472</h3>

1470 1473 

1471Claude Code 正透過一個 Anthropic 憑證設定檔進行身分驗證,該設定檔中已儲存的登入憑證已過期,且設定檔中沒有 Claude Code 可用來更新它的重新整理憑證。Claude Code 會在本機停止每個請求而不重試,因為重試只會讀取相同的過期憑證。1474Claude Code 正透過 Anthropic 憑證設定檔進行身分驗證,但該設定檔已儲存的登入憑證已過期,且設定檔中沒有 Claude Code 可用來更新它的重新整理憑證。Claude Code 會在本機停止每個請求,且不會重試。

1472 1475 

1473```text theme={null}1476```text theme={null}

1474Anthropic profile login expired · Re-authenticate your Anthropic profile1477Anthropic profile login expired · Re-authenticate your Anthropic profile

1475Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1478Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile

1476```1479```

1477 1480 

1478只有當使用中的憑證來自 Anthropic 憑證設定檔時才會出現此訊息,該設定檔可能是您以 `ANTHROPIC_PROFILE` 環境變數選擇的、Claude Code 在您的 Anthropic 設定目錄中探索到的使用中設定檔,或是 Claude Code 在您[無 API 金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)時寫入的設定檔。以 API 金鑰、bearer token(例如 `ANTHROPIC_AUTH_TOKEN`)或第三方供應商進行身分驗證的工作階段永遠不會看到此訊息。

1479 

1480在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上,若要更新由無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 所寫入的設定檔,請執行 `/login`,選擇 Anthropic Console 帳戶並重新登入。Claude Code 會取代該設定檔中的過期憑證。對於聯合設定檔或由其他工具建立的設定檔,`/login` 不會更新憑證。您看到哪一種形式,取決於設定檔是您選擇的還是 Claude Code 探索到的:

1481 

1482* 當您明確設定 `ANTHROPIC_PROFILE` 時,訊息會以 `Re-authenticate your Anthropic profile` 結尾。

1483* 當 Claude Code 從您的設定目錄探索到設定檔時,訊息會提供 `/login`,因為 Claude Code 會讓可用的 `/login` 優先於探索到的設定檔,並改以您的 claude.ai 或 Console 帳戶進行身分驗證。在 v2.1.234 之前,Claude Code 在這種情況下也會顯示 `Re-authenticate your Anthropic profile` 形式。

1484 

1485**處理方式:**1481**處理方式:**

1486 1482 

1487* 重新登入設定檔,然後重試:在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上,對於由無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 所寫入的設定檔,請執行 `/login` 並選擇 Anthropic Console 帳戶;對於其他設定檔,請使用建立它們的工具1483* 如果訊息以 `Login expired` 開頭,請執行 `/login` 重新登入

1484* 若要更新由無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 所寫入的設定檔,請在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上執行 `/login`。選擇 Anthropic Console 帳戶,然後選擇 **Sign in with your Console account**。Claude Code 會取代該設定檔中已過期的憑證

1485* 若要更新由其他工具建立的設定檔,請使用該工具重新登入。如果您改在 `/login` 選擇 **Sign in with your Console account**,Claude Code 會保持該設定檔不變,並建立一個 API 金鑰

1488* 如果設定檔的憑證是由管理員佈建的,請要求他們核發新的憑證1486* 如果設定檔的憑證是由管理員佈建的,請要求他們核發新的憑證

1489* 執行 `/status`,確認使用中的憑證來源與設定檔名稱1487* 執行 `/status`,確認使用中的憑證來源與設定檔名稱

1490* 若要停止使用該設定檔,請在您有設定的情況下取消設定 `ANTHROPIC_PROFILE`,然後以其他方式進行身分驗證,例如 `/login` 或 `ANTHROPIC_API_KEY`1488* 若要停止使用該設定檔,請在您有設定的情況下取消設定 `ANTHROPIC_PROFILE`,然後以其他方式進行身分驗證,例如 `/login` 或 `ANTHROPIC_API_KEY`

1491 1489 

1490訊息的開頭會告訴您 Claude Code 是如何找到該設定檔的:

1491 

1492* 當 Claude Code 從您的設定目錄中探索到該設定檔,且其驗證模式為 `user_oauth` 時,訊息會以 `Login expired` 開頭,並優先建議 `/login`。Claude Code 會讓可正常運作的 `/login` 優先於探索到的設定檔,然後改以您的 claude.ai 帳戶進行身分驗證。從 v2.1.234 到 v2.1.277 之前,此形式顯示為 `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile`。在 v2.1.234 之前,Claude Code 在此情況下也會顯示 `Re-authenticate your Anthropic profile` 形式。

1493* 當您使用 `ANTHROPIC_PROFILE` 選擇該設定檔時,訊息會以 `Anthropic profile login expired` 開頭。

1494 

1495只有當使用中的憑證來自 Anthropic 憑證設定檔時才會出現此訊息,該設定檔可能是您以 `ANTHROPIC_PROFILE` 環境變數選擇的、Claude Code 在您的 Anthropic 設定目錄中探索到的使用中設定檔,或是您[在不使用 API 金鑰的情況下登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)時 Claude Code 寫入的設定檔。以 API 金鑰、`ANTHROPIC_AUTH_TOKEN` 等 bearer token 或第三方供應商進行身分驗證的工作階段,永遠不會看到此訊息。

1496 

1492<h3 id="oauth-scope-requirement">1497<h3 id="oauth-scope-requirement">

1493 OAuth 範圍需求1498 OAuth 範圍需求

1494</h3>1499</h3>


4039 4044 

4040**該怎麼做:**4045**該怎麼做:**

4041 4046 

4042* 執行 `claude plugin marketplace remove <name>`。這也會卸載從 marketplace 安裝的 plugin 並刪除其已儲存的資料4047* 若要保留由設定檔以 `"source": "settings"` 內嵌宣告的 marketplace,請在移除舊名稱之前先重新命名它,因為移除 marketplace 也會從您的設定檔中刪除其項目。Claude Code v2.1.292 或更新版本會在訊息中列出這些步驟:

4043* 若要改為保留 marketplace,請等待其維護者重新命名它,然後執行 `claude plugin marketplace update <name>`4048 1. 在每個於 `extraKnownMarketplaces` 下列出該 marketplace 的設定檔中,為該項目的鍵及其 `source.name` 設定同一個新的純 ASCII 名稱,且該名稱看起來不像官方名稱。如果管理員透過您組織的受管設定新增該 marketplace,則由管理員執行此步驟

4049 2. 執行 `claude plugin marketplace remove <old-name>`,或在 `/plugin` 的 **Marketplaces** 標籤中移除舊名稱。這也會卸載其 plugin,並刪除其資料、選項和機密

4050 3. 再次啟動 Claude Code;如果該檔案是專案的設定檔,請在專案的資料夾中啟動。然後從重新命名後的 marketplace 安裝 plugin

4051* 若要保留任何其他 marketplace,請等待其維護者重新命名它,然後執行 `claude plugin marketplace update <name>`

4052* 若要移除 marketplace,請執行 `claude plugin marketplace remove <name>`。這也會卸載從 marketplace 安裝的 plugin,並刪除其資料、選項和機密

4044* 如果您發佈 marketplace,請在您的 `marketplace.json` 中重新命名它;使用者然後更新 marketplace 而不是移除它4053* 如果您發佈 marketplace,請在您的 `marketplace.json` 中重新命名它;使用者然後更新 marketplace 而不是移除它

4045 4054 

4046<h3 id="marketplace-is-already-added-from-a-different-source">4055<h3 id="marketplace-is-already-added-from-a-different-source">

hooks.md +26 −4

Details

3320 WorktreeCreate3320 WorktreeCreate

3321</h3>3321</h3>

3322 3322 

3323在建立 worktree 時執行,無論是透過 `claude --worktree`、透過[使用 `isolation: "worktree"` 的 subagent](/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。3323在 Claude Code 建立 worktree 時執行,例如以下情況:

3324 

3325* 您使用 `claude --worktree` 啟動工作階段

3326* Claude 在工作階段中建立 worktree,並使用 [`EnterWorktree`](/docs/zh-TW/tools-reference) 工具切換進入

3327* [subagent 使用 `isolation: "worktree"`](/docs/zh-TW/sub-agents#choose-the-subagent-scope)

3328* [工作流程](/docs/zh-TW/workflows#migrate-many-files-in-parallel)在其自己的 worktree 中執行 agent

3329* Claude Code 將[背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)隔離在其自己的 worktree 中

3330* `worktree` 模式下的 [`claude remote-control`](/docs/zh-TW/remote-control#start-a-remote-control-session) 在其自己的 worktree 中啟動工作階段

3331 

3332當 Claude 透過 Bash 工具執行 `git worktree add` 而非呼叫 `EnterWorktree` 時,您的 WorktreeCreate hook 不會執行。若要檢查或封鎖該命令,請新增一個使用 `Bash` matcher 的 [`PreToolUse`](#pretooluse) hook。

3333 

3334預設情況下,Claude Code 會使用 `git worktree` 建立隔離的工作副本。設定 WorktreeCreate hook 會取代該預設的 git 行為,讓您可以使用不同的版本控制系統,例如 SVN、Perforce 或 Mercurial。

3324 3335 

3325由於 hook 會完全取代預設行為,因此不會處理 [`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees)。如果需要將 `.env` 等本機設定檔複製到新的 worktree 中,請在 hook 腳本內執行此操作。3336由於 hook 會完全取代預設行為,因此不會處理 [`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees)。如果需要將 `.env` 等本機設定檔複製到新的 worktree 中,請在 hook 腳本內執行此操作。

3326 3337 


3389* 您退出互動式 [worktree 工作階段](/docs/zh-TW/worktrees#start-claude-in-a-worktree),並在 Claude Code 提示時選擇移除 worktree3400* 您退出互動式 [worktree 工作階段](/docs/zh-TW/worktrees#start-claude-in-a-worktree),並在 Claude Code 提示時選擇移除 worktree

3390* 您退出尚未[命名](/docs/zh-TW/sessions#name-your-sessions)的互動式 worktree 工作階段,Claude Code 未發現任何已變更或未追蹤的檔案,並在不提示您的情況下移除 worktree3401* 您退出尚未[命名](/docs/zh-TW/sessions#name-your-sessions)的互動式 worktree 工作階段,Claude Code 未發現任何已變更或未追蹤的檔案,並在不提示您的情況下移除 worktree

3391* 您刪除在該 worktree 中執行的[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes)3402* 您刪除在該 worktree 中執行的[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes)

3403* 您在工作階段中要求 Claude 結束並移除 worktree,而 Claude 使用 [`ExitWorktree`](/docs/zh-TW/tools-reference) 工具將其移除

3404* 由 [`claude remote-control`](/docs/zh-TW/remote-control#start-a-remote-control-session) 以 `worktree` 模式啟動的工作階段在未當機的情況下結束,且 Claude Code 在其 worktree 中未發現任何已變更或未追蹤的檔案,也沒有新的提交

3405* 您在 `claude remote-control` 以 `worktree` 模式啟動的工作階段仍在執行時停止它,且 Claude Code 在其 worktree 中未發現任何已變更或未追蹤的檔案,也沒有新的提交

3406 

3407當 subagent 或工作流程 agent 完成時,Claude Code 會保留您的 WorktreeCreate hook 為其建立的 worktree,且不會執行您的 WorktreeRemove hook。工作完成後,請自行移除這些 worktree。

3408 

3409對於 `ExitWorktree` 呼叫或 `claude remote-control` 清理,Claude Code 不會在您的 hook 執行前提示您。除非呼叫傳入 [`discard_changes: true`](/docs/zh-TW/agent-sdk/typescript#exitworktree),否則 `ExitWorktree` 會拒絕移除由 hook 建立的 worktree,這使得您的 hook 成為該途徑上的最後一道檢查。

3392 3410 

3393Claude Code 使用 git 尋找已變更或未追蹤的檔案,因此在不是 git checkout 或不在 git checkout 內的 worktree 中,即使目錄包含未提交的工作,也不會找到任何檔案。請在 WorktreeRemove hook 刪除任何內容之前檢查這類工作。3411Claude Code 使用 git 尋找已變更或未追蹤的檔案,因此在不是 git checkout 或不在 git checkout 內的 worktree 中,即使目錄包含未提交的工作,也不會找到任何檔案。請在 WorktreeRemove hook 刪除任何內容之前檢查這類工作。

3394 3412 

3395對於以 git 為基礎的 worktree,Claude Code 會使用 `git worktree remove` 自動處理清理。如果您設定了 WorktreeCreate hook,請搭配 WorktreeRemove hook 來控制其所建立之 worktree 的清理:3413對於基於 git 的 worktree,Claude Code 會使用 `git worktree remove` 自動處理清理。如果您設定了 WorktreeCreate hook,請搭配 WorktreeRemove hook 來控制清理:

3396 3414 

3397* **沒有 WorktreeRemove hook**:當 Claude Code 在您退出 worktree 工作階段時移除 worktree,會改用對 WorktreeCreate hook 所回傳路徑執行 `git worktree remove --force`,因此 git 能辨識的 worktree 會被移除。git 無法辨識的 worktree(例如您的 hook 以非 git 版本控制系統建立的 worktree)會留在磁碟上。關於刪除[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes)時如何處理由 hook 建立的 worktree,請參閱 agent view 的刪除規則。3415* **沒有 WorktreeRemove hook**:對於結束時或透過 `ExitWorktree` 進行的移除,Claude Code 會改用 git;而在 `claude remote-control` 清理時則保留 worktree:

3416 * **您結束 worktree 工作階段,或 Claude 呼叫 `ExitWorktree`**:Claude Code 會以類似 `git worktree remove --force` 的方式移除 WorktreeCreate hook 回傳的路徑,因此 git 可識別的 worktree 會被移除。git 無法識別的 worktree,例如您的 hook 使用非 git 版本控制系統建立的 worktree,會保留在磁碟上。

3417 * **`claude remote-control` 清理工作階段的 worktree**:worktree 會保留在磁碟上,執行 `claude remote-control` 的終端機會顯示 `worktree removal failed, kept: <path>`。

3418 * **您刪除背景工作階段**:請參閱[刪除工作階段會移除的內容](/docs/zh-TW/agent-view#what-deleting-a-session-removes)。

3398* **Hook 以 0 退出**:worktree 視為已移除。Claude Code 不會從 hook 讀取任何其他內容,因此請確保您的 hook 已刪除該目錄。3419* **Hook 以 0 退出**:worktree 視為已移除。Claude Code 不會從 hook 讀取任何其他內容,因此請確保您的 hook 已刪除該目錄。

3399* **Hook 以非零值退出**:如果 `worktree_path` 上的目錄在之後仍然存在,移除就會失敗,且 worktree 會留在磁碟上,不會改用 git。在以非零值退出之前已刪除目錄的 hook 視為已移除。關於失敗如何回報,請參閱 [WorktreeRemove 輸入](#worktreeremove-input)。3420* **Hook 以非零值退出**:如果 `worktree_path` 上的目錄在之後仍然存在,移除就會失敗,且 worktree 會留在磁碟上,不會改用 git。在以非零值退出之前已刪除目錄的 hook 視為已移除。關於失敗如何回報,請參閱 [WorktreeRemove 輸入](#worktreeremove-input)。

3400 3421 


3402 3423 

3403Claude Code 會捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。3424Claude Code 會捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。

3404 3425 

3405對於背景工作階段的刪除,Claude Code 會在執行 hook 之前驗證所儲存的 worktree 路徑,並拒絕本身為符號連結或經過儲存庫根目錄下符號連結的路徑。只有當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時,hook 才會針對仍包含檔案的 worktree 執行;對於這類 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 則會保留工作階段和 worktree。在 v2.1.216 之前,hook 會在未經這些檢查的情況下對所儲存的路徑執行。3426對於背景工作階段的刪除,Claude Code 會在執行 hook 之前驗證儲存的 worktree 路徑,並拒絕本身是符號連結或經過儲存庫根目錄以下符號連結的路徑。在該途徑上,只有當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時,hook 才會針對仍含有檔案的 worktree 執行;對於這類 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 則會保留工作階段和 worktree。在 v2.1.216 之前,hook 會在不進行這些檢查的情況下對儲存的路徑執行。

3406 3427 

3407Claude Code 會將 WorktreeCreate 回傳的路徑作為 `worktree_path` 傳入 hook 輸入。此範例會讀取該路徑並移除目錄:3428Claude Code 會將 WorktreeCreate 回傳的路徑作為 `worktree_path` 傳入 hook 輸入。此範例會讀取該路徑並移除目錄:

3408 3429 


3443 3464 

3444* worktree 會留在磁碟上,且 hook 的命令和 stderr 會寫入[偵錯日誌](#debug-hooks)。3465* worktree 會留在磁碟上,且 hook 的命令和 stderr 會寫入[偵錯日誌](#debug-hooks)。

3445* 如果您當時正在刪除背景工作階段,該工作階段也會保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息會回報 hook 的結束方式(例如 `exited 1`)、引用其 stderr 的開頭,並說明再次刪除工作階段是否仍會移除該目錄。3466* 如果您當時正在刪除背景工作階段,該工作階段也會保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息會回報 hook 的結束方式(例如 `exited 1`)、引用其 stderr 的開頭,並說明再次刪除工作階段是否仍會移除該目錄。

3467* 如果 `claude remote-control` 正在清理工作階段的 worktree,執行它的終端機會顯示 `worktree removal failed, kept: <path>`。

3446 3468 

3447<h3 id="precompact">3469<h3 id="precompact">

3448 PreCompact3470 PreCompact

Details

55| 您想要 | 開始使用 | 所需的隔離 | 注意 |55| 您想要 | 開始使用 | 所需的隔離 | 注意 |

56| :- | :- | :- | :- |56| :- | :- | :- | :- |

57| 自己審查每個操作 | Manual 模式:`claude --permission-mode default` | 無 | 敏感工作、不熟悉的程式碼 |57| 自己審查每個操作 | Manual 模式:`claude --permission-mode default` | 無 | 敏感工作、不熟悉的程式碼 |

58| 在本地迭代,提示更少,無需分類器 | Manual 模式加上 Bash 沙箱在[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)中:`claude --permission-mode default`,然後執行 `/sandbox` 並選擇自動允許 | 內建 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒絕規則仍然適用,詢問規則命名命令(例如 `Bash(git push *)`)仍然提示。若要改為從設定檔開啟沙箱,請將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true` |58| 在本地迭代,提示更少,無需分類器 | Manual 模式加上 Bash 沙箱在[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)中:`claude --permission-mode default`,然後執行 `/sandbox` 並選擇自動允許 | 內建 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒絕規則仍然適用,詢問規則命名命令(例如 `Bash(git push *)`)仍然提示。[自動允許模式](/docs/zh-TW/sandboxing#auto-allow-mode)涵蓋其他可能提示的命令。若要改為從設定檔開啟沙箱,請將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true` |

59| 在變更任何內容前探索 | `claude --permission-mode plan` | 無 | Claude Code 會阻止編輯,直到您[批准計畫](#review-and-approve-a-plan) |59| 在變更任何內容前探索 | `claude --permission-mode plan` | 無 | Claude Code 會阻止編輯,直到您[批准計畫](#review-and-approve-a-plan) |

60| 在自動模式中無人值守工作 | `claude --permission-mode auto`、[內建起始權限模式](#which-mode-a-session-starts-in)(v2.1.283 或更新版本) | 無;沙箱或容器增加深度防禦 | 需要[支援的模型](#eliminate-prompts-with-auto-mode),您的組織可以[關閉自動模式](#eliminate-prompts-with-auto-mode) |60| 在自動模式中無人值守工作 | `claude --permission-mode auto`、[內建起始權限模式](#which-mode-a-session-starts-in)(v2.1.283 或更新版本) | 無;沙箱或容器增加深度防禦 | 需要[支援的模型](#eliminate-prompts-with-auto-mode),您的組織可以[關閉自動模式](#eliminate-prompts-with-auto-mode) |

61| 在 CI 中使用精確允許清單執行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 無,超出您的 CI 執行器提供的 | [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)忽略設定檔中的 `dontAsk` |61| 在 CI 中使用精確允許清單執行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 無,超出您的 CI 執行器提供的 | [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)忽略設定檔中的 `dontAsk` |

permissions.md +1 −0

Details

744* 內容範圍的 ask 規則(如 `Bash(git push *)`)仍然強制提示744* 內容範圍的 ask 規則(如 `Bash(git push *)`)仍然強制提示

745* 明確的 deny 規則仍然適用745* 明確的 deny 規則仍然適用

746* 針對 [critical path](/docs/zh-TW/permission-modes#critical-paths) 的 `rm` 或 `rmdir` 命令仍然會通過常規權限流程746* 針對 [critical path](/docs/zh-TW/permission-modes#critical-paths) 的 `rm` 或 `rmdir` 命令仍然會通過常規權限流程

747* 其他沙箱化命令也可能通過常規權限流程,如 [Auto-allow mode](/docs/zh-TW/sandboxing#auto-allow-mode) 所述

747 748 

748不會在沙箱中執行的命令(例如排除的命令)會遵守 bare `Bash` ask 規則。請參閱 [sandbox modes](/docs/zh-TW/sandboxing#sandbox-modes) 以變更此行為。749不會在沙箱中執行的命令(例如排除的命令)會遵守 bare `Bash` ask 規則。請參閱 [sandbox modes](/docs/zh-TW/sandboxing#sandbox-modes) 以變更此行為。

749 750 

Details

55* **以 `claudeai-` 開頭的名稱**:為託管在 claude.ai 上的 marketplace 保留。`claude plugin marketplace add` 拒絕任何其他使用一個的 marketplace,錯誤為 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`。55* **以 `claudeai-` 開頭的名稱**:為託管在 claude.ai 上的 marketplace 保留。`claude plugin marketplace add` 拒絕任何其他使用一個的 marketplace,錯誤為 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`。

56* **已註冊 GitHub marketplace 的下載資料夾 `<owner>-<repo>`**:對於從 `github` 來源(例如 `acme/x-tools`)新增的 marketplace,無論該 marketplace 本身的 `name` 為何,Claude Code 都會透過名為 `acme-x-tools` 的資料夾下載它。當該 marketplace 以 `acme-x-tools` 以外的名稱註冊時,`claude plugin marketplace add` 會在下載另一個名為 `acme-x-tools` 的 marketplace 後拒絕它,並報告 `Can't use the marketplace name "acme-x-tools"`。此檢查需要 Claude Code v2.1.290 或更新版本。56* **已註冊 GitHub marketplace 的下載資料夾 `<owner>-<repo>`**:對於從 `github` 來源(例如 `acme/x-tools`)新增的 marketplace,無論該 marketplace 本身的 `name` 為何,Claude Code 都會透過名為 `acme-x-tools` 的資料夾下載它。當該 marketplace 以 `acme-x-tools` 以外的名稱註冊時,`claude plugin marketplace add` 會在下載另一個名為 `acme-x-tools` 的 marketplace 後拒絕它,並報告 `Can't use the marketplace name "acme-x-tools"`。此檢查需要 Claude Code v2.1.290 或更新版本。

57 57 

58當已註冊的 marketplace 因其名稱模仿官方名稱而停止載入時,`claude plugin list` 和 `/plugin` 報告 `Claude Code refuses the marketplace name "<name>"`。該訊息告訴您移除 marketplace。移除它也會解除安裝其外掛程式並刪除其已儲存的資料。此具名拒絕訊息需要 Claude Code v2.1.282 或更新版本。58當已註冊的 marketplace 因其名稱模仿官方名稱而停止載入時,`claude plugin list` 和 `/plugin` 報告 `Claude Code refuses the marketplace name "<name>"`。該訊息告訴您移除 marketplace。移除它也會解除安裝其外掛程式,並刪除其資料、選項和密鑰。此具名拒絕訊息需要 Claude Code v2.1.282 或更新版本。

59 

60如果設定檔以內嵌方式宣告該 marketplace,該訊息會告訴您先重新命名其項目,再移除舊名稱。如需相關步驟,請參閱 [Claude Code refuses the marketplace name](/docs/zh-TW/errors#claude-code-refuses-the-marketplace-name)。此訊息在 Claude Code v2.1.292 或更新版本中會列出這些步驟。

59 61 

60<h2 id="top-level-fields">62<h2 id="top-level-fields">

61 頂層欄位63 頂層欄位

Details

88| [`prompt.submit`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 提交提示詞時 | `next({ ...e, text })`、`next({ ...e, context })` 或 `{ drop: reason }` |88| [`prompt.submit`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 提交提示詞時 | `next({ ...e, text })`、`next({ ...e, context })` 或 `{ drop: reason }` |

89| `prompt.fill`、`prompt.suggest` | 文字即將以草稿或淡色建議的形式放入提示詞輸入框時 | 變更了文字的 `next(e)` |89| `prompt.fill`、`prompt.suggest` | 文字即將以草稿或淡色建議的形式放入提示詞輸入框時 | 變更了文字的 `next(e)` |

90| `prompt.edit` | 使用者編輯提示詞輸入框時 | `next(e)` |90| `prompt.edit` | 使用者編輯提示詞輸入框時 | `next(e)` |

91| `prompt.autocomplete` | 使用者在提示詞輸入框中輸入,且有一個字詞在游標處結束時。`e.token` 即為該字詞。Claude Code 不會等待此 hook:其自身的自動完成列會先顯示。 | `{ suggestions }`,即顯示在 Claude Code 自身列下方的 `{ text, label, description }` 列清單。選擇某一列會以其 `text` 覆寫該字詞。 |

91| `prompt.compose` | Claude Code 轉譯系統提示詞時 | `{ sections }`,即依傳送順序排列的 `{ id, text, scope }` 清單 |92| `prompt.compose` | Claude Code 轉譯系統提示詞時 | `{ sections }`,即依傳送順序排列的 `{ id, text, scope }` 清單 |

92| [`prompt.section`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 系統提示詞的每個具名區段各一次。`e.name` 是該區段在 `prompt.compose` 中的 `id`。 | `{ text }`,或以 `{ text: null }` 省略該區段 |93| [`prompt.section`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 系統提示詞的每個具名區段各一次。`e.name` 是該區段在 `prompt.compose` 中的 `id`。 | `{ text }`,或以 `{ text: null }` 省略該區段 |

93| [`prompt.context`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 每個對話一次,針對隨第一則訊息傳送的上下文 | `{ blocks }` |94| [`prompt.context`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 每個對話一次,針對隨第一則訊息傳送的上下文 | `{ blocks }` |

Details

64 | `--remote-control-session-name-prefix <prefix>` | 未設定明確名稱時自動生成會話名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。設定 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以獲得相同效果。 |64 | `--remote-control-session-name-prefix <prefix>` | 未設定明確名稱時自動生成會話名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。設定 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以獲得相同效果。 |

65 | `-c`, `--continue` | 恢復此目錄中最後一個伺服器啟動的會話,而不是建立新會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本。 |65 | `-c`, `--continue` | 恢復此目錄中最後一個伺服器啟動的會話,而不是建立新會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本。 |

66 | `--session-id <id>` | 按其 ID 恢復一個會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本。 |66 | `--session-id <id>` | 按其 ID 恢復一個會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本。 |

67 | `--spawn <mode>` | 伺服器如何建立會話。<br />• `same-dir`(預設):所有會話共享目前的工作目錄,因此如果編輯相同的檔案可能會衝突。<br />• `worktree`:每個按需會話都會獲得自己的 [git worktree](/docs/zh-TW/worktrees)。需要 git 儲存庫。<br />• `session`:單一會話模式。恰好提供一個會話並拒絕其他連接。僅在啟動時設定。<br />在執行時按 `w` 在 `same-dir` 和 `worktree` 之間切換。 |67 | `--spawn <mode>` | 伺服器如何建立工作階段。<br />• `same-dir`(預設):所有工作階段共享目前的工作目錄,因此如果編輯相同的檔案可能會衝突。<br />• `worktree`:每個按需工作階段都會獲得自己的 [git worktree](/docs/zh-TW/worktrees)。需要 git 儲存庫或 [`WorktreeCreate` hook](/docs/zh-TW/hooks#worktreecreate)。<br />• `session`:單一工作階段模式。恰好提供一個工作階段並拒絕其他連接。僅在啟動時設定。<br />在執行時按 `w` 在 `same-dir` 和 `worktree` 之間切換。 |

68 | `--capacity <N>` | 並行會話的最大數量。預設值為 32。不能與 `--spawn=session` 一起使用。 |68 | `--capacity <N>` | 並行會話的最大數量。預設值為 32。不能與 `--spawn=session` 一起使用。 |

69 | `--[no-]create-session-in-dir` | 伺服器啟動時在目前目錄中預先建立一個會話,以便您有地方立即輸入。在 `worktree` 模式中,此會話保留在目前目錄中,而按需會話會獲得隔離的 worktrees。預設為開啟。如果您傳遞 `--no-create-session-in-dir` 以不建立任何會話啟動,Claude Code 會在您停止伺服器時封存伺服器的會話,因此沒有任何東西可以[恢復](#resume-sessions-after-stopping-the-server)。 |69 | `--[no-]create-session-in-dir` | 伺服器啟動時在目前目錄中預先建立一個會話,以便您有地方立即輸入。在 `worktree` 模式中,此會話保留在目前目錄中,而按需會話會獲得隔離的 worktrees。預設為開啟。如果您傳遞 `--no-create-session-in-dir` 以不建立任何會話啟動,Claude Code 會在您停止伺服器時封存伺服器的會話,因此沒有任何東西可以[恢復](#resume-sessions-after-stopping-the-server)。 |

70 | `--permission-mode <mode>` | 為伺服器的會話設定起始[權限模式](/docs/zh-TW/permission-modes),例如 `acceptEdits`。接受 `manual` 作為 `default` 的別名;無法識別的模式會在啟動時停止伺服器並列出有效的模式。 |70 | `--permission-mode <mode>` | 為伺服器的會話設定起始[權限模式](/docs/zh-TW/permission-modes),例如 `acceptEdits`。接受 `manual` 作為 `default` 的別名;無法識別的模式會在啟動時停止伺服器並列出有效的模式。 |

sandboxing.md +11 −1

Details

202* 明確的[拒絕規則](/docs/zh-TW/permissions)一律受到遵守202* 明確的[拒絕規則](/docs/zh-TW/permissions)一律受到遵守

203* 以[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)為目標的 `rm` 或 `rmdir` 命令仍會經過一般的權限流程203* 以[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)為目標的 `rm` 或 `rmdir` 命令仍會經過一般的權限流程

204* 以內容為範圍的[詢問規則](/docs/zh-TW/permissions)(例如 `Bash(git push *)`)即使對沙箱化命令仍會強制提示204* 以內容為範圍的[詢問規則](/docs/zh-TW/permissions)(例如 `Bash(git push *)`)即使對沙箱化命令仍會強制提示

205* 單純的 `Bash` 詢問規則,或等效的 `Bash(*)` 形式,對於以沙箱方式執行的命令會被略過;對於退回一般權限流程的命令則仍然適用。在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,該規則不會被略過:它也會對沙箱化命令(包括唯讀命令)提示205* 單純的 `Bash` 詢問規則,或等效的 `Bash(*)` 形式,對於以沙箱方式執行的命令會被略過;對於在沙箱外執行的命令則仍然適用。在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,該規則不會被略過:它也會對沙箱化命令(包括唯讀命令)提示

206* [Monitor 工具](/docs/zh-TW/tools-reference#monitor-tool)的命令不會自動核准,但仍會在沙箱中執行。若要略過提示,請新增與該命令相符的[允許規則](/docs/zh-TW/permissions#bash),例如 `Bash(npm run *)`206* [Monitor 工具](/docs/zh-TW/tools-reference#monitor-tool)的命令不會自動核准,但仍會在沙箱中執行。若要略過提示,請新增與該命令相符的[允許規則](/docs/zh-TW/permissions#bash),例如 `Bash(npm run *)`

207 207 

208有些沙箱化命令也會經過一般的[權限流程](/docs/zh-TW/permissions),而不是自動核准。這種情況會發生在 `FOO=bar npm test` 之類的命令(在命令前設定的變數可能會改變實際執行的程式),以及 `make CC=clang` 或 `eval "ls"`。此時由您的允許規則和權限模式決定是否顯示提示,而該命令仍會在沙箱內執行。

209 

210對於這三個命令,與命令相符的[允許規則](/docs/zh-TW/permissions#bash)可以避免重複出現提示。下列規則示範了此模式:

211 

212* `Bash(make *)` 會核准 `make CC=clang`

213* `Bash(FOO=bar npm *)` 會核准 `FOO=bar npm test`。當命令以變數指派開頭時,請在規則中包含該指派

214* `Bash(eval "ls")` 會核准 `eval "ls"`。萬用字元規則(例如 `Bash(eval *)`)無法避免此提示,因此請撰寫與整個命令相符的規則

215 

216與命令相符的允許規則也會核准該命令的[非沙箱重試](#the-unsandboxed-retry-escape-hatch),因此該命令可以在沙箱外執行而不提示。

217 

208<Info>218<Info>

209 Auto-allow 模式獨立於您的權限模式設定運作,但有三個例外:[plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)、帶有[每個命令允許網域](#per-command-allowed-domains-in-auto-mode)的自動模式命令,以及自動模式中對沙箱化命令的[伺服器端分類器審查](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)。即使您不在「accept edits」模式中,啟用 auto-allow 時沙箱化的 Bash 命令也會自動執行。這表示在沙箱邊界內修改檔案的 Bash 命令會在不提示的情況下執行,即使在檔案編輯工具會提示的 Manual 模式中也是如此。219 Auto-allow 模式獨立於您的權限模式設定運作,但有三個例外:[plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)、帶有[每個命令允許網域](#per-command-allowed-domains-in-auto-mode)的自動模式命令,以及自動模式中對沙箱化命令的[伺服器端分類器審查](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)。即使您不在「accept edits」模式中,啟用 auto-allow 時沙箱化的 Bash 命令也會自動執行。這表示在沙箱邊界內修改檔案的 Bash 命令會在不提示的情況下執行,即使在檔案編輯工具會提示的 Manual 模式中也是如此。

210 220 

Details

191 抖動191 抖動

192</h3>192</h3>

193 193 

194排程任務的實際執行時間可能與其排程所指定的時間不同。如果每個工作階段的任務都完全按照排程執行,許多任務就會在同一時刻呼叫 API,因此 Claude Code 會偏移每個任務的執行時間。重複執行的任務會延後執行,而排程在整點或半點的一次性任務則會稍微提前執行。194排程任務的實際執行時間可能與其排程所指定的時間不同。如果每個工作階段的任務都完全按照排程執行,許多任務就會在同一時刻呼叫 API,因此 Claude Code 會偏移每個任務的執行時間。重複執行的任務會延後執行,但每五分鐘執行一次(寫成 `*/5 * * * *`)的任務除外。排程在整點或半點的一次性任務則會稍微提前執行。

195 195 

196<h4 id="how-late-a-recurring-task-runs">196<h4 id="how-late-a-recurring-task-runs">

197 重複執行的任務會延後多久197 重複執行的任務會延後多久

198</h4>198</h4>

199 199 

200當您建立重複執行的任務時,Claude Code 會為其指定一個固定的延遲,並將該延遲加到每次執行上。延遲是根據任務的 ID 計算出來的,因此同一個任務每次都會延後相同的分鐘數,即使工作階段處於閒置且沒有其他任何內容在執行時也是如此。200除非每五分鐘執行一次,否則重複執行的任務每次執行都會延後開始,延後時間最多為距下一次執行間隔的一半,且最多不超過 30 分鐘。您的任務屬於以下三種情況之一:

201 201 

202執行越頻繁的任務獲得的延遲越短,而 30 分鐘是任務可獲得的最長延遲。以下是一些常見排程的延遲範圍:202* **間隔均勻的執行**:間隔相等的任務(例如每小時、每天或每 10 分鐘)每次都會延後相同的分鐘數,即使工作階段處於閒置時也是如此。

203* **間隔不均勻的執行**:間隔不相等的任務(例如排程在每小時 `:00` 和 `:15` 的任務)在每次執行時可能延後不同的分鐘數。

204* **每五分鐘**:寫成 `*/5 * * * *` 的任務不會延後。在上一次執行整整五分鐘後才開始的執行,會在五分鐘的[提示快取](/docs/zh-TW/prompt-caching#which-ttl-each-request-gets)過期之後才開始,因此每次執行會提早 15 秒開始。

203 205 

204| 任務執行頻率 | 延遲範圍 |206在此表格的第一欄中找到您的排程,即可查看其每次執行的開始時間。

207 

208| 排程 | 每次執行的開始時間 |

205| :- | :- |209| :- | :- |

206| 每 10 分鐘 | 0 到 5 分鐘 |210| 每 5 分鐘,寫成 `*/5 * * * *`,即 `/loop 5m` 所建立的排程 | 上一次執行後 4 分 45 秒 |

207| 每 30 分鐘 | 0 到 15 分鐘 |211| 每 10 分鐘 | 延後 0 到 5 分鐘 |

208| 每小時,或頻率更低(例如每天) | 0 到 30 分鐘 |212| 每 30 分鐘 | 延後 0 到 15 分鐘 |

213| 每小時,或頻率更低(例如每天) | 延後 0 到 30 分鐘 |

209 214 

210例如,`7,37 * * * *` 會將任務排程在 `:07` 和 `:37`,兩者相隔 30 分鐘,因此其延遲介於 0 到 15 分鐘之間。如果此任務的延遲為 14 分鐘,它會在每小時的 `:21` 和 `:51` 執行。將排程改為不同的分鐘會移動執行時間,但仍會在其上加上延遲。215例如,`7,37 * * * *` 會將任務排程在 `:07` 和 `:37`,兩者相隔 30 分鐘,因此其延遲介於 0 到 15 分鐘之間。如果此任務的延遲為 14 分鐘,它會在每小時的 `:21` 和 `:51` 執行。將排程改為不同的分鐘會移動執行時間,但仍會在其上加上延遲。

211 216 

Details

1931 1931 

1932* **範圍**:[`Any file`](#scopes)1932* **範圍**:[`Any file`](#scopes)

1933* **類型**:布林值1933* **類型**:布林值

1934 * `true`:Claude Code 會在不顯示權限提示的情況下執行沙箱化的 Bash 命令,但仍受 `deny` 規則和限定內容的 `ask` 規則約束;`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 會關閉自動允許1934 * `true`:Claude Code 會在不顯示權限提示的情況下執行沙箱化的 Bash 命令,但[自動允許模式](/docs/zh-TW/sandboxing#auto-allow-mode)所述的情況除外;`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 會關閉自動允許

1935 * `false`:沙箱化命令會經過一般權限流程,因此由您的允許規則和權限模式決定。`/sandbox` 的 **Mode** 分頁將此稱為一般權限模式1935 * `false`:沙箱化命令會經過一般權限流程,因此由您的允許規則和權限模式決定。`/sandbox` 的 **Mode** 分頁將此稱為一般權限模式

1936* **預設值**:`true`1936* **預設值**:`true`

1937 1937 


1946}1946}

1947```1947```

1948 1948 

1949關於自動允許模式仍會針對哪些情況提示,以及它在 plan mode 中的行為,請參閱[沙箱模式](/docs/zh-TW/sandboxing#sandbox-modes)。1949關於自動允許模式仍會針對哪些情況提示,以及它在 plan mode 中的行為,請參閱[自動允許模式](/docs/zh-TW/sandboxing#auto-allow-mode)。

1950 1950 

1951<h3 id="sandbox-excludedcommands">1951<h3 id="sandbox-excludedcommands">

1952 `sandbox.excludedCommands`1952 `sandbox.excludedCommands`

statusline.md +1 −1

Details

1308在[全螢幕呈現](/docs/zh-TW/fullscreen)外,Claude Code 在與您的狀態列相同行上顯示通知。在全螢幕呈現中,Claude Code 為通知提供自己的行。1308在[全螢幕呈現](/docs/zh-TW/fullscreen)外,Claude Code 在與您的狀態列相同行上顯示通知。在全螢幕呈現中,Claude Code 為通知提供自己的行。

1309 1309 

1310* 系統通知(如 MCP 伺服器錯誤和自動更新)顯示在行的右側。暫時性通知(例如 context-low 警告)也會在此區域循環。1310* 系統通知(如 MCP 伺服器錯誤和自動更新)顯示在行的右側。暫時性通知(例如 context-low 警告)也會在此區域循環。

1311* 啟用詳細模式會在此區域新增 token 計數器1311* 啟用詳細模式會在此區域新增 token 計數器,顯示最後一次 API 回應所報告的上下文大小,而非[旋轉指示器旁的每輪計數](/docs/zh-TW/costs#read-the-token-count-beside-the-spinner)

1312* 在狹窄的終端機上,這些通知可能會截斷您的狀態列輸出1312* 在狹窄的終端機上,這些通知可能會截斷您的狀態列輸出

workflows.md +10 −0

Details

431 431 

432從 `/workflows` 恢復暫停的執行,方法是選擇它並按 `p`。對於您停止的執行,要求 Claude 使用相同指令碼重新啟動工作流程。如果已停止執行中的代理尚未退出,Claude Code 會拒絕重新啟動,直到它們退出為止,因此這些代理的第二個副本無法與它們並行執行。432從 `/workflows` 恢復暫停的執行,方法是選擇它並按 `p`。對於您停止的執行,要求 Claude 使用相同指令碼重新啟動工作流程。如果已停止執行中的代理尚未退出,Claude Code 會拒絕重新啟動,直到它們退出為止,因此這些代理的第二個副本無法與它們並行執行。

433 433 

434<h4 id="which-agents-run-again">

435 哪些 agent 會再次執行

436</h4>

437 

434Claude Code 按代理啟動的順序重新執行該執行,每個代理要麼返回其已保存的結果,要麼再次執行:438Claude Code 按代理啟動的順序重新執行該執行,每個代理要麼返回其已保存的結果,要麼再次執行:

435 439 

436* **已完成**:返回其已保存的結果。第一個提示與前次執行不同的代理(因為您編輯了指令碼或較早的代理返回了不同的內容)會再次執行,之後的每個代理也會執行,即使是已完成的代理。440* **已完成**:返回其已保存的結果。第一個提示與前次執行不同的代理(因為您編輯了指令碼或較早的代理返回了不同的內容)會再次執行,之後的每個代理也會執行,即使是已完成的代理。


439 443 

440最後一種情況意味著中間的失敗會重新執行已完成的工作。如果指令碼按該順序啟動 A、B、C 和 D,並且 B 失敗,重新啟動會從快取返回 A 並再次執行 B、C 和 D。444最後一種情況意味著中間的失敗會重新執行已完成的工作。如果指令碼按該順序啟動 A、B、C 和 D,並且 B 失敗,重新啟動會從快取返回 A 並再次執行 B、C 和 D。

441 445 

446如果您將原本依序啟動 A、B、C 和 D 的指令碼編輯為依序啟動 A、C、B 和 D,那麼第二個啟動的 agent 現在是 C,而前次執行在此處啟動的是 B。重新啟動會從快取返回 A,並再次執行 C、B 和 D。

447 

448<h4 id="resume-after-you-leave-the-session">

449 離開工作階段後恢復

450</h4>

451 

442您可以在同一 Claude Code 工作階段內恢復執行。當您離開工作階段時,執行中的工作流程會發生什麼取決於您如何離開:452您可以在同一 Claude Code 工作階段內恢復執行。當您離開工作階段時,執行中的工作流程會發生什麼取決於您如何離開:

443 453 

444* 如果您[將工作階段放在背景](/docs/zh-TW/agent-view#what-carries-over-when-you-background),Claude Code 會在背景工作階段中以相同方式重新執行該執行並繼續它。454* 如果您[將工作階段放在背景](/docs/zh-TW/agent-view#what-carries-over-when-you-background),Claude Code 會在背景工作階段中以相同方式重新執行該執行並繼續它。

worktrees.md +1 −1

Details

129and report the results.129and report the results.

130```130```

131 131 

132每個子代理都會獲得一個臨時 worktree,當子代理完成而沒有變更時 Claude Code 會自動移除;具有變更的 worktree 會保留在磁碟上,直到下面的[定期掃描](#clean-up-subagent-and-background-session-worktrees)可以在不丟失工作的情況下移除它。132每個 subagent 都會獲得一個臨時 worktree,當 subagent 完成而沒有變更時 Claude Code 會自動移除;具有變更的 worktree 會保留在磁碟上,直到下面的[定期掃描](#clean-up-subagent-and-background-session-worktrees)可以在不遺失工作的情況下移除它。對於由您的 [WorktreeCreate hook](/docs/zh-TW/hooks#worktreecreate) 建立的 worktree,請改為參閱 [WorktreeRemove](/docs/zh-TW/hooks#worktreeremove)。

133 133 

134子代理 worktrees 使用與 `--worktree` 相同的[基礎分支](#choose-the-base-branch),因此它們從您的儲存庫的預設分支分支,除非 `worktree.baseRef` 設定為 `"head"`。134子代理 worktrees 使用與 `--worktree` 相同的[基礎分支](#choose-the-base-branch),因此它們從您的儲存庫的預設分支分支,除非 `worktree.baseRef` 設定為 `"head"`。

135 135