SpyBara
Go Premium

Documentation 2026-10-27 22:59 UTC to 2026-10-28 23:57 UTC

61 files changed +1,525 −1,270. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 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

admin-setup.md +2 −2

Details

97| [Customization lockdown](https://code.claude.com/docs/zh-TW/settings-reference.md#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 伺服器來自使用者和專案來源,使其只能來自外掛程式或受管設定。鎖定 skills 也會停止[您的開發人員在 claude.ai 上啟用的 skills](https://code.claude.com/docs/zh-TW/skills.md#where-synced-skills-load)同步 | `strictPluginOnlyCustomization` |97| [Customization lockdown](https://code.claude.com/docs/zh-TW/settings-reference.md#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 伺服器來自使用者和專案來源,使其只能來自外掛程式或受管設定。鎖定 skills 也會停止[您的開發人員在 claude.ai 上啟用的 skills](https://code.claude.com/docs/zh-TW/skills.md#where-synced-skills-load)同步 | `strictPluginOnlyCustomization` |

98| [Disable claude.ai sync](https://code.claude.com/docs/zh-TW/settings-reference.md#syncclaudeaiskills) | 停止 Claude Code 載入[skills](https://code.claude.com/docs/zh-TW/skills.md#how-synced-skills-behave)和[外掛程式](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins)您的開發人員在 claude.ai 上啟用。如果您為組織關閉 claude.ai 上的 Skills,Claude Code 會停止同步兩者,在 v2.1.273 或更新版本上,它也會移除已同步的。若要在不關閉 Skills 的情況下停止其中任一個,請在受管設定中將其鍵設定為 `false` | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |98| [Disable claude.ai sync](https://code.claude.com/docs/zh-TW/settings-reference.md#syncclaudeaiskills) | 停止 Claude Code 載入[skills](https://code.claude.com/docs/zh-TW/skills.md#how-synced-skills-behave)和[外掛程式](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins)您的開發人員在 claude.ai 上啟用。如果您為組織關閉 claude.ai 上的 Skills,Claude Code 會停止同步兩者,在 v2.1.273 或更新版本上,它也會移除已同步的。若要在不關閉 Skills 的情況下停止其中任一個,請在受管設定中將其鍵設定為 `false` | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |

99| [Hook restrictions](https://code.claude.com/docs/zh-TW/settings-reference.md#allowmanagedhooksonly) | 限制哪些 hooks 執行並限制 HTTP hook URL;請參閱[在 `allowManagedHooksOnly` 下執行的內容](https://code.claude.com/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)以了解完整的效果清單 | `allowManagedHooksOnly`、`allowedHttpHookUrls` |99| [Hook restrictions](https://code.claude.com/docs/zh-TW/settings-reference.md#allowmanagedhooksonly) | 限制哪些 hooks 執行並限制 HTTP hook URL;請參閱[在 `allowManagedHooksOnly` 下執行的內容](https://code.claude.com/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)以了解完整的效果清單 | `allowManagedHooksOnly`、`allowedHttpHookUrls` |

100| [Login enforcement](https://code.claude.com/docs/zh-TW/settings-reference.md#forceloginmethod) | 限制登入為特定方法或 Anthropic 組織。方法限制適用於 VS Code 擴充功能、Agent SDK、`claude setup-token` 和 `/install-github-app`,以及終端的互動式登入畫面(透過 `/login` 或首次執行上線到達),預先選擇方法而不強制執行;Claude Code 驗證終端、VS Code 擴充功能和 Agent SDK 中 claude.ai 帳戶登入的組織,不檢查 Claude Console 登入或[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入。在 v2.1.212 之前,只有終端登入應用任一鍵。設定時,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的會話在啟動時被阻止;雲端提供者會話不受影響,除非這些認證之一或由較早的 Claude Console 登入儲存的 API 金鑰也存在 | `forceLoginMethod`、`forceLoginOrgUUID` |100| [Login enforcement](https://code.claude.com/docs/zh-TW/settings-reference.md#forceloginmethod) | 限制登入為特定方法或 Anthropic 組織。方法限制適用於 VS Code 擴充功能、Agent SDK、`claude setup-token` 和 `/install-github-app`,而終端的互動式登入畫面(透過 `/login` 或首次執行上線到達)則會預先選擇該方法而不強制執行;Claude Code 驗證終端、VS Code 擴充功能和 Agent SDK 中 claude.ai 帳戶登入的組織,不檢查 Claude Console 登入或[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入。在 v2.1.212 之前,只有終端登入應用任一鍵。設定時,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的會話在啟動時被阻止;雲端提供者會話不受影響,除非這些認證之一或由較早的 Claude Console 登入儲存的 API 金鑰也存在 | `forceLoginMethod`、`forceLoginOrgUUID` |

101| [Provider restrictions](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders) | 限制機器可能使用的 API 提供者。不在列表中的提供者上的會話在啟動時、登入時以及下次聯絡 API 時被拒絕。需要 Claude Code v2.1.285 或更新版本 | `allowedProviders` |101| [Provider restrictions](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders) | 限制機器可能使用的 API 提供者。不在列表中的提供者上的會話在啟動時、登入時以及下次聯絡 API 時被拒絕。需要 Claude Code v2.1.285 或更新版本 | `allowedProviders` |

102| [Disable agent view](https://code.claude.com/docs/zh-TW/agent-view.md#how-background-sessions-are-hosted) | 關閉 `claude agents`、`--bg`、`/background` 和隨選監督員 | `disableAgentView` |102| [Disable agent view](https://code.claude.com/docs/zh-TW/agent-view.md#how-background-sessions-are-hosted) | 關閉 `claude agents`、`--bg`、`/background` 和隨選監督員 | `disableAgentView` |

103| [Configure the corporate launcher](https://code.claude.com/docs/zh-TW/corporate-launcher.md) | 使用必需的公司啟動器作為[背景代理監督員](https://code.claude.com/docs/zh-TW/agent-view.md#how-background-sessions-are-hosted)、其工作者和[其他涵蓋的背景程序](https://code.claude.com/docs/zh-TW/corporate-launcher.md#what-the-launcher-covers)的前綴,而不是關閉代理檢視 | `processWrapper` |103| [Configure the corporate launcher](https://code.claude.com/docs/zh-TW/corporate-launcher.md) | 使用必需的公司啟動器作為[背景代理監督員](https://code.claude.com/docs/zh-TW/agent-view.md#how-background-sessions-are-hosted)、其工作者和[其他涵蓋的背景程序](https://code.claude.com/docs/zh-TW/corporate-launcher.md#what-the-launcher-covers)的前綴,而不是關閉代理檢視 | `processWrapper` |

104| [Model restrictions](https://code.claude.com/docs/zh-TW/model-config.md#restrict-model-selection) | `availableModels` 篩選模型選擇器中出現的模型。新增 `enforceAvailableModels` 也會限制自動選擇的預設模型。請參閱[表面涵蓋範圍](https://code.claude.com/docs/zh-TW/model-config.md#surface-coverage)以了解此設定如何到達 CLI、網頁和 IDE | `availableModels`、`enforceAvailableModels` |104| [Model restrictions](https://code.claude.com/docs/zh-TW/model-config.md#restrict-model-selection) | `availableModels` 篩選模型選擇器中出現的模型。新增 `enforceAvailableModels` 也會限制自動選擇的預設模型。請參閱[表面涵蓋範圍](https://code.claude.com/docs/zh-TW/model-config.md#surface-coverage)以了解此設定如何到達 CLI、網頁和 IDE | `availableModels`、`enforceAvailableModels` |

105| [Effort cap](https://code.claude.com/docs/zh-TW/settings-reference.md#maxeffortlevel) | 為每個模型或每個提供者上的每個模型限制[工作量級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) | `maxEffortLevel` |105| [Effort cap](https://code.claude.com/docs/zh-TW/settings-reference.md#maxeffortlevel) | 為所有模型或個別模型限制[工作量級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level),適用於每個提供者 | `maxEffortLevel` |

106| [Version floor](https://code.claude.com/docs/zh-TW/settings-reference.md#minimumversion) | 防止自動更新安裝低於組織範圍最小值的版本 | `minimumVersion` |106| [Version floor](https://code.claude.com/docs/zh-TW/settings-reference.md#minimumversion) | 防止自動更新安裝低於組織範圍最小值的版本 | `minimumVersion` |

107| [Required version range](https://code.claude.com/docs/zh-TW/settings-reference.md#requiredminimumversion) | 當執行版本超出組織核准範圍時,完全拒絕啟動。比 `minimumVersion` 更強大,後者只會阻止降級 | `requiredMinimumVersion`、`requiredMaximumVersion` |107| [Required version range](https://code.claude.com/docs/zh-TW/settings-reference.md#requiredminimumversion) | 當執行版本超出組織核准範圍時,完全拒絕啟動。比 `minimumVersion` 更強大,後者只會阻止降級 | `requiredMinimumVersion`、`requiredMaximumVersion` |

108| [Telemetry opt-out](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services) | 在每個裝置上關閉 Anthropic 繫結的使用量指標、錯誤報告和調查 | `env` 設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 為 `1`;連結的部分列出了各類別變數 |108| [Telemetry opt-out](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services) | 在每個裝置上關閉 Anthropic 繫結的使用量指標、錯誤報告和調查 | `env` 設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 為 `1`;連結的部分列出了各類別變數 |

Details

211. **接收提示。** Claude 接收您的提示,以及系統提示、工具定義和對話歷史記錄。SDK 會產生一個 [`SystemMessage`](#message-types),其子類型為 `"init"`,包含工作階段中繼資料。211. **接收提示。** Claude 接收您的提示,以及系統提示、工具定義和對話歷史記錄。SDK 會產生一個 [`SystemMessage`](#message-types),其子類型為 `"init"`,包含工作階段中繼資料。

222. **評估並回應。** Claude 評估目前狀態並決定如何進行。它可能會以文字回應、要求一個或多個工具呼叫,或兩者都有。SDK 會產生一個或多個 [`AssistantMessage`](#message-types) 物件,每個內容區塊(例如文字區塊或工具呼叫要求)各一個。222. **評估並回應。** Claude 評估目前狀態並決定如何進行。它可能會以文字回應、要求一個或多個工具呼叫,或兩者都有。SDK 會產生一個或多個 [`AssistantMessage`](#message-types) 物件,每個內容區塊(例如文字區塊或工具呼叫要求)各一個。

233. **執行工具。** SDK 執行每個要求的工具並收集結果。每組工具結果都會回饋給 Claude 以進行下一個決定。您可以使用 [hooks](https://code.claude.com/docs/zh-TW/agent-sdk/hooks.md) 在工具執行前攔截、修改或阻止工具呼叫。233. **執行工具。** SDK 執行每個要求的工具並收集結果。每組工具結果都會回饋給 Claude 以進行下一個決定。您可以使用 [hooks](https://code.claude.com/docs/zh-TW/agent-sdk/hooks.md) 在工具執行前攔截、修改或阻止工具呼叫。

244. **重複。** 步驟 2 和 3 重複為一個週期。每個完整週期是一個回合。Claude 繼續呼叫工具並處理結果,直到它產生沒有工具呼叫的回應。244. **重複。** 步驟 2 和 3 重複為一個週期。Claude 繼續呼叫工具並處理結果,直到它產生沒有工具呼叫的回應。

255. **返回結果。** SDK 會產生最終的 [`AssistantMessage`](#message-types),包含文字回應(無工具呼叫),然後是 [`ResultMessage`](#message-types),包含最終文字、代幣使用量、成本和工作階段 ID。255. **返回結果。** SDK 會產生最終的 [`AssistantMessage`](#message-types),包含文字回應(無工具呼叫),然後是 [`ResultMessage`](#message-types),包含最終文字、代幣使用量、成本和工作階段 ID。

26 26 

27一個快速問題(「這裡有什麼檔案?」)可能需要一到兩個回合的 `Glob` 呼叫和結果回應。一個複雜的任務(「重構驗證模組並更新測試」)可以在許多回合中鏈接數十個工具呼叫,讀取檔案、編輯程式碼和執行測試,Claude 根據每個結果調整其方法。27一個快速問題(例如「這裡有什麼檔案?」)可能需要兩到三個[回合](#turns-and-messages):一到兩個回合呼叫 `Glob`,然後一個回合以結果回應。一個複雜的任務(例如「重構驗證模組並更新測試」)可能會在許多回合中串連數十個工具呼叫,Claude 會根據每個結果進行調整。

28 28 

29## 回合和訊息29## 回合和訊息

30 30 

31回合是迴圈內的一個往返:Claude 產生包含工具呼叫的輸出,SDK 執行這些工具,結果自動回饋給 Claude。這發生在不將控制權交回給您的程式碼的情況下。回合繼續進行,直到 Claude 產生沒有工具呼叫的輸出,此時迴圈結束並傳遞最終結果。31回合是迴圈內的一個往返:Claude 產生輸出,如果輸出包含工具呼叫,SDK 會執行這些工具,結果自動回饋給 Claude。這發生在不將控制權交回給您的程式碼的情況下。回合繼續進行,直到 Claude 產生沒有工具呼叫的輸出,此時迴圈結束並傳遞最終結果。

32 32 

33考慮提示「修復 auth.ts 中失敗的測試」的完整工作階段可能是什麼樣子。33考慮提示「修復 auth.ts 中失敗的測試」的完整工作階段可能是什麼樣子。

34 34 

Details

1274| `updated_input` | `dict[str, Any] \| None` | `None` | 要使用的修改輸入而不是原始輸入 |1274| `updated_input` | `dict[str, Any] \| None` | `None` | 要使用的修改輸入而不是原始輸入 |

1275| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | 要套用的權限更新 |1275| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | 要套用的權限更新 |

1276 1276 

1277如果您傳回的 `PermissionResultAllow` 在 `updated_permissions` 中包含超過 4,096 個項目,Claude Code 會將結果視為無效並拒絕該工具呼叫。每個 [`PermissionUpdate`](#permissionupdate) 計為一個項目,其 `rules` 或 `directories` 清單中的每個條目也各計為一個項目。拒絕訊息的結尾為 `updatedPermissions may hold at most 4096 updates, rules and directories in all.` 若要避免遭拒,請傳回 4,096 個或更少的項目。

1278 

1277### `PermissionResultDeny`1279### `PermissionResultDeny`

1278 1280 

1279指示應拒絕工具呼叫的結果。1281指示應拒絕工具呼叫的結果。

Details

497| 屬性 | 型別 | 預設值 | 說明 |497| 屬性 | 型別 | 預設值 | 說明 |

498| :- | :- | :- | :- |498| :- | :- | :- | :- |

499| `abortController` | `AbortController` | `new AbortController()` | 用於取消操作的控制器 |499| `abortController` | `AbortController` | `new AbortController()` | 用於取消操作的控制器 |

500| `additionalDirectories` | `string[]` | `[]` | Claude 可以存取的其他目錄。SDK 會將每個項目以 `--add-dir` 傳遞給 Claude Code,因此在使用 `project` 設定來源時,Claude Code 也會[載入該目錄的 skill、命令和 subagent](https://code.claude.com/docs/zh-TW/permissions.md#additional-directories-grant-file-access-not-configuration) |500| `additionalDirectories` | `string[]` | `[]` | Claude 可以存取的其他目錄。SDK 會將每個項目以 `--add-dir` 傳遞給 Claude Code,因此搭配 `project` 設定來源時,Claude Code 也會[載入該目錄的 skill、命令和 subagent](https://code.claude.com/docs/zh-TW/permissions.md#additional-directories-grant-file-access-not-configuration) |

501| `agent` | `string` | `undefined` | 主執行緒的 agent 名稱。該 agent 必須在 `agents` 選項或設定中定義 |501| `agent` | `string` | `undefined` | 主執行緒的 agent 名稱。該 agent 必須在 `agents` 選項或設定中定義 |

502| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | 以程式方式定義 subagent |502| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | 以程式方式定義 subagent |

503| `agentProgressSummaries` | `boolean` | `false` | 為 `true` 時,為 subagent 產生單行進度摘要,並透過 `summary` 欄位在 [`task_progress`](#sdktaskprogressmessage) 事件中轉發。適用於前景和背景 subagent |503| `agentProgressSummaries` | `boolean` | `false` | 設為 `true` 時,為 subagent 產生單行進度摘要,並透過 `summary` 欄位在 [`task_progress`](#sdktaskprogressmessage) 事件中轉送。適用於前景和背景 subagent |

504| `allowDangerouslySkipPermissions` | `boolean` | `false` | 啟用略過權限。使用 `permissionMode: 'bypassPermissions'` 時必須設定,無論是在啟動時或之後透過 `setPermissionMode()` 設定。關於它如何與 `permissionMode: 'plan'` 互動,請參閱 [plan mode](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#plan-mode-plan) |504| `allowDangerouslySkipPermissions` | `boolean` | `false` | 啟用略過權限。在啟動時或之後透過 `setPermissionMode()` 使用 `permissionMode: 'bypassPermissions'` 時為必要項目。關於它與 `permissionMode: 'plan'` 的互動方式,請參閱 [plan mode](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#plan-mode-plan) |

505| `allowedTools` | `string[]` | `[]` | 無需提示即可自動核准的工具,但從[網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)讀取除外。這不會將 Claude 限制為只能使用這些工具。如果您在此指定其中一個[任務追蹤工具](https://code.claude.com/docs/zh-TW/agent-sdk/todo-tracking.md#model-availability),Claude Code 也會讓該工作階段選擇加入。其他未列出的工具則交由 `permissionMode` 和 `canUseTool` 處理。使用 `disallowedTools` 來封鎖工具。請參閱[權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#allow-and-deny-rules) |505| `allowedTools` | `string[]` | `[]` | 無需提示即自動核准的工具,但從[網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)讀取的操作除外。這不會將 Claude 限制為只能使用這些工具。若您在此列出其中一個[任務追蹤工具](https://code.claude.com/docs/zh-TW/agent-sdk/todo-tracking.md#model-availability),Claude Code 也會讓該工作階段啟用此功能。其他未列出的工具會交由 `permissionMode` 和 `canUseTool` 處理。使用 `disallowedTools` 封鎖工具。請參閱[權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#allow-and-deny-rules) |

506| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 啟用 beta 功能 |506| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 啟用 beta 功能 |

507| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 自訂權限函式,僅在[權限流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)落到提示時才會呼叫。對於由 `allowedTools`、允許規則或 `permissionMode` 自動核准的呼叫,不會呼叫此函式。允許規則不會預先核准[沒有任何模式會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)。詳情請參閱 [`CanUseTool`](#canusetool) |507| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 自訂權限函式,僅在[權限流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)落到提示時才會呼叫。對於由 `allowedTools`、允許規則或 `permissionMode` 自動核准的呼叫,不會呼叫此函式。允許規則不會預先核准[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)。詳情請參閱 [`CanUseTool`](#canusetool) |

508| `continue` | `boolean` | `false` | 繼續最近的對話 |508| `continue` | `boolean` | `false` | 繼續最近一次的對話 |

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

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

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

512| `disallowedTools` | `string[]` | `[]` | 要拒絕的工具。像 `"Bash"` 這樣的單純名稱會從 Claude 的上下文中移除該工具。像 `"Bash(rm *)"` 這樣具範圍的規則會讓該工具保持可用,並在每個權限模式(包括 `bypassPermissions`)中,針對[依其撰寫方式](https://code.claude.com/docs/zh-TW/permissions.md#bash-rule-limits)的命令拒絕符合的呼叫。請參閱[權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#allow-and-deny-rules) |512| `disallowedTools` | `string[]` | `[]` | 要拒絕的工具。像 `"Bash"` 這樣的單純名稱會將該工具從 Claude 的上下文中移除。像 `"Bash(rm *)"` 這樣具範圍的規則會保留該工具可用,並在每種權限模式(包括 `bypassPermissions`)下拒絕符合的呼叫,比對依據是[所寫的命令內容](https://code.claude.com/docs/zh-TW/permissions.md#bash-rule-limits)。請參閱[權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#allow-and-deny-rules) |

513| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | 控制 Claude 在回應中投入多少 effort。搭配自適應思考來引導思考深度。請參閱[調整 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) |513| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | 控制 Claude 在回應中投入多少 effort。與自適應思考搭配使用以引導思考深度。請參閱[調整 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) |

514| `enableFileCheckpointing` | `boolean` | `false` | 啟用檔案變更追蹤以便倒轉。請參閱[檔案檢查點功能](https://code.claude.com/docs/zh-TW/agent-sdk/file-checkpointing.md) |514| `enableFileCheckpointing` | `boolean` | `false` | 啟用檔案變更追蹤以便倒回。請參閱[檔案檢查點功能](https://code.claude.com/docs/zh-TW/agent-sdk/file-checkpointing.md) |

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

516| `executable` | `'bun' \| 'deno' \| 'node'` | 自動偵測 | 要使用的 JavaScript 執行環境 |516| `executable` | `'bun' \| 'deno' \| 'node'` | 自動偵測 | 要使用的 JavaScript 執行環境 |

517| `executableArgs` | `string[]` | `[]` | 要傳遞給執行檔的引數 |517| `executableArgs` | `string[]` | `[]` | 要傳遞給執行檔的引數 |

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

519| `fallbackModel` | `string` | `undefined` | 主要模型失敗時要使用的模型。接受以逗號分隔的清單。關於順序和上限,請參閱[備援模型鏈](https://code.claude.com/docs/zh-TW/model-config.md#fallback-model-chains)。相關指引請參閱[選擇模型](https://code.claude.com/docs/zh-TW/agent-sdk/configuration.md#choose-a-model) |519| `fallbackModel` | `string` | `undefined` | 主要模型失敗時使用的模型。接受以逗號分隔的清單。關於順序與上限,請參閱[備援模型鏈](https://code.claude.com/docs/zh-TW/model-config.md#fallback-model-chains)。相關指引請參閱[選擇模型](https://code.claude.com/docs/zh-TW/agent-sdk/configuration.md#choose-a-model) |

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

521| `forwardSubagentText` | `boolean` | `false` | 將 subagent 的文字和思考區塊轉發為設定了 `parent_tool_use_id` 的 assistant 和 user 訊息,讓取用端可以呈現巢狀逐字稿。若沒有此選項,Claude Code 會省略在[前景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)執行之 subagent 的文字和思考區塊。關於巢狀 subagent、具有 `context: fork` 的 skill,以及各自所需的 Claude Code 版本,請參閱[追蹤 subagent 訊息](https://code.claude.com/docs/zh-TW/headless.md#follow-subagent-messages) |521| `forwardSubagentText` | `boolean` | `false` | 將 subagent 的文字和思考區塊以設定了 `parent_tool_use_id` 的 assistant 和 user 訊息轉送,讓消費端能呈現巢狀逐字稿。若未使用此選項,Claude Code 會省略在[前景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)執行之 subagent 的文字和思考區塊。關於巢狀 subagent、使用 `context: fork` 的 skill,以及各自所需的 Claude Code 版本,請參閱[追蹤 subagent 訊息](https://code.claude.com/docs/zh-TW/headless.md#follow-subagent-messages) |

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

523| `includeHookEvents` | `boolean` | `false` | 在訊息串流中包含 hook 生命週期事件,形式為 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage)。`SessionStart` 和 `Setup` hook 的生命週期事件一律會包含,不需要此選項。某些 hook 事件(例如 `Notification`、`SessionEnd`、`PreCompact` 和 `PostCompact`)即使有此選項也永遠不會產生 `SDKHookStartedMessage`。對於這些事件,當執行超過一秒的命令 hook 產生輸出時,Claude Code 仍會發出 `SDKHookProgressMessage`,且只有在[於背景執行](https://code.claude.com/docs/zh-TW/hooks.md#run-hooks-in-the-background)的 hook 完成時才會發出 `SDKHookResponseMessage` |523| `includeHookEvents` | `boolean` | `false` | 在訊息串流中以 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage) 包含 hook 生命週期事件。`SessionStart` 和 `Setup` hook 的生命週期事件一律會包含,不需要此選項。某些 hook 事件(例如 `Notification`、`SessionEnd`、`PreCompact` 和 `PostCompact`)即使啟用此選項也永遠不會產生 `SDKHookStartedMessage`。對於這些事件,當執行超過一秒的命令 hook 產生輸出時,Claude Code 仍會發出 `SDKHookProgressMessage`,且僅在[於背景執行](https://code.claude.com/docs/zh-TW/hooks.md#run-hooks-in-the-background)的 hook 完成時才發出 `SDKHookResponseMessage` |

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

525| `loadTimeoutMs` | `number` | `60000` | *Alpha.* 在繼續工作階段的具體化過程中,每次 `sessionStore.load()` 和 `sessionStore.listSubkeys()` 呼叫的逾時時間(毫秒)。如果轉接器未在此時間範圍內完成,查詢會失敗而不是停滯。未設定 `sessionStore` 時會忽略 |525| `loadTimeoutMs` | `number` | `60000` | *Alpha。* 在恢復具體化期間,每次 `sessionStore.load()` 和 `sessionStore.listSubkeys()` 呼叫的逾時時間(毫秒)。若配接器未在此時間內完成,查詢會失敗而不是停滯。未設定 `sessionStore` 時會忽略 |

526| `managedSettings` | `Settings` | `undefined` | 您的主機程序提供給所產生工作階段的政策層級設定。在有管理員部署受管設定的機器上,除非管理員的最高優先順序受管來源設定了 `parentSettingsBehavior: 'merge'`,否則 Claude Code 會忽略這些設定,且在 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 提供受管設定時永遠不會合併它們。合併的值會通過僅限限制性的篩選器;[限制父層設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway#restrict-parent-settings)說明了篩選器允許的內容以及 `allowManaged*Only` 鎖定。設定了 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars) 的主機則會改為直接從此 payload 讀取三個鍵:在 Claude Code v2.1.222 或更新版本上的[模型設定](https://code.claude.com/docs/zh-TW/model-config.md#restrict-model-selection)、在 v2.1.246 或更新版本上沒有任何受管來源設定它時的 [`modelPricing`](https://code.claude.com/docs/zh-TW/settings-reference#modelpricing),以及在 v2.1.247 或更新版本上的 `ENABLE_TOOL_SEARCH` env 項目 |526| `managedSettings` | `Settings` | `undefined` | 您的主機程序提供給所產生工作階段的政策層級設定。在具有管理員部署之受管設定的機器上,除非管理員最高優先順序的受管來源設定了 `parentSettingsBehavior: 'merge'`,否則 Claude Code 會忽略這些設定;且當 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 提供受管設定時,一律不會合併它們。合併的值會通過僅限收緊的篩選器;[限制上層設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway#restrict-parent-settings)說明了篩選器允許的內容以及 `allowManaged*Only` 鎖定。設定了 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars) 的主機則會直接從此 payload 讀取三個鍵:其[模型設定](https://code.claude.com/docs/zh-TW/model-config.md#restrict-model-selection)(Claude Code v2.1.222 或更新版本)、沒有受管來源設定時的 [`modelPricing`](https://code.claude.com/docs/zh-TW/settings-reference#modelpricing)(v2.1.246 或更新版本),以及其 `ENABLE_TOOL_SEARCH` env 項目(v2.1.247 或更新版本) |

527| `maxBudgetUsd` | `number` | `undefined` | 當用戶端成本估算達到此美元值時停止查詢。估算值可能超過此值,因此請[保留餘裕](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#budget-headroom)。僅計算該呼叫本身的花費;從繼續的工作階段還原的總計不列入計算。關於準確度注意事項和重設行為,請參閱[追蹤成本和用量](https://code.claude.com/docs/zh-TW/agent-sdk/cost-tracking.md) |527| `maxBudgetUsd` | `number` | `undefined` | 當用戶端成本估算達到此 USD 值時停止查詢。估算值可能超過此值,因此請[保留餘裕](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#budget-headroom)。僅計算該呼叫本身的花費;從恢復的工作階段還原的總額不計入。關於準確性注意事項與重設行為,請參閱[追蹤成本與用量](https://code.claude.com/docs/zh-TW/agent-sdk/cost-tracking.md) |

528| `maxThinkingTokens` | `number` | `undefined` | *已棄用:* 請改用 `thinking`。思考過程的最大 token 數 |528| `maxThinkingTokens` | `number` | `undefined` | *已淘汰:* 請改用 `thinking`。思考過程的最大 token 數 |

529| `maxTurns` | `number` | `undefined` | 最大 agentic [回合](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#turns-and-messages)數 |529| `maxTurns` | `number` | `undefined` | 最大 agent [回合](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#turns-and-messages)數 |

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

531| `model` | `string` | 來自 CLI 的預設值 | Claude 模型別名或完整模型名稱。請參閱[接受的值和供應商特定的 ID](https://code.claude.com/docs/zh-TW/model-config.md#available-models) |531| `model` | `string` | 來自 CLI 的預設值 | Claude 模型別名或完整模型名稱。請參閱[可接受的值與供應商特定 ID](https://code.claude.com/docs/zh-TW/model-config.md#available-models) |

532| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | 處理 MCP elicitation 請求的回呼。當 MCP 伺服器請求使用者輸入且沒有 hook 先處理時呼叫。未提供時,未處理的 elicitation 請求會自動被拒絕 |532| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | 處理 MCP elicitation 請求的回呼。當 MCP 伺服器請求使用者輸入且沒有 hook 先處理時呼叫。未提供時,未處理的 elicitation 請求會自動遭到拒絕 |

533| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | 定義 agent 結果的輸出格式。詳情請參閱[結構化輸出](https://code.claude.com/docs/zh-TW/agent-sdk/structured-outputs.md) |533| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | 定義 agent 結果的輸出格式。詳情請參閱[結構化輸出](https://code.claude.com/docs/zh-TW/agent-sdk/structured-outputs.md) |

534| `outputStyle` | `string` | `undefined` | 不是 `Options` 欄位。請改為在內嵌 [`settings`](https://code.claude.com/docs/zh-TW/settings) 物件或設定檔中設定 `outputStyle`。請參閱[啟用輸出風格](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#activate-an-output-style) |534| `outputStyle` | `string` | `undefined` | 這不是 `Options` 欄位。請改在內嵌的 [`settings`](https://code.claude.com/docs/zh-TW/settings) 物件或設定檔中設定 `outputStyle`。請參閱[啟用輸出風格](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#activate-an-output-style) |

535| `pathToClaudeCodeExecutable` | `string` | 從隨附的原生二進位檔自動解析 | Claude Code 執行檔的路徑。只有在安裝期間略過了選用相依套件,或您的平台不在支援範圍內時才需要 |535| `pathToClaudeCodeExecutable` | `string` | 從隨附的原生二進位檔自動解析 | Claude Code 執行檔的路徑。僅在安裝時略過了選用相依套件,或您的平台不在支援清單中時才需要 |

536| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | 工作階段的權限模式。如果您省略它,且沒有其他項目設定權限模式(例如 [`permissions.defaultMode`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode) 設定),工作階段會以 `default` 啟動。請參閱[權限模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#permission-modes) |536| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | 工作階段的權限模式。若您省略此項且沒有其他項目設定權限模式(例如 [`permissions.defaultMode`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode) 設定),工作階段會以 `default` 啟動。請參閱[權限模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#permission-modes) |

537| `permissionPromptToolName` | `string` | `undefined` | 用於權限提示的 MCP 工具名稱 |537| `permissionPromptToolName` | `string` | `undefined` | 用於權限提示的 MCP 工具名稱 |

538| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 由誰回答權限提示:`'host'` 會將它們路由到您的 [`canUseTool`](#canusetool) 回呼或 `permissionPromptToolName` 工具,而 `'none'` 會[拒絕原本會觸發提示的呼叫](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。需要 Claude Code v2.1.259 或更新版本 |538| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 由誰回應權限提示:`'host'` 會將其路由到您的 [`canUseTool`](#canusetool) 回呼或 `permissionPromptToolName` 工具,而 `'none'` 會[拒絕原本會觸發提示的呼叫](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。需要 Claude Code v2.1.259 或更新版本 |

539| `persistSession` | `boolean` | `true` | 為 `false` 時,停用將工作階段持久化到磁碟。之後將無法繼續這些工作階段 |539| `persistSession` | `boolean` | `true` | 設為 `false` 時,停用將工作階段持久化到磁碟。之後無法恢復工作階段 |

540| `planModeInstructions` | `string` | `undefined` | plan mode 的自訂工作流程指令。當 `permissionMode` 為 `'plan'` 時,此字串會取代預設的 plan mode 工作流程主體。CLI 仍會以唯讀強制前言和 ExitPlanMode 協定結尾包裝它 |540| `planModeInstructions` | `string` | `undefined` | plan mode 的自訂工作流程指令。當 `permissionMode` 為 `'plan'` 時,此字串會取代預設的 plan mode 工作流程主體。CLI 仍會以唯讀強制前言和 ExitPlanMode 協定結尾將其包覆 |

541| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 從本機路徑載入自訂外掛。詳情請參閱[外掛](https://code.claude.com/docs/zh-TW/agent-sdk/plugins.md) |541| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 從本機路徑載入自訂外掛。詳情請參閱[外掛](https://code.claude.com/docs/zh-TW/agent-sdk/plugins.md) |

542| `projectConfigRoot` | `string` | `undefined` | 受信任 checkout 的絕對路徑,`cwd` 是它的 worktree。Claude Code 會從此目錄而不是 `cwd` 讀取專案設定、`.mcp.json`,以及專案 `.claude/` 中的命令、agent、skill、工作流程、routine 和輸出風格,並將 `CLAUDE_PROJECT_DIR` 設為此目錄。hook、輔助指令碼(例如 `apiKeyHelper`)以及 stdio MCP 伺服器會以此目錄作為工作目錄啟動。`CLAUDE.md` 檔案和 `.claude/rules/` 仍從 `cwd` 載入。需要 Claude Code v2.1.275 或更新版本 |542| `projectConfigRoot` | `string` | `undefined` | `cwd` 作為其 worktree 的受信任 checkout 的絕對路徑。Claude Code 會從此目錄而非 `cwd` 讀取專案設定、`.mcp.json`,以及專案 `.claude/` 中的命令、agent、skill、工作流程、routine 和輸出風格,並將 `CLAUDE_PROJECT_DIR` 設為此目錄。hook、`apiKeyHelper` 等輔助指令碼,以及 stdio MCP 伺服器都會以此目錄作為工作目錄啟動。`CLAUDE.md` 檔案和 `.claude/rules/` 仍從 `cwd` 載入。需要 Claude Code v2.1.275 或更新版本 |

543| `promptSuggestions` | `boolean` | `false` | 啟用提示詞建議。在一個回合之後,Claude Code 會發出 `prompt_suggestion` 訊息,其中包含預測的下一個使用者提示詞。Claude Code 在某些回合不會產生建議,例如當您的帳戶接近或已達到用量上限時。請參閱 [Claude Code 何時略過建議](https://code.claude.com/docs/zh-TW/interactive-mode.md#when-claude-code-skips-suggestions) |543| `promptSuggestions` | `boolean` | `false` | 啟用提示詞建議。每個回合結束後,Claude Code 會發出一則 `prompt_suggestion` 訊息,其中帶有預測的下一個使用者提示詞。某些回合 Claude Code 不會產生建議,例如當您的帳戶接近或已達用量上限時。請參閱[Claude Code 何時略過建議](https://code.claude.com/docs/zh-TW/interactive-mode.md#when-claude-code-skips-suggestions) |

544| `resume` | `string` | `undefined` | 要繼續的工作階段 ID |544| `resume` | `string` | `undefined` | 要恢復的工作階段 ID |

545| `resumeDropsTurn` | `string` | `undefined` | 搭配 `resumeSessionAt` 使用:截斷式繼續打算捨棄之回合的提示詞 UUID。當捨棄的範圍包含任何無法歸屬於該回合的內容(例如被吸收的佇列訊息或任務通知)時,Claude Code 會拒絕繼續,並在拒絕訊息中指出 `--resume-drops-turn` 旗標。只有 Agent SDK 和 print 模式的繼續會讀取這一組值。需要 Claude Code v2.1.223 或更新版本 |545| `resumeDropsTurn` | `string` | `undefined` | 搭配 `resumeSessionAt`:截斷式恢復打算捨棄之回合的提示詞 UUID。當捨棄範圍內含有任何無法歸屬於該回合的內容(例如被吸收的佇列訊息或任務通知)時,Claude Code 會拒絕恢復,並在拒絕訊息中指出 `--resume-drops-turn` 旗標。只有 Agent SDK 和 print 模式的恢復會讀取這組設定。需要 Claude Code v2.1.223 或更新版本 |

546| `resumeSessionAt` | `string` | `undefined` | 在特定訊息 UUID 處繼續工作階段 |546| `resumeSessionAt` | `string` | `undefined` | 在特定訊息 UUID 處恢復工作階段 |

547| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | 以程式方式設定沙箱行為。詳情請參閱[沙箱設定](#sandboxsettings) |547| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | 以程式方式設定沙箱行為。詳情請參閱[沙箱設定](#sandboxsettings) |

548| `sessionId` | `string` | 自動產生 | 為工作階段使用特定的 UUID,而不是自動產生 |548| `sessionId` | `string` | 自動產生 | 為工作階段使用特定的 UUID,而不是自動產生 |

549| `sessionStore` | [`SessionStore`](https://code.claude.com/docs/zh-TW/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 將工作階段逐字稿鏡像到外部後端,讓另一台主機可以繼續這些工作階段。請參閱[將工作階段持久化到外部儲存空間](https://code.claude.com/docs/zh-TW/agent-sdk/session-storage.md) |549| `sessionStore` | [`SessionStore`](https://code.claude.com/docs/zh-TW/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 將工作階段逐字稿鏡像到外部後端,讓其他主機可以恢復它們。請參閱[將工作階段持久化到外部儲存空間](https://code.claude.com/docs/zh-TW/agent-sdk/session-storage.md) |

550| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* `sessionStore` 的清除模式。未設定 `sessionStore` 時會忽略 |550| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha。* `sessionStore` 的排清模式。未設定 `sessionStore` 時會忽略 |

551| `settings` | `string \| Settings` | `undefined` | 內嵌的[設定](https://code.claude.com/docs/zh-TW/settings.md)物件、設定檔路徑或內嵌 JSON 字串。填入[優先順序](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)中的旗標設定層。可在執行時使用 [`applyFlagSettings()`](#applyflagsettings) 變更 |551| `settings` | `string \| Settings` | `undefined` | 內嵌的[設定](https://code.claude.com/docs/zh-TW/settings.md)物件、設定檔路徑或內嵌 JSON 字串。填入[優先順序](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)中的旗標設定層。可在執行時期以 [`applyFlagSettings()`](#applyflagsettings) 變更 |

552| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 預設值(所有來源) | 控制要載入哪些檔案系統設定。傳遞 `[]` 以停用使用者、專案和本機設定。[端點受管政策](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)無論如何都會載入;當工作階段在[符合資格的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)上以組織憑證進行驗證時,會擷取伺服器受管設定。請參閱[使用 Claude Code 功能](https://code.claude.com/docs/zh-TW/agent-sdk/claude-code-features.md#what-settingsources-does-not-control) |552| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 預設值(所有來源) | 控制要載入哪些檔案系統設定。傳入 `[]` 可停用使用者、專案和本機設定。[端點受管政策](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)無論如何都會載入;當工作階段在[符合資格的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)上以組織憑證驗證時,會擷取伺服器受管設定。請參閱[使用 Claude Code 功能](https://code.claude.com/docs/zh-TW/agent-sdk/claude-code-features.md#what-settingsources-does-not-control) |

553| `skills` | `string[] \| 'all'` | `undefined` | 工作階段可用的 skill。傳遞 `'all'` 以啟用每個探索到的 skill,或傳遞 skill 名稱清單。只能傳遞確切名稱。在 Agent SDK v0.3.221 或更新版本上,SDK 會在啟動 Claude Code 程序之前,以錯誤拒絕格式錯誤和萬用字元形式的名稱。設定後,SDK 會自動將 Skill 工具加入 `allowedTools`。如果您也傳遞了 `tools`,請在該清單中包含 `'Skill'`。請參閱 [Skills](https://code.claude.com/docs/zh-TW/agent-sdk/skills.md) |553| `skills` | `string[] \| 'all'` | `undefined` | 工作階段可用的 skill。傳入 `'all'` 以啟用所有探索到的 skill,或傳入 skill 名稱清單。僅傳入確切名稱。在 Agent SDK v0.3.221 或更新版本中,SDK 會在啟動 Claude Code 程序之前以錯誤拒絕格式錯誤和萬用字元形式的名稱。設定此項時,SDK 會自動將 Skill 工具加入 `allowedTools`。若您同時傳入 `tools`,請在該清單中包含 `'Skill'`。請參閱 [Skills](https://code.claude.com/docs/zh-TW/agent-sdk/skills.md) |

554| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | 用於產生 Claude Code 程序的自訂函式。用於在 VM、容器或遠端環境中執行 Claude Code |554| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | 用於產生 Claude Code 程序的自訂函式。用於在 VM、容器或遠端環境中執行 Claude Code |

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

556| `strictMcpConfig` | `boolean` | `false` | 只使用在 `mcpServers` 中傳遞的伺服器,並忽略專案 `.mcp.json`、使用者設定、外掛提供的 MCP 伺服器,以及 [claude.ai 連接器](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-servers-from-claude-ai) |556| `strictMcpConfig` | `boolean` | `false` | 僅使用 `mcpServers` 中傳入的伺服器,並忽略專案 `.mcp.json`、使用者設定、外掛提供的 MCP 伺服器以及 [claude.ai 連接器](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-servers-from-claude-ai) |

557| `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` 常數,以[快取自訂提示詞的靜態部分](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#cache-the-static-part-of-a-custom-prompt)。使用 preset 物件形式時,加入 `append` 以額外的指令擴充它,並設定 `excludeDynamicSections: true` 將每個工作階段的上下文移至第一則使用者訊息,以[在不同機器間更好地重複使用提示快取](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines)。設定 `snapshot: false` 以在每次請求時重建提示詞,而不是[重複使用工作階段在第一次請求時記錄的提示詞](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session)。若要在自訂提示詞上設定 `snapshot`,請傳遞 `{ type: 'custom', prompt }` 形式。`{ type: 'custom' }` 形式和 `snapshot` 欄位需要 TypeScript Agent SDK v0.3.257 或更新版本 |557| `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` 常數,即可[快取自訂提示詞的靜態部分](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#cache-the-static-part-of-a-custom-prompt)。使用預設物件形式時,加入 `append` 以附加額外指令,並設定 `excludeDynamicSections: true` 將每個工作階段的上下文移至第一則使用者訊息,以[在不同機器間更好地重複使用提示詞快取](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines)。設定 `snapshot: false` 可在每次請求時重新建構提示詞,而不是[重複使用工作階段在第一次請求時記錄的提示詞](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session)。若要在自訂提示詞上設定 `snapshot`,請傳入 `{ type: 'custom', prompt }` 形式。`{ type: 'custom' }` 形式和 `snapshot` 欄位需要 TypeScript Agent SDK v0.3.257 或更新版本 |

558| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* 以 token 計算的 API 端任務預算。設定後,模型會被告知其剩餘的 token 預算,以便調整工具使用的步調並在達到上限前收尾 |558| `taskBudget` | `{ total: number }` | `undefined` | *Alpha。* API 端的任務預算(以 token 計)。設定後,模型會被告知其剩餘的 token 預算,以便調整工具使用節奏並在達到上限前收尾 |

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

560| `title` | `string` | `undefined` | 工作階段的顯示標題。透過 `resume` 或 `continue` 繼續時,被繼續工作階段已持久化的標題優先;使用 [`renameSession()`](#renamesession) 重新命名現有的工作階段 |560| `title` | `string` | `undefined` | 工作階段的顯示標題。透過 `resume` 或 `continue` 恢復時,已恢復工作階段所持久化的標題優先;請使用 [`renameSession()`](#renamesession) 重新命名現有工作階段 |

561| `toolAliases` | `Record<string, string>` | `undefined` | 將內建工具名稱對應到 MCP 工具名稱,讓 Claude 呼叫您的 MCP 實作來取代內建工具。例如 `{ Bash: 'mcp__workspace__bash' }` |561| `toolAliases` | `Record<string, string>` | `undefined` | 將內建工具名稱對應到 MCP 工具名稱,讓 Claude 呼叫您的 MCP 實作來取代內建工具。例如 `{ Bash: 'mcp__workspace__bash' }` |

562| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 內建工具行為的設定。詳情請參閱 [`ToolConfig`](#toolconfig) |562| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 內建工具行為的設定。詳情請參閱 [`ToolConfig`](#toolconfig) |

563| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | 工具設定。傳遞工具名稱陣列,或使用 preset 以取得 Claude Code 的預設工具 |563| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | 工具設定。傳入工具名稱陣列,或使用預設集以取得 Claude Code 的預設工具 |

564| `verbatimPrompts` | `boolean` | `false` | 依原樣傳遞每個提示詞。SDK 會以 `client_composed: true` 傳送每則使用者訊息。關於 Claude Code 在這些訊息上略過的內容,請參閱 [`client_composed`](#sdkusermessage)。當您的提示詞文字包含終端使用者未輸入的內容時,請使用此選項。若要針對每個回合進行控制,請保持此選項關閉,並改為在個別串流訊息上設定 `client_composed`。需要 TypeScript Agent SDK v0.3.280 或更新版本以及 Claude Code v2.1.248 或更新版本;這些 SDK 版本所隨附的 Claude Code 版本即可滿足 Claude Code 的需求 |564| `verbatimPrompts` | `boolean` | `false` | 依原樣傳遞每個提示詞。SDK 會以 `client_composed: true` 傳送每則使用者訊息。關於 Claude Code 在這些訊息上會略過哪些處理,請參閱 [`client_composed`](#sdkusermessage)。當您的提示詞文字包含非終端使用者輸入的內容時,請使用此選項。若要逐回合控制,請保持關閉,並改為在個別串流訊息上設定 `client_composed`。需要 TypeScript Agent SDK v0.3.280 或更新版本以及 Claude Code v2.1.248 或更新版本;這些 SDK 版本隨附的 Claude Code 版本即符合 Claude Code 的需求 |

565 565 

566#### 處理緩慢或停滯的 API 回應566#### 處理緩慢或停滯的 API 回應

567 567 

568CLI 子程序會讀取數個控制 API 逾時和停滯偵測的環境變數。請透過 `env` 選項傳遞它們:568CLI 子程序會讀取數個控制 API 逾時和停滯偵測的環境變數。請透過 `env` 選項傳入它們:

569 569 

570```typescript theme={null}570```typescript theme={null}

571import { query } from "@anthropic-ai/claude-agent-sdk";571import { query } from "@anthropic-ai/claude-agent-sdk";


583});583});

584```584```

585 585 

586* [`API_TIMEOUT_MS`](https://code.claude.com/docs/zh-TW/env-vars):每次請求嘗試可等待回應標頭的時間(毫秒)。它不會限制標頭抵達後串流回應的執行時間。預設值為 `600000`。適用於主迴圈和所有 subagent。586* [`API_TIMEOUT_MS`](https://code.claude.com/docs/zh-TW/env-vars):每次請求嘗試可等待回應標頭的時間(毫秒)。它不會限制標頭抵達後串流回應的執行時間。預設為 `600000`。適用於主迴圈和所有 subagent。

587* `CLAUDE_CODE_MAX_RETRIES`:API 重試的最大次數。預設為 `10`,上限為 `15`。每次重試都有自己的 `API_TIMEOUT_MS` 時間範圍。587* `CLAUDE_CODE_MAX_RETRIES`:API 重試的最大次數。預設為 `10`,上限為 `15`。每次重試都有自己的 `API_TIMEOUT_MS` 時間窗。

588 588 

589 對於需要等待較長中斷期間的無人值守執行,請設定 [`CLAUDE_CODE_RETRY_WATCHDOG=1`](https://code.claude.com/docs/zh-TW/errors#tune-retry-behavior):它會無限期重試暫時性的容量錯誤,並且在 Claude Code v2.1.199 或更新版本上,會將其他暫時性錯誤的預設值提高到 `300`,並移除此變數的上限。589 對於需要撐過較長中斷時間的無人值守執行,請設定 [`CLAUDE_CODE_RETRY_WATCHDOG=1`](https://code.claude.com/docs/zh-TW/errors#tune-retry-behavior):它會無限次重試暫時性的容量錯誤,且在 Claude Code v2.1.199 或更新版本中,會將其他暫時性錯誤的預設值提高到 `300`,並移除此變數的上限。

590* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:subagent 的停滯監控器。當串流監控器開啟時,預設值為 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 加上 5 分鐘,除非您提高該變數,否則為 `600000`。串流監控器關閉時,預設值為 `600000`。在 v2.1.257 之前,預設值一律為 `600000`。590* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:subagent 的停滯監視器。當串流監視器開啟時,預設值為 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 加 5 分鐘,除非您提高該變數,否則為 `600000`。串流監視器關閉時,預設值為 `600000`。在 v2.1.257 之前,預設值一律為 `600000`。

591 591 

592 每次串流事件發生時計時器都會重設。發生停滯時,Claude Code 會中止該 subagent 並向父層回報停滯。對於背景 subagent,它也會將任務標記為失敗並附上任何部分結果。592 計時器會在每個串流事件時重設。發生停滯時,Claude Code 會中止該 subagent 並向上層回報停滯。對於背景 subagent,它也會將任務標記為失敗並附上任何部分結果。

593* `CLAUDE_ENABLE_STREAM_WATCHDOG` 搭配 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:串流監控器,會在標頭已送達但回應主體停止串流時中止請求。此監控器對所有供應商預設為開啟;設定 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 可停用。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 預設為 `300000`,且最小值被限制為該值。中止之後,Claude Code 會依據回應已進行的程度採取的行動,請參閱[自動重試](https://code.claude.com/docs/zh-TW/errors.md#automatic-retries)。593* `CLAUDE_ENABLE_STREAM_WATCHDOG` 搭配 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:串流監視器,當標頭已抵達但回應主體停止串流時中止請求。此監視器對所有供應商預設開啟;設定 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 可將其停用。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 預設為 `300000`,且最小值會被限制為該值。中止後,Claude Code 會依據回應進行到的程度採取行動,詳見[自動重試](https://code.claude.com/docs/zh-TW/errors.md#automatic-retries)。

594 594 

595 當監控器在等待一個由 `ANTHROPIC_BASE_URL` 背後的閘道以 keep-alive ping 保持開啟的回應時,設定了 `includePartialMessages` 的主機會持續收到 `ping` [串流事件](#sdkpartialassistantmessage),因此請將這些框架視為存活訊號,而不是因為沉默而讓工作階段逾時。在 v2.1.257 之前,這些框架會在最後一個實際串流事件的 5 分鐘後停止。595 當監視器在等待一個由 `ANTHROPIC_BASE_URL` 後方的閘道以 keep-alive ping 保持開啟的回應時,設定了 `includePartialMessages` 的主機會持續收到 `ping` [串流事件](#sdkpartialassistantmessage),因此請將這些訊框視為存活訊號,而不要因靜默而讓工作階段逾時。在 v2.1.257 之前,這些訊框會在最後一個實際串流事件之後 5 分鐘停止。

596 596 

597### `Query` 物件597### `Query` 物件

598 598 

599`query()` 函式回傳的介面。599`query()` 函式傳回的介面。

600 600 

601```typescript theme={null}601```typescript theme={null}

602interface Query extends AsyncGenerator<SDKMessage, void> {602interface Query extends AsyncGenerator<SDKMessage, void> {


657 657 

658| 方法 | 說明 |658| 方法 | 說明 |

659| :- | :- |659| :- | :- |

660| `interrupt()` | 中斷查詢。僅在串流輸入模式下可用。當 CLI 在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中宣告 `interrupt_receipt_v1` 功能時,會以 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 解析,其中列出中斷到達時尚待處理的訊息。在 v2.1.205 之前的 CLI 上會解析為 `undefined` |660| `interrupt()` | 中斷查詢。僅在串流輸入模式下可用。當 CLI 在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中宣告 `interrupt_receipt_v1` 功能時,會以 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 解析,其中列出中斷抵達時仍待處理的訊息。在 v2.1.205 之前的 CLI 上會解析為 `undefined` |

661| `rewindFiles(userMessageId, options?)` | 將檔案還原到指定使用者訊息時的狀態。傳遞 `{ dryRun: true }` 以預覽變更。需要 `enableFileCheckpointing: true`。請參閱[檔案檢查點功能](https://code.claude.com/docs/zh-TW/agent-sdk/file-checkpointing.md) |661| `rewindFiles(userMessageId, options?)` | 將檔案還原到指定使用者訊息當時的狀態。傳入 `{ dryRun: true }` 以預覽變更。需要 `enableFileCheckpointing: true`。請參閱[檔案檢查點功能](https://code.claude.com/docs/zh-TW/agent-sdk/file-checkpointing.md) |

662| `setPermissionMode()` | 變更權限模式(僅在串流輸入模式下可用) |662| `setPermissionMode()` | 變更權限模式(僅在串流輸入模式下可用) |

663| `setModel()` | 變更模型(僅在串流輸入模式下可用)。傳入 `undefined` 或字串 `"default"` 會重設為 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md)。若新模型不支援自動模式,處於 `auto` 模式的工作階段會[變更為 `default` 模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions#auto-mode-auto) |663| `setModel()` | 變更模型(僅在串流輸入模式下可用)。傳入 `undefined` 或字串 `"default"` 會重設為 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md)。若新模型不支援自動模式,處於 `auto` 模式的工作階段會[變更為 `default` 模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions#auto-mode-auto) |

664| `setMaxThinkingTokens()` | *已棄用:* 請改用 `thinking` 選項。變更最大思考 token 數。傳遞 `null` 會將思考重設為工作階段預設值:工作階段中途的覆寫會被清除,而已停用思考的工作階段會維持關閉 |664| `setMaxThinkingTokens()` | *已淘汰:* 請改用 `thinking` 選項。變更最大思考 token 數。傳入 `null` 會將思考重設為工作階段預設值:清除工作階段中途的覆寫,且對於已停用思考的工作階段,思考仍保持關閉 |

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

666| `updateSettings(source, settings)` | 將一個允許清單中的鍵寫入專案的本機設定檔或您的使用者設定檔,讓該值在之後的工作階段中保留。請參閱 [`updateSettings()`](#updatesettings)。需要 TypeScript SDK v0.3.257 或更新版本,其隨附 Claude Code v2.1.257 |666| `updateSettings(source, settings)` | 將一個允許清單中的鍵寫入專案的本機設定檔或您的使用者設定檔,讓該值在之後的工作階段中持續生效。請參閱 [`updateSettings()`](#updatesettings)。需要 TypeScript SDK v0.3.257 或更新版本,其隨附 Claude Code v2.1.257 |

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

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

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

670| `supportedModels()` | 回傳可用的模型及其顯示資訊 |670| `supportedModels()` | 傳回可用的模型及顯示資訊 |

671| `supportedAgents()` | 以 [`AgentInfo`](#agentinfo)`[]` 回傳可用的 subagent |671| `supportedAgents()` | 以 [`AgentInfo`](#agentinfo)`[]` 傳回可用的 subagent |

672| `mcpServerStatus()` | 以 [`McpServerStatus`](#mcpserverstatus)`[]` 回傳已連線 MCP 伺服器的狀態 |672| `mcpServerStatus()` | 以 [`McpServerStatus`](#mcpserverstatus)`[]` 傳回已連線 MCP 伺服器的狀態 |

673| `getContextUsage(opts?)` | 回傳 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),依類別、skill 與工具細分工作階段的上下文視窗用量。使用預設的 `detail` 時,它包含 `/context` 在互動式工作階段中顯示的資料,並透過不會出現在訊息串流中的 token 計數 API 請求計算;請參閱[這些請求的處理方式](#sdkcontrolgetcontextusageresponse)。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |673| `getContextUsage(opts?)` | 傳回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),依類別、skill 和工具細分工作階段的上下文視窗用量。使用預設的 `detail` 時,它包含 `/context` 在互動式工作階段中顯示的資料,這些資料是透過不會出現在訊息串流中的 token 計數 API 請求計算而得;請參閱[這些請求的處理方式](#sdkcontrolgetcontextusageresponse)。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |

674| `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 或更新版本 |674| `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 或更新版本 |

675| `reloadPlugins(options?)` | 從磁碟重新載入外掛,讓您在工作階段中途安裝或編輯的外掛能套用至執行中的工作階段。會解析為 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse),列出工作階段的命令、subagent、外掛與 MCP 伺服器狀態。需要 Agent SDK v0.2.85 或更新版本。[`holdOnCacheImpact` 選項](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更新版本。[`addPlugins` 選項](#load-more-plugin-folders-with-addplugins)需要 Agent SDK v0.3.301 或更新版本 |675| `reloadPlugins(options?)` | 從磁碟重新載入外掛,讓您在工作階段中途安裝或編輯的外掛能套用到執行中的工作階段。會以 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) 解析,其中列出工作階段的命令、subagent、外掛和 MCP 伺服器狀態。需要 Agent SDK v0.2.85 或更新版本。[`holdOnCacheImpact` 選項](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更新版本。[`addPlugins` 選項](#load-more-plugin-folders-with-addplugins)需要 Agent SDK v0.3.301 或更新版本 |

676| `reloadSkills()` | 從磁碟重新載入 skill,讓您在工作階段中途新增或編輯的 skill 可供正在執行的工作階段使用。會以 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 解析,其中列出重新載入後可用的 skill。需要 Agent SDK v0.3.163 或更新版本 |676| `reloadSkills()` | 從磁碟重新載入 skill,讓您在工作階段中途新增或編輯的 skill 可供執行中的工作階段使用。會以 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 解析,其中列出重新載入後可用的 skill。需要 Agent SDK v0.3.163 或更新版本 |

677| `reloadOutputStyles()` | 從磁碟重新讀取[輸出風格](https://code.claude.com/docs/zh-TW/output-styles.md),讓您在工作階段中途新增或編輯的風格檔案可供正在執行的工作階段使用。會以 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 解析,其中列出重新載入後可用的風格名稱。需要 Agent SDK v0.3.261 或更新版本 |677| `reloadOutputStyles()` | 從磁碟重新讀取[輸出風格](https://code.claude.com/docs/zh-TW/output-styles.md),讓您在工作階段中途新增或編輯的風格檔案可供執行中的工作階段使用。會以 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 解析,其中列出重新載入後可用的風格名稱。需要 Agent SDK v0.3.261 或更新版本 |

678| `seedReadState(path, mtime)` | 將檔案標記為已讀取,讓之後的 Edit 不會因 `File has not been read yet` 而失敗。請參閱 [`seedReadState()`](#seedreadstate)。需要 TypeScript SDK v0.2.83 或更新版本 |678| `seedReadState(path, mtime)` | 將檔案標記為已讀取,讓之後的 Edit 不會因 `File has not been read yet` 而失敗。請參閱 [`seedReadState()`](#seedreadstate)。需要 TypeScript SDK v0.2.83 或更新版本 |

679| `accountInfo()` | 回傳帳戶資訊 |679| `accountInfo()` | 傳回帳戶資訊 |

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

681| `toggleMcpServer(serverName, enabled)` | 依名稱啟用或停用 MCP 伺服器,名稱解析方式與 `reconnectMcpServer()` 相同。停用伺服器會中斷其連線並移除其工具。各類伺服器所需的 Claude Code 版本請參閱 [`toggleMcpServer()`](#togglemcpserver) |681| `toggleMcpServer(serverName, enabled)` | 依名稱啟用或停用 MCP 伺服器,名稱解析方式與 `reconnectMcpServer()` 相同。停用伺服器會中斷其連線並移除其工具。關於每種伺服器所需的 Claude Code 版本,請參閱 [`toggleMcpServer()`](#togglemcpserver) |

682| `setMcpServers(servers)` | 取代此方法所管理的 MCP 伺服器:透過此方法新增的伺服器以及[處理程序內 SDK 伺服器](#createsdkmcpserver)。會以 [`McpSetServersResult`](#mcpsetserversresult) 解析,其中指出新增和移除了哪些伺服器以及任何錯誤;該章節也說明了哪些其他伺服器會保持連線 |682| `setMcpServers(servers)` | 取代此方法所管理的 MCP 伺服器:透過此方法新增的伺服器以及[同程序 SDK 伺服器](#createsdkmcpserver)。會以 [`McpSetServersResult`](#mcpsetserversresult) 解析,其中指出新增和移除了哪些伺服器以及任何錯誤;該章節也說明了哪些其他伺服器會保持連線 |

683| `setMcpPermissionModeOverride(serverName, mode)` | 以比工作階段更嚴格的模式覆寫單一 MCP 伺服器工具的權限模式,或以 `null` 清除覆寫。僅在串流輸入模式中可用。請參閱 [`setMcpPermissionModeOverride()`](#setmcppermissionmodeoverride)。需要 TypeScript SDK v0.3.187 或更新版本 |683| `setMcpPermissionModeOverride(serverName, mode)` | 以比工作階段更嚴格的模式覆寫單一 MCP 伺服器工具的權限模式,或以 `null` 清除覆寫。僅在串流輸入模式下可用。請參閱 [`setMcpPermissionModeOverride()`](#setmcppermissionmodeoverride)。需要 TypeScript SDK v0.3.187 或更新版本 |

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

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

686| `stopTask(taskId)` | 依 ID 停止正在執行的背景任務 |686| `stopTask(taskId)` | 依 ID 停止執行中的背景任務 |

687| `backgroundTasks(toolUseId?)` | 將該回合正在等待的執行中 Bash 命令和 subagent 移至背景,與在互動式終端機中按下 Ctrl+B 相同。請參閱 [`backgroundTasks()`](#backgroundtasks)。需要 TypeScript SDK v0.2.139 或更新版本 |687| `backgroundTasks(toolUseId?)` | 將該回合正在等待的執行中 Bash 命令和 subagent 移至背景,效果等同於在互動式終端機中按下 Ctrl+B。請參閱 [`backgroundTasks()`](#backgroundtasks)。需要 TypeScript SDK v0.2.139 或更新版本 |

688| `close()` | 關閉查詢並終止底層程序。強制結束查詢並清理所有資源 |688| `close()` | 關閉查詢並終止底層程序。強制結束查詢並清理所有資源 |

689 689 

690#### `setMcpPermissionModeOverride()`690#### `setMcpPermissionModeOverride()`

691 691 

692以比工作階段更嚴格的模式覆寫單一 MCP 伺服器工具的權限模式,或以 `null` 清除覆寫。當工作階段以略過逐項動作提示的模式執行,但某個伺服器的工具仍應受到審查時,請使用此方法。需要 TypeScript SDK v0.3.187 或更新版本。692以比工作階段更嚴格的模式覆寫單一 MCP 伺服器工具的權限模式,或以 `null` 清除覆寫。當工作階段以略過逐項動作提示的模式執行,但某個伺服器的工具仍應受到審查時,請使用此方法。需要 TypeScript SDK v0.3.187 或更新版本。

693 693 

694傳遞下列三個值之一作為 `mode`:694傳入以下三個值之一作為 `mode`:

695 695 

696* `'default'`:Claude Code 會以[手動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#available-modes)的方式評估該伺服器的工具呼叫。696* `'default'`:Claude Code 會以與 [Manual 模式](https://code.claude.com/docs/zh-TW/permission-modes.md#available-modes)相同的方式評估該伺服器的工具呼叫。

697* `'auto'`:Claude Code 會將該伺服器的工具呼叫交由[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器處理。當工作階段無法使用分類器時,Claude Code 會拒絕此值。697* `'auto'`:Claude Code 會將該伺服器的工具呼叫交由[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器處理。當分類器對工作階段不可用時,Claude Code 會拒絕此值。

698* `null`:清除覆寫。698* `null`:清除覆寫。

699 699 

700覆寫僅在工作階段處於略過逐項動作提示的模式時生效:`bypassPermissions` 或 `auto`。在任何其他工作階段模式中,Claude Code 會忽略覆寫,因此它永遠不會放寬工作階段允許的範圍。700覆寫僅在工作階段處於略過逐項動作提示的模式(`bypassPermissions` 或 `auto`)時生效。在任何其他工作階段模式下,Claude Code 會忽略此覆寫,因此它永遠不會放寬工作階段允許的範圍。

701 701 

702當尚無該名稱的已知伺服器時,promise 會以 `{ warning }` 解析。Claude Code 仍會儲存覆寫,並在具有完全相同名稱的伺服器連線後套用,因此此警告是用於檢查拼字錯誤,而不是失敗。702當尚不知道該名稱的伺服器時,promise 會以 `{ warning }` 解析。Claude Code 仍會儲存此覆寫,並在具有完全相同名稱的伺服器連線後套用,因此此警告是用於檢查拼字錯誤,而非表示失敗。

703 703 

704僅在串流輸入模式中可用,與 `setModel()` 和 `setPermissionMode()` 的限制相同。704僅在串流輸入模式下可用,限制與 `setModel()` 和 `setPermissionMode()` 相同。

705 705 

706#### `seedReadState()`706#### `seedReadState()`

707 707 

708將檔案標記為已讀取,讓之後的 Edit 不會因 `File has not been read yet` 而失敗。當您的應用程式已從對話上下文中捨棄先前的 `Read` 結果,而 Claude 接下來要編輯該檔案時,請使用此方法。需要 TypeScript SDK v0.2.83 或更新版本。708將檔案標記為已讀取,讓之後的 Edit 不會因 `File has not been read yet` 而失敗。當您的應用程式已從對話上下文中移除先前的 `Read` 結果,而 Claude 接下來將編輯該檔案時,請使用此方法。需要 TypeScript SDK v0.2.83 或更新版本。

709 709 

710將 `mtime` 傳遞為先前讀取當下該檔案的修改時間,以自 epoch 起算的整數毫秒表示,例如 `Math.floor(stat.mtimeMs)`。如果磁碟上的檔案在該時間之後有所變更,Claude Code 會略過標記。710將 `mtime` 傳入為先前讀取當下該檔案的修改時間,以自 epoch 起的整數毫秒表示,例如 `Math.floor(stat.mtimeMs)`。若磁碟上的檔案在該時間之後有所變更,Claude Code 會略過此標記。

711 711 

712無論檔案是否被標記,promise 都會解析,因此解析的 promise 無法告訴您實際發生了哪一種情況。712無論檔案是否被標記,promise 都會解析,因此解析的 promise 無法告訴您實際發生了哪一種情況。

713 713 

714#### `backgroundTasks()`714#### `backgroundTasks()`

715 715 

716將該回合正在等待的執行中 Bash 命令和 subagent 移至背景,與在互動式終端機中按下 Ctrl+B 相同。傳遞某個工具呼叫的 `toolUseId`,可只將該呼叫啟動的 Bash 命令或 subagent 移至背景;省略則會將所有前景任務移至背景。需要 TypeScript SDK v0.2.139 或更新版本。716將該回合正在等待的執行中 Bash 命令和 subagent 移至背景,效果等同於在互動式終端機中按下 Ctrl+B。傳入某個工具呼叫的 `toolUseId`,即可只將該呼叫所啟動的 Bash 命令或 subagent 移至背景;或省略它以將所有前景任務移至背景。需要 TypeScript SDK v0.2.139 或更新版本。

717 717 

718每個移至背景的工具呼叫都會立即以「正在背景執行」的結果傳回給 Claude,回合會繼續進行,而 Claude Code 會在任務完成時發出 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage)。718每個被移至背景的工具呼叫會立即以「正在背景執行」的結果返回給 Claude,回合會繼續進行,並在任務完成時由 Claude Code 發出 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage)。

719 719 

720在已啟用背景任務的工作階段中,promise 會解析為布林值:720在已啟用背景任務的工作階段中,promise 會解析為布林值:

721 721 

722* **`true`**:有任務被移至背景,或您省略了 `toolUseId`。722* **`true`**:已有任務被移至背景,或您省略了 `toolUseId`。

723* **`false`**:您傳遞的 `toolUseId` 沒有符合任何前景任務。723* **`false`**:您傳入的 `toolUseId` 沒有符合任何前景任務。

724 724 

725如果工作階段已停用背景任務,例如透過 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars),promise 會改為拒絕,且不會有任何任務被移至背景。725若工作階段已停用背景任務(例如透過 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars)),promise 則會被拒絕,且不會有任何任務被移至背景。

726 726 

727#### `applyFlagSettings()`727#### `applyFlagSettings()`

728 728 

729在不重新啟動查詢的情況下變更正在執行之工作階段的[設定](https://code.claude.com/docs/zh-TW/settings.md)。當某個沒有專用 setter 的設定需要在工作階段中途變更時使用,例如在 agent 讀取不受信任的輸入後收緊 `permissions`。`setModel()` 和 `setPermissionMode()` 是這兩個鍵的專用 setter;`applyFlagSettings()` 則是接受任何設定鍵子集的通用形式,在此傳遞 `model` 的行為與 `setModel()` 相同。729在不重新啟動查詢的情況下變更執行中工作階段的[設定](https://code.claude.com/docs/zh-TW/settings.md)。當沒有專用 setter 的設定需要在工作階段中途變更時使用,例如在 agent 讀取不受信任的輸入後收緊 `permissions`。`setModel()` 和 `setPermissionMode()` 是這兩個鍵的專用 setter;`applyFlagSettings()` 則是接受任意設定鍵子集的通用形式,在此傳入 `model` 的行為與 `setModel()` 相同。

730 730 

731只有部分鍵會在工作階段中途生效:731只有部分鍵會在工作階段中途生效:

732 732 

733* **在下一個回合套用**:`effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。切換 `agent` 也會在下一個回合套用該 agent 的模型覆寫和 hook。其系統提示詞會在下一個回合套用,或者在[重複使用已記錄系統提示詞](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session)的工作階段中,於工作階段壓縮後套用。733* **在下一個回合套用**:`effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。切換 `agent` 也會在下一個回合套用該 agent 的模型覆寫和 hook。其系統提示詞會在下一個回合套用,或在[重複使用已記錄系統提示詞](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session)的工作階段中,於工作階段壓縮後套用。

734* **在目前回合期間套用**:`model`。如果您在 Claude 處理某個回合時切換 `model`,Claude 正在產生的回應會以舊模型完成,而該回合的其餘部分(從 Claude Code 對模型發出的下一次呼叫開始)會使用新模型。subagent 會保留它們自己的模型。在 v2.1.212 之前,回合中途的切換會等到下一個回合才生效。734* **在目前回合期間套用**:`model`。若您在 Claude 處理某個回合時切換 `model`,Claude 正在產生的回應會以舊模型完成,而該回合的其餘部分(從 Claude Code 對模型發出的下一次呼叫開始)會使用新模型。subagent 會保留自己的模型。在 v2.1.212 之前,回合中途的切換會等到下一個回合才生效。

735* **在工作階段中途無效**:系統提示詞選項。這些選項在啟動時解析一次,因此即使呼叫成功,正在執行的工作階段仍會保留原始值。若要變更它們,請啟動新的工作階段。735* **在工作階段中途無效**:系統提示詞選項。這些選項在啟動時只解析一次,因此即使呼叫成功,執行中的工作階段仍會保留原始值。若要變更它們,請啟動新的工作階段。

736 736 

737`effortLevel` 接受 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)名稱。它也接受 `"ultracode"`,這會要求 `xhigh` effort 並開啟 [ultracode](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode)。`applyFlagSettings()` 宣告的 `effortLevel` 不含該值,因此在 TypeScript 中請傳遞 `{ ultracode: true, effortLevel: "xhigh" }` 以得到相同結果,或只傳遞 [`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 鍵,以在工作階段目前的 effort 等級下開啟 ultracode。`ultracode` 值需要 Claude Code v2.1.203 或更新版本,且只有 `applyFlagSettings()` 接受,設定檔中的 `effortLevel` 鍵不接受。在 v2.1.284 之前,單獨使用 `ultracode` 鍵也會將等級設為 `xhigh`。737`effortLevel` 接受 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)名稱。它也接受 `"ultracode"`,這會在開啟 [ultracode](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode) 的情況下請求 `xhigh` effort。`applyFlagSettings()` 宣告 `effortLevel` 時未包含該值,因此在 TypeScript 中請傳入 `{ ultracode: true, effortLevel: "xhigh" }` 以獲得相同結果,或僅傳入 [`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 鍵,以在工作階段目前的 effort 等級下開啟 ultracode。`ultracode` 值需要 Claude Code v2.1.203 或更新版本,且只有 `applyFlagSettings()` 接受,設定檔中的 `effortLevel` 鍵不接受此值。在 v2.1.284 之前,單獨使用 `ultracode` 鍵也會將等級設為 `xhigh`。

738 738 

739這些值會寫入旗標設定層,並合併在 `query()` 的內嵌 `settings` 選項於啟動時所設定的內容之上。這與[本頁優先順序章節](#settings-precedence)所稱的程式化選項屬於同一層級。739這些值會寫入旗標設定層,並合併覆蓋在 `query()` 的內嵌 `settings` 選項於啟動時所設定的值之上。這與[本頁優先順序章節](#settings-precedence)所稱的程式化選項屬於同一層級。

740 740 

741連續呼叫會對頂層鍵進行淺層合併。第二次以 `{ permissions: {...} }` 呼叫時,會取代先前呼叫中的整個 `permissions` 物件,而不是深層合併到其中。741連續呼叫會對頂層鍵進行淺層合併。第二次以 `{ permissions: {...} }` 呼叫時,會取代前一次呼叫的整個 `permissions` 物件,而不是深層合併進去。

742 742 

743若要清除您以 `applyFlagSettings()` 設定的鍵,請為該鍵傳遞 `null`。大多數鍵接著會先退回 `query()` 的 `settings` 選項在啟動時設定的值,再退回優先順序較低的來源。清除後的 `model` 會重設為 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md),即使設定檔中設定了 `model` 也是如此。傳遞 `undefined` 沒有作用,因為 JSON 序列化會捨棄它。743若要清除您以 `applyFlagSettings()` 設定的鍵,請為該鍵傳入 `null`。大多數鍵接著會先退回到 `query()` 的 `settings` 選項於啟動時設定的值,再退回到優先順序較低的來源。清除的 `model` 會重設為 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md),即使設定檔中設定了 `model` 也是如此。傳入 `undefined` 沒有效果,因為 JSON 序列化會將其捨棄。

744 744 

745除了 `model` 之外,還有三個鍵會重設工作階段狀態,而不是退回其他來源:745除了 `model` 之外,還有三個鍵會重設工作階段狀態,而不是退回到其他值:

746 746 

747* `effortLevel: null` 會將工作階段恢復為模型的預設 effort 等級,而不是 `query()` 的 `effort` 選項或設定檔中的 `effortLevel`。747* `effortLevel: null` 會讓工作階段回到模型的預設 effort 等級,而不是 `query()` 的 `effort` 選項或設定檔中的 `effortLevel`。

748* `agent: null` 會從下一個回合開始以不使用任何 agent 的方式執行主執行緒,而不是恢復 `query()` 的 `agent` 選項或設定檔中的 `agent`。如果被清除的 agent 曾套用它自己的模型,工作階段會回到它在啟動時解析的模型。748* `agent: null` 會從下一個回合開始,讓主執行緒在沒有 agent 的情況下執行,而不是還原 `query()` 的 `agent` 選項或設定檔中的 `agent`。若被清除的 agent 曾套用自己的模型,工作階段會回到啟動時解析的模型。

749* `ultracode: null` 會關閉 ultracode(與 `false` 相同),而不是恢復設定檔中的 `ultracode` 值。工作階段會保留目前的 effort 等級,因此若要變更,請在同一次呼叫中傳遞 `effortLevel`。749* `ultracode: null` 會關閉 ultracode,效果與 `false` 相同,而不是還原設定檔中的 `ultracode` 值。工作階段會保留目前的 effort 等級,因此若要變更,請在同一次呼叫中傳入 `effortLevel`。

750 750 

751僅在串流輸入模式下可用,與 `setModel()` 和 `setPermissionMode()` 的限制相同。751僅在串流輸入模式下可用,限制與 `setModel()` 和 `setPermissionMode()` 相同。

752 752 

753以下範例在工作階段中途切換使用中的模型,然後清除覆寫,讓模型重設為 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md)。753以下範例在工作階段中途切換作用中的模型,然後清除覆寫,讓模型重設為 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md)。

754 754 

755```typescript theme={null}755```typescript theme={null}

756import { query } from "@anthropic-ai/claude-agent-sdk";756import { query } from "@anthropic-ai/claude-agent-sdk";


766 766 

767> [!NOTE]767> [!NOTE]

768>768>

769> `applyFlagSettings()` 僅限 TypeScript。Python SDK 沒有提供對應的方法。769> `applyFlagSettings()` 僅適用於 TypeScript。Python SDK 並未提供對等的方法。

770 770 

771#### `updateSettings()`771#### `updateSettings()`

772 772 

773將一個允許清單中的鍵寫入磁碟上的設定檔,讓該值在之後載入該來源的工作階段中保留。每個來源接受一個鍵,值為字串:773將一個允許清單中的鍵寫入磁碟上的設定檔,讓該值在之後載入該來源的工作階段中持續生效。每個來源接受一個鍵,其值為字串:

774 774 

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

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

777 777 

778當請求帶有任何其他鍵、工作階段透過遠端傳輸執行,或工作階段的 [`settingSources`](#options) 排除了您指定的來源時,呼叫會被拒絕。不支援刪除鍵。778當請求帶有任何其他鍵、工作階段透過遠端傳輸執行,或工作階段的 [`settingSources`](#options) 排除了您指定的來源時,呼叫會被拒絕。不支援刪除鍵。

779 779 

780#### `toggleMcpServer()`780#### `toggleMcpServer()`

781 781 

782停用伺服器會中斷其連線並從工作階段中移除其工具。對於您在工作階段中途新增的伺服器以及處理程序內伺服器,這取決於您的 Claude Code 版本:782停用伺服器會中斷其連線,並從工作階段中移除其工具。對於您在工作階段中途新增的伺服器以及同程序伺服器,這取決於您的 Claude Code 版本:

783 783 

784* 您在工作階段中途以 `setMcpServers()` 新增的 stdio、SSE 或 HTTP 伺服器:移除其工具需要 Claude Code v2.1.285 或更新版本。784* 您在工作階段中途以 `setMcpServers()` 新增的 stdio、SSE 或 HTTP 伺服器:移除其工具需要 Claude Code v2.1.285 或更新版本。

785* 您以 [`createSdkMcpServer()`](#createsdkmcpserver) 建立的處理程序內伺服器,無論您是在 `mcpServers` 中傳遞還是透過 `setMcpServers()` 傳遞:中斷其連線並移除其工具需要 Claude Code v2.1.286 或更新版本。停用這類伺服器也會使其仍在執行的工具呼叫失敗,因此 Claude 會立即收到每個呼叫的錯誤結果,而不需等待您的處理常式回傳。785* 您以 [`createSdkMcpServer()`](#createsdkmcpserver) 建立的同程序伺服器,無論您是透過 `mcpServers` 還是 `setMcpServers()` 傳入:中斷其連線並移除其工具需要 Claude Code v2.1.286 或更新版本。停用此類伺服器也會讓其仍在執行中的工具呼叫失敗,因此 Claude 會立即為每個呼叫收到錯誤結果,而不必等待您的處理常式返回。

786 786 

787### `WarmQuery`787### `WarmQuery`

788 788 

789由 [`startup()`](#startup) 回傳的控制代碼。子程序已經產生並初始化完成,因此在此控制代碼上呼叫 `query()` 會將提示詞直接寫入已就緒的程序,沒有啟動延遲。789由 [`startup()`](#startup) 傳回的控制代碼。子程序已經產生並初始化,因此在此控制代碼上呼叫 `query()` 會將提示詞直接寫入已就緒的程序,不會有啟動延遲。

790 790 

791```typescript theme={null}791```typescript theme={null}

792interface WarmQuery extends AsyncDisposable {792interface WarmQuery extends AsyncDisposable {


799 799 

800| 方法 | 說明 |800| 方法 | 說明 |

801| :- | :- |801| :- | :- |

802| `query(prompt)` | 將提示詞傳送到預熱的子程序並回傳 [`Query`](#query-object)。每個 `WarmQuery` 只能呼叫一次 |802| `query(prompt)` | 將提示詞傳送到預熱的子程序並傳回 [`Query`](#query-object)。每個 `WarmQuery` 只能呼叫一次 |

803| `close()` | 在不傳送提示詞的情況下關閉子程序。用於捨棄不再需要的預熱查詢 |803| `close()` | 在不傳送提示詞的情況下關閉子程序。用於捨棄不再需要的預熱查詢 |

804 804 

805`WarmQuery` 實作了 `AsyncDisposable`,因此可以搭配 `await using` 使用以自動清理。805`WarmQuery` 實作了 `AsyncDisposable`,因此可以搭配 `await using` 使用以自動清理。

806 806 

807### `SpareProcess`807### `SpareProcess`

808 808 

809*Alpha.* 由 [`prewarm()`](#prewarm) 回傳的控制代碼:一個已啟動但尚未繫結到工作階段的 Claude Code 程序,可以認領一次。需要 TypeScript Agent SDK v0.3.282 或更新版本。809*Alpha。* 由 [`prewarm()`](#prewarm) 傳回的控制代碼:一個已啟動但尚未綁定到工作階段、且只能被認領一次的 Claude Code 程序。需要 TypeScript Agent SDK v0.3.282 或更新版本。

810 810 

811```typescript theme={null}811```typescript theme={null}

812interface SpareProcess extends AsyncDisposable {812interface SpareProcess extends AsyncDisposable {


824 824 

825| 成員 | 說明 |825| 成員 | 說明 |

826| :- | :- |826| :- | :- |

827| `claim({ prompt, options })` | 將備用程序繫結到 `options.cwd` 中的工作階段並傳送其第一則訊息。與 `query()` 一樣同步回傳 [`Query`](#query-object)。只能呼叫一次 |827| `claim({ prompt, options })` | 將備用程序綁定到 `options.cwd` 中的工作階段,並傳送其第一則訊息。與 `query()` 一樣同步傳回 [`Query`](#query-object)。只能呼叫一次 |

828| `claimed` | 在 Claude Code 接受認領後,以工作階段的工作目錄和 ID 解析。當 Claude Code 拒絕認領、程序先行結束或被關閉時會拒絕;當工作階段在沒有您要求的 `model` 或 `maxThinkingTokens` 的情況下執行時,會以開頭為 `option_not_applied` 的訊息拒絕 |828| `claimed` | 在 Claude Code 接受認領後,以工作階段的工作目錄和 ID 解析。當 Claude Code 拒絕認領、程序先行結束或被關閉時會被拒絕;當工作階段在沒有您要求的 `model` 或 `maxThinkingTokens` 的情況下執行時,也會以 `option_not_applied` 開頭的訊息被拒絕 |

829| `exited` | 在程序結束時完成,無論是否已被認領。請替換在您認領之前就結束的備用程序 |829| `exited` | 在程序結束時完成,無論是否已被認領。若備用程序在您認領前就結束,請予以替換 |

830| `close()` | 終止程序。在認領之前呼叫會捨棄備用程序並拒絕 `claimed` |830| `close()` | 終止程序。在認領之前呼叫會捨棄備用程序並拒絕 `claimed` |

831 831 

832`options.cwd` 為必填。認領也可以設定 `additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` 中的旗標設定疊加層、`appendSystemPrompt`、`title`、`agents`,以及 `env` 中的每個工作階段 token。832`options.cwd` 為必要項目。認領時也可以設定 `additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` 中的旗標設定覆蓋層、`appendSystemPrompt`、`title`、`agents`,以及 `env` 中的每個工作階段 token。

833 833 

834Claude Code 可能會拒絕認領,例如資料夾不存在,或資料夾的專案設定設定了 `env`、`agent` 或 `model`。遭拒絕後,`claim()` 已傳送的提示詞會收到文字開頭為 `not_claimed` 的錯誤結果,而回傳的查詢接著會擲回例外。請將查詢的迴圈包在 try 區塊中,以便在擲回例外後繼續。當 `claimed` 以開頭為 `option_not_applied` 的訊息拒絕時,工作階段正在沒有您要求的 `model` 或 `maxThinkingTokens` 的情況下執行。若是其他任何拒絕,您的提示詞都尚未執行,因此請改用 `query()` 啟動工作階段。834Claude Code 可能會拒絕認領,例如對於不存在的資料夾,或專案設定中設定了 `env`、`agent` 或 `model` 的資料夾。遭拒後,`claim()` 已傳送的提示詞會收到文字以 `not_claimed` 開頭的錯誤結果,而傳回的查詢接著會擲出例外。請將查詢的迴圈包在 try 區塊中,以便在擲出例外後繼續執行。當 `claimed` 以 `option_not_applied` 開頭的訊息被拒絕時,表示工作階段正在沒有您要求的 `model` 或 `maxThinkingTokens` 的情況下執行。在任何其他拒絕之後,您的提示詞都尚未執行,因此請改用 `query()` 啟動工作階段。

835 835 

836### `SDKControlInitializeResponse`836### `SDKControlInitializeResponse`

837 837 

838`initializationResult()` 的回傳型別。包含工作階段初始化資料。838`initializationResult()` 的傳回型別。包含工作階段初始化資料。

839 839 

840```typescript theme={null}840```typescript theme={null}

841type SDKControlInitializeResponse = {841type SDKControlInitializeResponse = {


860};860};

861```861```

862 862 

863`hooks_applied` 回報 Claude Code 是否已註冊 `initialize` 請求所帶的 `hooks`。SDK 會在工作階段啟動時傳送該請求一次,並在每次呼叫 [`reinitialize()`](#query-object) 時再次傳送。此欄位需要 Agent SDK v0.3.238 或更新版本。863`hooks_applied` 回報 Claude Code 是否註冊了 `initialize` 請求所帶的 `hooks`。SDK 會在工作階段啟動時傳送該請求一次,並在每次呼叫 [`reinitialize()`](#query-object) 時再次傳送。此欄位需要 Agent SDK v0.3.238 或更新版本。

864 864 

865當請求未帶任何 hook 時,Claude Code 會省略此欄位。當請求帶有 hook 時,其值取決於該請求是否為工作階段的第一次 initialize,以及對於重複的 initialize,它如何送達工作階段:865當請求未帶任何 hook 時,Claude Code 會省略此欄位。當請求帶有 hook 時,其值取決於該請求是否為工作階段的第一次 initialize,以及若為重複的 initialize,則取決於它如何送達工作階段:

866 866 

867* `true`:Claude Code 已註冊這些 hook。工作階段的第一次 initialize 會回傳此值。透過 CLI 的 stdin 傳送的重複 initialize 也會回傳 `true`。在這種情況下,新請求中的 hook 會取代先前註冊的 hook。867* `true`:Claude Code 註冊了這些 hook。工作階段的第一次 initialize 會傳回此值。透過 CLI 的 stdin 傳送的重複 initialize 也會傳回 `true`。在此情況下,新請求中的 hook 會取代先前註冊的 hook。

868* `false`:Claude Code 忽略了這些 hook。傳送到遠端工作階段的重複 initialize 會回傳此值,因此加入工作階段的第二個用戶端無法取代第一個用戶端註冊的 hook。868* `false`:Claude Code 忽略了這些 hook。傳送到遠端工作階段的重複 initialize 會傳回此值,因此加入工作階段的第二個用戶端無法取代第一個用戶端註冊的 hook。

869 869 

870在 Agent SDK v0.3.238 之前,回應從不帶有此欄位,且 Claude Code 在每次重複 initialize 時都會忽略 `hooks`。870在 Agent SDK v0.3.238 之前,回應從不帶有此欄位,且 Claude Code 在每次重複的 initialize 時都會忽略 `hooks`。

871 871 

872請求的 `sdkMcpServerManifests` 欄位和回應的 `sdk_mcp_manifests_parked` 欄位,是用於您以 [`createSdkMcpServer()`](#createsdkmcpserver) 建立的處理程序內 [SDK MCP 伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools.md)。您的應用程式不需要設定或讀取這兩個欄位。872請求的 `sdkMcpServerManifests` 欄位和回應的 `sdk_mcp_manifests_parked` 欄位是供您以 [`createSdkMcpServer()`](#createsdkmcpserver) 建立的同程序 [SDK MCP 伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools.md)使用。您的應用程式不會設定或讀取這兩個欄位。

873 873 

874`claude_code_version` 是執行工作階段回合之程序的 Claude Code 版本。它與 [`SDKSystemMessage`](#sdksystemmessage) init 訊息所攜帶的值相同,因此您可以在第一個回合之前讀取 CLI 版本。874`claude_code_version` 是執行工作階段回合之程序的 Claude Code 版本。它與 [`SDKSystemMessage`](#sdksystemmessage) init 訊息所帶的值相同,因此您可以在第一個回合之前讀取 CLI 版本。

875 875 

876* 此欄位需要 Agent SDK v0.3.296 或更新版本,其隨附 Claude Code v2.1.296。876* 此欄位需要 Agent SDK v0.3.296 或更新版本,其隨附 Claude Code v2.1.296。

877* 如果此欄位為 `undefined` 且您設定了 `pathToClaudeCodeExecutable`,請將其指向 Claude Code v2.1.296 或更新版本。877* 若此欄位為 `undefined` 且您設定了 `pathToClaudeCodeExecutable`,請將其指向 Claude Code v2.1.296 或更新版本。

878 878 

879回應一律會回報 `fast_mode_state`,而當有某些因素阻擋[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)時,`fast_mode_disabled_reason` 會一併帶有原因代碼,讓您可以說明被阻擋的狀態,而不必重新推導可用性。這兩種行為都需要 Claude Code v2.1.219 或更新版本。在 v2.1.219 之前,回應會在快速模式不可用時省略 `fast_mode_state`,且從不帶有原因。關於原因代碼及其意義,請參閱結果訊息上的 [`fast_mode_disabled_reason`](#sdkresultmessage)。879回應一律會回報 `fast_mode_state`,而當有因素阻擋[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)時,`fast_mode_disabled_reason` 會同時帶有原因代碼,讓您可以說明被阻擋的狀態,而不必重新推導可用性。這兩種行為都需要 Claude Code v2.1.219 或更新版本。在 v2.1.219 之前,當快速模式無法使用時,回應會省略 `fast_mode_state`,且從不帶有原因。關於原因代碼及其含義,請參閱結果訊息上的 [`fast_mode_disabled_reason`](#sdkresultmessage)。

880 880 

881成功的 `initialize` 的控制回應包裝也帶有一個 `pending_permission_requests` 陣列。此欄位位於回應包裝本身,而不在上述 `SDKControlInitializeResponse` payload 中。每個項目都是一則完整的 `control_request` 訊息,其 `{ type: "control_request", request_id, request }` 形狀與工作階段在執行期間串流權限請求時相同。881成功的 `initialize` 的控制回應包裝器也帶有一個 `pending_permission_requests` 陣列。此欄位位於回應包裝器本身,而不在上方的 `SDKControlInitializeResponse` payload 中。每個項目都是一則完整的 `control_request` 訊息,其 `{ type: "control_request", request_id, request }` 形狀與工作階段在執行時為權限請求所串流的訊息相同。

882 882 

883此陣列列出此 Claude Code 程序已發出但尚未解決的權限請求。SDK 會為您讀取此陣列,並將每個項目分派給您的 [`canUseTool`](#canusetool) 回呼,這與 [`reinitialize()`](#query-object) 在傳輸中斷後觸發的重新傳遞相同。請以冪等方式處理重複的請求 ID,因為某個項目可能會重複回呼在連線中斷前就已收到的請求。883此陣列列出這個 Claude Code 程序已發出但尚未解決的權限請求。SDK 會替您讀取此陣列,並將每個項目派送到您的 [`canUseTool`](#canusetool) 回呼,這與 [`reinitialize()`](#query-object) 在傳輸中斷後觸發的重新投遞相同。請以冪等方式處理重複的請求 ID,因為某個項目可能重複了回呼在連線中斷前已收到的請求。

884 884 

885此陣列一律會出現在成功的 `initialize` 回應中,當此程序沒有未解決的權限請求時則為空。需要 Claude Code v2.1.268 或更新版本。較早的版本可能會省略此欄位,因此如果您自行剖析傳輸協定,請將缺少此欄位視為較舊的 CLI,而不是證明沒有任何待處理的請求。885此陣列一律存在於成功的 `initialize` 回應中,當此程序沒有未解決的權限請求時則為空陣列。需要 Claude Code v2.1.268 或更新版本。較早的版本可能會省略此欄位,因此若您自行解析傳輸協定,請將缺少此欄位視為較舊的 CLI,而不是沒有待處理項目的證明。

886 886 

887### `SDKControlInterruptResponse`887### `SDKControlInterruptResponse`

888 888 

889中斷回執:在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中宣告 `interrupt_receipt_v1` 功能的 CLI 上,[`interrupt()`](#query-object) 所解析的值。需要 Claude Code v2.1.205 或更新版本。較早的 CLI 會以空的成功 payload 回應中斷,因此 `interrupt()` 會解析為 `undefined`。889中斷回條:在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中宣告 `interrupt_receipt_v1` 功能的 CLI 上,[`interrupt()`](#query-object) 所解析的值。需要 Claude Code v2.1.205 或更新版本。較早的 CLI 會以空的成功 payload 回應中斷,因此 `interrupt()` 會解析為 `undefined`。

890 890 

891```typescript theme={null}891```typescript theme={null}

892type SDKControlInterruptResponse = {892type SDKControlInterruptResponse = {


895};895};

896```896```

897 897 

898`still_queued` 列出中斷到達時尚待處理之使用者訊息的 UUID:仍在佇列中的訊息,以及 Claude Code 已從佇列中取出準備用於下一個回合的任何訊息。一旦工作階段的第一個回合已經開始,除非您先取消,否則 Claude Code 會在中斷後處理所列出的訊息,並可能將數則訊息合併為一個回合。如果您在第一個回合開始之前中斷,Claude Code 會在該回合一開始就將其中止,而該回合中所列出的訊息不會得到回應。898`still_queued` 列出中斷抵達時仍待處理之使用者訊息的 UUID:仍在佇列中的訊息,以及 Claude Code 已從佇列中取出準備用於下一個回合的任何訊息。一旦工作階段的第一個回合已經開始,除非您先取消,否則 Claude Code 會在中斷之後處理列出的訊息,且可能將多則訊息合併到一個回合中。若您在第一個回合開始之前中斷,Claude Code 會在該回合一開始就將其中止,該回合中列出的訊息不會得到回應。

899 899 

900請使用此回執來決定是否要重新傳送任何內容。您未取消的已列出訊息無論是否得到回應,都會進入對話,因此重新傳送它會將其傳遞給 Claude 兩次。900請使用回條來決定是否要重新傳送任何內容。您未取消的列出訊息無論是否得到回應都會進入對話,因此重新傳送會讓 Claude 收到兩次。

901 901 

902解讀此清單時請注意以下事項:902解讀此清單時請注意以下事項:

903 903 

904* 只有以 UUID 加入佇列的訊息才會出現。空陣列並不代表沒有其他內容會執行。904* 只有以 UUID 加入佇列的訊息才會出現。空陣列並不代表沒有其他內容會執行。

905* 只會列出主執行緒的訊息。傳給 subagent 的訊息不在範圍內。905* 只會列出主執行緒的訊息。傳送給 subagent 的訊息不在範圍內。

906* 清單可能包含您的用戶端從未傳送的 UUID,例如[工作階段範圍的排程任務](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)觸發。請忽略您無法辨識的 UUID,而不要將其視為錯誤。906* 清單可能包含您的用戶端從未傳送過的 UUID,例如[工作階段範圍的排程任務](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)觸發。請忽略您無法辨識的 UUID,而不要將其視為錯誤。

907 907 

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

909 909 

910`cancelled` 清單與 `still_queued` 具有相同的注意事項。`interrupt()` 方法從不傳送 `cancel_queued`,因此它所解析的回執不會帶有 `cancelled`。910`cancelled` 清單的注意事項與 `still_queued` 相同。`interrupt()` 方法從不傳送 `cancel_queued`,因此它所解析的回條不會帶有 `cancelled`。

911 911 

912此回執是在處理中斷的那一刻所擷取的快照,而在正常的中斷中,它會在被中斷回合的 [`SDKResultMessage`](#sdkresultmessage) 之前送達。請讀取回執,而不要在該結果之後檢查佇列:迴圈會立即開始下一個佇列中的回合,因此您在結果之後檢查的佇列已經改變了。912回條是在處理中斷當下擷取的快照,在乾淨的中斷下,它會在被中斷回合的 [`SDKResultMessage`](#sdkresultmessage) 之前抵達。請讀取回條,而不要在該結果之後檢查佇列:迴圈會立即開始下一個佇列中的回合,因此您在結果之後檢查的佇列已經改變了。

913 913 

914### `SDKControlGetContextUsageResponse`914### `SDKControlGetContextUsageResponse`

915 915 

916[`getContextUsage()`](#query-object) 的回傳類型。使用預設的 `detail` 時,回應包含 Claude Code 在互動式工作階段中為 `/context` 命令所呈現的 payload。除了 token 計數之外,該 payload 還攜帶 `color` 與 `gridRows` 等顯示欄位,Claude Code 用它們來繪製 `/context` 用量方格。916[`getContextUsage()`](#query-object) 的傳回型別。使用預設的 `detail` 時,回應會包含 Claude Code 在互動式工作階段中為 `/context` 命令呈現的 payload。除了 token 計數之外,該 payload 還帶有 `color` 和 `gridRows` 等顯示欄位,Claude Code 用它們來繪製 `/context` 用量格線。

917 917 

918此方法的選用 `detail` 引數決定 Claude Code 如何計算每個類別。`detail` 引數需要 Agent SDK v0.3.257 或更新版本。918此方法的選用 `detail` 引數用於選擇 Claude Code 如何計算各個類別。`detail` 引數需要 Agent SDK v0.3.257 或更新版本。

919 919 

920* **`'full'`**:預設值。Claude Code 會以 [token 計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) API 請求計算每個類別。這些請求不會出現在訊息串流中,因此讀取串流的成本追蹤不會看到它們。在 Anthropic API 上,token 計數不收費。920* **`'full'`**:預設值。Claude Code 會以 [token 計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) API 請求計算每個類別。這些請求不會出現在訊息串流中,因此讀取串流的成本追蹤不會看到它們。在 Anthropic API 上,token 計數不收費。

921* **`'summary'`**:傳遞 `{ detail: 'summary' }` 以改為從上一個回應的用量和本機估算取得答案。不會發出任何 token 計數請求,且各類別的數字為近似值。921* **`'summary'`**:傳入 `{ detail: 'summary' }` 以改從上一個回應的用量和本機估算取得答案。不會發出任何 token 計數請求,且各類別的數字為近似值。

922 922 

923當您將 `/context` 作為提示詞傳送而不是呼叫此方法時,Claude Code 會將 [`SDKContextUsage`](#sdkcontextusage) payload 附加到傳遞結果之 assistant 訊息的 `context_usage` 欄位。該欄位需要 Agent SDK v0.3.232 或更新版本。923當您以提示詞傳送 `/context` 而非呼叫此方法時,Claude Code 會將 [`SDKContextUsage`](#sdkcontextusage) payload 附加到傳遞結果之 assistant 訊息的 `context_usage` 欄位。該欄位需要 Agent SDK v0.3.232 或更新版本。

924 924 

925在 `SDKControlGetContextUsageResponse` 中,`categories[].id`、`mcpInstructions`,以及 `agents` 與 `skills.skillFrontmatter` 項目的 `pluginId` 和 `path` 欄位需要 Agent SDK v0.3.304 或更新版本。925在 `SDKControlGetContextUsageResponse` 中,`categories[].id`、`mcpInstructions`,以及 `agents` 和 `skills.skillFrontmatter` 項目的 `pluginId` 和 `path` 欄位需要 Agent SDK v0.3.304 或更新版本。

926 926 

927```typescript theme={null}927```typescript theme={null}

928type SDKControlGetContextUsageResponse = {928type SDKControlGetContextUsageResponse = {


1042};1042};

1043```1043```

1044 1044 

1045請從集合欄位讀取 token 歸屬:1045從集合欄位讀取 token 歸屬:

1046 1046 

1047* `categories` 保存各類別的總計。每個項目的 `kind` 會以與 [`SDKContextUsageCategory`](#sdkcontextusagecategory) 相同的值對該列進行分類。請依據它來分類各列,而不是依據顯示用的 `name`。此欄位需要 Agent SDK v0.3.268 或更新版本。1047* `categories` 保存各類別的總計。每個項目的 `kind` 以與 [`SDKContextUsageCategory`](#sdkcontextusagecategory) 相同的值對該列進行分類。請依據它而非顯示用的 `name` 來分類各列。此欄位需要 Agent SDK v0.3.268 或更新版本。

1048* `mcpTools` 和 `agents` 將 token 歸屬到個別的 MCP 工具和 subagent。1048* `mcpTools` 和 `agents` 將 token 歸屬到個別的 MCP 工具和 subagent。

1049* `memoryFiles` 列出每個已載入的記憶檔案及其成本。1049* `memoryFiles` 列出每個已載入的記憶檔案及其成本。

1050* `skills.skillFrontmatter` 將 skill 清單的 token 歸屬到每個包含的 skill。每個 skill 的計數衡量的是 Claude Code 實際傳送的該 skill 清單項目,可能比 skill 的完整 frontmatter 短。比較 `skills.totalSkills` 與 `skills.includedSkills`,即可得知是否每個探索到的 skill 都已納入清單。1050* `skills.skillFrontmatter` 將 skill 清單的 token 歸屬到每個包含的 skill。每個 skill 的計數衡量的是 Claude Code 實際傳送的 skill 清單項目,可能比該 skill 的完整 frontmatter 更短。比較 `skills.totalSkills` 與 `skills.includedSkills`,即可查看是否所有探索到的 skill 都進入了清單。

1051 1051 

1052`totalTokens` 是工作階段目前的上下文使用量,而 `maxTokens` 是衡量該使用量所依據的視窗。該視窗是模型的上下文視窗,或在適用時為較低的自動壓縮視窗。`rawMaxTokens` 帶有與 `maxTokens` 相同的值,而 `percentage` 是 `totalTokens` 佔該視窗的四捨五入百分比。`apiUsage` 保存的是最新 API 回應的用量,而不是工作階段的累計總量。1052`totalTokens` 是工作階段目前的上下文用量,`maxTokens` 則是衡量該用量所依據的視窗。該視窗是模型的上下文視窗,或在適用時為較低的自動壓縮視窗。`rawMaxTokens` 帶有與 `maxTokens` 相同的值,而 `percentage` 是 `totalTokens` 佔該視窗的四捨五入百分比。`apiUsage` 保存最近一次 API 回應的用量,而不是工作階段的累計總額。

1053 1053 

1054Claude Code 不會設定選用的 `deferredBuiltinTools`、`systemTools` 和 `systemPromptSections` 診斷欄位,因此即使型別宣告了它們,也請預期它們不存在。1054Claude Code 不會設定選用的 `deferredBuiltinTools`、`systemTools` 和 `systemPromptSections` 診斷欄位,因此即使型別宣告了它們,也請預期它們不存在。

1055 1055 

1056#### 依 ID 尋找列、伺服器的指令 token,或項目的外掛與檔案1056#### 依 ID 尋找列、伺服器的指令 token,或項目的外掛與檔案

1057 1057 

1058MCP 伺服器指令是已連線伺服器提供、由 Claude Code 加入上下文的使用說明,而 `categories` 的 `mcp_instructions` 列會計算它們的 token。使用這些 [`getContextUsage()`](#query-object) 欄位,依 `id` 挑出一個 `categories` 列、依伺服器拆分 `mcp_instructions` 的 token,或找出 agent 或 skill 項目背後的外掛和檔案:1058MCP 伺服器指令是已連線伺服器提供、並由 Claude Code 加入上下文的使用說明,而 `categories` 的 `mcp_instructions` 列會計算它們的 token。使用以下 [`getContextUsage()`](#query-object) 欄位,可依 `id` 挑出單一 `categories` 列、依伺服器拆分 `mcp_instructions` 的 token,或找出 agent 或 skill 項目背後的外掛與檔案:

1059 1059 

1060| 欄位 | 所在位置 | 內容 |1060| 欄位 | 所在位置 | 內容 |

1061| :- | :- | :- |1061| :- | :- | :- |

1062| `id` | 每個 `categories` 列 | 該列的識別碼,為[回應類型](#sdkcontrolgetcontextusageresponse)所列值之一,例如 `mcp_instructions`。依 `id` 比對以挑出一列,或依 `kind` 將列分組。較新的 Claude Code 版本可能會傳送您已安裝之類型未列出的值,因此請將無法辨識的 `id` 視為不存在 |1062| `id` | 每個 `categories` 列 | 該列的識別碼,為[回應型別](#sdkcontrolgetcontextusageresponse)所列的值之一,例如 `mcp_instructions`。依 `id` 比對以挑出單一列,或依 `kind` 比對以將各列分組。較新的 Claude Code 版本可能會傳送您已安裝型別中未列出的值,因此請將無法辨識的 `id` 視為不存在 |

1063| `mcpInstructions` | 回應 | 每個提供指令的已連線 MCP 伺服器各有一個 `{ serverName, tokens }` 項目,若沒有任何伺服器提供則為空陣列。`tokens` 值為估算值,加總等於 `mcp_instructions` 列的 `tokens`。`serverName` 是 [`mcpServerStatus()`](#query-object) 為該伺服器回報的 `name` |1063| `mcpInstructions` | 回應 | 每個提供指令的已連線 MCP 伺服器各有一個 `{ serverName, tokens }` 項目,若沒有任何伺服器提供則為空陣列。`tokens` 值為估算值,加總起來等於 `mcp_instructions` 列的 `tokens`。`serverName` 是 [`mcpServerStatus()`](#query-object) 為該伺服器回報的 `name` |

1064| `pluginId` | `agents` 和 `skills.skillFrontmatter` 項目 | 以 `name@marketplace` 形式的 ID 指出項目來自的外掛,對於並非來自外掛的項目則不存在。當外掛並非來自市集時,`@` 之後的部分會改為指出[其來源](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-where-a-plugin-came-from),例如透過 [`plugins`](#options) 選項載入的外掛為 `inline` |1064| `pluginId` | `agents` 和 `skills.skillFrontmatter` 項目 | 以 `name@marketplace` 形式的 ID 指出該項目來自哪個外掛;對於不是來自外掛的項目則不存在。當外掛不是來自市集時,`@` 之後的部分改為指出[其來源](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-where-a-plugin-came-from),例如透過 [`plugins`](#options) 選項載入的外掛為 `inline` |

1065| `path` | `agents` 和 `skills.skillFrontmatter` 項目 | 定義該 agent 或 skill 之檔案的絕對路徑,位於 Claude Code 執行所在的機器上。當沒有檔案定義該項目時(例如來自 [`agents`](#options) 選項的 agent 或 Claude Code 內建的 skill),此欄位不存在 |1065| `path` | `agents` 和 `skills.skillFrontmatter` 項目 | 定義該 agent 或 skill 之檔案的絕對路徑,位於執行 Claude Code 的機器上。當沒有檔案定義該項目時(例如來自 [`agents`](#options) 選項的 agent 或 Claude Code 內建的 skill),此欄位不存在 |

1066 1066 

1067作為依 `id` 比對的範例,此範例會找出 `mcp_instructions` 列:1067以依 `id` 比對為例,以下範例會找出 `mcp_instructions` 列:

1068 1068 

1069```typescript theme={null}1069```typescript theme={null}

1070// q is the Query object that query() returned1070// q is the Query object that query() returned


1086};1086};

1087```1087```

1088 1088 

1089`contents` 保存檔案文字,或在您要求 `encoding: 'base64'` 時保存 base64 資料;在這種情況下,回應的 `encoding` 欄位會設為 `'base64'`。`absPath` 是解析後的絕對路徑。當檔案超過 `maxBytes` 上限且內容在該限制處被截斷時,會設定 `truncated`。1089`contents` 存放檔案文字,或在您請求 `encoding: 'base64'` 時存放 base64 資料;在此情況下,回應的 `encoding` 欄位會設為 `'base64'`。`absPath` 是解析後的絕對路徑。當檔案長度超過 `maxBytes` 上限且內容在該限制處被截斷時,會設定 `truncated`。

1090 1090 

1091#### `readFile()` 可以讀取的內容1091#### `readFile()` 可以讀取的內容

1092 1092 

1093`readFile()` 提供的檔案範圍比 Read 工具更窄:1093`readFile()` 提供的檔案範圍比 Read 工具更窄:

1094 1094 

1095* 位於工作階段某個工作目錄(例如 `cwd` 和 `additionalDirectories`)內的一般檔案1095* 位於工作階段某個工作目錄(例如 `cwd` 和 `additionalDirectories`)內的一般檔案

1096* Claude Code 為該工作階段所保存的少數自有檔案,例如工具結果1096* 該工作階段中 Claude Code 本身的少數檔案,例如工具結果

1097 1097 

1098`Read` 的拒絕和詢問規則仍會封鎖符合的路徑,而廣泛的 `Read` 允許規則並不會將檔案系統的其餘部分開放給 `readFile()`。對於其他任何內容,呼叫都會解析為 `null`。1098`Read` 的拒絕與詢問規則仍會封鎖相符的路徑,而廣泛的 `Read` 允許規則並不會讓 `readFile()` 存取檔案系統的其餘部分。對於其他任何內容,呼叫會以 `null` 解析。

1099 1099 

1100### `SDKControlReloadPluginsResponse`1100### `SDKControlReloadPluginsResponse`

1101 1101 


1122};1122};

1123```1123```

1124 1124 

1125集合欄位描述呼叫之後的工作階段:1125集合欄位描述呼叫後的工作階段狀態:

1126 1126 

1127* `commands`、`agents` 和 `mcpServers`:工作階段的命令、subagent 和 MCP 伺服器狀態,其形狀與 `supportedCommands()`、`supportedAgents()` 和 `mcpServerStatus()` 回傳的相同。`supportedAgents()` 會持續回傳初始化時擷取的清單,因此若要取得重新載入後的集合,請讀取此處的 `agents`1127* `commands`、`agents` 和 `mcpServers`:工作階段的命令、subagent 和 MCP 伺服器狀態,其形狀與 `supportedCommands()`、`supportedAgents()` 和 `mcpServerStatus()` 的回傳相同。`supportedAgents()` 會持續回傳初始化時擷取的清單,因此若要取得重新載入後的集合,請讀取此處的 `agents`

1128* `plugins`:每個已載入的外掛及其 `name` 和安裝 `path`。`version` 重複外掛資訊清單所宣告的內容,由外掛作者控制,因此請在信任之前先驗證。當資訊清單未宣告時會省略1128* `plugins`:每個已載入的外掛及其 `name` 和安裝 `path`。`version` 重複外掛 manifest 所宣告的內容,且由外掛作者控制,因此在信任它之前請先驗證。當 manifest 未宣告時則省略

1129* `error_count`:載入外掛時發生的錯誤數量1129* `error_count`:載入外掛時發生的錯誤數量

1130 1130 

1131將 `{ holdOnCacheImpact: true }` 傳遞給 `reloadPlugins()`,以暫緩會使對話提示快取失效的重新載入,而不是套用它。Claude Code 會執行互動式 `/reload-plugins` 命令在[警告快取成本](https://code.claude.com/docs/zh-TW/prompt-caching.md#enabling-or-disabling-a-plugin)之前所進行的檢查。此選項需要 Agent SDK v0.3.268 或更新版本。早於 v2.1.268 的 Claude Code 執行檔(例如您以 `pathToClaudeCodeExecutable` 指向的執行檔)會忽略此選項並套用重新載入。1131將 `{ holdOnCacheImpact: true }` 傳給 `reloadPlugins()`,即可暫緩會使對話的提示快取失效的重新載入,而不是套用它。Claude Code 會執行互動式 `/reload-plugins` 命令在[警告快取成本](https://code.claude.com/docs/zh-TW/prompt-caching.md#enabling-or-disabling-a-plugin)之前所做的檢查。此選項需要 Agent SDK v0.3.268 或更新版本。早於 v2.1.268 的 Claude Code 執行檔(例如您以 `pathToClaudeCodeExecutable` 指定的執行檔)會忽略此選項並套用重新載入。

1132 1132 

1133當您傳遞此選項時,請讀取 `held` 以了解發生了什麼:1133傳入此選項時,請讀取 `held` 以了解發生了什麼:

1134 1134 

1135* `true`:重新載入未套用,集合欄位描述的是工作階段目前仍維持的狀態。`cache_impact` 說明套用後會有哪些變更。若仍要套用,請在不帶此選項的情況下再次呼叫 `reloadPlugins()`。1135* `true`:未套用重新載入,集合欄位描述的是工作階段目前的狀態。`cache_impact` 說明套用後會改變什麼。若仍要套用,請不帶此選項再次呼叫 `reloadPlugins()`。

1136* `false`:檢查未發現快取影響,且重新載入已套用。1136* `false`:檢查發現沒有快取影響,並已套用重新載入。

1137* 不存在:您未傳遞此選項,或 Claude Code 執行檔早於 v2.1.268 並已套用重新載入。1137* 不存在:您未傳入此選項,或 Claude Code 執行檔早於 v2.1.268 並已套用重新載入。

1138 1138 

1139`cache_impact` 只會與 `held: true` 一起出現。`mcp_servers_added` 和 `mcp_servers_removed` 以具範圍的 `plugin:<plugin>:<server>` 名稱,指出重新載入會註冊或移除的外掛 MCP 伺服器。這些名稱由外掛作者撰寫,因此在顯示之前請先驗證。`lsp_tool_change` 說明套用後是否會新增或移除 LSP 工具,若兩者皆不會則為 `null`。`may-` 形式表示檢查無法完整看到待處理的外掛集合。1139`cache_impact` 只會與 `held: true` 一起出現。`mcp_servers_added` 和 `mcp_servers_removed` 以帶範圍的 `plugin:<plugin>:<server>` 名稱列出重新載入會註冊或移除的外掛 MCP 伺服器。這些名稱由外掛作者撰寫,因此在顯示之前請先驗證。`lsp_tool_change` 說明套用後是否會新增或移除 LSP 工具,若兩者皆否則為 `null`。`may-` 形式表示檢查無法完整看見待處理的外掛集合。

1140 1140 

1141#### 使用 `addPlugins` 載入更多外掛資料夾1141#### 使用 `addPlugins` 載入更多外掛資料夾

1142 1142 

1143若要載入啟動時不在 [`plugins`](#options) 選項中的外掛資料夾,請將它們以 `addPlugins` 傳給 `reloadPlugins()`,這是一個 [`SdkPluginConfig`](#sdkpluginconfig) 項目清單,其 `path` 必須是絕對路徑。Claude Code 會在一次處理中載入新資料夾並重新載入工作階段現有的外掛。每個新增外掛的 MCP 伺服器也會連線,除非您在該資料夾的項目上設定了 [`skipMcpDiscovery`](#sdkpluginconfig)。需要 Agent SDK v0.3.301 或更新版本,以及 Claude Code v2.1.301 或更新版本。1143若要載入啟動時不在 [`plugins`](#options) 選項中的外掛資料夾,請將它們以 `addPlugins` 傳給 `reloadPlugins()`,這是一個 [`SdkPluginConfig`](#sdkpluginconfig) 項目清單,其 `path` 為絕對路徑。Claude Code 會在單次處理中載入新資料夾並重新載入工作階段現有的外掛。每個新增外掛的 MCP 伺服器也會連線,除非您在該資料夾的項目上設定 [`skipMcpDiscovery`](#sdkpluginconfig)。需要 Agent SDK v0.3.301 或更新版本,以及 Claude Code v2.1.301 或更新版本。

1144 1144 

1145此範例將一個資料夾新增至正在執行的查詢 `q`,並在呼叫回傳時列印工作階段已載入的每個外掛的安裝路徑:1145此範例將一個資料夾新增到執行中的查詢 `q`,並在呼叫回傳時印出工作階段已載入的每個外掛的安裝路徑:

1146 1146 

1147```typescript theme={null}1147```typescript theme={null}

1148const result = await q.reloadPlugins({1148const result = await q.reloadPlugins({


1152console.log(result.plugins.map((plugin) => plugin.path));1152console.log(result.plugins.map((plugin) => plugin.path));

1153```1153```

1154 1154 

1155如果資料夾已載入,列印出的清單會包含 `/opt/my-app/plugins/reports`,且該外掛的命令和 subagent 會出現在 `result.commands` 和 `result.agents` 中。1155如果資料夾已載入,印出的清單會包含 `/opt/my-app/plugins/reports`,且該外掛的命令和 subagent 會出現在 `result.commands` 和 `result.agents` 中。

1156 1156 

1157新增的資料夾會一直是工作階段的一部分。當您再次呼叫 `reloadPlugins()` 時,Claude Code 會將它與其他外掛一起重新載入,您不需要再次在 `addPlugins` 中傳入它。1157新增的資料夾會持續成為工作階段的一部分。當您再次呼叫 `reloadPlugins()` 時,Claude Code 會將它與其他外掛一起重新載入,您不需要再次在 `addPlugins` 中傳入它。

1158 1158 

1159##### 當 `reloadPlugins()` 未載入 `addPlugins` 資料夾時1159##### 當 `reloadPlugins()` 未載入 `addPlugins` 資料夾時

1160 1160 

1161如果 `reloadPlugins()` 被拒絕,則不會新增任何 `addPlugins` 資料夾,因此重試時請再次在 `addPlugins` 中傳入它們。當拒絕是由下列原因之一造成時,工作階段會保留原本已有的外掛:1161如果 `reloadPlugins()` 被拒絕,則不會新增任何 `addPlugins` 資料夾,因此重試時請再次在 `addPlugins` 中傳入它們。當拒絕是由以下原因之一造成時,工作階段會保留它原本已有的外掛:

1162 1162 

1163* **相對 `path` 或格式錯誤的項目**:錯誤訊息為 `add_plugins must be a list of { type: "local", path } entries with absolute paths`。只要有一個錯誤項目,Claude Code 就會拒絕整個清單,因此請將每個項目都以 `{ type: "local", path }` 搭配絕對 `path` 傳入1163* **相對的 `path` 或格式錯誤的項目**:錯誤訊息為 `add_plugins must be a list of { type: "local", path } entries with absolute paths`。Claude Code 會因為一個錯誤項目而拒絕整個清單,因此請將每個項目都以 `{ type: "local", path }` 傳入,並使用絕對 `path`

1164* **管理員已在您的受管設定中開啟 [`disableSideloadFlags`](https://code.claude.com/docs/zh-TW/settings-reference#disablesideloadflags)**:訊息為 `reload_plugins add_plugins is disabled by managed settings (disableSideloadFlags)`。若要載入該資料夾,請要求該管理員移除此設定1164* **管理員已在您的受管設定中開啟 [`disableSideloadFlags`](https://code.claude.com/docs/zh-TW/settings-reference#disablesideloadflags)**:訊息為 `reload_plugins add_plugins is disabled by managed settings (disableSideloadFlags)`。若要載入該資料夾,請要求該管理員移除此設定

1165* **無法重建[沙箱](https://code.claude.com/docs/zh-TW/sandboxing.md)**:在開啟[沙箱機制](#sandboxsettings)時,Claude Code 會重建沙箱設定,使在沙箱中執行的 shell 命令無法寫入您新增的資料夾。訊息為 `the sandbox could not be rebuilt to keep shell commands out of this folder`。請檢查您的[沙箱設定](#sandboxsettings)是否仍構成有效的設定1165* **無法重建[沙箱](https://code.claude.com/docs/zh-TW/sandboxing.md)**:在[沙箱機制](#sandboxsettings)開啟時,Claude Code 會重建沙箱設定,使沙箱化的 shell 命令無法寫入您新增的資料夾。訊息為 `the sandbox could not be rebuilt to keep shell commands out of this folder`。請檢查您的[沙箱設定](#sandboxsettings)是否仍構成有效的設定

1166 1166 

1167如果您傳入 `holdOnCacheImpact` 且呼叫以 [`held: true`](#sdkcontrolreloadpluginsresponse) 解析,則不會新增 `addPlugins` 資料夾。若仍要新增,請以相同的 `addPlugins` 清單且不帶 `holdOnCacheImpact` 再次呼叫 `reloadPlugins()`。1167如果您傳入 `holdOnCacheImpact` 且呼叫以 [`held: true`](#sdkcontrolreloadpluginsresponse) 解析,則不會新增 `addPlugins` 資料夾。若仍要新增,請使用相同的 `addPlugins` 清單且不帶 `holdOnCacheImpact` 再次呼叫 `reloadPlugins()`。

1168 1168 

1169當呼叫解析結果沒有 `held: true`,而某個資料夾仍未出現在 `result.plugins` 中時,請先檢查下列原因:1169當呼叫未以 `held: true` 解析,但某個資料夾仍未出現在 `result.plugins` 中時,請先檢查以下原因:

1170 1170 

1171* **資料夾不存在或其外掛載入失敗**:`result.error_count` 為 `1` 或更高。即便如此,該資料夾仍是工作階段的一部分。修正資料夾後,再次呼叫 `reloadPlugins()` 以載入它,這次不需在 `addPlugins` 中列出它1171* **資料夾不存在或其外掛載入失敗**:`result.error_count` 為 `1` 或更高。即使如此,該資料夾仍會是工作階段的一部分。修正資料夾後,請再次呼叫 `reloadPlugins()` 以載入它,這次不需要在 `addPlugins` 中列出它

1172* **Claude Code 執行檔早於 v2.1.301**:早於 v2.1.301 的執行檔會忽略 `addPlugins`,只重新載入工作階段原本已有的外掛。請檢查 [init 訊息](#sdksystemmessage)上的 `claude_code_version`,並執行 v2.1.301 或更新版本的執行檔1172* **Claude Code 執行檔早於 v2.1.301**:早於 v2.1.301 的執行檔會忽略 `addPlugins`,只重新載入工作階段原本已有的外掛。請檢查 [init 訊息](#sdksystemmessage)上的 `claude_code_version`,並執行 v2.1.301 或更新版本的執行檔

1173 1173 

1174### `SDKControlReloadSkillsResponse`1174### `SDKControlReloadSkillsResponse`


1181};1181};

1182```1182```

1183 1183 

1184`skills` 列出重新載入後可用的 skill,其 [`SlashCommand`](#slashcommand) 形狀與 `supportedCommands()` 回傳的相同。1184`skills` 列出重新載入後可用的 skill,其 [`SlashCommand`](#slashcommand) 形狀與 `supportedCommands()` 的回傳相同。

1185 1185 

1186### `SDKControlReloadOutputStylesResponse`1186### `SDKControlReloadOutputStylesResponse`

1187 1187 


1193};1193};

1194```1194```

1195 1195 

1196`available_output_styles` 列出重新載入後可用的內建和自訂輸出風格名稱。1196`available_output_styles` 列出重新載入後可用的內建與自訂輸出風格名稱。

1197 1197 

1198### `SDKControlMcpReadResourceResponse`1198### `SDKControlMcpReadResourceResponse`

1199 1199 

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

1201 1201 

1202```typescript theme={null}1202```typescript theme={null}

1203type SDKControlMcpReadResourceResponse = {1203type SDKControlMcpReadResourceResponse = {


1211};1211};

1212```1212```

1213 1213 

1214請將 `mcpServerStatus()` 所回報的伺服器名稱和一個 `ui://` URI 傳遞給 `readMcpResource()`,例如工具在其 [`_meta`](#mcpserverstatus) 中宣告的 `ui.resourceUri`。對於任何其他 URI 配置、您的應用程式自行託管的 [SDK MCP 伺服器](#createsdkmcpserver),以及未連線的伺服器,呼叫都會被拒絕。當初始化訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_read_resource_v1` 時即可使用。1214請將 `mcpServerStatus()` 所回報的伺服器名稱以及一個 `ui://` URI 傳給 `readMcpResource()`,例如工具在其 [`_meta`](#mcpserverstatus) 中宣告的 `ui.resourceUri`。對於任何其他 URI 配置、由您的應用程式自行託管的 [SDK MCP 伺服器](#createsdkmcpserver),以及未連線的伺服器,呼叫都會被拒絕。當 init 訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_read_resource_v1` 時即可使用。

1215 1215 

1216每個 `contents` 項目都是伺服器所傳送的一個內容項目,但會移除 `com.anthropic/` 前綴下的任何 `_meta` 鍵,該前綴保留給 Claude Code 使用。`blob` 保存二進位項目的 base64 資料,而 `_meta` 是該項目本身的 `_meta`,MCP Apps 伺服器會在其中放置資源的 `ui.csp` 和 `ui.permissions`。1216每個 `contents` 項目都是伺服器傳送的一個內容項目,但會移除 `com.anthropic/` 前綴下的任何 `_meta` 鍵,該前綴保留給 Claude Code 使用。`blob` 存放二進位項目的 base64 資料,而 `_meta` 是該項目本身的 `_meta`,MCP Apps 伺服器會在其中放置資源的 `ui.csp` 和 `ui.permissions`。

1217 1217 

1218這些內容是不受信任的第三方 HTML,因此請在沙箱中呈現。1218這些內容是不受信任的第三方 HTML,因此請在沙箱中呈現它們。

1219 1219 

1220### `AgentDefinition`1220### `AgentDefinition`

1221 1221 

1222以程式方式定義之 subagent 的設定。1222以程式方式定義的 subagent 設定。

1223 1223 

1224```typescript theme={null}1224```typescript theme={null}

1225type AgentDefinition = {1225type AgentDefinition = {


1242};1242};

1243```1243```

1244 1244 

1245| 欄位 | 必填 | 說明 |1245| 欄位 | 必要 | 說明 |

1246| :- | :- | :- |1246| :- | :- | :- |

1247| `description` | 是 | 以自然語言描述何時使用此 agent |1247| `description` | 是 | 以自然語言描述何時使用此 agent |

1248| `tools` | 否 | 允許的工具名稱陣列。若省略,則繼承每個[可供 subagent 使用的工具](https://code.claude.com/docs/zh-TW/sub-agents.md#available-tools)。若要將 Skills 預先載入 agent 的上下文,請使用 `skills` 欄位,而不是在此列出 `'Skill'` |1248| `tools` | 否 | 允許的工具名稱陣列。若省略,則繼承所有[可供 subagent 使用的工具](https://code.claude.com/docs/zh-TW/sub-agents.md#available-tools)。若要將 Skills 預先載入 agent 的上下文,請使用 `skills` 欄位,而不是在此列出 `'Skill'` |

1249| `disallowedTools` | 否 | 要為此 agent 明確禁止的工具名稱陣列。也接受 MCP 伺服器層級的模式:`mcp__server` 或 `mcp__server__*` 會移除該伺服器的每個工具,而 `mcp__*` 會移除任何伺服器的每個 MCP 工具 |1249| `disallowedTools` | 否 | 要為此 agent 明確禁止的工具名稱陣列。也接受 MCP 伺服器層級的模式:`mcp__server` 或 `mcp__server__*` 會移除該伺服器的所有工具,而 `mcp__*` 會移除任何伺服器的所有 MCP 工具 |

1250| `prompt` | 是 | agent 的系統提示詞 |1250| `prompt` | 是 | agent 的系統提示詞 |

1251| `model` | 否 | 此 agent 的模型覆寫。接受別名,例如 `'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'`,或完整的模型 ID。`'inherit'` 會使用主要模型。若省略,Claude Code 會依照 [subagent 模型順序](https://code.claude.com/docs/zh-TW/sub-agents.md#choose-a-model)選擇模型 |1251| `model` | 否 | 此 agent 的模型覆寫。接受別名,例如 `'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'`,或完整的模型 ID。`'inherit'` 使用主模型。省略時,Claude Code 會依照 [subagent 模型順序](https://code.claude.com/docs/zh-TW/sub-agents.md#choose-a-model)選擇模型 |

1252| `mcpServers` | 否 | 此 agent 的 MCP 伺服器規格 |1252| `mcpServers` | 否 | 此 agent 的 MCP 伺服器規格 |

1253| `skills` | 否 | 要預先載入 agent 上下文的 skill 名稱陣列 |1253| `skills` | 否 | 要預先載入 agent 上下文的 skill 名稱陣列 |

1254| `initialPrompt` | 否 | 當此 agent 作為主執行緒 agent 執行時,自動提交為第一個使用者回合 |1254| `initialPrompt` | 否 | 當此 agent 作為主執行緒 agent 執行時,會自動提交為第一個使用者回合 |

1255| `maxTurns` | 否 | 停止前的最大 agentic 回合數(API 往返次數) |1255| `maxTurns` | 否 | 停止前的最大 agentic 回合數(API 往返次數) |

1256| `autoCompactWindow` | 否 | 當此 agent 以 subagent 身分執行時,將其[自動壓縮視窗](https://code.claude.com/docs/zh-TW/sub-agents.md#subagent-auto-compact-window)降低至 `100000` 到 `1000000` 之間的 token 數。需要 TypeScript Agent SDK v0.3.296 或更新版本 |1256| `autoCompactWindow` | 否 | 當此 agent 作為 subagent 執行時,將其[自動壓縮視窗](https://code.claude.com/docs/zh-TW/sub-agents.md#subagent-auto-compact-window)降低至 `100000` 到 `1000000` 的 token 數。需要 TypeScript Agent SDK v0.3.296 或更新版本 |

1257| `background` | 否 | 被呼叫時,將此 agent 作為非阻塞的背景任務執行 |1257| `background` | 否 | 被叫用時,將此 agent 作為非阻塞的背景任務執行 |

1258| `omitClaudeMd` | 否 | 將使用者、專案和本機的 CLAUDE.md 檔案排除在此 agent 的初始上下文之外;受管政策檔案仍會載入。適用於從 Agent 工具提示詞取得所需一切內容的 agent。當此 agent 作為主執行緒 agent 執行時會被忽略。需要 TypeScript Agent SDK v0.3.271 或更新版本 |1258| `omitClaudeMd` | 否 | 將使用者、專案和本機 CLAUDE.md 檔案排除在此 agent 的初始上下文之外;受管政策檔案仍會載入。適用於從 Agent 工具提示詞取得所需一切的 agent。當此 agent 作為主執行緒 agent 執行時會被忽略。需要 TypeScript Agent SDK v0.3.271 或更新版本 |

1259| `memory` | 否 | 此 agent 的記憶來源:`'user'`、`'project'` 或 `'local'` |1259| `memory` | 否 | 此 agent 的記憶來源:`'user'`、`'project'` 或 `'local'` |

1260| `effort` | 否 | 此 agent 的推理 effort 等級。接受具名等級或整數 |1260| `effort` | 否 | 此 agent 的推理 effort 等級。接受具名等級或整數 |

1261| `permissionMode` | 否 | 此 agent 內工具執行的權限模式。[subagent 繼承規則](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#available-modes)決定何時套用。請參閱 [`PermissionMode`](#permissionmode) |1261| `permissionMode` | 否 | 此 agent 內工具執行的權限模式。由 [subagent 繼承規則](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#available-modes)決定何時套用。請參閱 [`PermissionMode`](#permissionmode) |

1262| `criticalSystemReminder_EXPERIMENTAL` | 否 | 實驗性:加入系統提示詞中的重要提醒 |1262| `criticalSystemReminder_EXPERIMENTAL` | 否 | 實驗性:加入系統提示詞的關鍵提醒 |

1263 1263 

1264### `AgentMcpServerSpec`1264### `AgentMcpServerSpec`

1265 1265 

1266指定 subagent 可用的 MCP 伺服器。可以是伺服器名稱(參照父層 `mcpServers` 設定中某個伺服器的字串),或是將伺服器名稱對應至設定的內嵌伺服器設定記錄。1266指定 subagent 可用的 MCP 伺服器。可以是伺服器名稱(參照父層 `mcpServers` 設定中伺服器的字串),或是將伺服器名稱對應到設定的內嵌伺服器設定記錄。

1267 1267 

1268```typescript theme={null}1268```typescript theme={null}

1269type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;1269type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;


1282| 值 | 說明 | 位置 |1282| 值 | 說明 | 位置 |

1283| :- | :- | :- |1283| :- | :- | :- |

1284| `'user'` | 全域使用者設定 | `~/.claude/settings.json` |1284| `'user'` | 全域使用者設定 | `~/.claude/settings.json` |

1285| `'project'` | 共用專案設定(受版本控制) | `.claude/settings.json` |1285| `'project'` | 共享的專案設定(納入版本控制) | `.claude/settings.json` |

1286| `'local'` | 本機專案設定,Claude Code 將設定儲存至此檔案時會將其加入 gitignore | `.claude/settings.local.json` |1286| `'local'` | 本機專案設定,當 Claude Code 將設定儲存至其中時會加入 gitignore | `.claude/settings.local.json` |

1287 1287 

1288#### 預設行為1288#### 預設行為

1289 1289 

1290當省略 `settingSources` 或其值為 `undefined` 時,`query()` 會載入與 Claude Code CLI 相同的檔案系統設定:使用者、專案與本機設定。關於無論此選項為何都會被讀取的輸入,以及如何停用它們,請參閱 [settingSources 不控制的項目](https://code.claude.com/docs/zh-TW/agent-sdk/claude-code-features.md#what-settingsources-does-not-control)。1290當 `settingSources` 被省略或為 `undefined` 時,`query()` 會載入與 Claude Code CLI 相同的檔案系統設定:使用者、專案和本機。關於無論此選項為何都會讀取的輸入以及如何停用它們,請參閱 [settingSources 不控制的內容](https://code.claude.com/docs/zh-TW/agent-sdk/claude-code-features.md#what-settingsources-does-not-control)。

1291 1291 

1292#### 為何使用 settingSources1292#### 為何使用 settingSources

1293 1293 


1303});1303});

1304```1304```

1305 1305 

1306**僅載入特定設定來源:**1306**僅載入特定的設定來源:**

1307 1307 

1308```typescript theme={null}1308```typescript theme={null}

1309import { query } from "@anthropic-ai/claude-agent-sdk";1309import { query } from "@anthropic-ai/claude-agent-sdk";


1317});1317});

1318```1318```

1319 1319 

1320若要載入 CLAUDE.md 專案指令,請在 `settingSources` 中包含 `"project"`。關於 CLAUDE.md 的載入如何與系統提示詞選項互動,請參閱[修改系統提示詞](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#claude-md-files-for-project-level-instructions)。1320若要載入 CLAUDE.md 專案指令,請在 `settingSources` 中包含 `"project"`。關於 CLAUDE.md 載入如何與系統提示詞選項互動,請參閱[修改系統提示詞](https://code.claude.com/docs/zh-TW/agent-sdk/modifying-system-prompts.md#claude-md-files-for-project-level-instructions)。

1321 1321 

1322#### 設定優先順序1322#### 設定優先順序

1323 1323 

1324當載入多個來源時,設定會依以下優先順序合併(由高至低):1324當載入多個來源時,設定會依下列優先順序合併(由高至低):

1325 1325 

13261. 本機設定(`.claude/settings.local.json`)13261. 本機設定(`.claude/settings.local.json`)

13272. 專案設定(`.claude/settings.json`)13272. 專案設定(`.claude/settings.json`)

13283. 使用者設定(`~/.claude/settings.json`)13283. 使用者設定(`~/.claude/settings.json`)

1329 1329 

1330`agents`、`allowedTools` 與 `settings` 等程式化選項會覆寫使用者、專案與本機的檔案系統設定。受管理的政策設定優先於程式化選項。1330以程式方式指定的選項(例如 `agents`、`allowedTools` 和 `settings`)會覆寫使用者、專案和本機的檔案系統設定。受管政策設定優先於以程式方式指定的選項。

1331 1331 

1332### `PermissionMode`1332### `PermissionMode`

1333 1333 


1345 1345 

1346用於控制工具使用的自訂權限函式型別。1346用於控制工具使用的自訂權限函式型別。

1347 1347 

1348此函式是 SDK 中互動式權限提示的替代方案:只有在[權限評估流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)判定為需要提示時才會被呼叫。已由 `allowedTools` 項目、設定中的允許規則,或權限模式(例如 `acceptEdits` 或 `bypassPermissions`)核准的工具呼叫,永遠不會呼叫此函式。若要對每個工具呼叫進行把關,請改用 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/agent-sdk/hooks)。1348此函式是 SDK 對互動式權限提示的替代:只有在[權限評估流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)解析為提示時才會被叫用。已由 `allowedTools` 項目、設定中的允許規則或權限模式(例如 `acceptEdits` 或 `bypassPermissions`)核准的工具呼叫,永遠不會叫用它。若要把關每一個工具呼叫,請改用 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/agent-sdk/hooks)。

1349 1349 

1350允許規則不會預先核准[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves);關於其中哪些動作會送達回呼函式,以及在 `dontAsk` 與 `auto` 模式下會發生什麼情況,請參閱[權限的評估方式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。1350允許規則不會預先核准[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves);關於其中哪些會到達回呼,以及在 `dontAsk` 和 `auto` 模式下會發生什麼,請參閱[權限如何評估](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。

1351 1351 

1352```typescript theme={null}1352```typescript theme={null}

1353type CanUseTool = (1353type CanUseTool = (


1370 1370 

1371| 選項 | 型別 | 說明 |1371| 選項 | 型別 | 說明 |

1372| :- | :- | :- |1372| :- | :- | :- |

1373| `signal` | `AbortSignal` | 當操作應中止時會發出訊號 |1373| `signal` | `AbortSignal` | 若操作應中止則會發出訊號 |

1374| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 建議的權限更新,讓使用者不會再次因此工具而收到提示。Bash 提示會包含一個[目的地](#permissionupdatedestination)為 `localSettings` 的建議,因此在 `updatedPermissions` 中回傳它會將規則寫入 `.claude/settings.local.json`,並跨工作階段保留。 |1374| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 建議的權限更新,讓使用者不會再次被詢問此工具。Bash 提示包含一個 `localSettings` [目的地](#permissionupdatedestination)的建議,因此在 `updatedPermissions` 中回傳它會將規則寫入 `.claude/settings.local.json`,並跨工作階段保留。 |

1375| `blockedPath` | `string` | 觸發權限請求的檔案路徑(如適用) |1375| `blockedPath` | `string` | 觸發權限請求的檔案路徑(如適用) |

1376| `mcpServer` | `{ name: string; source: string }` | 對於 `mcp__*` 工具,提供該工具的 MCP 伺服器以及該伺服器定義的來源,欄位與 [`McpServerProvenance`](#mcpserverprovenance) 相同。其他工具則不存在此欄位。需要 Agent SDK v0.3.274 或更新版本 |1376| `mcpServer` | `{ name: string; source: string }` | 對於 `mcp__*` 工具,提供該工具的 MCP 伺服器及該伺服器定義的來源,欄位與 [`McpServerProvenance`](#mcpserverprovenance) 相同。其他工具則不存在。需要 Agent SDK v0.3.274 或更新版本 |

1377| `decisionReason` | `string` | 說明觸發此權限請求的原因 |1377| `decisionReason` | `string` | 說明為何觸發此權限請求 |

1378| `defaultToNo` | `boolean` | 當為 `true` 時,單一誤觸按鍵不得核准此請求:開啟提示時應停留在拒絕選項上,不要預先選取核准,也不要提供單鍵核准的快捷鍵。需要 Agent SDK v0.3.268 或更新版本 |1378| `defaultToNo` | `boolean` | 當為 `true` 時,單一誤觸的按鍵不得核准此請求:請讓您的提示停在拒絕選項上、不要預先選取核准,也不要提供單鍵核准的快捷鍵。需要 Agent SDK v0.3.268 或更新版本 |

1379| `suppressAlwaysAllowRule` | `boolean` | 當為 `true` 時,不要為此請求提供持久的「一律允許」選項。需要 Agent SDK v0.3.268 或更新版本 |1379| `suppressAlwaysAllowRule` | `boolean` | 當為 `true` 時,不要為此請求提供持續性的「永遠允許」選項。需要 Agent SDK v0.3.268 或更新版本 |

1380| `toolUseID` | `string` | 此特定工具呼叫在助理訊息中的唯一識別碼 |1380| `toolUseID` | `string` | 助理訊息中此特定工具呼叫的唯一識別碼 |

1381| `agentID` | `string` | 若在 sub-agent 中執行,則為該 sub-agent 的 ID |1381| `agentID` | `string` | 若在 sub-agent 中執行,則為該 sub-agent 的 ID |

1382| `requestId` | `string` | `control_request` 封套的 `request_id`。您的應用程式在 SDK 之外傳送的 `control_response`(例如經簽署的 HTTP POST)必須回傳此值,讓 Claude Code 程序能將回覆與請求配對 |1382| `requestId` | `string` | `control_request` 封包的 `request_id`。您的應用程式在 SDK 之外傳送的 `control_response`(例如已簽署的 HTTP POST)必須回傳此值,Claude Code 程序才能將回覆與請求配對 |

1383 1383 

1384回呼函式通常透過回傳 [`PermissionResult`](#permissionresult) 來處理請求,SDK 會將其作為 `control_response` 透過其傳輸層寫回。只有在您的應用程式已透過自己的管道為此請求傳送 `control_response`(並回傳 `requestId`)時,才應回傳 `null`;此時 SDK 會略過將回應寫入其傳輸層。在其他任何情況下回傳 `null`,都會使工具呼叫無限期遭到阻擋,因為永遠不會傳送 `control_response`,而權限提示不會逾時。1384回呼通常透過回傳 [`PermissionResult`](#permissionresult) 來解決請求,SDK 會將其作為 `control_response` 透過其傳輸寫回。只有在您的應用程式已透過自己的管道為此請求傳送 `control_response`(並回傳 `requestId`)時,才回傳 `null`;SDK 隨後會略過將回應寫入其傳輸。在任何其他情況下回傳 `null`,都會使工具呼叫無限期封鎖,因為永遠不會傳送 `control_response`,且權限提示不會逾時。

1385 1385 

1386`requestId` 選項與 `null` 回傳值需要 Claude Code v2.1.199 或更新版本。1386`requestId` 選項和 `null` 回傳值需要 Claude Code v2.1.199 或更新版本。

1387 1387 

1388### `PermissionResult`1388### `PermissionResult`

1389 1389 


1405 };1405 };

1406```1406```

1407 1407 

1408如果您回傳 `allow` 且 `updatedPermissions` 中有超過 4,096 個項目,Claude Code 會將結果視為無效並拒絕該工具呼叫。每個更新算作一個項目,其 `rules` 或 `directories` 清單中的每個條目也各算一個項目。拒絕訊息的結尾為 `updatedPermissions may hold at most 4096 updates, rules and directories in all`。若要讓呼叫被允許,請回傳 4,096 個或更少的項目。1408如果您回傳 `allow` 且 `updatedPermissions` 中有超過 4,096 個項目,Claude Code 會將結果視為無效並拒絕該工具呼叫。每個更新計為一個項目,其 `rules` 或 `directories` 清單中的每個條目也各計為一個項目。拒絕訊息的結尾為 `updatedPermissions may hold at most 4096 updates, rules and directories in all.` 若要讓呼叫被允許,請回傳 4,096 個或更少的項目。

1409 1409 

1410### `ToolConfig`1410### `ToolConfig`

1411 1411 


1421 1421 

1422| 欄位 | 型別 | 說明 |1422| 欄位 | 型別 | 說明 |

1423| :- | :- | :- |1423| :- | :- | :- |

1424| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | 啟用 [`AskUserQuestion`](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#question-format) 選項上的 `preview` 欄位,並設定其內容格式。未設定時,Claude 不會產生預覽 |1424| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | 啟用 [`AskUserQuestion`](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#question-format) 選項上的 `preview` 欄位並設定其內容格式。未設定時,Claude 不會產生預覽 |

1425 1425 

1426### `McpServerConfig`1426### `McpServerConfig`

1427 1427 


1468 1468 

1469#### `McpSdkServerConfigWithInstance`1469#### `McpSdkServerConfigWithInstance`

1470 1470 

1471行程內 MCP 伺服器的設定。它就是 [`createSdkMcpServer()`](#createsdkmcpserver) 所回傳的內容,再加上您可自行新增、由 [`McpServerToolPolicy`](#mcpservertoolpolicy) 項目組成的選用 `tools` 清單。1471程序內 MCP 伺服器的設定。它是 [`createSdkMcpServer()`](#createsdkmcpserver) 的回傳值,再加上您新增的選用 [`McpServerToolPolicy`](#mcpservertoolpolicy) 項目 `tools` 清單。

1472 1472 

1473```typescript theme={null}1473```typescript theme={null}

1474type McpSdkServerConfigWithInstance = {1474type McpSdkServerConfigWithInstance = {


1480};1480};

1481```1481```

1482 1482 

1483若要讓伺服器某個工具的呼叫需要核准或予以拒絕,請新增一個指名該工具的政策項目。將 `createSdkMcpServer()` 回傳的內容展開到 `mcpServers` 下的物件中,並將該項目放入該物件上的 `tools` 清單,因為該函式的 `tools` 選項接受的是工具定義,而非政策項目。政策清單需要 Agent SDK v0.3.301 或更新版本,而 [`McpServerToolPolicy`](#mcpservertoolpolicy) 說明了每個 `permission_policy` 值的作用。1483若要讓伺服器某個工具的呼叫需要核准或拒絕它們,請新增一個指名該工具的政策項目。將 `createSdkMcpServer()` 的回傳值展開到 `mcpServers` 下的一個物件中,並將該項目放在該物件上的 `tools` 清單中,因為該函式的 `tools` 選項接受的是工具定義,而不是政策項目。政策清單需要 Agent SDK v0.3.301 或更新版本,[`McpServerToolPolicy`](#mcpservertoolpolicy) 說明每個 `permission_policy` 值的作用。

1484 1484 

1485在此指令碼中,`allowedTools` 萬用字元預先核准了 `records` 伺服器上的所有工具,但 `delete_record` 被標記為 `always_ask`,因此對它的呼叫仍會送到 `canUseTool`。由於帶有 `destructiveHint: true` 註解,即使工作階段在 `auto` 模式下執行,呼叫仍會到達回呼;否則自動模式的[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)可能會核准它。1485在此指令碼中,`allowedTools` 萬用字元預先核准了 `records` 伺服器上的每個工具,但 `delete_record` 被標記為 `always_ask`,因此對它的呼叫仍會送到 `canUseTool`。有了 `destructiveHint: true` 註解,即使工作階段以 `auto` 模式執行,呼叫仍會到達回呼,否則自動模式的[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)可能會核准它。

1486 1486 

1487```typescript theme={null}1487```typescript theme={null}

1488import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";1488import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";


1523 1523 

1524當 Claude 呼叫 `delete_record` 時,指令碼會印出 `Approval requested for mcp__records__delete_record`。1524當 Claude 呼叫 `delete_record` 時,指令碼會印出 `Approval requested for mcp__records__delete_record`。

1525 1525 

1526若要在工作階段執行期間變更或解除工具的原則,請將帶有新 `tools` 值的伺服器設定傳給 [`setMcpServers()`](#mcpsetserversresult)。您傳入的 `tools` 值會從 Claude 下一次呼叫該伺服器的工具時生效:1526若要在工作階段執行期間變更或解除工具的政策,請將帶有新 `tools` 值的伺服器設定傳給 [`setMcpServers()`](#mcpsetserversresult)。您傳入的 `tools` 值會從 Claude 下一次呼叫該伺服器的工具時開始生效:

1527 1527 

1528* **含有項目的清單**:這些項目會取代目前的原則1528* **含有項目的清單**:這些項目會取代目前的政策

1529* **空清單**:清除伺服器上的所有原則1529* **空清單**:清除伺服器上的所有政策

1530* **沒有 `tools` 鍵**:保留目前的原則1530* **沒有 `tools` 鍵**:保留目前的政策

1531 1531 

1532請在該呼叫中納入您的其他程序內伺服器,以及先前 `setMcpServers()` 呼叫所新增的任何伺服器,否則該呼叫會中斷它們的連線。1532請在該呼叫中包含您的其他程序內伺服器,以及先前 `setMcpServers()` 呼叫所新增的任何伺服器,否則該呼叫會中斷它們的連線。

1533 1533 

1534#### `McpServerToolPolicy`1534#### `McpServerToolPolicy`

1535 1535 

1536[`McpSdkServerConfigWithInstance`](#mcpsdkserverconfigwithinstance) 的 `tools` 清單中的一個項目,指名伺服器的某個工具,並為對該工具的呼叫設定權限原則。此清單需要 Agent SDK v0.3.301 或更新版本,以及 Claude Code v2.1.301 或更新版本。較舊的 Claude Code 執行檔(例如您以 `pathToClaudeCodeExecutable` 指向的執行檔)會忽略此清單。此時 `always_ask` 和 `always_deny` 不會被強制執行,每個呼叫都會經過[權限流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。1536[`McpSdkServerConfigWithInstance`](#mcpsdkserverconfigwithinstance) 的 `tools` 清單中的一個項目,指名伺服器的某個工具,並為對該工具的呼叫設定權限政策。此清單需要 Agent SDK v0.3.301 或更新版本,以及 Claude Code v2.1.301 或更新版本。較舊的 Claude Code 執行檔(例如您以 `pathToClaudeCodeExecutable` 指定的執行檔)會忽略此清單。此時 `always_ask` 和 `always_deny` 不會被強制執行,每個呼叫都會經過[權限流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。

1537 1537 

1538```typescript theme={null}1538```typescript theme={null}

1539type McpServerToolPolicy = {1539type McpServerToolPolicy = {


1546| 欄位 | 型別 | 說明 |1546| 欄位 | 型別 | 說明 |

1547| :- | :- | :- |1547| :- | :- | :- |

1548| `name` | `string` | 傳給 [`tool()`](#tool) 的工具原始名稱,不含 `mcp__<server>__` 前綴 |1548| `name` | `string` | 傳給 [`tool()`](#tool) 的工具原始名稱,不含 `mcp__<server>__` 前綴 |

1549| `permission_policy` | `'always_allow' \| 'always_ask' \| 'always_deny'` | 此工具呼叫的核准原則,[`always_ask` 或 `always_deny`](#permission-policy-values)。`always_allow` 在程序內伺服器上會被忽略:若要預先核准工具,請改為在 [`allowedTools`](#options) 中列出它 |1549| `permission_policy` | `'always_allow' \| 'always_ask' \| 'always_deny'` | 工具呼叫的核准政策,[`always_ask` 或 `always_deny`](#permission-policy-values)。`always_allow` 在程序內伺服器上會被忽略:若要預先核准工具,請改為在 [`allowedTools`](#options) 中列出它 |

1550| `org_max_permission` | `'allow' \| 'ask' \| 'blocked'` | 由組織管理員設定的每個工具上限。在程序內伺服器上會被忽略,因此請保持未設定 |1550| `org_max_permission` | `'allow' \| 'ask' \| 'blocked'` | 由組織管理員設定的每個工具上限。在程序內伺服器上會被忽略,因此請勿設定 |

1551 1551 

1552##### `permission_policy` 值1552##### `permission_policy` 值

1553 1553 

1554選擇 `always_ask` 以自行核准每個呼叫,或選擇 `always_deny` 以直接封鎖該工具:1554選擇 `always_ask` 以自行核准每個呼叫,或選擇 `always_deny` 以直接封鎖該工具:

1555 1555 

1556* **`always_ask`**:對該工具的每個呼叫都[需要核准](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),即使有 `allowedTools` 項目或允許規則涵蓋它。除非先行處理,否則呼叫會送到您的 `canUseTool` 回呼或 [`permissionPromptToolName`](#options) 工具。您載入的外掛中的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) [可以先核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。否則,在 `dontAsk` 模式下會被拒絕,而在 [`auto`、`plan` 和 `bypassPermissions` 模式](#permission-modes-that-can-approve-an-always_ask-call)下,它可能在抵達您的回呼之前就被核准1556* **`always_ask`**:對該工具的每個呼叫都[需要核准](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),即使有 `allowedTools` 項目或允許規則涵蓋它。呼叫會送到您的 `canUseTool` 回呼或 [`permissionPromptToolName`](#options) 工具,除非它先被處理。您載入的外掛中的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) [可以先核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。否則,在 `dontAsk` 模式下會被拒絕,而在 [`auto`、`plan` 和 `bypassPermissions` 模式](#permission-modes-that-can-approve-an-always_ask-call)下,它可能在到達您的回呼之前就被核准

1557* **`always_deny`**:對該工具的呼叫在每種權限模式下都[會被拒絕](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),包括 `bypassPermissions`,但您載入的外掛中的 mod [仍可以核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)1557* **`always_deny`**:對該工具的呼叫在每種權限模式下都[會被拒絕](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),包括 `bypassPermissions`,但您載入的外掛中的 mod [仍然可以核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)

1558 1558 

1559如果您既未傳入 `canUseTool` 也未傳入 `permissionPromptToolName`,或將 [`permissionPrompts`](#options) 設為 `'none'`,則未先行處理的 `always_ask` 呼叫會被拒絕,除非有 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 允許它。1559如果您既未傳入 `canUseTool` 也未傳入 `permissionPromptToolName`,或將 [`permissionPrompts`](#options) 設為 `'none'`,則未先被處理的 `always_ask` 呼叫會被拒絕,除非有 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 允許它。

1560 1560 

1561##### 可以核准 `always_ask` 呼叫的權限模式1561##### 可以核准 `always_ask` 呼叫的權限模式

1562 1562 

1563在 `auto`、`plan` 和 `bypassPermissions` 模式下,對標記為 [`always_ask`](#permission-policy-values) 之工具的呼叫,可能在到達您的 `canUseTool` 回呼之前就被核准。1563在 `auto`、`plan` 和 `bypassPermissions` 模式下,對標記為 [`always_ask`](#permission-policy-values) 的工具的呼叫,可能在到達您的 `canUseTool` 回呼之前就被核准。

1564 1564 

1565* **`auto`**:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)會審查呼叫並可能允許它。若要讓每個呼叫在 `auto` 模式下都抵達您的回呼,請在工具的[註解](#toolannotations)中設定 `destructiveHint: true`1565* **`auto`**:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)會審查該呼叫並可能允許它。若要讓 `auto` 模式下的每個呼叫都到達您的回呼,請在工具的[註解](#toolannotations)中設定 `destructiveHint: true`

1566* **`plan`**:當工作階段[可使用自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)時,對註解為 `readOnlyHint: true` 的 `always_ask` 工具的呼叫會送到自動模式分類器,分類器可能允許它們。對其他 `always_ask` 工具的呼叫會抵達您的回呼。若要讓唯讀工具的呼叫也抵達您的回呼,請在該工具的註解中,於 `readOnlyHint: true` 旁加入 `destructiveHint: true`。或者,將 [`useAutoModeDuringPlan`](https://code.claude.com/docs/zh-TW/settings-reference#useautomodeduringplan) 設為 `false`,這會在規劃期間關閉分類器1566* **`plan`**:當[自動模式可供](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)工作階段使用時,對註解為 `readOnlyHint: true` 的 `always_ask` 工具的呼叫會送到自動模式分類器,分類器可能允許它們。對其他 `always_ask` 工具的呼叫會到達您的回呼。若要讓唯讀工具的呼叫也到達您的回呼,請在該工具的註解中於 `readOnlyHint: true` 之外加上 `destructiveHint: true`。或者,將 [`useAutoModeDuringPlan`](https://code.claude.com/docs/zh-TW/settings-reference#useautomodeduringplan) 設為 `false`,以在規劃期間關閉分類器

1567* **`bypassPermissions`**:當 [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數為 `true` 時(在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中即是如此),無論工具的註解為何,呼叫都會在不經過您回呼的情況下被核准。在其他任何地方,呼叫都會抵達您的回呼。若要讓它在雲端工作階段中也抵達您的回呼,請改以 `default` 或 `acceptEdits` 模式執行工作階段1567* **`bypassPermissions`**:當 [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數為 `true` 時(如同在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中),無論工具的註解為何,呼叫都會在不經過您的回呼的情況下被核准。在其他任何地方,呼叫都會到達您的回呼。若要讓它在雲端工作階段中也到達您的回呼,請改以 `default` 或 `acceptEdits` 模式執行工作階段

1568 1568 

1569在 `auto` 和 `plan` 模式下,請明確將 `destructiveHint` 設為 `true`。對於 `always_ask` 呼叫,Claude Code 會將未設定的 `destructiveHint` 視為 `false`,儘管 [`ToolAnnotations`](#toolannotations) 下列出的預設值為 `true`。1569在 `auto` 和 `plan` 模式下,請明確將 `destructiveHint` 設為 `true`。對於 `always_ask` 呼叫,Claude Code 會將未設定的 `destructiveHint` 視為 `false`,儘管 [`ToolAnnotations`](#toolannotations) 下列出的預設值為 `true`。

1570 1570 


1594| :- | :- | :- |1594| :- | :- | :- |

1595| `type` | `'local'` | 必須為 `'local'`(目前僅支援本機外掛) |1595| `type` | `'local'` | 必須為 `'local'`(目前僅支援本機外掛) |

1596| `path` | `string` | 外掛目錄的路徑。相對路徑會在工作階段啟動時相對於 [`cwd`](#options) 選項解析。當您在工作階段中途以 [`addPlugins`](#load-more-plugin-folders-with-addplugins) 載入外掛時,路徑必須是絕對路徑 |1596| `path` | `string` | 外掛目錄的路徑。相對路徑會在工作階段啟動時相對於 [`cwd`](#options) 選項解析。當您在工作階段中途以 [`addPlugins`](#load-more-plugin-folders-with-addplugins) 載入外掛時,路徑必須是絕對路徑 |

1597| `skipMcpDiscovery` | `boolean` | 當為 `true` 時,SDK 會從此外掛載入 skill、hook、agent 與命令,但不會讀取其 `.mcp.json` 或 manifest 中的 `mcpServers`。當您的應用程式自行管理外掛的 MCP 連線時,請設定此項。 |1597| `skipMcpDiscovery` | `boolean` | 當為 `true` 時,SDK 會從此外掛載入 skill、hook、agent 和命令,但不會讀取其 `.mcp.json` 或 manifest 的 `mcpServers`。當您的應用程式自行管理外掛的 MCP 連線時,請設定此項。 |

1598 1598 

1599**範例:**1599**範例:**

1600 1600 


1605];1605];

1606```1606```

1607 1607 

1608關於建立與使用外掛的完整資訊,請參閱[外掛](https://code.claude.com/docs/zh-TW/agent-sdk/plugins.md)。1608如需建立和使用外掛的完整資訊,請參閱[外掛](https://code.claude.com/docs/zh-TW/agent-sdk/plugins.md)。

1609 1609 

1610## 訊息類型1610## 訊息類型

1611 1611 


4705 humanSchedule: string;4705 humanSchedule: string;

4706 recurring: boolean;4706 recurring: boolean;

4707 durable?: boolean; // 當持久化到 .claude/scheduled_tasks.json 時為真;當僅限工作階段時為假4707 durable?: boolean; // 當持久化到 .claude/scheduled_tasks.json 時為真;當僅限工作階段時為假

4708 nextFireAt?: number;

4708};4709};

4709```4710```

4710 4711 

4711傳回工作 ID 和排程的人類可讀描述。4712傳回工作 ID、人類可讀的排程以及下次執行時間。`nextFireAt` 以紀元毫秒表示該時間,且已套用[抖動](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#jitter),因此它就是工作設定執行的時間。此欄位需要 TypeScript Agent SDK v0.3.299 或更新版本以及 Claude Code v2.1.299 或更新版本。

4712 4713 

4713### CronDelete4714### CronDelete

4714 4715 


4735 prompt: string;4736 prompt: string;

4736 recurring?: boolean;4737 recurring?: boolean;

4737 durable?: boolean;4738 durable?: boolean;

4739 nextFireAt?: number;

4738 }[];4740 }[];

4739};4741};

4740```4742```

4741 4743 

4742傳回排程的 cron 工作:來自 `.claude/scheduled_tasks.json` 的持久化工作和來自目前工作階段的僅限工作階段工作。僅限工作階段的工作攜帶 `durable: false`;從磁碟讀取的工作省略欄位。4744傳回排程的 cron 工作:來自 `.claude/scheduled_tasks.json` 的持久化工作和來自目前工作階段的僅限工作階段工作。僅限工作階段的工作攜帶 `durable: false`;從磁碟讀取的工作省略欄位。

4743 4745 

4746`nextFireAt` 是工作的下次執行時間(以紀元毫秒表示),已包含[抖動](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#jitter)。任何值都不會早於 `CronList` 呼叫的時間:時間已[過去但未執行](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#how-scheduled-tasks-run)的工作會攜帶該呼叫的時間。此欄位需要 TypeScript Agent SDK v0.3.299 或更新版本以及 Claude Code v2.1.299 或更新版本。

4747 

4744### ScheduleWakeup4748### ScheduleWakeup

4745 4749 

4746**工具名稱:** `ScheduleWakeup`4750**工具名稱:** `ScheduleWakeup`


5458};5462};

5459```5463```

5460 5464 

5465`setMcpServers()` 的 promise 會在新增的 stdio、HTTP 和 SSE 伺服器連線或失敗後解決,因此來自已連線伺服器的工具在下一回合可用。

5466 

5461當您呼叫 `setMcpServers()` 時,Claude Code 應用這些規則:5467當您呼叫 `setMcpServers()` 時,Claude Code 應用這些規則:

5462 5468 

5463* **呼叫未命名的伺服器**:在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,Claude Code 會中斷先前 `setMcpServers()` 呼叫所新增的伺服器以及進程內 SDK 伺服器的連線,並在 `removed` 中列出它們。其他伺服器會持續執行,且不會列在 `removed` 中,其中包括來自 [`mcpServers`](#options) 選項的 stdio、HTTP 和 SSE 伺服器、來自設定檔的伺服器,以及外掛提供的伺服器。5469* **呼叫未命名的伺服器**:在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,Claude Code 會中斷先前 `setMcpServers()` 呼叫所新增的伺服器以及進程內 SDK 伺服器的連線,並在 `removed` 中列出它們。其他伺服器會持續執行,且不會列在 `removed` 中,其中包括來自 [`mcpServers`](#options) 選項的 stdio、HTTP 和 SSE 伺服器、來自設定檔的伺服器,以及外掛提供的伺服器。


5467* **CLI 在啟動時啟動的內建伺服器**:如果呼叫命名一個,Claude Code 會捨棄該項目並在 `errors` 中報告它。5473* **CLI 在啟動時啟動的內建伺服器**:如果呼叫命名一個,Claude Code 會捨棄該項目並在 `errors` 中報告它。

5468* **與 MCP 安裝範圍(例如 `.mcp.json`)中的伺服器同名的 stdio、HTTP 或 SSE 伺服器**:在該名稱下,工作階段會使用您的伺服器的工具,而非[安裝範圍伺服器](https://code.claude.com/docs/zh-TW/mcp.md#mcp-installation-scopes)的工具。在 Claude Code v2.1.305 之前,當您的應用程式[重新載入外掛](#query-object)時,Claude Code 可能會中斷您的伺服器連線,改為連線至安裝範圍伺服器。5474* **與 MCP 安裝範圍(例如 `.mcp.json`)中的伺服器同名的 stdio、HTTP 或 SSE 伺服器**:在該名稱下,工作階段會使用您的伺服器的工具,而非[安裝範圍伺服器](https://code.claude.com/docs/zh-TW/mcp.md#mcp-installation-scopes)的工具。在 Claude Code v2.1.305 之前,當您的應用程式[重新載入外掛](#query-object)時,Claude Code 可能會中斷您的伺服器連線,改為連線至安裝範圍伺服器。

5469 5475 

5470承諾在新增的 stdio、HTTP 和 SSE 伺服器連線或失敗後解決,因此來自已連線伺服器的工具在下一回合可用。

5471 

5472`added` 列出 Claude Code 新增或替換的伺服器,無論它們是否連線。未能連線的伺服器同時出現在 `added` 和 `errors` 中,失敗文字在 `errors` 下,`failed` 列在 [`mcpServerStatus()`](#methods) 中。在 Claude Code v2.1.257 之前,連線嘗試拋出的伺服器僅在 `errors` 下報告。5476`added` 列出 Claude Code 新增或替換的伺服器,無論它們是否連線。未能連線的伺服器同時出現在 `added` 和 `errors` 中,失敗文字在 `errors` 下,`failed` 列在 [`mcpServerStatus()`](#methods) 中。在 Claude Code v2.1.257 之前,連線嘗試拋出的伺服器僅在 `errors` 下報告。

5473 5477 

5478以 `Blocked by enterprise` 開頭的 `errors` 值表示政策拒絕了該伺服器,而非連線失敗:

5479 

5480* `Blocked by enterprise policy (allowedMcpServers/deniedMcpServers)`:該伺服器不在 `added` 中。有 [`deniedMcpServers`](https://code.claude.com/docs/zh-TW/managed-mcp#policy-based-control-with-allowlists-and-denylists) 項目與其相符,或已設定 `allowedMcpServers` 清單但未包含它。如果該清單位於您透過 [`settingSources`](#options) 載入的設定檔中,請編輯該檔案。如果它位於受管設定中,請要求您的管理員變更它。

5481* `Blocked by enterprise managed policy`:該伺服器在 `added` 中,並在 `mcpServerStatus()` 中有一個 `failed` 列。請詢問管理員是哪項政策封鎖了它。

5482 

5474### `RewindFilesResult`5483### `RewindFilesResult`

5475 5484 

5476`rewindFiles()` 操作的結果。5485`rewindFiles()` 操作的結果。

Details

24 24 

25## 使用 Bedrock 登入25## 使用 Bedrock 登入

26 26 

27如果您有 AWS 認證資訊,並想透過 Amazon Bedrock 開始使用 Claude Code,登入精靈會引導您完成整個過程。您只需在每個帳戶上完成一次 AWS 端的先決條件;精靈會處理 Claude Code 端的設定。27如果您擁有 AWS 憑證,並想透過 Amazon Bedrock 開始使用 Claude Code,登入精靈會引導您完成整個流程。AWS 端的先決條件每個帳戶只需完成一次;Claude Code 端則由精靈處理。

28 28 

29**1. 在您的 AWS 帳戶中啟用 Anthropic 模型**29**1. 在您的 AWS 帳戶中啟用 Anthropic 模型**

30 30 

31在 [Amazon Bedrock 主控台](https://console.aws.amazon.com/bedrock/)中,開啟模型目錄,選擇 Anthropic 模型,並提交使用案例表單。提交後會立即授予存取權限。如需 AWS Organizations 的相關資訊,請參閱[提交使用案例詳細資訊](#1-submit-use-case-details);如需您的角色所需的權限,請參閱 [IAM 設定](#iam-configuration)。31在 [Amazon Bedrock 主控台](https://console.aws.amazon.com/bedrock/)中,開啟 Model catalog,選取一個 Anthropic 模型,然後提交使用案例表單。提交後會立即授予存取權。關於 AWS Organizations,請參閱[提交使用案例詳細資訊](#1-submit-use-case-details);關於您的角色所需的權限,請參閱 [IAM 設定](#iam-configuration)。

32 32 

33**2. 啟動 Claude Code 並選擇 Amazon Bedrock**33**2. 啟動 Claude Code 並選擇 Amazon Bedrock**

34 34 

35執行 `claude`。在登入提示時,選擇**第三方平台**,然後選擇 **Amazon Bedrock**。如果您已經登入並看到聊天提示,請執行 `/setup-bedrock` 來開啟精靈。在設定 `CLAUDE_CODE_USE_BEDROCK=1` 之前,Claude Code [會從命令選單中隱藏該命令](https://code.claude.com/docs/zh-TW/commands.md#how-the-command-menu-matches-what-you-type);請完整輸入該命令。35執行 `claude`。在登入提示中,選取 **3rd-party platform**,然後選取 **Amazon Bedrock**。如果您已經登入並看到的是聊天提示,請執行 `/setup-bedrock` 以開啟精靈。在設定 `CLAUDE_CODE_USE_BEDROCK=1` 之前,Claude Code 會[在命令選單中隱藏此命令](https://code.claude.com/docs/zh-TW/commands.md#how-the-command-menu-matches-what-you-type);請完整輸入該命令。

36 36 

37**3. 按照精靈提示進行**37**3. 依照精靈提示操作**

38 38 

39選擇您向 AWS 進行身份驗證的方式:從您的 `~/.aws` 目錄偵測到的 AWS 設定檔、Amazon Bedrock API 金鑰、存取金鑰和密鑰,或已在您環境中的認證資訊。精靈會要求您提供區域,驗證您的帳戶可以叫用哪些 Claude 模型,並讓您釘選它們。它會將結果儲存到您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)的 `env` 區塊中,因此您不需要自行匯出環境變數。39選擇您向 AWS 進行身分驗證的方式:從您的 `~/.aws` 目錄偵測到的 AWS 設定檔、Amazon Bedrock API 金鑰、存取金鑰與密鑰,或環境中既有的憑證。精靈會詢問您的區域,驗證您的帳戶可以呼叫哪些 Claude 模型,並讓您固定這些模型。它會將結果儲存到您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)的 `env` 區塊中,因此您不需要自行匯出環境變數。

40 40 

41登入後,您可以隨時執行 `/setup-bedrock` 來重新開啟精靈並變更您的認證資訊、區域或模型釘選。模型釘選步驟會從您目前釘選的模型開始。精靈會寫入 `~/.claude/settings.json`,或在設定 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars#variables) 時寫入 `$CLAUDE_CONFIG_DIR/settings.json`。41登入後,您可以隨時執行 `/setup-bedrock` 重新開啟精靈,以變更您的憑證、區域或固定的模型。模型固定步驟會從您目前固定的模型開始。精靈會寫入 `~/.claude/settings.json`,或在設定了 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars#variables) 時寫入 `$CLAUDE_CONFIG_DIR/settings.json`。

42 42 

43## 手動設定43## 手動設定

44 44 

authentication.md +68 −57

Details

17 17 

18如果瀏覽器未自動開啟,請按 `c` 將登入 URL 複製到您的剪貼簿,然後將其貼到您的瀏覽器中。18如果瀏覽器未自動開啟,請按 `c` 將登入 URL 複製到您的剪貼簿,然後將其貼到您的瀏覽器中。

19 19 

20如果您的瀏覽器在您登入後顯示登入代碼而不是重新導向回來,請將其貼到終端機的 `Paste code here if prompted` 提示符處。這在瀏覽器無法連接到 Claude Code 的本機回呼伺服器時發生,這在 WSL2、SSH 工作階段和容器中很常見。20如果您的瀏覽器在您登入後顯示登入代碼而不是重新導向回來,請將其貼到終端機的 `Paste code here if prompted` 提示處。

21 21 

22登入完成時,終端機會顯示 `Login successful`,並提示您按 `Enter` 繼續。22登入完成時,終端機會顯示 `Login successful`,並提示您按 `Enter` 繼續。

23 23 


54 54 

55在您開啟新終端機並首次執行 `claude-work` 後,Claude Code 會引導您完成新目錄的登入和設定。由於 Claude Code 將該類登入儲存在設定目錄外,單獨的目錄無法將兩個 Claude Console 登入 [不使用 API 金鑰](#sign-in-without-an-api-key) 分開。55在您開啟新終端機並首次執行 `claude-work` 後,Claude Code 會引導您完成新目錄的登入和設定。由於 Claude Code 將該類登入儲存在設定目錄外,單獨的目錄無法將兩個 Claude Console 登入 [不使用 API 金鑰](#sign-in-without-an-api-key) 分開。

56 56 

57## 設定團隊驗證57## 設定團隊身分驗證

58 58 

59對於團隊和組織,您可以透過以下方式之一配置 Claude Code 存取:59對於團隊和組織,您可以透過以下其中一種方式設定 Claude Code 存取權:

60 60 

61* [Claude for Teams 或 Enterprise](#claude-for-teams-or-enterprise),建議用於大多數團隊61* [Claude for Teams 或 Enterprise](#claude-for-teams-or-enterprise),建議大多數團隊使用

62* [Claude Console](#claude-console-authentication)62* [Claude Console](#claude-console-authentication)

63* [Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway),一個自託管閘道,使用您的 IdP 簽署開發人員,並將推論路由到您配置的雲端提供商63* [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway),一種自行託管的閘道,會透過您的 IdP 讓開發人員登入,並將推論路由至您設定的雲端供應商

64* [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md)64* [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md)

65* [Google Cloud's Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)65* [Google Cloud's Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)

66* [Microsoft Foundry](https://code.claude.com/docs/zh-TW/microsoft-foundry.md)66* [Microsoft Foundry](https://code.claude.com/docs/zh-TW/microsoft-foundry.md)

67 67 

68### Claude for Teams 或 Enterprise68### Claude for Teams 或 Enterprise

69 69 

70[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,並具有集中式帳單和團隊管理。70[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,並享有集中計費與團隊管理。

71 71 

72* **Claude for Teams**:自助服務方案,具有協作功能、管理工具、SSO、帳單管理和 [伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md),用於組織範圍的 Claude Code 配置。最適合較小的團隊。72* **Claude for Teams**:自助式方案,提供協作功能、管理工具、SSO、計費管理,以及用於全組織 Claude Code 設定的[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)。最適合較小的團隊。

73* **Claude for Enterprise**:新增網域擷取、角色型權限和合規性 API。最適合具有安全性和合規性要求的大型組織。73* **Claude for Enterprise**:增加網域擷取、角色型權限和合規 API。最適合有安全性與合規需求的大型組織。

74 74 

75**1. 訂閱**75**1. 訂閱**

76 76 

77訂閱 [Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams_step#team-&-enterprise) 或聯絡銷售部門以取得 [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise_step)。77訂閱 [Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams_step#team-&-enterprise),或聯絡業務團隊洽詢 [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise_step)。

78 78 

79**2. 邀請團隊成員**79**2. 邀請團隊成員**

80 80 


82 82 

83**3. 安裝並登入**83**3. 安裝並登入**

84 84 

85團隊成員安裝 Claude Code 並使用其 claude.ai 帳戶登入。85團隊成員安裝 Claude Code,並使用其 claude.ai 帳戶登入。

86 86 

87### Claude Console 驗證87### Claude Console 身分驗證

88 88 

89對於偏好基於 API 的帳單的組織,您可以透過 Claude Console 設定存取。89對於偏好以 API 為基礎計費的組織,您可以透過 Claude Console 設定存取權。

90 90 

91**1. 建立或使用 Console 帳戶**91**1. 建立或使用 Console 帳戶**

92 92 


96 96 

97您可以透過以下任一方法新增使用者:97您可以透過以下任一方法新增使用者:

98 98 

99* 從 Console 的 Members 頁面 [platform.claude.com/settings/members](https://platform.claude.com/settings/members) 大量邀請使用者:點選 **Invite**99* 從 Console 的 Members 頁面 [platform.claude.com/settings/members](https://platform.claude.com/settings/members) 大量邀請使用者:點擊 **Invite**

100* [設定 SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)100* [設定 SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)

101 101 

102**3. 指派角色**102**3. 指派角色**

103 103 

104邀請使用者時,指派以下其中一個角色:104邀請使用者時,指派以下其中一種角色:

105 105 

106* **Claude Code** 角色:使用者只能建立 Claude Code API 金鑰106* **Claude Code** 角色:使用者只能建立 Claude Code API 金鑰

107* **Developer** 角色:使用者可以建立任何類型的 API 金鑰107* **Developer** 角色:使用者可以建立任何類型的 API 金鑰

108 108 

109**4. 使用者完成設定**109**4. 使用者完成設定**

110 110 

111每個受邀使用者需要:111每位受邀使用者需要:

112 112 

113* 接受 Console 邀請113* 接受 Console 邀請

114* [檢查系統要求](https://code.claude.com/docs/zh-TW/setup.md#system-requirements)114* [檢查系統需求](https://code.claude.com/docs/zh-TW/setup.md#system-requirements)

115* [安裝 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#install-claude-code)115* [安裝 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#install-claude-code)

116* 使用 Console 帳戶憑證登入116* 使用 Console 帳戶憑證登入

117 117 

118#### 不使用 API 金鑰登入118#### 不使用 API 金鑰登入

119 119 

120您可以不建立 API 金鑰而登入 Console 帳戶,即使您的組織不允許開發人員建立 API 金鑰。在 `/login` 提示時選擇 Anthropic Console 帳戶,Claude Code 會詢問您想如何登入。需要 Claude Code v2.1.242 或更新版本。兩種路由都會在瀏覽器中將您登入 Console,但在 Claude Code 之後儲存的內容不同:120您可以在不建立 API 金鑰的情況下登入 Console 帳戶,即使您的組織不允許開發人員建立 API 金鑰也可以。在 `/login` 提示中選擇 Anthropic Console 帳戶,Claude Code 便會詢問您要如何登入。需要 Claude Code v2.1.242 或更新版本。兩種方式都會在瀏覽器中讓您登入 Console,差別在於 Claude Code 之後儲存的內容:

121 121 

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

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

124 124 

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

126 126 

127您不會在每台機器上都獲得選擇。Claude Code 在以下情況下會在不詢問的情況下建立 API 金鑰:127並非每台機器都會提供這個選擇。在以下情況中,Claude Code 會直接建立 API 金鑰而不詢問:

128 128 

129* 您針對雲端提供商執行,例如 [Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry](https://code.claude.com/docs/zh-TW/third-party-integrations.md) 或 [Claude Platform on AWS](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)129* 您透過雲端供應商執行,例如 [Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry](https://code.claude.com/docs/zh-TW/third-party-integrations.md),或 [Claude Platform on AWS](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)

130* 任何設定檔設定 [`forceLoginOrgUUID`](#restrict-login-to-your-organization),或將 `forceLoginMethod` 設定為 `"claudeai"` 或 `"console"`130* 任何設定檔設定了 [`forceLoginOrgUUID`](#restrict-login-to-your-organization),或將 `forceLoginMethod` 設為 `"claudeai"`

131* 您機器上存在受管設定來源(例如受管設定檔、MDM 設定檔或快取的伺服器受管設定),但 Claude Code [無法讀取它](https://code.claude.com/docs/zh-TW/managed-settings.md#invalid-entries-in-managed-settings),且沒有其他受管來源提供原則131* `forceLoginMethod` 為 `"console"` 且沒有任何設定檔設定 `forceLoginOrgUUID`,直到您在登入失敗後從錯誤畫面重試為止

132* 您機器上的某個受管設定來源(例如受管設定檔、MDM 設定檔或快取的伺服器受管設定)存在,但 Claude Code [無法讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#invalid-entries-in-managed-settings),且沒有其他受管來源提供政策

132 133 

133在不使用金鑰登入之前,請取消設定 `ANTHROPIC_API_KEY`。134在不使用金鑰登入之前,請先取消設定 `ANTHROPIC_API_KEY`。

134 135 

135在不使用金鑰登入後,您有一個設定檔而不是儲存的 API 金鑰:136在不使用金鑰登入後,您擁有的是設定檔,而非已儲存的 API 金鑰:

136 137 

137* **它寫入的設定檔**:Claude Code 寫入由 `ANTHROPIC_PROFILE` 命名的設定檔、您的作用中設定檔或 `default`。如果該設定檔是聯盟設定檔,Claude Code 會拒絕登入而不是覆寫它138* **寫入哪個設定檔**:Claude Code 會寫入 `ANTHROPIC_PROFILE` 所指定的設定檔,或您目前使用中的設定檔,或 `default`。如果該設定檔是聯合設定檔,Claude Code 會拒絕此次登入,而不會覆寫它

138* **它簽出的內容**:Claude Code 簽出儲存在機器上的任何 claude.ai 登入139* **會將您登出哪些登入**:Claude Code 會將您登出此機器上儲存的任何 claude.ai 登入

139* **如何復原它**:執行 `/logout`,它會移除並撤銷此登入寫入的認證140* **如何復原**:執行 `/logout`,這會移除並撤銷此次登入所寫入的憑證

140 141 

141有關設定檔的所有其他內容都適用於此登入,包括它在您其他認證中的排名、您在 `/status` 中獲得的 `Profile` 列,以及需要 claude.ai 登入的功能。請參閱 [Anthropic 設定檔和聯盟認證](#anthropic-profiles-and-federation-credentials)。142設定檔的其他所有行為都適用於此登入方式,包括它與您其他憑證之間的優先順序、您在 `/status` 中看到的 `Profile` 列,以及需要 claude.ai 登入的功能。請參閱 [Anthropic 設定檔與聯合憑證](#anthropic-profiles-and-federation-credentials)。

142 143 

143### 雲端提供商驗證144#### 在受管機器上停止提供免金鑰登入

145 

146若要讓 Claude Code 停止提供[免金鑰登入](#sign-in-without-an-api-key),請使用您的裝置管理工具,將[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中的 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid) 部署到每位開發人員的機器。將其設為您的 [Console 組織 ID](https://platform.claude.com/settings/organization)。部署之前,請確認每位開發人員都擁有[可以建立 API 金鑰的角色](#claude-console-authentication)。部署之後,沒有該角色的開發人員將無法在 `/login` 登入 Console。

147 

148若只將 `forceLoginMethod` 設為 `"console"`,開發人員可以重試失敗的登入並選擇免金鑰選項。部署 `forceLoginOrgUUID` 後,登入畫面會移除該選項,但開發人員仍可使用他們已有的或透過 [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) 建立的 [Anthropic 設定檔](#anthropic-profiles-and-federation-credentials)。部署之後,請在每台機器上處理以下憑證與登入:

149 

150* **免金鑰登入**:若要讓開發人員改用 API 金鑰,請讓他們登出後再次登入 Console,這會建立金鑰。若是免金鑰登入,他們需在 shell 中執行 `claude auth logout`。若是 `ant auth login` 設定檔,他們需執行 `ant auth logout`。如果機器上同時存在設定檔與 API 金鑰,Claude Code 會拒絕工作階段,因此他們必須先登出。

151* **環境與輔助程式憑證**:Claude Code 會拒絕使用 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 進行身分驗證的工作階段,即使這些憑證是由受管設定提供的也一樣。請移除這些憑證,然後讓開發人員執行 `/login` 以建立已儲存的 API 金鑰。

152* **claude.ai 登入**:Claude Code 會[拒絕登入](#restrict-login-to-your-organization)您未列出的組織,包括機器上已在使用中的組織。若要保留某個組織,請將其加入 `forceLoginOrgUUID` 陣列。

153 

154### 雲端供應商身分驗證

144 155 

145對於使用 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 的團隊:156對於使用 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 的團隊:

146 157 

147**1. 遵循提供商設定**158**1. 依照供應商設定**

148 159 

149遵循 [Amazon Bedrock 文件](https://code.claude.com/docs/zh-TW/amazon-bedrock.md)、[Google Cloud's Agent Platform 文件](https://code.claude.com/docs/zh-TW/google-vertex-ai.md) 或 [Microsoft Foundry 文件](https://code.claude.com/docs/zh-TW/microsoft-foundry.md)。160請依照 [Amazon Bedrock 文件](https://code.claude.com/docs/zh-TW/amazon-bedrock.md)、[Google Cloud's Agent Platform 文件](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)或 [Microsoft Foundry 文件](https://code.claude.com/docs/zh-TW/microsoft-foundry.md)進行設定。

150 161 

151**2. 分發配置**162**2. 發佈設定**

152 163 

153將環境變數和產生雲端認證的說明分發給您的使用者。深入瞭解如何 [在此管理配置](https://code.claude.com/docs/zh-TW/settings.md)。164將環境變數以及產生雲端憑證的說明發佈給您的使用者。進一步了解如何[在此管理設定](https://code.claude.com/docs/zh-TW/settings.md)。

154 165 

155**3. 安裝 Claude Code**166**3. 安裝 Claude Code**

156 167 

157使用者可以 [安裝 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#install-claude-code)。168使用者可以[安裝 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#install-claude-code)。

158 169 

159### 限制登入到您的組織170### 將登入限制於您的組織

160 171 

161若要要求開發人員的 claude.ai 登入屬於特定的 Anthropic 組織,請在 [受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md) 中設定 [`forceLoginMethod`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginmethod) 和 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid)。將 `forceLoginOrgUUID` 設定為您的組織 ID,該 ID 顯示在 [claude.ai 管理設定](https://claude.ai/admin-settings/organization) 中,適用於 Claude for Teams 或 Enterprise 組織。Claude Code 會針對任何其他組織的 claude.ai 登入報告錯誤,如果使用中的 claude.ai 認證屬於未列出的組織,則在啟動時退出。172若要要求開發人員的 claude.ai 登入屬於特定的 Anthropic 組織,請在[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定 [`forceLoginMethod`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginmethod) 和 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid)。將 `forceLoginOrgUUID` 設為您的組織 ID,對於 Claude for Teams 或 Enterprise 組織,該 ID 顯示於 [claude.ai 管理設定](https://claude.ai/admin-settings/organization)中。對於登入任何其他組織的 claude.ai 登入,Claude Code 會回報錯誤;如果使用中的 claude.ai 憑證屬於未列出的組織,Claude Code 會在啟動時結束。

162 173 

163對於 Claude Console 登入,Claude Code 使用 `forceLoginOrgUUID` 在您將其設定為單一 Console 組織 ID 時在 Console 登入頁面上預先選擇組織,該 ID 顯示在 [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization)。它不檢查產生的 Console 認證屬於哪個組織,無論是在登入時還是在啟動時。使用 Console 帳戶登入的開發人員在您部署金鑰之前會保持登入狀態,該儲存的金鑰在同時需要 [閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 登入的機器上或在選擇雲端提供商的工作階段中會被阻止。174對於 Claude Console 登入,當您將 `forceLoginOrgUUID` 設為單一 Console 組織 ID(顯示於 [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization))時,Claude Code 會使用它在 Console 登入頁面上預先選取該組織。無論在登入時或啟動時,它都不會檢查所產生的 Console 憑證屬於哪個組織。在您部署這些設定鍵之前就已使用 Console 帳戶登入的開發人員會保持登入狀態,而該已儲存的金鑰在同時要求[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入的機器上,或在選擇雲端供應商的工作階段中,會遭到封鎖。

164 175 

165如果您在任何設定檔中設定 `forceLoginOrgUUID`,Claude Code 會停止在該檔案適用的工作階段中提供 [無金鑰 Console 登入](#sign-in-without-an-api-key),並改為建立 API 金鑰。若要將開發人員導向 claude.ai 登入,請將 `forceLoginMethod` 設定為 `"claudeai"`。176如果您在任何設定檔中設定了 `forceLoginOrgUUID`,Claude Code 會在該檔案適用的工作階段中停止提供[免金鑰 Console 登入](#sign-in-without-an-api-key),改為建立 API 金鑰。若要引導開發人員改用 claude.ai 登入,請將 `forceLoginMethod` 設為 `"claudeai"`。

166 177 

167在 Claude Code v2.1.212 或更新版本上,此處列出的每個登入路徑都套用 `forceLoginMethod`。在終端機的互動式登入畫面上,透過 `/login` 或首次執行上線到達,Claude Code 預先選擇 `claudeai` 或 `console` 方法而不強制執行,因此即使 `forceLoginMethod` 設定為 `"claudeai"`,開發人員仍然可以在那裡完成 Console 登入。178在 Claude Code v2.1.212 或更新版本中,此處列出的每條登入路徑都會套用 `forceLoginMethod`。在終端機的互動式登入畫面(透過 `/login` 或首次執行的引導流程進入)上,Claude Code 會預先選取 `claudeai` 或 `console` 方式但不會強制執行,因此即使將 `forceLoginMethod` 設為 `"claudeai"`,開發人員仍可在該處完成 Console 登入。

168 179 

169路徑在 `forceLoginOrgUUID` 上有所不同:180各路徑在 `forceLoginOrgUUID` 上的處理方式不同:

170 181 

171* **終端機、[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md) 和 Agent SDK 登入**:驗證 claude.ai 帳戶登入的 `forceLoginOrgUUID`182* **終端機、[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)和 Agent SDK 登入**:會針對 claude.ai 帳戶登入驗證 `forceLoginOrgUUID`

172* **`claude setup-token` 和 `/install-github-app`**:僅強制執行 `forceLoginMethod`,因此它們可以在不同的組織中鑄造權杖183* **`claude setup-token` 和 `/install-github-app`**:只強制執行 `forceLoginMethod`,因此可以在不同的組織中產生 token

173* **[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 登入**:由 `forceLoginMethod: "gateway"` 選擇而不是受其限制,並且不針對 Anthropic 組織進行驗證,因此 `forceLoginOrgUUID` 不適用;使用您的閘道身分提供者來限制存取184* **[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入**:由 `forceLoginMethod: "gateway"` 選取而非受其限制,且不會針對 Anthropic 組織進行身分驗證,因此 `forceLoginOrgUUID` 不適用;請使用您的閘道身分識別提供者來限制存取

174 185 

175透過您的裝置管理工具部署金鑰。[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md) 只能到達已驗證到您的組織的帳戶,因此它們無法重新導向開發人員的首次登入。如果您的組織也分發伺服器受管設定,請在兩個位置設定金鑰:受管設定來源 [不會合併](https://code.claude.com/docs/zh-TW/server-managed-settings.md#settings-precedence),快取的伺服器受管設定會取代裝置受管檔案,除了幾個 [各受管來源的個別金鑰例外](https://code.claude.com/docs/zh-TW/server-managed-settings.md#per-key-exceptions-across-managed-sources)。`forceLoginOrgUUID` 和 `forceLoginMethod` 的 `"claudeai"` 和 `"console"` 值不在這些例外中,因此請將它們保留在兩個位置。186請透過您的裝置管理工具部署 `forceLoginMethod` 和 `forceLoginOrgUUID`。開發人員只有在向您的組織完成身分驗證後才會收到[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md),因此您無法使用這些設定來重新導向首次登入。如果您也從 claude.ai 發佈伺服器受管設定,請在所有用戶端都執行 v2.1.299 或更新版本之前,也在該處設定這兩個設定鍵。關於之後應在何處設定這些設定鍵,以及套用哪個來源的值,請參閱[哪個受管來源提供登入設定鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-supplies-login-keys)。

176 187 

177在 [閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 部署中,也請將 `forceLoginMethod` 和 `forceLoginOrgUUID` 保留在 [閘道提供的設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#managed) 之外。188在[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)部署中,也請勿將 `forceLoginMethod` 和 `forceLoginOrgUUID` 放入[閘道提供的設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#managed)中。

178 189 

179金鑰也決定不使用登入認證的工作階段是否可以啟動。請參閱設定參考中的 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid) 以了解完整行為。190這些設定鍵也會決定不使用登入憑證的工作階段能否啟動。完整行為請參閱設定參考中的 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid)。

180 191 

181* **`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper`**:在啟動時被阻止。在 `forceLoginOrgUUID` 下,無法驗證環境認證的組織成員資格,在 `forceLoginMethod` 下,認證會代替所需的登入。當受管設定也需要 [閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 登入時,Claude Code 會以相同方式阻止由較早的 Claude Console 登入儲存的 API 金鑰。請參閱 [管理員原則需要雲端閘道登入](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)192* **`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper`**:在啟動時遭到封鎖。在 `forceLoginOrgUUID` 之下,無法驗證環境憑證的組織成員資格;而在 `forceLoginMethod` 之下,該憑證會取代必要的登入。當受管設定也要求[閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入時,Claude Code 會以相同方式封鎖先前 Claude Console 登入所儲存的 API 金鑰。請參閱 [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)

182* **雲端提供商工作階段,例如 Amazon Bedrock**:僅在 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 認證,或由較早的 Claude Console 登入儲存的 API 金鑰仍然存在於機器上時被阻止。移除它,工作階段就會啟動。這些工作階段針對您的雲端提供商進行驗證,其存取原則管理它們193* **雲端供應商工作階段,例如 Amazon Bedrock**:只有在機器上仍存在 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 憑證,或先前 Claude Console 登入所儲存的 API 金鑰時,才會遭到封鎖。移除後,工作階段即可啟動。這些工作階段會向您的雲端供應商進行身分驗證,並受其存取政策管轄

183* **[Anthropic 設定檔或聯盟認證](#anthropic-profiles-and-federation-credentials)**:除非 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 認證,或由較早的 Claude Console 登入儲存的 API 金鑰也存在於機器上,否則不會被阻止。金鑰不檢查設定檔屬於哪個組織194* **[Anthropic 設定檔或聯合憑證](#anthropic-profiles-and-federation-credentials)**:不會遭到封鎖,除非機器上同時存在 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 憑證,或先前 Claude Console 登入所儲存的 API 金鑰。這些設定鍵不會檢查設定檔屬於哪個組織

184 195 

185### 限制機器可能使用的 API 提供商196### 限制機器可使用的 API 供應商

186 197 

187[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md) 中的 [`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 列出受管機器可能透過哪些服務到達 Claude,例如 Anthropic API、Amazon Bedrock 或 LLM 閘道。它補充 `forceLoginMethod` 和 `forceLoginOrgUUID`,這些控制工作階段在與 Anthropic 通話時使用的帳戶。需要 Claude Code v2.1.285 或更新版本。198[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中的 [`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 會列出受管機器可透過哪些服務存取 Claude,例如 Anthropic API、Amazon Bedrock 或 LLM 閘道。它與 `forceLoginMethod` 和 `forceLoginOrgUUID` 互補,後兩者管轄工作階段與 Anthropic 通訊時使用哪個帳戶。需要 Claude Code v2.1.285 或更新版本。

188 199 

189```json managed-settings.json theme={null}200```json managed-settings.json theme={null}

190{201{


194}205}

195```206```

196 207 

197使用此檔案,簽入到您的 claude.ai 組織或為 Amazon Bedrock 配置的開發人員會正常啟動。為任何其他提供商設定的工作階段在啟動時被拒絕,執行中的工作階段切換到一個時在其下一個請求時被拒絕。[受管設定不允許此 API 提供商](https://code.claude.com/docs/zh-TW/errors.md#managed-settings-dont-allow-this-api-provider) 顯示每條訊息。208使用此檔案時,已登入您 claude.ai 組織或已設定為使用 Amazon Bedrock 的開發人員可正常啟動。設定為任何其他供應商的工作階段會在啟動時遭到拒絕,而切換至其他供應商的執行中工作階段會在下一個請求時遭到拒絕。[Managed settings don't allow this API provider](https://code.claude.com/docs/zh-TW/errors.md#managed-settings-dont-allow-this-api-provider) 列出了每則訊息。

198 209 

199* **允許 LLM 閘道或代理**:列出 `"customEndpoint"` 並在同一來源的受管 `env` 區塊中設定閘道的 URL。[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders) 列出每個值並說明哪些端點變數需要受管 `env` 釘選。210* **允許 LLM 閘道或代理伺服器**:列出 `"customEndpoint"`,並在同一來源的受管 `env` 區塊中設定閘道的 URL。[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders)列出了每個值,並說明哪些端點變數需要在受管 `env` 中固定。

200* **在受管機器上部署**:將清單放在承載您其餘原則的受管來源中。該項目的 [範圍注記](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders) 說明伺服器受管清單如何與其結合。211* **在受管機器上部署**:將清單放在承載您其餘政策的受管來源中。該項目的[範圍說明](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders)說明了伺服器受管清單如何與其合併。

201* **僅伺服器受管設定**:您僅在 [伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md) 中設定的清單只能到達擷取您組織設定的工作階段,因此將其視為您無法透過裝置管理到達的機器的便利性,而不是強制執行。[平台可用性](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability) 列出哪些工作階段擷取它們。212* **僅限伺服器受管設定**:僅在[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)中設定的清單,只會套用到擷取您組織設定的工作階段,因此請將其視為對無法透過裝置管理觸及的機器的便利措施,而非強制執行手段。[平台可用性](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)列出了哪些工作階段會擷取這些設定。

202 213 

203## 認證管理214## 認證管理

204 215 

Details

157 157 

158## 使用 `/auto-mode-setup` 產生環境項目158## 使用 `/auto-mode-setup` 產生環境項目

159 159 

160執行 `/auto-mode-setup` 讓 Claude Code 從您的專案和最近在其中的工作階段中草擬 `autoMode.environment` 項目,有時也會草擬[規則項目](#override-the-block-and-allow-rules)。如果您接受草稿,Claude Code 會將其寫入 `~/.claude/settings.json`。160執行 `/auto-mode-setup`,讓 Claude Code 根據您的專案以及您最近在該專案中的工作階段,草擬 `autoMode.environment` 項目,有時也會草擬[規則項目](#override-the-block-and-allow-rules)。如果您接受草稿,Claude Code 會將其寫入 `~/.claude/settings.json`。

161 161 

162> [!NOTE]162> [!NOTE]

163>163>

164> `/auto-mode-setup` 適用於 Pro、Max、Team 和 Enterprise 方案,以及使用 Claude Console API 金鑰時。在 Pro、Max 或 Team 方案上,您需要 v2.1.228 或更新版本,在原生 Windows 上則需要 v2.1.233 或更新版本。在 Enterprise 方案上或使用 Claude Console API 金鑰時,您需要 v2.1.283 或更新版本。如果您的工作階段中沒有此命令,請參閱 [`/auto-mode-setup` returns "Unknown command"](#auto-mode-setup-returns-unknown-command)。164> `/auto-mode-setup` 適用於 Pro、Max、Team 和 Enterprise 方案,以及使用 Claude Console API 金鑰時。在 Pro、Max 或 Team 方案中,您需要 v2.1.228 或更新版本,若是原生 Windows 則需要 v2.1.233 或更新版本。在 Enterprise 方案中或使用 Claude Console API 金鑰時,您需要 v2.1.283 或更新版本。如果您的工作階段中沒有此命令,請參閱 [`/auto-mode-setup` 傳回「Unknown command」](#auto-mode-setup-returns-unknown-command)。

165 165 

166### `/auto-mode-setup` 讀取的內容166### `/auto-mode-setup` 會讀取哪些內容

167 167 

168如果 `~/.claude/settings.json` 已經包含 `autoMode` 項目,Claude Code 會先詢問是否要新增到您的環境清單或取代它,並且無論如何都會保留您撰寫的規則。Claude Code 接著會詢問您如何使用此專案,並在掃描任何內容之前提供兩個選擇性掃描。在掃描中,Claude Code 始終讀取這些來源:168如果 `~/.claude/settings.json` 中已經有 `autoMode` 項目,Claude Code 會先詢問要新增到您的環境清單還是取代它,並且無論哪種情況都會保留您撰寫的規則。接著,Claude Code 會詢問您如何使用此專案,並在掃描任何內容之前提供兩項選用掃描。在掃描中,Claude Code 一律會讀取以下來源:

169 169 

170* 此專案的 `CLAUDE.md`、`README.md`、設定檔和 git 遠端170* 此專案的 `CLAUDE.md`、`README.md`、設定檔和 git remote

171* 您的 `autoMode` 和 `permissions.allow` 設定171* 您的 `autoMode` 和 `permissions.allow` 設定

172* Claude 在您最近在此專案中的工作階段中執行的命令的主機、儲存貯體和命令名稱,絕不是您的訊息172* Claude 在您最近於此專案中的工作階段所執行命令中的主機、bucket 和命令名稱,絕不包含您的訊息

173 173 

174兩個選擇性掃描各新增一個來源:174兩項選用掃描各新增一個來源:

175 175 

176* 您 shell 歷史記錄中每個命令的第一個字176* 您 shell 歷史記錄中每個命令的第一個字

177* 您主目錄下遠端主機和儲存庫名稱177* 您家目錄下各儲存庫的遠端主機和名稱

178 178 

179### 檢閱並儲存草稿179### 檢閱並儲存草稿

180 180 

181Claude Code 在背景掃描,然後向您顯示草稿。您可以整體接受或捨棄它,所以之後編輯 `~/.claude/settings.json` 以調整單個項目。當您接受時,Claude Code 會寫入草稿並將其與您已有的設定協調:181Claude Code 會在背景中掃描,然後向您顯示草稿。您只能整體接受或捨棄草稿,因此之後請編輯 `~/.claude/settings.json` 來調整個別項目。當您接受時,Claude Code 會寫入草稿,並將其與您現有的設定進行協調:

182 182 

183* Claude Code 寫入 `environment` 清單時不包含 `"$defaults"`,因為草稿詳細說明了它保持不變的內建項目183* Claude Code 寫入的 `environment` 清單不含 `"$defaults"`,因為草稿已明確列出其未變更的內建項目

184* Claude Code 在草稿新增項目的 `allow`、`soft_deny` 和 `hard_deny` 清單中各包含 `"$defaults"`,除非您已經撰寫了不含它的 `allow` 清單,所以您尚未取代的[內建規則](#override-the-block-and-allow-rules)仍然有效184* Claude Code 會在草稿新增項目的每個 `allow`、`soft_deny` 和 `hard_deny` 清單中包含 `"$defaults"`,除非您已經撰寫了不含它的 `allow` 清單,如此一來,您尚未取代的[內建規則](#override-the-block-and-allow-rules)仍會保持生效

185* 儲存後,Claude Code 會提供移除 `~/.claude/settings.json` 中自動模式忽略的 `permissions.allow` 規則,例如 `Bash(*)`,或自動核准破壞性命令的規則185* 儲存後,Claude Code 會提議移除 `~/.claude/settings.json` 中自動模式會忽略的 `permissions.allow` 規則(例如 `Bash(*)`),或會自動核准破壞性命令的規則

186 186 

187然後執行 `claude auto-mode config` 以[查看有效結果](#inspect-the-defaults-and-your-effective-config)。187接著執行 `claude auto-mode config` 以[查看實際生效的結果](#inspect-the-defaults-and-your-effective-config)。

188 188 

189### 關閉 `/auto-mode-setup`189### 關閉 `/auto-mode-setup`

190 190 

191一旦自動模式已阻止多個動作,而您仍然沒有 `autoMode.environment` 項目,Claude Code 會在回合結束時顯示標題為「教導自動模式關於您的環境?」的對話框,並提供為您執行 `/auto-mode-setup`。若要停止提供但保留命令,請在該對話框中選擇**不再顯示**。191當自動模式已封鎖數個動作,而您仍然沒有任何 `autoMode.environment` 項目時,Claude Code 會在回合結束時顯示標題為「Teach auto mode about your environment?」的對話框,並提議為您執行 `/auto-mode-setup`。若要停止此提議但保留命令,請在該對話框中選取 **Don't show again**。

192 192 

193若要關閉命令和提供,請將此 [`skillOverrides`](https://code.claude.com/docs/zh-TW/skills#override-skill-visibility-from-settings) 項目新增到 `~/.claude/settings.json`:193若要同時關閉命令和提議,請將此 [`skillOverrides`](https://code.claude.com/docs/zh-TW/skills#override-skill-visibility-from-settings) 項目新增到 `~/.claude/settings.json`:

194 194 

195```json theme={null}195```json theme={null}

196{196{


200}200}

201```201```

202 202 

203`/auto-mode-setup` 是內建命令而不是[捆綁技能](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills),所以此 `skillOverrides` 項目仍然適用於它,但 [`disableBundledSkills`](https://code.claude.com/docs/zh-TW/settings-reference#disablebundledskills) 不會將其關閉。203`/auto-mode-setup` 是內建命令,而非[隨附 skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills),因此此 `skillOverrides` 項目仍然適用於它,但 [`disableBundledSkills`](https://code.claude.com/docs/zh-TW/settings-reference#disablebundledskills) 無法將其關閉。

204 204 

205### `/auto-mode-setup` returns "Unknown command"205### `/auto-mode-setup` returns "Unknown command"

206 206 

207如果在 Claude Code 提示字元中輸入 `/auto-mode-setup` 時顯示 `Unknown command: /auto-mode-setup`,請檢查以下原因:207如果在 Claude Code 提示字元輸入 `/auto-mode-setup` 時顯示 `Unknown command: /auto-mode-setup`,請檢查以下原因:

208 208 

209* **安裝或升級後的第一個工作階段**:啟動新的工作階段。如果該工作階段中仍然沒有此命令,請參閱[之後的工作階段也會在沒有此命令的情況下啟動的設定](https://code.claude.com/docs/zh-TW/env-vars.md#first-session-after-an-install-or-upgrade)。209* **安裝或升級後的第一個工作階段**:啟動新的工作階段。如果該工作階段中仍然沒有此命令,請參閱[後續工作階段啟動時也沒有此命令的設定情況](https://code.claude.com/docs/zh-TW/env-vars.md#first-session-after-an-install-or-upgrade)。

210* **版本過舊**:在您的 shell 中執行 `claude --version`。如果版本低於[您方案的最低要求](#generate-environment-entries),請[更新 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#update-claude-code)。210* **版本過舊**:在您的 shell 中執行 `claude --version`。如果版本低於[您方案的最低版本](#generate-environment-entries),請[更新 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#update-claude-code)。

211* **遙測已關閉、第三方供應商或 Claude apps 閘道**:在 v2.1.304 之前,此命令在[已關閉功能旗標擷取的工作階段](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)中無法使用。如果您的工作階段屬於其中之一,請將 [Claude Code 更新](https://code.claude.com/docs/zh-TW/setup.md#update-claude-code)至 v2.1.304 或更新版本。211* **遙測已關閉、第三方供應商或 Claude apps 閘道**:在 v2.1.304 之前,此命令在[已關閉功能旗標擷取的工作階段](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)中無法使用。如果您的工作階段屬於其中之一,請[更新 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#update-claude-code) 至 v2.1.304 或更新版本。

212 212 

213在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,此命令會改為顯示 `/auto-mode-setup isn't available in this environment.`。請在終端機的互動式工作階段中執行它。213在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,此命令會改為顯示 `/auto-mode-setup isn't available in this environment.`。請在終端機的互動式工作階段中執行此命令。

214 214 

215## 覆蓋阻止和允許規則215## 覆蓋阻止和允許規則

216 216 

Details

515 515 

516> [!WARNING]516> [!WARNING]

517>517>

518> 檢查點涵蓋 Claude 在主要對話中以其自身檔案工具編輯的檔案,因此只有被 Bash 命令動過的檔案[不會被還原](https://code.claude.com/docs/zh-TW/checkpointing.md#bash-command-changes-not-tracked)。它們與 git 搭配使用,而不是取代 git。518> 檢查點涵蓋 Claude 在主要對話中以其自身檔案工具編輯的檔案,因此只被 Bash 命令動過的檔案[不會被還原](https://code.claude.com/docs/zh-TW/checkpointing.md#bash-command-changes-not-tracked)。它們與 git 搭配使用,而不是取代 git。

519 519 

520另外兩個較小的控制:[`/btw`](https://code.claude.com/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw) 可以回答快速問題而不在歷史中加入任何內容。而對於跨越數天的工作,在工作階段中使用 `/rename oauth-migration` 為它命名,之後從 shell 執行 [`claude --resume oauth-migration`](https://code.claude.com/docs/zh-TW/sessions#resume-by-session-id-or-name) 就能接續,檢查點也包含在內。`claude --continue` 會繼續最近的一個工作階段。520另外兩個較小的控制:[`/btw`](https://code.claude.com/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw) 可以回答快速問題而不在歷史中加入任何內容。而對於跨越數天的工作,在工作階段中使用 `/rename oauth-migration` 為它命名,之後從 shell 執行 [`claude --resume oauth-migration`](https://code.claude.com/docs/zh-TW/sessions#resume-by-session-id-or-name) 就能接續,檢查點也包含在內。`claude --continue` 會繼續最近的一個工作階段。

521 521 

Details

52 52 

53## 範例:建立 webhook 接收器53## 範例:建立 webhook 接收器

54 54 

55本逐步解說建立一個單一檔案伺服器,該伺服器監聽 HTTP 要求並將其轉發到您的 Claude Code 工作階段。最後,任何可以傳送 HTTP POST 的東西(如 CI 管道、監控警報或 `curl` 命令)都可以將事件推送給 Claude。55本逐步說明將建立一個單一檔案的伺服器,用來監聽 HTTP 請求並將其轉發至您的 Claude Code 工作階段。完成後,任何能夠傳送 HTTP POST 的來源,例如 CI 管線、監控警示或 `curl` 命令,都能將事件推送給 Claude。

56 56 

57此範例使用 [Bun](https://bun.sh) 作為執行時,用於其內建 HTTP 伺服器和 TypeScript 支援。您可以改用 [Node](https://nodejs.org) 或 [Deno](https://deno.com);唯一的要求是 [MCP SDK](https://www.npmjs.com/package/@modelcontextprotocol/sdk)。57此範例使用 [Bun](https://bun.sh) 作為執行環境,因為它內建 HTTP 伺服器並支援 TypeScript。您也可以改用 [Node](https://nodejs.org) 或 [Deno](https://deno.com);唯一的需求是 [MCP SDK](https://www.npmjs.com/package/@modelcontextprotocol/sdk)。

58 58 

59**1. 建立專案**59**1. 建立專案**

60 60 

61[permission relay](#relay-permission-prompts) 範例直接匯入 `zod`,因此它會與 MCP SDK 一起安裝。建立新目錄並安裝兩者:61[權限轉送](#relay-permission-prompts)範例會直接匯入 `zod`,因此需要與 MCP SDK 一併安裝。建立新目錄並安裝兩者:

62 62 

63```bash theme={null}63```bash theme={null}

64mkdir webhook-channel && cd webhook-channel64mkdir webhook-channel && cd webhook-channel

65bun add @modelcontextprotocol/sdk zod65bun add @modelcontextprotocol/sdk zod

66```66```

67 67 

68**2. 編寫 channel 伺服器**68**2. 撰寫頻道伺服器**

69 69 

70建立名為 `webhook.ts` 的檔案。這是您的整個 channel 伺服器:它透過 stdio 連接到 Claude Code,並在連接埠 8788 上監聽 HTTP POST。當要求到達時,它將主體作為 channel 事件推送給 Claude。70建立名為 `webhook.ts` 的檔案。這就是完整的頻道伺服器:它透過 stdio 連線至 Claude Code,並在連接埠 8788 上監聽 HTTP POST。當請求抵達時,它會將內容主體作為頻道事件推送給 Claude。

71 71 

72```ts title="webhook.ts" theme={null}72```ts title="webhook.ts" theme={null}

73#!/usr/bin/env bun73#!/usr/bin/env bun

74import { Server } from '@modelcontextprotocol/sdk/server/index.js'74import { Server } from '@modelcontextprotocol/sdk/server/index.js'

75import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'75import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

76 76 

77// 建立 MCP 伺服器並將其聲明為 channel77// Create the MCP server and declare it as a channel

78const mcp = new Server(78const mcp = new Server(

79 { name: 'webhook', version: '0.0.1' },79 { name: 'webhook', version: '0.0.1' },

80 {80 {

81 // 這個金鑰是使其成為 channel 的原因 — Claude Code 為其註冊監聽器81 // this key is what makes it a channel — Claude Code registers a listener for it

82 capabilities: { experimental: { 'claude/channel': {} } },82 capabilities: { experimental: { 'claude/channel': {} } },

83 // Claude Code 在伺服器連接時將此傳遞給 Claude 作為內容,因此它知道如何處理這些事件83 // Claude Code delivers this to Claude as context when the server connects, so it knows how to handle these events

84 instructions: 'Events from the webhook channel arrive as <channel source="webhook" ...>. They are one-way: read them and act, no reply expected.',84 instructions: 'Events from the webhook channel arrive as <channel source="webhook" ...>. They are one-way: read them and act, no reply expected.',

85 },85 },

86)86)

87 87 

88// 透過 stdio 連接到 Claude Code(Claude Code 生成此程序)88// Connect to Claude Code over stdio (Claude Code spawns this process)

89await mcp.connect(new StdioServerTransport())89await mcp.connect(new StdioServerTransport())

90 90 

91// 啟動 HTTP 伺服器,將每個 POST 轉發給 Claude91// Start an HTTP server that forwards every POST to Claude

92Bun.serve({92Bun.serve({

93 port: 8788, // 任何開放連接埠都可以93 port: 8788, // any open port works

94 // 僅限 localhost:此機器外的任何東西都無法 POST94 // localhost-only: nothing outside this machine can POST

95 hostname: '127.0.0.1',95 hostname: '127.0.0.1',

96 async fetch(req) {96 async fetch(req) {

97 const body = await req.text()97 const body = await req.text()

98 await mcp.notification({98 await mcp.notification({

99 method: 'notifications/claude/channel',99 method: 'notifications/claude/channel',

100 params: {100 params: {

101 content: body, // 成為 <channel> 標籤的主體101 content: body, // becomes the body of the <channel> tag

102 // 每個金鑰都成為標籤屬性,例如 <channel path="/" method="POST">102 // each key becomes a tag attribute, e.g. <channel path="/" method="POST">

103 meta: { path: new URL(req.url).pathname, method: req.method },103 meta: { path: new URL(req.url).pathname, method: req.method },

104 },104 },

105 })105 })


108})108})

109```109```

110 110 

111該檔案按順序配置伺服器、連接 stdio 並啟動 HTTP 監聽器:111此檔案依序設定伺服器、透過 stdio 連線,並啟動 HTTP 監聽器:

112 112 

113* **伺服器配置**:使用 `claude/channel` 在其功能中建立 MCP 伺服器,這是告訴 Claude Code 這是 channel 的原因。Claude Code 在伺服器連接時將 [`instructions`](#server-options) 字串傳遞給 Claude 作為內容:告訴 Claude 期望什麼事件、是否回覆,以及如果應該回覆,如何路由回覆。113* **伺服器設定**:建立在其 capabilities 中包含 `claude/channel` 的 MCP 伺服器,這正是告知 Claude Code 此為頻道的關鍵。伺服器連線時,Claude Code 會將 [`instructions`](#server-options) 字串作為上下文傳遞給 Claude:請告訴 Claude 預期會收到哪些事件、是否需要回覆,以及若需回覆時應如何轉送回覆。

114* **Stdio 連接**:透過 stdin/stdout 連接到 Claude Code。這對任何 [MCP 伺服器](https://modelcontextprotocol.io/docs/concepts/transports#standard-io) 都是標準的。114* **Stdio 連線**:透過 stdin/stdout 連線至 Claude Code。這是任何 [MCP 伺服器](https://modelcontextprotocol.io/docs/concepts/transports#standard-io)的標準做法。

115* **HTTP 監聽器**:在連接埠 8788 上啟動本機網頁伺服器。每個 POST 主體都透過 `mcp.notification()` 作為 channel 事件轉發給 Claude。`content` 成為事件主體,每個 `meta` 項目成為 `<channel>` 標籤上的屬性。監聽器需要存取 `mcp` 實例,因此它在同一程序中執行。對於較大的專案,您可以將其分割成單獨的模組。115* **HTTP 監聽器**:在連接埠 8788 上啟動本機 Web 伺服器。每個 POST 內容主體都會透過 `mcp.notification()` 作為頻道事件轉發給 Claude。`content` 會成為事件主體,而每個 `meta` 項目會成為 `<channel>` 標籤上的屬性。監聽器需要存取 `mcp` 執行個體,因此它在同一個程序中執行。若是較大型的專案,您可以將其拆分為獨立的模組。

116 116 

117**3. 向 Claude Code 註冊您的伺服器**117**3. 向 Claude Code 註冊您的伺服器**

118 118 

119將伺服器新增到您的 MCP 配置,以便 Claude Code 知道如何啟動它。對於同一目錄中的專案層級 `.mcp.json`,使用相對路徑。對於 `~/.claude.json` 中的使用者層級配置,使用完整絕對路徑,以便可以從任何專案找到伺服器:119將伺服器加入您的 MCP 設定,讓 Claude Code 知道如何啟動它。若是位於同一目錄中的專案層級 `.mcp.json`,請使用相對路徑。若是位於 `~/.claude.json` 的使用者層級設定,請使用完整的絕對路徑,以便從任何專案都能找到該伺服器:

120 120 

121```json title=".mcp.json" theme={null}121```json title=".mcp.json" theme={null}

122{122{


126}126}

127```127```

128 128 

129Claude Code 在啟動時讀取您的 MCP 配置並將每個伺服器作為子程序生成。129Claude Code 會在啟動時讀取您的 MCP 設定,並將每個伺服器作為子程序啟動。

130 130 

131**4. 測試它**131**4. 進行測試**

132 132 

133在研究預覽期間,自訂 channels 不在允許清單上,因此使用開發旗標啟動 Claude Code:133在研究預覽期間,自訂頻道不在允許清單中,因此請使用開發旗標啟動 Claude Code:

134 134 

135```bash theme={null}135```bash theme={null}

136claude --dangerously-load-development-channels server:webhook136claude --dangerously-load-development-channels server:webhook

137```137```

138 138 

139Claude Code 首先顯示一個全螢幕警告對話框,列出您正在載入的開發 channels。選擇**我正在使用此進行本機開發**以繼續,或選擇**結束**以退出。139Claude Code 會先顯示全螢幕警告對話框,列出您正在載入的開發頻道。選取 **I am using this for local development** 以繼續,或選取 **Exit** 以結束。

140 140 

141第一次在此專案中啟動工作階段時,Claude Code 在使用 `.mcp.json` 中的新伺服器之前也會要求同意。對話報告「在此專案中找到新的 MCP 伺服器:webhook」。選擇**使用此 MCP 伺服器**以繼續。141您第一次在此專案中啟動工作階段時,Claude Code 也會在使用 `.mcp.json` 中的新伺服器之前徵求您的同意。對話框會顯示「New MCP server found in this project: webhook」。選取 **Use this MCP server** 以繼續。

142 142 

143接受後,Claude Code 將您的 `webhook.ts` 作為子程序生成,HTTP 監聽器自動在您配置的連接埠上啟動(此範例中為 8788)。您不需要自己執行伺服器。143接受後,Claude Code 會將您的 `webhook.ts` 作為子程序啟動,HTTP 監聽器也會在您設定的連接埠(此範例中為 8788)上自動啟動。您不需要自行執行伺服器。

144 144 

145啟動橫幅下方的暗淡通知確認 channel 已註冊:`Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`。145啟動橫幅下方的淡色通知會確認頻道已註冊:`Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`。

146 146 

147如果您看到'被組織政策阻止',您的組織管理員需要先[啟用 channels](https://code.claude.com/docs/zh-TW/channels.md#enterprise-controls)。147若您看到「blocked by org policy」,表示您的組織管理員需要先[啟用頻道](https://code.claude.com/docs/zh-TW/channels.md#enterprise-controls)。

148 148 

149在單獨的終端機中,透過傳送帶有訊息的 HTTP POST 來模擬 webhook 到您的伺服器。此範例將 CI 失敗警報傳送到連接埠 8788(或您配置的任何連接埠):149在另一個終端機中,傳送附帶訊息的 HTTP POST 至您的伺服器來模擬 webhook。此範例會將 CI 失敗警示傳送至連接埠 8788(或您所設定的任何連接埠):

150 150 

151```bash theme={null}151```bash theme={null}

152curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"152curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"

153```153```

154 154 

155承載作為 `<channel>` 標籤到達 Claude 的內容:155payload 會以 `<channel>` 標籤的形式抵達 Claude 的上下文:

156 156 

157```text theme={null}157```text theme={null}

158<channel source="webhook" path="/" method="POST">158<channel source="webhook" path="/" method="POST">


160</channel>160</channel>

161```161```

162 162 

163您的終端機將事件呈現為單行摘要 `← webhook: build failed on main: https://ci.example.com/run/1234`,而不是原始標籤。然後您會看到 Claude 開始回應:讀取檔案、執行命令或訊息要求的任何內容。這是一個單向 channel,因此 Claude 在您的工作階段中採取行動,但不會透過 webhook 傳送任何內容回去。若要新增回覆,請參閱[公開回覆工具](#expose-a-reply-tool)。163您的終端機會將事件呈現為單行摘要 `← webhook: build failed on main: https://ci.example.com/run/1234`,而非原始標籤。接著您會看到 Claude 開始回應:讀取檔案、執行命令,或執行訊息所要求的任何動作。這是單向頻道,因此 Claude 會在您的工作階段中採取行動,但不會透過 webhook 傳回任何內容。若要加入回覆功能,請參閱[公開回覆工具](#expose-a-reply-tool)。

164 164 

165如果事件未到達,診斷取決於 `curl` 返回的內容:165若事件未抵達,診斷方式取決於 `curl` 傳回的結果:

166 166 

167* **`curl` 成功但沒有任何內容到達 Claude**:在您的工作階段中執行 `/mcp` 以檢查伺服器的狀態。`failed` 狀態通常表示伺服器檔案中的相依性或匯入錯誤。若要查看 stderr 追蹤,請使用 `claude --debug --dangerously-load-development-channels server:webhook` 重新啟動,並檢查 `~/.claude/debug/<session-id>.txt` 的偵錯日誌。167* **`curl` 成功但沒有任何內容送達 Claude**:在您的工作階段中執行 `/mcp` 以檢查伺服器狀態。`failed` 狀態通常表示您的伺服器檔案中有相依性或匯入錯誤。若要查看 stderr 追蹤,請使用 `claude --debug --dangerously-load-development-channels server:webhook` 重新啟動,並檢查位於 `~/.claude/debug/<session-id>.txt` 的偵錯日誌。

168* **`curl` 失敗,出現「連接被拒絕」**:連接埠要麼尚未繫結,要麼來自較早執行的過時程序正在佔用它。`lsof -i :<port>` 顯示正在監聽的內容;在重新啟動工作階段之前 `kill` 過時程序。168* **`curl` 失敗並顯示「connection refused」**:表示連接埠尚未繫結,或是先前執行所遺留的程序仍佔用該連接埠。`lsof -i :<port>` 會顯示正在監聽的程序;請在重新啟動工作階段之前,先以 `kill` 終止遺留的程序。

169 169 

170[fakechat 伺服器](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat)使用網頁 UI、檔案附件和用於雙向聊天的回覆工具擴展此模式。170[fakechat 伺服器](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat)以此模式為基礎進行擴充,加入了 Web UI、檔案附件,以及用於雙向聊天的回覆工具。

171 171 

172## 在研究預覽期間測試172## 在研究預覽期間測試

173 173 

checkpointing.md +44 −44

Details

8 8 

9Claude Code 會自動追蹤 Claude 在您工作時所做的檔案編輯,讓您可以快速撤銷變更並回溯到先前的狀態,以防任何事情出現偏差。9Claude Code 會自動追蹤 Claude 在您工作時所做的檔案編輯,讓您可以快速撤銷變更並回溯到先前的狀態,以防任何事情出現偏差。

10 10 

11## Checkpointing 的運作方式11## 檢查點的運作方式

12 12 

13當您與 Claude 合作時,checkpointing 會自動捕捉每次使用者提示開始一個回合前的程式碼狀態。13在您與 Claude 協作時,檢查點功能會在您送出每個開啟新回合的提示詞之前,自動擷取程式碼的狀態。

14 14 

15### 自動追蹤15### 自動追蹤

16 16 

17Claude Code 追蹤由其檔案編輯工具所做的所有變更:17Claude Code 會追蹤其檔案編輯工具所做的所有變更:

18 18 

19* 每個使用者提示開始一個回合都會建立一個新的 checkpoint19* 您送出的每個開啟新回合的提示詞都會建立一個新的檢查點

20* Claude Code 在一個會話中保留最近 100 個 checkpoint 的檔案快照。捨棄較舊的 checkpoint 會刪除沒有其他 checkpoint 參考的快照檔案,除了每個檔案的第一個快照,VS Code 擴充功能將其用作會話差異的基準。20* Claude Code 會在一個工作階段中保留最近 100 個檢查點的檔案快照。捨棄較舊的檢查點時,會刪除任何剩餘檢查點都不再參照的快照檔案,但每個檔案的第一個快照除外,因為 VS Code 擴充功能會將其作為工作階段差異的基準。

21* Claude Code 將 checkpoints 與對話一起儲存,因此您可以在恢復會話後仍然執行 `/rewind`21* Claude Code 會將檢查點與對話一起儲存,因此在您恢復工作階段後,仍然可以執行 `/rewind`

22* Claude Code 在[保留掃描](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)中刪除會話的檔案快照,預設情況下約在會話最後一次儲存後 30 天。回溯到快照已消失的 checkpoint 可能會失敗,並出現 [`No files were restored`](https://code.claude.com/docs/zh-TW/errors#no-files-were-restored) 錯誤。若要保留快照更久,請設定 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays)。22* Claude Code 會在[保留期清理](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)中刪除工作階段的檔案快照,預設大約在該工作階段最後一次儲存快照的 30 天後進行。倒轉至快照已被刪除的檢查點時,可能會失敗並顯示 [`No files were restored`](https://code.claude.com/docs/zh-TW/errors#no-files-were-restored)。若要將快照保留更久,請設定 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays)。

23 23 

24### 回溯和總結24### 倒轉與摘要

25 25 

26執行 `/rewind`,或在提示輸入為空時按兩次 `Esc`,以開啟回溯選單。26執行 `/rewind`,或在提示詞輸入框為空時按兩次 `Esc`,即可開啟倒轉選單。

27 27 

28> [!NOTE]28> [!NOTE]

29>29>

30> 如果提示輸入包含文字,雙 `Esc` 會清除它而不是開啟選單。清除的文字會儲存到您的輸入歷史記錄中,因此在您完成回溯選單後,按 `Up` 可以召回它。30> 如果提示詞輸入框中有文字,按兩次 `Esc` 會清除文字,而不是開啟選單。被清除的文字會儲存至輸入歷史記錄中,因此在倒轉選單中完成操作後,可以按 `Up` 將其叫回。

31 31 

32回溯選單列出您在工作階段期間傳送的提示詞。選擇您想要操作的點,然後選擇一個動作:32倒轉選單會列出您在工作階段中送出的提示詞。選取您要操作的時間點,然後選擇一個動作:

33 33 

34* **恢復程式碼和對話**:將程式碼和對話都回復到該點34* **Restore code and conversation**:將程式碼和對話都還原至該時間點

35* **恢復對話**:回溯到該訊息,同時保持目前程式碼35* **Restore conversation**:倒轉至該訊息,同時保留目前的程式碼

36* **恢復程式碼**:回復檔案變更,同時保持對話36* **Restore code**:還原檔案變更,同時保留對話

37* **從此處總結**:將此點之後的對話壓縮為摘要,釋放 context window 空間37* **Summarize from here**:將從此時間點之後的對話壓縮成摘要,以釋放上下文視窗空間

38* **從此處之前總結**:將此點之前的對話壓縮為摘要,保持後續訊息完整38* **Summarize up to here**:將此時間點之前的對話壓縮成摘要,並完整保留之後的訊息

39* **算了**:返回訊息清單而不進行任何變更39* **Never mind**:返回訊息清單,不做任何變更

40 40 

41兩個程式碼還原選項只在所選 checkpoint 有追蹤的檔案變更可以回復時出現。如果該點之後沒有捕捉到檔案編輯,選單只會提供**恢復對話**、總結選項和**算了**。41只有在所選檢查點有可還原的已追蹤檔案變更時,才會出現這兩個程式碼還原選項。如果在該時間點之後沒有擷取到任何檔案編輯,選單只會提供 **Restore conversation**、摘要選項以及 **Never mind**。

42 42 

43恢復對話或選擇「從此處總結」後,所選訊息的原始提示會恢復到輸入欄位中,以便您可以重新傳送或編輯它。43還原對話或選擇 Summarize from here 後,所選訊息中的原始提示詞會被還原至輸入欄位,方便您重新送出或加以編輯。

44 44 

45選擇「從此處之前總結」會讓您留在對話末尾,輸入為空。使用任一總結選項,**已總結對話**標記會出現在對話中被壓縮訊息的位置。45選擇 Summarize up to here 會讓您停留在對話的結尾,且輸入框為空。無論使用哪一個摘要選項,對話中原本被壓縮訊息所在的位置都會出現一個 **Summarized conversation** 標記。

46 46 

47#### 如果您在下一個提示詞之前退出,已回溯的訊息可能會重新出現47#### 若在下一個提示詞之前退出,被倒轉的訊息可能會再次出現

48 48 

49若要再次移除重新出現的訊息,請在該工作階段中執行 `/rewind` 並選擇相同的提示詞,然後選擇**恢復對話**。在退出之前,請傳送一個提示詞給 Claude,因為 Claude Code 會將回溯後的對話與該提示詞一起儲存。您已還原的檔案會維持回溯後的狀態。49若要再次移除這些重新出現的訊息,請在該工作階段中執行 `/rewind` 並選取相同的提示詞,然後選擇 **Restore conversation**。在退出之前,請先向 Claude 送出一個提示詞,因為 Claude Code 會將倒轉後的對話與該提示詞一起儲存。您已還原的檔案會維持倒轉後的狀態。

50 50 

51#### 回溯過去已清除的對話51#### 倒轉至已清除的對話之前

52 52 

53如果您在同一個 Claude Code 程序中較早執行了 `/clear`,回溯選單會在清單頂部顯示一個額外的項目,標記為 `/resume <session-id> (previous session)`。選擇它以恢復在 `/clear` 執行前活躍的對話。該項目在您退出 Claude Code 或恢復不同會話之前可用。53如果您稍早在同一個 Claude Code 程序中執行過 `/clear`,倒轉選單會在清單頂端顯示一個額外的項目,標示為 `/resume <session-id> (previous session)`。選取該項目即可恢復執行 `/clear` 之前使用中的對話。在您退出 Claude Code 或恢復其他工作階段之前,此項目都可使用。

54 54 

55#### 引導摘要55#### 引導摘要內容

56 56 

57總結不會改變磁碟上的檔案,原始訊息保留在會話記錄中,因此 Claude 仍然可以參考詳細資訊。若要引導摘要的重點,請用方向鍵反白**總結**選項,並在該列顯示\*\*新增上下文(選用)\*\*的位置輸入指示,然後按 `Enter`。使用其數字鍵選擇選項會立即總結,不需要指示。57摘要不會變更磁碟上的檔案,且原始訊息會保留在工作階段逐字稿中,因此 Claude 仍可參考其中的細節。若要引導摘要的重點,請使用方向鍵反白某個 **Summarize** 選項,並在該列顯示 **add context (optional)** 的位置輸入指示,然後按 `Enter`。若使用數字鍵選取該選項,則會立即進行摘要,不附帶任何指示。

58 58 

59> [!NOTE]59> [!NOTE]

60>60>

61> 總結讓您保持在同一會話中並壓縮上下文,就像有針對性的 `/compact`。若要分支並嘗試不同的方法,同時保持原始會話完整,請改用 [`/branch`](https://code.claude.com/docs/zh-TW/sessions#branch-a-session) 或 `claude --continue --fork-session`。61> 摘要會讓您留在同一個工作階段中並壓縮上下文,類似於有針對性的 `/compact`。若要分支出去嘗試不同的做法,同時完整保留原始工作階段,請改用 [`/branch`](https://code.claude.com/docs/zh-TW/sessions#branch-a-session) 或 `claude --continue --fork-session`。

62 62 

63## 常見使用案例63## 常見使用案例

64 64 


71 71 

72## 限制72## 限制

73 73 

74### Bash 命令變更未追蹤74### Bash 命令的變更不會被追蹤

75 75 

76一旦 Claude 在您的對話中使用其檔案編輯工具編輯過某個檔案,`/rewind` 就會撤銷 Bash 命令之後對該檔案所做的變更。僅由 Bash 命令變更的檔案不會被追蹤,並會保持原樣。若要還原該檔案,請使用版本控制(例如 Git)。76一旦 Claude 在您的對話中使用其檔案編輯工具編輯過某個檔案,`/rewind` 就會復原 Bash 命令之後對該檔案所做的變更。僅由 Bash 命令變更的檔案不會被追蹤,並會保持原樣。若要還原該檔案,請使用版本控制,例如 Git。

77 77 

78在每個提示詞下方,回溯功能表會計算對 Claude 已編輯過之檔案所做的變更,無論這些變更是由什麼造成的。若某個提示詞中有 shell 命令變更了此類檔案,該提示詞也會列出檔案變更。78在每個提示詞下方,rewind 選單會計算對 Claude 已編輯過之檔案的變更,無論這些變更由何者造成。若某個提示詞中有 shell 命令變更了此類檔案,該提示詞也會列出檔案變更。

79 79 

80### 子代理編輯未復原80### Subagent 的編輯不會被還原

81 81 

82[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)使用 Claude 的檔案編輯工具進行編輯,但 Claude Code 通常不會在您的會話檢查點中捕捉這些編輯。回溯是否復原這些編輯取決於子代理的執行方式:82[subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 會使用 Claude 的檔案編輯工具進行編輯,但 Claude Code 通常不會在您工作階段的檢查點中擷取這些編輯。rewind 是否會還原這些編輯,取決於 subagent 的執行方式:

83 83 

84* **前景分叉技能**:[具有 `context: fork` 的技能](https://code.claude.com/docs/zh-TW/skills#run-skills-in-a-subagent)在前景執行,在您自己的回合期間編輯您的工作樹,因此回溯會照常復原其編輯。設定 `background: false` 以在前景執行分叉;有幾種情況([列在技能頁面上](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent))無論設定如何都會在那裡執行。84* **前景分支的 skill**:在前景執行的[具有 `context: fork` 的 skill](https://code.claude.com/docs/zh-TW/skills#run-skills-in-a-subagent) 會在您自己的回合中編輯您的工作樹,因此 rewind 會照常還原其編輯。設定 `background: false` 即可在前景執行分支;在少數情況下([列於 skills 頁面](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent)),無論此設定為何,都會在前景執行。

85* **任何其他 subagent**:回溯只會復原 Claude 在您的對話中已經編輯過的檔案。subagent 對其他檔案的編輯會保留,因此請使用版本控制(例如 Git)來還原它們。這包括在背景執行的分叉 skill(預設值)和背景 [`/code-review --fix`](https://code.claude.com/docs/zh-TW/code-review-local) 執行。85* **任何其他 subagent**:rewind 只會還原 Claude 在您的對話中已編輯過的檔案。subagent 對其他檔案的編輯會保留下來,因此請使用版本控制(例如 Git)來還原這些編輯。這包括在背景執行的分支 skill(預設行為),以及在背景執行的 [`/code-review --fix`](https://code.claude.com/docs/zh-TW/code-review-local)。

86 86 

87### 外部變更未追蹤87### 外部變更不會被追蹤

88 88 

89Checkpointing 只追蹤在目前會話中已編輯的檔案。您在 Claude Code 外部對檔案所做的手動變更以及來自其他並行會話的編輯通常不會被捕捉,除非它們碰巧修改與目前會話相同的檔案。89檢查點功能只會追蹤在目前工作階段中編輯過的檔案。您在 Claude Code 之外對檔案所做的手動變更,以及其他同時進行之工作階段的編輯,通常不會被擷取,除非它們剛好修改了與目前工作階段相同的檔案。

90 90 

91### 訊息在回合中途傳送未進行檢查點91### 回合中途傳送的訊息不會建立檢查點

92 92 

93在回溯功能表中,您[在 Claude 仍在工作時輸入的訊息](https://code.claude.com/docs/zh-TW/interactive-mode.md#queue-messages-while-claude-works)可能會被標記為**不復原程式碼**。被標記的訊息沒有自己的[檢查點](#how-checkpoints-work)。93在 rewind 選單中,您[在 Claude 仍在工作時輸入](https://code.claude.com/docs/zh-TW/interactive-mode.md#queue-messages-while-claude-works)的訊息可能會被標示為 **No code restore**。被標示的訊息沒有自己的[檢查點](#how-checkpoints-work)。

94 94 

95若要撤銷 Claude 在該訊息之後所做的檔案編輯,請選擇開始該回合的提示詞,然後選擇**復原程式碼**或**復原程式碼和對話**。這會還原 Claude 在整個回合中的檔案編輯,包括您的訊息到達之前所做的編輯。95若要復原 Claude 在該訊息之後所做的檔案編輯,請選取開始該回合的提示詞,並選擇 **Restore code** 或 **Restore code and conversation**。這會還原 Claude 在整個回合中所做的檔案編輯,包括您的訊息送達之前的編輯。

96 96 

97### 符號連結和硬連結路徑未復原97### 符號連結與硬連結路徑不會被還原

98 98 

99檢查點功能不會回溯符號連結或硬連結檔案。當您從 `/rewind` 功能表中選擇**復原程式碼**或**復原程式碼和對話**時,Claude Code 會跳過任何是符號連結或硬連結的追蹤路徑,並顯示 `Restored the code, but skipped N files` 警告。跳過的檔案保持其目前內容。若要撤銷工作階段對其中一個檔案的變更,請要求 Claude 反轉編輯或自己編輯檔案。dotfile 管理器符號連結到您的專案中的設定檔以及 pnpm 硬連結到位置的檔案都屬於此類別。99檢查點功能不會 rewind 符號連結或硬連結的檔案。當您從 `/rewind` 選單中選擇 **Restore code** 或 **Restore code and conversation** 時,Claude Code 會略過任何屬於符號連結或硬連結的追蹤路徑,並顯示 `Restored the code, but skipped N files` 警告。被略過的檔案會保留其目前內容。若要復原工作階段對其中某個檔案的變更,請要求 Claude 反轉該編輯,或自行編輯該檔案。由 dotfile 管理工具以符號連結放入您專案中的設定檔,以及由 pnpm 以硬連結放置到位的檔案,都屬於此類別。

100 100 

101若要查看復原跳過的路徑,請在復原前使用 `/debug` 開啟偵錯記錄:`~/.claude/debug/<session-id>.txt` 中的偵錯記錄會列出每個跳過的路徑。如需每個跳過原因和復原步驟,請參閱[錯誤參考中的 skipped-files 項目](https://code.claude.com/docs/zh-TW/errors.md#restored-the-code-but-skipped-files)。101若要查看還原時會略過哪些路徑,請在還原之前使用 `/debug` 開啟除錯日誌:位於 `~/.claude/debug/<session-id>.txt` 的除錯日誌會列出每個被略過的路徑。如需所有略過原因及復原步驟,請參閱[錯誤參考中的略過檔案項目](https://code.claude.com/docs/zh-TW/errors.md#restored-the-code-but-skipped-files)。

102 102 

103### 不是版本控制的替代品103### 無法取代版本控制

104 104 

105Checkpoints 設計用於快速的會話級恢復。對於永久版本歷史和協作,請繼續使用版本控制(例如 Git)進行提交、分支和長期歷史。105檢查點是為了快速的工作階段層級復原而設計。若需要永久的版本歷史與協作,請繼續使用版本控制(例如 Git)來進行提交、分支及長期歷史管理。

106 106 

107## 另請參閱107## 另請參閱

108 108 

Details

57 57 

58## 快速入門58## 快速入門

59 59 

60此快速入門走最小路徑:在您的 IdP 中註冊 OAuth 用戶端,寫入 `gateway.yaml`,使用 Docker Compose 與 Postgres 一起執行閘道,並驗證端到端登入。它使用 Amazon Bedrock 上游;Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Anthropic API 同樣受支援,只需如[設定參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#upstreams)所示交換 `upstreams` 區塊。最後,您有一個開發人員可以 `/login` 的閘道。60本快速入門將帶您走過最精簡的路徑:在您的 IdP 中註冊 OAuth 用戶端、撰寫 `gateway.yaml`、使用 Docker Compose 將閘道與 Postgres 一起執行,並端對端驗證登入流程。本文使用 Amazon Bedrock 上游;Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry 與 Anthropic API 也同樣受支援,只需依照[設定參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#upstreams)所示替換 `upstreams` 區塊即可。完成後,您將擁有一個開發人員可以透過 `/login` 登入的閘道。

61 61 

62> [!NOTE]62> [!NOTE]

63>63>

64> **在您的私有網路上部署。** Claude Code 只連接到地址為私有的閘道。這是一個安全防護,因為受信任的閘道可以推送在開發人員機器上執行命令的設定。將閘道放在內部負載平衡器或 VPN 後面,並給它一個只解析為私有 IP 的主機名。如果您的內部網路是從您的組織擁有的公開 IPv4 空間編號的,請參閱[允許閘道在您擁有的公開地址空間上](#allow-a-gateway-on-public-address-space-you-own)。64> **部署於您的私人網路上。** Claude Code 只會連線到位址為私人位址的閘道。這是一項安全防護措施,因為受信任的閘道可以推送在開發人員機器上執行命令的設定。請將閘道置於內部負載平衡器或 VPN 之後,並為其指定僅解析為私人 IP 的主機名稱。如果您的內部網路使用組織所擁有的公用 IPv4 位址空間進行編號,請參閱[允許閘道位於您擁有的公用位址空間](#allow-a-gateway-on-public-address-space-you-own)。

65 65 

66### 先決條件66### 先決條件

67 67 

68在開始之前,請準備好以下內容:68開始之前,請先準備好以下項目:

69 69 

70| 您需要 | 詳細資訊 |70| 您需要 | 詳細資訊 |

71| - | - |71| - | - |

72| Claude Code v2.1.195 或更新版本 | `claude gateway` 子命令和閘道登入流程在 v2.1.195 中發布。較早的公開版本不包含它們。執行閘道伺服器的機器和每個開發人員的機器都必須是 v2.1.195 或更新版本;執行 `claude update` 以取得最新版本。[Claude Platform on AWS 上游](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#claude-platform-on-aws)在閘道伺服器上需要 Claude Code v2.1.198 或更新版本。 |72| Claude Code v2.1.195 或更新版本 | `claude gateway` 子命令與閘道登入流程隨 v2.1.195 推出。較早的公開建置版本不包含這些功能。執行閘道伺服器的機器以及每位開發人員的機器都必須使用 v2.1.195 或更新版本;請執行 `claude update` 以取得最新版本。[Claude Platform on AWS 上游](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#claude-platform-on-aws)需要閘道伺服器上的 Claude Code 為 v2.1.198 或更新版本。 |

73| OpenID Connect (OIDC) 身份提供商 | Okta、Microsoft Entra ID、Google Workspace、Keycloak 或 Dex,或任何其他符合 OIDC 的 IdP,例如 PingFederate。閘道針對它執行標準 OIDC 發現和授權碼流程。不支援 SAML 和 LDAP。 |73| OpenID Connect (OIDC) 身分識別提供者 | Okta、Microsoft Entra ID、Google Workspace、Keycloak 或 Dex,或任何其他符合 OIDC 規範的 IdP,例如 PingFederate。閘道會對其執行標準的 OIDC 探索與授權碼流程。不支援 SAML 與 LDAP。 |

74| PostgreSQL 11 或更新版本 | 支援裝置登入流程和速率限制計數器。受管 PostgreSQL 服務皆可使用,包括最小層級;請參閱[支援哪些資料庫](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#postgres)。使用[支出限制](https://code.claude.com/docs/zh-TW/claude-apps-gateway-spend-limits.md)時,它還持有應備份的耐久支出、稽核和身份表。建議透過 `?sslmode=require` 使用 TLS。PostgreSQL 11、12 和 13 在閘道伺服器上需要 Claude Code v2.1.290 或更新版本。PostgreSQL 專案已不再維護這些版本,因此請盡可能使用較新的版本。 |74| PostgreSQL 11 或更新版本 | 支援裝置登入流程與速率限制計數器。受管理的 PostgreSQL 服務亦可使用,包括最小的方案;請參閱[支援哪些資料庫](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#postgres)。搭配[支出上限](https://code.claude.com/docs/zh-TW/claude-apps-gateway-spend-limits.md)使用時,它也會保存應備份的持久性支出、稽核與身分資料表。建議透過 `?sslmode=require` 使用 TLS。PostgreSQL 11、12 與 13 需要閘道伺服器上的 Claude Code 為 v2.1.290 或更新版本。PostgreSQL 專案已不再維護這些版本,因此請盡可能使用較新的版本。 |

75| 模型上游 | Amazon Bedrock 憑證、Claude Platform on AWS 憑證、Google Cloud 憑證、Microsoft Foundry 資源或 Anthropic API 金鑰。支援多個上游和故障轉移。 |75| 模型上游 | Amazon Bedrock 憑證、Claude Platform on AWS 憑證、Google Cloud 憑證、Microsoft Foundry 資源或 Anthropic API 金鑰。支援具備容錯移轉的多個上游。 |

76| HTTPS | 閘道必須可從開發人員筆記型電腦和用於登入的任何瀏覽器透過 `https://` 到達;閘道在同一監聽器上提供裝置驗證頁面。透過 `listen.tls` 提供 TLS 憑證,或在 TLS 終止入口後執行,並在兩種情況下都將 `listen.public_url` 設定為外部來源。在 `/login` 處,Claude Code 僅在閘道主機為環回時接受純 `http://` 來源:`localhost`、`127.0.0.1` 或 `::1`。 |76| HTTPS | 開發人員的筆記型電腦以及用於登入的任何瀏覽器都必須能透過 `https://` 連線到閘道;閘道會在同一個接聽程式上提供裝置驗證頁面。請透過 `listen.tls` 提供 TLS 憑證,或在終止 TLS 的 ingress 之後執行,兩種情況下都請將 `listen.public_url` 設為外部來源。在 `/login` 時,只有當閘道主機為迴路位址(`localhost`、`127.0.0.1` 或 `::1`)時,Claude Code 才接受純 `http://` 來源。 |

77| 私有網路地址 | 在 `/login` 處,Claude Code 要求閘道的主機名或 IP 地址僅解析為私有地址:RFC 1918、連結本地、CGNAT `100.64.0.0/10`、IPv6 ULA `fc00::/7` 或環回。對於您託管的閘道,任何位於您所宣告區塊之外的公開地址都會被拒絕;請參閱部署指南中的[威脅模型](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#threat-model-summary)。如果開發人員機器透過公司代理伺服器路由 HTTPS,登入還要求代理伺服器主機解析為私有地址;如果不是,將閘道主機新增到 `NO_PROXY`,以便 CLI 直接連接。如果您的內部網路是從您的組織擁有的公開 IPv4 空間編號的,[宣告這些區塊](#allow-a-gateway-on-public-address-space-you-own),以便 `/login` 接受那裡的閘道。 |77| 私人網路位址 | 在 `/login` 時,Claude Code 要求閘道的主機名稱或 IP 位址僅解析為私人位址:RFC 1918、鏈路本機、CGNAT `100.64.0.0/10`、IPv6 ULA `fc00::/7` 或迴路位址。對於您自行託管的閘道,任何不在您所宣告區塊內的公用位址都會遭到拒絕;請參閱部署指南中的[威脅模型](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#threat-model-summary)。如果開發人員機器透過公司代理伺服器路由 HTTPS,登入時也要求代理伺服器主機解析為私人位址;若非如此,請將閘道主機加入 `NO_PROXY`,讓 CLI 直接連線。如果您的內部網路使用組織所擁有的公用 IPv4 位址空間進行編號,請[宣告這些區塊](#allow-a-gateway-on-public-address-space-you-own),讓 `/login` 接受位於該處的閘道。 |

78| Linux 執行時 | 閘道伺服器僅在原生 Linux 二進位檔上執行。macOS 適用於本地開發。Windows 不支援作為伺服器平台。 |78| Linux 執行環境 | 閘道伺服器只能在原生 Linux 二進位檔上執行。macOS 可用於本機開發。不支援以 Windows 作為伺服器平台。 |

79 79 

80### 步驟80### 步驟

81 81 

82**1. 在您的 IdP 中註冊 OAuth 用戶端**82**1. 在您的 IdP 中註冊 OAuth 用戶端**

83 83 

84首先決定閘道的主機名,因為重定向 URI 必須與其匹配。建立新的 OIDC Web 應用程式,並將重定向 URI 設定為 `https://claude-gateway.<your-domain>/oauth/callback`,其中主機是您在步驟 3 中設定為 [`listen.public_url`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#listen) 的相同值。記下 `client_id` 和 `client_secret`。每個 IdP 的說明在[身份提供商設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#identity-provider-setup)中。84請先決定閘道的主機名稱,因為重新導向 URI 必須與其相符。建立新的 OIDC Web 應用程式,並將重新導向 URI 設為 `https://claude-gateway.<your-domain>/oauth/callback`,其中主機與您在步驟 3 中設定為 [`listen.public_url`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#listen) 的值相同。記下 `client_id` 與 `client_secret`。各 IdP 的說明請參閱[身分識別提供者設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#identity-provider-setup)。

85 85 

86**2. 佈建 PostgreSQL 資料庫**86**2. 佈建 PostgreSQL 資料庫**

87 87 

88使用 PostgreSQL 11 或更新版本。最小的受管層級即已足夠。閘道在啟動時執行自己的 schema 遷移,因此資料庫角色需要建立和更改表的權限;請參閱 [`store`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#store)。88請使用 PostgreSQL 11 或更新版本。最小的受管理方案即已足夠。閘道會在開機時執行自己的 schema 遷移,因此資料庫角色需要建立與變更資料表的權限;請參閱 [`store`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#store)。

89 89 

90**3. 寫入 gateway.yaml**90**3. 撰寫 gateway.yaml**

91 91 

92機密透過 `${ENV_VAR}` 擴展讀取,因此檔案本身可以存在於版本控制中。使用在您的網路上解析為私有 IP 的 `public_url` 主機名,因為 `/login` 拒絕公開地址。最小設定有五個部分,其他每個欄位都有預設值:92機密資訊透過 `${ENV_VAR}` 展開讀取,因此檔案本身可以放在版本控制中。請使用在您網路上解析為私人 IP 的 `public_url` 主機名稱,因為 `/login` 會拒絕公用位址。最精簡的設定包含五個區段,其他所有欄位皆有預設值:

93 93 

94```yaml gateway.yaml theme={null}94```yaml gateway.yaml theme={null}

95listen:95listen:

96 host: 0.0.0.096 host: 0.0.0.0

97 port: 808097 port: 8080

98 # 除非主機是環回地址,否則為必需。用於 IdP98 # Required unless host is a loopback address. Used for the IdP

99 # redirect_uri 和發現文件。99 # redirect_uri and the discovery document.

100 public_url: https://claude-gateway.internal.example.com100 public_url: https://claude-gateway.internal.example.com

101 101 

102oidc:102oidc:

103 issuer: https://login.example.com # 必須提供 /.well-known/openid-configuration103 issuer: https://login.example.com # must serve /.well-known/openid-configuration

104 client_id: 0oa1example2104 client_id: 0oa1example2

105 client_secret: ${OIDC_CLIENT_SECRET}105 client_secret: ${OIDC_CLIENT_SECRET}

106 allowed_email_domains: [example.com] # 拒絕組織外的 id_tokens106 allowed_email_domains: [example.com] # reject id_tokens outside your org

107 userinfo_fallback: true # 對於 id_token 省略電子郵件/群組的 IdP;否則無害107 userinfo_fallback: true # for IdPs whose id_token omits email/groups; harmless otherwise

108 108 

109session:109session:

110 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32110 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32

111 ttl_hours: 1 # 也限制 IdP 取消佈建時的撤銷延遲111 ttl_hours: 1 # also bounds revocation latency on IdP deprovision

112 112 

113store:113store:

114 postgres_url: ${GATEWAY_POSTGRES_URL} # 為受管 Postgres 新增 ?sslmode=require114 postgres_url: ${GATEWAY_POSTGRES_URL} # add ?sslmode=require for managed Postgres

115 115 

116upstreams:116upstreams:

117 - provider: bedrock117 - provider: bedrock

118 region: us-east-1118 region: us-east-1

119 auth: {} # 空:AWS 預設憑證鏈119 auth: {} # empty: AWS default credential chain

120# (IRSA、EC2/ECS 任務角色、環境變數、~/.aws)120# (IRSA, EC2/ECS task role, env vars, ~/.aws)

121 121 

122# 模型會自動按上游轉換。內建目錄122# Models are translated per upstream automatically. The built-in catalog

123# 將 claude-opus-4-8 對應到 us.anthropic.claude-opus-4-8 等,適用於每個123# maps claude-opus-4-8 to us.anthropic.claude-opus-4-8 and so on for every

124# Bedrock 支援的 Claude 模型。設定為 false 並新增 `models:` 清單以124# Bedrock-supported Claude model. Set false and add a `models:` list to

125# 僅公開特定模型。125# expose only specific models.

126auto_include_builtin_models: true126auto_include_builtin_models: true

127```127```

128 128 

129此設定足以使用預設 Amazon Bedrock 模型目錄進行有效的登入迴圈。執行後,透過 [`managed.policies`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#managed) 新增按群組 RBAC 和受管設定、透過 [`telemetry`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry) 的遙測扇出,以及多上游故障轉移、佈建輸送量 ARN 或非美國區域,透過 [`models`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#models)。129此設定足以搭配預設的 Amazon Bedrock 模型目錄建立可運作的登入流程。執行後,您可以透過 [`managed.policies`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#managed) 新增各群組的 RBAC 與受管設定,透過 [`telemetry`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry) 新增遙測分送,並透過 [`models`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#models) 新增多上游容錯移轉、佈建輸送量 ARN 或非美國區域。

130 130 

131> [!NOTE]131> [!NOTE]

132>132>

133> Amazon Bedrock 上游需要一個 AWS 主體,具有 `bedrock:InvokeModel` 和 `bedrock:InvokeModelWithResponseStream` 在 `inference-profile/us.anthropic.*` ARN 和基礎 `foundation-model/anthropic.*` ARN 上。它也需要 Anthropic 的一次性使用案例表單從 Bedrock 主控台的模型目錄提交給帳戶。133> Amazon Bedrock 上游需要一個 AWS 主體,該主體須對 `inference-profile/us.anthropic.*` ARN 及其底層的 `foundation-model/anthropic.*` ARN 都具備 `bedrock:InvokeModel` 與 `bedrock:InvokeModelWithResponseStream` 權限。此外,也需要從 Bedrock 主控台的 Model catalog 為該帳戶提交 Anthropic 的一次性使用案例表單。

134>134>

135> 透過 EKS 上的 IRSA、ECS 任務角色或 EC2 執行個體設定檔提供憑證,而不是靜態金鑰。[`upstreams` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#upstreams)具有完整的 IAM 詳細資訊、跨雲憑證矩陣和其他提供商的 `auth` 區塊。135> 請透過 EKS 上的 IRSA、ECS 任務角色或 EC2 執行個體設定檔提供憑證,而非使用靜態金鑰。[`upstreams` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#upstreams)包含完整的 IAM 詳細資訊、跨雲端憑證對照表,以及其他提供者的 `auth` 區塊。

136 136 

137**4. 執行它**137**4. 執行**

138 138 

139圍繞滿足[映像要求](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#container-image)的 `claude` 二進位檔建立容器映像,然後與 Postgres 一起執行它。Compose 檔案將映像參考為 `registry.example.com/claude-gateway:2.1.198`;替換您自己的登錄和映像標籤:139以 `claude` 二進位檔建置符合[映像檔需求](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#container-image)的容器映像檔,然後將其與 Postgres 一起執行。Compose 檔案將映像檔參照為 `registry.example.com/claude-gateway:2.1.198`;請替換為您自己的 registry 與映像檔標籤:

140 140 

141```yaml docker-compose.yaml theme={null}141```yaml docker-compose.yaml theme={null}

142services:142services:


148 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}148 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}

149 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}149 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}

150 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway150 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway

151 # AWS 憑證:在生產中,省略這些並使用執行個體151 # AWS credentials: in production, omit these and use an instance

152 # 角色。對於本地 Compose 測試,傳遞您自己的:152 # role. For local Compose testing, pass through your own:

153 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}153 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}

154 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}154 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}

155 AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}155 AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}


166volumes: { pgdata: }166volumes: { pgdata: }

167```167```

168 168 

169閘道是一個單一 Linux 二進位檔,讀取設定,連接到 Postgres 並套用其 schema 遷移,針對您的 IdP 執行 OIDC 發現,建立上游用戶端,並開始監聽。169閘道是單一的 Linux 二進位檔,它會讀取設定、連線到 Postgres 並套用其 schema 遷移、對您的 IdP 執行 OIDC 探索、建置上游用戶端,然後開始接聽。

170 170 

171啟動對設定、Postgres 連接、OIDC 發現和上游用戶端建構是失敗關閉的。如果其中任何一個無法到達或設定錯誤,閘道會以錯誤退出,而不是以降級狀態提供流量。171對於設定、Postgres 連線、OIDC 探索與上游用戶端建構,開機採取失敗即關閉(fail-closed)的方式。如果其中任何一項無法連線或設定錯誤,閘道會以錯誤結束,而不會在降級狀態下提供流量。

172 172 

173成功啟動不驗證推理路徑,因為 Amazon Bedrock 和 Google Cloud 的 Agent Platform 執行個體憑證在第一個請求時解析,而不是在啟動時。173成功開機並不代表推論路徑已通過驗證,因為 Amazon Bedrock 與 Google Cloud 的 Agent Platform 執行個體憑證是在第一個請求時解析,而非在開機時。

174 174 

175監視 stderr 以了解啟動序列。日誌行使用格式 `[gateway] <timestamp> <level> <message>`,稽核事件是帶有 `evt` 欄位的單行 JSON,啟動橫幅(下面省略)在遷移和監聽行之間列印。新資料庫為每個 schema 遷移列印一個 `migration N applied` 行;已遷移的資料庫不列印任何行。您應該按順序看到:175請觀察 stderr 中的開機順序。日誌行使用 `[gateway] <timestamp> <level> <message>` 格式,稽核事件為帶有 `evt` 欄位的單行 JSON,而啟動橫幅(以下省略)會印在遷移行與接聽行之間。全新的資料庫會為每個 schema 遷移印出一行 `migration N applied`;已完成遷移的資料庫則不會印出。您應該會依序看到:

176 176 

177```text theme={null}177```text theme={null}

178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}


183[gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080183[gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080

184```184```

185 185 

186閘道也會記錄一個警告,`access_control.allow_cidrs` 為空。這在這裡是預期的,因為在您設定允許清單之前,沒有任何東西限制閘道提供的用戶端地址。[`access_control` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#http-tuning)具有建議的範圍。186閘道也會記錄一則 `access_control.allow_cidrs` 為空的警告。在此情況下這是預期的,因為在您設定允許清單之前,不會限制閘道服務哪些用戶端位址。[`access_control` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#http-tuning)列出了建議的範圍。

187 187 

188如果啟動在 `claude gateway listening on` 行之前退出,stderr 的最後一行命名問題:188如果開機在 `claude gateway listening on` 行之前就結束,stderr 的最後一行會指出問題所在:

189 189 

190* 無法到達的 Postgres190* 無法連線的 Postgres

191* 沒有 DDL 權限的 Postgres 角色191* 沒有 DDL 權限的 Postgres 角色

192* 無法到達或無效的 OIDC 發現文件192* 無法連線或無效的 OIDC 探索文件

193* 設定 schema 違規,帶有違規欄位路徑193* 違反設定 schema,並附上有問題的欄位路徑

194 194 

195修復它並重新啟動。195修正後重新啟動即可。

196 196 

197如果您已經有 TLS 終止入口,請跳過 Compose 並直接使用 `claude gateway --config gateway.yaml` 執行二進位檔。將 `public_url` 設定為入口來源,並將 `listen` 綁定到環回或叢集內部地址。197如果您已經有終止 TLS 的 ingress,請略過 Compose,直接以 `claude gateway --config gateway.yaml` 執行二進位檔。將 `public_url` 設為 ingress 來源,並將 `listen` 繫結至迴路位址或叢集內部位址。

198 198 

199**5. 驗證身份驗證表面**199**5. 驗證身分驗證使用介面**

200 200 

201三個檢查確認閘道可以在將其交給開發人員之前驗證真實使用者。201在與開發人員分享閘道之前,透過三項檢查確認閘道能夠驗證真實使用者的身分。

202 202 

203示例使用閘道的公開 URL;對於沒有入口的本地 Compose 設定,在前兩個檢查中替換 `http://localhost:8080`。第三個檢查開啟 `verification_uri_complete`,它從 `public_url` 建立,因此對於本地 Compose,在 `gateway.yaml` 中設定 `public_url: http://localhost:8080`,並在步驟 1 的 OAuth 用戶端上新增 `http://localhost:8080/oauth/callback` 作為第二個重定向 URI,因為閘道從 `public_url` 建立 IdP `redirect_uri`。驗證連結然後在您的本地瀏覽器中開啟。203範例使用閘道的公用 URL;對於沒有 ingress 的本機 Compose 設定,請在前兩項檢查中替換為 `http://localhost:8080`。第三項檢查會開啟由 `public_url` 建構的 `verification_uri_complete`,因此對於本機 Compose,請在 `gateway.yaml` 中設定 `public_url: http://localhost:8080`,並在步驟 1 的 OAuth 用戶端上將 `http://localhost:8080/oauth/callback` 新增為第二個重新導向 URI,因為閘道會從 `public_url` 建構 IdP 的 `redirect_uri`。接著驗證連結便會在您的本機瀏覽器中開啟。

204 204 

205在 Windows PowerShell 中,執行 `curl.exe`;裸 `curl` 是 `Invoke-WebRequest` 的別名,拒絕這些旗標。205在 Windows PowerShell 中,請執行 `curl.exe`;單純的 `curl` 是 `Invoke-WebRequest` 的別名,會拒絕這些旗標。

206 206 

207首先,取得發現文件,確認閘道已啟動、設定有效且所有啟動檢查已通過:207首先,擷取探索文件,以確認閘道已啟動、設定有效,且所有開機檢查皆已通過:

208 208 

209```bash theme={null}209```bash theme={null}

210curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq210curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq


219}219}

220```220```

221 221 

222回應包括其他欄位,例如 `response_types_supported` 和 `scopes_supported`。222回應還包含其他欄位,例如 `response_types_supported` 與 `scopes_supported`。

223 223 

224其次,請求裝置授權,確認裝置登入流程有效且 Postgres 可到達且可寫:224其次,請求裝置授權,以確認裝置登入流程可以運作,且 Postgres 可連線並可寫入:

225 225 

226```bash theme={null}226```bash theme={null}

227curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq227curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq


238}238}

239```239```

240 240 

241第三,透過在瀏覽器中開啟 `verification_uri_complete` 並確認代碼來測試瀏覽器部分。您應該被重定向到您的 IdP 的登入頁面,登入後,返回閘道並顯示已登入確認。241第三,在瀏覽器中開啟 `verification_uri_complete` 並確認代碼,以測試瀏覽器環節。您應該會被重新導向至 IdP 的登入頁面,登入後再回到閘道並看到已登入的確認畫面。

242 242 

243使用第一個失敗的檢查來定位問題:243請以第一個失敗的檢查來定位問題:

244 244 

245* **第一個檢查失敗**:啟動未完成;檢查 stderr245* **第一項檢查失敗**:開機未完成;請檢查 stderr

246* **第二個檢查失敗**:Postgres 無法從閘道到達或角色無法寫入;檢查連接字串和授予246* **第二項檢查失敗**:閘道無法連線到 Postgres,或角色無法寫入;請檢查連線字串與授權

247* **第三個檢查無法到達 IdP**:檢查 IdP 的重定向 URI 是否完全符合 `https://<gateway>/oauth/callback`247* **第三項檢查未到達 IdP**:請檢查 IdP 的重新導向 URI 是否與 `https://<gateway>/oauth/callback` 完全相符

248* **第三個檢查到達 IdP 但以錯誤反彈**:讀取閘道的稽核日誌,它記錄每個身份驗證拒絕及其原因,例如 `email domain not allowed`248* **第三項檢查到達 IdP 但帶著錯誤被退回**:請查看閘道的稽核日誌,其中會記錄每次身分驗證遭拒的原因,例如 `email domain not allowed`

249 249 

250**6. 登入開發人員**250**6. 讓開發人員登入**

251 251 

252最後一步發生在開發人員機器上,而不是伺服器上。在該機器的[受管設定檔](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)中將 `forceLoginMethod` 設定為 `"gateway"`、將 `forceLoginGatewayUrl` 設定為您的閘道的 `public_url`,並將 `parentSettingsBehavior` 設定為 `"merge"`,然後執行 `/login`,在**雲端閘道**螢幕上按 Enter,並完成瀏覽器登入。下面的[設定閘道 URL](#set-the-gateway-url) 涵蓋這三個設定鍵,以及如何將它們分發到每台開發人員機器。252最後這個步驟是在開發人員的機器上進行,而非在伺服器上。在該機器的[受管設定檔](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)中,將 `forceLoginMethod` 設為 `"gateway"`、將 `forceLoginGatewayUrl` 設為閘道的 `public_url`,並將 `parentSettingsBehavior` 設為 `"merge"`,然後執行 `/login`,在 **Cloud gateway** 畫面上按下 Enter,並完成瀏覽器登入。下方的[設定閘道 URL](#set-the-gateway-url) 說明了這三個設定鍵,以及如何將其分發到每位開發人員的機器。

253 253 

254## 連接開發人員254## 連接開發人員

255 255 

256開發人員從自己的筆記型電腦使用一次瀏覽器登入進行連接,使用他們的公司工作帳戶。他們不需要 claude.ai 帳戶、API 金鑰或訂閱,因為對模型的請求透過使用組織上游憑證的閘道進行。連接由您透過 MDM 推送的[用戶端側受管設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#client-side-managed-settings)驅動,本節涵蓋管理員設定的內容。256開發人員只需從自己的筆記型電腦透過一次瀏覽器登入,即可使用公司工作帳戶進行連接。他們不需要 claude.ai 帳戶、API 金鑰或訂閱,因為對模型的請求會透過閘道並使用組織的上游憑證傳送。連接由您透過 MDM 推送的[用戶端受管設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#client-side-managed-settings)驅動,本節說明管理員需要設定的內容。

257 257 

258CLI 在首次連接時對閘道的 TLS 葉憑證進行指紋識別,並按主機名固定它。它在登入期間、無聲工作階段重新整理期間和受管設定擷取期間再次檢查該固定,而推論請求使用標準 TLS 驗證而不使用固定。透過 HTTPS 代理伺服器路由的請求會跳過固定檢查,因此將閘道主機新增至 `NO_PROXY` 以保持它們直接連線。258CLI 會在首次連接時擷取閘道 TLS 末端憑證的指紋,並依主機名稱將其釘選。它會在登入期間、靜默的工作階段更新時,以及擷取受管設定時再次檢查該釘選,而推論請求則使用標準 TLS 驗證,不檢查釘選。透過 HTTPS 代理伺服器路由的請求會略過釘選檢查,因此請將閘道主機加入 `NO_PROXY`,讓這些請求直接連線。

259 259 

260發佈預期的 SHA-256 指紋以及閘道 URL,以便開發人員有可比較的內容。`/login` 提示顯示指紋的前 16 個字元作為小寫十六進位,無冒號。若要從憑證檔案以該形式列印完整指紋,請執行:260請將預期的 SHA-256 指紋與閘道 URL 一起公布,讓開發人員有可比對的依據。`/login` 提示會以小寫十六進位、不含冒號的形式顯示指紋的前 16 個字元。若要從憑證檔案以該形式列印完整指紋,請執行:

261 261 

262```bash theme={null}262```bash theme={null}

263openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'263openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'

264```264```

265 265 

266當憑證輪換時,每個開發人員都會再次看到信任提示,因此將輪換視為計劃事件並重新發佈指紋。如果您的閘道原則包含[需要核准的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs),開發人員在接受新憑證後也會再次看到該核准對話框,因為 Claude Code 會將[核准記憶](https://code.claude.com/docs/zh-TW/server-managed-settings.md#approval-memory)綁定至固定的憑證。266憑證輪替時,每位開發人員都會再次看到信任提示,因此請將輪替視為計畫中的事件,並重新公布指紋。如果您的閘道原則包含[需要核准的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs),開發人員在接受新憑證後也會再次看到該核准對話方塊,因為 Claude Code 會將[核准記憶](https://code.claude.com/docs/zh-TW/server-managed-settings.md#approval-memory)與釘選的憑證綁定。

267 267 

268閘道可以在其 token 回應中返回可選的 `email` 欄位,以命名登入使用的帳戶。當它這樣做時,開發人員在 Claude Code 儲存憑證之前確認帳戶。確認登入後,`/status` 顯示帳戶。268閘道可以在其 token 回應中傳回選用的 `email` 欄位,以指出登入所使用的帳戶。若有傳回,開發人員會在 Claude Code 儲存憑證前確認該帳戶。確認登入後,`/status` 會顯示該帳戶。

269 269 

270確認需要開發人員機器上的 Claude Code v2.1.275 或更新版本;低於該版本的用戶端會忽略該欄位。`claude` 二進位檔中的閘道伺服器不返回該欄位,因此其登入完成時沒有確認。270此確認需要開發人員電腦上的 Claude Code v2.1.275 或更新版本;低於該版本的用戶端會忽略此欄位。`claude` 二進位檔中的閘道伺服器不會傳回此欄位,因此其登入會在不經確認的情況下完成。

271 271 

272開發人員登入後,[模型選擇器](https://code.claude.com/docs/zh-TW/model-config.md)顯示其 `availableModels` 允許清單中的模型。受管設定在啟動時套用並每小時重新整理一次,遙測路由到您的收集器。272開發人員登入後,[模型選擇器](https://code.claude.com/docs/zh-TW/model-config.md)會顯示其 `availableModels` 允許清單中的模型。受管設定會在啟動時套用並每小時更新,遙測則會路由至您的收集器。

273 273 

274工作階段在 `ttl_hours` 過期前無聲重新整理。當 IdP 取消佈建後重新整理失敗時,Claude Code 會提示開發人員再次登入。274工作階段會在 `ttl_hours` 到期前靜默更新。當 IdP 取消佈建後更新失敗時,Claude Code 會提示開發人員重新登入。

275 275 

276### 設定閘道 URL276### 設定閘道 URL

277 277 

278三個設定鍵放入您透過 MDM 或直接在磁碟上部署的各 OS [受管設定檔](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)。對於沒有受管設定的機器,請改為參閱[在使用者設定中設定閘道 URL](#set-the-gateway-url-in-user-settings)。`forceLoginMethod` 和 `forceLoginGatewayUrl` 在**雲端閘道**畫面上直接開啟 `/login`,URL 已填入,而 `parentSettingsBehavior: "merge"` 讓 Claude Desktop 將閘道的出口允許清單傳遞給它啟動的 Claude Code 工作階段,詳見[將原則傳遞給 Claude Desktop 工作階段](#deliver-policy-to-claude-desktop-sessions):278有三個鍵要放在您透過 MDM 或直接在磁碟上部署的各作業系統[受管設定檔](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)中。對於沒有受管設定的電腦,請改參閱[在使用者設定中設定閘道 URL](#set-the-gateway-url-in-user-settings)。`forceLoginMethod` 和 `forceLoginGatewayUrl` 會讓 `/login` 直接開啟 **Cloud gateway** 畫面並填入 URL,而 `parentSettingsBehavior: "merge"` 則讓 Claude Desktop 能將閘道的對外連線允許清單傳遞給它所啟動的 Claude Code 工作階段,詳見[將原則傳遞給 Claude Desktop 工作階段](#deliver-policy-to-claude-desktop-sessions):

279 279 

280```json theme={null}280```json theme={null}

281{281{


285}285}

286```286```

287 287 

288開發人員按 Enter 進行連接。[首次連接 TLS 指紋提示](#connect-developers)仍然出現。一旦檔案在機器上,未完成閘道登入的開發人員會看到[管理員原則要求雲端閘道登入](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)下所述的其中一則訊息。透過環境變數(例如 `CLAUDE_CODE_USE_BEDROCK`)選擇雲端提供商的開發人員不需要閘道登入。288開發人員按下 Enter 即可連接。[首次連接的 TLS 指紋提示](#connect-developers)仍會出現。檔案部署到電腦上之後,尚未完成閘道登入的開發人員會看到 [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) 中所述的其中一則訊息。透過 `CLAUDE_CODE_USE_BEDROCK` 等環境變數選擇雲端供應商的開發人員不需要閘道登入。

289 289 

290登入選擇器中沒有閘道選項,而在受管設定中單獨使用 `forceLoginMethod` 而沒有 URL,會讓開發人員停留在「聯絡您的 IT 管理員」訊息處。登入設定鍵應該在您推送到機器的檔案中,而不是在閘道的 `managed.policies[].cli` 區塊中,該區塊僅到達已連接的用戶端。290登入選擇器中沒有閘道選項,而在受管設定中只設定 `forceLoginMethod` 而不設定 URL,會讓開發人員停留在「Contact your IT administrator」訊息。登入相關的鍵應放在您推送到電腦的檔案中,而非閘道的 `managed.policies[].cli` 區塊,因為後者只會送達已連接的用戶端。

291 291 

292#### 在使用者設定中設定閘道 URL292#### 在使用者設定中設定閘道 URL

293 293 

294在沒有受管設定的機器上,請讓每位開發人員將 `forceLoginMethod` 和 `forceLoginGatewayUrl` 新增至其自己的使用者設定檔 `~/.claude/settings.json`。這需要開發人員機器上的 Claude Code v2.1.295 或更新版本。此範例指定位於 `claude-gateway.internal.example.com` 的閘道:294在沒有受管設定的電腦上,請讓每位開發人員將 `forceLoginMethod` 和 `forceLoginGatewayUrl` 加入自己的使用者設定檔 `~/.claude/settings.json`。這需要開發人員電腦上的 Claude Code v2.1.295 或更新版本。此範例指定位於 `claude-gateway.internal.example.com` 的閘道:

295 295 

296```json theme={null}296```json theme={null}

297{297{


300}300}

301```301```

302 302 

303當開發人員在 Claude Code 提示字元執行 `/login` 時,**雲端閘道**畫面會以該位址開啟,開發人員按 Enter 進行連接。[首次連接 TLS 指紋提示](#connect-developers)仍然出現。以此方式設定的設定鍵適用下列限制:303當開發人員在 Claude Code 提示字元執行 `/login` 時,**Cloud gateway** 畫面會以該位址開啟,開發人員按下 Enter 即可連接。[首次連接的 TLS 指紋提示](#connect-developers)仍會出現。以此方式設定的鍵有以下限制:

304 304 

305* **僅限使用者設定**:Claude Code 從 `~/.claude/settings.json` 讀取這兩個設定鍵,而不是從專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 讀取。305* **僅限使用者設定**:Claude Code 只從 `~/.claude/settings.json` 讀取這兩個鍵,不會從專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 讀取。

306* **受管設定會將其關閉**:一旦管理員的設定透過受管設定檔、macOS plist 或 Windows HKLM 原則,或[原則 helper](https://code.claude.com/docs/zh-TW/settings-reference.md#policyhelper) 到達機器,Claude Code 會忽略使用者設定中指定的閘道。306* **受管設定會停用它們**:一旦管理員的設定透過受管設定檔、macOS plist 或 Windows HKLM 原則,或[原則輔助程式](https://code.claude.com/docs/zh-TW/settings-reference.md#policyhelper)送達電腦,Claude Code 就會忽略使用者設定中指定的閘道。

307 307 

308### 允許您擁有的公開位址空間上的閘道308### 允許位於您所擁有公用位址空間上的閘道

309 309 

310某些組織從他們擁有的公開 IPv4 區塊(例如電信業者自己的位址空間或舊版 `/8`)對其內部網路進行編號,因此他們的閘道沒有私人位址。在 `gatewayInternalNetworks` 受管設定中列出這些區塊。`/login` 然後在開發人員的機器從同一區塊內的位址連接到它時,接受位於列出區塊內的閘道。這需要開發人員機器上的 Claude Code v2.1.268 或更新版本;較早的版本忽略該設定鍵並套用私人位址規則。310有些組織以自己擁有的公用 IPv4 區塊為內部網路編號,例如電信業者自有的位址空間或舊有的 `/8`,因此其閘道沒有私人位址。請在 `gatewayInternalNetworks` 受管設定中列出這些區塊。如此一來,當開發人員的電腦從某個已列出區塊內的位址連線到同一區塊內的閘道時,`/login` 便會接受該閘道。這需要開發人員電腦上的 Claude Code v2.1.268 或更新版本;較早的版本會忽略此鍵並套用私人位址規則。

311 311 

312> [!WARNING]312> [!WARNING]

313>313>

314> `gatewayInternalNetworks` 適用於恰好從公開位址空間編號的內部網路。它不會使將閘道暴露到網際網路變得安全:受信任的閘道可以推送在開發人員機器上執行命令的設定。314> `gatewayInternalNetworks` 適用於恰好以公用位址空間編號的內部網路。它並不會讓將閘道暴露在網際網路上變得安全:受信任的閘道可以推送在開發人員電腦上執行命令的設定。

315>315>

316> 使用您的防火牆或負載平衡器規則,讓閘道無法從您的網路外部到達。將閘道的 [`access_control.allow_cidrs`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#http-tuning) 設定為您在此宣告的相同區塊,以便閘道本身拒絕來自其他任何地方的用戶端。在負載平衡器或入口後面,也將 `listen.trusted_proxies` 設定為該前端,因為閘道否則會根據前端自己的位址而不是開發人員的位址來比對 `allow_cidrs`。316> 請透過防火牆或負載平衡器規則,讓閘道無法從您的網路外部存取。將閘道的 [`access_control.allow_cidrs`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#http-tuning) 設定為您在此宣告的相同區塊,讓閘道本身拒絕來自其他任何地方的用戶端。若位於負載平衡器或 ingress 之後,也請將 `listen.trusted_proxies` 設定為該前端,否則閘道會以前端本身的位址而非開發人員的位址來比對 `allow_cidrs`。

317 317 

318將設定鍵新增至與登入設定鍵相同的受管設定來源:受管設定檔、MDM 設定檔或登錄原則。Claude Code 在使用者、專案和伺服器受管設定中忽略它。318請將此鍵加入與登入鍵相同的受管設定來源:受管設定檔、MDM 設定描述檔或登錄原則。Claude Code 會忽略使用者、專案及伺服器受管設定中的此鍵。

319 319 

320此範例宣告一個區塊。將 `203.0.113.0/24` 替換為您自己的區塊。它是文件範圍,Claude Code 拒絕這些。320此範例宣告一個區塊。請將 `203.0.113.0/24` 替換為您自己的區塊。這是文件用的範圍,Claude Code 會拒絕此類範圍。

321 321 

322```json theme={null}322```json theme={null}

323{323{


325}325}

326```326```

327 327 

328Claude Code 在 `/login` 驗證清單,然後才聯絡任何閘道:328Claude Code 會在 `/login` 聯繫任何閘道之前驗證該清單:

329 329 

330* 每個項目是一個 IPv4 區塊,寫成其第一個位址和 `/8` 到 `/32` 的前綴。330* 每個項目都是一個 IPv4 區塊,以其第一個位址加上 `/8` 到 `/32` 的前置長度表示。

331* 清單最多包含四個區塊,且沒有兩個重疊。331* 清單最多包含四個區塊,且任兩個區塊都不能重疊。

332* 沒有區塊與私人位址空間重疊:`10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`127.0.0.0/8`、`169.254.0.0/16` 和 `100.64.0.0/10`。`/login` 已經在沒有此設定鍵的情況下接受那裡的閘道。332* 任何區塊都不能與私人位址空間重疊:`10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`127.0.0.0/8`、`169.254.0.0/16` 和 `100.64.0.0/10`。`/login` 已經會接受位於這些空間中的閘道,無須此鍵。

333* 沒有區塊與永遠不是組織網路的空間重疊:`198.18.0.0/15` 和 `192.0.0.0/24`,VPN 和 NAT64 用戶端將其作為本機位址;文件範圍 `192.0.2.0/24`、`198.51.100.0/24` 和 `203.0.113.0/24`;以及保留範圍 `0.0.0.0/8`、`192.88.99.0/24` 和多播 `224.0.0.0/4`。您可以在 `240.0.0.0/4` 內宣告區塊,某些大型網路將其用作內部單播空間。333* 任何區塊都不能與絕不會是組織網路的空間重疊:VPN 和 NAT64 用戶端作為本機位址使用的 `198.18.0.0/15` 和 `192.0.0.0/24`;文件用範圍 `192.0.2.0/24`、`198.51.100.0/24` 和 `203.0.113.0/24`;以及保留範圍 `0.0.0.0/8`、`192.88.99.0/24` 和多點傳送 `224.0.0.0/4`。您可以宣告位於 `240.0.0.0/4` 內的區塊,部分大型網路將其作為內部單點傳送空間使用。

334 334 

335來自 `managed-settings.json` 及其 `managed-settings.d/` 插入檔案的區塊合併為一個清單,這些限制適用於合併後的清單。若要縮小區塊,請替換其項目,而不是在插入檔案中新增第二個重疊的項目;`/login` 會拒絕重疊。335來自 `managed-settings.json` 及其 `managed-settings.d/` 附加檔案的區塊會合併成一份清單,上述限制適用於合併後的清單。若要縮小某個區塊,請替換其項目,而不是在附加檔案中新增第二個重疊的項目;`/login` 會拒絕重疊。

336 336 

337如果項目違反規則,或值不是字串清單,Claude Code 會在該機器上拒絕每個新的閘道登入,並在訊息中指出問題。登入到私人位址上的閘道也會失敗,現有登入保持有效。在部署前先在一台機器上嘗試該值。Claude Code 也會在它報告的[無效受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md#keys-that-fail-closed)中列出類型錯誤的值。337如果某個項目違反規則,或值不是字串清單,Claude Code 會拒絕該電腦上所有新的閘道登入,並在訊息中指出問題。登入位於私人位址上的閘道也會失敗,而現有的登入則會繼續運作。部署前請先在一台電腦上試用此值。Claude Code 也會將型別錯誤的值列在[它回報的無效受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md#keys-that-fail-closed)之中。

338 338 

339使用有效清單時,`/login` 對位址位於列出區塊內的閘道套用三項檢查:339在清單有效的情況下,`/login` 會對位址位於已列出區塊內的閘道套用三項檢查:

340 340 

341* 閘道主機名解析到的每個位址都位於該同一區塊內。Claude Code 拒絕在區塊外也有記錄的名稱,包括私人和 IPv6 位址。341* 閘道主機名稱解析出的每個位址都位於該同一區塊內。若名稱也有位於區塊外的記錄(包括私人位址與 IPv6 位址),Claude Code 會拒絕該名稱。

342* 開發人員的機器從同一區塊內連接。Claude Code 拒絕位於 NAT 後面、容器或 WSL2 內,或位址池位於區塊外的 VPN 上的機器,並指出機器連接所使用的位址。342* 開發人員的電腦從同一區塊內連線。Claude Code 會拒絕位於 NAT 之後、容器或 WSL2 內,或其位址池位於區塊外之 VPN 上的電腦,並指出該電腦連線時所用的位址。

343* 連接是直接的。如果 `HTTPS_PROXY` 適用於閘道主機,`/login` 會拒絕並指出要新增的 `NO_PROXY` 項目。343* 連線為直接連線。如果 `HTTPS_PROXY` 適用於閘道主機,`/login` 會拒絕並指出要新增的 `NO_PROXY` 項目。

344 344 

345當三項都通過時,[信任提示](#connect-developers)會新增一行,指出機器的位址、閘道的位址,以及同時包含兩者的宣告區塊。345三項檢查都通過時,[信任提示](#connect-developers)會新增一行,列出該電腦的位址、閘道的位址,以及同時包含兩者的已宣告區塊。

346 346 

347該設定鍵對其他閘道不改變任何內容:登入到私人位址上的閘道像以前一樣有效,登入到所有列出區塊外的公開位址上的閘道像以前一樣被拒絕。347此鍵不會改變其他閘道的行為:登入位於私人位址上的閘道會像以前一樣運作,而登入位於所有已列出區塊之外的公用位址上的閘道,也會像以前一樣被拒絕。

348 348 

349宣告的區塊縮小了誰可以登入,但無法證明機器的所在位置,因此僅宣告您的組織控制的位址空間。與其他租戶共享的區塊(例如雲端提供商的公開範圍)會讓其中的任何人通過相同的檢查。349已宣告的區塊會縮小可登入的範圍,但無法證明電腦位於何處,因此請只宣告您組織所控制的位址空間。與其他租用戶共用的區塊(例如雲端供應商的公用範圍)會讓其中的任何人都通過同樣的檢查。

350 350 

351### 將原則傳遞給 Claude Desktop 工作階段351### 將原則傳遞給 Claude Desktop 工作階段

352 352 

353Claude Desktop 在嵌入式 Claude Code 工作階段上執行其 Cowork 和 Code 標籤,以及您啟用時的 Chat 標籤,並透過閘道傳送其模型請求。它將原則傳遞給每個工作階段,原則由閘道在 `/user/bootstrap` 提供的設定建立:模型允許清單、停用的工具,以及從相符原則的 `cli` 或 `code` 區塊衍生的出口允許清單,加上 [`desktop` 覆蓋](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)。353Claude Desktop 以內嵌的 Claude Code 工作階段執行其 Cowork 和 Code 分頁(以及啟用時的 Chat 分頁),並透過閘道傳送它們的模型請求。它會將原則傳遞給每個這類工作階段,而原則是依據閘道在 `/user/bootstrap` 提供給它的設定所建立:模型允許清單、停用的工具,以及從相符原則的 `cli` 或 `code` 區塊推導出的對外連線允許清單,再加上 [`desktop` 覆蓋層](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)。

354 354 

355該區塊的其他設定鍵,例如 hook、`env` 和範圍權限規則(如 `Bash(npm *)`),會到達透過 `/login` 登入的用戶端。在 `code` 下,當 [Code 標籤的條件](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab)成立時,它們也會到達 Code 標籤的工作階段。它們不會到達 Cowork 或 Chat 工作階段。Claude Desktop 從其自己的受管設定讀取閘道 URL,並使用其自己的流程登入,與[設定閘道 URL](#set-the-gateway-url) 中的 `forceLoginMethod` 和 `forceLoginGatewayUrl` 設定鍵分開。355該區塊的其他鍵,例如 hook、`env`,以及 `Bash(npm *)` 這類有範圍限定的權限規則,會送達透過 `/login` 登入的用戶端。在 `code` 之下時,當 [Code 分頁的條件](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab)成立,它們也會送達 Code 分頁的工作階段。它們不會送達 Cowork 或 Chat 工作階段。Claude Desktop 從自己的受管設定讀取閘道 URL,並以自己的流程登入,與[設定閘道 URL](#set-the-gateway-url) 中的 `forceLoginMethod` 和 `forceLoginGatewayUrl` 鍵分開。

356 356 

357由啟動程序傳遞的設定是父設定。Claude Code 在任何具有管理員部署之受管來源的機器上忽略父設定,除非[傳遞原則的來源](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-claude-code-uses)設定了 `parentSettingsBehavior: "merge"`。357由啟動程序傳遞的設定稱為父設定。在任何具有管理員部署之受管來源的電腦上,Claude Code 都會忽略父設定,除非[傳遞原則的來源](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-claude-code-uses)設定了 `parentSettingsBehavior: "merge"`。

358 358 

359#### 哪些機器需要選擇加入359#### 哪些電腦需要選擇加入

360 360 

361僅執行 Claude Desktop 的機器需要它。Claude Desktop 會自行將模型清單和停用工具清單套用於嵌入式工作階段,但出口允許清單僅作為父設定到達它們,形式為 `WebFetch` 網域規則和沙箱網路規則。沒有選擇加入時,這些工作階段執行時沒有出口限制,且不會有任何警告。閘道仍然拒絕原則未授予之模型的推論請求。361只執行 Claude Desktop 的電腦需要選擇加入。Claude Desktop 會自行將模型清單與停用工具清單套用到內嵌工作階段,但對外連線允許清單只會以父設定的形式送達它們,也就是 `WebFetch` 網域規則和沙箱網路規則。若未選擇加入,這些工作階段會在沒有對外連線限制的情況下執行,而且不會有任何警告。閘道仍會拒絕原則未授權之模型的推論請求。

362 362 

363外掛市集允許清單也僅作為父設定到達嵌入式工作階段。當您在 Claude Desktop 的受管設定中關閉使用者新增的外掛市集時,Claude Desktop 2.16120.0 或更新版本會隱藏您的組織未佈建的市集,並拒絕從它們安裝。為了阻止嵌入式工作階段載入已從這些市集安裝的外掛,它會將 `strictKnownMarketplaces` 清單作為父設定傳送給它們。沒有選擇加入時,Claude Code 會忽略該清單,這些外掛會繼續載入。363外掛市集允許清單同樣只會以父設定的形式送達內嵌工作階段。當您在 Claude Desktop 的受管設定中關閉使用者新增的外掛市集時,Claude Desktop 2.16120.0 或更新版本會隱藏您組織未佈建的市集,並拒絕從這些市集安裝。為了阻止內嵌工作階段載入已從這些市集安裝的外掛,它會以父設定的形式傳送 `strictKnownMarketplaces` 清單給它們。若未選擇加入,Claude Code 會忽略該清單,這些外掛也會繼續載入。

364 364 

365開發人員透過 `/login` 登入的機器不需要它;每個 Claude Code 工作階段從閘道擷取其原則。365開發人員透過 `/login` 登入的電腦不需要選擇加入;每個 Claude Code 工作階段都會從閘道擷取其原則。

366 366 

367由 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 提供受管設定的機隊無法使用它:Claude Code 在這些機隊上永遠不會合併父設定,因為它僅從 helper 的輸出讀取受管設定。367由 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 提供受管設定的機群無法使用此選項:Claude Code 在這些機群上絕不會合併父設定,因為它只從輔助程式的輸出讀取受管設定。

368 368 

369#### 設定選擇加入369#### 設定選擇加入

370 370 

371部署[設定閘道 URL](#set-the-gateway-url) 中的受管設定片段,將其鏡像到任何優先於該檔案的用戶端側來源,然後驗證。371部署[設定閘道 URL](#set-the-gateway-url) 中的受管設定片段,將其同步到任何優先順序高於該檔案的用戶端來源,然後進行驗證。

372 372 

373**1. 在受管設定檔中部署選擇加入**373**1. 在受管設定檔中部署選擇加入**

374 374 

375[上面的片段](#set-the-gateway-url)已經包含 `parentSettingsBehavior: "merge"`,因此您推送到機器的檔案會攜帶它。375[上方的片段](#set-the-gateway-url)已包含 `parentSettingsBehavior: "merge"`,因此您推送到電腦的檔案會帶有此設定。

376 376 

377**2. 將片段鏡像到任何優先於該檔案的來源**377**2. 將片段同步到任何優先順序高於該檔案的來源**

378 378 

379Claude Code 僅從[選定的來源](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-claude-code-uses)讀取 `parentSettingsBehavior`。將任何原則設定鍵新增至某個來源可能會使該來源成為選定的來源,因此在用戶端側來源中,請鏡像整個片段,而不僅僅是 `parentSettingsBehavior`。[用戶端側受管設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#client-side-managed-settings)涵蓋透過群組原則或組態設定檔傳遞原則的機隊。macOS 上的受管偏好設定 plist 或 Windows 上的 HKLM 原則優先於 `managed-settings.json` 檔案,而閘道自己的遠端受管設定優先於兩者,因此在登入閘道的機器上,也要在閘道原則的 [`cli` 或 `code` 區塊](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#managed)中設定 `parentSettingsBehavior`。379Claude Code 只從[所選來源](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-claude-code-uses)讀取 `parentSettingsBehavior`。在某個來源中新增任何原則鍵,都可能讓該來源成為所選來源,因此在用戶端來源中,請同步整個片段,而不是只同步 `parentSettingsBehavior`。[用戶端受管設定](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#client-side-managed-settings)說明透過群組原則或設定描述檔傳遞原則的機群。macOS 上的 managed-preferences plist 或 Windows 上的 HKLM 原則優先順序高於 `managed-settings.json` 檔案,而閘道自身的遠端受管設定優先順序又高於兩者,因此在登入閘道的電腦上,也請在閘道原則的 [`cli` 或 `code` 區塊](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#managed)中設定 `parentSettingsBehavior`。

380 380 

381**3. 檢查選定的來源**381**3. 檢查所選來源**

382 382 

383在僅執行 Claude Desktop 的機器上,呼叫 Agent SDK 的 [`resolveSettings()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#resolvesettings),並讀取其 `sources` 清單中 `managed` 項目上的 `policyOrigin`。該值指出選定的用戶端側來源:`plist`、`hklm` 或 `file`,這就是必須攜帶片段的來源。383在只執行 Claude Desktop 的電腦上,呼叫 Agent SDK 的 [`resolveSettings()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#resolvesettings),並讀取其 `sources` 清單中 `managed` 項目上的 `policyOrigin`。該值會指出所選的用戶端來源:`plist`、`hklm` 或 `file`,也就是必須帶有該片段的來源。

384 384 

385Cowork 和 Chat 工作階段不擷取閘道原則,因此閘道的區塊不是它們的選定來源。385Cowork 和 Chat 工作階段不會擷取閘道原則,因此閘道的區塊不是它們的所選來源。

386 386 

387當原則的設定位於 `code` 下且 [Code 標籤的條件](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab)成立時,Code 標籤工作階段會擷取它。此時閘道的 `code` 設定即為該工作階段的選定來源。387當原則的設定位於 `code` 之下,且 [Code 分頁的條件](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab)成立時,Code 分頁工作階段會擷取閘道原則。此時閘道的 `code` 設定便是該工作階段的所選來源。

388 388 

389### 限制父設定389### 限制父設定

390 390 

391一旦您部署 `parentSettingsBehavior: "merge"`,任何啟動 Claude Code 的主機程序都可以提供父設定,不僅是 Claude Desktop,還有 Agent SDK 應用程式或 IDE 擴充功能。391一旦部署 `parentSettingsBehavior: "merge"`,任何啟動 Claude Code 的主機程序都可以提供父設定,不僅是 Claude Desktop,也包括 Agent SDK 應用程式或 IDE 擴充功能。

392 392 

393Claude Code 根據限制性設定鍵的允許清單篩選父設定,但某些允許的設定鍵可能會授予存取權而非加以限制。除非您設定 `allowManaged*Only` 鎖定,否則主機提供的權限允許規則和沙箱允許清單仍然適用。無論如何,您的原則的拒絕和詢問規則都保持有效;[它們在任何允許規則之前進行評估](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)。393Claude Code 會以限制性鍵的允許清單篩選父設定,但部分允許的鍵可能會授予存取權而非加以限制。除非您設定了 `allowManaged*Only` 鎖定,否則主機提供的權限允許規則和沙箱允許清單仍會套用。無論如何,您原則中的拒絕與詢問規則都會持續生效;[它們會在任何允許規則之前評估](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)。

394 394 

395Claude Code 以剝離形式轉發父提供的 [`sandbox.credentials`](https://code.claude.com/docs/zh-TW/settings-reference#sandbox-credentials) 項目:395Claude Code 會以精簡形式轉送父程序提供的 [`sandbox.credentials`](https://code.claude.com/docs/zh-TW/settings-reference#sandbox-credentials) 項目:

396 396 

397* **`deny` 項目**:僅使用其 `path` 或 `name` 和模式轉發。397* **`deny` 項目**:只轉送其 `path` 或 `name` 以及模式。

398* **具有 [`mode: mask`](https://code.claude.com/docs/zh-TW/sandboxing#mask-credential-files) 的檔案項目**:僅以哨兵形式轉發,作為 `injectHosts` 為空清單的整個檔案遮罩,因此代理伺服器在任何平台上永遠不會為父提供的項目替換為真實值。所有結構化遮罩欄位也會被刪除,因此父提供的擷取模式無法取代另一個來源為相同路徑設定的更嚴格遮罩。398* **具有 [`mode: mask`](https://code.claude.com/docs/zh-TW/sandboxing#mask-credential-files) 的檔案項目**:僅以哨兵值形式轉送,作為 `injectHosts` 為空清單的整檔遮罩,因此在任何平台上,代理伺服器都不會以真實值替換父程序提供的項目。所有結構化遮罩欄位也都會被捨棄,因此父程序提供的擷取模式無法取代其他來源為同一路徑設定的更嚴格遮罩。

399* **具有 `mode: mask` 的 `envVars` 項目**:不轉發。`deny` 是父通道可以透過 `envVars` 項目表達的唯一限制。399* **具有 `mode: mask` 的 `envVars` 項目**:不轉送。`deny` 是父通道透過 `envVars` 項目唯一能表達的限制。

400* **[`awsPairs` 和 `sigv4`](https://code.claude.com/docs/zh-TW/sandboxing#re-sign-aws-requests)**:以僅限制的形式轉發。從 `sigv4` 中僅保留 `deny` 值,而只要父項定義了 `sigv4` 區塊,就會將所有三種請求形式 `streaming`、`presigned` 和 `sigv4a` 固定為 `deny`。`awsPairs` 配對永遠不會以可重新簽署的形式轉發;命名其中一個慣用 AWS 變數的配對會被替換為惰性項目,使 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 的自動配對保持被抑制。400* **[`awsPairs` 和 `sigv4`](https://code.claude.com/docs/zh-TW/sandboxing#re-sign-aws-requests)**:僅以限制形式轉送。`sigv4` 中只保留 `deny` 值,而只要父程序定義了 `sigv4` 區塊,就會將 `streaming`、`presigned` 和 `sigv4a` 這三種請求形式全部固定為 `deny`。`awsPairs` 配對絕不會以能重新簽署的形式轉送;指定慣用 AWS 變數之一的配對會被替換為無作用的項目,以持續抑制 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 的自動配對。

401 401 

402#### 部署鎖定402#### 部署鎖定

403 403 

404為了讓父設定盡可能接近篩選器所支援的僅限制形式,請將全部五個 `allowManaged*Only` 鎖定及其管理的允許清單,新增至與合併選擇加入相同的來源:404若要讓父設定盡可能接近篩選器所支援的僅限制狀態,請將全部五個 `allowManaged*Only` 鎖定及其所管理的允許清單,加入與合併選擇加入相同的來源:

405 405 

406```json theme={null}406```json theme={null}

407{407{


426}426}

427```427```

428 428 

429OS 原則(例如 HKLM 登錄原則或受管偏好設定 plist)優先於此檔案,因此請透過它而不是檔案傳遞整個片段。閘道的遠端受管設定優先於 OS 原則和檔案來源,但僅到達已連接的用戶端。將鎖定、允許清單和合併選擇加入鏡像到原則的 [`cli` 或 `code` 區塊](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#managed)中,並保持此檔案的部署,因為永遠不連接的機器僅從該檔案取得其原則。429作業系統原則(例如 HKLM 登錄原則或 managed-preferences plist)的優先順序高於此檔案,因此請改透過它傳遞整個片段,而非透過檔案。閘道的遠端受管設定優先順序高於作業系統原則與檔案來源,但只會送達已連接的用戶端。請將鎖定、允許清單與合併選擇加入同步到原則的 [`cli` 或 `code` 區塊](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#managed),並持續部署此檔案,因為從未連接的電腦只會從檔案取得其原則。

430 430 

431#### 跨來源的鎖定行為431#### 跨來源的鎖定行為

432 432 

433設定一個鎖定不會限制其他鎖定;每個設定鍵都記錄在[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md#all-settings)中。433設定一個鎖定並不會限制其他鎖定;每個鍵都記載於[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md#all-settings)中。

434 434 

435來自低於獲勝來源的管理員來源時,兩個沙箱鎖定仍然適用,且 `allowManagedPermissionRulesOnly` 仍然阻擋父提供的允許規則和 `additionalDirectories`。在 Claude Code v2.1.273 或更新版本上,MCP 伺服器鎖定也會從低於獲勝來源的來源套用,且在其開啟時,受管 `allowedMcpServers` 清單來自有設定該清單的最高優先級管理員來源。435來自優先順序低於勝出來源之管理來源的兩個沙箱鎖定仍會套用,而 `allowManagedPermissionRulesOnly` 仍會阻擋父程序提供的允許規則和 `additionalDirectories`。在 Claude Code v2.1.273 或更新版本上,MCP 伺服器鎖定也會從優先順序低於勝出來源的來源套用,且在其開啟期間,受管的 `allowedMcpServers` 清單來自設定該清單之優先順序最高的管理來源。

436 436 

437hook 鎖定以及 `allowManagedPermissionRulesOnly` 對開發人員自己規則的影響,預設需要來自獲勝的來源;在 [Claude Code 如何合併受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)中的 `managedSourcesBehavior` 合併選擇加入下,Claude Code 會對每個鎖定套用任何來源設定的最嚴格值。在 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 機隊上,Claude Code 僅從 helper 的輸出讀取鎖定。437hook 鎖定,以及 `allowManagedPermissionRulesOnly` 對開發人員自身規則的作用,預設需要來自勝出來源;在 [Claude Code 如何合併受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)中所述的 `managedSourcesBehavior` 合併選擇加入下,Claude Code 會為每個鎖定套用任何來源所設定的最嚴格值。在 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 機群上,Claude Code 只從輔助程式的輸出讀取鎖定。

438 438 

439每個鎖定都會使 Claude Code 忽略開發人員自己針對該設定的項目,因此請在鎖定旁邊包含您組織的允許清單:439每個鎖定都會讓 Claude Code 忽略開發人員自己針對該設定的項目,因此請在鎖定旁邊加入您組織的允許清單:

440 440 

441* **網路網域**:以空的受管網域清單鎖定會阻擋所有沙箱出站流量。441* **網路網域**:以空的受管網域清單鎖定,會封鎖所有沙箱化的對外流量。

442* **MCP 伺服器**:在任何管理員來源或父提供的設定中都沒有 `allowedMcpServers` 的情況下鎖定,會載入 `deniedMcpServers` 未阻擋的每個伺服器。442* **MCP 伺服器**:若任何管理來源或父程序提供的設定中都沒有 `allowedMcpServers` 就鎖定,會載入所有未被 `deniedMcpServers` 封鎖的伺服器。

443* **讀取路徑**:`allowRead` 項目僅重新允許 `denyRead` 區域內的路徑,因此請將它們與受管 `denyRead` 配對。443* **讀取路徑**:`allowRead` 項目只會重新允許 `denyRead` 區域內的路徑,因此請將它們與受管的 `denyRead` 搭配使用。

444 444 

445#### 鎖定不涵蓋的設定445#### 鎖定未涵蓋的設定

446 446 

447即使設定了所有五個鎖定,這些父提供的設定仍會通過篩選器:447即使設定了全部五個鎖定,下列父程序提供的設定仍會通過篩選器:

448 448 

449* **`forceLoginOrgUUID`**:當最高優先級管理員來源未設定組織 UUID 時,Claude Code 會接受父提供的值。閘道登入不檢查此設定鍵。最高優先級管理員來源中的組織 UUID 會阻擋父項的值,且是 Claude Code 強制執行的值。449* **`forceLoginOrgUUID`**:當 Claude Code 套用的受管設定未設定組織 UUID 時,Claude Code 會採用父程序提供的值。閘道登入不會檢查此鍵。Claude Code 所套用受管設定中的組織 UUID 會阻擋父程序的值,並成為 Claude Code 強制執行的組織 UUID。如果您的機群釘選了某個 Anthropic 組織,請參閱[哪個受管來源提供登入鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-supplies-login-keys),了解應在何處設定 `forceLoginOrgUUID`。

450* **`allowedMcpServers`**:當沒有管理員清單生效時,Claude Code 會接受父提供的允許清單。`allowManagedMcpServersOnly` 不會阻擋它,因為鎖定會將獲勝的清單作為受管值強制執行,包括在沒有管理員來源提供清單時的父提供清單。最高優先級管理員來源中的清單會阻擋父項的清單,且是 Claude Code 強制執行的清單,因此請在那裡、在鎖定旁邊設定 `allowedMcpServers`。在 v2.1.223 之前,任何管理員來源中任一設定鍵的值都會阻擋父項的值。450* **`allowedMcpServers`**:當沒有管理清單生效時,Claude Code 會採用父程序提供的允許清單。`allowManagedMcpServersOnly` 不會阻擋它,因為此鎖定會強制執行勝出作為受管值的任何清單,包括在沒有管理來源提供清單時由父程序提供的清單。優先順序最高之管理來源中的清單會阻擋父程序的清單,並成為 Claude Code 強制執行的清單,因此請在該處、鎖定旁邊設定 `allowedMcpServers`。在 v2.1.223 之前,任何管理來源中只要有這兩個鍵之一的值,就會阻擋父程序的值。

451* **`availableModels`**:當獲勝的受管來源未設定模型清單時,Claude Code 會接受父提供的模型清單。如果您的機隊限制模型,請在獲勝的來源中設定 `availableModels`。451* **`availableModels`**:當勝出的受管來源未設定模型清單時,Claude Code 會採用父程序提供的模型清單。如果您的機群限制了模型,請在勝出來源中設定 `availableModels`。

452* **`allowedProviders`**:當獲勝的受管來源未設定 API 提供商允許清單時,Claude Code 會接受父提供的 API 提供商允許清單。如果您的機隊限制開發人員可以使用的 API 提供商,請在獲勝的來源中設定 `allowedProviders`。需要 Claude Code v2.1.285 或更新版本。452* **`allowedProviders`**:當勝出的受管來源未設定時,Claude Code 會採用父程序提供的 API 供應商允許清單。如果您的機群限制開發人員可使用的 API 供應商,請在勝出來源中設定 `allowedProviders`。需要 Claude Code v2.1.285 或更新版本。

453* **`strictKnownMarketplaces`**:當獲勝的受管來源未設定外掛市集允許清單時,Claude Code 會接受父提供的外掛市集允許清單。Claude Desktop 2.16120.0 或更新版本在其受管設定關閉使用者新增的外掛市集時會傳送一個。如果您的機隊限制市集,請在獲勝的來源中設定 `strictKnownMarketplaces`。需要 Claude Code v2.1.282 或更新版本。453* **`strictKnownMarketplaces`**:當勝出的受管來源未設定時,Claude Code 會採用父程序提供的外掛市集允許清單。當 Claude Desktop 2.16120.0 或更新版本的受管設定關閉使用者新增的外掛市集時,它會傳送此清單。如果您的機群限制了市集,請在勝出來源中設定 `strictKnownMarketplaces`。需要 Claude Code v2.1.282 或更新版本。

454* **`blockedMarketplaces`**:父提供的市集封鎖清單會通過,並新增至任何受管來源設定的封鎖清單,因為封鎖清單只能進一步限制。需要 Claude Code v2.1.282 或更新版本。454* **`blockedMarketplaces`**:父程序提供的市集封鎖清單會通過篩選器,並加入任何受管來源所設定的封鎖清單,因為封鎖清單只能進一步加以限制。需要 Claude Code v2.1.282 或更新版本。

455* **`strictPluginOnlyCustomization`**:無論任何鎖定,此設定鍵都會通過篩選器,且它會使 Claude Code 忽略開發人員自己的自訂,包括保護性 hook。沒有鎖定能阻擋它。455* **`strictPluginOnlyCustomization`**:無論設定了任何鎖定,此鍵都會通過篩選器,並讓 Claude Code 忽略開發人員自己的自訂內容,包括保護性的 hook。沒有任何鎖定能阻擋它。

456 456 

457在預設的首次獲勝設定下,只有當管理員值位於最高優先級管理員來源時,才會阻擋父項的值,但 [MCP 伺服器鎖定](#lock-behavior-across-sources)開啟時的 `allowedMcpServers` 除外。在 `managedSourcesBehavior` 合併選擇加入下,[Claude Code 如何合併受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)說明改為套用哪個來源的值。457如果您將 `managedSourcesBehavior` 設為 `"merge"`,請查看[每種鍵套用哪個來源的值](https://code.claude.com/docs/zh-TW/managed-settings.md#compose-every-managed-source)。

458 458 

459#### 父設定中的 hook 和 skill 設定鍵如何生效459#### 父設定中的 hook 與 skill 鍵如何生效

460 460 

461您的應用程式在 Agent SDK 的 [`managedSettings`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項中傳遞的設定鍵屬於父設定。在管理員部署受管設定的機器上,Claude Code 會忽略父設定,除非管理員[允許嵌入主機新增原則](https://code.claude.com/docs/zh-TW/managed-settings.md#let-an-embedding-host-add-policy)。461您的應用程式在 Agent SDK 的 [`managedSettings`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項中傳遞的鍵屬於父設定。在管理員部署了受管設定的電腦上,除非管理員[允許內嵌主機新增原則](https://code.claude.com/docs/zh-TW/managed-settings.md#let-an-embedding-host-add-policy),否則 Claude Code 會忽略父設定。

462 462 

463如果您在 `managedSettings` 中傳遞 [`disableAllHooks: true`](https://code.claude.com/docs/zh-TW/settings-reference#disableallhooks):463如果您在 `managedSettings` 中傳遞 [`disableAllHooks: true`](https://code.claude.com/docs/zh-TW/settings-reference#disableallhooks):

464 464 

465* **停止**:使用者、專案和本機 hook,以及在 agent frontmatter 或 SDK 的 [`settings` 選項](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options)中宣告的 hook。465* **停止**:使用者、專案及本機 hook,以及在 agent frontmatter 或 SDK 的 [`settings` 選項](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options)中宣告的 hook。

466* **繼續執行**:您的應用程式的 [SDK hook 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/hooks.md),以及管理員來自受管設定的 hook。您的應用程式無法將管理員的 hook 關閉。466* **繼續執行**:您應用程式的 [SDK hook 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/hooks.md),以及管理員在受管設定中的 hook。您的應用程式無法關閉管理員的 hook。

467 467 

468| 您傳遞的內容 | 結果 |468| 您傳遞的內容 | 結果 |

469| :- | :- |469| :- | :- |

470| `hooks`,或含有項目的 `allowedHttpHookUrls` 或 `httpHookAllowedEnvVars` | Claude Code 會忽略該設定鍵。請改用 SDK `settings` 選項。 |470| `hooks`,或含有項目的 `allowedHttpHookUrls` 或 `httpHookAllowedEnvVars` | Claude Code 會忽略此鍵。請改用 SDK 的 `settings` 選項。 |

471| `allowedHttpHookUrls: []` | 除非管理員定義了 `hooks` 或啟用了外掛,否則生效。不會執行任何 HTTP hook,但其他設定來源列出的 URL 除外。 |471| `allowedHttpHookUrls: []` | 除非管理員定義了 `hooks` 或啟用了外掛,否則會生效。不會執行任何 HTTP hook,但其他設定來源列出的 URL 除外。 |

472| `httpHookAllowedEnvVars: []` | 除非管理員定義了 `hooks` 或啟用了外掛,否則生效。HTTP hook 標頭只能包含其他設定來源列出的環境變數。 |472| `httpHookAllowedEnvVars: []` | 除非管理員定義了 `hooks` 或啟用了外掛,否則會生效。HTTP hook 標頭只能包含其他設定來源列出的環境變數。 |

473| [`disableSkillShellExecution: true`](https://code.claude.com/docs/zh-TW/settings-reference#disableskillshellexecution) | 生效。 |473| [`disableSkillShellExecution: true`](https://code.claude.com/docs/zh-TW/settings-reference#disableskillshellexecution) | 生效。 |

474 474 

475在 `managedSettings` 中傳遞這些設定鍵需要 Claude Code v2.1.309 或更新版本,或 TypeScript Agent SDK v0.3.309 或更新版本。475在 `managedSettings` 中傳遞這些鍵需要 Claude Code v2.1.309 或更新版本,或 TypeScript Agent SDK v0.3.309 或更新版本。

476 476 

477### 連接 Claude Desktop477### 連接 Claude Desktop

478 478 

479[Claude Desktop](https://code.claude.com/docs/zh-TW/desktop.md) 透過不同的 MDM 設定鍵連接到相同的閘道:在 Claude Desktop 的[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)中將 `bootstrapUrl` 設定為 `<listen.public_url>/user/bootstrap`,並使用 `desktop` 設定鍵讓使用者的原則選擇加入。[Claude Desktop 覆蓋](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#claude-desktop-overlay)涵蓋這兩個部分。需要閘道伺服器上的 Claude Code v2.1.203 或更新版本。479[Claude Desktop](https://code.claude.com/docs/zh-TW/desktop.md) 透過不同的 MDM 鍵連接到同一個閘道:在 Claude Desktop 的[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)中將 `bootstrapUrl` 設為 `<listen.public_url>/user/bootstrap`,並以 `desktop` 鍵讓使用者的原則選擇加入。[Claude Desktop 覆蓋層](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#claude-desktop-overlay)涵蓋這兩部分。需要閘道伺服器上的 Claude Code v2.1.203 或更新版本。

480 480 

481Claude Desktop 透過閘道的身分提供者,以相同的瀏覽器 SSO 步驟讓開發人員登入,然後從閘道而不是從 Anthropic 擷取其設定。模型存取和原則遵循與 CLI 相同的各群組規則。同時使用 CLI 和 Claude Desktop 的開發人員需分別登入兩者;閘道工作階段不會在它們之間共享。481Claude Desktop 會透過閘道的身分識別提供者,以相同的瀏覽器 SSO 步驟讓開發人員登入,然後從閘道而非 Anthropic 擷取其設定。模型存取與原則遵循與 CLI 相同的各群組規則。同時使用 CLI 和 Claude Desktop 的開發人員需分別登入兩者;兩者之間不共用閘道工作階段。

482 482 

483連接後,Claude Desktop 會透過閘道傳送每個已啟用標籤的模型請求。它預設顯示 Cowork 和 Code 標籤。若要同時啟用 Chat 標籤,請在 Claude Desktop 的[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)中將 `chatTabEnabled` 設定為 `true`,或在執行 Claude Code v2.1.227 或更新版本的閘道上,於原則的 [`desktop` 區塊](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)中設定。483連接後,Claude Desktop 會透過閘道傳送每個已啟用分頁的模型請求。預設會顯示 Cowork 和 Code 分頁。若也要開啟 Chat 分頁,請在 Claude Desktop 的[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)中將 `chatTabEnabled` 設為 `true`,或在執行 Claude Code v2.1.227 或更新版本的閘道上,於原則的 [`desktop` 區塊](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)中設定。

484 484 

485### CI 管道和遠端機器485### CI 管線與遠端電腦

486 486 

487無人值守的管道沒有服務 token 流程。閘道登入始終執行瀏覽器裝置流程,因此沒有開發人員核准登入的 CI 作業無法進行身分驗證;請直接針對您的提供商設定這些作業。請將 `forceLoginMethod` 和 `forceLoginGatewayUrl` 部署到開發人員機器,而不要部署到 CI 執行器。在受管設定設定了這些設定鍵的機器上,使用 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 進行身分驗證的工作階段會[在啟動時結束](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)。487目前沒有供無人值守管線使用的服務 token 流程。閘道登入一律執行瀏覽器裝置流程,因此沒有開發人員可核准登入的 CI 工作無法完成身分驗證;請將這些工作直接設定為使用您的供應商。請將 `forceLoginMethod` 和 `forceLoginGatewayUrl` 部署到開發人員電腦上,而不要部署到 CI 執行器上。在受管設定中設定了這些鍵的電腦上,以 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 進行身分驗證的工作階段會[在啟動時結束](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)。

488 488 

489開發人員登入後,該機器上的每個 Claude Code 工作階段都會使用閘道工作階段,包括非互動式 `claude -p` 執行和由 Agent SDK 啟動的工作階段。Claude Code 將[閘道原則](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#managed)套用於每個工作階段。489開發人員登入後,該電腦上的每個 Claude Code 工作階段都會使用閘道工作階段,包括非互動式的 `claude -p` 執行,以及由 Agent SDK 啟動的工作階段。Claude Code 會對每個工作階段套用[閘道原則](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#managed)。

490 490 

491裝置流程將輪詢的 CLI 與核准的瀏覽器分開,因此沒有顯示器的遠端開發機器仍然可以運作:開發人員透過 SSH 在遠端機器上執行 `/login`,並在其筆記型電腦上的瀏覽器中開啟驗證連結。491裝置流程將進行輪詢的 CLI 與進行核准的瀏覽器分開,因此沒有顯示器的遠端開發機器也能運作:開發人員透過 SSH 在遠端電腦上執行 `/login`,然後在自己筆記型電腦的瀏覽器中開啟驗證連結。

492 492 

493### 對開發人員強制執行的內容493### 對開發人員強制執行的項目

494 494 

495這些保證適用於每個透過 `/login` 登入的工作階段。Claude Desktop 啟動的嵌入式工作階段按照[將原則傳遞給 Claude Desktop 工作階段](#deliver-policy-to-claude-desktop-sessions)中所述取得其原則,遙測項目則說明其匯出的去向。495這些保證適用於每個透過 `/login` 登入的工作階段。Claude Desktop 啟動的內嵌工作階段會依[將原則傳遞給 Claude Desktop 工作階段](#deliver-policy-to-claude-desktop-sessions)中所述的方式取得其原則,而遙測項目則說明了其匯出資料的去向。

496 496 

497* **模型存取**:對原則未授予之模型的請求會返回 400,且 `/model` 選擇器會篩選為原則的 `availableModels` 允許清單。這包括工作階段在開發人員選擇模型之前啟動時使用的模型;請參閱[在原則允許的模型上啟動工作階段](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#start-sessions-on-a-model-the-policy-allows)。497* **模型存取**:對原則未授權之模型的請求會傳回 400,且 `/model` 選擇器會篩選為原則的 `availableModels` 允許清單。這也包括開發人員選擇模型之前工作階段啟動時所用的模型;請參閱[讓工作階段以原則允許的模型啟動](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#start-sessions-on-a-model-the-policy-allows)。

498* **遙測目的地**:在透過 `/login` 登入的工作階段中,CLI 將其 OTLP/HTTP 匯出傳送到閘道,而不是本機設定的 `OTEL_EXPORTER_OTLP_ENDPOINT`,除非原則[將您的收集器指定為端點](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#export-directly-to-your-collector)。閘道將它接收的匯出轉發到 [`telemetry.forward_to`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry) 中的目的地。498* **遙測目的地**:在透過 `/login` 登入的工作階段中,CLI 會將其 OTLP/HTTP 匯出資料傳送到閘道,而非本機設定的 `OTEL_EXPORTER_OTLP_ENDPOINT`,除非原則[將您的收集器指定為端點](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#export-directly-to-your-collector)。閘道會將收到的匯出資料轉送至 [`telemetry.forward_to`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry) 中的目的地。

499 * 在 [Claude Desktop 啟動](#connect-claude-desktop)的嵌入式工作階段中,CLI 將其匯出傳送到設定的 `OTEL_EXPORTER_OTLP_ENDPOINT`。僅當該端點指向閘道本身時,CLI 才會將閘道工作階段 token 附加到這些匯出。499 * 在 [Claude Desktop 啟動](#connect-claude-desktop)的內嵌工作階段中,CLI 會將其匯出資料傳送到已設定的 `OTEL_EXPORTER_OTLP_ENDPOINT`。只有當該端點指向閘道本身時,CLI 才會將閘道工作階段 token 附加到這些匯出資料上。

500 * 當某個信號沒有設定目的地時,閘道會接受並丟棄它。500 * 若某個訊號沒有設定目的地,閘道會接受並捨棄它。

501 * 如果您已經直接收集 Claude Code 遙測,請將您的收集器新增為 `forward_to` 目的地,或在原則中指定它以跳過轉發。501 * 如果您已直接收集 Claude Code 遙測,請將您的收集器新增為 `forward_to` 目的地,或在原則中指定它以略過轉送。

502* **憑證**:閘道 token 是工作階段的唯一憑證。登入期間會忽略 [Anthropic 設定檔](https://code.claude.com/docs/zh-TW/authentication.md#anthropic-profiles-and-federation-credentials)和任何較早的 claude.ai 登入,因此開發人員不需要先登出 claude.ai。對於設定的 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 憑證,或由較早的 Claude Console 登入所儲存的 API 金鑰,請參閱[管理員原則要求雲端閘道登入](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)。502* **憑證**:閘道 token 是工作階段唯一的憑證。登入期間會忽略 [Anthropic 設定檔](https://code.claude.com/docs/zh-TW/authentication.md#anthropic-profiles-and-federation-credentials)和任何先前的 claude.ai 登入,因此開發人員不需要先登出 claude.ai。關於已設定的 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 憑證,或先前 Claude Console 登入所儲存的 API 金鑰,請參閱 [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/zh-TW/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)。

503* **受管設定**:鎖定的設定鍵無法在本機覆蓋。CLI 在啟動時套用原則,並在每小時輪詢時套用變更,但[僅在下次啟動時套用的變更](https://code.claude.com/docs/zh-TW/server-managed-settings.md#fetch-and-caching-behavior)除外。503* **受管設定**:鎖定的鍵無法在本機覆寫。CLI 會在啟動時套用原則,並在每小時輪詢時套用變更,但[僅在下次啟動時套用的變更](https://code.claude.com/docs/zh-TW/server-managed-settings.md#fetch-and-caching-behavior)除外。

504* **閘道無法到達時啟動**:已登入的工作階段會在啟動時約 10 秒後以錯誤結束,而不是在沒有其設定的情況下啟動。504* **閘道無法連線時的啟動**:已登入的工作階段會在約 10 秒後以錯誤結束啟動,而不會在沒有其設定的情況下啟動。

505* **閘道結束工作階段後啟動**:請參閱[強制執行故障關閉啟動](https://code.claude.com/docs/zh-TW/server-managed-settings.md#enforce-fail-closed-startup),了解哪些啟動會在登出閘道的狀態下開啟,哪些會在閘道以 `401` 回應時結束。505* **閘道結束工作階段後的啟動**:請參閱[強制執行失敗即關閉的啟動](https://code.claude.com/docs/zh-TW/server-managed-settings.md#enforce-fail-closed-startup),了解哪些啟動會以登出閘道的狀態開啟,以及哪些啟動會在閘道以 `401` 回應時結束。

506* **取消佈建**:使用者在 IdP 中被停用的工作階段,會在下一次重新整理失敗時於 `ttl_hours` 內過期。506* **取消佈建**:使用者在 IdP 中被停用的工作階段,會在下次更新失敗時於 `ttl_hours` 內到期。

507* **登出**:`/logout` 會刪除開發人員機器上的閘道憑證。507* **登出**:`/logout` 會從開發人員的電腦刪除閘道憑證。

508 * 當閘道的探索文件在與閘道 URL 相同的配置、主機和連接埠上公告 `revocation_endpoint` 時,`/logout` 也會將儲存的 token 傳送到該端點,以便閘道可以在其端結束工作階段。此請求為盡力而為,因此無論端點是否回應,登出都會在開發人員的機器上完成。撤銷需要開發人員機器上的 Claude Code v2.1.275 或更新版本。508 * 當閘道的探索文件在與閘道 URL 本身相同的 scheme、主機和連接埠上公告 `revocation_endpoint` 時,`/logout` 也會將儲存的 token 傳送到該端點,讓閘道能在其端結束工作階段。此請求為盡力而為,因此無論端點是否回應,開發人員電腦上的登出都會完成。撤銷需要開發人員電腦上的 Claude Code v2.1.275 或更新版本。

509 * `claude` 二進位檔中的閘道伺服器不公告任何撤銷端點,因此從它登出僅會在開發人員的機器上結束工作階段。若要在伺服器端強制結束工作階段,請參閱 [JWT 祕密輪換](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#jwt-secret-rotation)。509 * `claude` 二進位檔中的閘道伺服器不會公告任何撤銷端點,因此從它登出只會結束開發人員電腦上的工作階段。若要在伺服器端強制讓工作階段登出,請參閱 [JWT 密鑰輪替](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#jwt-secret-rotation)。

510 510 

511### 組織可以看到什麼511### 組織可以看到的內容

512 512 

513使用情況遙測會將開發人員的身分、token 計數、模型和延遲傳送到組織的收集器。閘道不會記錄或儲存提示詞或完成內容。是否收集更豐富的遙測(例如日誌和追蹤,可能包括命令和檔案路徑),是組織的[按目的地選擇](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#telemetry)。513使用遙測會將開發人員的身分、token 數量、模型和延遲傳送到組織的收集器。閘道不會記錄或儲存提示詞或完成內容。是否收集更豐富的遙測(例如日誌和追蹤,其中可能包含命令和檔案路徑),由組織[依目的地自行選擇](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#telemetry)。

514 514 

515## 可用性和限制515## 可用性和限制

516 516 

Details

419 419 

420```yaml theme={null}420```yaml theme={null}

421models:421models:

422 - id: claude-opus-restricted # 自訂 id,不是內建模型名稱422 - id: restricted-claude-opus-4-8 # 自訂 id,不是內建模型名稱

423 upstream_model:423 upstream_model:

424 bedrock-isolated: us.anthropic.claude-opus-4-8 # 唯一服務它的上游424 bedrock-isolated: us.anthropic.claude-opus-4-8 # 唯一服務它的上游

425```425```


629 629 

630閘道不保留失敗上游的記錄,因此當上游關閉時,到達它的每個請求仍然會嘗試它,並等待它失敗後再繼續。630閘道不保留失敗上游的記錄,因此當上游關閉時,到達它的每個請求仍然會嘗試它,並等待它失敗後再繼續。

631 631 

632對於 Anthropic API 上游,[`timeouts.upstream_ttfb_ms`](#http-tuning) 限制在關閉上游上的等待時間。該設定不適用於其他提供者,閘道在那些提供者上最多等待一小時讓上游開始回應。632閘道等待回應開始的時間如下:

633 

634* **`provider: anthropic` 上游**:[`timeouts.upstream_ttfb_ms`](#http-tuning),預設為 120 秒

635* **其他提供者**:最多一小時。若要縮短串流請求的等待時間,請在閘道 v2.1.295 或更新版本上設定 `timeouts.upstream_ttfb_ms`。非串流模型請求無論如何都最多等待一小時

633 636 

634`404` 代表每個上游的模型可用性,因此未啟用模型的上游不會阻止清單中稍後服務它的上游。無法解析所請求模型的上游會被跳過,無需網路往返。637`404` 代表每個上游的模型可用性,因此未啟用模型的上游不會阻止清單中稍後服務它的上游。無法解析所請求模型的上游會被跳過,無需網路往返。

635 638 


873 policies:876 policies:

874 - match: { groups: [restricted-projects] }877 - match: { groups: [restricted-projects] }

875 cli:878 cli:

876 availableModels: [claude-opus-restricted]879 availableModels: [restricted-claude-opus-4-8]

877 enforceAvailableModels: true880 enforceAvailableModels: true

878 model: claude-opus-restricted881 model: restricted-claude-opus-4-8

882 env:

883 ANTHROPIC_DEFAULT_OPUS_MODEL: restricted-claude-opus-4-8 # opus and Default resolve to the ID too

879```884```

880 885 

881#### 在啟動時停止 gateway 的 matcher 值886#### 在啟動時停止 gateway 的 matcher 值


1146 1151 

1147`blockReadsOutsideWorkingDirectories`、`disableBypassPermissionsMode`、`configRecheckIntervalMinutes` 和 `sshClientPath` 需要 gateway 伺服器上的 Claude Code v2.1.281 或更新版本。Microsoft 365 `managedMcpServers` 項目的 `microsoftAuthBroker` 的 `required` 值和 `continuousAccessEvaluation` 欄位也是如此。早於 `required` 值的 Claude Desktop 版本將其讀取為 `disabled`,因此只在每個成員的 Claude Desktop 支援它之後設定 `required`。Claude Desktop 的[受管設定參考](https://claude.com/docs/third-party/claude-desktop/configuration)列出首次讀取每個金鑰的版本。1152`blockReadsOutsideWorkingDirectories`、`disableBypassPermissionsMode`、`configRecheckIntervalMinutes` 和 `sshClientPath` 需要 gateway 伺服器上的 Claude Code v2.1.281 或更新版本。Microsoft 365 `managedMcpServers` 項目的 `microsoftAuthBroker` 的 `required` 值和 `continuousAccessEvaluation` 欄位也是如此。早於 `required` 值的 Claude Desktop 版本將其讀取為 `disabled`,因此只在每個成員的 Claude Desktop 支援它之後設定 `required`。Claude Desktop 的[受管設定參考](https://claude.com/docs/third-party/claude-desktop/configuration)列出首次讀取每個金鑰的版本。

1148 1153 

1154> [!NOTE]

1155>

1156> [`sshTransport`](https://claude.com/docs/third-party/claude-desktop/configuration#sshtransport) 需要閘道伺服器上為 Claude Code v2.1.293 或更新版本。

1157 

1149如果您在原則的 `desktop` 區塊中設定 `orgPluginSettings`,gateway 以 Claude Desktop 1.15200.0 及更新版本讀取的陣列形式提供它。較舊的桌面忽略陣列並強制執行沒有外掛工具原則,因此在依賴它之前將成員更新到 1.15200.0 或更新版本。1158如果您在原則的 `desktop` 區塊中設定 `orgPluginSettings`,gateway 以 Claude Desktop 1.15200.0 及更新版本讀取的陣列形式提供它。較舊的桌面忽略陣列並強制執行沒有外掛工具原則,因此在依賴它之前將成員更新到 1.15200.0 或更新版本。

1150 1159 

1151##### 角色原則如何繼承基礎 `desktop` 區塊1160##### 角色原則如何繼承基礎 `desktop` 區塊


1396| `limits` | `max_request_bytes` | 32 MiB | 最大入站請求本體;超大小請求在本體被緩衝之前獲得 `413`。為大型檔案或影像請求提高。 |1405| `limits` | `max_request_bytes` | 32 MiB | 最大入站請求本體;超大小請求在本體被緩衝之前獲得 `413`。為大型檔案或影像請求提高。 |

1397| `limits` | `max_request_header_bytes` | 未設定 | 降低 gateway 對請求標頭總大小的 256 KiB 限制。超過限制的請求返回 `431`,高於 256 KiB 的值沒有作用。如果開發者在登入後收到 `431`,請參閱[登入後請求標頭過大](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#request-headers-too-large-after-sign-in)。 |1406| `limits` | `max_request_header_bytes` | 未設定 | 降低 gateway 對請求標頭總大小的 256 KiB 限制。超過限制的請求返回 `431`,高於 256 KiB 的值沒有作用。如果開發者在登入後收到 `431`,請參閱[登入後請求標頭過大](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#request-headers-too-large-after-sign-in)。 |

1398| `limits` | `max_url_length` | 未設定 | 設定時,過長 URL 返回 `414` |1407| `limits` | `max_url_length` | 未設定 | 設定時,過長 URL 返回 `414` |

1399| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游回應標頭(首位元組時間)的最大時間。回應本體隨後以無牆鐘上限流式傳輸。適用於直接 Anthropic 上游路徑;在每個其他提供者上,gateway 等待最多一小時以開始回應。 |1408| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游回應標頭的上限(首位元組時間)。之後回應主體會以串流傳送,沒有實際時間上限。若未設定此鍵,預設值適用於 `provider: anthropic` 上游;對於其他所有供應商,閘道最多會等待一小時讓回應開始。若要縮短此等待時間,請參閱[多個上游](#multiple-upstreams)。 |

1400| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未驗證裝置授權端點上的每 IP 速率限制。為共享出口 IP 或 NAT 後的大型組織提高。[大型推出](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#large-rollouts)顯示如何調整大小。這些限制只適用於裝置授予登入流程,不適用於 `/v1/messages` 推論。請參閱[使用者代碼暴力破解抵抗](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#user-code-brute-force-resistance)。 |1409| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未驗證裝置授權端點上的每 IP 速率限制。為共享出口 IP 或 NAT 後的大型組織提高。[大型推出](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#large-rollouts)顯示如何調整大小。這些限制只適用於裝置授予登入流程,不適用於 `/v1/messages` 推論。請參閱[使用者代碼暴力破解抵抗](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#user-code-brute-force-resistance)。 |

1401| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | 在 `/device` 上 `user_code` 提交的每 IP 速率限制。這是阻止某人猜測另一位開發者代碼的原因。[大型推出](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#large-rollouts)顯示提高多遠。 |1410| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | 在 `/device` 上 `user_code` 提交的每 IP 速率限制。這是阻止某人猜測另一位開發者代碼的原因。[大型推出](https://code.claude.com/docs/zh-TW/claude-apps-gateway-deploy.md#large-rollouts)顯示提高多遠。 |

1402 1411 

Details

228 228 

229Teleport 需要 claude.ai 訂閱身分驗證。請找出符合您情況的項目:229Teleport 需要 claude.ai 訂閱身分驗證。請找出符合您情況的項目:

230 230 

231* **您透過 API 金鑰進行身分驗證**:執行 `/login` 以改為使用您的 claude.ai 帳戶登入231* **您使用 API 金鑰或 Console 帳戶登入**:在您的 shell 中執行 `claude auth login`,然後使用 claude.ai 登入

232* **錯誤命名了您的提供者**:雲端工作階段無法透過第三方提供者取得。請參閱 [錯誤表](#errors-when-sending-to-a-cloud-session)232* **錯誤命名了您的提供者**:雲端工作階段無法透過第三方提供者取得。請參閱 [錯誤表](#errors-when-sending-to-a-cloud-session)

233* **您已透過 claude.ai 登入**:您的組織可能已停用雲端工作階段233* **您已透過 claude.ai 登入**:您的組織可能已停用雲端工作階段

234 234 


437 437 

438### 無法取得組織 UUID438### 無法取得組織 UUID

439 439 

440`claude --cloud` 和 `claude --teleport` 需要使用 claude.ai 帳戶登入。如果您使用 API 金鑰進行身分驗證,或您儲存的帳戶詳細資訊已過期,您會看到以下其中一項:440`claude --cloud` 和 `claude --teleport` 需要使用 claude.ai 帳戶登入。如果您改用 API 金鑰或 Console 登入進行身分驗證,或您儲存的帳戶詳細資訊已過期,您會看到類似以下的訊息:

441 441 

442* `Unable to get organization UUID`442* `Unable to get organization UUID`

443* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``443* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

444* ``Cloud sessions aren't available with this Console sign-in. They need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

444* 在不提供工作階段 ID 的情況下執行 `claude --teleport` 時,工作階段選擇器中出現 `Error loading Claude Code sessions`445* 在不提供工作階段 ID 的情況下執行 `claude --teleport` 時,工作階段選擇器中出現 `Error loading Claude Code sessions`

445 446 

446在您的 shell 中執行 [`claude auth login`](https://code.claude.com/docs/zh-TW/cli-reference#cli-commands) 以使用您的 claude.ai 帳戶登入,然後重試命令。在執行中的工作階段內,`/login` 的作用相同。如果錯誤改為指出您的提供者名稱,請參閱[錯誤表](#errors-when-sending-to-a-cloud-session):雲端工作階段無法透過第三方提供者使用。447在您的 shell 中執行 [`claude auth login`](https://code.claude.com/docs/zh-TW/cli-reference#cli-commands) 以使用您的 claude.ai 帳戶登入,然後重試命令。在執行中的工作階段內,`/login` 的作用相同。如果錯誤改為指出您的提供者名稱,請參閱[錯誤表](#errors-when-sending-to-a-cloud-session):雲端工作階段無法透過第三方提供者使用。

Details

27 27 

28## 設定28## 設定

29 29 

30### 設定 AWS 認證30### 設定 AWS 憑證

31 31 

32Claude Code 支援 AWS 上的 Claude Platform 的兩種驗證方法。選擇適合您的團隊如何管理存取的方法:32Claude Code 支援兩種用於 Claude Platform on AWS 的身分驗證方式。請選擇符合團隊存取管理方式的方法:

33 33 

34* [使用 SigV4 的 AWS 憑證](#use-aws-credentials-with-sigv4):以 IAM 主體身分進行身分驗證,憑證來自標準 AWS 憑證鏈34* [使用 SigV4 的 AWS 憑證](#use-aws-credentials-with-sigv4):以 IAM 主體進行身分驗證,憑證來自標準 AWS 憑證鏈

35* [工作區 API 金鑰](#use-a-workspace-api-key):使用您在 AWS Console 中產生的長期有效金鑰進行身分驗證35* [工作區 API 金鑰](#use-a-workspace-api-key):使用您在 AWS Console 中產生的長期金鑰進行身分驗證

36 36 

37#### 使用 SigV4 的 AWS 憑證37#### 使用 SigV4 的 AWS 憑證

38 38 

39Claude Code 使用標準 AWS 認證鏈使用 SigV4 簽署請求:環境變數、`~/.aws/credentials` 中的共享認證、IAM 角色、AWS SSO 工作階段,以及 AWS SDK 支援的任何其他來源。39Claude Code 使用標準 AWS 憑證鏈以 SigV4 簽署請求:環境變數、`~/.aws/credentials` 中的共用憑證、IAM 角色、AWS SSO 工作階段,以及 AWS SDK 支援的任何其他來源。

40 40 

41對於本機使用,在啟動 Claude Code 之前使用 AWS CLI 登入。下面的範例使用 SSO 設定檔,但任何在標準位置產生認證的方法都有效。41在本機使用時,請在啟動 Claude Code 之前使用 AWS CLI 登入。以下範例使用 SSO 設定檔,但任何能在標準位置產生憑證的方法皆可使用。

42 42 

43```bash theme={null}43```bash theme={null}

44aws sso login --profile my-profile44aws sso login --profile my-profile

45export AWS_PROFILE=my-profile45export AWS_PROFILE=my-profile

46```46```

47 47 

48對於 CI 和自動化,給予執行器具有叫用 Anthropic 服務權限的 IAM 角色,並設定 `AWS_REGION`。認證鏈會自動選取該角色。48針對 CI 與自動化,請為執行器提供具有呼叫 Anthropic 服務權限的 IAM 角色,並設定 `AWS_REGION`。憑證鏈會自動取得該角色。

49 49 

50如果您的 SSO 憑證在工作階段中途過期,請設定 [`awsAuthRefresh`](https://code.claude.com/docs/zh-TW/amazon-bedrock#advanced-credential-configuration),以便 Claude Code 重新執行您的登入命令並重試,而不是失敗。將命令新增至您的[設定檔](https://code.claude.com/docs/zh-TW/settings.md),例如 `~/.claude/settings.json`:50如果您的 SSO 憑證在工作階段中途過期,請設定 [`awsAuthRefresh`](https://code.claude.com/docs/zh-TW/amazon-bedrock#advanced-credential-configuration),讓 Claude Code 重新執行您的登入命令並重試,而不是直接失敗。將該命令新增至您的[設定檔](https://code.claude.com/docs/zh-TW/settings.md),例如 `~/.claude/settings.json`:

51 51 

52```json theme={null}52```json theme={null}

53{53{


55}55}

56```56```

57 57 

58當 Claude Code 無法驗證您現有的 AWS 憑證時,也會在啟動時執行此命令,並在 `Authentication` 面板中顯示命令的輸出,直到登入完成。58當 Claude Code 無法驗證您現有的 AWS 憑證時,也會在啟動時執行此命令,並在 `Authentication` 面板中顯示該命令的輸出,直到登入完成為止。

59 59 

60設定 `awsAuthRefresh` 後,執行 `/login`,選取**第三方平台**,然後在**使用第三方平台**下選取 **Claude Platform on AWS · 重新整理認證**。Claude Code 會執行已設定的命令,並重新讀取您的 AWS 認證,而無需重新啟動。60設定 `awsAuthRefresh` 後,執行 `/login`,選取 **3rd-party platform**,然後在 **Using 3rd-party platforms** 下選取 **Claude Platform on AWS · refresh credentials**。Claude Code 會執行所設定的命令,並在不需重新啟動的情況下重新讀取您的 AWS 憑證。

61 61 

62#### 使用工作區 API 金鑰62#### 使用工作區 API 金鑰

63 63 

64工作區 API 金鑰是長期有效的祕密,在您不想管理聯合 AWS 認證時很有用。在 AWS Console 中的 **Claude Platform on AWS → API keys** 下產生一個,並將其設定為 `ANTHROPIC_AWS_API_KEY`:64工作區 API 金鑰是一種長期有效的密鑰,適用於您不想管理聯合 AWS 憑證的情況。請在 AWS Console 的 **Claude Platform on AWS → API keys** 下產生金鑰,並將其設定為 `ANTHROPIC_AWS_API_KEY`:

65 65 

66```bash theme={null}66```bash theme={null}

67export ANTHROPIC_AWS_API_KEY=sk-ant-xxxxx67export ANTHROPIC_AWS_API_KEY=sk-ant-xxxxx

68```68```

69 69 

70金鑰以 `x-api-key` 形式傳送,優先於 SigV4,因此您環境中的任何 AWS 認證都會被忽略。來自單獨 Claude Console 組織的 API 金鑰在此不起作用。70金鑰會以 `x-api-key` 傳送,且優先於 SigV4,因此您環境中的任何 AWS 憑證都會被忽略。來自另一個 Claude Console 組織的 API 金鑰在此無法使用。

71 71 

72將工作區 API 金鑰視為任何其他生產認證。[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md) `env` 區塊是在不全域匯出的情況下將金鑰限定於您的機器的便利方式。72請像對待任何其他正式環境憑證一樣對待工作區 API 金鑰。[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)中的 `env` 區塊是將金鑰範圍限定於您的電腦、而不必全域匯出的便利方式。

73 73 

74> [!NOTE]74> [!NOTE]

75>75>

76> `/login` 和 `/logout` 命令不會將您登入 Claude Platform on AWS 的 claude.ai 訂閱。驗證透過您的 AWS 認證或工作區 API 金鑰執行。76> `/login` 和 `/logout` 命令不會為 Claude Platform on AWS 登入 claude.ai 訂閱。身分驗證是透過您的 AWS 憑證或工作區 API 金鑰進行。

77 77 

78### 設定 Claude Code78### 設定 Claude Code

79 79 

80設定環境變數,將 Claude Code 路由透過 AWS 上的 Claude Platform,而不是預設的 Anthropic API。80設定環境變數,讓 Claude Code 透過 Claude Platform on AWS 路由,而非預設的 Anthropic API。

81 81 

82```bash theme={null}82```bash theme={null}

83export CLAUDE_CODE_USE_ANTHROPIC_AWS=183export CLAUDE_CODE_USE_ANTHROPIC_AWS=1


85export AWS_REGION=us-east-185export AWS_REGION=us-east-1

86```86```

87 87 

88`ANTHROPIC_AWS_WORKSPACE_ID` 是必需的。Claude Code 在每個請求上將其作為 `anthropic-workspace-id` 標頭傳送。將範例 `wrkspc_01ABCDEFGHIJKLMN` 值替換為您從 AWS 上的 Claude Platform 設定中的工作區 ID。88`ANTHROPIC_AWS_WORKSPACE_ID` 為必要項目。Claude Code 會在每個請求中以 `anthropic-workspace-id` 標頭傳送它。請將範例值 `wrkspc_01ABCDEFGHIJKLMN` 替換為您在 Claude Platform on AWS 設定中取得的工作區 ID。

89 89 

90Claude Code 從 AWS 區域計算基礎 URL 為 `https://aws-external-anthropic.{region}.api.aws`,它使用[與 Amazon Bedrock 相同的優先順序](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#3-configure-claude-code)進行解析。若要直接覆寫 URL,請設定 `ANTHROPIC_AWS_BASE_URL`。90Claude Code 會根據 AWS 區域將基礎 URL 計算為 `https://aws-external-anthropic.{region}.api.aws`,而 AWS 區域的解析方式與 [Amazon Bedrock 的優先順序相同](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#3-configure-claude-code)。若要直接覆寫 URL,請設定 `ANTHROPIC_AWS_BASE_URL`。

91 91 

92即使您的環境中存在 AWS 認證,AWS 上的 Claude Platform 也是選擇加入的。Amazon Bedrock 和 Microsoft Foundry 在提供者路由中優先,因此如果設定了 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_FOUNDRY`,請取消設定它們。92即使您的環境中存在 AWS 憑證,Claude Platform on AWS 仍需主動選擇啟用。在提供者路由中,Amazon Bedrock 和 Microsoft Foundry 具有較高的優先順序,因此如果已設定 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_FOUNDRY`,請將其取消設定。

93 93 

94### 固定模型版本94### 固定模型版本

95 95 

96AWS 上的 Claude Platform 使用與直接 Claude API 相同的模型 ID。96Claude Platform on AWS 使用與直接 Claude API 相同的模型 ID。

97 97 

98預設別名 `fable`、`opus`、`sonnet` 和 `haiku` 解析為 Claude Code 針對 AWS 上的 Claude Platform 的內建預設值,這些值可能落後於最新版本。沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 別名解析為 Opus 5.5。在 v2.1.280 之前,它解析為 Opus 5(自 v2.1.219 起)。98預設別名 `fable`、`opus`、`sonnet` 和 `haiku` 會解析為 Claude Code 針對 Claude Platform on AWS 的內建預設值,這些預設值可能落後於最新版本。若未設定 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 別名會解析為 Opus 5.5。在 v2.1.280 之前,自 v2.1.219 起它會解析為 Opus 5。

99 99 

100如果您將 Claude Code 部署到團隊,請明確固定模型 ID,以便新版本不會一次移動所有人:100如果您將 Claude Code 部署給團隊,請明確固定模型 ID,以免新版本發布時所有人同時被切換:

101 101 

102```bash theme={null}102```bash theme={null}

103export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5103export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5


106export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5106export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

107```107```

108 108 

109有關模型 ID 和別名的完整清單,請參閱[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)。有關其他模型相關變數,請參閱[模型設定](https://code.claude.com/docs/zh-TW/model-config.md)。109如需完整的模型 ID 與別名清單,請參閱[模型概覽](https://platform.claude.com/docs/en/about-claude/models/overview)。如需其他與模型相關的變數,請參閱[模型設定](https://code.claude.com/docs/zh-TW/model-config.md)。

110 110 

111[Prompt caching](https://code.claude.com/docs/zh-TW/prompt-caching.md) 會自動啟用。若要要求 1 小時快取 TTL 而不是 5 分鐘預設值,請設定 `ENABLE_PROMPT_CACHING_1H=1`。API 以更高的費率計費 1 小時快取寫入。有關費率,請參閱 [prompt caching 定價](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。111[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md)會自動啟用。若要請求 1 小時的快取 TTL 而非預設的 5 分鐘,請設定 `ENABLE_PROMPT_CACHING_1H=1`。API 對 1 小時快取寫入的計費費率較高。費率請參閱[提示快取定價](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。

112 112 

113若要為您的主要對話和 Claude Code 在其外部進行的請求設定不同的 TTL,請[自行選擇 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#choose-the-ttl-yourself)。113若要為主要對話以及 Claude Code 在主要對話之外發出的請求設定不同的 TTL,請參閱[自行選擇 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#choose-the-ttl-yourself)。

114 114 

115### 啟動並驗證115### 啟動並驗證

116 116 


120claude120claude

121```121```

122 122 

123當提供者處於活動狀態時,啟動橫幅會顯示 `Claude Platform on AWS`。執行 `/status` 以檢查詳細資訊:`API provider` 行讀取 `Claude Platform on AWS`,輸出包括您的 `Workspace ID`、`AWS region` 和 `Claude Platform on AWS base URL`(如果您設定了覆寫)。123當提供者處於啟用狀態時,啟動橫幅會顯示 `Claude Platform on AWS`。執行 `/status` 以檢查詳細資訊:`API provider` 一行會顯示 `Claude Platform on AWS`,輸出內容包括您的 `Workspace ID`、`AWS region`,以及(若您設定了覆寫)`Claude Platform on AWS base URL`。

124 124 

125## 使用 Agent SDK125## 使用 Agent SDK

126 126 

Details

99 99 

100這些需求決定您是否可以新增機密,以及 agent 代理伺服器在新增後是否可以使用它:100這些需求決定您是否可以新增機密,以及 agent 代理伺服器在新增後是否可以使用它:

101 101 

102* **角色**:在 Pro、Max 和 Team 方案上,無論您的角色為何,都可以在自己的環境上新增和刪除機密。在 Team 和 Enterprise 上,擁有者在您的 claude.ai 組織中持有組織管理員角色,管理員則沒有,這會改變您在以下情況中看到的內容:102* **角色**:在所有方案上,無論您的角色為何,都可以在自己的環境上新增和刪除機密。在 Team 和 Enterprise 上,擁有者在您的 claude.ai 組織中持有組織管理員角色,管理員則沒有,這會改變您在以下情況中看到的內容:

103 * **您在 Enterprise 上的自有環境**:擁有組織管理員角色時,您可以新增和刪除機密。若沒有該角色,**網路機密**列會開啟機密清單,並附上「只有組織管理員可以新增或刪除網路機密」註記,且沒有**新增機密**或刪除按鈕。請擁有者將機密新增到[共用環境](#organization-shared-environments),然後在那裡執行您的工作階段103 * **您自己的環境**:若沒有組織管理員角色,**新增機密**會開啟[較簡短的表單](#add-a-secret-without-the-role)

104 * **共用環境**:擁有者從管理設定[新增和刪除其機密](#add-a-credential)。若沒有組織管理員角色,請擁有者新增機密,因為該環境的對話框沒有**網路機密**區段104 * **共用環境**:擁有者從管理設定[新增和刪除其機密](#add-a-credential)。若沒有組織管理員角色,請擁有者新增機密,因為該環境的對話框沒有**網路機密**區段

105 * **您在 Team 上的自有環境**:若沒有組織管理員角色,**新增機密**會開啟只接受一個主機的[較簡短表單](#add-a-secret-without-the-role)

106* **環境類型**:已存在的 Anthropic 託管雲端環境。[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)沒有網路機密105* **環境類型**:已存在的 Anthropic 託管雲端環境。[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)沒有網路機密

107* **API 可達性**:API 接受來自網際網路的連線,因為請求來自 Anthropic 的網路106* **API 可達性**:API 接受來自網際網路的連線,因為請求來自 Anthropic 的網路

108* **加密金鑰**:如果您的組織使用客戶管理的加密金鑰,您無法儲存網路機密107* **加密金鑰**:如果您的組織使用客戶管理的加密金鑰,您無法儲存網路機密


111 110 

112您一次新增一個機密。若要變更機密的主機或值,請刪除它並再次新增。111您一次新增一個機密。若要變更機密的主機或值,請刪除它並再次新增。

113 112 

114若要將機密新增到[共用環境](#organization-shared-environments),請從[管理設定](https://claude.ai/admin-settings)中的**雲端環境**頁面開啟該環境進行編輯,然後在其**網路機密**區段中從步驟 2 繼續。如果您使用 Team 方案且未持有[組織管理員角色](#requirements),請在您自己的環境上執行步驟 1,然後[填寫較簡短的表單](#add-a-secret-without-the-role)。113若要將機密新增到[共用環境](#organization-shared-environments),請從[管理設定](https://claude.ai/admin-settings)中的**雲端環境**頁面開啟該環境進行編輯,然後在其**網路機密**區段中從步驟 2 繼續。如果您使用 Team 或 Enterprise 方案且未持有[組織管理員角色](#requirements),請在您自己的環境上執行步驟 1,然後[填寫較簡短的表單](#add-a-secret-without-the-role)。

115 114 

116**1. 開啟環境的網路機密**115**1. 開啟環境的網路機密**

117 116 


133 132 

134若要確認機密有效,請在環境中啟動工作階段並要求 Claude 呼叫 API,例如使用 `curl`。API 的回應就像金鑰在請求中一樣,金鑰不會出現在工作階段的環境變數或任何檔案中。如果清單將機密標記為**未傳送**,其下方的註記會說明原因和解決方法。兩個主機重疊但不完全相符的機密不會獲得標記,agent 代理伺服器只會傳送其中一個。133若要確認機密有效,請在環境中啟動工作階段並要求 Claude 呼叫 API,例如使用 `curl`。API 的回應就像金鑰在請求中一樣,金鑰不會出現在工作階段的環境變數或任何檔案中。如果清單將機密標記為**未傳送**,其下方的註記會說明原因和解決方法。兩個主機重疊但不完全相符的機密不會獲得標記,agent 代理伺服器只會傳送其中一個。

135 134 

136#### 在 Team 方案上沒有組織管理員角色時新增機密135#### 沒有組織管理員角色時新增機密

137 136 

138如果您使用 Team 方案且未持有[組織管理員角色](#requirements),**新增機密**表單只接受一個主機的一個機密。選擇您環境的[**網路機密**列](#add-a-credential),然後選擇**新增機密**。填寫這些欄位,然後選擇表單的**新增機密**按鈕:137如果您使用 Team 或 Enterprise 方案且未持有[組織管理員角色](#requirements),**新增機密**表單只接受一個主機的一個機密。選擇您環境的[**網路機密**列](#add-a-credential),然後選擇**新增機密**。填寫這些欄位,然後選擇表單的**新增機密**按鈕:

139 138 

140* **主機**:取得機密的單一主機,例如 `api.example.com`。表單不接受 `*.` 萬用字元139* **主機**:取得機密的單一主機,例如 `api.example.com`。表單不接受 `*.` 萬用字元

141* **名稱**:機密的選用標籤140* **名稱**:機密的選用標籤

computer-use.md +13 −13

Details

68沒有任何內容崩潰。擷取您找到的任何錯誤狀態的螢幕截圖。68沒有任何內容崩潰。擷取您找到的任何錯誤狀態的螢幕截圖。

69```69```

70 70 

71## 按工作階段核准應用程式71## 依工作階段核准應用程式

72 72 

73啟用 `computer-use` 伺服器不會授予 Claude 存取您機器上每個應用程式的權限。Claude 在工作階段中第一次需要特定應用程式時,您的終端機中會出現提示,顯示:73啟用 `computer-use` 伺服器並不會讓 Claude 存取您電腦上的每個應用程式。在工作階段中,Claude 第一次需要使用特定應用程式時,您的終端機會顯示權限提示,內容包括:

74 74 

75* Claude 想要控制哪些應用程式75* Claude 想要控制哪些應用程式

76* 任何額外的權限請求,例如剪貼簿存取76* 所請求的任何額外權限,例如剪貼簿存取

77* Claude 工作時將隱藏多少其他應用程式77* Claude 工作期間將隱藏多少其他應用程式

78 78 

79選擇**允許此工作階段**或**拒絕**。核准持續到目前工作階段。當 Claude 同時請求多個應用程式時,您可以一次核准多個應用程式。79選擇 **Allow for this session** 或 **Deny**。核准在目前的工作階段內有效。當 Claude 同時請求多個應用程式時,您可以一次核准它們。

80 80 

81具有廣泛影響的應用程式在提示中顯示額外警告,讓您知道核准它們會授予什麼:81影響範圍廣泛的應用程式會在權限提示中顯示額外警告,讓您了解核准它們會授予哪些權限:

82 82 

83| 警告 | 適用於 |83| 警告 | 適用對象 |

84| :- | :- |84| :- | :- |

85| 等同於 shell 存取 | Terminal、iTerm、VS Code、Warp 和其他終端機和 IDE |85| 等同於 shell 存取 | Terminal、iTerm、VS Code、Warp 及其他終端機和 IDE |

86| 可以讀取或寫入任何檔案 | Finder |86| 可讀取或寫入任何檔案 | Finder |

87| 可以變更系統設定 | System Settings |87| 可變更系統設定 | System Settings |

88 88 

89這些應用程式不會被封鎖。警告讓您決定任務是否值得該級別的存取。89這些應用程式並未遭到封鎖。此警告讓您自行判斷該任務是否值得授予這種層級的存取權限。

90 90 

91核准 Finder 以讓 Claude 點擊桌面、Dock 或 Finder 視窗。91核准 Finder 即可讓 Claude 點按桌面、Dock 或 Finder 視窗。

92 92 

93Claude 的控制級別也因應用程式類別而異:瀏覽器和交易平台是僅檢視,終端機和 IDE 是僅點擊,其他所有內容都獲得完全控制。請參閱 [Desktop 中的應用程式權限](https://code.claude.com/docs/zh-TW/desktop.md#app-permissions)以取得完整的層級細目。93Claude 的控制層級也會因應用程式類別而異:瀏覽器和交易平台僅供檢視,終端機和 IDE 僅限點按,其他所有應用程式則享有完整控制權。如需完整的層級說明,請參閱 [Desktop 中的應用程式權限](https://code.claude.com/docs/zh-TW/desktop.md#app-permissions)。

94 94 

95## Claude 如何在您的螢幕上工作95## Claude 如何在您的螢幕上工作

96 96 

context-window.md +10 −10

Details

43 43 

44skill 主體在壓縮後重新注入,但大型 skill 會被截斷以適應每個 skill 的上限,一旦超過總預算,最舊的已叫用 skill 就會被刪除。截斷會保留檔案的開頭,因此請將最重要的指示放在 `SKILL.md` 的頂部附近。44skill 主體在壓縮後重新注入,但大型 skill 會被截斷以適應每個 skill 的上限,一旦超過總預算,最舊的已叫用 skill 就會被刪除。截斷會保留檔案的開頭,因此請將最重要的指示放在 `SKILL.md` 的頂部附近。

45 45 

46## 當您的上下文填滿時46## 當上下文填滿時

47 47 

48Claude Code 會在您接近限制時自動壓縮,因此完整的上下文視窗不會結束您的工作階段。自動傳遞的工作方式與時間線中的 `/compact` 步驟相同。請參閱[當上下文填滿時](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#when-context-fills-up)以了解它保留的內容。若要了解 Claude Code 何時也會壓縮您閒置的對話,請參閱[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction)。48Claude Code 會在接近上限時自動壓縮,因此上下文視窗填滿並不會結束您的工作階段。自動壓縮的運作方式與時間軸中的 `/compact` 步驟相同。請參閱[當上下文填滿時](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#when-context-fills-up),了解它會保留哪些內容。若想了解 Claude Code 何時也會壓縮您閒置的對話,請參閱[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction)。

49 49 

50您也可以在自動傳遞運行之前採取行動:50您也可以在自動壓縮執行之前採取行動:

51 51 

52* **使用焦點進行壓縮**:在開始長時間新任務之前,運行帶有指令的 `/compact`,例如 `/compact focus on the auth bug fix`。摘要保留您選擇的內容,而不是自動傳遞猜測的重要內容。52* **依指定重點壓縮**:在開始冗長的新任務之前,執行附帶指令的 `/compact`,例如 `/compact focus on the auth bug fix`。摘要會保留您選擇的內容,而不是自動壓縮所推測的重要內容。

53* **壓縮對話的一部分**:運行 `/rewind`,選擇一條訊息,然後選擇**從此處摘要**或**摘要至此處**。請參閱[重新開始和摘要](https://code.claude.com/docs/zh-TW/checkpointing.md#rewind-and-summarize)以了解每個選項保留的內容以及如何引導摘要。53* **壓縮部分對話**:執行 `/rewind`,選取一則訊息,然後選擇 **Summarize from here** 或 **Summarize up to here**。請參閱[倒轉與摘要](https://code.claude.com/docs/zh-TW/checkpointing.md#rewind-and-summarize),了解每個選項會保留哪些內容,以及如何引導摘要。

54* **更早壓縮**:運行 [`/autocompact`](https://code.claude.com/docs/zh-TW/commands#all-commands) 並指定令牌計數,例如 `/autocompact 500k`,以設定在自動傳遞運行之前上下文視窗的填滿程度。請參閱[設定自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window)以了解接受的值和覆蓋。54* **提早壓縮**:執行附帶 token 數量的 [`/autocompact`](https://code.claude.com/docs/zh-TW/commands#all-commands),例如 `/autocompact 500k`,以設定上下文視窗填滿到何種程度時執行自動壓縮。請參閱[設定自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window),了解可接受的值與覆寫方式。

55* **在任務之間清除**:切換到不相關的工作時運行 `/clear`。舊對話會擠出您接下來需要的文件,並在每條消息上花費令牌。55* **在任務之間清除**:切換到不相關的工作時執行 `/clear`。舊的對話會排擠您接下來需要的檔案,而且每則訊息都會耗用 token。

56* **委託大型讀取**:將研究發送給[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md),以便文件內容保留在其上下文視窗中,而不是您的。56* **委派大量讀取**:將研究工作交給 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md),讓檔案內容保留在它的上下文視窗中,而非您的上下文視窗。

57 57 

58如果您需要更大的視窗而不是更小的對話,Fable 模型、Sonnet 5 及更高版本、Haiku 5.5、Opus 4.6 及更高版本以及 Sonnet 4.6 支援 100 萬 token 上下文視窗。請參閱[擴展上下文](https://code.claude.com/docs/zh-TW/model-config.md#extended-context)以了解按方案的可用性以及如何選擇 `[1m]` 模型變體。壓縮在更大的限制下以相同方式運作。58如果您需要更大的視窗而非更精簡的對話,Fable 模型、Sonnet 5 及更新版本、Haiku 5.5、Opus 4.6 及更新版本,以及 Sonnet 4.6 皆支援 100 萬 token 的上下文視窗。請參閱[延伸上下文](https://code.claude.com/docs/zh-TW/model-config.md#extended-context),了解各方案的可用性,以及如何選取 `[1m]` 模型變體。在較大的上限下,壓縮的運作方式相同。

59 59 

60自動壓縮運行的位置取決於您的模型和設定。請參閱[預設自動壓縮閾值](https://code.claude.com/docs/zh-TW/model-config.md#default-auto-compact-thresholds)以了解每個模型的邊界,以及[為閘道或自訂模型 ID 更正視窗](https://code.claude.com/docs/zh-TW/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id),如果 Claude Code 為您的模型 ID(例如 [LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway)別名)假設了錯誤的視窗。60自動壓縮的執行時機取決於您的模型與設定。請參閱[預設自動壓縮閾值](https://code.claude.com/docs/zh-TW/model-config.md#default-auto-compact-thresholds),了解各模型的界限;若 Claude Code 對您的模型 ID(例如 [LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway)別名)假設了錯誤的視窗,請參閱[為閘道或自訂模型 ID 修正視窗](https://code.claude.com/docs/zh-TW/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id)。

61 61 

62## 檢查您自己的會話62## 檢查您自己的會話

63 63 

Details

36以下程序不會透過啟動器啟動:36以下程序不會透過啟動器啟動:

37 37 

38* 您自己在終端中啟動的工作階段,其執行方式取決於您的調用方式。若要涵蓋這些工作階段,請在 `PATH` 上較早的目錄中放置一個名為 `claude` 的指令碼,該指令碼使用真實二進位檔案執行您的啟動器;不要取代受管理的符號連結。背景服務及其工作階段啟動時不進行 `PATH` 查詢,所以這兩個啟動器在那裡不會堆疊。38* 您自己在終端中啟動的工作階段,其執行方式取決於您的調用方式。若要涵蓋這些工作階段,請在 `PATH` 上較早的目錄中放置一個名為 `claude` 的指令碼,該指令碼使用真實二進位檔案執行您的啟動器;不要取代受管理的符號連結。背景服務及其工作階段啟動時不進行 `PATH` 查詢,所以這兩個啟動器在那裡不會堆疊。

39* `claude-cli://` 深層連結的第一個程序,作業系統的協定處理程式直接啟動。該工作階段之後在背景中啟動的所有內容都會透過啟動器執行。若要完全關閉此路徑,請使用 `disableDeepLinkRegistration` 設定[防止處理程式註冊](https://code.claude.com/docs/zh-TW/deep-links.md#registration-and-supported-platforms)。39* 從 `claude-cli://` 深層連結開啟的工作階段,會在新的終端機中啟動,而不經過您的啟動器。若要防止深層連結為新使用者開啟工作階段,請在該使用者首次執行 Claude Code 之前,將 [`disableDeepLinkRegistration`](https://code.claude.com/docs/zh-TW/settings-reference#disabledeeplinkregistration) 設定為 `"disable"`。對於已有[已註冊處理程式](https://code.claude.com/docs/zh-TW/deep-links.md#registration-and-supported-platforms)的使用者,深層連結仍會繼續開啟工作階段,因為此設定不會移除處理程式。

40* `--worktree` 結合 `--tmux` 執行的重新啟動:終端多工器啟動該窗格,而不是 Claude Code 的二進位檔案。40* `--worktree` 結合 `--tmux` 執行的重新啟動:終端多工器啟動該窗格,而不是 Claude Code 的二進位檔案。

41* [Chrome 中的 Claude](https://code.claude.com/docs/zh-TW/chrome.md) 註冊的原生訊息主機:瀏覽器啟動它,而不是 Claude Code 的二進位檔案。41* [Chrome 中的 Claude](https://code.claude.com/docs/zh-TW/chrome.md) 註冊的原生訊息主機:瀏覽器啟動它,而不是 Claude Code 的二進位檔案。

42 42 

data-usage.md +26 −26

Details

10 10 

11### 資料訓練政策11### 資料訓練政策

12 12 

13**消費者使用者(免費、Pro 和 Max 方案)**:13**消費者使用者(Free、Pro 和 Max 方案)**:

14我們讓您可以選擇是否允許您的資料用於改進未來的 Claude 模型。當此設定開啟時,我們將使用來自免費、Pro 和 Max 帳戶的資料來訓練新模型(包括當您從這些帳戶使用 Claude Code 時)。14我們讓您選擇是否允許您的資料用於改進未來的 Claude 模型。當此設定開啟時,我們將使用來自 Free、Pro 和 Max 帳戶的資料訓練新模型(包括您從這些帳戶使用 Claude Code 時)。

15 15 

16**商業使用者**:(Team 和 Enterprise 方案、API、第三方平台和 Claude Gov)維持現有政策:除非客戶選擇向我們提供資料以改進模型(例如,[開發者合作夥伴計畫](https://support.claude.com/en/articles/11174108-about-the-development-partner-program)),否則 Anthropic 不會在商業條款下使用發送至 Claude Code 的程式碼或提示來訓練生成模型。16**商業使用者**:(Team 和 Enterprise 方案、API、第三方平台以及 Claude Gov)維持現有政策:Anthropic 不會使用在商業條款下傳送至 Claude Code 的程式碼或提示詞來訓練生成式模型,除非客戶已選擇向我們提供其資料以用於模型改進(例如 [Developer Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program))。

17 17 

18### 開發者合作夥伴計畫18### Development Partner Program

19 19 

20如果您明確選擇加入向我們提供訓練材料的方法,例如透過[開發者合作夥伴計畫](https://support.claude.com/en/articles/11174108-about-the-development-partner-program),我們可能會使用所提供的材料來訓練我們的模型。組織管理員可以明確選擇為其組織加入開發者合作夥伴計畫。請注意,此計畫僅適用於 Anthropic 第一方 API,不適用於 Amazon Bedrock 或 Google Cloud 的 Agent Platform 使用者。20如果您明確選擇加入向我們提供訓練素材的方式,例如透過 [Development Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program),我們可能會使用所提供的素材來訓練我們的模型。組織管理員可以明確為其組織選擇加入 Development Partner Program。請注意,此計畫僅適用於 Anthropic 第一方 API,不適用於 Amazon Bedrock 或 Google Cloud's Agent Platform 使用者。

21 21 

22### 使用 `/feedback` 命令的回饋22### 使用 `/feedback` 命令提供意見回饋

23 23 

24如果您選擇使用 `/feedback` 命令向我們發送有關 Claude Code 的回饋,我們可能會使用您的回饋來改進我們的產品和服務。透過 `/feedback`、`/bug` 和 `/share` 共享的文字記錄(透過相同路徑報告)會保留 5 年。24如果您選擇使用 `/feedback` 命令向我們傳送關於 Claude Code 的意見回饋,我們可能會使用您的意見回饋來改進我們的產品和服務。透過 `/feedback`,或透過經由相同路徑回報的 `/bug` 和 `/share` 分享的逐字稿,將保留 5 年。

25 25 

26使用[Claude 起草的回饋](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior),Claude 也可以起草回饋報告並在您的機器上排隊供您檢閱。Claude Code 在您選擇發送草稿之前不會發送任何內容,已發送的草稿會通過與其他 `/feedback` 報告相同的提交路徑和保留期。26透過 [Claude 草擬的意見回饋](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior),Claude 也可以草擬意見回饋報告,並將其排入您電腦上的佇列供您審閱。在您選擇傳送草稿之前,Claude Code 不會傳送任何內容,而已傳送的草稿會經過與其他 `/feedback` 報告相同的提交路徑和保留期限。

27 27 

28### 工作階段品質調查28### 工作階段品質調查

29 29 

30當您在 Claude Code 中看到「Claude 在此工作階段中表現如何?」提示時,回應此調查(包括選擇「關閉」),只會記錄您的評分。我們不會作為此評分提示本身的一部分收集或儲存任何對話文字記錄、輸入、輸出或其他工作階段資料。與豎起大拇指/向下大拇指回饋或 `/feedback` 報告不同,此工作階段品質調查是一個簡單的產品滿意度指標。30當您在 Claude Code 中看到「How is Claude doing this session?」提示時,回應此調查(包括選擇「Dismiss」)只會記錄您的評分。我們不會在評分提示本身中收集或儲存任何對話逐字稿、輸入、輸出或其他工作階段資料。與按讚/倒讚意見回饋或 `/feedback` 報告不同,此工作階段品質調查是一項簡單的產品滿意度指標。

31 31 

32在評分提示之後,您可能會看到一個單獨的後續提問「Anthropic 可以查看您的工作階段文字記錄以幫助我們改進 Claude Code 嗎?」。這是一個與評分不同的可選第二步:32在評分提示之後,您可能會看到另一個後續問題,詢問「Can Anthropic look at your session transcript to help us improve Claude Code?」。這是與評分不同的選擇性第二步驟:

33 33 

34* **是**:將您的對話文字記錄、任何子代理文字記錄和磁碟中的原始工作階段日誌檔案上傳至 Anthropic。已知的 API 金鑰和權杖模式在上傳前會被編輯。原始程式碼、檔案內容和其他對話內容會按原樣上傳。共享的文字記錄會保留最多 6 個月。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 [Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 工作階段上,是會將相同的承載寫入 `~/.claude/feedback-bundles/` 下的本機封存,而不是上傳;在您轉發該檔案之前,沒有任何內容會離開您的機器。34* **Yes**:將您的對話逐字稿、任何 subagent 逐字稿以及磁碟上的原始工作階段日誌檔案上傳至 Anthropic。已知的 API 金鑰和 token 模式會在上傳前遮蔽。原始碼、檔案內容和其他對話內容會按原樣上傳。分享的逐字稿最多保留 6 個月。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登入的 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)工作階段中,選擇 Yes 會將相同的 payload 寫入 `~/.claude/feedback-bundles/` 下的本機封存檔,而非上傳;在您轉寄該檔案之前,不會有任何內容離開您的電腦。

35* **否**:拒絕而不發送任何內容35* **No**:拒絕且不傳送任何內容

36* **不再詢問**:拒絕並停止此後續提問在未來工作階段中出現36* **Don't ask again**:拒絕並讓此後續問題不再出現在未來的工作階段中

37 37 

38除非您明確選擇**是**,否則不會上傳任何內容。具有[零資料保留](https://code.claude.com/docs/zh-TW/zero-data-retention.md)的組織,或組織政策停用產品回饋的組織,或設定了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的組織,永遠不會看到此後續提問。您對此調查的回應(包括評分提示後提交的工作階段文字記錄)不會影響您的資料訓練偏好設定,也不能用於訓練我們的 AI 模型。38除非您明確選擇 **Yes**,否則不會上傳任何內容。啟用[零資料保留](https://code.claude.com/docs/zh-TW/zero-data-retention.md)的組織、產品意見回饋已被組織政策停用的組織,或已設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的環境,永遠不會看到此後續問題。您對此調查的回應(包括在評分提示後提交的工作階段逐字稿)不會影響您的資料訓練偏好,也不能用於訓練我們的 AI 模型。

39 39 

40若要停用這些調查,請設定 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`。當設定 `DISABLE_TELEMETRY`、`DO_NOT_TRACK` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時,調查也會停用。具有阻止非必要流量但透過自己的 [OpenTelemetry 收集器](https://code.claude.com/docs/zh-TW/monitoring-usage.md)捕獲調查回應的組織可以透過設定 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1` 選擇重新啟用調查。調查隨後只會將評分記錄到已設定的收集器。文字記錄共享後續提問和所有其他 Anthropic 相關的回饋流量保持停用。若要控制頻率而不是停用,請在您的設定檔中設定 [`feedbackSurveyRate`](https://code.claude.com/docs/zh-TW/settings-reference#feedbacksurveyrate) 為 `0` 到 `1` 之間的機率。40若要停用這些調查,請設定 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`。當設定了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時,調查也會停用。封鎖非必要流量但透過自己的 [OpenTelemetry collector](https://code.claude.com/docs/zh-TW/monitoring-usage.md) 擷取調查回應的組織,可以透過設定 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1` 重新啟用調查。之後調查只會將評分記錄到已設定的 collector。逐字稿分享後續問題以及所有其他傳送至 Anthropic 的意見回饋流量則維持停用。若要控制頻率而非停用,請在您的設定檔中將 [`feedbackSurveyRate`](https://code.claude.com/docs/zh-TW/settings-reference#feedbacksurveyrate) 設定為介於 `0` 和 `1` 之間的機率。

41 41 

42### 資料保留42### 資料保留

43 43 

44Anthropic 根據您的帳戶類型和偏好設定保留 Claude Code 資料。44Anthropic 會根據您的帳戶類型和偏好保留 Claude Code 資料。

45 45 

46**消費者使用者(免費、Pro 和 Max 方案)**:46**消費者使用者(Free、Pro 和 Max 方案)**:

47 47 

48* 允許資料用於模型改進的使用者:5 年保留期,以支持模型開發和安全改進48* 允許將資料用於模型改進的使用者:5 年保留期,以支援模型開發和安全性改進

49* 不允許資料用於模型改進的使用者:30 天保留期49* 不允許將資料用於模型改進的使用者:30 天保留期

50* 隱私設定可以隨時在 [claude.ai/settings/data-privacy-controls](https://claude.ai/settings/data-privacy-controls) 變更。50* 隱私設定可隨時在 [claude.ai/settings/data-privacy-controls](https://claude.ai/settings/data-privacy-controls) 變更。

51 51 

52**商業使用者(Team、Enterprise 和 API)**:52**商業使用者(Team、Enterprise 和 API)**:

53 53 

54* 標準:30 天保留期54* 標準:30 天保留期

55* [零資料保留](https://code.claude.com/docs/zh-TW/zero-data-retention.md):適用於 Claude for Enterprise 上的 Claude Code。ZDR 不包含在標準 Enterprise 方案中;在您的帳戶團隊確認符合資格後,會按組織啟用55* [零資料保留](https://code.claude.com/docs/zh-TW/zero-data-retention.md):適用於 Claude for Enterprise 上 Claude Code 的合格帳戶。ZDR 不包含在標準 Enterprise 方案中;它會在確認資格後由您的帳戶團隊依組織逐一啟用

56* 本機快取:Claude Code 用戶端在 `~/.claude/projects/` 下以純文字形式本機儲存工作階段文字記錄,預設為 30 天,以啟用工作階段繼續。使用 `cleanupPeriodDays` 調整期間。請參閱[應用程式資料](https://code.claude.com/docs/zh-TW/claude-directory.md#application-data)以了解儲存的內容以及如何清除。56* 本機快取:Claude Code 用戶端預設會將工作階段逐字稿以純文字形式在本機 `~/.claude/projects/` 下儲存 30 天,以便恢復工作階段。可使用 `cleanupPeriodDays` 調整期間。請參閱[應用程式資料](https://code.claude.com/docs/zh-TW/claude-directory.md#application-data),了解儲存了哪些內容以及如何清除。

57 57 

58 在 Claude Desktop 或 Cowork 中開始或最近繼續的工作階段文字記錄[預設不受該限制](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)。58 在 Claude Desktop 或 Cowork 中啟動或最近一次繼續的工作階段逐字稿,[預設不受該限制](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)。

59 59 

60您可以隨時刪除網路上的個別 Claude Code 工作階段。刪除工作階段會永久移除工作階段的事件資料。如需有關如何刪除工作階段的說明,請參閱[刪除工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#delete-sessions)。60您可以隨時刪除個別雲端工作階段。刪除工作階段會永久移除該工作階段的事件資料。如需刪除工作階段的操作說明,請參閱[刪除工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#delete-sessions)。

61 61 

62在我們的[隱私中心](https://privacy.anthropic.com/)了解更多有關資料保留實踐的資訊。62在我們的[隱私中心](https://privacy.anthropic.com/)進一步了解資料保留做法。

63 63 

64如需完整詳細資訊,請查閱我們的[商業服務條款](https://www.anthropic.com/legal/commercial-terms)(適用於 Team、Enterprise 和 API 使用者)或[消費者條款](https://www.anthropic.com/legal/consumer-terms)(適用於免費、Pro 和 Max 使用者)和[隱私政策](https://www.anthropic.com/legal/privacy)。64如需完整詳細資訊,請查閱我們的[商業服務條款](https://www.anthropic.com/legal/commercial-terms)(適用於 Team、Enterprise 和 API 使用者)或[消費者條款](https://www.anthropic.com/legal/consumer-terms)(適用於 Free、Pro 和 Max 使用者)以及[隱私權政策](https://www.anthropic.com/legal/privacy)。

65 65 

66## 資料存取66## 資料存取

67 67 

desktop.md +6 −6

Details

43在傳送第一則訊息之前,請在提示詞方塊下方的列中選擇環境、專案資料夾、權限模式和模型:43在傳送第一則訊息之前,請在提示詞方塊下方的列中選擇環境、專案資料夾、權限模式和模型:

44 44 

45* **環境**:使用環境選擇器(該列中的第一個控制項)選擇 Claude 執行的位置。請參閱[環境設定](#environment-configuration)。45* **環境**:使用環境選擇器(該列中的第一個控制項)選擇 Claude 執行的位置。請參閱[環境設定](#environment-configuration)。

46 * 如果新工作階段的提示詞方塊下方沒有環境選擇器,請依照[舊版版面配置的步驟](#check-which-layout-you-have)操作。46 * 如果新工作階段的提示詞方塊下方沒有顯示環境,請依照[舊版版面配置的步驟](#check-which-layout-you-have)操作。

47* **專案資料夾**:點擊環境選擇器旁的專案資料夾控制項,選擇 Claude 工作的資料夾。47* **專案資料夾**:點擊環境選擇器旁的專案資料夾控制項,選擇 Claude 工作的資料夾。

48 * **雲端工作階段**:選擇[儲存庫](#run-long-running-tasks-in-the-cloud)而非資料夾48 * **雲端工作階段**:選擇[儲存庫](#run-long-running-tasks-in-the-cloud)而非資料夾

49 * **[已儲存的本機或 SSH 環境](#create-a-saved-environment)**:該環境已包含其資料夾,因此該列不會顯示專案資料夾控制項。若要變更資料夾,請[編輯環境](#use-edit-or-remove-a-saved-environment)。49 * **[已儲存的本機或 SSH 環境](#create-a-saved-environment)**:該環境已包含其資料夾,因此該列不會顯示專案資料夾控制項。若要變更資料夾,請[編輯環境](#use-edit-or-remove-a-saved-environment)。


861 861 

862> [!NOTE]862> [!NOTE]

863>863>

864> 如果您的環境選擇器位於提示詞輸入框上方,表示您使用的是[較早的版面配置](#check-which-layout-you-have),其中沒有已儲存的本機環境。請改用[本機環境編輯器](#use-the-local-environment-editor)。864> 如果新的工作階段在提示詞輸入框下方沒有顯示任何環境,表示您使用的是[較早的版面配置](#check-which-layout-you-have),其中沒有已儲存的本機環境。請改用[本機環境編輯器](#use-the-local-environment-editor)。

865 865 

866**1. 開啟本機環境的表單**866**1. 開啟本機環境的表單**

867 867 


963>963>

964> 如果您搭配[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)使用 Desktop,SSH 工作階段需要另外設定。請參閱 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。964> 如果您搭配[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)使用 Desktop,SSH 工作階段需要另外設定。請參閱 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。

965 965 

966在 [**New environment** 對話方塊](#create-a-saved-environment)中新增 SSH 連線,然後在該連線上啟動工作階段。如果新的工作階段在提示詞輸入框下方沒有環境選擇器,表示您使用的是較早的版面配置。請參閱[檢查您使用的版面配置](#check-which-layout-you-have)。966在 [**New environment** 對話方塊](#create-a-saved-environment)中新增 SSH 連線,然後在該連線上開始工作階段。如果新的工作階段在提示詞輸入框下方沒有顯示任何環境,表示您使用的是較早的版面配置。請參閱[檢查您使用的版面配置](#check-which-layout-you-have)。

967 967 

968**1. 開啟 New environment 對話方塊**968**1. 開啟 New environment 對話方塊**

969 969 


2122 2122 

2123### 檢查您使用的版面配置2123### 檢查您使用的版面配置

2124 2124 

2125如果新工作階段的提示詞方塊下方沒有[環境選擇器](#start-a-session),表示您使用的是較早的版面配置:2125如果新工作階段在提示詞方塊上方而非下方顯示[環境](#start-a-session),表示您使用的是較早的版面配置:

2126 2126 

2127* **[早於 v2.37337.0 的 Desktop](#check-your-version)**:請更新以取得目前的版面配置。在 macOS 上選擇 **Claude > Check for Updates…**,或在 Windows 上選擇 **Help > Check for Updates…**。2127* **[早於 v2.37337.0 的 Desktop](#check-your-version)**:請更新以取得目前的版面配置。在 macOS 上選擇 **Claude > Check for Updates…**,或在 Windows 上選擇 **Help > Check for Updates…**。

2128* **[第三方提供者](https://code.claude.com/docs/zh-TW/third-party-integrations.md)且工作階段在您的電腦上執行**:目前的版面配置需要 Claude Desktop v3.1623.0 或更新版本,因此請[檢查您的版本](#check-your-version)。若要更新,請在 macOS 上選擇 **Claude > Check for Updates…**,或在 Windows 上選擇 **Help > Check for Updates…**。如果您的組織[關閉了自動更新](#device-management-policies),**Check for Updates…** 會被隱藏,因此請向您的管理員索取 v3.1623.0 或更新版本。2128* **[第三方提供者](https://code.claude.com/docs/zh-TW/third-party-integrations.md)且工作階段在您的電腦上執行**:目前的版面配置需要 Claude Desktop v3.1623.0 或更新版本,因此請[檢查您的版本](#check-your-version)。若要更新,請在 macOS 上選擇 **Claude > Check for Updates…**,或在 Windows 上選擇 **Help > Check for Updates…**。如果您的組織[關閉了自動更新](#device-management-policies),**Check for Updates…** 會被隱藏,因此請向您的管理員索取 v3.1623.0 或更新版本。

2129* **第三方提供者且工作階段在您組織的基礎架構上執行**:當您的組織在其自己的基礎架構上、而非在您的電腦上執行工作階段時,Desktop 會保留較早的版面配置,且更新不會改變版面配置。如果您不知道您的工作階段在何處執行,請詢問您的管理員。2129* **第三方提供者且工作階段在您組織的基礎架構上執行**:目前的版面配置需要 Claude Desktop v4.29.0 或更新版本,因此請[檢查您的版本](#check-your-version)。如果您使用的是較舊的版本,請向您的管理員索取 v4.29.0 或更新版本。如果您不知道您的工作階段在何處執行,請詢問您的管理員。

2130 2130 

2131在較早的版面配置中,請在提示詞方塊上方選擇環境和專案資料夾,並在其下方的列中選擇權限模式和模型。較早的版面配置沒有[工作階段詳細資訊面板](#see-session-details)和[已儲存的本機與 SSH 環境](#create-a-saved-environment)。2131在較早的版面配置中,請在提示詞方塊上方選擇環境以及任何專案資料夾或儲存庫,並在其下方的列中選擇權限模式和模型。較早的版面配置沒有[工作階段詳細資訊面板](#see-session-details)和[已儲存的本機與 SSH 環境](#create-a-saved-environment)。

2132 2132 

2133### Code 標籤中的 403 或驗證錯誤2133### Code 標籤中的 403 或驗證錯誤

2134 2134 

Details

57 57 

58在[提示詞輸入框下方的那一列](https://code.claude.com/docs/zh-TW/desktop.md#start-a-session)中,點擊第一個控制項,也就是環境選擇器,並選擇 **Local** 群組中最上方的項目。接著點擊環境選擇器旁的專案資料夾控制項,選擇 **Open folder…**,然後選擇您的專案目錄。58在[提示詞輸入框下方的那一列](https://code.claude.com/docs/zh-TW/desktop.md#start-a-session)中,點擊第一個控制項,也就是環境選擇器,並選擇 **Local** 群組中最上方的項目。接著點擊環境選擇器旁的專案資料夾控制項,選擇 **Open folder…**,然後選擇您的專案目錄。

59 59 

60如果您的提示詞輸入框下方沒有出現環境選擇器,表示您使用的是較早的版面配置。請參閱[確認您使用的版面配置](https://code.claude.com/docs/zh-TW/desktop.md#check-which-layout-you-have)。60如果新的工作階段在提示詞輸入框下方沒有顯示環境,表示您使用的是較早的版面配置。請參閱[確認您使用的版面配置](https://code.claude.com/docs/zh-TW/desktop.md#check-which-layout-you-have)。

61 61 

62> [!TIP]62> [!TIP]

63>63>

devcontainer.md +1 −1

Details

79 79 

80> [!NOTE]80> [!NOTE]

81>81>

82> 如果瀏覽器登入完成但回調從未到達容器,請複製瀏覽器中顯示的代碼,並將其貼上到終端中的 `Paste code here if prompted` 提示處。當編輯器的連接埠轉發不會路由 localhost 回調時,可能會發生這種情況。82> 對於 Anthropic 登入:如果沒有開啟瀏覽器,或瀏覽器完成登入後顯示 `localhost` 連線錯誤,請使用終端機貼上提示上方顯示的登入 URL。將其複製到瀏覽器中並在那裡登入,然後將瀏覽器顯示的代碼貼上到該提示處。如果貼上沒有任何作用,請參閱[在 WSL2、SSH 或容器中 OAuth 登入失敗](https://code.claude.com/docs/zh-TW/troubleshoot-install.md#oauth-login-fails-in-wsl2-ssh-or-containers)。

83 83 

84## 在重新構建時保持身份驗證和設定84## 在重新構建時保持身份驗證和設定

85 85 

env-vars.md +3 −3

Details

233| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 設定為 `1` 可停用附件處理。使用 `@` 語法的檔案提及會以純文字傳送,而不會展開為檔案內容。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略 |233| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 設定為 `1` 可停用附件處理。使用 `@` 語法的檔案提及會以純文字傳送,而不會展開為檔案內容。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略 |

234| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | 設定為 `1` 可讓 Claude Code 程序自行執行其 [`gcpAuthRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#gcpauthrefresh) 或 [`awsAuthRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#awsauthrefresh) 命令,而非在另一個程序執行時等待。需要 Claude Code v2.1.286 或更新版本 |234| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | 設定為 `1` 可讓 Claude Code 程序自行執行其 [`gcpAuthRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#gcpauthrefresh) 或 [`awsAuthRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#awsauthrefresh) 命令,而非在另一個程序執行時等待。需要 Claude Code v2.1.286 或更新版本 |

235| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 設定為 `1` 可停用[自動記憶](https://code.claude.com/docs/zh-TW/memory.md#auto-memory)。設定為 `0` 可強制開啟自動記憶,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](https://code.claude.com/docs/zh-TW/settings-reference#automemoryenabled) 原本會將其停用。停用時,Claude 不會建立或載入自動記憶檔案 |235| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 設定為 `1` 可停用[自動記憶](https://code.claude.com/docs/zh-TW/memory.md#auto-memory)。設定為 `0` 可強制開啟自動記憶,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](https://code.claude.com/docs/zh-TW/settings-reference#automemoryenabled) 原本會將其停用。停用時,Claude 不會建立或載入自動記憶檔案 |

236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設為 `1` 可從 Bash、PowerShell 和 subagent 工具中移除 `run_in_background` 參數,並關閉 Ctrl+B 快捷鍵以及[分支 skill](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent) 的背景執行。Claude Code 也會停止將 subagent、長時間的 MCP 工具呼叫和逾時的 shell 命令自動移至背景。[MCP 任務](https://code.claude.com/docs/zh-TW/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task)和 [Monitor 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)仍會在背景執行 |236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設為 `1` 可從 Bash、PowerShell 與 subagent 工具中移除 `run_in_background` 參數,並關閉 Ctrl+B 快捷鍵以及[分支 skill](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent) 的背景執行。Claude Code 也會因此停止自動將 subagent、長時間的 MCP 工具呼叫及逾時的 shell 命令移至背景。[MCP 任務](https://code.claude.com/docs/zh-TW/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task)與 [Monitor 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)仍會在背景執行。若也要關閉[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md#turn-off-agent-view),請將 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 設為 `1` |

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

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

239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設為 `1` 可在 [supervisor](https://code.claude.com/docs/zh-TW/agent-view.md#the-supervisor-process) 停止、重新啟動或更新[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)的程序時,停止該工作階段進行中的工作,而非將其交接給該工作階段的下一個程序。該工作是指工作階段中正在執行的背景 shell 命令,自 v2.1.198 起還包括背景 subagent。僅影響該交接:使用 `←` 或 [`/background`](https://code.claude.com/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會延續進行中的背景工作。需要 Claude Code v2.1.196 或更新版本 |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設為 `1` 可在 [supervisor](https://code.claude.com/docs/zh-TW/agent-view.md#the-supervisor-process) 停止、重新啟動或更新[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)的程序時,停止該工作階段進行中的工作,而非將其交接給該工作階段的下一個程序。該工作是指工作階段中正在執行的背景 shell 命令,自 v2.1.198 起還包括背景 subagent。僅影響該交接:使用 `←` 或 [`/background`](https://code.claude.com/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會延續進行中的背景工作。需要 Claude Code v2.1.196 或更新版本 |


276| `CLAUDE_CODE_DISABLE_WEB_FETCH` | 設定為 `1` 可關閉 [WebFetch](https://code.claude.com/docs/zh-TW/tools-reference.md#webfetch-tool-behavior) 工具。[WebSearch](https://code.claude.com/docs/zh-TW/tools-reference.md#websearch-tool-behavior) 工具仍可使用。需要 Claude Code v2.1.285 或更新版本 |276| `CLAUDE_CODE_DISABLE_WEB_FETCH` | 設定為 `1` 可關閉 [WebFetch](https://code.claude.com/docs/zh-TW/tools-reference.md#webfetch-tool-behavior) 工具。[WebSearch](https://code.claude.com/docs/zh-TW/tools-reference.md#websearch-tool-behavior) 工具仍可使用。需要 Claude Code v2.1.285 或更新版本 |

277| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 設定為 `1` 可在 Windows 上直接啟動 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool)命令,而非透過 `cmd.exe` 啟動器。預設情況下,啟動器可讓[在背景執行](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)的 PowerShell 命令[延續至工作階段的下一個程序](https://code.claude.com/docs/zh-TW/agent-view.md#the-supervisor-process),例如當您[將工作階段移至背景](https://code.claude.com/docs/zh-TW/agent-view.md#from-inside-a-session)時。若您設定此變數,移至背景的 PowerShell 命令會在工作階段的程序結束時停止。Bash 命令不受影響。需要 Claude Code v2.1.269 或更新版本 |277| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 設定為 `1` 可在 Windows 上直接啟動 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool)命令,而非透過 `cmd.exe` 啟動器。預設情況下,啟動器可讓[在背景執行](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)的 PowerShell 命令[延續至工作階段的下一個程序](https://code.claude.com/docs/zh-TW/agent-view.md#the-supervisor-process),例如當您[將工作階段移至背景](https://code.claude.com/docs/zh-TW/agent-view.md#from-inside-a-session)時。若您設定此變數,移至背景的 PowerShell 命令會在工作階段的程序結束時停止。Bash 命令不受影響。需要 Claude Code v2.1.269 或更新版本 |

278| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 設定為 `1` 可停用[工作流程](https://code.claude.com/docs/zh-TW/workflows.md#turn-workflows-off)。等同於 [`disableWorkflows`](https://code.claude.com/docs/zh-TW/settings-reference#disableworkflows) 設定 |278| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 設定為 `1` 可停用[工作流程](https://code.claude.com/docs/zh-TW/workflows.md#turn-workflows-off)。等同於 [`disableWorkflows`](https://code.claude.com/docs/zh-TW/settings-reference#disableworkflows) 設定 |

279| `CLAUDE_CODE_EFFORT_LEVEL` | 設定支援模型的 effort 等級。值:`low`、`medium`、`high`、`xhigh`、`max`,或使用 `auto` 以採用模型預設值。可用等級取決於模型。優先於 `--effort`、`/effort`,以及 `modelSettings` 與 `effortLevel` 設定。[`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) 上限仍適用。請參閱[調整 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) |279| `CLAUDE_CODE_EFFORT_LEVEL` | 設定支援模型的 effort 等級。值:`low`、`medium`、`high`、`xhigh` 或 `max`。可用的等級取決於模型。優先於 `--effort`、`/effort`,以及 `modelSettings` 與 `effortLevel` 設定。[`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) 上限仍然適用。設為 `auto` 或 `unset` 可讓 Claude Code [不傳送 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#send-no-effort-level),讓 API 套用該模型自身的預設值。請參閱[調整 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) |

280| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | 設為 `1` 可將攜帶工作階段狀態的 [`session_state_changed`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#sdksessionstatechangedmessage) 訊息加入訊息串流。需要 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md),或同時使用 `--print`、`--output-format stream-json` 與 `--verbose` |280| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | 設為 `1` 可將攜帶工作階段狀態的 [`session_state_changed`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#sdksessionstatechangedmessage) 訊息加入訊息串流。需要 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md),或同時使用 `--print`、`--output-format stream-json` 與 `--verbose` |

281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 為了與舊版相容而接受,但沒有任何作用。自動模式在每個供應商上皆預設可用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry,以及已登入的 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)工作階段。在 v2.1.158 至 v2.1.206 中,必須將此變數設為 `1`,才能在這些供應商上使用[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) |281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 為了與舊版相容而接受,但沒有任何作用。自動模式在每個供應商上皆預設可用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry,以及已登入的 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)工作階段。在 v2.1.158 至 v2.1.206 中,必須將此變數設為 `1`,才能在這些供應商上使用[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) |

282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆寫[工作階段回顧](https://code.claude.com/docs/zh-TW/interactive-mode.md#session-recap)的可用性。設為 `0` 可強制關閉回顧,不論 `/config` 切換開關為何。設為 `1` 可在 [`awaySummaryEnabled`](https://code.claude.com/docs/zh-TW/settings-reference#awaysummaryenabled) 為 `false` 時強制開啟回顧。優先於該設定與 `/config` 切換開關 |282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆寫[工作階段回顧](https://code.claude.com/docs/zh-TW/interactive-mode.md#session-recap)的可用性。設為 `0` 可強制關閉回顧,不論 `/config` 切換開關為何。設為 `1` 可在 [`awaySummaryEnabled`](https://code.claude.com/docs/zh-TW/settings-reference#awaysummaryenabled) 為 `false` 時強制開啟回顧。優先於該設定與 `/config` 切換開關 |


584* 在已安裝 Git Bash 的 Windows 上,為 claude.ai 和 Console 帳戶預設取得 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool);除非您設定 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`,否則 Claude Code 會透過 Git Bash 執行 shell 命令。在未安裝 Git Bash 的 Windows 上,該工具會保持啟用584* 在已安裝 Git Bash 的 Windows 上,為 claude.ai 和 Console 帳戶預設取得 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool);除非您設定 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`,否則 Claude Code 會透過 Git Bash 執行 shell 命令。在未安裝 Git Bash 的 Windows 上,該工具會保持啟用

585* 取得 [Claude 草擬的意見回饋](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior),Claude Code 是透過擷取的旗標來啟用此功能585* 取得 [Claude 草擬的意見回饋](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior),Claude Code 是透過擷取的旗標來啟用此功能

586* 讓 Claude [將大量貼上內容視為貼上的文字,而非輸入的文字](https://code.claude.com/docs/zh-TW/terminal-config.md#how-claude-treats-pasted-text);`[Pasted text #N]` 預留位置背後的內容會未經標記地傳送給 Claude586* 讓 Claude [將大量貼上內容視為貼上的文字,而非輸入的文字](https://code.claude.com/docs/zh-TW/terminal-config.md#how-claude-treats-pasted-text);`[Pasted text #N]` 預留位置背後的內容會未經標記地傳送給 Claude

587* 讓 Claude Code [排除 API 會拒絕其輸入 schema 的 MCP 工具](https://code.claude.com/docs/zh-TW/mcp.md#tools-with-invalid-input-schemas);它仍會傳送該 schema,而包含該 schema 的請求會失敗,並出現[依位置指出該工具的 400 錯誤](https://code.claude.com/docs/zh-TW/errors.md#tool-input-schema-is-invalid)587* 讓 Claude Code [排除 API 會拒絕其輸入 schema 的 MCP 工具](https://code.claude.com/docs/zh-TW/mcp.md#tools-with-invalid-input-schemas)

588* 讓 Claude Code [在您的終端機工作階段閒置時壓縮冗長的對話](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction),時間點在一小時的提示詞快取到期前不久588* 讓 Claude Code [在您的終端機工作階段閒置時壓縮冗長的對話](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction),時間點在一小時的提示詞快取到期前不久

589 589 

590### 安裝或升級後的第一個工作階段590### 安裝或升級後的第一個工作階段

errors.md +48 −14

Details

219| 出現在指明某項憑證的政策拒絕訊息結尾的 `Cloud sessions use your claude.ai login` | [命令列錯誤](#cloud-sessions-use-your-claude-ai-login) |219| 出現在指明某項憑證的政策拒絕訊息結尾的 `Cloud sessions use your claude.ai login` | [命令列錯誤](#cloud-sessions-use-your-claude-ai-login) |

220| `Couldn't verify your organization's policy for cloud sessions` | [命令列錯誤](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |220| `Couldn't verify your organization's policy for cloud sessions` | [命令列錯誤](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

221| `Cloud sessions aren't available:`,後接無法載入您組織政策的原因 | [命令列錯誤](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |221| `Cloud sessions aren't available:`,後接無法載入您組織政策的原因 | [命令列錯誤](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

222| `Cloud sessions aren't available with this Console sign-in. They need a claude.ai sign-in.` | [無法取得組織 UUID](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#unable-to-get-organization-uuid) |

222| `Cloud sessions need a claude.ai sign-in` | [無法取得組織 UUID](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#unable-to-get-organization-uuid) |223| `Cloud sessions need a claude.ai sign-in` | [無法取得組織 UUID](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#unable-to-get-organization-uuid) |

223| `Nothing was stashed: "<path>" is now a folder in place of a tracked file or link` / `are now folders in place of tracked files or links` | [命令列錯誤](#nothing-was-stashed-because-a-folder-replaced-a-tracked-file) |224| `Nothing was stashed: "<path>" is now a folder in place of a tracked file or link` / `are now folders in place of tracked files or links` | [命令列錯誤](#nothing-was-stashed-because-a-folder-replaced-a-tracked-file) |

224| `Error: --json-schema is not a valid JSON Schema` | [命令列錯誤](#the-json-schema-value-is-not-a-valid-json-schema) |225| `Error: --json-schema is not a valid JSON Schema` | [命令列錯誤](#the-json-schema-value-is-not-a-valid-json-schema) |


325| `File is covered by a Read deny rule in your permission settings` | [工具錯誤](#file-is-covered-by-a-read-deny-rule) |326| `File is covered by a Read deny rule in your permission settings` | [工具錯誤](#file-is-covered-by-a-read-deny-rule) |

326| `cannot contain null bytes (\0)` | [工具錯誤](#path-cannot-contain-null-bytes) |327| `cannot contain null bytes (\0)` | [工具錯誤](#path-cannot-contain-null-bytes) |

327| `Path contains null bytes` | [工具錯誤](#path-cannot-contain-null-bytes) |328| `Path contains null bytes` | [工具錯誤](#path-cannot-contain-null-bytes) |

329| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [工具錯誤](#command-contains-an-invisible-character) |

328| `File is too large to read as an image (the limit is 128MB)` | [工具錯誤](#file-is-too-large-to-read-as-an-image) |330| `File is too large to read as an image (the limit is 128MB)` | [工具錯誤](#file-is-too-large-to-read-as-an-image) |

329| `Cannot read this as an image: <path> is a pipe or a device` | [工具錯誤](#file-is-too-large-to-read-as-an-image) |331| `Cannot read this as an image: <path> is a pipe or a device` | [工具錯誤](#file-is-too-large-to-read-as-an-image) |

330| `subagent_type is required: the general-purpose agent is not available in this session` | [工具錯誤](#subagent-type-is-required) |332| `subagent_type is required: the general-purpose agent is not available in this session` | [工具錯誤](#subagent-type-is-required) |


397| `Claude Code process exited with code N` | [包裝程式和 IDE 錯誤](#claude-code-process-exited-with-code-n) |399| `Claude Code process exited with code N` | [包裝程式和 IDE 錯誤](#claude-code-process-exited-with-code-n) |

398| `The connection to Claude Code ended before this message completed` | [包裝程式和 IDE 錯誤](#the-connection-to-claude-code-ended-before-this-message-completed) |400| `The connection to Claude Code ended before this message completed` | [包裝程式和 IDE 錯誤](#the-connection-to-claude-code-ended-before-this-message-completed) |

399| `Could not locate the Claude CLI on PATH` | [包裝程式和 IDE 錯誤](#could-not-locate-the-claude-cli-on-path) |401| `Could not locate the Claude CLI on PATH` | [包裝程式和 IDE 錯誤](#could-not-locate-the-claude-cli-on-path) |

402| `The Claude Code program for this computer, the <build> build, could not be found` | [包裝程式與 IDE 錯誤](#the-claude-code-program-for-this-computer-could-not-be-found) |

400| `Restored the code, but skipped N files` | [Rewind 警告和錯誤](#restored-the-code-but-skipped-files) |403| `Restored the code, but skipped N files` | [Rewind 警告和錯誤](#restored-the-code-but-skipped-files) |

401| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Rewind 警告和錯誤](#no-files-were-restored) |404| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Rewind 警告和錯誤](#no-files-were-restored) |

402| `Transcript writes are failing (...)` | [工作階段儲存警告](#transcript-writes-are-failing) |405| `Transcript writes are failing (...)` | [工作階段儲存警告](#transcript-writes-are-failing) |


485 488 

486從 v2.1.198 開始,在重試期間會隱藏通常的微調器提示。一旦錯誤原因被揭示,如果故障是 529 過載,倒數計時下方的行也會命名檢查服務狀態的位置:Anthropic API 上的 `status.claude.com`,或其他設定上的訊息中命名的提供者或閘道主機。489從 v2.1.198 開始,在重試期間會隱藏通常的微調器提示。一旦錯誤原因被揭示,如果故障是 529 過載,倒數計時下方的行也會命名檢查服務狀態的位置:Anthropic API 上的 `status.claude.com`,或其他設定上的訊息中命名的提供者或閘道主機。

487 490 

488如果在請求仍待處理時,回應串流上 20 秒內沒有資料到達,微調器會在任何重試開始之前顯示 `Waiting for API response · will retry in … · check your network`。請求尚未失敗:倒數計時執行到 Claude Code 中止停滯連線的點。中止後,您看到的內容取決於回應已進行的程度:491#### Waiting for API response

492 

493`Waiting for API response · will retry in … · check your network` 橫幅表示 Claude Code 已等待至少 20 秒,仍未收到某個請求的任何資料。請求尚未失敗:倒數計時執行到 Claude Code 中止停滯連線的點。如果發生中止:

489 494 

490* 在 Claude 完成文字區塊或工具呼叫之前,或在完成思考後開始一個之前,Claude Code 會重試請求或以錯誤結束回合。[Automatic retries](#automatic-retries) 說明它重試哪些停滯以及重試多少次。495* 在 Claude 完成文字區塊或工具呼叫之前,或在完成思考後開始一個之前,Claude Code 會重試請求或以錯誤結束回合。[Automatic retries](#automatic-retries) 說明它重試哪些停滯以及重試多少次。

491* 在 Claude 完成文字區塊或工具呼叫之後,或在完成思考後開始一個之後,但在 Claude 完成回應之前,Claude Code 會保留 Claude 完成的內容,從 Claude 完成的任何工具呼叫繼續回合,並顯示 [The response above may be incomplete](#the-response-above-may-be-incomplete)。在非互動式工作階段中,以及在任何工作階段中的 subagent 回應,Claude Code 可能會先提示 Claude 繼續回應;該項目說明何時執行以及何時您仍在那裡看到通知。496* 在 Claude 完成文字區塊或工具呼叫之後,或在完成思考後開始一個之後,但在 Claude 完成回應之前,Claude Code 會保留 Claude 完成的內容,從 Claude 完成的任何工具呼叫繼續回合,並顯示 [The response above may be incomplete](#the-response-above-may-be-incomplete)。在非互動式工作階段中,以及在任何工作階段中的 subagent 回應,Claude Code 可能會先提示 Claude 繼續回應;該項目說明何時執行以及何時您仍在那裡看到通知。

492* 在 Claude 完成回應之後,Claude Code 正常結束回合。497* 在 Claude 完成回應之後,Claude Code 正常結束回合。

493 498 

494一旦資料恢復或重試成功,橫幅會自動清除。如果它在每次嘗試時重新出現,請將其視為 [network issue](#unable-to-connect-to-api)。在 v2.1.185 之前,橫幅在 10 秒後出現,措辭不同。499一旦資料恢復或重試成功,橫幅會自動清除。如果它在每次嘗試時重新出現,請將其視為 [network issue](#unable-to-connect-to-api)。如果您透過閘道連線,請參閱[透過閘道連線時,等待橫幅時隱時現](#waiting-banner-behind-a-gateway)。在 v2.1.185 之前,橫幅在 10 秒後出現,措辭不同。

495 

496當 Claude 正在諮詢 [advisor](https://code.claude.com/docs/zh-TW/advisor.md) 時,橫幅在 90 秒無資料後出現,而不是 20 秒,因為長時間的 advisor 審查可能遠超過 20 秒都未發送任何內容。在 v2.1.214 之前,20 秒的閾值也適用於 advisor 呼叫,所以即使沒有任何問題,橫幅也會在 advisor 審查期間出現。

497 500 

498#### 透過閘道連線時,等待橫幅時隱時現501#### 透過閘道連線時,等待橫幅時隱時現

499 502 


2495 2498 

2496**該怎麼辦:**2499**該怎麼辦:**

2497 2500 

2498* 如果您的 Claude Code 版本早於 v2.1.216,請執行 `claude update`。2501* 如果您的 Claude Code 版本早於 v2.1.300,請在 shell 中執行 [`claude update`](https://code.claude.com/docs/zh-TW/setup#update-claude-code)。在 v2.1.300 之前,Claude Code 不會[在移除被拒絕工具的參數後重試請求](https://code.claude.com/docs/zh-TW/mcp.md#tools-whose-input-schema-the-api-refuses),因此此錯誤會在每個包含該工具的請求中重複出現。

2499* 移除或[禁用](https://code.claude.com/docs/zh-TW/mcp.md#disable-a-server-without-removing-it)聲明無效 schema 的 MCP 伺服器。該錯誤僅按位置命名工具。在 v2.1.216 或更高版本上,檢查每個伺服器的日誌以查找命名輸入 schema 會被拒絕的工具的行。如果沒有日誌命名一個,請一次禁用一個伺服器。2502* 移除或[禁用](https://code.claude.com/docs/zh-TW/mcp.md#disable-a-server-without-removing-it)聲明無效 schema 的 MCP 伺服器。該錯誤僅按位置命名工具。在 v2.1.216 或更高版本上,檢查每個伺服器的日誌以查找命名輸入 schema 會被拒絕的工具的行。如果沒有日誌命名一個,請一次禁用一個伺服器。

2500* 如果您維護伺服器,請修復工具的 `input_schema`。schema 必須是有效的 JSON Schema,頂級屬性名稱必須是 1 到 64 個字元長,並且只使用 ASCII 字母和數字、`_`、`.` 和 `-`。請參閱[輸入 schema 無效的工具](https://code.claude.com/docs/zh-TW/mcp.md#tools-with-invalid-input-schemas)。2503* 如果您維護伺服器,請修復工具的 `input_schema`。schema 必須是有效的 JSON Schema,頂級屬性名稱必須是 1 到 64 個字元長,並且只使用 ASCII 字母和數字、`_`、`.` 和 `-`。請參閱[輸入 schema 無效的工具](https://code.claude.com/docs/zh-TW/mcp.md#tools-with-invalid-input-schemas)。

2501 2504 


3295* **`Error: Workspace not trusted. <folder> is your home directory`**:由於對家目錄的信任永遠不會被儲存,先在那裡執行 `claude` 並沒有幫助。請改從專案目錄執行 `claude ultrareview`(事先在那裡執行一次 `claude` 以接受信任對話框),或附加 `--trust-workspace`。3298* **`Error: Workspace not trusted. <folder> is your home directory`**:由於對家目錄的信任永遠不會被儲存,先在那裡執行 `claude` 並沒有幫助。請改從專案目錄執行 `claude ultrareview`(事先在那裡執行一次 `claude` 以接受信任對話框),或附加 `--trust-workspace`。

3296* **`No answer in time.` 後接 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 問題在 5 分鐘內未獲回答。請再次執行 `claude ultrareview` 並回答它。3299* **`No answer in time.` 後接 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 問題在 5 分鐘內未獲回答。請再次執行 `claude ultrareview` 並回答它。

3297* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 問題中拒絕了,例如回答 `n` 或按下 Enter。若要啟動審查,請再次執行 `claude ultrareview` 並回答 `y`。3300* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 問題中拒絕了,例如回答 `n` 或按下 Enter。若要啟動審查,請再次執行 `claude ultrareview` 並回答 `y`。

3298* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 後面接了不是旗標的內容,例如 PR 編號或 `false`。如果您不信任該資料夾,請省略此旗標。若要在此次執行中信任它,請將 PR 編號或基底分支放在旗標之前:`claude ultrareview 1234 --trust-workspace`。3301* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 後面接了旗標以外的東西,例如 PR 編號或 `false`。如果您不信任該資料夾,請省略此旗標。若要在此次執行中信任它,請將 PR 編號或基礎分支放在旗標之前:`claude ultrareview 1234 --trust-workspace`。

3299 3302 

3300在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。3303在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。

3301 3304 


3568 3571 

3569### 沒有 origin/HEAD 時 /security-review 失敗3572### 沒有 origin/HEAD 時 /security-review 失敗

3570 3573 

3571[`/security-review`](https://code.claude.com/docs/zh-TW/commands#all-commands) 會將您的分支與 `origin/HEAD` 進行比對以建立審查脈絡,`origin/HEAD` 是記錄 `origin` 遠端上哪個分支為預設分支的本機參照。當該參照不存在時,收集差異的 git 命令會失敗,審查會在開始前就停止。3574[`/security-review`](https://code.claude.com/docs/zh-TW/commands#all-commands) 會將您的分支與 `origin/HEAD`(記錄您 `origin` 遠端上哪個分支為預設分支的本機 ref)進行差異比對,以建立其審查上下文。當該 ref 不存在時,收集差異的 git 命令會失敗,審查會在開始前就停止。

3572 3575 

3573```text theme={null}3576```text theme={null}

3574Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3577Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3587 3590 

3588以下同類字串會在命令執行之前就觸發:3591以下同類字串會在命令執行之前就觸發:

3589 3592 

3590* `Shell command permission check failed for pattern "..."`:該命令的權限檢查不允許它。[注入命令的權限檢查](https://code.claude.com/docs/zh-TW/skills.md#permission-checks-on-injected-commands)說明了在各權限模式下哪些結果會中止,以及如何以 `allowed-tools` 預先核准命令3593* `Shell command permission check failed for pattern "..."`:命令的權限檢查不允許它。[注入命令的權限檢查](https://code.claude.com/docs/zh-TW/skills.md#permission-checks-on-injected-commands)說明了在各權限模式下哪些結果會中止,以及如何以 `allowed-tools` 預先核准命令

3591* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:該 skill 的 frontmatter 要求使用 bash,但機器上沒有。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入命令的執行方式](https://code.claude.com/docs/zh-TW/skills.md#how-injected-commands-run)3594* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:skill 的 frontmatter 在沒有 bash 的機器上要求使用 bash。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入命令如何執行](https://code.claude.com/docs/zh-TW/skills.md#how-injected-commands-run)

3592* `No shell command in <name> was run`:該檔案中的某個 `!` 命令包含 tab 或換行以外的原始控制字元,因此所有命令都不會執行。請參閱[如何找出並移除該字元](#no-shell-command-was-run)

3593 3595 

3594**處理方式:**3596**處理方式:**

3595 3597 


3599 3601 

3600### No shell command in a skill or command was run3602### No shell command in a skill or command was run

3601 3603 

3602skill 或自訂命令檔案中的某個 `` !`<command>` `` [動態上下文命令](https://code.claude.com/docs/zh-TW/skills.md#inject-dynamic-context)包含 tab 或換行以外的原始控制字元。Claude Code 會在該檔案的任何命令執行之前拒絕整個呼叫。3604`No shell command in <name> was run` 表示該 skill 或命令檔案中的某個 `` !`<command>` `` [動態上下文命令](https://code.claude.com/docs/zh-TW/skills.md#inject-dynamic-context)包含 Bash 或 PowerShell 工具會拒絕的字元:

3605 

3606* **任一工具**:除 tab 或換行以外的原始控制字元

3607* **PowerShell 工具**:另外還有 U+FEFF 或 U+180E

3603 3608 

3604訊息會列出原本要執行這些命令的 shell 工具(Bash 或 PowerShell),並以遭拒絕的命令結尾。每個此類字元都會以 `�` 取代,方便您看出其位置:3609訊息會以被拒絕的命令結尾,並將每個被拒絕的字元顯示為 `�`,如以下 Bash 工具的範例:

3605 3610 

3606```text theme={null}3611```text theme={null}

3607No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.3612No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.


3610 3615 

3611**處理方式:**3616**處理方式:**

3612 3617 

3613* 在訊息結尾所引用的命令中找出每個 `�`。從 skill 或命令檔案中,或從代入該檔案的引數或選項中,移除它所代表的字元。3618* 在訊息結尾引用的命令中找出每個 `�`。從 [skill 或命令檔案](https://code.claude.com/docs/zh-TW/skills.md#where-skills-live)中,或從代入該檔案的引數或[選項](https://code.claude.com/docs/zh-TW/plugins/manifest-reference.md#user-configuration)中,移除它所代表的字元。

3614 3619 

3615### 使用 `--print` 時必須提供輸入3620### 使用 `--print` 時必須提供輸入

3616 3621 


3739 3744 

3740* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支進行比較,並建議您明確傳入基底分支,如上例所示3745* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支進行比較,並建議您明確傳入基底分支,如上例所示

3741* **您傳入的基底分支已存在於您的複製中**:提示內容為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3746* **您傳入的基底分支已存在於您的複製中**:提示內容為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3742* **您傳入的基礎分支不在您的 clone 中**:Claude Code 在比較之前從 origin 擷取了該分支。提示內容為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的 clone 是否為淺層 clone 時,則改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,提示會對每個擷取的基礎分支都建議 `git fetch --unshallow origin`,而在完整的 clone 上,該命令會以 `fatal: --unshallow on a complete repository does not make sense` 失敗。3747* **您傳入的基礎分支不在您的複製中**:Claude Code 在比較之前先從 origin 擷取了該分支。提示內容為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的複製是否為淺層複製時,則會改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,對於每個擷取的基礎分支,提示都會建議 `git fetch --unshallow origin`,而在完整的複製上,該命令會以 `fatal: --unshallow on a complete repository does not make sense` 失敗。

3743 3748 

3744**處理方式:**3749**處理方式:**

3745 3750 


4568 4573 

4569在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路徑中的 null 位元組會以指出 `Path contains null bytes` 的錯誤結束整個回合,且工具從未執行。4574在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路徑中的 null 位元組會以指出 `Path contains null bytes` 的錯誤結束整個回合,且工具從未執行。

4570 4575 

4576### Command contains an invisible character

4577 

4578[PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool) 拒絕執行包含 U+FEFF 或 U+180E 的命令:

4579 

4580```text theme={null}

4581Error: command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run. Remove the character, keep the text that needs it in a file that the command reads, or write it as $([char]0xFEFF) or $([char]0x180E) inside a double-quoted string

4582```

4583 

4584**處理方式:**

4585 

4586* **對於 Claude 撰寫的命令**:您無需修正任何內容。訊息會告知 Claude 如何改寫該命令。

4587* **對於 skill 或命令檔案**:訊息會接在 `No shell command in <name> was run` 之後。請參閱 [在何處找到該字元並將其移除](#no-shell-command-was-run)。

4588 

4571### File is too large to read as an image4589### File is too large to read as an image

4572 4590 

4573Claude 嘗試使用 [Read 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#read-tool-behavior) 將檔案作為圖片讀取,而該檔案大於 128 MB,也就是 Read 從圖片檔案載入的上限。沒有讀取任何內容,Claude 會收到此錯誤作為工具結果:4591Claude 嘗試使用 [Read 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#read-tool-behavior) 將檔案作為圖片讀取,而該檔案大於 128 MB,也就是 Read 從圖片檔案載入的上限。沒有讀取任何內容,Claude 會收到此錯誤作為工具結果:


5431* 將 PATH 項目設定為使用者或系統環境變數,而不是在您的 PowerShell 設定檔中。擴充功能不執行您的設定檔,因此只存在於那裡的 PATH 編輯永遠無法到達它。5449* 將 PATH 項目設定為使用者或系統環境變數,而不是在您的 PowerShell 設定檔中。擴充功能不執行您的設定檔,因此只存在於那裡的 PATH 編輯永遠無法到達它。

5432* 變更 PATH 後重新啟動 VS Code。擴充功能檢查 VS Code 在啟動時捕獲的 PATH,因此 PATH 變更只有在重新啟動後才會生效。5450* 變更 PATH 後重新啟動 VS Code。擴充功能檢查 VS Code 在啟動時捕獲的 PATH,因此 PATH 變更只有在重新啟動後才會生效。

5433 5451 

5452### The Claude Code program for this computer could not be found

5453 

5454[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)尋找其內部隨附的 Claude Code 副本,但找不到為您的電腦建置的版本。訊息會指出您的電腦所需的建置:

5455 

5456```text theme={null}

5457The Claude Code program for this computer, the Linux (linux-x64) build, could not be found.

5458```

5459 

5460**該怎麼做:**

5461 

5462* 如果訊息說明了擴充功能所包含的建置,表示您安裝的是其他平台的擴充功能套件:請安裝為訊息中指出的建置所製作的套件

5463* 如果訊息沒有說明擴充功能所包含的建置,請從編輯器的 Extensions 檢視重新安裝 Claude Code 擴充功能

5464* 或者,在上述任一情況下,將 [`claudeCode.claudeProcessWrapper`](https://code.claude.com/docs/zh-TW/vs-code#extension-settings) 設定為另外安裝的 `claude` 二進位檔

5465 

5466在 v2.1.290 之前,此錯誤顯示為 `Unsupported platform: <platform>-<arch>. No compatible Claude Code binary found.`

5467 

5434### Claude Code 的連線在此訊息完成前結束5468### Claude Code 的連線在此訊息完成前結束

5435 5469 

5436[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)將您的訊息傳送到 `claude` 程序,連線在程序確認或完成訊息之前結束,且沒有錯誤。擴充功能無法判斷訊息是否已被處理,因此它要求您再次傳送訊息:5470[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)將您的訊息傳送到 `claude` 程序,連線在程序確認或完成訊息之前結束,且沒有錯誤。擴充功能無法判斷訊息是否已被處理,因此它要求您再次傳送訊息:

fast-mode.md +31 −29

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> 快速模式處於[研究預覽](#research-preview)階段。該功能、定價和可用性可能會根據反饋而改變。11> Claude Opus 5.5 的快速模式已可使用,而 Claude Opus 5 和 Claude Opus 4.8 的快速模式則處於[研究預覽](#research-preview)階段。

12 12 

13快速模式是 Claude Opus 的高速配置,使模型速度提升最高 2.5 倍,但每個 token 的成本更高。當您需要速度進行互動式工作(如快速迭代或實時調試)時,使用 `/fast` 切換開啟,當成本比延遲更重要時,切換關閉。13快速模式是 Claude Opus 的高速配置,使模型速度提升最高 2.5 倍,但每個 token 的成本更高。當您需要速度進行互動式工作(如快速迭代或實時調試)時,使用 `/fast` 切換開啟,當成本比延遲更重要時,切換關閉。

14 14 


20 20 

21* 使用 `/fast` 在 Claude Code CLI 中切換快速模式。[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)在選定的模型支援快速模式時提供**切換快速模式**命令。Claude Code 將該切換儲存到您的 [`fastMode` 設定](#toggle-fast-mode)。21* 使用 `/fast` 在 Claude Code CLI 中切換快速模式。[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)在選定的模型支援快速模式時提供**切換快速模式**命令。Claude Code 將該切換儲存到您的 [`fastMode` 設定](#toggle-fast-mode)。

22* 快速模式定價在 Opus 5.5 上為 $8/$40 MTok 輸入/輸出,在 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 組織則需要先佈建存取權限,才能搭配 Opus 5 或 Opus 4.8 使用。[需求](#requirements)說明了這兩者。

24* 對於訂閱方案(Pro/Max/Team/Enterprise)上的 Claude Code 使用者,快速模式僅透過使用額度提供,不包含在訂閱速率限制中。24* 對於訂閱方案(Pro/Max/Team/Enterprise)上的 Claude Code 使用者,快速模式僅透過使用額度提供,不包含在訂閱速率限制中。

25 25 

26## 切換快速模式26## 切換快速模式

27 27 

28在 CLI 中,透過以下任一方式切換快速模式:28在 CLI 中,可透過以下任一方式切換快速模式:

29 29 

30* 執行 `/fast`,按空格鍵切換開啟或關閉,然後按 Enter 鍵確認30* 執行 `/fast`,按 Space 切換開啟或關閉,然後按 Enter 確認

31* 在您的[使用者設定檔案](https://code.claude.com/docs/zh-TW/settings.md)中設定 `"fastMode": true`31* 在您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)中設定 `"fastMode": true`

32 32 

33預設情況下,在互動式工作階段中開啟的快速模式會在工作階段之間保持。您可以配置快速模式在每個工作階段重設。詳見[要求每個工作階段選擇加入](#require-per-session-opt-in)以了解詳情。33預設情況下,在互動式工作階段中開啟的快速模式會跨工作階段保留。您可以將快速模式設定為在每個工作階段重設。詳情請參閱[要求每個工作階段選擇加入](#require-per-session-opt-in)。

34 34 

35在[雲端工作階段](#use-fast-mode-in-cloud-sessions)外,在[非互動式模式](https://code.claude.com/docs/zh-TW/headless.md)中使用 `-p` 旗標時,`/fast` 僅在使用快速模式在其 [`--settings`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 值中啟動的工作階段中運作,例如 `claude -p --settings '{"fastMode": true}'`;切換則僅適用於該工作階段,不會儲存為您的預設值。`-p` 形式需要 Claude Code v2.1.205 或更新版本。在非互動式模式的其他地方,該命令會報告快速模式不可用。35在[雲端工作階段](#use-fast-mode-in-cloud-sessions)之外,於使用 `-p` 旗標的[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中,`/fast` 僅在其 [`--settings`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 值中啟用快速模式所啟動的工作階段中有效,例如 `claude -p --settings '{"fastMode": true}'`;此時切換僅套用於該工作階段,不會儲存為您的預設值。`-p` 形式需要 Claude Code v2.1.205 或更新版本。在其他非互動模式情況下,該命令會回報快速模式無法使用。

36 36 

37您可以在 Claude 工作時執行 `/fast`,Claude Code 會在不等待回合結束的情況下切換快速模式。Claude Code 會以原始速度完成執行中的回合,因此速度變更會從您的下一個回合開始生效。如果您目前的模型不支援快速模式,開啟它也會切換您的模型,Claude Code 會在該回合的下一個請求中使用新模型。37您可以在 Claude 工作時執行 `/fast`,Claude Code 會切換快速模式,而不需等待回合結束。Claude Code 會以原本的速度完成正在執行的回合,因此速度變更會從您的下一個回合開始生效。如果您目前的模型不支援快速模式,開啟快速模式也會切換您的模型,且 Claude Code 會在該回合中從下一個請求開始使用新模型。

38 38 

39為了獲得最佳成本效率,在工作階段開始時啟用快速模式,而不是在對話中途切換。詳見[了解成本權衡](#understand-the-cost-tradeoff)以了解詳情。39為了獲得最佳的成本效益,請在工作階段開始時啟用快速模式,而非在對話中途切換。詳情請參閱[了解成本權衡](#understand-the-cost-tradeoff)。

40 40 

41當您啟用快速模式時:41當您啟用快速模式時:

42 42 

43* 如果您目前的模型不支援快速模式,Claude Code 會切換到 Opus43* 如果您目前的模型不支援快速模式,Claude Code 會切換至 Opus

44* 您會看到確認訊息:「Fast mode ON」44* 您會看到確認訊息:"Fast mode ON"

45* 快速模式啟用時,提示旁會出現一個小的 `↯` 圖示45* 快速模式啟用期間,提示詞旁會出現一個小型 `↯` 圖示

46* 隨時再次執行 `/fast` 以檢查快速模式是否開啟或關閉46* 隨時再次執行 `/fast` 即可檢查快速模式是開啟還是關閉

47 47 

48Opus 5.5 是 Claude Code v2.1.280 及更新版本中的快速模式預設值。在 v2.1.280 之前,快速模式自 v2.1.219 版本起預設為 Opus 5。48在 Claude Code v2.1.280 及更新版本中,Opus 5.5 是快速模式的預設模型。在 v2.1.280 之前,從 v2.1.219 起快速模式預設使用 Opus 5。

49 49 

50當您再次使用 `/fast` 關閉快速模式時,您仍保持在 Opus 上。要切換到不同的模型,請使用 `/model`。50當您再次使用 `/fast` 停用快速模式時,您會繼續使用 Opus。若要切換至其他模型,請使用 `/model`。

51 51 

52### 在快速模式開啟時切換模型52### 在快速模式開啟時切換模型

53 53 

54快速模式會在兩個方向上跟隨您的模型切換:54快速模式會雙向跟隨您的模型切換:

55 55 

56* **切換離開**:當您切換到不支援快速模式的模型時,Claude Code 會關閉快速模式。這包括 Opus 4.7;在 v2.1.221 之前,快速模式在切換到 Opus 4.7 後會保持開啟,API 會拒絕請求。56* **切換離開**:當您切換至不支援快速模式的模型時,Claude Code 會關閉快速模式。這包括 Opus 4.7;在 v2.1.221 之前,切換至 Opus 4.7 後快速模式仍保持開啟,且 API 會拒絕這些請求。

57* **切換回來**:當您儲存的快速模式偏好設定為開啟時,切換回支援的 Opus 模型會再次開啟快速模式,這與新工作階段預設啟動的偏好設定相同。模型切換永遠不會為儲存偏好設定為關閉的工作階段開啟快速模式,配置了[每個工作階段選擇加入](#require-per-session-opt-in)時,切換回來也不會開啟它;執行 `/fast` 以重新啟用它。57* **切換回來**:當您儲存的快速模式偏好設定為開啟時(即新工作階段預設採用的相同偏好設定),切換回受支援的 Opus 模型會再次開啟快速模式。對於已儲存偏好設定為關閉的工作階段,模型切換絕不會開啟快速模式;若已設定[每個工作階段選擇加入](#require-per-session-opt-in),切換回來也不會開啟快速模式;請執行 `/fast` 重新啟用。

58 58 

59每當模型切換開啟或關閉快速模式時,Claude Code 會顯示 `Fast mode ON` 或 `Fast mode OFF` 確認,快速模式開啟時會出現 `↯` 圖示。無論您使用 `/model`、[`/config model=<model>`](https://code.claude.com/docs/zh-TW/settings) 切換,或從透過[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md)連接的裝置切換,都是如此。59每當模型切換開啟或關閉快速模式時,Claude Code 都會顯示 `Fast mode ON` 或 `Fast mode OFF` 確認訊息,且快速模式開啟期間會出現 `↯` 圖示。無論您是使用 `/model`、使用 [`/config model=<model>`](https://code.claude.com/docs/zh-TW/settings),還是從透過 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線的裝置進行切換,皆是如此。

60 60 

61Claude Code 會在模型切換、重新連接或失敗的[可用性檢查](#use-fast-mode-behind-proxies-and-llm-gateways)後,將工作階段的快速模式狀態重新傳送到透過 Remote Control 連接的裝置。61在模型切換、重新連線或[可用性檢查](#use-fast-mode-behind-proxies-and-llm-gateways)失敗後,Claude Code 會將工作階段的快速模式狀態重新傳送至透過 Remote Control 連線的裝置。

62 62 

63### 在雲端工作階段中使用快速模式63### 在雲端工作階段中使用快速模式

64 64 

65快速模式在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中運作,當它在您的帳戶上可用時,無論工作階段是在 Anthropic 管理的基礎設施上執行,還是在[自託管執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments)上執行。需要工作階段環境中的 Claude Code v2.1.271 或更新版本。65當您的帳戶可使用快速模式時,快速模式可在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中運作,無論該工作階段是在 Anthropic 管理的基礎架構上執行,還是在[自行託管的執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments)上執行。工作階段的環境需要 Claude Code v2.1.271 或更新版本。

66 66 

67在工作階段中輸入 `/fast on` 以開啟快速模式。它僅在該工作階段中保持開啟,不會儲存為您的預設值。[要求](#requirements)也適用於雲端工作階段。67在工作階段中輸入 `/fast on` 即可開啟快速模式。它僅在該工作階段中保持開啟,不會儲存為您的預設值。[需求](#requirements)同樣適用於雲端工作階段。

68 68 

69在 [claude.ai/code](https://claude.ai/code) 的瀏覽器中,您也可以從訊息方塊上的模型選單開啟和關閉快速模式。當您的方案包含快速模式且選定的模型支援它時,選單會顯示切換開關。69在瀏覽器中的 [claude.ai/code](https://claude.ai/code),您也可以從訊息方塊上的模型選單開啟或關閉快速模式。當您的方案包含快速模式且所選模型支援時,選單會顯示此開關。

70 70 

71## 了解成本權衡71## 了解成本權衡

72 72 


119 119 

120快速模式需要以下所有條件:120快速模式需要以下所有條件:

121 121 

122* **僅限 Anthropic API 或訂閱**:快速模式可透過 Anthropic Console API 和使用額度的 Claude 訂閱方案取得。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上無法使用。Console 組織還必須[為您的組織佈建快速模式存取](#enable-fast-mode-for-your-organization)。122* **僅限 Anthropic API 或訂閱**:快速模式可透過 Anthropic Console API 和使用用量點數的 Claude 訂閱方案取得。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上無法使用。Console 組織還必須[佈建快速模式存取](#enable-fast-mode-for-your-organization),才能在 Opus 5 或 Opus 4.8 上使用它。

123* **為訂閱方案開啟用量點數**:在 Pro、Max、Team 或 Enterprise 方案上,您的帳戶必須開啟[用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription),這允許超出您方案包含使用量的計費。在開啟之前,`/fast` 會報告「快速模式需要用量點數」。您開啟它們的方式取決於您的方案:123* **為訂閱方案開啟用量點數**:在 Pro、Max、Team 或 Enterprise 方案上,您的帳戶必須開啟[用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription),這允許超出您方案包含使用量的計費。在開啟之前,`/fast` 會報告「快速模式需要用量點數」。您開啟它們的方式取決於您的方案:

124 * 在 Pro 和 Max 上,在 claude.ai 上的 [**設定 > 使用量**](https://claude.ai/settings/usage) 的 **用量點數** 部分開啟它們,或執行 `/usage-credits` 以開啟該頁面。124 * 在 Pro 和 Max 上,在 claude.ai 上的 [**設定 > 使用量**](https://claude.ai/settings/usage) 的 **用量點數** 部分開啟它們,或執行 `/usage-credits` 以開啟該頁面。

125 * 在 Team 和 Enterprise 上,具有計費存取權限的成員在 [**組織設定 > 使用量**](https://claude.ai/admin-settings/usage) 為組織開啟它們,沒有存取權限的成員執行 `/usage-credits` 以向組織的管理員發送請求。125 * 在 Team 和 Enterprise 上,具有計費存取權限的成員在 [**組織設定 > 使用量**](https://claude.ai/admin-settings/usage) 為組織開啟它們,沒有存取權限的成員執行 `/usage-credits` 以向組織的管理員發送請求。


129> 快速模式使用量直接從使用額度中扣除,即使您在方案上還有剩餘使用量。129> 快速模式使用量直接從使用額度中扣除,即使您在方案上還有剩餘使用量。

130 130 

131* **付費 Console 組織**:Claude Console 帳戶不使用使用額度,您的組織按令牌為快速模式付費,與其餘 API 使用量一起。在 Console 的免費評估方案上,`/fast` 顯示「評估期間快速模式不可用。請購買額度。」若要清除它,請在您的 [Console 計費設定](https://platform.claude.com/settings/billing)中購買額度。131* **付費 Console 組織**:Claude Console 帳戶不使用使用額度,您的組織按令牌為快速模式付費,與其餘 API 使用量一起。在 Console 的免費評估方案上,`/fast` 顯示「評估期間快速模式不可用。請購買額度。」若要清除它,請在您的 [Console 計費設定](https://platform.claude.com/settings/billing)中購買額度。

132 

133 在 Opus 5.5 上使用快速模式也取決於您組織的[使用層級](https://platform.claude.com/docs/en/api/rate-limits)。

132* **Team 和 Enterprise 的擁有者啟用**:快速模式在預設情況下對 Team 和 Enterprise 組織停用。擁有者必須明確[啟用快速模式](#enable-fast-mode-for-your-organization),使用者才能存取它。134* **Team 和 Enterprise 的擁有者啟用**:快速模式在預設情況下對 Team 和 Enterprise 組織停用。擁有者必須明確[啟用快速模式](#enable-fast-mode-for-your-organization),使用者才能存取它。

133 135 

134> [!NOTE]136> [!NOTE]


144 146 

145您啟用快速模式的位置取決於您的組織使用哪個產品:147您啟用快速模式的位置取決於您的組織使用哪個產品:

146 148 

147* **Console**(API 客戶):管理員在 [Claude Code 偏好設定](https://platform.claude.com/claude-code/preferences)中啟用它。快速模式處於[研究預覽](#research-preview)中,因此您的組織還必須在快速模式請求成功之前佈建快速模式存取。若要取得存取權,請聯絡您的帳戶經理或加入等候清單,如 [Claude API 上的快速模式](https://platform.claude.com/docs/en/build-with-claude/fast-mode)中所述。149* **Console**(API 客戶):管理員在 [Claude Code 偏好設定](https://platform.claude.com/claude-code/preferences)中啟用它

148 

149 沒有佈建的存取權,API 會以 429 拒絕每個快速模式請求,Claude Code 會將每個拒絕視為[快速模式速率限制](#handle-rate-limits)。與速率限制的冷卻時間不同,拒絕會持續到佈建存取權為止。

150* **Claude AI**(Team 和 Enterprise):擁有者在 [**組織設定 > Claude Code**](https://claude.ai/admin-settings/claude-code) 啟用它150* **Claude AI**(Team 和 Enterprise):擁有者在 [**組織設定 > Claude Code**](https://claude.ai/admin-settings/claude-code) 啟用它

151 151 

152使用 Claude Opus 5 或 Claude Opus 4.8 的 Console 組織還需要佈建的存取權,如 [Claude API 上的快速模式](https://platform.claude.com/docs/en/build-with-claude/fast-mode)中所述。沒有該存取權,這些模型上的快速模式請求會觸及[快速模式速率限制](#handle-rate-limits),並回退到標準速度,直到佈建存取權為止。

153 

152另一個完全停用快速模式的選項是設定 `CLAUDE_CODE_DISABLE_FAST_MODE=1`。請參閱[環境變數](https://code.claude.com/docs/zh-TW/env-vars.md)。154另一個完全停用快速模式的選項是設定 `CLAUDE_CODE_DISABLE_FAST_MODE=1`。請參閱[環境變數](https://code.claude.com/docs/zh-TW/env-vars.md)。

153 155 

154### 在代理和 LLM 閘道後面使用快速模式156### 在代理和 LLM 閘道後面使用快速模式


201 203 

202## 處理速率限制204## 處理速率限制

203 205 

204快速模式與標準 Opus 有不同的速率限制。所有支援的 Opus 模型共享一個快速模式速率限制池:任何模型上的使用都會從相同的限制中扣除。當您達到快速模式速率限制時:206快速模式與標準 Opus 有不同的速率限制;對於 Console 組織,Claude Platform 的[速率限制](https://platform.claude.com/docs/en/api/rate-limits)頁面中有相關說明。當您達到快速模式速率限制時:

205 207 

2061. 快速模式自動回退到標準速度2081. 快速模式自動回退到標準速度

2072. `↯` 圖示變灰以指示冷卻2092. `↯` 圖示變灰以指示冷卻


217 219 

218## 研究預覽220## 研究預覽

219 221 

220快速模式是研究預覽功能。這意味著:222Claude Opus 5 和 Claude Opus 4.8 的快速模式是研究預覽功能。這意味著:

221 223 

222* 該功能可能會根據反饋而改變224* 該功能可能會根據反饋而改變

223* 可用性和定價可能會改變225* 可用性和定價可能會改變

Details

90 <tr>90 <tr>

91 <td>[Fast mode](https://code.claude.com/docs/zh-TW/fast-mode.md)</td>91 <td>[Fast mode](https://code.claude.com/docs/zh-TW/fast-mode.md)</td>

92 <td>✓ ([擁有者啟用](https://code.claude.com/docs/zh-TW/fast-mode.md#enable-fast-mode-for-your-organization)於 Team 和 Enterprise)</td>92 <td>✓ ([擁有者啟用](https://code.claude.com/docs/zh-TW/fast-mode.md#enable-fast-mode-for-your-organization)於 Team 和 Enterprise)</td>

93 <td>✓ (已佈建的組織)</td>93 <td>✓ (Opus 5 和 4.8 需要佈建)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✗</td>


285 285 

286**不可用:** 所有[需要 Claude 訂閱的功能](#features-that-require-a-claude-subscription)。286**不可用:** 所有[需要 Claude 訂閱的功能](#features-that-require-a-claude-subscription)。

287 287 

288[按提供者變化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有功能都可用,除了 [fast mode](https://code.claude.com/docs/zh-TW/fast-mode.md) 需要[已佈建的存取](https://code.claude.com/docs/zh-TW/fast-mode.md#enable-fast-mode-for-your-organization)。您在 claude.ai Team 或 Enterprise 組織中設定的[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)不會套用到使用 Console API 金鑰進行身分驗證的工作階段。如需如何涵蓋這些工作階段,請參閱[平台可用性](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)。288[按提供者變化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有功能都可用,但搭配 Claude Opus 5 或 Claude Opus 4.8 使用 [fast mode](https://code.claude.com/docs/zh-TW/fast-mode.md) 時需要[已佈建的存取](https://code.claude.com/docs/zh-TW/fast-mode.md#enable-fast-mode-for-your-organization)。您在 claude.ai Team 或 Enterprise 組織中設定的[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)不會套用到使用 Console API 金鑰進行身分驗證的工作階段。如需如何涵蓋這些工作階段,請參閱[平台可用性](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)。

289 289 

290**部分支援:**290**部分支援:**

291 291 

github-actions.md +55 −55

Details

19 19 

20您可以透過以下兩種方式之一設定 Claude Code GitHub Action:20您可以透過以下兩種方式之一設定 Claude Code GitHub Action:

21 21 

22* **快速設定**:從 Claude Code 執行 `/install-github-app`。Claude Code 安裝 GitHub App、新增您的身份驗證密鑰,並為您準備工作流程 pull request22* **快速設定**:從 Claude Code 執行 `/install-github-app`。Claude Code 會安裝 GitHub App、新增您的身分驗證 secret,並為您準備好工作流程 pull request

23* **手動設定**:安裝應用程式、新增密鑰,並自己將工作流程檔案複製到您的儲存庫。當您不在本地執行 Claude Code、命令失敗或您想完全控制工作流程檔案時,請使用此路徑23* **手動設定**:自行安裝應用程式、新增 secret,並將工作流程檔案複製到您的儲存庫中。當您未在本機執行 Claude Code、命令執行失敗,或您希望完全掌控工作流程檔案時,請使用此方式

24 24 

25對於任一路徑,您需要對儲存庫具有管理員存取權限。25無論採用哪種方式,您都需要擁有儲存庫的管理員存取權限。

26 26 

27### 快速設定27### 快速設定

28 28 

29`/install-github-app` 僅適用於 github.com 儲存庫。如果您的儲存庫的 git 遠端在 gitlab.com 或 bitbucket.org 上,該命令會列印通知並退出,而不是開始設定。若要從 GitLab 管道執行 Claude Code,請參閱 [Claude Code GitLab CI/CD](https://code.claude.com/docs/zh-TW/gitlab-ci-cd.md)。29`/install-github-app` 僅適用於 github.com 儲存庫。如果您儲存庫的 git remote 位於 gitlab.com 或 bitbucket.org,該命令會顯示通知並結束,而不會開始設定。若要從 GitLab pipeline 執行 Claude Code,請參閱 [Claude Code GitLab CI/CD](https://code.claude.com/docs/zh-TW/gitlab-ci-cd.md)。

30 30 

31在開始之前,安裝 [GitHub CLI](https://cli.github.com) 並使用 `gh auth login` 進行身份驗證。Claude Code 會檢查它並在缺少時警告您。31開始之前,請安裝 [GitHub CLI](https://cli.github.com) 並使用 `gh auth login` 進行身分驗證。Claude Code 會檢查是否已安裝,若缺少則會發出警告。

32 32 

33在您想要連接的儲存庫中開啟 `claude`,執行 `/install-github-app`,並按照提示進行。Claude Code 安裝 Claude GitHub App,然後為工作流程設定身份驗證密鑰:33在您要連接的儲存庫中開啟 `claude`,執行 `/install-github-app`,然後依照提示操作。Claude Code 會安裝 Claude GitHub App,接著為工作流程設定身分驗證 secret:

34 34 

35* 如果 Claude Code 已經有 API 金鑰,它會重複使用該金鑰,並提供保留儲存庫現有 `ANTHROPIC_API_KEY` 密鑰的選項(如果已設定)35* 如果 Claude Code 已有 API 金鑰,則會重複使用該金鑰;若儲存庫已設定 `ANTHROPIC_API_KEY` secret,也會提供保留現有 secret 的選項

36* 否則,選擇使用您的 Claude 訂閱建立長期令牌或貼上 API 金鑰36* 否則,請選擇使用您的 Claude 訂閱建立長期有效的 token,或貼上 API 金鑰

37 37 

38Claude Code 將認證儲存為儲存庫密鑰,API 金鑰命名為 `ANTHROPIC_API_KEY`,或訂閱令牌命名為 `CLAUDE_CODE_OAUTH_TOKEN`。38Claude Code 會將憑證儲存為儲存庫 secret,API 金鑰命名為 `ANTHROPIC_API_KEY`,訂閱 token 則命名為 `CLAUDE_CODE_OAUTH_TOKEN`。

39 39 

40Claude Code 然後推送包含您選擇的工作流程檔案的分支,已設定為使用該密鑰,並在您的瀏覽器中開啟 GitHub,準備建立 pull request。建立並合併該 pull request,`@claude` 就可以在儲存庫中工作。40接著,Claude Code 會推送一個包含您所選工作流程檔案的分支(已設定為使用該 secret),並在瀏覽器中開啟 GitHub,顯示一個可供建立的 pull request。建立並合併該 pull request 後,`@claude` 即可在該儲存庫中運作。

41 41 

42若要在中途停止設定,請按 Esc。已進行中的步驟會完成,之後的步驟不會開始。結束訊息會列出儲存庫中已發生的事項,例如推送的分支或已儲存的密鑰。42若要在設定途中停止,請按 Esc。已在進行中的步驟會執行完畢,後續步驟則不會開始。結束訊息會列出儲存庫中已發生的變更,例如已推送的分支或已儲存的 secret。

43 43 

44如果您選擇審查工作流程,Claude 會在 pull request 本身上發佈每個審查,作為它發現的每個問題的內聯評論,或在未發現任何問題時作為一個摘要評論。Claude 會跳過某些 pull request,例如草稿。[審查工作流程範例](#run-a-skill)使用相同的技能並列出它們。在 v2.1.229 之前,Claude 只將其審查寫入工作流程執行日誌。44如果您選擇審查工作流程,Claude 會將每則審查直接發佈在 pull request 上:針對找到的每個問題發佈一則行內留言,若未找到任何問題則發佈一則摘要留言。Claude 會略過某些 pull request,例如草稿。[審查工作流程範例](#run-a-skill)使用相同的 skill 並列出這些情況。在 v2.1.229 之前,Claude 只會將審查寫入工作流程執行日誌。

45 45 

46若要更新較早版本生成的審查工作流程,請執行以下操作之一:46若要更新由較早版本產生的審查工作流程,請執行下列其中一項:

47 47 

48* 再次執行 `/install-github-app`。當儲存庫已經有 `claude.yml` 時,選擇**使用最新版本更新工作流程檔案**。Claude Code 將新的工作流程檔案副本推送到新分支並開啟 pull request,與首次安裝相同。48* 再次執行 `/install-github-app`。當儲存庫中已有 `claude.yml` 時,選擇 **Update workflow file with latest version**。Claude Code 會將最新的工作流程檔案推送至新分支並開啟 pull request,與首次安裝時相同。

49* 自己將 `--comment` 引數和 [審查工作流程範例](#run-a-skill)中的 `claude_args` 行新增到簽入的檔案,這會保留您對其所做的任何其他編輯。49* 自行將 `--comment` 引數以及[審查工作流程範例](#run-a-skill)中的 `claude_args` 行新增至已簽入的檔案,如此可保留您對該檔案所做的其他編輯。

50 50 

51安裝 GitHub App 後,Claude Code 會詢問是否繼續進行 GitHub Actions 設定。選擇**暫時跳過**以僅安裝 GitHub App。稍後再次執行 `/install-github-app` 以完成工作流程和密鑰步驟。51安裝 GitHub App 後,Claude Code 會詢問是否繼續進行 GitHub Actions 設定。選擇 **Skip for now** 即可在僅安裝 GitHub App 的狀態下停止。之後再次執行 `/install-github-app` 即可完成工作流程和 secret 的步驟。

52 52 

53> [!NOTE]53> [!NOTE]

54>54>

55> * 安裝 GitHub App 時,您授予它多個權限。有關完整集合,請參閱 [GitHub App 權限](#github-app-permissions)55> * 安裝 GitHub App 時,您會授予其多項權限。完整權限清單請參閱 [GitHub App 權限](#github-app-permissions)

56> * 快速設定適用於 Claude API 和 Claude 訂閱。如果您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry,請參閱[使用 Claude Code GitHub Actions 與雲端提供者](https://code.claude.com/docs/zh-TW/github-actions-cloud-providers.md)56> * 快速設定適用於 Claude API 和 Claude 訂閱。如果您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry,請參閱[搭配雲端供應商使用 Claude Code GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions-cloud-providers.md)

57 57 

58### 手動設定58### 手動設定

59 59 

60若要在不執行 `/install-github-app` 的情況下設定 Claude Code GitHub Action,請安裝應用程式、新增密鑰並自己複製工作流程檔案:60若要在不執行 `/install-github-app` 的情況下設定 Claude Code GitHub Action,請自行安裝應用程式、新增 secret 並複製工作流程檔案:

61 61 

62**1. 安裝 Claude GitHub App**62**1. 安裝 Claude GitHub App**

63 63 

64將 [Claude GitHub App](https://github.com/apps/claude) 安裝到您的儲存庫。Claude Code GitHub Action 依賴應用程式的三個權限:64將 [Claude GitHub App](https://github.com/apps/claude) 安裝到您的儲存庫。Claude Code GitHub Action 依賴該應用程式的三項權限:

65 65 

66* **Contents**:讀取和寫入,以便 Claude 可以修改儲存庫檔案66* **Contents**:讀取和寫入,讓 Claude 可以修改儲存庫檔案

67* **Issues**:讀取和寫入,以便 Claude 可以回應議題67* **Issues**:讀取和寫入,讓 Claude 可以回應 issue

68* **Pull requests**:讀取和寫入,以便 Claude 可以建立 PR 並推送變更68* **Pull requests**:讀取和寫入,讓 Claude 可以建立 PR 並推送變更

69 69 

70在安裝期間,您也授予其他 Claude 功能使用的權限。有關完整集合,請參閱 [GitHub App 權限](#github-app-permissions)。70安裝期間,您也會授予其他 Claude 功能所使用的權限。完整權限清單請參閱 [GitHub App 權限](#github-app-permissions)。

71 71 

72**2. 新增身份驗證密鑰**72**2. 新增身分驗證 secret**

73 73 

74根據您的身份驗證方式,將以下密鑰之一新增到您的儲存庫。請參閱 GitHub 的[在 GitHub Actions 中使用密鑰](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)指南。74依據您的身分驗證方式,將下列其中一個 secret 新增至您的儲存庫。請參閱 GitHub 的[在 GitHub Actions 中使用 secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions) 指南。

75 75 

76* `ANTHROPIC_API_KEY`:來自 [Claude Console](https://platform.claude.com) 的 Claude API 金鑰76* `ANTHROPIC_API_KEY`:來自 [Claude Console](https://platform.claude.com) 的 Claude API 金鑰

77* `CLAUDE_CODE_OAUTH_TOKEN`:使用您的 Claude 訂閱進行身份驗證的 OAuth 令牌,在 Pro、Max、Team 和 Enterprise 計劃上可用。透過在本地執行 `claude setup-token` 生成一個。請參閱[生成長期令牌](https://code.claude.com/docs/zh-TW/authentication.md#generate-a-long-lived-token)77* `CLAUDE_CODE_OAUTH_TOKEN`:使用您的 Claude 訂閱進行身分驗證的 OAuth token,適用於 Pro、Max、Team 和 Enterprise 方案。在本機執行 `claude setup-token` 即可產生。請參閱[產生長期有效的 token](https://code.claude.com/docs/zh-TW/authentication.md#generate-a-long-lived-token)

78 78 

79在工作流程檔案中,將密鑰傳遞給匹配的輸入:API 金鑰為 `anthropic_api_key`,或 OAuth 令牌為 `claude_code_oauth_token`。79在工作流程檔案中,將 secret 傳遞給對應的輸入:API 金鑰使用 `anthropic_api_key`,OAuth token 使用 `claude_code_oauth_token`。

80 80 

81**3. 複製工作流程檔案**81**3. 複製工作流程檔案**

82 82 

83將 [examples/claude.yml](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) 複製到您的儲存庫的 `.github/workflows/` 目錄。該檔案是一個工作流程,而不僅僅是一個範例。按照提交,Claude 在有人在議題或 pull request 中提及 `@claude` 時回應,使用 `ANTHROPIC_API_KEY` 密鑰進行身份驗證。如果您改為新增了 `CLAUDE_CODE_OAUTH_TOKEN`,請將工作流程的 `anthropic_api_key` 行變更為 `claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`。83將 [examples/claude.yml](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) 複製到您儲存庫的 `.github/workflows/` 目錄中。此檔案是可直接運作的工作流程,而不僅僅是範例。依其提交時的內容,每當有人在 issue 或 pull request 中提及 `@claude` 時,Claude 就會回應,並使用 `ANTHROPIC_API_KEY` secret 進行身分驗證。如果您新增的是 `CLAUDE_CODE_OAUTH_TOKEN`,請將工作流程中的 `anthropic_api_key` 行改為 `claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`。

84 84 

85> [!TIP]85> [!TIP]

86>86>

87> 設定後,透過在議題或 PR 評論中標記 `@claude` 來測試 Claude Code GitHub Action。87> 設定完成後,請在 issue 或 PR 留言中標記 `@claude` 來測試 Claude Code GitHub Action。

88 88 

89### 為組織設定89### 為組織進行設定

90 90 

91使用快速設定或手動設定,您一次設定一個儲存庫。若要在整個組織中推出 Claude Code GitHub Action:91無論是快速設定或手動設定,您一次都只能設定一個儲存庫。若要在整個組織中推行 Claude Code GitHub Action:

92 92 

93* 在組織級別安裝 [Claude GitHub App](https://github.com/apps/claude) 一次,選擇所有儲存庫或選定清單93* 在組織層級安裝一次 [Claude GitHub App](https://github.com/apps/claude),並選擇所有儲存庫或選定的清單

94* 將身份驗證密鑰儲存為組織級別的 Actions 密鑰,以便每個儲存庫不需要自己的副本94* 將身分驗證 secret 儲存為組織層級的 Actions secret,如此每個儲存庫就不需要各自的副本

95* 將工作流程檔案新增到應該執行 Claude Code GitHub Action 的每個儲存庫,或將工作定義一次作為[可重複使用的工作流程](https://docs.github.com/en/actions/using-workflows/reusing-workflows),每個儲存庫都會呼叫95* 將工作流程檔案新增至每個應執行 Claude Code GitHub Action 的儲存庫,或將作業定義為一個[可重複使用的工作流程](https://docs.github.com/en/actions/using-workflows/reusing-workflows),供各儲存庫呼叫

96 96 

97對於跨儲存庫共享的密鑰,使用來自 [Claude Console](https://platform.claude.com) 的 API 金鑰進行身份驗證,而不是 OAuth 令牌,因為 OAuth 令牌與執行 `claude setup-token` 的人的訂閱相關聯。97對於跨儲存庫共用的 secret,請使用來自 [Claude Console](https://platform.claude.com) 的 API 金鑰進行身分驗證,而非 OAuth token,因為 OAuth token 與執行 `claude setup-token` 之人的訂閱綁定。

98 98 

99若要完全避免儲存長期密鑰,請透過工作負載身份聯盟進行身份驗證,其中 Claude Code GitHub Action 將工作流程的 GitHub OpenID Connect (OIDC) 令牌交換為透過 Claude Console 服務帳戶的 Claude API 存取。設定這些輸入:99若要完全避免儲存長期有效的 secret,請透過工作負載身分聯合(workload identity federation)進行身分驗證,Claude Code GitHub Action 會透過 Claude Console 服務帳戶,將工作流程的 GitHub OpenID Connect(OIDC)token 交換為 Claude API 存取權。請設定下列輸入:

100 100 

101* `anthropic_federation_rule_id`:聯盟規則 ID,`fdrl_...`101* `anthropic_federation_rule_id`:聯合規則 ID,`fdrl_...`

102* `anthropic_organization_id`:您的 Anthropic 組織 ID102* `anthropic_organization_id`:您的 Anthropic 組織 ID

103* `anthropic_service_account_id`:服務帳戶 ID,`svac_...`。可選,因為您在 Console 中建立的聯盟規則已經針對服務帳戶103* `anthropic_service_account_id`:服務帳戶 ID,`svac_...`。此項為選用,因為您在 Console 中建立的聯合規則已指定服務帳戶

104* `anthropic_workspace_id`:工作區 ID,`wrkspc_...`。當聯盟規則針對單個工作區時可選104* `anthropic_workspace_id`:工作區 ID,`wrkspc_...`。當聯合規則指定單一工作區時,此項為選用

105 105 

106授予工作流程 `id-token: write` 權限,Claude Code GitHub Action 需要它進行聯盟交換,即使您傳遞自己的 `github_token`。有關 Console 端設定,請參閱 [Claude Code GitHub Action 的設定指南](https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md)。106請授予工作流程 `id-token: write` 權限,即使您傳入自己的 `github_token`,Claude Code GitHub Action 仍需要此權限來進行聯合交換。Console 端的設定請參閱 [Claude Code GitHub Action 的設定指南](https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md)。

107 107 

108如需安全審查中的資料處理和保留問題,請參閱[資料使用](https://code.claude.com/docs/zh-TW/data-usage.md)和[安全性](https://code.claude.com/docs/zh-TW/security.md)。108關於安全性審查中的資料處理和保留問題,請參閱[資料使用](https://code.claude.com/docs/zh-TW/data-usage.md)和[安全性](https://code.claude.com/docs/zh-TW/security.md)。

109 109 

110### 解除安裝110### 解除安裝

111 111 

112若要移除 Claude Code GitHub Action,請撤銷適用於您的安裝的每個設定部分:112若要移除 Claude Code GitHub Action,請撤銷適用於您安裝的每個設定部分:

113 113 

114* **工作流程檔案**:從 `.github/workflows/` 中刪除使用 `anthropics/claude-code-action` 的工作流程。如果您使用了快速設定,請查找 `claude.yml`,如果您選擇了審查工作流程,請查找 `claude-code-review.yml`。刪除工作流程後,Claude Code GitHub Action 不再執行114* **工作流程檔案**:從 `.github/workflows/` 中刪除使用 `anthropics/claude-code-action` 的工作流程。如果您使用快速設定,請尋找 `claude.yml`,若您選擇了審查工作流程,也請尋找 `claude-code-review.yml`。刪除工作流程後,Claude Code GitHub Action 就不會再執行

115* **密鑰**:從儲存庫中刪除 `ANTHROPIC_API_KEY` 或 `CLAUDE_CODE_OAUTH_TOKEN` 密鑰,以及從組織級別的 Actions 密鑰(如果您[跨儲存庫共享它](#set-up-for-an-organization))。如果您刪除密鑰,它持有的認證保持有效。若要完全停用 API 金鑰,也請在 [Claude Console](https://platform.claude.com) 中刪除金鑰115* **Secret**:從儲存庫中刪除 `ANTHROPIC_API_KEY` 或 `CLAUDE_CODE_OAUTH_TOKEN` secret;如果您曾[跨儲存庫共用](#set-up-for-an-organization),也請從組織層級的 Actions secret 中刪除。刪除 secret 後,其所保存的憑證仍然有效。若要完全停用 API 金鑰,請同時在 [Claude Console](https://platform.claude.com) 中刪除該金鑰

116* **GitHub App**:在您的儲存庫或組織設定中的 GitHub Apps 下解除安裝 Claude GitHub App,但僅當您不將其用於另一個 Claude 功能(例如 Code Review 或 web 自動修復)時116* **GitHub App**:在儲存庫或組織設定的 GitHub Apps 下解除安裝 Claude GitHub App,但前提是您未將其用於其他 Claude 功能,例如 Code Review 或網頁版自動修正

117 117 

118如果您設定了[雲端提供者](https://code.claude.com/docs/zh-TW/github-actions-cloud-providers.md),也請刪除提供者密鑰,例如 `AWS_ROLE_TO_ASSUME`、`GCP_*` 密鑰或 `AZURE_*` 密鑰,並解除安裝自訂 GitHub App 及其 `APP_ID` 和 `APP_PRIVATE_KEY` 密鑰。118如果您設定了[雲端供應商](https://code.claude.com/docs/zh-TW/github-actions-cloud-providers.md),也請刪除供應商 secret,例如 `AWS_ROLE_TO_ASSUME`、`GCP_*` secret 或 `AZURE_*` secret,並解除安裝自訂 GitHub App 及其 `APP_ID` 和 `APP_PRIVATE_KEY` secret。

119 119 

120### GitHub App 權限120### GitHub App 權限

121 121 

122[Claude GitHub App](https://github.com/apps/claude) 由與 GitHub 整合的每個 Claude 功能共享,包括 Claude Code GitHub Action、[Code Review](https://code.claude.com/docs/zh-TW/code-review.md) 和 [Claude Code on the web 上的自動修復](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#auto-fix-pull-requests)。GitHub App 有一個涵蓋其所有功能的單一權限集,因此該集包括 Claude Code GitHub Action 不使用的某些權限。122[Claude GitHub App](https://github.com/apps/claude) 由所有與 GitHub 整合的 Claude 功能共用,包括 Claude Code GitHub Action、[Code Review](https://code.claude.com/docs/zh-TW/code-review.md),以及雲端工作階段中的[pull request 自動修正](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#auto-fix-pull-requests)。一個 GitHub App 只有一組涵蓋其所有功能的權限,因此這組權限包含部分 Claude Code GitHub Action 未使用的權限。

123 123 

124安裝應用程式時,您授予以下權限:124安裝此應用程式時,您會授予下列權限:

125 125 

126| 權限 | 存取 |126| 權限 | 存取權 |

127| - | - |127| - | - |

128| Actions | 讀取和寫入 |128| Actions | 讀取和寫入 |

129| Administration | 讀取 |129| Administration | 讀取 |


139| Statuses | 讀取 |139| Statuses | 讀取 |

140| Workflows | 讀取和寫入 |140| Workflows | 讀取和寫入 |

141 141 

142權限集也可以在使用它的功能之前變更。當應用程式請求它之前沒有的權限時,GitHub 會提示帳戶擁有者批准它,組織安裝的組織擁有者,安裝保持其舊權限直到他們這樣做。例如,當 Actions 存取從讀取變更為寫入時,應用程式可以重新執行工作流程而不僅查看執行和日誌,因此 GitHub 要求擁有者批准變更。142權限組也可能在使用它的功能推出之前就先變更。當應用程式請求先前沒有的權限時,GitHub 會提示帳戶擁有者核准(若為組織安裝,則為組織擁有者),在核准之前,安裝會維持原有的權限。例如,當 Actions 存取權從讀取變更為寫入時,應用程式就能重新執行工作流程,而不僅是檢視執行和日誌,因此 GitHub 會請擁有者核准此變更。

143 143 

144安裝應用程式時,您接受其完整權限集。GitHub 不允許您接受子集。如果您的組織僅需要 Claude Code GitHub Action 使用的權限,請按照 [Claude Code GitHub Action 的設定指南](https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md)建立具有 Contents、Issues 和 Pull requests 的自訂 GitHub App。自訂應用程式僅涵蓋 Claude Code GitHub Action。Code Review 和 web 自動修復仍需要官方應用程式。144安裝此應用程式時,您會接受其完整的權限組。GitHub 不允許您只接受其中一部分。如果您的組織要求僅授予 Claude Code GitHub Action 所使用的權限,請改為依照 [Claude Code GitHub Action 的設定指南](https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md),建立一個具有 Contents、Issues 和 Pull requests 權限的自訂 GitHub App。自訂應用程式僅涵蓋 Claude Code GitHub Action。Code Review 和網頁版自動修正仍需要官方應用程式。

145 145 

146有關 Claude Code GitHub Action 如何限制 Claude 對這些權限的操作的詳細資訊,請參閱[安全性文件](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md)。146關於 Claude Code GitHub Action 如何限制 Claude 使用這些權限所能執行的操作,請參閱[安全性文件](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md)。

147 147 

148## 互動和自動化模式148## 互動和自動化模式

149 149 


241 - uses: anthropics/claude-code-action@v1241 - uses: anthropics/claude-code-action@v1

242 with:242 with:

243 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}243 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

244 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"244 plugin_marketplaces: "https://github.com/anthropics/claude-plugins-official.git"

245 plugins: "code-review@claude-code-plugins"245 plugins: "code-review@claude-plugins-official"

246 prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"246 prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

247 claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'247 claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'

248```248```

Details

221 221 

222如果審查或 Anthropic 託管的雲端會話超時,您的 GHES 實例可能無法從 Anthropic 基礎設施訪問。確認您的防火牆允許來自 Anthropic 的[出站 IP 位址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses)的入站連接。[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中的會話從您的網路內部訪問 GHES,因此當其中一個無法克隆時,請改為檢查執行器自身的網路路徑。對於存儲庫選擇器和其他託管的預會話流程,請參閱[網路要求](#network-requirements)。222如果審查或 Anthropic 託管的雲端會話超時,您的 GHES 實例可能無法從 Anthropic 基礎設施訪問。確認您的防火牆允許來自 Anthropic 的[出站 IP 位址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses)的入站連接。[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中的會話從您的網路內部訪問 GHES,因此當其中一個無法克隆時,請改為檢查執行器自身的網路路徑。對於存儲庫選擇器和其他託管的預會話流程,請參閱[網路要求](#network-requirements)。

223 223 

224### 連線測試通過,但第二項測試失敗

225 

226第二項測試會以 Anthropic 託管的雲端工作階段所使用的方式連線到您的 GHES 實例。請找到您看到的訊息,以判斷應檢查防火牆還是重試:

227 

228* **`Connection test passed, but a second test failed.`**:如果您的實例位於防火牆之後,請允許 Anthropic 的所有[輸出 IP 位址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses),因為即使您的防火牆封鎖了其中部分位址,連線測試仍可能通過。您也可以在幾分鐘後重試。

229* **`Connection test passed, but a second test could not run.`**:請在幾分鐘後重試。

230 

231若要再次測試,請在 [**Organization settings > Git providers**](https://claude.ai/admin-settings/source-control#github-enterprise) 中開啟該連線的 **More options** 選單,然後選擇 **Test connection**。

232 

224### 會話啟動失敗,出現 `Unable to get organization UUID`233### 會話啟動失敗,出現 `Unable to get organization UUID`

225 234 

226Claude Code 無法從您的認證中讀取 claude.ai 組織。使用 `/login` 以您的 Team 或 Enterprise 組織中的帳戶登入,因為 GitHub Enterprise Server 支援僅限於這些方案。請參閱[無法取得組織 UUID](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#unable-to-get-organization-uuid)以了解原因和此狀態產生的其他訊息。235Claude Code 無法從您的認證中讀取 claude.ai 組織。使用 `/login` 以您的 Team 或 Enterprise 組織中的帳戶登入,因為 GitHub Enterprise Server 支援僅限於這些方案。請參閱[無法取得組織 UUID](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#unable-to-get-organization-uuid)以了解原因和此狀態產生的其他訊息。

Details

25 25 

26## 使用 Agent Platform 登入26## 使用 Agent Platform 登入

27 27 

28如果您有 Google Cloud 認證並想開始透過 Google Cloud 的 Agent Platform 使用 Claude Code,登入精靈會引導您完成整個過程。您只需在每個專案中完成一次 GCP 端的先決條件;精靈會處理 Claude Code 端的設定。28如果您擁有 Google Cloud 憑證,並希望開始透過 Google Cloud's Agent Platform 使用 Claude Code,登入精靈會引導您完成設定。GCP 端的先決條件每個專案只需完成一次;Claude Code 端則由精靈處理。

29 29 

30**1. 在您的 GCP 專案中啟用 Claude 模型**30**1. 在您的 GCP 專案中啟用 Claude 模型**

31 31 

32為您的專案[啟用 Google Cloud 的 Agent Platform API](#1-enable-agent-platform-api),然後在 [Google Cloud 的 Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 中要求存取您想要的 Claude 模型。請參閱 [IAM 設定](#iam-configuration)以了解您的帳戶需要的權限。32為您的專案[啟用 Google Cloud's Agent Platform API](#1-enable-agent-platform-api),然後在 [Google Cloud's Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 中請求存取您想使用的 Claude 模型。如需了解您的帳戶所需的權限,請參閱 [IAM 設定](#iam-configuration)。

33 33 

34**2. 啟動 Claude Code 並選擇 Google Cloud 的 Agent Platform**34**2. 啟動 Claude Code 並選擇 Google Cloud's Agent Platform**

35 35 

36執行 `claude`。在登入提示處,選擇**第三方平台**,然後選擇 **Google Vertex AI**,這是登入提示仍然用於 Google Cloud 的 Agent Platform 的標籤。如果您已經登入,執行 `/login` 以開啟相同的選單。36執行 `claude`。在登入提示中,選擇 **3rd-party platform**,然後選擇 **Google Vertex AI**,這是登入提示目前仍用於 Google Cloud's Agent Platform 的標籤。如果您已經登入,請執行 `/login` 以開啟相同的選單。

37 37 

38**3. 遵循精靈提示**38**3. 依照精靈提示操作**

39 39 

40選擇您如何向 Google Cloud 進行驗證:來自 `gcloud` 的應用程式預設認證、服務帳戶金鑰檔案,或已在您的環境中的認證。精靈會偵測您的專案和區域,驗證您的專案可以呼叫哪些 Claude 模型,並讓您固定它們。它會將結果儲存到您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)的 `env` 區塊,因此您不需要自己匯出環境變數。40選擇您向 Google Cloud 進行身分驗證的方式:來自 `gcloud` 的 Application Default Credentials、服務帳戶金鑰檔案,或環境中既有的憑證。精靈會詢問您的專案和區域,驗證您的專案可以呼叫哪些 Claude 模型,並讓您固定這些模型。精靈會將結果儲存到您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)的 `env` 區塊中,因此您不需要自行匯出環境變數。

41 41 

42登入後,您可以隨時執行 `/setup-vertex` 以重新開啟精靈並變更您的認證、專案、區域或模型固定。模型固定步驟會從您目前固定的模型開始。精靈會寫入 `~/.claude/settings.json`,或在設定 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars#variables) 時寫入 `$CLAUDE_CONFIG_DIR/settings.json`。42登入後,您可以隨時執行 `/setup-vertex` 重新開啟精靈,以變更您的憑證、專案、區域或模型固定設定。模型固定步驟會從您目前已固定的模型開始。精靈會寫入 `~/.claude/settings.json`,若已設定 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars#variables),則會寫入 `$CLAUDE_CONFIG_DIR/settings.json`。

43 43 

44## 區域設定44## 區域設定

45 45 

hooks-guide.md +74 −74

Details

73 73 

74按 `Esc` 返回 CLI。按 `Shift+Tab` 直到狀態列顯示 `⏸ manual mode on`,要求 Claude 執行需要權限的操作,然後切換離開終端機。您應該會收到桌面通知。74按 `Esc` 返回 CLI。按 `Shift+Tab` 直到狀態列顯示 `⏸ manual mode on`,要求 Claude 執行需要權限的操作,然後切換離開終端機。您應該會收到桌面通知。

75 75 

76## 您可以自動化的內容76## 您可以自動化的項目

77 77 

78Hooks 讓您在 Claude Code 生命週期的關鍵點執行程式碼:編輯後格式化檔案、在執行前阻止命令、當 Claude 需要輸入時發送通知、在工作階段開始時注入上下文等。有關 hook 事件的完整列表,請參閱 [Hooks 參考](https://code.claude.com/docs/zh-TW/hooks.md#hook-lifecycle)。78hook 讓您在 Claude Code 生命週期的關鍵時間點執行程式碼:在編輯後格式化檔案、在命令執行前加以封鎖、在 Claude 需要輸入時傳送通知、在工作階段開始時注入上下文等等。如需 hook 事件的完整清單,請參閱 [Hooks 參考](https://code.claude.com/docs/zh-TW/hooks.md#hook-lifecycle)。

79 79 

80每個範例都包含一個現成可用的配置區塊,您可以將其新增到[設定檔](#configure-hook-location)。80每個範例都包含一個可直接使用的設定區塊,您可以將其新增至[設定檔](#configure-hook-location)。

81 81 

82有關 hooks 執行單獨模型審查並將發現結果反饋到工作階段中的生產範例,請參閱 [`security-guidance` plugin 如何與 Claude Code 整合](https://code.claude.com/docs/zh-TW/security-guidance#how-the-plugin-integrates-with-claude-code)。82如需在實際環境中使用 hook 執行獨立模型審查並將發現結果回饋至工作階段的範例,請參閱 [`security-guidance` 外掛如何與 Claude Code 整合](https://code.claude.com/docs/zh-TW/security-guidance#how-the-plugin-integrates-with-claude-code)。

83 83 

84### 當 Claude 需要輸入時收到通知84### 在 Claude 需要輸入時收到通知

85 85 

86每當 Claude 完成工作並需要您的輸入時收到桌面通知,這樣您可以切換到其他任務而無需檢查終端。86每當 Claude 完成工作並需要您的輸入時,即可收到桌面通知,讓您可以切換至其他工作,而無需反覆查看終端機。

87 87 

88此 hook 使用 `Notification` 事件,Claude Code 會在 Claude 等待輸入或權限時觸發此事件。請參閱[每個通知類型何時觸發](https://code.claude.com/docs/zh-TW/hooks.md#notification)以了解確切的時機。88此 hook 使用 `Notification` 事件,Claude Code 會在 Claude 等待輸入或權限時觸發此事件。確切時機請參閱[各通知類型的觸發時機](https://code.claude.com/docs/zh-TW/hooks.md#notification)。

89 89 

90下面的每個標籤使用平台的原生通知命令。將此新增到 `~/.claude/settings.json`:90以下每個分頁都使用該平台原生的通知命令。將此內容新增至 `~/.claude/settings.json`:

91 91 

92**macOS**92**macOS**

93 93 


111 111 

112> **如果沒有出現通知**112> **如果沒有出現通知**

113>113>

114> `osascript` 透過內建的 Script Editor 應用程式路由通知。如果 Script Editor 沒有通知權限,命令會無聲地失敗,macOS 不會提示您授予它。114> `osascript` 會透過內建的 Script Editor 應用程式傳送通知。如果 Script Editor 沒有通知權限,該命令會靜默失敗,且 macOS 不會提示您授予權限。

115>115>

116> 在終端機中執行一次以使 Script Editor 出現在您的通知設定中:116> 在 Terminal 中執行此命令一次,讓 Script Editor 出現在您的通知設定中:

117>117>

118> ```bash theme={null}118> ```bash theme={null}

119> osascript -e 'display notification "test"'119> osascript -e 'display notification "test"'

120> ```120> ```

121>121>

122> 目前不會出現任何內容。開啟**系統設定 > 通知**,在列表中找到 **Script Editor**,並開啟**允許通知**。再次執行命令以確認測試通知出現。122> 此時還不會出現任何通知。開啟 **System Settings > Notifications**,在清單中找到 **Script Editor**,然後開啟 **Allow Notifications**。再次執行該命令,確認測試通知有出現。

123 123 

124**Linux**124**Linux**

125 125 


143 143 

144> **如果沒有出現通知**144> **如果沒有出現通知**

145>145>

146> `notify-send` 需要桌面通知守護程式,無頭伺服器、SSH 工作階段和大多數容器都沒有。首先直接測試命令:146> `notify-send` 需要桌面通知常駐程式,而無頭伺服器、SSH 工作階段和大多數容器都沒有此程式。請先直接測試該命令:

147>147>

148> ```bash theme={null}148> ```bash theme={null}

149> notify-send 'Claude Code' 'test'149> notify-send 'Claude Code' 'test'

150> ```150> ```

151>151>

152> 如果找不到命令,請在 Debian 和 Ubuntu 上安裝 `libnotify-bin` 套件,或安裝您的發行版的等效套件。152> 如果找不到該命令,請在 Debian 和 Ubuntu 上安裝 `libnotify-bin` 套件,或安裝您的發行版中的對應套件。

153 153 

154**Windows (PowerShell)**154**Windows (PowerShell)**

155 155 


171}171}

172```172```

173 173 

174> **如果沒有出現對話框**174> **如果沒有出現對話方塊**

175>175>

176> 此命令開啟對話框而不是螢幕角落的通知,因此對話框可能會在終端機視窗後面開啟。首先在 PowerShell 中直接測試命令。176> 此命令會開啟對話方塊,而非在螢幕角落顯示通知,因此對話方塊可能會在您的終端機視窗後方開啟。請先直接在 PowerShell 中測試該命令。

177>177>

178> 如果您在 WSL 內執行 Claude Code,`powershell.exe` 必須透過 Windows 互操作在您的 `PATH` 上可用。178> 如果您在 WSL 中執行 Claude Code,`powershell.exe` 必須透過 Windows interop 在您的 `PATH` 上可用。

179 179 

180空的 `matcher` 會在所有通知類型上觸發。若要僅在特定事件上觸發,請將其設定為以下其中一個值:180空的 `matcher` 會在所有通知類型上觸發。若只要在特定事件上觸發,請將其設為下列其中一個值:

181 181 

182| Matcher | 觸發時機 |182| Matcher | 觸發時機 |

183| :- | :- |183| :- | :- |

184| `permission_prompt` | Claude 需要您批准工具使用或沙箱命令的[網路請求](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation),且提示已等待約六秒 |184| `permission_prompt` | Claude 需要您核准工具使用或沙箱化命令的[網路請求](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation),且提示已等待約六秒 |

185| `idle_prompt` | Claude 完成回應約 60 秒前,且您未輸入任何內容 |185| `idle_prompt` | Claude 約 60 秒前完成回應,且您此後未曾輸入 |

186| `auth_success` | 驗證完成 |186| `auth_success` | 身分驗證完成 |

187| `elicitation_dialog` | MCP 伺服器開啟引導表單,且您未輸入約六秒 |187| `elicitation_dialog` | MCP 伺服器開啟 elicitation 表單,且您約六秒未輸入 |

188| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,且您未輸入約六秒 |188| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,且您約六秒未輸入 |

189| `elicitation_complete` | MCP 伺服器報告[URL 模式引導](https://code.claude.com/docs/zh-TW/hooks.md#elicitation-input)已完成 |189| `elicitation_complete` | MCP 伺服器回報 [URL 模式 elicitation](https://code.claude.com/docs/zh-TW/hooks.md#elicitation-input) 已完成 |

190| `elicitation_response` | MCP 引導回應被發送回伺服器 |190| `elicitation_response` | MCP elicitation 回應已傳回伺服器 |

191| `agent_needs_input` | 背景工作階段開始等待您的輸入,同時 [agent view](https://code.claude.com/docs/zh-TW/agent-view.md) 已開啟。也會在終端工作階段顯示您一個[代理團隊隊友的終端設定問題](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode)或自動模式的[分類器請求費用](https://code.claude.com/docs/zh-TW/auto-mode-classifier-billing.md)通知,且您未輸入約六秒時觸發 |191| `agent_needs_input` | 在 [agent view](https://code.claude.com/docs/zh-TW/agent-view.md) 開啟期間,背景工作階段開始等待您的輸入。當終端機工作階段向您顯示 [agent team 隊員的終端機設定問題](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode)或自動模式關於[分類器請求費用](https://code.claude.com/docs/zh-TW/auto-mode-classifier-billing.md)的通知,且您約六秒未輸入時,也會觸發 |

192| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](https://code.claude.com/docs/zh-TW/agent-view.md) 開啟時觸發 |192| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](https://code.claude.com/docs/zh-TW/agent-view.md) 開啟期間觸發 |

193| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暫停後繼續您的任務:在重設時,或更早當您在等待期間於 Claude Code 中執行的操作(例如新增使用額度、升級計畫或切換模型)使使用量再次可用時,但有[模型設定例外](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset) |193| `quota_auto_resume_fired` | 在 claude.ai 用量上限暫停您的工作後,Claude Code 繼續執行該工作:在重設時,或者當您在等待期間於 Claude Code 中執行的某些操作(例如新增用量點數、升級方案或切換模型)使用量再次可用時提早繼續,但有[模型設定的例外情況](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset) |

194| `quota_auto_resume_stale` | claude.ai 使用限制在您的電腦睡眠超過約 30 分鐘時重設。Claude Code 等待您按 `Enter` 而不是繼續。在較短的睡眠後,它會繼續並改為觸發 `quota_auto_resume_fired` |194| `quota_auto_resume_stale` | claude.ai 用量上限在您的電腦睡眠超過約 30 分鐘期間重設。Claude Code 會等待您按下 `Enter`,而不是繼續執行。若睡眠時間較短,則會繼續執行並改為觸發 `quota_auto_resume_fired` |

195| `quota_auto_resume_disabled` | Claude Code 結束其對 claude.ai 使用限制的等待而不繼續您的任務:[`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-TW/settings-reference#autocontinueatusagelimit) 已關閉,或重設在 Claude Code 自行啟動的等待期間移動超過 24 小時,繼續的任務持續觸發限制,或在到達模型之前阻止了繼續。當您按 `Esc` 或 `Ctrl+C` 或選擇**不自動繼續**時不觸發 |195| `quota_auto_resume_disabled` | Claude Code 結束對 claude.ai 用量上限的等待,且未繼續執行您的工作:[`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-TW/settings-reference#autocontinueatusagelimit) 已關閉,或在 Claude Code 自行開始的等待期間重設時間延後超過 24 小時、繼續執行的工作持續觸及上限,或繼續執行在到達模型之前遭到封鎖。當您按下 `Esc` 或 `Ctrl+C`,或選擇 **Don't continue automatically** 時不會觸發 |

196| `plugin_notification` | [mod](https://code.claude.com/docs/zh-TW/plugins/mods/api.md#show-something-without-starting-a-turn) 透過 `$.ui.notify` 發出通知。除非 mod 自行設定,否則 hook 的 `title` 為該 mod 的名稱 |196| `plugin_notification` | [mod](https://code.claude.com/docs/zh-TW/plugins/mods/api.md#show-something-without-starting-a-turn) 透過 `$.ui.notify` 發出通知。除非 mod 自行設定,否則 hook 的 `title` 為該 mod 的名稱 |

197 197 

198Claude Code 在終端和在 Claude Desktop、VS Code 擴充功能和其他透過 Agent SDK 回答權限請求的主機中以不同方式計時 `permission_prompt`。請參閱[每個通知類型何時觸發](https://code.claude.com/docs/zh-TW/hooks.md#notification)以了解兩種計時。198Claude Code 在終端機中,以及在 Claude Desktop、VS Code 擴充功能和其他透過 Agent SDK 回應權限請求的主機中,對 `permission_prompt` 的計時方式不同。兩種計時方式請參閱[各通知類型的觸發時機](https://code.claude.com/docs/zh-TW/hooks.md#notification)。

199 199 

200`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 匹配器需要 Claude Code v2.1.234 或更新版本。200`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` matcher 需要 Claude Code v2.1.234 或更新版本。

201 201 

202在終端工作階段中,沙箱命令的網路請求的 `permission_prompt` 需要 Claude Code v2.1.246 或更新版本。202在終端機工作階段中,針對沙箱化命令網路請求的 `permission_prompt` 需要 Claude Code v2.1.246 或更新版本。

203 203 

204隊友終端設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。204針對隊員終端機設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。

205 205 

206在 Claude Code 提示字元中輸入 `/hooks`,並確認 hook 出現在 `Notification` 之下。206在 Claude Code 提示字元中輸入 `/hooks`,並確認該 hook 出現在 `Notification` 下方。

207 207 

208### 編輯後自動格式化程式碼208### 在編輯後自動格式化程式碼

209 209 

210在 Claude 編輯的每個檔案上自動執行 [Prettier](https://prettier.io/),以便格式保持一致而無需手動干預。210在 Claude 編輯的每個檔案上自動執行 [Prettier](https://prettier.io/),讓格式保持一致,無需手動介入。

211 211 

212此 hook 使用 `PostToolUse` 事件搭配 `Edit|Write` 匹配器,因此它只在檔案編輯工具之後執行。該命令使用 [`jq`](https://jqlang.org/) 提取編輯的檔案路徑並將其傳遞給 Prettier。將此新增到您的專案根目錄中的 `.claude/settings.json`:212此 hook 使用帶有 `Edit|Write` matcher 的 `PostToolUse` 事件,因此只會在檔案編輯工具之後執行。該命令使用 [`jq`](https://jqlang.org/) 擷取已編輯的檔案路徑,並將其傳遞給 Prettier。將此內容新增至專案根目錄中的 `.claude/settings.json`:

213 213 

214```json theme={null}214```json theme={null}

215{215{


229}229}

230```230```

231 231 

232若要測試 hook,請要求 Claude 將帶有單引號字串的行新增到 JavaScript 檔案,然後開啟該檔案:使用 Prettier 的預設設定,hook 會將它們重寫為雙引號。232若要測試此 hook,請要求 Claude 在 JavaScript 檔案中新增一行包含單引號字串的程式碼,然後開啟該檔案:在 Prettier 的預設設定下,hook 會將其改寫為雙引號。

233 233 

234當 hook 成功時,Claude Code 在對話中不顯示任何內容。若要確認 hook 已執行,請檢查編輯的檔案是否已重新格式化,或參閱[檢查 hook 執行了什麼](#check-what-a-hook-did)。234hook 成功時,Claude Code 不會在對話中顯示任何內容。若要確認 hook 已執行,請檢查已編輯的檔案是否已重新格式化,或參閱[檢查 hook 執行了什麼](#check-what-a-hook-did)。

235 235 

236若要重新格式化特定檔案(無論它如何變更),包括當 `Bash` 命令重寫它時,請改用 [FileChanged](https://code.claude.com/docs/zh-TW/hooks.md#filechanged) hook。236若要在特定檔案發生任何變更時(包括 `Bash` 命令改寫它時)重新格式化該檔案,請改用 [FileChanged](https://code.claude.com/docs/zh-TW/hooks.md#filechanged) hook。

237 237 

238> [!NOTE]238> [!NOTE]

239>239>

240> 本頁上的 Bash 範例使用 `jq` 進行 JSON 解析。使用 `brew install jq`(macOS)、`apt-get install jq`(Debian 和 Ubuntu)安裝它,或參閱 [`jq` 下載](https://jqlang.org/download/)。240> 本頁的 Bash 範例使用 `jq` 進行 JSON 解析。在 macOS 上使用 `brew install jq` 安裝,在 Debian 和 Ubuntu 上使用 `apt-get install jq` 安裝,或參閱 [`jq` 下載](https://jqlang.org/download/)。

241 241 

242### 阻止編輯受保護的檔案242### 封鎖對受保護檔案的編輯

243 243 

244防止 Claude 修改敏感檔案,如 `.env`、`package-lock.json` 或 `.git/` 中的任何內容。Claude 會收到解釋編輯被阻止原因的回饋,因此它可以調整其方法。244防止 Claude 修改敏感檔案,例如 `.env`、`package-lock.json` 或 `.git/` 中的任何內容。Claude 會收到說明編輯遭封鎖原因的回饋,以便調整其做法。

245 245 

246此範例使用 hook 呼叫的單獨指令檔。該指令檢查目標檔案路徑是否與受保護的模式列表相符,並以代碼 2 退出以阻止編輯。246此範例使用由 hook 呼叫的獨立指令碼檔案。該指令碼會將目標檔案路徑與受保護模式清單進行比對,並以退出碼 2 結束來封鎖編輯。

247 247 

248**1. 建立 hook 指令**248**1. 建立 hook 指令碼**

249 249 

250將此儲存到 `.claude/hooks/protect-files.sh`:250將此內容儲存至 `.claude/hooks/protect-files.sh`:

251 251 

252```bash theme={null}252```bash theme={null}

253#!/bin/bash253#!/bin/bash


271exit 0271exit 0

272```272```

273 273 

274**2. 在 macOS 和 Linux 上使指令可執行**274**2. 在 macOS 和 Linux 上將指令碼設為可執行**

275 275 

276Hook 指令必須可執行,Claude Code 才能執行它們:276hook 指令碼必須是可執行的,Claude Code 才能執行它們:

277 277 

278```bash theme={null}278```bash theme={null}

279chmod +x .claude/hooks/protect-files.sh279chmod +x .claude/hooks/protect-files.sh


281 281 

282**3. 註冊 hook**282**3. 註冊 hook**

283 283 

284將 `PreToolUse` hook 新增到 `.claude/settings.json`,在任何 `Edit` 或 `Write` 工具呼叫之前執行指令:284在 `.claude/settings.json` 中新增一個 `PreToolUse` hook,在任何 `Edit` 或 `Write` 工具呼叫之前執行該指令碼:

285 285 

286```json theme={null}286```json theme={null}

287{287{


303 303 

304**4. 測試 hook**304**4. 測試 hook**

305 305 

306要求 Claude 將註解新增到您的 `.env` 檔案。Claude Code 在執行前阻止編輯,並將指令的 `Blocked:` 訊息作為回饋傳遞給 Claude。306要求 Claude 在您的 `.env` 檔案中新增註解。Claude Code 會在編輯執行前將其封鎖,並將指令碼的 `Blocked:` 訊息作為回饋傳遞給 Claude。

307 307 

308### 壓縮後重新注入上下文308### 在壓縮後重新注入上下文

309 309 

310當 Claude 的上下文視窗填滿時,壓縮會總結對話以釋放空間。這可能會遺失重要細節。使用帶有 `compact` 匹配器的 `SessionStart` hook 在每次壓縮後重新注入關鍵上下文。310當 Claude 的上下文視窗填滿時,壓縮會摘要對話以釋放空間。這可能會遺失重要細節。使用帶有 `compact` matcher 的 `SessionStart` hook,在每次壓縮後重新注入關鍵上下文。

311 311 

312Claude Code 將您的命令寫入 stdout 的任何純文字新增到 Claude 的上下文中。此範例提醒 Claude 專案慣例和最近的工作。將此新增到您的專案根目錄中的 `.claude/settings.json`:312Claude Code 會將您的命令寫入 stdout 的純文字新增至 Claude 的上下文中。此範例會提醒 Claude 專案慣例和近期工作。將此內容新增至專案根目錄中的 `.claude/settings.json`:

313 313 

314```json theme={null}314```json theme={null}

315{315{


329}329}

330```330```

331 331 

332您可以將 `echo` 替換為任何產生動態輸出的命令,如 `git log --oneline -5` 以顯示最近的提交。有關在每個工作階段開始時注入上下文,請考慮改用 [CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md)。有關環境變數,請參閱參考中的 [`CLAUDE_ENV_FILE`](https://code.claude.com/docs/zh-TW/hooks#persist-environment-variables)。332您可以將 `echo` 替換為任何產生動態輸出的命令,例如使用 `git log --oneline -5` 顯示近期提交。若要在每次工作階段開始時注入上下文,請考慮改用 [CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md)。關於環境變數,請參閱參考中的 [`CLAUDE_ENV_FILE`](https://code.claude.com/docs/zh-TW/hooks#persist-environment-variables)。

333 333 

334### 審計配置變更334### 稽核設定變更

335 335 

336追蹤工作階段期間設定或 skills 檔案何時變更。`ConfigChange` 事件在外部程序或編輯器修改配置檔案時觸發,因此您可以記錄變更以進行合規性檢查或阻止未授權的修改。336追蹤工作階段期間設定檔或 skill 檔案的變更時間。`ConfigChange` 事件會在外部程序或編輯器修改設定檔時觸發,因此您可以記錄變更以符合法規要求,或封鎖未經授權的修改。

337 337 

338此範例將每個變更附加到審計日誌。將此新增到 `~/.claude/settings.json`:338此範例會將每次變更附加至稽核日誌。將此內容新增至 `~/.claude/settings.json`:

339 339 

340```json theme={null}340```json theme={null}

341{341{


355}355}

356```356```

357 357 

358匹配器按配置類型篩選:`user_settings`、`project_settings`、`local_settings`、`policy_settings` 或 `skills`。要阻止變更生效,以代碼 2 退出或傳回 `{"decision": "block"}`。有關完整的輸入架構,請參閱 [ConfigChange 參考](https://code.claude.com/docs/zh-TW/hooks.md#configchange)。358matcher 依設定類型進行篩選:`user_settings`、`project_settings`、`local_settings`、`policy_settings` 或 `skills`。若要封鎖變更生效,請以退出碼 2 結束或傳回 `{"decision": "block"}`。完整的輸入 schema 請參閱 [ConfigChange 參考](https://code.claude.com/docs/zh-TW/hooks.md#configchange)。

359 359 

360若要確認 hook 記錄變更,請在工作階段執行時在另一個編輯器中編輯設定檔,然後開啟 `~/claude-config-audit.log`:hook 會為每個變更附加一行 JSON,包含時間戳記、來源和檔案路徑。360若要確認 hook 有記錄變更,請在工作階段執行期間於另一個編輯器中編輯設定檔,然後開啟 `~/claude-config-audit.log`:hook 會針對每次變更附加一行包含時間戳記、來源和檔案路徑的 JSON。

361 361 

362### 當目錄或檔案變更時重新載入環境362### 在目錄或檔案變更時重新載入環境

363 363 

364某些專案根據您所在的目錄設定不同的環境變數。[direnv](https://direnv.net/) 之類的工具在您的 shell 中自動執行此操作,但 Claude 的 Bash 工具不會自行選取這些變更。364有些專案會根據您所在的目錄設定不同的環境變數。像 [direnv](https://direnv.net/) 這類工具會在您的 shell 中自動完成此操作,但 Claude 的 Bash 工具不會自行取得這些變更。

365 365 

366配對 `SessionStart` hook 與 `CwdChanged` hook 可以修復此問題。`SessionStart` 載入您啟動時所在目錄的變數,`CwdChanged` 在 Claude 每次變更目錄時重新載入它們。兩者都寫入 `CLAUDE_ENV_FILE`,Claude Code 在每個 Bash 命令之前執行為指令碼前置。將此新增到 `~/.claude/settings.json`:366將 `SessionStart` hook 與 `CwdChanged` hook 搭配使用即可解決此問題。`SessionStart` 會載入您啟動時所在目錄的變數,而 `CwdChanged` 會在 Claude 每次變更目錄時重新載入它們。兩者都會寫入 `CLAUDE_ENV_FILE`,Claude Code 會在每個 Bash 命令之前將其作為指令碼前置內容執行。將此內容新增至 `~/.claude/settings.json`:

367 367 

368```json theme={null}368```json theme={null}

369{369{


392}392}

393```393```

394 394 

395在每個具有 `.envrc` 的目錄中執行一次 `direnv allow`,以便允許 direnv 載入它。如果您使用 devbox 或 nix 而不是 direnv,相同的模式適用於 `devbox shellenv` 或 `devbox global shellenv` 代替 `direnv export bash`。395在每個含有 `.envrc` 的目錄中執行一次 `direnv allow`,讓 direnv 獲准載入它。如果您使用 devbox 或 nix 而非 direnv,同樣的模式也適用,只需以 `devbox shellenv` 或 `devbox global shellenv` 取代 `direnv export bash`。

396 396 

397若要對特定檔案而不是每次目錄變更做出反應,請使用 `FileChanged` 搭配 `matcher` 列出要監視的檔案名稱(以 `|` 分隔)。建立監視清單時,Claude Code 會將此值分割為字面檔案名稱,而不是作為正規表達式進行評估。有關同一個值如何在檔案變更時也篩選要執行哪些 hook 群組,請參閱 [FileChanged](https://code.claude.com/docs/zh-TW/hooks.md#filechanged)。此範例監視工作目錄中的 `.envrc` 和 `.env`:397若要針對特定檔案而非每次目錄變更做出反應,請使用 `FileChanged` 並搭配列出要監看檔名的 `matcher`,各檔名以 `|` 分隔。建立監看清單時,Claude Code 會將此值拆分為字面檔名,而不是將其作為正規表示式求值。關於同一個值如何在檔案變更時篩選要執行的 hook 群組,請參閱 [FileChanged](https://code.claude.com/docs/zh-TW/hooks.md#filechanged)。此範例會監看工作目錄中的 `.envrc` 和 `.env`:

398 398 

399```json theme={null}399```json theme={null}

400{400{


414}414}

415```415```

416 416 

417有關輸入架構、`watchPaths` 輸出和 `CLAUDE_ENV_FILE` 詳細資訊,請參閱 [CwdChanged](https://code.claude.com/docs/zh-TW/hooks.md#cwdchanged) 和 [FileChanged](https://code.claude.com/docs/zh-TW/hooks.md#filechanged) 參考項目。417關於輸入 schema、`watchPaths` 輸出和 `CLAUDE_ENV_FILE` 詳細資訊,請參閱 [CwdChanged](https://code.claude.com/docs/zh-TW/hooks.md#cwdchanged) 和 [FileChanged](https://code.claude.com/docs/zh-TW/hooks.md#filechanged) 參考條目。

418 418 

419### 自動批准特定權限提示419### 自動核准特定權限提示

420 420 

421跳過您始終允許的工具呼叫的批准對話。此範例自動批准 `ExitPlanMode`,這是 Claude 在完成呈現計畫並要求繼續時呼叫的工具,因此您不會在每次計畫準備好時被提示。421針對您一律允許的工具呼叫略過核准對話方塊。此範例會自動核准 `ExitPlanMode`,這是 Claude 完成呈現計畫並請求繼續時所呼叫的工具,因此您不會在每次計畫就緒時都收到提示。

422 422 

423與上面的退出代碼範例不同,自動批准要求您的 hook 將 JSON 決策寫入 stdout。Claude Code 在即將要求您的權限時執行 `PermissionRequest` hooks,如果您的 hook 傳回 `"behavior": "allow"`,Claude Code 會代表您回答請求。423與上述使用退出碼的範例不同,自動核准需要您的 hook 將 JSON 決策寫入 stdout。Claude Code 會在即將向您請求權限時執行 `PermissionRequest` hook,如果您的 hook 傳回 `"behavior": "allow"`,Claude Code 便會代您回應該請求。

424 424 

425匹配器將 hook 的範圍限制為僅 `ExitPlanMode`,因此不會影響其他提示。將此新增到 `~/.claude/settings.json`:425matcher 將 hook 的範圍限定為僅 `ExitPlanMode`,因此不會影響其他提示。將此內容新增至 `~/.claude/settings.json`:

426 426 

427```json theme={null}427```json theme={null}

428{428{


442}442}

443```443```

444 444 

445當 hook 批准時,Claude Code 退出計畫模式並恢復進入計畫模式之前處於活動狀態的任何權限模式。文字記錄顯示「由 PermissionRequest hook 允許」,其中對話會出現。hook 路徑始終保持當前對話:它無法清除上下文並以對話可以執行的方式啟動新的實現工作階段。445當 hook 核准時,Claude Code 會退出 plan mode,並還原您進入 plan mode 之前啟用的權限模式。逐字稿會在原本應出現對話方塊的位置顯示「Allowed by PermissionRequest hook」。hook 路徑一律保留目前的對話:它無法像對話方塊那樣清除上下文並開始新的實作工作階段。

446 446 

447若要改為設定特定的權限模式,您的 hook 的輸出可以包含帶有 `setMode` 項目的 `updatedPermissions` 陣列。`mode` 值是任何權限模式,如 `default`、`acceptEdits` 或 `bypassPermissions`,`destination: "session"` 僅將其應用於當前工作階段。447若要改為設定特定的權限模式,您的 hook 輸出可以包含帶有 `setMode` 項目的 `updatedPermissions` 陣列。`mode` 值可以是任何權限模式,例如 `default`、`acceptEdits` 或 `bypassPermissions`,而 `destination: "session"` 只會將其套用於目前的工作階段。

448 448 

449> [!NOTE]449> [!NOTE]

450>450>

451> `bypassPermissions` 只有在您啟動工作階段時繞過模式已經可用的情況下才適用:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或[使用者、`--settings` 或受管設定](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"`。如果繞過模式已被 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-TW/permissions#managed-settings) 停用,或您是在[受限模式](https://code.claude.com/docs/zh-TW/cli-reference.md#cli-flags)中啟動工作階段,則它不適用。451> `bypassPermissions` 只有在您啟動工作階段時已可使用略過模式的情況下才會套用:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`,或在[使用者、`--settings` 或受管設定](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode)中設定 `permissions.defaultMode: "bypassPermissions"`。如果略過模式已被 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-TW/permissions#managed-settings) 停用,或您是在[受限模式](https://code.claude.com/docs/zh-TW/cli-reference.md#cli-flags)下啟動工作階段,則不會套用。

452>452>

453> Claude Code 永遠不會將其儲存為 `defaultMode`。453> Claude Code 永遠不會將其儲存為 `defaultMode`。

454 454 

455若要將工作階段切換到 `acceptEdits`,您的 hook 會將此 JSON 寫入 stdout:455若要將工作階段切換為 `acceptEdits`,您的 hook 會將此 JSON 寫入 stdout:

456 456 

457```json theme={null}457```json theme={null}

458{458{


468}468}

469```469```

470 470 

471保持匹配器盡可能狹窄。在 `.*` 上進行匹配或留空匹配器會自動批准每個工具權限提示,包括檔案寫入和 shell 命令。有關決策欄位的完整集合,請參閱 [PermissionRequest 參考](https://code.claude.com/docs/zh-TW/hooks.md#permissionrequest-decision-control)。471請盡可能縮小 matcher 的範圍。比對 `.*` 或將 matcher 留空,會自動核准每個工具權限提示,包括檔案寫入和 shell 命令。完整的決策欄位請參閱 [PermissionRequest 參考](https://code.claude.com/docs/zh-TW/hooks.md#permissionrequest-decision-control)。

472 472 

473## hooks 如何運作473## hooks 如何運作

474 474 

Details

332* 在您從終端機、桌面應用程式或 VS Code 擴充功能操作的本機工作階段中,背景命令沒有時間限制。在無人看管執行的工作階段中(例如 `-p` 執行或雲端工作階段),Claude Code 會在背景命令達到其[時間限制](https://code.claude.com/docs/zh-TW/tools-reference.md#time-limit-for-background-commands)時停止它332* 在您從終端機、桌面應用程式或 VS Code 擴充功能操作的本機工作階段中,背景命令沒有時間限制。在無人看管執行的工作階段中(例如 `-p` 執行或雲端工作階段),Claude Code 會在背景命令達到其[時間限制](https://code.claude.com/docs/zh-TW/tools-reference.md#time-limit-for-background-commands)時停止它

333* 由前景[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)啟動的背景命令在該子代理的執行結束時結束,無論是完成、失敗或被中斷;請參閱工具參考中的[背景命令停止時](https://code.claude.com/docs/zh-TW/tools-reference.md#when-a-background-command-stops)333* 由前景[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)啟動的背景命令在該子代理的執行結束時結束,無論是完成、失敗或被中斷;請參閱工具參考中的[背景命令停止時](https://code.claude.com/docs/zh-TW/tools-reference.md#when-a-background-command-stops)

334 334 

335若要關閉背景命令,請將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數設定為 `1`。設定後,您也會失去背景 subagent、背景分支 skill 以及 `Ctrl+B`。以 [bare 模式](https://code.claude.com/docs/zh-TW/headless.md#start-faster-with-bare-mode)啟動也有相同的效果。335若要關閉背景命令,請將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數設定為 `1`。設定後,您也會失去 `Ctrl+B` 快捷鍵以及[其他背景功能](https://code.claude.com/docs/zh-TW/env-vars.md#variables),例如[在背景執行 skill](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent)。以 [bare 模式](https://code.claude.com/docs/zh-TW/headless.md#start-faster-with-bare-mode)啟動也有相同的效果。

336 336 

337**常見的背景命令:**337**常見的背景命令:**

338 338 


738 738 

739```text theme={null}739```text theme={null}

740Usage limit reached · limit resets 3:45pm740Usage limit reached · limit resets 3:45pm

741Continuing automatically at 3:45pm · esc to cancel741Continuing automatically at 3:45pm · Esc to cancel

742```742```

743 743 

744任一行在這些文字之後都可能帶有更多內容,例如第一行的說明連結,或第二行的 `/usage-credits to continue now`。當等待自行開始時,對話中也會以一行 `Usage limit reached · continuing automatically at 3:45pm · esc to cancel` 記錄下來。744任一行在這些文字之後都可能帶有更多內容,例如第一行的說明連結,或第二行的 `/usage-credits to continue now`。當等待自行開始時,對話中也會以一行 `Usage limit reached · continuing automatically at 3:45pm · esc to cancel` 記錄下來。

745 745 

746保持工作階段開啟。接下來發生的情況取決於等待如何結束:746保持工作階段開啟。接下來發生的情況取決於等待如何結束:

747 747 

748* **在重設時**:第二行會變為 `Continuing shortly · esc to cancel`。接著對話中會出現 `Usage limit reset · continuing automatically`,Claude Code 會提示 Claude 從停止的地方接續任務。它不會重新傳送您的最後一條訊息。748* **在重設時**:第二行會變為 `Continuing shortly · Esc to cancel`。接著對話中會出現 `Usage limit reset · Continuing automatically`,Claude Code 會提示 Claude 從停止的地方接續任務。它不會重新傳送您的最後一條訊息。

749* **在您的電腦睡眠後**:如果睡眠超過約 30 分鐘,且上限在睡眠期間重設,第一行會顯示 `Your usage limit has reset`,第二行會顯示 `Press enter to continue`。按 `Enter` 繼續。若睡眠時間較短,或睡眠在重設前就已結束,Claude Code 會自動繼續。749* **在您的電腦睡眠後**:如果睡眠超過約 30 分鐘,且上限在睡眠期間重設,第一行會顯示 `Your usage limit has reset`,第二行會顯示 `Press enter to continue`。按 `Enter` 繼續。若睡眠時間較短,或睡眠在重設前就已結束,Claude Code 會自動繼續。

750* **提前**:當您使用 `/usage-credits` 完成新增 [使用額度](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)、在 `/upgrade` 後重新登入,或在等待期間使用 `/model` 切換模型時,Claude Code 會檢查使用量是否再次可用,如果可用則立即繼續。它不會在您在瀏覽器中自行進行的升級或購買後檢查。在 [`opusplan`](https://code.claude.com/docs/zh-TW/model-config#opusplan-model-setting) 和其他在不同模型上執行計畫模式的模型設定下,Claude Code 會改為等待重設。750* **提前**:當您使用 `/usage-credits` 完成新增 [使用額度](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)、在 `/upgrade` 後重新登入,或在等待期間使用 `/model` 切換模型時,Claude Code 會檢查使用量是否再次可用,如果可用則立即繼續。它不會在您在瀏覽器中自行進行的升級或購買後檢查。在 [`opusplan`](https://code.claude.com/docs/zh-TW/model-config#opusplan-model-setting) 和其他在不同模型上執行計畫模式的模型設定下,Claude Code 會改為等待重設。

751 751 

managed-mcp.md +10 −10

Details

510 510 

511當 `allowManagedMcpServersOnly` 為 `true` 時,來自使用者、專案和本機設定的允許清單會被忽略。拒絕清單仍然從每個設定範圍合併,因此使用者可以始終為自己阻止伺服器。511當 `allowManagedMcpServersOnly` 為 `true` 時,來自使用者、專案和本機設定的允許清單會被忽略。拒絕清單仍然從每個設定範圍合併,因此使用者可以始終為自己阻止伺服器。

512 512 

513## 限制如何呈現給使用者513## 限制如何向使用者呈現

514 514 

515如需了解當部署 `managed-mcp.json` 且工作階段也具有 `--mcp-config` 伺服器時,使用者在啟動時看到的內容,請參閱 [使用 managed-mcp.json 的獨佔控制](#exclusive-control-with-managed-mcp-json)。使用此表格來識別其他報告,並在推出變更前告知使用者預期情況:515關於已部署 `managed-mcp.json` 且工作階段同時具有 `--mcp-config` 伺服器時,使用者在啟動時會看到的內容,請參閱[使用 managed-mcp.json 進行專屬控制](#exclusive-control-with-managed-mcp-json)。請使用下表辨識其他回報情況,並在推出變更之前告知使用者可預期的結果:

516 516 

517| 限制 | 使用者看到的內容 |517| 限制 | 使用者看到的內容 |

518| :- | :- |518| :- | :- |

519| `managed-mcp.json` 存在且使用者執行 `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |519| `managed-mcp.json` 存在,且使用者執行 `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

520| `managed-mcp.json` 存在且可以在 Chrome 中執行 Claude 的使用者執行 `claude --chrome` | Claude Code 在啟動時結束,顯示 `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |520| `managed-mcp.json` 存在,且原本可以執行 Claude in Chrome 的使用者執行 `claude --chrome` | Claude Code 在啟動時結束並顯示 `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

521| 伺服器在拒絕清單上且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |521| 該伺服器位於拒絕清單中,且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

522| 伺服器不在允許清單上且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |522| 該伺服器不在允許清單中,且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

523| [`strictPluginOnlyCustomization`](https://code.claude.com/docs/zh-TW/settings-reference#strictpluginonlycustomization) 為 `true` 或包含 `mcp`,且使用者執行 `claude mcp add` | [`Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide`](https://code.claude.com/docs/zh-TW/errors#cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers) |523| [`strictPluginOnlyCustomization`](https://code.claude.com/docs/zh-TW/settings-reference#strictpluginonlycustomization) 為 `true` 或包含 `mcp`,且使用者執行 `claude mcp add` | [`Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide`](https://code.claude.com/docs/zh-TW/errors#cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers) |

524| 使用者在來自 `managedMcpServers` 的伺服器上執行 `claude mcp remove` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |524| 使用者對來自 `managedMcpServers` 的伺服器執行 `claude mcp remove` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |

525| 先前設定的伺服器現在被原則封鎖 | 伺服器從 `/mcp` 和 `claude mcp list` 消失 |525| 先前已設定的伺服器現在被政策封鎖 | 該伺服器會從 `/mcp` 和 `claude mcp list` 中消失 |

526| 伺服器在工作階段執行時被封鎖,且使用者選擇 **重新連線** 或在 `/mcp` 中將其重新開啟 | [`MCP server <name> is blocked by enterprise managed policy`](https://code.claude.com/docs/zh-TW/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |526| 伺服器在工作階段執行期間遭到封鎖,且使用者在 `/mcp` 中選取 **Reconnect** 或將其重新開啟 | [`MCP server <name> is blocked by enterprise managed policy`](https://code.claude.com/docs/zh-TW/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |

527 527 

528當伺服器無聲地消失時,使用者無法收到原則是原因的訊號,因此在推出新限制時,請告知受影響的使用者哪些伺服器被封鎖。528當伺服器無聲無息地消失時,使用者不會收到任何訊號得知原因是政策所致,因此在推出新限制時,請告知受影響的使用者哪些伺服器已被封鎖。

529 529 

530## 監控 MCP 使用530## 監控 MCP 使用

531 531 

Details

178* [`forceRemoteSettingsRefresh`](https://code.claude.com/docs/zh-TW/server-managed-settings)178* [`forceRemoteSettingsRefresh`](https://code.claude.com/docs/zh-TW/server-managed-settings)

179* `env`,跨管理員來源按變數合併:每個變數來自定義它的最高優先順序來源,因此較低來源填充較高來源未設定的變數。少數變數遵循自己的規則;[跨受管來源的每個金鑰例外](https://code.claude.com/docs/zh-TW/server-managed-settings.md#per-key-exceptions-across-managed-sources) 命名每一個。需要 Claude Code v2.1.223 或更新版本。在 v2.1.223 之前,Claude Code 僅應用選定來源的整個 `env` 區塊179* `env`,跨管理員來源按變數合併:每個變數來自定義它的最高優先順序來源,因此較低來源填充較高來源未設定的變數。少數變數遵循自己的規則;[跨受管來源的每個金鑰例外](https://code.claude.com/docs/zh-TW/server-managed-settings.md#per-key-exceptions-across-managed-sources) 命名每一個。需要 Claude Code v2.1.223 或更新版本。在 v2.1.223 之前,Claude Code 僅應用選定來源的整個 `env` 區塊

180 180 

181[閘道登入金鑰](#choose-a-delivery-mechanism) 遵循單獨的規則。Claude Code 永遠不會從伺服器管理的設定讀取它們,因此當伺服器管理的設定是選定的來源時,機器上具有原則金鑰的最高排名管理員來源仍然提供它們。在排名低於該來源的管理員來源中的值,或在 HKCU 登錄中的值,被忽略。

182 

183[`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 有自己的規則:其項目的 Scope 備註說明機器上設定的列表如何與伺服器管理的列表結合。需要 Claude Code v2.1.285 或更新版本。181[`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 有自己的規則:其項目的 Scope 備註說明機器上設定的列表如何與伺服器管理的列表結合。需要 Claude Code v2.1.285 或更新版本。

184 182 

185當管理員來源設定 `allowManagedMcpServersOnly` 或 `allowedMcpServers` 列表且該值不是生效的值時,`/status` 和 `claude doctor` 命名該來源和金鑰。183當管理員來源設定 `allowManagedMcpServersOnly` 或 `allowedMcpServers` 列表且該值不是生效的值時,`/status` 和 `claude doctor` 命名該來源和金鑰。

186 184 

185#### 哪個受管來源提供登入金鑰

186 

187在具有 MDM 原則或受管設定檔的機器上,Claude Code 會從該原則或檔案取得登入金鑰,即使是 [遠端設定](#how-claude-code-combines-managed-sources) 也設定的金鑰亦然。來自 claude.ai 管理主控台的設定屬於遠端設定,因此請在 MDM 原則或檔案中設定登入金鑰,例如 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid)。

188 

189如果機器同時具有 MDM 原則和受管設定檔,請使用 MDM 原則。當該原則設定任何 [原則金鑰](#how-claude-code-combines-managed-sources) 時,Claude Code 會忽略檔案中的登入金鑰,[即使在 `managedSourcesBehavior: "merge"` 下亦然](#compose-every-managed-source)。

190 

191登入金鑰為:

192 

193* `forceLoginOrgUUID`,以及設定為 `"claudeai"` 或 `"console"` 的 `forceLoginMethod`:如果原則或檔案省略任一金鑰,則適用遠端設定中的值。在每個用戶端都執行 v2.1.299 或更新版本之前,也請在 claude.ai 的 [伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md) 中設定這些金鑰

194* [閘道登入金鑰](#choose-a-delivery-mechanism):Claude Code 不會將遠端設定中的值用於閘道登入

195 

187### 組合每個受管來源196### 組合每個受管來源

188 197 

189要讓 Claude Code 應用您的組織提供的每個管理員來源,請在您部署的最高排名來源中將 [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 設定為 `"merge"`。Claude Code 僅從具有金鑰或原則金鑰的最高排名來源讀取該金鑰,因此較低來源無法選擇自己合併到上面的來源,永遠不會接收伺服器管理設定的機器也需要在其 MDM 設定檔中有該金鑰。使用者可寫的 HKCU 登錄永遠不會與另一個來源合併。需要 Claude Code v2.1.242 或更新版本。198要讓 Claude Code 應用您的組織提供的每個管理員來源,請在您部署的最高排名來源中將 [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 設定為 `"merge"`。Claude Code 僅從具有金鑰或原則金鑰的最高排名來源讀取該金鑰,因此較低來源無法選擇自己合併到上面的來源,永遠不會接收伺服器管理設定的機器也需要在其 MDM 設定檔中有該金鑰。使用者可寫的 HKCU 登錄永遠不會與另一個來源合併。需要 Claude Code v2.1.242 或更新版本。


199| 限制允許清單 | 從設定它的最高排名來源整體採用列表,不添加來自較低來源的項目 | `availableModels`、`allowedMcpServers`、`strictKnownMarketplaces`、`allowedChannelPlugins` 和 `fallbackModel` 鏈 |208| 限制允許清單 | 從設定它的最高排名來源整體採用列表,不添加來自較低來源的項目 | `availableModels`、`allowedMcpServers`、`strictKnownMarketplaces`、`allowedChannelPlugins` 和 `fallbackModel` 鏈 |

200| 整體採用的值 | 從設定它的最高排名來源整體採用值,不結合來自較低來源的項目或欄位 | `sandbox.credentials.awsPairs`、`sandbox.ripgrep` |209| 整體採用的值 | 從設定它的最高排名來源整體採用值,不結合來自較低來源的項目或欄位 | `sandbox.credentials.awsPairs`、`sandbox.ripgrep` |

201| 提供的 MCP 伺服器 | 結合來自每個來源的伺服器名稱;當兩個來源設定相同名稱時,應用較高排名來源的整個項目 | `managedMcpServers` |210| 提供的 MCP 伺服器 | 結合來自每個來源的伺服器名稱;當兩個來源設定相同名稱時,應用較高排名來源的整個項目 | `managedMcpServers` |

202| 僅從最高排名來源讀取的金鑰 | 忽略每個較低來源中的金鑰,即使最高排名來源未設定它 | 憑證幫助程式,例如 `apiKeyHelper`、登入 pin,例如 `forceLoginOrgUUID`、`modelPicker`、`permissions.defaultMode` |211| 僅從最高排名來源讀取的金鑰 | 忽略每個較低來源中的金鑰,即使最高排名來源未設定它 | `modelPicker`、`permissions.defaultMode`,以及憑證幫助程式,例如 `apiKeyHelper` |

203| `env` | 在任一設定下跨管理員來源按變數合併,如 [從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source) 所述 | |212| `env` | 在任一設定下跨管理員來源按變數合併,如 [從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source) 所述 | |

213| 登入金鑰 | 在任一設定下,從 MDM 原則或受管設定檔中帶有 [原則金鑰](#how-claude-code-combines-managed-sources) 的較高排名者取得,[優先於遠端設定](#which-managed-source-supplies-login-keys) | `forceLoginOrgUUID`、`forceLoginMethod` 和 [閘道登入金鑰](#choose-a-delivery-mechanism) |

204| 所有其他金鑰 | 從設定它的最高排名來源採用值 | `model`、`cleanupPeriodDays` |214| 所有其他金鑰 | 從設定它的最高排名來源採用值 | `model`、`cleanupPeriodDays` |

205 215 

206要確認機器上結合了哪些來源,[讀取 `/status` 中的 `Setting sources` 行](#read-the-source-in-/status);該部分說明每個標籤的含義。216要確認機器上結合了哪些來源,[讀取 `/status` 中的 `Setting sources` 行](#read-the-source-in-/status);該部分說明每個標籤的含義。


228Claude Code 也對父提供的值本身應用這些檢查:238Claude Code 也對父提供的值本身應用這些檢查:

229 239 

230* 當任何管理員來源設定 `allowManagedPermissionRulesOnly` 時,Claude Code 在讀取時刪除 [父提供的](https://code.claude.com/docs/zh-TW/claude-apps-gateway#restrict-parent-settings) 權限允許規則和 `additionalDirectories`,即使較高優先順序來源未設定金鑰。金鑰對您自己的權限規則的影響來自 Claude Code 應用的受管設定,或來自您選擇合併的父設定240* 當任何管理員來源設定 `allowManagedPermissionRulesOnly` 時,Claude Code 在讀取時刪除 [父提供的](https://code.claude.com/docs/zh-TW/claude-apps-gateway#restrict-parent-settings) 權限允許規則和 `additionalDirectories`,即使較高優先順序來源未設定金鑰。金鑰對您自己的權限規則的影響來自 Claude Code 應用的受管設定,或來自您選擇合併的父設定

231* Claude Code 強制執行它應用的受管設定中的 `forceLoginOrgUUID` 或 `allowedMcpServers` 值,並阻止父提供的值。在 MCP 允許清單鎖定之外,Claude Code 不應用的較低管理員來源中的值既不適用也不阻止父的。241* Claude Code 強制執行它應用的受管設定中的 `forceLoginOrgUUID` 或 `allowedMcpServers` 值,並阻止父提供的值。如果您提供多個受管來源,請參閱 [哪個來源提供 `forceLoginOrgUUID`](#which-managed-source-supplies-login-keys)。

232 242 

233 在 Claude Code v2.1.273 或更新版本上,當 `allowManagedMcpServersOnly` 開啟時,來自設定列表的最高排名管理員來源的 `allowedMcpServers` 列表適用並阻止父的,作為 [跨來源金鑰](#keys-read-from-every-admin-source)。父的列表僅在沒有管理員來源設定列表時適用。[`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 項目說明在 `"merge"` 下哪個來源提供每個金鑰。在 v2.1.223 之前,任何管理員來源中的值阻止父的243 在 Claude Code v2.1.273 或更新版本上,當 `allowManagedMcpServersOnly` 開啟時,來自設定列表的最高排名管理員來源的 `allowedMcpServers` 列表適用並阻止父的,作為 [跨來源金鑰](#keys-read-from-every-admin-source)。父的列表僅在沒有管理員來源設定列表時適用。[`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 項目說明在 `"merge"` 下哪個來源提供每個金鑰。在 v2.1.223 之前,任何管理員來源中的值阻止父的

234* 對於 `availableModels`,Claude Code 強制執行它應用的受管設定中的值,並阻止父提供的列表244* 對於 `availableModels`,Claude Code 強制執行它應用的受管設定中的值,並阻止父提供的列表

mcp.md +46 −19

Details

242/mcp242/mcp

243```243```

244 244 

245移除遠端伺服器時,Claude Code 也會刪除它為該伺服器儲存的 OAuth token 和用戶端註冊資訊。245當您移除遠端伺服器時,Claude Code 也會刪除為該伺服器儲存的 OAuth token 與用戶端註冊資訊。Claude Code 不會在核發這些 token 的授權伺服器上撤銷它們。若授權伺服器支援撤銷,要在該處撤銷 token,請在 `claude mcp remove <name>` 之前,於 shell 中執行 [`claude mcp logout <name>`](#authenticate-from-the-command-line)。

246 246 

247#### 伺服器狀態247#### 伺服器狀態

248 248 


252 252 

253以下清單中的狀態回報的是設定上的決定,而非連線嘗試,因此 Claude Code 會在不連線至伺服器的情況下印出它們:253以下清單中的狀態回報的是設定上的決定,而非連線嘗試,因此 Claude Code 會在不連線至伺服器的情況下印出它們:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``:來自 `.mcp.json`、您尚未核准的專案範圍伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請以互動方式執行 `claude` 來檢閱並核准它。255* ``⏸ Pending approval (run `claude` to approve)``:來自 `.mcp.json`、您尚未核准的專案範圍伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示此狀態。請以互動方式執行 `claude` 來檢閱並核准它。

256* `✘ Rejected (see disabledMcpjsonServers in settings)`:被 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目拒絕的 `.mcp.json` 伺服器。Claude Code 只會在 `claude mcp get <name>` 中顯示它。256* `✘ Rejected (see disabledMcpjsonServers in settings)`:被 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目拒絕的 `.mcp.json` 伺服器。Claude Code 只會在 `claude mcp get <name>` 中顯示它。

257* `⊘ Disabled for this project (re-enable via /mcp)`:專案的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 清單中列出的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請從 `/mcp` 面板重新啟用該伺服器。257* `⊘ Disabled for this project (re-enable via /mcp)`:專案的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 清單中列出的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請從 `/mcp` 面板重新啟用該伺服器。

258* `✘ Blocked by enterprise managed policy`:被您組織的某項政策拒絕的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示此狀態。被[受管 MCP 設定](https://code.claude.com/docs/zh-TW/managed-mcp.md#how-restrictions-appear-to-users)中的允許清單、拒絕清單或其他限制封鎖的伺服器,會在兩個命令中都被隱藏,而不是以此狀態顯示。請詢問您的管理員是哪項政策封鎖了該伺服器。

258 259 

259#### 專案伺服器核准與工作區信任260#### 專案伺服器核准與工作區信任

260 261 


471若要變更或關閉自動背景化:472若要變更或關閉自動背景化:

472 473 

473* 以毫秒為單位設定 [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數來變更閾值,或將其設為 `0` 以關閉自動背景化。設為 `0` 時,Claude 在互動式工作階段中也會[等待 MCP 任務](#make-claude-wait-for-the-result-of-an-mcp-task)474* 以毫秒為單位設定 [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數來變更閾值,或將其設為 `0` 以關閉自動背景化。設為 `0` 時,Claude 在互動式工作階段中也會[等待 MCP 任務](#make-claude-wait-for-the-result-of-an-mcp-task)

474* 將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`,這會將其與背景命令和背景 subagent 一併關閉475* 將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`,可關閉自動背景化和[背景命令](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)

475 476 

476有些呼叫永遠不會移至背景:477有些呼叫永遠不會移至背景:

477 478 


828 829 

829Claude Code 支援在 `.mcp.json` 檔案中展開環境變數,讓團隊能夠共享設定,同時保有針對特定機器路徑與 API 金鑰等敏感值的彈性。830Claude Code 支援在 `.mcp.json` 檔案中展開環境變數,讓團隊能夠共享設定,同時保有針對特定機器路徑與 API 金鑰等敏感值的彈性。

830 831 

831#### 支援的語法832您可以在伺服器的 `command`、`args`、`env`、`url` 或 `headers` 值中參照環境變數,形式有以下兩種:

832 833 

833* `${VAR}`:展開為環境變數 `VAR` 的值834* `${VAR}`:展開為環境變數 `VAR` 的值

834* `${VAR:-default}`:若已設定 `VAR` 則展開為 `VAR`,否則使用 `default`835* `${VAR:-default}`:若已設定 `VAR`,則展開為 `VAR` 的值;若未設定,則展開為 `default`

835 

836#### 展開位置

837 

838環境變數可在以下位置展開:

839 

840* `command`:伺服器執行檔路徑

841* `args`:命令列引數

842* `env`:傳遞給伺服器的環境變數

843* `url`:用於 HTTP 伺服器類型

844* `headers`:用於 HTTP 伺服器身分驗證

845 836 

846#### 變數展開範例837#### 變數展開範例

847 838 

839在此伺服器項目中,URL 為 `API_BASE_URL` 的值後接 `/mcp`,並以 `https://api.example.com` 作為預設值,而 API 金鑰則來自 `API_KEY`:

840 

848```json theme={null}841```json theme={null}

849{842{

850 "mcpServers": {843 "mcpServers": {


863 856 

864若參照的環境變數未設定且沒有預設值,設定仍會載入:Claude Code 會在 `claude mcp list` 輸出中針對該伺服器回報缺少變數的警告,並直接使用未展開的 `${VAR}` 文字。請設定該變數或加入 `:-default` 備援值,讓伺服器以您預期的值啟動。在遠端伺服器的 `url` 與 `headers` 中,某些憑證變數則會[讀取為空值](#credential-variables-that-read-as-empty),且不會有警告。857若參照的環境變數未設定且沒有預設值,設定仍會載入:Claude Code 會在 `claude mcp list` 輸出中針對該伺服器回報缺少變數的警告,並直接使用未展開的 `${VAR}` 文字。請設定該變數或加入 `:-default` 備援值,讓伺服器以您預期的值啟動。在遠端伺服器的 `url` 與 `headers` 中,某些憑證變數則會[讀取為空值](#credential-variables-that-read-as-empty),且不會有警告。

865 858 

859#### 設定為空字串的變數

860 

861若您將變數設定為空字串,該變數會被視為已設定,因此 `${VAR:-default}` 參照會展開為空字串,而非 `default`。以[範例伺服器](#example-with-variable-expansion)為例,若您將 `API_BASE_URL` 設定為空字串,其 `url` 會變成 `/mcp`,而 `claude mcp list` 會回報 `'url' is not a valid URL`。若要使用預設值,請取消設定該變數,而非將其設定為空字串。

862 

866#### 讀取為空值的憑證變數863#### 讀取為空值的憑證變數

867 864 

868在遠端伺服器的 `url` 與 `headers` 中,Claude Code 會將環境中的憑證變數讀取為空值,而不會展開它們。這可防止專案的 `.mcp.json` 或外掛將您的 Claude Code 或雲端供應商憑證傳送至其指定的伺服器。若您寫入 `Bearer ${ANTHROPIC_AUTH_TOKEN}`,伺服器會收到不含憑證的 `Bearer `,並拒絕該請求,通常會回傳 `401`。Claude Code 會將其回報為連線失敗。865在遠端伺服器的 `url` 與 `headers` 中,Claude Code 會將環境中的憑證變數讀取為空值,而不會展開它們。這可防止專案的 `.mcp.json` 或外掛將您的 Claude Code 或雲端供應商憑證傳送至其指定的伺服器。若您寫入 `Bearer ${ANTHROPIC_AUTH_TOKEN}`,伺服器會收到不含憑證的 `Bearer `,並拒絕該請求,通常會回傳 `401`。Claude Code 會將其回報為連線失敗。


1146 1143 

1147如果該範圍不在您的固定 `oauth.scopes` 中,請新增它,然後執行 `/mcp` 並再次驗證伺服器。Claude Code 請求固定範圍而不是伺服器指出的範圍,因此如果您在不新增它的情況下再次驗證,您獲得的 token 仍然缺少它。1144如果該範圍不在您的固定 `oauth.scopes` 中,請新增它,然後執行 `/mcp` 並再次驗證伺服器。Claude Code 請求固定範圍而不是伺服器指出的範圍,因此如果您在不新增它的情況下再次驗證,您獲得的 token 仍然缺少它。

1148 1145 

1146### 對位於需驗證之代理伺服器後方的伺服器使用 OAuth

1147 

1148如果您的 MCP 伺服器位於會檢查其自身標頭的代理伺服器或閘道後方並使用 OAuth,當 OAuth 請求未附帶該標頭時,登入會失敗。透過代理伺服器登入需要 Claude Code v2.1.299 或更新版本,且標頭和登入都必須設定:

1149 

1150* **代理伺服器的標頭**:使用 [`--header`](#option-1-add-a-remote-http-server)、`headers` 欄位或 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 傳遞,並使用代理伺服器讀取的名稱

1151* **OAuth 登入**:不要將 `Authorization` 放入已設定的標頭中,然後在您的 shell 中使用 `claude mcp login <name>` 登入。如果您設定了 `Authorization` 標頭,Claude Code 會將其作為伺服器的憑證,不會為該伺服器回退到 OAuth。

1152 

1149### 使用動態標頭進行自訂身分驗證1153### 使用動態標頭進行自訂身分驗證

1150 1154 

1151如果您的 MCP 伺服器使用 OAuth 以外的身分驗證方案,例如 Kerberos、短期 token 或內部 SSO,請使用 `headersHelper` 在連線時產生請求標頭。Claude Code 執行命令並將其輸出合併到連線標頭中。1155當 Kerberos、短期 token 或內部 SSO 等身分驗證需要在連線時產生標頭時,請將伺服器的 `headersHelper` 設定為一個命令。Claude Code 會在連線時執行它,並將其輸出合併到它傳送的標頭中。此範例使用指令碼:

1152 1156 

1153```json theme={null}1157```json theme={null}

1154{1158{


1552 1556 

1553## 具有無效輸入綱要的工具1557## 具有無效輸入綱要的工具

1554 1558 

1555Claude API 會檢查請求中每個工具的輸入綱要,當任何一個綱要失敗時,會拒絕整個請求並返回 400 錯誤。Claude Code 在載入伺服器的工具時會自行執行 API 的兩項檢查,並排除每個會失敗的工具,以便伺服器的其他工具繼續運作:1559> [!NOTE]

1560>

1561> 如果您的工作階段因按位置指名工具的 400 錯誤而失敗,請依照[工具輸入 schema 無效](https://code.claude.com/docs/zh-TW/errors.md#tool-input-schema-is-invalid)中的步驟操作。

1562 

1563如果您的 MCP 伺服器中某個工具的輸入 schema 違反了 API 強制執行的兩項規則之一,Claude Code 會排除該工具。伺服器的其他工具不受影響。Claude Code 在載入伺服器的工具時會檢查這兩項規則:

1556 1564 

1557* 頂層屬性名稱必須為 1 到 64 個字元長,且只能使用 ASCII 字母和數字、`_`、`.` 和 `-`1565* 頂層屬性名稱必須為 1 到 64 個字元長,且只能使用 ASCII 字母和數字、`_`、`.` 和 `-`

1558* 綱要必須對 JSON Schema draft 2020-12 元綱要有效。Claude Code 會對未宣告 `$schema` 的綱要和宣告 draft 2020-12 的綱要套用此檢查。宣告任何其他方言的綱要會跳過此檢查,但上述屬性名稱檢查仍然適用1566* 綱要必須對 JSON Schema draft 2020-12 元綱要有效。Claude Code 會對未宣告 `$schema` 的綱要和宣告 draft 2020-12 的綱要套用此檢查。宣告任何其他方言的綱要會跳過此檢查,但上述屬性名稱檢查仍然適用

1559 1567 

1560當 Claude Code 排除一個工具時,它會在伺服器的日誌中記錄原因,並告訴 Claude 它排除了哪些工具以及原因,以便您可以詢問 Claude 為什麼工具遺失。如果您修復伺服器上的綱要,下次 Claude Code 載入伺服器的工具時,該工具就會恢復。1568當 Claude Code 排除一個工具時,它會在伺服器的日誌中記錄原因,並告訴 Claude 它排除了哪些工具以及原因,以便您可以詢問 Claude 為什麼工具遺失。如果您修復伺服器上的綱要,下次 Claude Code 載入伺服器的工具時,該工具就會恢復。

1561 1569 

1562Claude Code 透過從 Anthropic 取得的功能旗標來開啟排除功能。在[停用旗標取得的部署](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)上,或在旗標從未到達的機器上(例如隔離的機器),Claude Code 仍會執行檢查並在伺服器的日誌中記錄哪個工具會被拒絕,但仍會將工具的綱要傳送給 API。API 會拒絕包含該綱要的請求,並[返回 400 錯誤,按位置命名工具](https://code.claude.com/docs/zh-TW/errors.md#tool-input-schema-is-invalid)。在 v2.1.216 之前,沒有部署執行這些檢查。1570當[功能旗標取得](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)關閉或旗標從未到達時(例如在隔離的機器上),違反規則的工具不會被排除:

1571 

1572* Claude 會取得未經變更的工具,而伺服器的日誌會針對該工具記錄 `input schema would be rejected by the Anthropic API`

1573* 如果 API 隨後拒絕該 schema,請參閱 [API 拒絕其輸入 schema 的工具](#tools-whose-input-schema-the-api-refuses)

1574 

1575在 v2.1.216 之前,沒有部署執行這些檢查。

1563 1576 

1564[根層級組合子處理](#tool-input-schemas-with-a-root-level-combinator)是獨立的,當旗標取得關閉或旗標從未到達時,會保持自己的行為。1577[根層級組合子處理](#tool-input-schemas-with-a-root-level-combinator)是獨立的,當旗標取得關閉或旗標從未到達時,會保持自己的行為。

1565 1578 

1579### API 拒絕其輸入 schema 的工具

1580 

1581如果除錯日誌中的某一行包含 `the API refused this tool's input schema`,該行指名的是 API 在請求中拒絕其 schema 的工具。Claude Code 會以不帶參數的方式宣告該工具,並重新傳送該請求。

1582 

1583* **如果您的工作階段因按位置指名工具的 400 錯誤而失敗**:請依照[工具輸入 schema 無效](https://code.claude.com/docs/zh-TW/errors.md#tool-input-schema-is-invalid)中的步驟操作

1584* **如果您使用該伺服器**:您不需要執行任何操作。Claude 仍然可以呼叫該工具,但看不到其參數

1585* **如果您維護該伺服器**:請在伺服器上修復該工具的輸入 schema。日誌行以 `The API said:` 及 API 拒絕該 schema 的原因結尾。請驗證伺服器收到的引數,因為 Claude 是在看不到其參數的情況下呼叫該工具

1586 

1587在 v2.1.300 之前,每個包含被拒絕 schema 的回合都會因[按位置指名工具的 400 錯誤](https://code.claude.com/docs/zh-TW/errors.md#tool-input-schema-is-invalid)而失敗。

1588 

1566## 名稱超過 128 個字元的工具1589## 名稱超過 128 個字元的工具

1567 1590 

1568如果 `/mcp` 列出了 Claude 無法呼叫的工具,請檢查該工具的完整名稱是否超過 128 個字元。在工作階段中執行 `/mcp` 並選取該工具,即可查看其完整名稱,例如 `mcp__<server>__<tool>`。當 MCP 工具的完整名稱超過 128 個字元時,Claude Code 會將其排除在傳送給 Claude 的工具之外。Claude API 會拒絕包含此類工具的請求,因此排除該工具可讓伺服器的其他工具正常運作。1591如果 `/mcp` 列出了 Claude 無法呼叫的工具,請檢查該工具的完整名稱是否超過 128 個字元。在工作階段中執行 `/mcp` 並選取該工具,即可查看其完整名稱,例如 `mcp__<server>__<tool>`。當 MCP 工具的完整名稱超過 128 個字元時,Claude Code 會將其排除在傳送給 Claude 的工具之外。Claude API 會拒絕包含此類工具的請求,因此排除該工具可讓伺服器的其他工具正常運作。


1709 1732 

1710在 v2.1.296 之前,較短的限制為 2,048 個字元;在 v2.1.295 之前,該限制適用於每個工具描述,包括透過工具搜尋載入的描述。1733在 v2.1.296 之前,較短的限制為 2,048 個字元;在 v2.1.295 之前,該限制適用於每個工具描述,包括透過工具搜尋載入的描述。

1711 1734 

1712Anthropic 在 `api.anthropic.com` 託管的部分 MCP 伺服器,其描述和指令會完整傳送給 Claude。若要變更工作階段中其他 MCP 伺服器的限制,請將 [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](https://code.claude.com/docs/zh-TW/env-vars#variables) 設定為字元數。您設定的數字會取代這兩個限制:例如 `8192` 會提高較短的限制並降低較長的限制。此變數需要 Claude Code v2.1.280 或更新版本。1735#### 變更描述長度限制

1736 

1737若要為工作階段中的 MCP 伺服器變更 4,096 和 16,384 個字元的[預設限制](#for-mcp-server-authors),請將 [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](https://code.claude.com/docs/zh-TW/env-vars#variables) 設定為字元數。Claude Code 會將該數字同時用於這兩個限制。例如,設定為 `8192` 時,會提高伺服器指令和預先載入之工具描述的 4,096 字元限制,並降低透過工具搜尋載入之工具描述的 16,384 字元限制。此變數需要 Claude Code v2.1.280 或更新版本。

1738 

1739Anthropic 在 `api.anthropic.com` 託管的部分 MCP 伺服器,其描述和指令會完整傳送給 Claude,設定此變數也不會截斷它們。

1713 1740 

1714#### 標記工具為預先載入或保持延遲1741#### 標記工具為預先載入或保持延遲

1715 1742 

Details

65| `✘ Connection error` | 連接嘗試拋出錯誤。請參閱[疑難排解](#troubleshooting) |65| `✘ Connection error` | 連接嘗試拋出錯誤。請參閱[疑難排解](#troubleshooting) |

66| ``⏸ Pending approval (run `claude` to approve)`` | 您尚未批准的專案範圍伺服器。請參閱[直接編輯 .mcp.json](#edit-mcp-json-directly) |66| ``⏸ Pending approval (run `claude` to approve)`` | 您尚未批准的專案範圍伺服器。請參閱[直接編輯 .mcp.json](#edit-mcp-json-directly) |

67| `⊘ Disabled for this project (re-enable via /mcp)` | 由專案的 `disabledMcpServers` 清單為此專案關閉的伺服器。請參閱[停用伺服器而不移除它](https://code.claude.com/docs/zh-TW/mcp.md#disable-a-server-without-removing-it) |67| `⊘ Disabled for this project (re-enable via /mcp)` | 由專案的 `disabledMcpServers` 清單為此專案關閉的伺服器。請參閱[停用伺服器而不移除它](https://code.claude.com/docs/zh-TW/mcp.md#disable-a-server-without-removing-it) |

68| `✘ Blocked by enterprise managed policy` | 您組織的某項原則封鎖了此伺服器,因此 Claude Code 不會連接。請詢問您的管理員是哪一項原則。請參閱[伺服器狀態](https://code.claude.com/docs/zh-TW/mcp.md#server-status) |

68 69 

69某些舊版 Windows 主控台,例如 Windows 10 上的預設主控台,不支援這些 Unicode 字形,並顯示 `√` 和 `×` 代替 `✔` 和 `✘`。70某些舊版 Windows 主控台,例如 Windows 10 上的預設主控台,不支援這些 Unicode 字形,並顯示 `√` 和 `×` 代替 `✔` 和 `✘`。

70 71 

model-config.md +19 −2

Details

679在終端機提示詞中輸入時,此字詞也可以將該回合提高至 `xhigh` effort。當它可以這麼做時,此字詞會以彩虹色顯示。需要 Claude Code v2.1.311 或更新版本。如果您開始新回合時此字詞未以彩虹色顯示,請嘗試下列其中一項:679在終端機提示詞中輸入時,此字詞也可以將該回合提高至 `xhigh` effort。當它可以這麼做時,此字詞會以彩虹色顯示。需要 Claude Code v2.1.311 或更新版本。如果您開始新回合時此字詞未以彩虹色顯示,請嘗試下列其中一項:

680 680 

681* 在不以 `/` 開頭的提示詞中,於引號、括號、路徑或命令等任何內容之外重新輸入它681* 在不以 `/` 開頭的提示詞中,於引號、括號、路徑或命令等任何內容之外重新輸入它

682* 如果 `CLAUDE_CODE_EFFORT_LEVEL` 設定為低於 `xhigh`,請取消設定它、將您自己的 [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) 提高至 `xhigh` 或以上,或請組織管理員提高您的[組織限制](#organization-effort-limits)682* 如果 `CLAUDE_CODE_EFFORT_LEVEL` 設定為低於 `xhigh`,請取消設定它。或者將您自己的 [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) 提高至 `xhigh` 或以上,或請組織管理員提高您的[組織限制](#organization-effort-limits)

683* 在工作階段中執行 `/model` 以切換至 Opus 5.5、Sonnet 5.5、Haiku 5.5 或 Fable 5.1 模型。在此字詞無法提高回合等級的情況下(例如在 Amazon Bedrock 上),請改為[設定 effort 等級](#set-the-effort-level)683* 在工作階段中執行 `/model` 以切換至 Opus 5.5、Sonnet 5.5、Haiku 5.5 或 Fable 5.1 模型。在此字詞無法提高回合等級的情況下(例如在 Amazon Bedrock 上),請改為[設定 effort 等級](#set-the-effort-level)

684 684 

685#### 設定 effort 等級685#### 設定 effort 等級


689* **`/effort`**:不帶引數執行 `/effort` 以開啟互動式滑桿,在 `/effort` 後接等級名稱以直接設定,或執行 `/effort auto` 以清除您為目前模型儲存的等級689* **`/effort`**:不帶引數執行 `/effort` 以開啟互動式滑桿,在 `/effort` 後接等級名稱以直接設定,或執行 `/effort auto` 以清除您為目前模型儲存的等級

690* **在 `/model` 中**:選擇模型時,使用左/右方向鍵調整 effort 滑桿690* **在 `/model` 中**:選擇模型時,使用左/右方向鍵調整 effort 滑桿

691* **`--effort` 旗標**:啟動 Claude Code 時傳入等級名稱,為單一工作階段設定691* **`--effort` 旗標**:啟動 Claude Code 時傳入等級名稱,為單一工作階段設定

692* **環境變數**:將 `CLAUDE_CODE_EFFORT_LEVEL` 設定為等級名稱或 `auto`692* **環境變數**:將 `CLAUDE_CODE_EFFORT_LEVEL` 設定為等級名稱。若要讓 Claude Code [不傳送 effort 等級](#send-no-effort-level),請改為將其設定為 `auto` 或 `unset`

693* **設定**:在 [`modelSettings`](https://code.claude.com/docs/zh-TW/settings-reference#modelsettings) 中設定各模型的等級,或將 [`effortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#effortlevel) 設定為 `low`、`medium`、`high` 或 `xhigh`,作為沒有設定等級之模型的預設值。這兩個鍵都不接受 `max` 作為等級,而 `ultracode` 有自己的 [`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 鍵693* **設定**:在 [`modelSettings`](https://code.claude.com/docs/zh-TW/settings-reference#modelsettings) 中設定各模型的等級,或將 [`effortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#effortlevel) 設定為 `low`、`medium`、`high` 或 `xhigh`,作為沒有設定等級之模型的預設值。這兩個鍵都不接受 `max` 作為等級,而 `ultracode` 有自己的 [`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 鍵

694* **從已連線的裝置**:在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md#what-connected-devices-see) 工作階段中,從手機或瀏覽器上的 effort 控制項選擇等級。該等級僅適用於目前的工作階段。需要 Claude Code v2.1.234 或更新版本694* **從已連線的裝置**:在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md#what-connected-devices-see) 工作階段中,從手機或瀏覽器上的 effort 控制項選擇等級。該等級僅適用於目前的工作階段。需要 Claude Code v2.1.234 或更新版本

695* **Skill 和 subagent frontmatter**:在 [skill](https://code.claude.com/docs/zh-TW/skills.md#frontmatter-reference) 或 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#supported-frontmatter-fields) markdown 檔案中設定 `effort`,以在該 skill 或 subagent 執行時覆寫 effort 等級695* **Skill 和 subagent frontmatter**:在 [skill](https://code.claude.com/docs/zh-TW/skills.md#frontmatter-reference) 或 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#supported-frontmatter-fields) markdown 檔案中設定 `effort`,以在該 skill 或 subagent 執行時覆寫 effort 等級


711 711 

712在 v2.1.242 之前,Claude Code 可能會將 `/effort` 本身排入佇列直到回合結束,而在不[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中(例如在[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)上)則一律如此。712在 v2.1.242 之前,Claude Code 可能會將 `/effort` 本身排入佇列直到回合結束,而在不[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中(例如在[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)上)則一律如此。

713 713 

714#### 不傳送 effort 等級

715 

716當 Claude Code 未向[支援的模型](#adjust-effort-level)傳送 effort 等級時,會套用 [API 的預設值](https://platform.claude.com/docs/en/build-with-claude/effort),而非 Claude Code 的預設值。若要讓 Claude Code 不傳送任何等級,請從匯出 `CLAUDE_CODE_EFFORT_LEVEL` 且值為 `auto` 或 `unset`(兩者效果相同)的 shell 啟動 `claude`:

717 

718```bash theme={null}

719export CLAUDE_CODE_EFFORT_LEVEL=auto

720```

721 

722未傳送任何等級時,工作階段標頭和頁尾不會顯示 effort 等級。若要確認未傳送任何等級,請在 Claude Code 提示字元執行 `/effort status`:

723 

724* **`Effort level: auto`**:未傳送任何 effort 等級。

725* **`Effort level: auto (currently <level>)`**:仍會傳送等級。如果低於 `max` 的 [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) 設定適用於目前模型,Claude Code 會傳送自己為該模型設定的預設值,並降至該上限。請移除該設定或將其設為 `max`。

726 

727> [!NOTE]

728>

729> 在 v2.1.304 之前,即使未傳送任何等級,`/effort status` 仍會印出 `Effort level: auto (currently high)`。

730 

714#### 自適應推理與固定思考預算731#### 自適應推理與固定思考預算

715 732 

716自適應推理讓每個步驟的思考變為可選,因此 Claude 能更快回應例行提示詞,並將更深入的思考保留給能從中受益的步驟。如果您希望 Claude 比目前等級產生的思考頻率更高或更低,可以直接在提示詞或 `CLAUDE.md` 中說明;模型會在其 effort 設定範圍內回應該指引。733自適應推理讓每個步驟的思考變為可選,因此 Claude 能更快回應例行提示詞,並將更深入的思考保留給能從中受益的步驟。如果您希望 Claude 比目前等級產生的思考頻率更高或更低,可以直接在提示詞或 `CLAUDE.md` 中說明;模型會在其 effort 設定範圍內回應該指引。

Details

762 762 

763若要追蹤由單一提示詞觸發的所有活動,請依特定的 `prompt.id` 值篩選事件。這會回傳處理該提示詞期間發生的 user\_prompt 事件、所有 api\_request 事件,以及所有 tool\_result 事件。763若要追蹤由單一提示詞觸發的所有活動,請依特定的 `prompt.id` 值篩選事件。這會回傳處理該提示詞期間發生的 user\_prompt 事件、所有 api\_request 事件,以及所有 tool\_result 事件。

764 764 

765`event.sequence` 在每次 Claude Code 程序啟動時從 0 開始,並在該程序的生命週期內遞增。它會跨越 `/clear` 持續計數,而 `/clear` 會指派新的 `session.id`。如果您[不分岔地恢復工作階段](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#resume-or-fork-sessions),工作階段會保留其 `session.id`,但其 `event.sequence` 值會取自恢復它的程序,因此在同一工作階段中,較晚的事件可能帶有比較早事件更低的值,或重複某個值。若要排序工作階段的事件,請依 `event.timestamp` 排序,並使用 `event.sequence` 排序時間戳記相同的事件。765`event.sequence` 在每次 Claude Code 程序啟動時從 0 開始,並在該程序的存續期間持續遞增。它在 `/clear`(會指派新的 `session.id`)之後仍會繼續計數。如果您[在不分支的情況下恢復工作階段](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#resume-or-fork-sessions),工作階段會保留其 `session.id`,但 `event.sequence` 值會取自恢復它的程序,因此在同一個工作階段內,較晚的事件可能攜帶比較早事件更低的值,或重複某個值。若要排序工作階段的事件,請依 `event.timestamp` 排序,並使用 `event.sequence` 排序時間戳記相同的事件。

766 766 

767若要進行訊息層級的重建,每個事件類別都帶有一個與工作階段逐字稿中某欄位相符的鍵。逐字稿項目格式是 [Claude Code 內部使用的](https://code.claude.com/docs/zh-TW/sessions.md#where-transcripts-are-stored),且會隨版本變動,因此依這些欄位進行聯結的管線可能在任何版本發布時中斷;請將這些聯結視為特定版本適用,而非穩定的約定:767若要進行訊息層級的重建,每個事件類別都帶有一個與工作階段逐字稿中某欄位相符的鍵。逐字稿項目格式是 [Claude Code 內部使用的](https://code.claude.com/docs/zh-TW/sessions.md#where-transcripts-are-stored),且會隨版本變動,因此依這些欄位進行聯結的管線可能在任何版本發布時中斷;請將這些聯結視為特定版本適用,而非穩定的約定:

768 768 


861* `output_tokens`:輸出 token 數量861* `output_tokens`:輸出 token 數量

862* `cache_read_tokens`:從快取讀取的 token 數量862* `cache_read_tokens`:從快取讀取的 token 數量

863* `cache_creation_tokens`:用於建立快取的 token 數量863* `cache_creation_tokens`:用於建立快取的 token 數量

864* `cache_creation_5m_tokens`、`cache_creation_1h_tokens`:API 回應所回報、以五分鐘[快取存留期](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)寫入快取的 token 數量,以及以一小時存留期寫入的數量。當 API 回應未回報這些值時,兩者皆為 `0`,即使 `cache_creation_tokens` 大於零亦然。需要 Claude Code v2.1.300 或更新版本

864* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。865* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。

865* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送;何時存在請參閱[事件關聯屬性](#event-correlation-attributes)表格866* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送;何時存在請參閱[事件關聯屬性](#event-correlation-attributes)表格

866* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用867* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用

Details

287claude --permission-mode acceptEdits287claude --permission-mode acceptEdits

288```288```

289 289 

290## 使用 Plan Mode 在編輯前進行分析290## 使用 plan mode 在編輯前進行分析

291 291 

292Plan Mode 告訴 Claude 在進行變更前先研究並提出建議。Claude 會讀取檔案、執行 shell 命令進行探索,並撰寫計畫,但不會編輯您的原始碼。除了在具有[略過權限可用](#skip-all-checks-with-bypasspermissions-mode)的互動式終端機工作階段中,編輯會保持被阻止,直到您核准計畫。292Plan mode 會讓 Claude 研究並提出變更,但不實際執行這些變更。Claude 會讀取檔案、執行 shell 命令進行探索並撰寫計畫,但不會編輯您的原始碼。除了在[可使用略過權限](#skip-all-checks-with-bypasspermissions-mode)的互動式終端機工作階段中之外,編輯會一直被封鎖,直到您核准計畫為止。

293 293 

294shell 命令在規劃期間發生的情況取決於工作階段,以及以下第一個符合的情況適用:294規劃期間 shell 命令的處理方式取決於工作階段,以下情況中第一個符合者適用:

295 295 

296* **具有可用略過權限的互動式終端機工作階段**:分類器和提示都不適用於規劃命令。[使用 bypassPermissions Mode 略過所有檢查](#skip-all-checks-with-bypasspermissions-mode)涵蓋了仍在該處提示的少數事項。296* **可使用略過權限的互動式終端機工作階段**:分類器和權限提示都不適用於規劃命令。[使用 bypassPermissions 模式略過所有檢查](#skip-all-checks-with-bypasspermissions-mode)說明了在該模式下仍會提示的少數情況。

297* **[自動模式](https://code.claude.com/docs/zh-TW/auto-mode-config.md)可用且 `useAutoModeDuringPlan` 設定已開啟**,預設為開啟:分類器會檢查 shell 命令([關鍵路徑移除](#critical-paths)除外),而不是提示您。已核准的命令會執行,被拒絕的命令會被阻止。297* **可使用[自動模式](https://code.claude.com/docs/zh-TW/auto-mode-config.md)且 `useAutoModeDuringPlan` 設定已開啟**(預設為開啟):分類器會審查[關鍵路徑移除](#critical-paths)以外的 shell 命令,而不是提示您。核准的命令會執行,遭拒絕的命令則會被封鎖。

298* **自動模式不可用,或 `useAutoModeDuringPlan` 關閉**:[內建唯讀集合](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands)之外的命令會提示您核准,包括當沙箱的[自動允許模式](https://code.claude.com/docs/zh-TW/sandboxing.md#sandbox-modes)已啟用時。298* **無法使用自動模式,或 `useAutoModeDuringPlan` 已關閉**:[內建唯讀命令集](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands)以外的命令會提示要求核准,即使已啟用沙箱的[自動允許模式](https://code.claude.com/docs/zh-TW/sandboxing.md#sandbox-modes)也是如此。

299 299 

300按 `Shift+Tab` 或在單一提示前加上 `/plan` 來進入 Plan Mode。您也可以從 CLI 開始使用 Plan Mode:300按下 `Shift+Tab` 或在單一提示詞前加上 `/plan` 即可進入 plan mode。您也可以從 CLI 以 plan mode 啟動:

301 301 

302```bash theme={null}302```bash theme={null}

303claude --permission-mode plan303claude --permission-mode plan

304```304```

305 305 

306再次按 `Shift+Tab` 以離開 Plan Mode,而不核准計畫。306再次按下 `Shift+Tab` 即可在不核准計畫的情況下離開 plan mode。

307 307 

308### 檢查並核准計畫308### 審查並核准計畫

309 309 

310當計畫準備好時,Claude 會呈現它並詢問如何進行。從該提示中,您可以選擇:310計畫準備就緒後,Claude 會呈現計畫並詢問如何進行。在該提示中,您可以選擇:

311 311 

312* **是的,並使用自動模式**:核准並開始使用[自動模式](#eliminate-prompts-with-auto-mode)。如果自動模式對您的工作階段[不可用](#eliminate-prompts-with-auto-mode),例如因為您的組織關閉了它,此選項會顯示為**是的,自動接受編輯**。如果您使用啟用的略過權限開始工作階段,該選項會改為顯示**是的,並為此工作階段切換到 BYPASS PERMISSIONS(無進一步提示)**。312* **Yes, and use auto mode**:核准並以[自動模式](#eliminate-prompts-with-auto-mode)開始。如果[您的工作階段無法使用](#eliminate-prompts-with-auto-mode)自動模式(例如因為您的組織已將其關閉),此選項會顯示為 **Yes, auto-accept edits**。如果您在啟動工作階段時已啟用略過權限,此選項則會顯示為 **Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session**。

313* **是的,手動核准編輯**:核准並逐個檢查每個編輯。313* **Yes, manually approve edits**:核准並逐一審查每項編輯。

314* **否,繼續規劃**:保持在 Plan Mode 並告訴 Claude 要變更什麼。314* **No, keep planning**:留在 plan mode 並告訴 Claude 要變更的內容。

315 315 

316核准計畫會退出 Plan Mode 並將工作階段切換到每個核准選項描述的權限模式,因此 Claude 開始編輯。若要再次規劃,使用 `Shift+Tab` 循環回到 Plan Mode,或在下一個提示前加上 `/plan`。316核准計畫會結束 plan mode,並將工作階段切換為各核准選項所描述的權限模式,讓 Claude 開始編輯。若要再次規劃,請使用 `Shift+Tab` 循環切換回 plan mode,或在下一個提示詞前加上 `/plan`。

317 317 

318按 `Ctrl+G` 在您的預設文字編輯器中開啟提議的計畫並在 Claude 繼續前直接編輯它。當[`showClearContextOnPlanAccept`](https://code.claude.com/docs/zh-TW/settings-reference#showclearcontextonplanaccept)已啟用時,清單會獲得第一個選項,該選項核准計畫並清除規劃內容。318按下 `Ctrl+G` 可在您的預設文字編輯器中開啟提議的計畫,並在 Claude 繼續之前直接編輯。啟用 [`showClearContextOnPlanAccept`](https://code.claude.com/docs/zh-TW/settings-reference#showclearcontextonplanaccept) 時,清單會新增第一個選項,用於核准計畫並清除規劃內容。

319 319 

320接受計畫也會根據計畫為工作階段提供[產生的標題](https://code.claude.com/docs/zh-TW/sessions.md#name-your-sessions),除非您已經命名了工作階段。320接受計畫也會根據該計畫為工作階段產生[標題](https://code.claude.com/docs/zh-TW/sessions.md#name-your-sessions),除非您已為工作階段命名。

321 321 

322### 將 Plan Mode 設定為預設值322### 將 plan mode 設為預設

323 323 

324若要讓 Plan Mode 成為專案終端機工作階段的預設值,請在 `.claude/settings.json` 中將 `defaultMode` 設定為 `plan`,放置如[以不同權限模式開始](#start-in-a-different-mode)下的範例所示。[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)啟動的對話不會讀取專案設定以取得起始權限模式。在那裡,改為在您的 VS Code 使用者設定中將 `claudeCode.initialPermissionMode` 設定為 `plan`。324若要將 plan mode 設為專案終端機工作階段的預設模式,請在 `.claude/settings.json` 中將 `defaultMode` 設為 `plan`,放置方式如[以不同的權限模式啟動](#start-in-a-different-mode)下的範例所示。由 [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)啟動的對話不會從專案設定讀取起始權限模式。在該情況下,請改為在您的 VS Code 使用者設定中將 `claudeCode.initialPermissionMode` 設為 `plan`。

325 325 

326## 使用自動模式消除權限提示326## 使用自動模式消除權限提示

327 327 

permissions.md +1 −1

Details

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

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

741 741 

742不會在沙箱中執行的命令(例如排除的命令)會遵守 bare `Bash` ask 規則。請參閱 [sandbox modes](https://code.claude.com/docs/zh-TW/sandboxing.md#sandbox-modes) 以變更此行為。742不會在沙箱中執行的命令(例如排除的命令)會遵守 bare `Bash` ask 規則。請參閱 [沙箱模式](https://code.claude.com/docs/zh-TW/sandboxing.md#sandbox-modes) 以變更此行為。

743 743 

744## 受管理設定744## 受管理設定

745 745 

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Anthropic 的 marketplace5# Anthropic 的市集

6 6 

7> Anthropic 官方、社群和示範 plugin marketplace for Claude Code:它們的名稱、儲存庫、如何新增每個,以及在哪裡瀏覽它們的 plugin。7> Anthropic 為 Claude Code 提供的官方與社群外掛市集:它們的名稱、儲存庫、如何新增每個市集,以及在哪裡瀏覽其中的外掛。

8 8 

9Anthropic 為 Claude Code 發佈三個通用 plugin marketplace:[官方](https://github.com/anthropics/claude-plugins-official)、[社群](https://github.com/anthropics/claude-plugins-community)和[示範](https://github.com/anthropics/claude-code)。每個都是其自身 GitHub 儲存庫中的 plugin 目錄。當您在 Claude Code 工作階段中從其中一個安裝 plugin 時,您在 `@` 後輸入 marketplace 的名稱,如 `/plugin install commit-commands@claude-plugins-official`。9Anthropic 為 Claude Code 發佈兩個通用外掛市集:[官方](https://github.com/anthropics/claude-plugins-official)和[社群](https://github.com/anthropics/claude-plugins-community)。每個市集都是位於其自身 GitHub 儲存庫中的外掛目錄。當您在 Claude Code 工作階段中從其中一個市集安裝外掛時,需在 `@` 後輸入市集的名稱,如 `/plugin install commit-commands@claude-plugins-official`。

10 10 

11使用此頁面來區分三個 marketplace,並找到檢查官方 marketplace 是否包含給定 plugin 的位置。11使用此頁面來區分這兩個市集,並找到可檢查官方市集是否包含特定外掛的位置。

12 12 

13> [!NOTE]13> [!NOTE]

14>14>


19 19 

20前往您需要的頁面部分:20前往您需要的頁面部分:

21 21 

22* 若要按儲存庫、marketplace 名稱和取得方式區分三個 marketplace,請參閱 [Anthropic 的 marketplace](#anthropic%E2%80%99s-marketplaces)。22* 若要按儲存庫、市集名稱和取得方式區分這兩個市集,請參閱 [Anthropic 的市集](#anthropic’s-marketplaces)。

23* 若要在官方 marketplace 中尋找 plugin,請參閱[在官方 marketplace 中尋找 plugin](#find-plugins-in-the-official-marketplace)。23* 若要在官方 marketplace 中尋找 plugin,請參閱[在官方 marketplace 中尋找 plugin](#find-plugins-in-the-official-marketplace)。

24 24 

25## Anthropic 的 marketplace25## Anthropic 的 marketplace

26 26 

27Marketplace 是儲存庫在其 `.claude-plugin/marketplace.json` 檔案中定義的 plugin 目錄。官方、社群和示範 marketplace 各自來自其自身的 GitHub 儲存庫。Anthropic 也發佈主題特定的 marketplace,例如 `anthropics/skills` 和 `anthropics/knowledge-work-plugins`,您可以在 Claude Code 工作階段中使用 `/plugin marketplace add <owner>/<repo>` 新增。27市集是儲存庫在其 `.claude-plugin/marketplace.json` 檔案中定義的外掛目錄。官方和社群市集各自來自其自身的 GitHub 儲存庫。Anthropic 也發佈主題特定的市集,例如 `anthropics/skills` 和 `anthropics/knowledge-work-plugins`,您可以在 Claude Code 工作階段中使用 `/plugin marketplace add <owner>/<repo>` 新增。

28 28 

29此表格提供每個 marketplace 的儲存庫和 marketplace 名稱,這是您從該 marketplace 安裝 plugin 時在 `@` 後輸入的內容。社群 marketplace 的名稱是 `claude-community`,而不是其儲存庫名稱。29此表格提供每個 marketplace 的儲存庫和 marketplace 名稱,這是您從該 marketplace 安裝 plugin 時在 `@` 後輸入的內容。社群 marketplace 的名稱是 `claude-community`,而不是其儲存庫名稱。

30 30 

31| | 官方 | 社群 | 示範 |31| | 官方 | 社群 |

32| :- | :- | :- | :- |32| :- | :- | :- |

33| 儲存庫 | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) | [`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/plugins) |33| 儲存庫 | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) |

34| Marketplace 名稱 | `claude-plugins-official` | `claude-community` | `claude-code-plugins` |34| 市集名稱 | `claude-plugins-official` | `claude-community` |

35| 其中包含的內容 | Anthropic 維護的 plugin,加上來自合作夥伴和其他作者的 plugin | 第三方 plugin,由其作者提交給 Anthropic | 一小組示範 plugin,展示 plugin 可以包含的內容 |35| 其中包含的內容 | Anthropic 維護的外掛,加上來自合作夥伴和其他作者的外掛 | 第三方外掛,由其作者提交給 Anthropic |

36| 取得方式 | Claude Code 在您第一次啟動互動式終端工作階段時新增它,除非[受管原則](https://code.claude.com/docs/zh-TW/plugins/org.md#allow-the-official-marketplace-and-your-own)或 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 阻止它。如果遺失,請參閱 [Marketplace `claude-plugins-official` 找不到](https://code.claude.com/docs/zh-TW/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增它 | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-code` 新增它 |36| 取得方式 | Claude Code 在您第一次啟動互動式終端機工作階段時新增它,除非[受管原則](https://code.claude.com/docs/zh-TW/plugins/org.md#allow-the-official-marketplace-and-your-own)或 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 阻止它。如果遺失,請參閱 [Marketplace `claude-plugins-official` not found](https://code.claude.com/docs/zh-TW/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增它 |

37 37 

38如果您編寫了 plugin 並希望其他人安裝它,請參閱[發佈 plugin](https://code.claude.com/docs/zh-TW/plugins/publish.md),其涵蓋您自己的 marketplace 和提交到 Anthropic 的目錄。38如果您編寫了 plugin 並希望其他人安裝它,請參閱[發佈 plugin](https://code.claude.com/docs/zh-TW/plugins/publish.md),其涵蓋您自己的 marketplace 和提交到 Anthropic 的目錄。

39 39 

40### `anthropics/claude-code` 中的示範 marketplace40### 已棄用的 `claude-code-plugins` 市集

41 41 

42如果教學課程或較舊的指示集告訴您執行 `/plugin marketplace add anthropics/claude-code`,這會新增示範 marketplace,名為 `claude-code-plugins`。這不是官方 marketplace。42> [!WARNING]

43>

44> `anthropics/claude-code` 中的 `claude-code-plugins` 市集已棄用。若要新增外掛,請在您的 shell 中執行 `claude plugin install <plugin>@claude-plugins-official`,並略過任何執行 `/plugin marketplace add anthropics/claude-code` 的教學步驟。

45 

46除非您安裝了下列兩個外掛之一,否則您可以保留 `claude-code-plugins` 外掛和該市集原狀。它們會從 `claude-plugins-official` 儲存庫更新。

43 47 

44示範外掛市集的大多數外掛也在官方外掛市集中以相同名稱存在。例如,`code-review`、`feature-dev` 和 `commit-commands` 在兩者中都有。從 `claude-plugins-official` 安裝這些,以免安裝了兩份副本。48* **`ralph-wiggum`**:此外掛現在是 `ralph-loop`,其命令以 `/ralph-loop:` 開頭。如果這些命令無法使用,請在您的 shell 中執行 `claude plugin install ralph-loop@claude-plugins-official`。

49* **`claude-opus-4-5-migration`**:此外掛已停用,因此請在您的 shell 中執行 `claude plugin uninstall claude-opus-4-5-migration@claude-code-plugins` 將其移除。

50 

51如果有任何其他外掛停止運作,請參閱[外掛已安裝但無法運作](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#plugin-installed-but-not-working)。

45 52 

46## 在官方 marketplace 中尋找 plugin53## 在官方 marketplace 中尋找 plugin

47 54 


62 69 

63若要從桌面應用程式或指令碼安裝,或查看雲端工作階段載入的內容,請參閱[安裝 plugin](https://code.claude.com/docs/zh-TW/plugins/install.md)。70若要從桌面應用程式或指令碼安裝,或查看雲端工作階段載入的內容,請參閱[安裝 plugin](https://code.claude.com/docs/zh-TW/plugins/install.md)。

64 71 

65### 新增社群或示範 marketplace72### 新增社群市集

66 

67社群和示範 marketplace 在您在 Claude Code 工作階段中新增它們之前不會註冊:

68 73 

69* **社群**:執行 `/plugin marketplace add anthropics/claude-plugins-community`,然後使用 `@claude-community` 尾碼安裝。74社群市集在您新增之前不會註冊。在 Claude Code 工作階段中,執行 `/plugin marketplace add anthropics/claude-plugins-community`,然後使用 `@claude-community` 尾碼安裝。

70* **示範**:執行 `/plugin marketplace add anthropics/claude-code`,然後使用 `@claude-code-plugins` 尾碼安裝。

71 75 

72如果 `claude-plugins-official` 不在 `/plugin` 的 **Marketplaces** 標籤上,使用 `/plugin marketplace add anthropics/claude-plugins-official` 以相同方式新增它。76如果 `claude-plugins-official` 不在 `/plugin` 的 **Marketplaces** 標籤上,使用 `/plugin marketplace add anthropics/claude-plugins-official` 以相同方式新增它。

73 77 

Details

638| 結束代碼 | 判決行 | 含義 |638| 結束代碼 | 判決行 | 含義 |

639| :- | :- | :- |639| :- | :- | :- |

640| `0` | `Validation passed` 或 `Validation passed with warnings` | manifest 載入。使用 `--strict`,也沒有警告 |640| `0` | `Validation passed` 或 `Validation passed with warnings` | manifest 載入。使用 `--strict`,也沒有警告 |

641| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 錯誤,或 `--strict` 下的警告 |641| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 錯誤,或 `--strict` 下的警告。[建議](#advice-on-the-readme) 不計入,無論是否使用 `--strict` |

642| `2` | `Unexpected error during validation: <reason>` | 驗證器本身失敗,例如在不可讀的路徑上 |642| `2` | `Unexpected error during validation: <reason>` | 驗證器本身失敗,例如在不可讀的路徑上 |

643 643 

644使用 `--json`,Claude Code 將報告寫入 stdout 作為具有這些頂級欄位的一個 JSON 物件:644使用 `--json`,Claude Code 將報告寫入 stdout 作為具有這些頂級欄位的一個 JSON 物件:


647* `strict`:執行是否將警告視為錯誤647* `strict`:執行是否將警告視為錯誤

648* `target`:Claude Code 驗證的解析路徑648* `target`:Claude Code 驗證的解析路徑

649* `manifest`:manifest 自己的結果,或沒有 manifest 的執行為 `null`649* `manifest`:manifest 自己的結果,或沒有 manifest 的執行為 `null`

650* `contents`:每個檔案的結果,命名其 `file` 並帶有 `errors`、`warnings` 和 `notes` 陣列650* `contents`:每個檔案的結果,命名其 `file` 並帶有 `errors`、`warnings` 和 `notes` 陣列。沒有錯誤、警告或註記的檔案不會有項目,因此沒有可報告的內容時 `contents` 為空。對於 [同時含有 `marketplace.json` 和 `plugin.json` 的目錄](#validate-a-directory),`manifest` 是 `marketplace.json` 的結果,`plugin.json` 的結果則放在 `contents` 中

651 * `gatingHooks`:每個可以拒絕動作的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) hook(例如 `tool.call` hook)是否具有 [`.catch` 處理常式](https://code.claude.com/docs/zh-TW/plugins/mods/events#handle-a-hook-that-fails)。每個項目提供 `module`、`pattern`、`hook` 和 `hasCatch`。需要 Claude Code v2.1.290 或更新版本651 * `gatingHooks`:每個可以拒絕動作的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) hook(例如 `tool.call` hook)是否具有 [`.catch` 處理常式](https://code.claude.com/docs/zh-TW/plugins/mods/events#handle-a-hook-that-fails)。每個項目提供 `module`、`pattern`、`hook` 和 `hasCatch`。需要 Claude Code v2.1.290 或更新版本

652* `advice`:該次執行的 [建議](#advice-on-the-readme),每個項目以 `file` 指名 README,並帶有 `message` 和要貼上的 `installLine`。沒有建議時為空。需要 Claude Code v2.1.295 或更新版本

652 653 

653在結束 `2` 時,命令不向 stdout 寫入任何內容。錯誤訊息進入 stderr。654在結束 `2` 時,命令不向 stdout 寫入任何內容。錯誤訊息進入 stderr。

654 655 

656#### README 的建議

657 

658`claude plugin validate` 輸出中的 `Advice` 區塊表示 plugin 的 README 沒有從市集安裝該 plugin 的行,並提供一行供您新增。建議不是錯誤也不是警告。無論是否使用 `--strict`,它都不會變更判決行或結束代碼。需要 Claude Code v2.1.295 或更新版本。

659 

660例如,驗證 `acme-tools` 市集的目錄時,會為其 `deploy-helper` plugin 列印此建議:

661 

662```text theme={null}

663Validating marketplace manifest: /path/to/acme-tools/.claude-plugin/marketplace.json

664 

665ℹ Advice (does not change the verdict):

666 

667 ❯ /path/to/acme-tools/plugins/deploy-helper/README.md: This README has no line that installs "deploy-helper" from a marketplace. Add the install line, which works in one step on Claude Code 2.1.275 or later.

668 /plugin install deploy-helper --marketplace acme/tools

669 

670✔ Validation passed

671```

672 

673若要清除建議,請將建議的行貼到它指名的 README 中,然後在您的 shell 中再次執行 `claude plugin validate`。`Advice` 區塊就會消失。

674 

675如果建議的行包含預留位置 `<owner>/<repo>`,原封不動地貼上並不會清除建議。請先取得真正的來源:

676 

677* **您驗證的是 plugin 本身的目錄**:當市集從其自身內部的目錄列出該 plugin 時,請改為驗證該目錄。當市集從其他地方(例如 GitHub 儲存庫)列出該 plugin 時,請自行填入 `<owner>/<repo>`

678* **您驗證的是市集的目錄**:Claude Code 會從該目錄頂層 `.git` 目錄的 `origin` 遠端填入來源。當它無法使用該遠端時(例如沒有遠端),請自行將 `<owner>/<repo>` 替換為您市集的來源

679 

680當 `plugin install` 或其簡寫 `plugin i` 在同一行後面接著下列任一項時,您已撰寫的安裝行就會計入。`/plugin` 和 `claude plugin` 兩種寫法都算:

681 

682* `<plugin>@<marketplace>`,例如 `/plugin install deploy-helper@acme-tools`

683* plugin 的名稱和 `--marketplace <source>`,例如 `/plugin install deploy-helper --marketplace acme/tools`

684 

655## claude plugin marketplace 命令685## claude plugin marketplace 命令

656 686 

657從 shell 執行 `claude plugin marketplace <subcommand>` 以新增、列出、重新整理和移除您安裝外掛所用的市集。687從 shell 執行 `claude plugin marketplace <subcommand>` 以新增、列出、重新整理和移除您安裝外掛所用的市集。

Details

376* [外掛程式結構和測試](https://claude.com/docs/plugins/build):同一個外掛程式資料夾安裝在 claude.ai 和 Cowork 上。某些元件僅限 Claude Code,而[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)列出了在每個平台上加載的元件376* [外掛程式結構和測試](https://claude.com/docs/plugins/build):同一個外掛程式資料夾安裝在 claude.ai 和 Cowork 上。某些元件僅限 Claude Code,而[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)列出了在每個平台上加載的元件

377* [外掛程式清單參考](https://code.claude.com/docs/zh-TW/plugins/manifest-reference.md):每個 `plugin.json` 欄位、路徑規則和目錄377* [外掛程式清單參考](https://code.claude.com/docs/zh-TW/plugins/manifest-reference.md):每個 `plugin.json` 欄位、路徑規則和目錄

378* [技能](https://code.claude.com/docs/zh-TW/skills.md):編寫您的外掛程式提供的技能378* [技能](https://code.claude.com/docs/zh-TW/skills.md):編寫您的外掛程式提供的技能

379* [Anthropic 在 claude-code 存放庫中的外掛程式](https://github.com/anthropics/claude-code/tree/main/plugins):本頁面佈局的完整工作範例,例如 `feature-dev` 和 `code-review`379* [Anthropic 在 claude-plugins-official 儲存庫中的外掛程式](https://github.com/anthropics/claude-plugins-official/tree/main/plugins):本頁面佈局的完整實作範例,例如 `feature-dev` 和 `code-review`

Details

220 220 

221## 託管您的 marketplace221## 託管您的 marketplace

222 222 

223一旦您可以從 marketplace 在您自己的機器上安裝 plugin,如[建立 marketplace](#create-a-marketplace) 中所示,請將 marketplace 目錄推送到 git 主機。223一旦您可以從市集在您自己的機器上安裝外掛,如[建立市集](#create-a-marketplace) 中所示,請將市集目錄推送到 git 主機。推送之前,請為市集設定一個其他作者不太可能選用的頂層 `name`,因為使用者[無法擁有兩個同名的市集](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference.md#marketplace-file)。

224 224 

225您的隊友然後在他們的 shell 中為 GitHub 儲存庫執行 `claude plugin marketplace add <owner>/<repo>`,或使用儲存庫 URL 執行相同命令。然後他們按名稱安裝 plugin,如[逐步解說](#create-a-marketplace)中所示。225您的隊友然後在他們的 shell 中為 GitHub 儲存庫執行 `claude plugin marketplace add <owner>/<repo>`,或使用儲存庫 URL 執行相同命令。然後他們按名稱安裝 plugin,如[逐步解說](#create-a-marketplace)中所示。

226 226 

Details

193 193 

194| Source | What you type | Example |194| Source | What you type | Example |

195| :- | :- | :- |195| :- | :- | :- |

196| GitHub repository | `owner/repo`。新增 `#ref` 以固定分支或標籤。 | `/plugin marketplace add anthropics/claude-code`,或 `/plugin marketplace add your-org/plugins#v1.2.0` 以固定 `v1.2.0` 標籤 |196| GitHub repository | `owner/repo`。新增 `#ref` 以固定分支或標籤。 | `/plugin marketplace add anthropics/claude-plugins-official`,或 `/plugin marketplace add your-org/plugins#v1.2.0` 以固定 `v1.2.0` 標籤 |

197| Git repository on any host | 完整的複製 URL。新增 `#ref` 以固定分支或標籤。 | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |197| Git repository on any host | 完整的複製 URL。新增 `#ref` 以固定分支或標籤。 | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

198| Local directory or file | 保存 `.claude-plugin/marketplace.json` 的目錄的相對或絕對路徑,或 JSON 檔案本身的路徑。以 `./` 或 `../` 開始相對路徑,因為 Claude Code 將裸 `name/name` 讀取為 GitHub 儲存庫。 | `/plugin marketplace add ./my-marketplace` |198| Local directory or file | 保存 `.claude-plugin/marketplace.json` 的目錄的相對或絕對路徑,或 JSON 檔案本身的路徑。以 `./` 或 `../` 開始相對路徑,因為 Claude Code 將裸 `name/name` 讀取為 GitHub 儲存庫。 | `/plugin marketplace add ./my-marketplace` |

199| Hosted `marketplace.json` | 其 `https://` URL | `/plugin marketplace add https://example.com/marketplace.json` |199| Hosted `marketplace.json` | 其 `https://` URL | `/plugin marketplace add https://example.com/marketplace.json` |


383 383 

384## 後續步驟384## 後續步驟

385 385 

386* [Anthropic 的市集](https://code.claude.com/docs/zh-TW/plugins/anthropic-marketplaces.md):官方、社群和示範市集的差異以及在哪裡瀏覽每個市集386* [Anthropic 的市集](https://code.claude.com/docs/zh-TW/plugins/anthropic-marketplaces.md):官方和社群市集的差異以及在哪裡瀏覽每個市集

387* [外掛程式載入參考](https://code.claude.com/docs/zh-TW/plugins/loading.md):為什麼外掛程式載入、未載入或在更新後未變更387* [外掛程式載入參考](https://code.claude.com/docs/zh-TW/plugins/loading.md):為什麼外掛程式載入、未載入或在更新後未變更

388* [外掛程式安全性和信任](https://code.claude.com/docs/zh-TW/plugins/security.md):在從您不認識的市集安裝外掛程式前要檢閱的內容388* [外掛程式安全性和信任](https://code.claude.com/docs/zh-TW/plugins/security.md):在從您不認識的市集安裝外掛程式前要檢閱的內容

389* [外掛程式疑難排解](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md):安裝和市集錯誤訊息及其修復389* [外掛程式疑難排解](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md):安裝和市集錯誤訊息及其修復

Details

66>66>

67> Plugin marketplace 不是 [Claude Marketplace](https://claude.com/marketplace)。Claude Marketplace 是 claude.com/marketplace 上的網站,您可以在其中瀏覽 plugins、連接器、合作夥伴產品和服務合作夥伴。它不是您使用 `/plugin marketplace add` 新增的 marketplace。67> Plugin marketplace 不是 [Claude Marketplace](https://claude.com/marketplace)。Claude Marketplace 是 claude.com/marketplace 上的網站,您可以在其中瀏覽 plugins、連接器、合作夥伴產品和服務合作夥伴。它不是您使用 `/plugin marketplace add` 新增的 marketplace。

68 68 

69Claude Code 在您第一次啟動互動式終端機工作階段時新增 Anthropic 的官方 marketplace,除非[受管原則](https://code.claude.com/docs/zh-TW/plugins/org.md#allow-the-official-marketplace-and-your-own)阻止它。Claude Code 不會自行新增任何其他 marketplace,包括 Anthropic 的社群和演示 marketplaces。若要區分三個 Anthropic marketplaces,請閱讀 [Anthropic 的 marketplaces](https://code.claude.com/docs/zh-TW/plugins/anthropic-marketplaces.md)。若要查看官方 marketplace 列出的內容,請在工作階段中開啟 `/plugin` 的 **Discover** 標籤或瀏覽 [Claude Marketplace](https://claude.com/marketplace/plugins)。69Claude Code 在您第一次啟動互動式終端機工作階段時新增 Anthropic 的官方 marketplace,除非[受管原則](https://code.claude.com/docs/zh-TW/plugins/org.md#allow-the-official-marketplace-and-your-own)阻止它。Claude Code 不會自行新增 Anthropic 的社群 marketplace。若要區分 Anthropic 的 marketplaces,請閱讀 [Anthropic 的 marketplaces](https://code.claude.com/docs/zh-TW/plugins/anthropic-marketplaces.md)。若要查看官方 marketplace 列出的內容,請在工作階段中開啟 `/plugin` 的 **Discover** 標籤或瀏覽 [Claude Marketplace](https://claude.com/marketplace/plugins)。

70 70 

71此圖表顯示從 marketplace 到您的工作階段的路徑。Marketplace 列出 plugin,您安裝該 plugin,Claude Code 載入其元件。71此圖表顯示從 marketplace 到您的工作階段的路徑。Marketplace 列出 plugin,您安裝該 plugin,Claude Code 載入其元件。

72 72 


88 88 

89Marketplace 的名稱將其放在三個層級之一中。Claude Code 僅接受來自 `github.com/anthropics/` 儲存庫的 marketplaces 的官方和社群名稱:89Marketplace 的名稱將其放在三個層級之一中。Claude Code 僅接受來自 `github.com/anthropics/` 儲存庫的 marketplaces 的官方和社群名稱:

90 90 

91* **官方**:具有 Anthropic [官方 marketplace 名稱](https://code.claude.com/docs/zh-TW/plugins/security.md#official-marketplace-names)之一的 marketplaces,包括 `claude-plugins-official` 和演示 marketplace `claude-code-plugins`。91* **官方**:具有 Anthropic [官方 marketplace 名稱](https://code.claude.com/docs/zh-TW/plugins/security.md#official-marketplace-names)之一的 marketplaces,包括 `claude-plugins-official` 和 `claude-code-plugins`。

92* **社群**:具有 Anthropic 社群名稱之一的 marketplaces,例如 `claude-community`。[按名稱識別 Anthropic 的 marketplaces](https://code.claude.com/docs/zh-TW/plugins/security.md#marketplace-tiers) 列出它們。92* **社群**:具有 Anthropic 社群名稱之一的 marketplaces,例如 `claude-community`。[按名稱識別 Anthropic 的 marketplaces](https://code.claude.com/docs/zh-TW/plugins/security.md#marketplace-tiers) 列出它們。

93* **第三方**:所有其他 marketplaces。您的同事或您的組織發佈的 marketplace 是第三方。93* **第三方**:所有其他 marketplaces。您的同事或您的組織發佈的 marketplace 是第三方。

94 94 

Details

96}96}

97```97```

98 98 

99在推送之前,請在您的 shell 中於儲存庫內執行 `claude plugin validate .`。關於此執行會檢查的內容,請參閱 [驗證目錄](https://code.claude.com/docs/zh-TW/plugins/cli-reference.md#validate-a-directory)。99請將 `your-marketplace` 替換為其他作者不太可能選用的名稱,因為使用者[無法擁有兩個同名的市集](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference.md#marketplace-file)。在推送之前,請在您的 shell 中於儲存庫內執行 `claude plugin validate .`。關於此執行會檢查的內容,請參閱 [驗證目錄](https://code.claude.com/docs/zh-TW/plugins/cli-reference.md#validate-a-directory)。

100 100 

101[建立市集](https://code.claude.com/docs/zh-TW/plugins/create-marketplace.md) 涵蓋一個存放庫中有多個外掛程式的佈局。101[建立市集](https://code.claude.com/docs/zh-TW/plugins/create-marketplace.md) 涵蓋一個存放庫中有多個外掛程式的佈局。

102 102 

Details

76* `first-party-plugins`76* `first-party-plugins`

77* `claude-tag-plugins`77* `claude-tag-plugins`

78 78 

79有關官方、社群和示範 marketplace 的差異以及在哪裡瀏覽每個 marketplace 列出的內容,請參閱 [Anthropic 的 marketplace](https://code.claude.com/docs/zh-TW/plugins/anthropic-marketplaces.md)。79有關官方和社群 marketplace 的差異以及在哪裡瀏覽每個 marketplace 列出的內容,請參閱 [Anthropic 的 marketplace](https://code.claude.com/docs/zh-TW/plugins/anthropic-marketplaces.md)。

80 80 

81## 在安裝前檢查 plugin81## 在安裝前檢查 plugin

82 82 

Details

18 18 

19當每個工作階段需要執行器無法自行完成的設定時,請使用包裝指令碼:佈建限定於工作階段建立者的短期憑證、匯出環境特定的祕密、準備語言工具鏈,或在子程序周圍套用資源限制。執行器每個工作階段啟動一次您的包裝指令碼,以取代 Claude Code 二進位檔案。透過 `exec` 進入 `$CLAUDE_RUNNER_CLAUDE_BIN`(執行器自己的二進位檔案)來結束包裝指令碼,以便訊號和退出碼正確傳播。19當每個工作階段需要執行器無法自行完成的設定時,請使用包裝指令碼:佈建限定於工作階段建立者的短期憑證、匯出環境特定的祕密、準備語言工具鏈,或在子程序周圍套用資源限制。執行器每個工作階段啟動一次您的包裝指令碼,以取代 Claude Code 二進位檔案。透過 `exec` 進入 `$CLAUDE_RUNNER_CLAUDE_BIN`(執行器自己的二進位檔案)來結束包裝指令碼,以便訊號和退出碼正確傳播。

20 20 

21在啟動執行器時,將 `--exec-path` 或 `SELF_HOSTED_RUNNER_EXEC_PATH` 指向包裝指令碼:21在啟動執行器時,將 `--exec-path` 或 `SELF_HOSTED_RUNNER_EXEC_PATH` 指向包裝指令碼,並依[快速入門](https://code.claude.com/docs/zh-TW/self-hosted-environments-quickstart.md#set-up-manually)所述替換 `<writable-dir>`:

22 22 

23```bash theme={null}23```bash theme={null}

24claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --exec-path /etc/claude/session-wrapper.sh24claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --base-dir '<writable-dir>' --exec-path /etc/claude/session-wrapper.sh

25```25```

26 26 

27執行器在包裝指令碼的環境中設定以下內容:27執行器在包裝指令碼的環境中設定以下內容:


457 457 

458若要確認 trap 是否正常運作,請在 `trap` 行正下方加入一行呼叫不存在的命令,例如 `no-such-command`。從您的 shell 執行 hook 檔案,並確認 `echo $?` 印出 `1`,然後移除該行。458若要確認 trap 是否正常運作,請在 `trap` 行正下方加入一行呼叫不存在的命令,例如 `no-such-command`。從您的 shell 執行 hook 檔案,並確認 `echo $?` 印出 `1`,然後移除該行。

459 459 

460### 停止或重新啟動 orchestrator

461 

462若要停止或重新啟動 orchestrator 而不中斷正在執行的 `spawn-runner` hook,請以 [`--shutdown-drain-sec`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#orchestrator-cli-flags) 啟動它。如此一來,收到 `SIGTERM` 時,它會給予正在執行的 hook 最多您所設定的秒數來完成。若要選擇該值並設定您的程序監管工具與之相符,請參閱[調整 `--shutdown-drain-sec` 與 orchestrator 的停止逾時](#size-shutdown-drain-sec-and-the-supervisors-stop-timeout-for-the-orchestrator)。

463 

464以下啟動命令允許 70 秒:

465 

466```bash theme={null}

467claude self-hosted-runner orchestrator \

468 --environment-secret-file /etc/claude/environment-secret \

469 --hooks-dir /etc/claude/hooks \

470 --shutdown-drain-sec 70

471```

472 

473orchestrator 會在已送出的輪詢與每個 hook 都完成後結束。當 `--shutdown-drain-sec` 秒數用盡時,仍在執行的 hook 會收到 `SIGTERM`,且 orchestrator 會結束。第二個 `SIGTERM` 或任何 `SIGINT` 會執行相同動作而不等待。包含 `[runner:orchestrator] stop summary:` 的日誌行會依各自的結束方式統計 hook 與產生請求的數量。

474 

475若未使用 `--shutdown-drain-sec`,orchestrator 會在收到 `SIGTERM` 或 `SIGINT` 時立即停止。每個正在執行的 hook 都會收到 `SIGTERM`,且不會通知 Anthropic。如此一來,其 runner 從未啟動的工作階段可能會一直停留在佇列中,直到 Anthropic [重新請求它](#the-spawn-runner-hook)為止,這會在經過 `--expected-spawn-seconds`(預設 120 秒)後發生。

476 

477> [!NOTE]

478>

479> `--shutdown-drain-sec` 需要 Claude Code v2.1.299 或更新版本。較舊的版本會在啟動時以 `error: unknown flag --shutdown-drain-sec` 結束。

480 

481#### 調整 `--shutdown-drain-sec` 與 orchestrator 的停止逾時

482 

483在預設設定下,請使用 [`--shutdown-drain-sec 70`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#orchestrator-cli-flags),並搭配 85 秒的停止逾時,也就是在 Kubernetes 上設定 `terminationGracePeriodSeconds: 85`,或在 systemd 下設定 `TimeoutStopSec=85`。若您變更了 `--hook-timeout`,請同步調整兩者:

484 

485* **`--shutdown-drain-sec`**:至少為 `--hook-timeout` 加 10 秒,讓在 `SIGTERM` 之前剛啟動的 hook 仍能完成

486* **停止逾時**:至少為 `--shutdown-drain-sec` 加 15 秒。orchestrator 會在啟動時記錄此數值:請尋找包含 `shutdown drain:` 的日誌行。

487 

488請讓您的程序監管工具只傳送單一 `SIGTERM`,且只傳給 orchestrator 程序,因為第二個 `SIGTERM` 會提前中斷 `--shutdown-drain-sec` 的等待。若您保留 systemd 預設的 [`KillMode=control-group`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#what-reaches-a-running-post-session-hook),hook 也會收到 `SIGTERM`,而 hook 可能在提交其工作負載之前就終止。在變更 `KillMode` 之前,請先檢查您的 `spawn-runner` hook 如何啟動 runner:

489 

490* **若您的 hook 將其工作負載提交到平台後即結束**:將 orchestrator 作為該 unit 的主程序執行,並設定 `KillMode=mixed`,這只會將 `SIGTERM` 傳送給該程序。

491* **若您的 hook 將 runner 作為 orchestrator 自身 unit 中的程序啟動**:`KillMode=mixed` 不會傳送 `SIGTERM` 給這些 runner。systemd 反而會在稍後傳送 `SIGKILL` 給它們,因此它們會在未清空其工作階段、也未執行其 `post-session` hook 的情況下結束。

492 

460## 將模型請求傳送至 Bedrock 或 Agent Platform493## 將模型請求傳送至 Bedrock 或 Agent Platform

461 494 

462如果您的組織需要讓模型請求經過自己的 AWS 或 Google Cloud 帳戶,請為 runner 設定 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 或 [Google Cloud 的 Agent Platform(前身為 Vertex AI)](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)。之後該 runner 啟動的每個工作階段都會以您的雲端憑證,在您的雲端帳戶中呼叫模型。若未進行此設定,工作階段會將模型請求傳送至 Anthropic API。495如果您的組織需要讓模型請求經過自己的 AWS 或 Google Cloud 帳戶,請為 runner 設定 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 或 [Google Cloud 的 Agent Platform(前身為 Vertex AI)](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)。之後該 runner 啟動的每個工作階段都會以您的雲端憑證,在您的雲端帳戶中呼叫模型。若未進行此設定,工作階段會將模型請求傳送至 Anthropic API。

Details

583 583 

584## 關閉時序584## 關閉時序

585 585 

586在 `SIGTERM` 之後,執行器需要時間乾淨地關閉其工作階段,然後您的協調器才會終止它。它會在啟動時記錄所需的時間,在預設設定下,該行日誌包含 `This runner needs up to 80s`。請將協調器的停止逾時設定為至少該秒數:Kubernetes 上的 `terminationGracePeriodSeconds`、Docker Compose 上的 `stop_grace_period`,或您平台的等效設定。Kubernetes 預設為 30 秒,因此若沒有此設定,它可能會在執行器完成之前就停止 pod。586> [!NOTE]

587>

588> 這些時序適用於執行器。`claude self-hosted-runner orchestrator` 程序有其自己的時序:請參閱[調整 `--shutdown-drain-sec` 與協調器的停止逾時](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#size-shutdown-drain-sec-and-the-supervisors-stop-timeout-for-the-orchestrator)。

589 

590在啟動時,每個執行器都會記錄它在 `SIGTERM` 之後乾淨地關閉其工作階段可能需要多長時間,例如在預設設定下為 `This runner needs up to 80s`。您的停止逾時是程序監督器在 `SIGTERM` 之後、終止執行器之前等待的時間。請將其設定為至少該記錄的時間:

591 

592* **Kubernetes**:`terminationGracePeriodSeconds`。Kubernetes 預設為 30 秒,因此若沒有此設定,它可能會在執行器完成之前就停止 pod。

593* **Docker Compose**:`stop_grace_period`

587 594 

588收到 `SIGTERM` 時,執行器會停止接受新的工作階段。接著它會開始正常關閉(稱為清空),除非您設定 [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal) 來延遲它。清空包含三個步驟:595收到 `SIGTERM` 時,執行器會停止接受新的工作階段。接著它會開始正常關閉(稱為清空),除非您設定 [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal) 來延遲它。清空包含三個步驟:

589 596 


744 751 

745**2. 啟動執行器**752**2. 啟動執行器**

746 753 

747從您的 shell 使用 `--hold-idle-file`、`--release-idle-session-min` 和 [`--max-hold-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 啟動執行器;`--max-hold-min` 是保留的上限,從工作階段進入閒置狀態時開始計算。若未設定,上限為一天。請將其設定為高於 `--release-idle-session-min`,否則不會保留任何工作階段。此範例會在 30 分鐘後釋放閒置工作階段,並在被保留的工作階段進入閒置狀態後最多 4 小時釋放它:754從您的 shell 使用 `--hold-idle-file`、`--release-idle-session-min` 和 [`--max-hold-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 啟動執行器;`--max-hold-min` 是保留的上限,從工作階段進入閒置狀態時開始計算。若未設定,上限為一天。請將其設定為高於 `--release-idle-session-min`,否則不會保留任何工作階段。請依照[快速入門](https://code.claude.com/docs/zh-TW/self-hosted-environments-quickstart.md#set-up-manually)中的說明替換 `<writable-dir>`。此範例會在 30 分鐘後釋放閒置工作階段,並在被保留的工作階段進入閒置狀態後最多 4 小時釋放它:

748 755 

749```bash theme={null}756```bash theme={null}

750claude self-hosted-runner \757claude self-hosted-runner \

751 --environment-secret-file /etc/claude/environment-secret \758 --environment-secret-file /etc/claude/environment-secret \

759 --base-dir '<writable-dir>' \

752 --release-idle-session-min 30 \760 --release-idle-session-min 30 \

753 --hold-idle-file /var/lib/claude-hold/hold-idle \761 --hold-idle-file /var/lib/claude-hold/hold-idle \

754 --max-hold-min 240762 --max-hold-min 240


816 * **未提交的變更仍會遺失**:若要提示 Claude 在完成回應時提交並推送,請參閱[提示工作階段推送其工作](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work)824 * **未提交的變更仍會遺失**:若要提示 Claude 在完成回應時提交並推送,請參閱[提示工作階段推送其工作](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work)

817* **因執行器遺失而中斷的命令可能會再次執行**:當工作階段在另一個執行器上恢復時,Claude 會看到被中斷的工具呼叫,其結果表示該呼叫的結果未知。825* **因執行器遺失而中斷的命令可能會再次執行**:當工作階段在另一個執行器上恢復時,Claude 會看到被中斷的工具呼叫,其結果表示該呼叫的結果未知。

818* **工作階段中途新增的儲存庫可能無法複製**:Claude 透過 HTTPS 使用 `git clone` 複製它。在未使用 [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) 的執行器上,如果主機上沒有任何項目能讀取該儲存庫,複製會因 git 身分驗證錯誤而失敗。在可行的情況下,請在建立工作階段時選擇工作階段需要的每個儲存庫。826* **工作階段中途新增的儲存庫可能無法複製**:Claude 透過 HTTPS 使用 `git clone` 複製它。在未使用 [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) 的執行器上,如果主機上沒有任何項目能讀取該儲存庫,複製會因 git 身分驗證錯誤而失敗。在可行的情況下,請在建立工作階段時選擇工作階段需要的每個儲存庫。

827 * **工作階段恢復時**:[`checkout` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#checkout) 也會針對新增的儲存庫執行,且 [`CLAUDE_RUNNER_REPO_REF`](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#checkout) 為空,因此請讓您的 hook 能處理此情況。

819* **某些連接器不出現在自託管工作階段中**:您在 claude.ai Settings 中尚未連接的連接器不在自託管工作階段中列出,工作階段不會提示您連接它。首先在 Settings 中連接它,然後啟動新工作階段。將連接器添加到已執行的工作階段也不會使其工具可用於 Claude;啟動新工作階段以拾取新添加的連接器。828* **某些連接器不出現在自託管工作階段中**:您在 claude.ai Settings 中尚未連接的連接器不在自託管工作階段中列出,工作階段不會提示您連接它。首先在 Settings 中連接它,然後啟動新工作階段。將連接器添加到已執行的工作階段也不會使其工具可用於 Claude;啟動新工作階段以拾取新添加的連接器。

820* **當有人封存或刪除工作階段,或從工作階段的選單釋放其執行器時**:不要依賴 [`--push-outcome-on-release`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 的推送。若要在這些情況下保存提交,請從 [`post-session` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session) 將 `HEAD` 推送到救援分支。如果您以該處的範例為起點,請讓它在沒有任何未提交變更時也進行推送,因為該範例只會在建立快照提交之後才推送。829* **當有人封存或刪除工作階段,或從工作階段的選單釋放其執行器時**:不要依賴 [`--push-outcome-on-release`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 的推送。若要在這些情況下保存提交,請從 [`post-session` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session) 將 `HEAD` 推送到救援分支。如果您以該處的範例為起點,請讓它在沒有任何未提交變更時也進行推送,因為該範例只會在建立快照提交之後才推送。

821 830 


833 842 

834常見問題:843常見問題:

835 844 

836* **Runner 未出現在環境中**:請確認主機能透過 HTTPS 連線至 `api.anthropic.com`、環境密鑰為最新,且主機時鐘與實際時間的誤差在五分鐘以內;誤差更大會導致身分驗證失敗。身分驗證失敗時,runner 會記錄 `[runner:fatal]` 並附上拒絕原因。845* **Runner 未出現在環境中**:請確認主機能透過 HTTPS 連線至 `api.anthropic.com`,且環境密鑰為最新。身分驗證失敗時,runner 會記錄 `[runner:fatal]` 並附上拒絕原因。

837* **Runner 在啟動時以 `cannot create or write to base directory` 結束**:runner 無法建立或寫入 `--base-dir`,其預設值為 `/workspace`。請修正該目錄的擁有權,或將 `--base-dir` 指向可寫入的路徑,如[讓所有 runner 的基礎目錄與容量保持一致](#keep-the-base-directory-and-capacity-identical-across-runners)中所述。如果 runner 改為記錄指出基礎目錄檢查逾時的 `[runner:fatal]`,則該目錄位於停擺的 NFS 或 CSI 掛載上。請檢查掛載的健康狀態,而非權限。Runner 會在開啟 `--log-file` 之前將這兩種啟動失敗輸出至 stderr,因此請在終端機或您平台的容器日誌中尋找,而非在日誌檔中。在 v2.1.225 之前,runner 不會在啟動時檢查基礎目錄,這種設定錯誤會改為在接收工作階段後導致工作階段失敗。846* **Runner 在啟動時以 `cannot create or write to base directory` 結束**:runner 無法建立或寫入 `--base-dir`,其預設值為 `/workspace`。請修正該目錄的擁有權,或將 `--base-dir` 指向可寫入的路徑,如[讓所有 runner 的基礎目錄與容量保持一致](#keep-the-base-directory-and-capacity-identical-across-runners)中所述。如果 runner 改為記錄指出基礎目錄檢查逾時的 `[runner:fatal]`,則該目錄位於停擺的 NFS 或 CSI 掛載上。請檢查掛載的健康狀態,而非權限。Runner 會在開啟 `--log-file` 之前將這兩種啟動失敗輸出至 stderr,因此請在終端機或您平台的容器日誌中尋找,而非在日誌檔中。在 v2.1.225 之前,runner 不會在啟動時檢查基礎目錄,這種設定錯誤會改為在接收工作階段後導致工作階段失敗。

838* **Runner 在啟動時以 `RegisterRunner failed:` 及 TLS 憑證錯誤結束**:錯誤可能是 `self signed certificate in certificate chain` 等。Runner 不信任其收到之憑證背後的憑證授權單位(CA),這種情況會發生在執行 TLS 檢查的代理伺服器後方。請在 runner 的環境中將 [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/zh-TW/network-config#custom-ca-certificates) 設為包含代理伺服器根 CA 的 PEM 檔案。847* **Runner 在啟動時以 `RegisterRunner failed:` 及 TLS 憑證錯誤結束**:錯誤可能是 `self signed certificate in certificate chain` 等。Runner 不信任其收到之憑證背後的憑證授權單位(CA),這種情況會發生在執行 TLS 檢查的代理伺服器後方。請在 runner 的環境中將 [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/zh-TW/network-config#custom-ca-certificates) 設為包含代理伺服器根 CA 的 PEM 檔案。

839 848 

840 您不需要為工作階段再次設定,工作階段會繼承它。Git 不會讀取它:若要透過該代理伺服器進行 clone,也請設定 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)。849 您不需要為工作階段再次設定,工作階段會繼承它。Git 不會讀取它:若要透過該代理伺服器進行 clone,也請設定 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)。

841* **您的啟動腳本輸出包含 `Resource temporarily unavailable` 的寫入錯誤並結束**:您的腳本與其所啟動的 `claude self-hosted-runner` 或 [orchestrator](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners) 程序共用 stdout 或 stderr,而該程序已將此共用的管道或 socket 切換為非阻塞模式。當管道已滿時,您腳本的寫入會以此作業系統錯誤失敗,而不是等待,且在 `set -e` 下腳本會結束。850* **您的啟動腳本輸出包含 `Resource temporarily unavailable` 的寫入錯誤並結束**:您的腳本與其所啟動的 `claude self-hosted-runner` 或 [orchestrator](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners) 程序共用 stdout 或 stderr,而該程序已將此共用的管道或 socket 切換為非阻塞模式。當管道已滿時,您腳本的寫入會以此作業系統錯誤失敗,而不是等待,且在 `set -e` 下腳本會結束。

842 851 

843 若要消除此錯誤,請將 runner 或 orchestrator 的輸出導向您腳本的使用者能夠建立的檔案。在啟動它的命令後附加 `>> "$HOME/claude-runner.log" 2>&1`,並置於任何將其移至背景執行的 `&` 之前:852 若要消除此錯誤,請將 runner 或 orchestrator 的輸出導向您腳本的使用者能夠建立的檔案。在啟動它的命令後附加 `>> "$HOME/claude-runner.log" 2>&1`,並置於任何將其移至背景執行的 `&` 之前,並依[快速入門](https://code.claude.com/docs/zh-TW/self-hosted-environments-quickstart.md#set-up-manually)中的說明取代 `<writable-dir>`:

844 853 

845 ```bash theme={null}854 ```bash theme={null}

846 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret >> "$HOME/claude-runner.log" 2>&1855 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --base-dir '<writable-dir>' >> "$HOME/claude-runner.log" 2>&1

847 ```856 ```

848 857 

849 您腳本本身的輸出仍會送往原本的位置,而 runner 寫入 stdout 與 stderr 的內容(包括其啟動錯誤)則會送往該檔案。請使用此 shell 重新導向,而非僅使用 [`--log-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),後者會在 runner 持續寫入 stdout 與 stderr 的同時,將日誌鏡像寫入檔案。如果您已傳入 `--log-file`,也請保留它,因為重新導向不會改變該檔案所接收的內容。858 您腳本本身的輸出仍會送往原本的位置,而 runner 寫入 stdout 與 stderr 的內容(包括其啟動錯誤)則會送往該檔案。請使用此 shell 重新導向,而非僅使用 [`--log-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),後者會在 runner 持續寫入 stdout 與 stderr 的同時,將日誌鏡像寫入檔案。如果您已傳入 `--log-file`,也請保留它,因為重新導向不會改變該檔案所接收的內容。


901 在 v2.1.274 之前,runner 在幾次嘗試後就會停止重試失敗的取得,並等待下一次排定的取得。失敗的回合不會觸發取得,因此在下一次排定的取得之前,每個回合都會以 401 失敗。910 在 v2.1.274 之前,runner 在幾次嘗試後就會停止重試失敗的取得,並等待下一次排定的取得。失敗的回合不會觸發取得,因此在下一次排定的取得之前,每個回合都會以 401 失敗。

902* **回合在 claude.ai/code 中以 `This model needs a newer version of Claude Code` 失敗**:您的 runner 用來啟動工作階段的 Claude Code 版本比工作階段的模型所要求的版本舊,因此 API [拒絕了該請求](https://code.claude.com/docs/zh-TW/errors.md#claude-code-does-not-support-this-model)。請將 runner 升級至訊息要求的版本或更新版本,如[固定版本](#pin-the-version)中所述。在此之前,使用者可以在工作階段中選擇其他模型。911* **回合在 claude.ai/code 中以 `This model needs a newer version of Claude Code` 失敗**:您的 runner 用來啟動工作階段的 Claude Code 版本比工作階段的模型所要求的版本舊,因此 API [拒絕了該請求](https://code.claude.com/docs/zh-TW/errors.md#claude-code-does-not-support-this-model)。請將 runner 升級至訊息要求的版本或更新版本,如[固定版本](#pin-the-version)中所述。在此之前,使用者可以在工作階段中選擇其他模型。

903* **Pod 在排空過程中被終止**:請將 `terminationGracePeriodSeconds` 提高至至少 runner 在啟動時記錄的值。請參閱[關閉時序](#shutdown-timing)。912* **Pod 在排空過程中被終止**:請將 `terminationGracePeriodSeconds` 提高至至少 runner 在啟動時記錄的值。請參閱[關閉時序](#shutdown-timing)。

913* **Runner 記錄以 `was paused or too slow` 結尾的 `[runner:log]` 行**:runner 仍持續執行,不需要重新啟動。在該行所指名的 stdout 或 stderr 串流再次被讀取之前,runner 會捨棄該串流中除最新 256 KiB 以外的所有行。如果您傳入了 [`--log-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),請在該處尋找被捨棄的行。

914* **Runner 記錄 `Nobody can read this process's stdout anymore`**:原本讀取 runner stdout 的對象已不存在,因此 runner 在其剩餘的執行期間會停止寫入該處,並繼續執行。只要 stderr 仍開啟,此行以及 runner 後續的狀態行(包括 `[runner:fatal]` 行)都會送往 stderr,因此請在該處閱讀。

904 915 

905日誌初始化後,runner 會將其生命週期日誌(包括 `[runner:fatal]` 行)寫入 stdout,並將偵錯輸出寫入 stderr,全部都是純文字行而非 JSON。上述疑難排解項目中所述的基礎目錄失敗會在此之前輸出至 stderr。請使用 `--log-file`(它也能讓 `self-hosted-runner doctor` 追蹤這些輸出)或您平台的日誌收集功能擷取兩個串流。916日誌初始化後,runner 會將其生命週期日誌(包括 `[runner:fatal]` 行)寫入 stdout,並將偵錯輸出寫入 stderr,全部都是純文字行而非 JSON。上述疑難排解項目中所述的基礎目錄失敗會在此之前輸出至 stderr。請使用 `--log-file`(它也能讓 `self-hosted-runner doctor` 追蹤這些輸出)或您平台的日誌收集功能擷取兩個串流。

906 917 

Details

29 29 

30* 具有到 `api.anthropic.com` 的出站 HTTPS、到 `claude.ai` 和下面安裝步驟重定向到的下載主機,以及到您的 git 主機以進行複製的 Linux 或 macOS 主機或容器;[網路需求表](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#network-requirements)有完整清單。Windows 不支援作為執行器主機;改為在 Linux 容器中執行執行器。開發人員工作站不受影響,因為工作階段從瀏覽器中的 claude.ai 啟動。30* 具有到 `api.anthropic.com` 的出站 HTTPS、到 `claude.ai` 和下面安裝步驟重定向到的下載主機,以及到您的 git 主機以進行複製的 Linux 或 macOS 主機或容器;[網路需求表](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#network-requirements)有完整清單。Windows 不支援作為執行器主機;改為在 Linux 容器中執行執行器。開發人員工作站不受影響,因為工作階段從瀏覽器中的 claude.ai 啟動。

31* 用於測試工作階段的儲存庫:公開儲存庫,或此主機已能透過其 HTTPS URL 複製且不會被要求提供憑證的儲存庫。僅有 SSH 金鑰是不夠的,因為執行器會複製儲存庫的 `https://` URL。若要改為透過 SSH 複製,請參閱[為私人網路重寫 git URL](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)。31* 用於測試工作階段的儲存庫:公開儲存庫,或此主機已能透過其 HTTPS URL 複製且不會被要求提供憑證的儲存庫。僅有 SSH 金鑰是不夠的,因為執行器會複製儲存庫的 `https://` URL。若要改為透過 SSH 複製,請參閱[為私人網路重寫 git URL](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)。

32* 與實時同步的時鐘,例如使用 NTP。當時鐘偏差超過五分鐘時,驗證失敗;請參閱[疑難排解](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。32* 與實時同步的時鐘,例如使用 NTP。

33 33 

34### 執行器主機上的軟體34### 執行器主機上的軟體

35 35 

Details

33| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | 排空開始後(除非您設定 [`--defer-shutdown-max-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal),否則在 `SIGTERM` 上),等待最多 N 秒讓每個工作階段的進行中回合和背景任務完成,然後終止子程序。在此等待期間,執行器將剛完成的背景任務計為仍在執行,直到讀取其結果的後續回合開始,最多 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) 視窗。[同時也請提高您的停止逾時](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#let-running-turns-finish-before-a-restart)。 |33| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | 排空開始後(除非您設定 [`--defer-shutdown-max-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal),否則在 `SIGTERM` 上),等待最多 N 秒讓每個工作階段的進行中回合和背景任務完成,然後終止子程序。在此等待期間,執行器將剛完成的背景任務計為仍在執行,直到讀取其結果的後續回合開始,最多 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) 視窗。[同時也請提高您的停止逾時](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#let-running-turns-finish-before-a-restart)。 |

34| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | 必需 | 包含環境祕密的檔案路徑,或對於由[協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)產生的執行器,單次使用工作訂單 JWT。`SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` 直接攜帶祕密值,而不是檔案路徑。較舊的 `--pool-secret-file` 旗標和 `SELF_HOSTED_RUNNER_POOL_SECRET` 變數仍然有效並列印棄用通知到 stderr;早於 2.1.216 的預覽程式執行器組建只識別那些較舊的名稱。 |34| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | 必需 | 包含環境祕密的檔案路徑,或對於由[協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)產生的執行器,單次使用工作訂單 JWT。`SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` 直接攜帶祕密值,而不是檔案路徑。較舊的 `--pool-secret-file` 旗標和 `SELF_HOSTED_RUNNER_POOL_SECRET` 變數仍然有效並列印棄用通知到 stderr;早於 2.1.216 的預覽程式執行器組建只識別那些較舊的名稱。 |

35| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | 自己的二進位檔 | 為每個工作階段產生的二進位檔或包裝指令碼。請參閱[包裝指令碼](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#wrapper-scripts)。 |35| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | 自己的二進位檔 | 為每個工作階段產生的二進位檔或包裝指令碼。請參閱[包裝指令碼](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#wrapper-scripts)。 |

36| `--exit-if-unused-min <n>` | `SELF_HOSTED_RUNNER_IDLE_SHUTDOWN_MS` | `0` | 在 N 分鐘的輪詢後退出,沒有任何工作被指派,用於自動擴展器縮小。`0` 停用。 |36| `--exit-if-unused-min <n>` | `SELF_HOSTED_RUNNER_IDLE_SHUTDOWN_MS` | `0` | 在輪詢 N 分鐘且從未被指派任何工作後退出,用於自動擴展器縮小。`0` 停用。 |

37| `--git-host-rewrite <from>=<to>` | 無 | 未設定 | 在複製之前將 `https://<from>/...` 來源 URL 重寫為 `https://<to>/...`,用於分割視界 DNS。可重複;僅旗標。 |37| `--git-host-rewrite <from>=<to>` | 無 | 未設定 | 在複製之前將 `https://<from>/...` 來源 URL 重寫為 `https://<to>/...`,用於分割視界 DNS。可重複;僅旗標。 |

38| `--git-ssh-rewrite <host>` | 無 | 未設定 | 在複製之前將 `https://<host>/...` 來源 URL 重寫為 `git@<host>:...`,用於僅限 SSH 的 git 主機。可重複;僅旗標。 |38| `--git-ssh-rewrite <host>` | 無 | 未設定 | 在複製之前將 `https://<host>/...` 來源 URL 重寫為 `git@<host>:...`,用於僅限 SSH 的 git 主機。可重複;僅旗標。 |

39| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | `/healthz` 和 `/metrics` 接聽器的連接埠。設定 `0` 以停用。 |39| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | `/healthz` 和 `/metrics` 接聽器的連接埠。設定 `0` 以停用。 |


48| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)在每個工作階段結束時的預算,包括執行器關閉 |48| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)在每個工作階段結束時的預算,包括執行器關閉 |

49| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | 未設定 | 執行器為每個到您的出口代理的連線執行的 Shell 命令,使用其修剪的 stdout 作為 `Proxy-Authorization` 標頭值。需要 `HTTPS_PROXY` 或 `HTTP_PROXY`,不能與 `--proxy-authorization-file` 結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |49| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | 未設定 | 執行器為每個到您的出口代理的連線執行的 Shell 命令,使用其修剪的 stdout 作為 `Proxy-Authorization` 標頭值。需要 `HTTPS_PROXY` 或 `HTTP_PROXY`,不能與 `--proxy-authorization-file` 結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |

50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | 未設定 | 執行器為每個到您的出口代理的連線讀取的檔案,使用其修剪的內容作為 `Proxy-Authorization` 標頭值。對於另一個程序就地輪換的權杖,使用此旗標。與 `--proxy-authorization-command` 具有相同的要求,不能與其結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | 未設定 | 執行器為每個到您的出口代理的連線讀取的檔案,使用其修剪的內容作為 `Proxy-Authorization` 標頭值。對於另一個程序就地輪換的權杖,使用此旗標。與 `--proxy-authorization-command` 具有相同的要求,不能與其結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |

51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | 關閉 | 在執行器啟動的工作階段結束(例如排空或閒置釋放)時,在刪除工作區之前將追蹤的結果分支推送到 `origin`,以便進行中的提交在重新啟動後存活。盡力而為;將關閉預算增加 30 秒,並需要 git 2.29 或更新版本以從推送的分支繼續。在啟用之前限制推送存取到 `claude/*` 參考;請參閱[已繼續的工作階段會遺失未推送的工作](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#additional-limitations)。通過 `checkout` 生命週期掛鉤簽出的存放庫不會被推送;改為從 [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)快照這些。 |51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | 關閉 | 在執行器因排空或閒置釋放等原因主動結束工作階段時,在刪除工作區之前將追蹤的結果分支推送到 `origin`,以便進行中的提交在重新啟動後存活。盡力而為;將關閉預算增加 30 秒,並需要 git 2.29 或更新版本以從推送的分支繼續。在啟用之前限制推送存取到 `claude/*` 參考;請參閱[已繼續的工作階段會遺失未推送的工作](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#additional-limitations)。通過 `checkout` 生命週期掛鉤簽出的存放庫不會被推送;改為從 [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)快照這些。 |

52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | 在回合完成或工作階段等待使用者操作後,經過 N 分鐘的不活動即釋放工作階段槽。[某些工作階段不計為閒置](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle),因此請與 `--kill-session-after-min` 搭配使用。已完成的背景任務最多會在 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) 視窗內讓工作階段保持忙碌。若要延遲釋放,請設定 [`--hold-idle-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#keep-an-idle-session-while-its-processes-run)。`0` 停用。 |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | 在回合完成或工作階段等待使用者操作後,經過 N 分鐘的不活動即釋放工作階段槽。[某些工作階段不計為閒置](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle),因此請與 `--kill-session-after-min` 搭配使用。已完成的背景任務最多會在 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) 視窗內讓工作階段保持忙碌。若要延遲釋放,請設定 [`--hold-idle-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#keep-an-idle-session-while-its-processes-run)。`0` 停用。 |

53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | 關閉 | 當工作階段在此執行器上結束時,移除 `<base-dir>/_sessions/` 下的工作階段的每個工作階段目錄,無論結果如何。[重複使用預先加熱的簽出](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout)描述它們持有的內容以及當它們保留時誰可以讀取它們。移除是盡力而為:當執行器被終止或在清理執行之前達到其排空期限時,每個工作階段目錄保留在原位。啟用旗標後,失敗或中斷的工作階段的偵錯日誌不會保留在磁碟上。需要 Claude Code v2.1.268 或更新版本。 |53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | 關閉 | 當工作階段在此執行器上結束時,移除 `<base-dir>/_sessions/` 下的工作階段的每個工作階段目錄,無論結果如何。[重複使用預先加熱的簽出](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout)描述它們持有的內容以及當它們保留時誰可以讀取它們。移除是盡力而為:當執行器被終止或在清理執行之前達到其排空期限時,每個工作階段目錄保留在原位。啟用旗標後,失敗或中斷的工作階段的偵錯日誌不會保留在磁碟上。需要 Claude Code v2.1.268 或更新版本。 |

54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | 未設定 | 在絕對 Unix 時間戳記(秒)時退休執行器,用於在已知時間終止執行器的基礎設施;[執行器生命週期](https://code.claude.com/docs/zh-TW/self-hosted-environments#runner-lifecycle)描述釋放序列以及如何調整邊距。2001 年之前或 5138 年之後的值被旗標拒絕,被環境變數忽略。 |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | 未設定 | 在絕對 Unix 時間戳記(秒)時退休執行器,用於在已知時間終止執行器的基礎設施;[執行器生命週期](https://code.claude.com/docs/zh-TW/self-hosted-environments#runner-lifecycle)描述釋放序列以及如何調整邊距。2001 年之前或 5138 年之後的值被旗標拒絕,被環境變數忽略。 |


95| `--hook-timeout <sec>` | `60` | 在此許多秒後終止掛鉤的程序樹。逾時加上其 5 秒終止寬限期必須保持在 `--expected-spawn-seconds` 以下;協調器在啟動時強制執行此項。 |95| `--hook-timeout <sec>` | `60` | 在此許多秒後終止掛鉤的程序樹。逾時加上其 5 秒終止寬限期必須保持在 `--expected-spawn-seconds` 以下;協調器在啟動時強制執行此項。 |

96| `--expected-spawn-seconds <sec>` | `120` | 從協調器收到產生請求到執行器註冊為止的預期 p99 時間,包括在您的平台上等待容量的任何時間。伺服器強制的範圍為 10 到 3600。在每次輪詢時作為伺服器端租約發送:如果沒有執行器在其經過前註冊,工作階段會以新訂單 ID 重新提供。所有副本必須共享此值。 |96| `--expected-spawn-seconds <sec>` | `120` | 從協調器收到產生請求到執行器註冊為止的預期 p99 時間,包括在您的平台上等待容量的任何時間。伺服器強制的範圍為 10 到 3600。在每次輪詢時作為伺服器端租約發送:如果沒有執行器在其經過前註冊,工作階段會以新訂單 ID 重新提供。所有副本必須共享此值。 |

97| `--min-idle <n>` | `0` | 通過主動產生待命執行器來保持至少 N 個閒置工作階段槽空閒。`0` 停用預熱。與執行器的 `--exit-if-unused-min` 配對,以便多餘的待命執行器回收自己。 |97| `--min-idle <n>` | `0` | 通過主動產生待命執行器來保持至少 N 個閒置工作階段槽空閒。`0` 停用預熱。與執行器的 `--exit-if-unused-min` 配對,以便多餘的待命執行器回收自己。 |

98| `--shutdown-drain-sec <n>` | `0` | 收到 `SIGTERM` 時,停止輪詢產生請求,並給予執行中的 `spawn-runner` hook 及任何尚未回應的輪詢最多此秒數來完成,之後再停止剩餘的項目。設為 `0` 時,立即停止。上限為 `3600`,協調器在啟動時強制執行此項。若要選擇值,請參閱[調整 `--shutdown-drain-sec` 和協調器的停止逾時](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#size-shutdown-drain-sec-and-the-supervisors-stop-timeout-for-the-orchestrator)。需要 Claude Code v2.1.299 或更新版本。 |

98| `--debug-dir <path>` | 未設定 | 將每個產生請求的工作訂單和掛鉤 stderr 寫入磁碟。僅用於偵錯;永遠不要在生產環境中設定。 |99| `--debug-dir <path>` | 未設定 | 將每個產生請求的工作訂單和掛鉤 stderr 寫入磁碟。僅用於偵錯;永遠不要在生產環境中設定。 |

99 100 

100### SCM 連接器旗標101### SCM 連接器旗標

Details

154 * **遙測單元**:`OTEL_EXPORTER_OTLP_*` 匯出器鍵、`OTEL_LOG_*` 內容擷取切換、`OTEL_LOGS_EXPORTER`,以及 beta 追蹤變數 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT`,會以單元形式跟隨設定其中任一項的最高來源。傳遞 `otelHeadersHelper` 憑證鍵的來源也會佔據此單元,但只有在它是所選來源時才會套用這些變數:未被選取但傳遞了該鍵的來源不會提供其中任何變數,且仍會阻止較低來源補上這些變數。無論哪種情況,來自某個來源的匯出器端點都絕不會與來自另一個來源的憑證配對。154 * **遙測單元**:`OTEL_EXPORTER_OTLP_*` 匯出器鍵、`OTEL_LOG_*` 內容擷取切換、`OTEL_LOGS_EXPORTER`,以及 beta 追蹤變數 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT`,會以單元形式跟隨設定其中任一項的最高來源。傳遞 `otelHeadersHelper` 憑證鍵的來源也會佔據此單元,但只有在它是所選來源時才會套用這些變數:未被選取但傳遞了該鍵的來源不會提供其中任何變數,且仍會阻止較低來源補上這些變數。無論哪種情況,來自某個來源的匯出器端點都絕不會與來自另一個來源的憑證配對。

155 * **與憑證配對的路由**:將路由變數與僅限所選來源的憑證鍵(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配對的來源,只有在贏得該位置時才會提供這些路由變數。155 * **與憑證配對的路由**:將路由變數與僅限所選來源的憑證鍵(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配對的來源,只有在贏得該位置時才會提供這些路由變數。

156* **`allowedProviders`**:在電腦上設定的清單與伺服器受管清單,會依照[其項目的範圍說明](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders)所述方式組合。需要 Claude Code v2.1.285 或更新版本156* **`allowedProviders`**:在電腦上設定的清單與伺服器受管清單,會依照[其項目的範圍說明](https://code.claude.com/docs/zh-TW/settings-reference.md#allowedproviders)所述方式組合。需要 Claude Code v2.1.285 或更新版本

157* **第一方登入鍵**:[`forceLoginOrgUUID`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginorguuid) 以及 [`forceLoginMethod`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值。如果您也部署了 MDM 政策或受管設定檔,請在每個用戶端都執行 v2.1.299 或更新版本之前,同時在該處以及 claude.ai 的伺服器受管設定中設定這些鍵。關於之後應在何處設定這些鍵,以及套用哪個來源的值,請參閱[哪個受管來源提供登入鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-supplies-login-keys)。

157* **閘道登入鍵**:Claude Code 絕不會從伺服器受管設定讀取 [`forceLoginGatewayUrl`](https://code.claude.com/docs/zh-TW/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](https://code.claude.com/docs/zh-TW/settings-reference#gatewayinternalnetworks) 或 [`forceLoginMethod`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此在那裡設定的值既不會套用,也不會遮蔽在 MDM 政策或受管設定檔中設定的值。[`managedSourcesBehavior` 項目](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior)說明了由電腦上的哪個管理來源提供這些值。158* **閘道登入鍵**:Claude Code 絕不會從伺服器受管設定讀取 [`forceLoginGatewayUrl`](https://code.claude.com/docs/zh-TW/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](https://code.claude.com/docs/zh-TW/settings-reference#gatewayinternalnetworks) 或 [`forceLoginMethod`](https://code.claude.com/docs/zh-TW/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此在那裡設定的值既不會套用,也不會遮蔽在 MDM 政策或受管設定檔中設定的值。[`managedSourcesBehavior` 項目](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior)說明了由電腦上的哪個管理來源提供這些值。

158 159 

159### 擷取與快取行為160### 擷取與快取行為

settings.md +63 −63

Details

205 205 

206## 設定優先順序206## 設定優先順序

207 207 

208當相同的鍵出現在多個位置時,Claude Code 會使用最高層級設定的值。下面的堆疊顯示各個層級,最高的在頂部;較高層級的鍵會覆寫下面任何地方的相同鍵。208當同一個鍵出現在多個位置時,Claude Code 會使用設定該鍵的最高層級中的值。下方的堆疊顯示各個層級,最高層級位於最上方;較高層級中的鍵會覆寫其下方任何位置的相同鍵。

209 209 

210Settings precedence, highest first: managed settings, command line, project local, shared project, user. A key set at a higher level overrides the same key set lower down.210Settings precedence, highest first: managed settings, command line, project local, shared project, user. A key set at a higher level overrides the same key set lower down.

211 211 

212按順序,優先順序最高的優先:212依序排列,優先順序最高者在前:

213 213 

2141. **受管設定**:您的組織部署的設定,透過 `managed-settings.json` 檔案、MDM 原則或來自 claude.ai 主控台的[伺服器管理設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)。您自己的設定檔案或 `--settings` 中的任何內容都不會覆寫受管鍵,而 `--model` 之類的旗標只會從您的組織允許的模型中選擇。受管 [`model`](https://code.claude.com/docs/zh-TW/settings-reference#model) 是起始預設值,而不是鎖定;鎖定是 [`availableModels`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels) 和 [`deniedModels`](https://code.claude.com/docs/zh-TW/settings-reference#deniedmodels)。當您的組織提供多個受管來源時,[受管層級內的優先順序](https://code.claude.com/docs/zh-TW/managed-settings.md#precedence-within-the-managed-tier)規則說明 Claude Code 從每個來源讀取的內容。2141. **受管設定**:您的組織透過 `managed-settings.json` 檔案、MDM 政策,或來自 claude.ai 主控台的[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)所部署的設定。您自己的設定檔或 `--settings` 中的任何內容都無法覆寫受管的鍵,而像 `--model` 這樣的旗標只能從您的組織允許的模型中選擇。受管的 [`model`](https://code.claude.com/docs/zh-TW/settings-reference#model) 是起始預設值,而非鎖定;鎖定由 [`availableModels`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels) 和 [`deniedModels`](https://code.claude.com/docs/zh-TW/settings-reference#deniedmodels) 負責。當您的組織提供多個受管來源時,[受管層級內的優先順序](https://code.claude.com/docs/zh-TW/managed-settings.md#precedence-within-the-managed-tier)規則說明了 Claude Code 會從每個來源讀取什麼。

2152. **命令列**:您啟動 `claude` 時使用 `--settings <file-or-json>` 傳遞的 JSON,僅適用於該工作階段;請參閱[變更一個工作階段的設定](#change-a-setting-for-one-session)。您在此設定的鍵會覆寫您專案和使用者設定檔案中的相同鍵,而您省略的鍵會保留這些檔案中的值。其他旗標(例如 `--model`)會為工作階段設定單一項目,不屬於此堆疊;[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)上的鍵項目說明哪些旗標會覆寫它。2152. **命令列**:您在啟動 `claude` 時透過 `--settings <file-or-json>` 傳入的 JSON,僅適用於該工作階段;請參閱[針對單一工作階段變更設定](#change-a-setting-for-one-session)。您在此處設定的鍵會覆寫專案和使用者設定檔中的相同鍵,而您未設定的鍵則保留這些檔案中的值。其他旗標(例如 `--model`)會為工作階段設定單一項目,且不屬於此堆疊;[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)中各鍵的條目會說明哪些旗標會覆寫該鍵。

2163. **專案本機設定** (`.claude/settings.local.json`):您對此專案的個人設定。2163. **專案本機設定**(`.claude/settings.local.json`):您在此專案中的個人設定。

2174. **共用專案設定** (`.claude/settings.json`):您的團隊簽入原始碼控制的設定。2174. **共用專案設定**(`.claude/settings.json`):您的團隊簽入版本控制的設定。

2185. **使用者設定** (`~/.claude/settings.json`):您對每個專案的個人設定。2185. **使用者設定**(`~/.claude/settings.json`):您適用於所有專案的個人設定。

219 219 

220環境變數不是此堆疊中的層級。當行為同時具有 shell 變數和設定鍵時,哪一個適用是按對決定的,而不是按層級:在您的 shell 中匯出的 `ANTHROPIC_MODEL` 適用於任何檔案中的 `model` 鍵,而 `ANTHROPIC_DEFAULT_MODEL` 僅在沒有檔案設定 `model` 時適用。[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md#precedence)說明哪些鍵有對應以及 Claude Code 首先讀取哪一個。設定檔案內的 `env` 區塊是普通鍵,遵循上述層級。220環境變數不是此堆疊中的一個層級。當某個行為同時具有 shell 變數和設定鍵時,由哪一個生效是依每一組個別決定的,而非依層級:在您的 shell 中匯出的 `ANTHROPIC_MODEL` 會優先於任何檔案中的 `model` 鍵,而 `ANTHROPIC_DEFAULT_MODEL` 僅在沒有任何檔案設定 `model` 時才會生效。[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md#precedence)說明了哪些鍵有對應的變數,以及 Claude Code 會先讀取哪一個。設定檔中的 `env` 區塊是一般的鍵,遵循上述層級。

221 221 

222對於少數安全敏感的鍵,Claude Code 會尊重來自較低層級的更嚴格值而不是受管值;[受管設定優先順序的例外](#exceptions-to-managed-settings-precedence)列出了它們。222對於少數與安全性相關的鍵,Claude Code 會採用來自較低層級的較嚴格值,而非受管值;[受管設定優先順序的例外](#exceptions-to-managed-settings-precedence)列出了這些鍵。

223 223 

224### 列表合併而不是覆寫224### 清單會合併而非覆寫

225 225 

226當您在多個檔案中設定相同的列表鍵(例如 `permissions.allow`)時,Claude Code 會合併列表而不是選擇一個,因此每個檔案都可以新增項目而不移除另一個檔案的項目。四個保存模型列表或每個模型項目的鍵遵循自己的規則:226當您在多個檔案中設定相同的清單鍵(例如 `permissions.allow`)時,Claude Code 會合併這些清單,而不是只選擇其中一個,因此每個檔案都可以新增項目,而不會移除其他檔案的項目。有四個存放模型清單或個別模型項目的鍵遵循各自的規則:

227 227 

228* [`fallbackModel`](https://code.claude.com/docs/zh-TW/settings-reference#fallbackmodel) 是一個有序鏈,其中位置具有意義,因此 Claude Code 採用定義它的最高優先順序檔案的整個值。228* [`fallbackModel`](https://code.claude.com/docs/zh-TW/settings-reference#fallbackmodel) 是一個有序的鏈,其中位置具有意義,因此 Claude Code 會從定義該鍵的優先順序最高的檔案中取用完整的值。

229* [`modelPicker`](https://code.claude.com/docs/zh-TW/settings-reference#modelpicker) 保存一個有序列表行加上一個替換旗標,因此 Claude Code 永遠不會合併來自兩個來源的行。它採用定義它的受管設定、`--settings` 和使用者設定中最高的整個值,並忽略專案和本機設定中的鍵。需要 Claude Code v2.1.242 或更新版本。229* [`modelPicker`](https://code.claude.com/docs/zh-TW/settings-reference#modelpicker) 存放一個有序的列清單加上一個取代旗標,因此 Claude Code 絕不會合併來自兩個來源的列。它會從受管設定、`--settings` 和使用者設定中定義該鍵的最高者取用完整的值,並忽略專案和本機設定中的該鍵。需要 Claude Code v2.1.242 或更新版本。

230* [`availableModels`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels):當 Claude Code 應用的受管設定定義它時,Claude Code 按原樣應用該列表,並忽略您在使用者、專案或本機設定中新增的項目,除非嵌入 Claude Code 的應用程式提供自己的模型列表;請參閱[受管設定優先順序的例外](#exceptions-to-managed-settings-precedence)。在受管來源之間,列表也永遠不會合併;[Claude Code 如何合併受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)說明哪個來源的列表適用。在非受管範圍內,Claude Code 照常合併陣列。230* [`availableModels`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels):當 Claude Code 套用的受管設定定義了它時,Claude Code 會原樣套用該清單,並忽略您在使用者、專案或本機設定中新增的項目,除非嵌入 Claude Code 的應用程式提供了自己的模型清單;請參閱[受管設定優先順序的例外](#exceptions-to-managed-settings-precedence)。在多個受管來源之間,此清單也絕不會合併;[Claude Code 如何結合受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)說明了套用哪個來源的清單。在非受管範圍之間,Claude Code 會照常合併陣列。

231* [`modelSettings`](https://code.claude.com/docs/zh-TW/settings-reference#modelsettings):Claude Code 一次解析一個模型,連同 [`effortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#effortlevel)。`modelSettings` 項目說明哪個檔案的值適用於模型。231* [`modelSettings`](https://code.claude.com/docs/zh-TW/settings-reference#modelsettings):Claude Code 會一次針對一個模型解析它,並與 [`effortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#effortlevel) 一起解析。`modelSettings` 條目說明了哪個檔案的值會套用到某個模型。

232 232 

233### 優先順序範例233### 優先順序範例

234 234 

235當 Claude 工作時,Claude Code 在微調器下方顯示一行提示,例如「使用 /config 變更您的預設權限模式(包括 Plan Mode)」。假設您想關閉這些提示,因此您在 `~/.claude/settings.json` 中將 [`spinnerTipsEnabled`](https://code.claude.com/docs/zh-TW/settings-reference#spinnertipsenabled) 設定為 `false`。下面的每個情景都是可能將它們重新開啟的事情,以及您可以做什麼。235在 Claude 工作時,Claude Code 會在旋轉指示器下方顯示一行提示,例如「Use /config to change your default permission mode (including Plan Mode)」。假設您想關閉這些提示,因此在 `~/.claude/settings.json` 中將 [`spinnerTipsEnabled`](https://code.claude.com/docs/zh-TW/settings-reference#spinnertipsenabled) 設為 `false`。下方的每個情境都是可能將提示重新開啟的情況,以及您可以採取的因應方式。

236 236 

237#### 團隊設定覆寫個人設定237#### 團隊設定覆寫個人設定

238 238 

239您的團隊的 `.claude/settings.json` 將其設定為 `true`。Claude Code 使用專案值,因為共用專案位於使用者之上,因此您在該專案中看到提示,在其他地方看不到。239您團隊的 `.claude/settings.json` 將其設為 `true`。Claude Code 會使用專案的值,因為共用專案位於使用者之上,因此您只會在該專案中看到提示,其他地方則不會。

240 240 

241您可以取回您的值:在該專案的 `.claude/settings.local.json` 中新增 `"spinnerTipsEnabled": false`。專案本機位於共用專案之上,因此您在那裡的工作階段停止顯示提示,您的隊友的工作階段不會改變。241您可以取回您的值:在該專案的 `.claude/settings.local.json` 中新增 `"spinnerTipsEnabled": false`。專案本機位於共用專案之上,因此您在該處的工作階段將不再顯示提示,而您隊友的工作階段不會改變。

242 242 

243#### 組織設定覆寫一切243#### 組織設定覆寫所有設定

244 244 

245您的組織的受管設定將其設定為 `true`。您在使用者、專案或本機設定中放置的任何內容都不會關閉提示,`--settings` 也不會。受管是最高層級。245您組織的受管設定將其設為 `true`。您在使用者、專案或本機設定中設定的任何內容都無法關閉提示,`--settings` 也無法。受管是最高層級。

246 246 

247您無法取回您的值。執行 `/status` 以查看哪個受管來源適用,並詢問您的管理員是否應該變更原則。247您無法取回您的值。執行 `/status` 以查看套用的是哪個受管來源,並詢問您的管理員是否應變更該政策。

248 248 

249#### 命令列覆寫您的檔案一個工作階段249#### 命令列針對單一工作階段覆寫您的檔案

250 250 

251您使用 `claude --settings '{"spinnerTipsEnabled": true}'` 啟動了工作階段。命令列位於除受管外的每個檔案之上,因此該工作階段顯示提示,即使您的檔案說 `false`。251您使用 `claude --settings '{"spinnerTipsEnabled": true}'` 啟動了工作階段。命令列位於除了受管以外的所有檔案之上,因此即使您的檔案設定為 `false`,該工作階段仍會顯示提示。

252 252 

253您在下一個工作階段取回您的值;`--settings` 持續一個工作階段,不會寫入任何檔案。253您會在下一個工作階段取回您的值;`--settings` 僅持續一個工作階段,且不會寫入任何檔案。

254 254 

255#### 旗標或環境變數設定相同的內容255#### 旗標或環境變數設定了相同的項目

256 256 

257某些鍵具有命令列旗標或環境變數,無論哪個檔案設定它,都會覆寫設定值:`ANTHROPIC_MODEL` 覆寫 [`model`](https://code.claude.com/docs/zh-TW/settings-reference#model) 設定,`--model` 在一個工作階段內覆寫兩者。257有些鍵具有命令列旗標或環境變數,無論是哪個檔案設定了該值,都會覆寫設定值:`ANTHROPIC_MODEL` 會覆寫 [`model`](https://code.claude.com/docs/zh-TW/settings-reference#model) 設定,而 `--model` 會在工作階段中覆寫兩者。

258 258 

259您是否可以取回您的值取決於鍵:取消設定變數或刪除旗標,並檢查[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)上的鍵項目和[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md)上的變數列,以了解 Claude Code 使用哪一個。259您是否能取回您的值取決於該鍵:取消設定該變數或移除該旗標,並查看[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)中該鍵的條目以及[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md)中該變數的列,以了解 Claude Code 會使用哪一個。

260 260 

261### 疑難排解不適用的設定261### 疑難排解未生效的設定

262 262 

263當您設定鍵而 Claude Code 沒有表現得像您一樣時,從 `/status` 開始查看它載入了哪些檔案,然後在下面找到您的症狀。[偵錯您的設定](https://code.claude.com/docs/zh-TW/debug-your-config.md)涵蓋更廣泛的檢查,包括乾淨設定測試。263當您設定了某個鍵,但 Claude Code 的行為卻不像您已設定時,請先執行 `/status` 查看它載入了哪些檔案,然後在下方找出您的症狀。[偵錯您的設定](https://code.claude.com/docs/zh-TW/debug-your-config.md)涵蓋了更廣泛的檢查,包括乾淨設定測試。

264 264 

265#### 您設定的值被忽略265#### 您設定的值被忽略

266 266 

267其他東西設定了相同的鍵,檔案無法設定該值,或檔案未載入:267有其他地方設定了相同的鍵、該檔案無法設定該值,或該檔案未載入:

268 268 

269* **較高層級設定它。** 另一個設定檔案、`--settings` 旗標或受管來源在您的上方設定鍵;[堆疊](#settings-precedence)說明哪一個。旗標或環境變數也可以自行覆寫鍵,按鍵決定;[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)上的鍵項目說明 Claude Code 使用哪一個,[`env` 項目](https://code.claude.com/docs/zh-TW/settings-reference#env)涵蓋受管 `env` 值與 shell 匯出。269* **較高層級設定了它。** 另一個設定檔、`--settings` 旗標或受管來源在您之上設定了該鍵;[堆疊](#settings-precedence)說明了是哪一個。旗標或環境變數也可以單獨覆寫該鍵,這是逐鍵決定的;[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)中該鍵的條目說明了 Claude Code 使用哪一個,而 [`env` 條目](https://code.claude.com/docs/zh-TW/settings-reference#env)涵蓋了受管 `env` 值與 shell 匯出的比較。

270* **安全鍵保持其嚴格值。** 對於少數鍵,Claude Code 尊重來自任何檔案的限制值,因此專案 `true` 的 [`disableClaudeAiConnectors`](https://code.claude.com/docs/zh-TW/settings-reference#disableclaudeaiconnectors) 保持開啟;請參閱[受管設定優先順序的例外](#exceptions-to-managed-settings-precedence)。270* **安全性鍵保留其嚴格值。** 對於少數鍵,Claude Code 會採用來自任何檔案的限制性值,因此專案中 [`disableClaudeAiConnectors`](https://code.claude.com/docs/zh-TW/settings-reference#disableclaudeaiconnectors) 的 `true` 會持續生效;請參閱[受管設定優先順序的例外](#exceptions-to-managed-settings-precedence)。

271* **檔案無法設定該值。** [`permissions.defaultMode`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode) 值 `auto` 和 `bypassPermissions` 不會從專案或本機設定生效;改為在使用者或受管設定中設定它們,或為一個工作階段傳遞 `--permission-mode`。在 v2.1.257 之前,`bypassPermissions` 從任何檔案生效。271* **該檔案無法設定該值。** [`permissions.defaultMode`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode) 的 `auto` 和 `bypassPermissions` 值從專案或本機設定中設定時不會生效;請改在使用者或受管設定中設定,或針對單一工作階段傳入 `--permission-mode`。在 v2.1.257 之前,`bypassPermissions` 從任何檔案設定都會生效。

272 272 

273 [`env`](https://code.claude.com/docs/zh-TW/settings-reference#env) 區塊中的遙測匯出變數也不會從專案或本機設定生效,除了少數關閉值。[Claude Code 在 `env` 中忽略的變數](https://code.claude.com/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)列出變數和這些值。273 [`env`](https://code.claude.com/docs/zh-TW/settings-reference#env) 區塊中的遙測匯出變數從專案或本機設定中設定時同樣不會生效,少數關閉值除外。[Claude Code 在 `env` 中忽略的變數](https://code.claude.com/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)列出了這些變數及其值。

274* **檔案已損壞。** 無效的 JSON 或被拒絕的值會導致 Claude Code 跳過檔案或項目;請參閱[修復損壞的設定檔案](#fix-a-broken-settings-file)。274* **該檔案已損壞。** 無效的 JSON 或被拒絕的值會使 Claude Code 略過該檔案或該條目;請參閱[修正損壞的設定檔](#fix-a-broken-settings-file)。

275 275 

276#### 您在 Claude Code 中所做的變更在新工作階段中丟失276#### 您在 Claude Code 中所做的變更在新工作階段中遺失

277 277 

278當您從 Claude Code 內部為新工作階段儲存選擇時,例如使用 `/model` 的預設模型,Claude Code 會將其寫入您的使用者設定檔案 `~/.claude/settings.json`。如果您無法寫入該檔案,例如因為另一個工具生成它或將其連結到唯讀副本,變更適用於目前工作階段,在下一個工作階段中消失。在生成檔案的工具中設定鍵,或將檔案替換為您可以寫入的檔案。278當您在 Claude Code 內部儲存適用於新工作階段的選擇時(例如使用 `/model` 設定預設模型),Claude Code 會將其寫入您的使用者設定檔 `~/.claude/settings.json`。如果您無法寫入該檔案,例如因為另一個工具產生了它或將其連結到唯讀副本,則該變更只會套用於目前的工作階段,並在下一個工作階段中消失。請在產生該檔案的工具中設定該鍵,或以您可以寫入的檔案取代該檔案。

279 279 

280如果您可以寫入檔案,變更仍然不持續,請檢查變更是否[僅適用於一個工作階段](#change-a-setting-for-one-session)或[較高層級設定相同的鍵](#a-value-you-set-is-ignored)。對於 `model` 鍵,[新工作階段以不同的模型開始,而不是您選擇的](https://code.claude.com/docs/zh-TW/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked)列出更多原因。280如果您可以寫入該檔案,但變更仍無法保留,請檢查該變更是否[僅適用於單一工作階段](#change-a-setting-for-one-session),或是否[有較高層級設定了相同的鍵](#a-value-you-set-is-ignored)。對於 `model` 鍵,[新工作階段以與您所選不同的模型啟動](https://code.claude.com/docs/zh-TW/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked)列出了更多原因。

281 281 

282#### 受管變更尚未到達您282#### 受管變更尚未套用到您

283 283 

284受管來源根據[傳遞表](https://code.claude.com/docs/zh-TW/managed-settings.md#choose-a-delivery-mechanism)中的排程到達執行中的工作階段,因此請先重新啟動工作階段。如果 `/status` 隨後命名與您的管理員變更的來源不同的來源,則較高優先順序的來源適用;[Claude Code 如何合併受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)給出順序。284受管來源會依照[傳遞表](https://code.claude.com/docs/zh-TW/managed-settings.md#choose-a-delivery-mechanism)中的排程套用到執行中的工作階段,因此請先重新啟動工作階段。如果 `/status` 顯示的來源與您的管理員變更的來源不同,則表示套用的是優先順序較高的來源;[Claude Code 如何結合受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)說明了其順序。

285 285 

286#### 已提交的鍵無法到達隊友286#### 已提交的鍵未套用到隊友

287 287 

288兩件事使 `.claude/settings.json` 中的鍵無法為克隆它的每個人應用:288有兩種情況會使 `.claude/settings.json` 中的鍵無法套用到每位複製它的人:

289 289 

290* **Claude Code 忽略儲存庫檔案中的鍵。** 在[設定索引](https://code.claude.com/docs/zh-TW/settings-reference.md#settings-index)的「範圍」欄中查找 `User, local, or managed`、`User or managed`、`User`、`Managed` 或 `Global config`。這些鍵永遠不會從共用檔案應用,除了少數儲存庫檔案仍然可以關閉的鍵。每個這些項目在其「範圍」行上都說明了這一點。`Global config` 鍵僅從 `~/.claude.json` 應用。290* **Claude Code 忽略儲存庫檔案中的該鍵。** 在[設定索引](https://code.claude.com/docs/zh-TW/settings-reference.md#settings-index)的 Scope 欄中尋找 `User, local, or managed`、`User or managed`、`User`、`Managed` 或 `Global config`。這些鍵絕不會從共用檔案中生效,除了少數儲存庫檔案仍可關閉的鍵之外。每個這類條目都會在其 Scope 行中註明。`Global config` 鍵僅從 `~/.claude.json` 生效。

291 291 

292 在 `env` 鍵內,遙測匯出變數也永遠不會從共用檔案應用,除了少數關閉值;請參閱[Claude Code 在 `env` 中忽略的變數](https://code.claude.com/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)。292 在 `env` 鍵中,遙測匯出變數同樣絕不會從共用檔案中生效,少數關閉值除外;請參閱 [Claude Code 在 `env` 中忽略的變數](https://code.claude.com/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)。

293* **鍵等待信任。** `permissions.allow` 規則、`permissions.additionalDirectories`、`extraKnownMarketplaces` 和大多數 [`env`](https://code.claude.com/docs/zh-TW/settings-reference#env) 值僅在每個隊友[信任資料夾](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)後應用。在那之前,他們仍然看到提示,不會從檔案宣告的市集獲得外掛。`deny` 和 `ask` 規則立即應用。293* **該鍵需等待信任。** `permissions.allow` 規則、`permissions.additionalDirectories`、`extraKnownMarketplaces` 和大多數 [`env`](https://code.claude.com/docs/zh-TW/settings-reference#env) 值,只有在每位隊友[信任該資料夾](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)之後才會生效。在此之前,他們仍會看到提示,且不會從該檔案宣告的市集取得外掛。`deny` 和 `ask` 規則會立即生效。

294 294 

295#### 權限規則的合併方式與您預期的不同295#### 權限規則的結合方式與您預期的不同

296 296 

297* **您在權限提示上選擇了「是,不要再問」,但仍然收到相同工具的提示。** 該選擇將 `allow` 規則儲存到您的本機檔案,本機檔案中的 `allow` 規則不會超越專案或受管檔案中的 `ask` 規則;[權限規則如何合併](https://code.claude.com/docs/zh-TW/permissions.md#settings-precedence)解釋了順序。在 VS Code 擴充功能中,核准卡讓您選擇目標檔案,包括專案的共用檔案,這會為每個人變更規則;在 CLI 中,Claude Code 僅寫入您的本機檔案。297* **您在權限提示中選擇了「Yes, and don't ask again」,但同一個工具仍然會提示您。** 該選擇會將一條 `allow` 規則儲存到您的本機檔案,而該處的 `allow` 規則並不會優先於來自專案或受管檔案的 `ask` 規則;[權限規則如何結合](https://code.claude.com/docs/zh-TW/permissions.md#settings-precedence)說明了其順序。在 VS Code 擴充功能中,核准卡片可讓您選擇目標檔案,包括專案的共用檔案,這會為所有人變更該規則;在 CLI 中,Claude Code 只會寫入您的本機檔案。

298* **您的組織的允許規則仍然與您的規則一起應用。** 這是預期的:Claude Code 在範圍內合併 [`permissions.allow`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-allow),除非您的組織設定 [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly)。298* **您組織的允許規則仍與您的規則一起套用。** 這是預期的行為:Claude Code 會跨範圍合併 [`permissions.allow`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-allow),除非您的組織設定了 [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly)。

299 299 

300### 受管設定優先順序的例外300### 受管設定優先順序的例外

301 301 

302對於少數值限制工作階段的鍵,Claude Code 尊重來自範圍的限制值,該範圍在其他情況下無法覆寫受管設定。在此表中找到鍵以查看它尊重哪個值以及來自何處。302對於少數其值會限制工作階段的鍵,Claude Code 會採用來自原本無法覆寫受管設定之範圍的限制性值。在此表格中找到該鍵,即可查看它採用哪個值以及來自何處。

303 303 

304| 鍵 | Claude Code 尊重的值 | 備註 |304| 鍵 | Claude Code 採用的值 | 備註 |

305| :- | :- | :- |305| :- | :- | :- |

306| [`disableClaudeAiConnectors`](https://code.claude.com/docs/zh-TW/settings-reference#disableclaudeaiconnectors) | 來自任何範圍的 `true` | 即使受管來源設定 `false` 也被尊重 |306| [`disableClaudeAiConnectors`](https://code.claude.com/docs/zh-TW/settings-reference#disableclaudeaiconnectors) | 來自任何範圍的 `true` | 即使受管來源設定為 `false` 也會採用 |

307| [`enableArtifact`](https://code.claude.com/docs/zh-TW/settings-reference#enableartifact) | 來自任何範圍的 `false`,以及來自任何範圍的 `disableArtifact: true` | 即使受管來源設定 `true` 也被尊重;沒有任何東西會重新開啟 [Artifact 工具](https://code.claude.com/docs/zh-TW/artifacts.md#disable-artifacts)。需要 Claude Code v2.1.242 或更新版本 |307| [`enableArtifact`](https://code.claude.com/docs/zh-TW/settings-reference#enableartifact) | 來自任何範圍的 `false`,以及來自任何範圍的 `disableArtifact: true` | 即使受管來源設定為 `true` 也會採用;沒有任何設定能重新開啟 [Artifact 工具](https://code.claude.com/docs/zh-TW/artifacts.md#disable-artifacts)。需要 Claude Code v2.1.242 或更新版本 |

308| [`isolatePeerMachines`](https://code.claude.com/docs/zh-TW/settings-reference#isolatepeermachines) | 來自任何範圍的 `true` | 即使受管來源設定 `false` 也被尊重 |308| [`isolatePeerMachines`](https://code.claude.com/docs/zh-TW/settings-reference#isolatepeermachines) | 來自任何範圍的 `true` | 即使受管來源設定為 `false` 也會採用 |

309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) | 來自任何範圍的 `true` | 即使受管來源設定 `false` 也被尊重。需要 Claude Code v2.1.257 或更新版本 |309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) | 來自任何範圍的 `true` | 即使受管來源設定為 `false` 也會採用。需要 Claude Code v2.1.257 或更新版本 |

310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/zh-TW/settings-reference#automode-classifyallshell) | 來自 `~/.claude/settings.json` 或 `--settings` 的 `true` | 即使受管來源設定 `false` 也被尊重 |310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/zh-TW/settings-reference#automode-classifyallshell) | 來自 `~/.claude/settings.json` 或 `--settings` 的 `true` | 即使受管來源設定為 `false` 也會採用 |

311| [`remoteControlAtStartup`](https://code.claude.com/docs/zh-TW/settings-reference#remotecontrolatstartup) | 來自 `.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使受管來源設定 `true` 也被尊重;專案或本機 `true` 被忽略 |311| [`remoteControlAtStartup`](https://code.claude.com/docs/zh-TW/settings-reference#remotecontrolatstartup) | 來自 `.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使受管來源設定為 `true` 也會採用;專案或本機的 `true` 會被忽略 |

312| [`crossSessionInbound`](https://code.claude.com/docs/zh-TW/settings-reference#crosssessioninbound) | 來自 `.claude/settings.json` 或 `.claude/settings.local.json` 的更嚴格值,在 `accept` \< `hold` \< `refuse` 梯級上 | 在受管、`--settings` 和使用者值上被尊重;不是更嚴格的專案或本機值被忽略 |312| [`crossSessionInbound`](https://code.claude.com/docs/zh-TW/settings-reference#crosssessioninbound) | 來自 `.claude/settings.json` 或 `.claude/settings.local.json` 的較嚴格值,依 `accept` \< `hold` \< `refuse` 的等級排序 | 優先於受管、`--settings` 和使用者的值;不較嚴格的專案或本機值會被忽略 |

313| [`useAutoModeDuringPlan`](https://code.claude.com/docs/zh-TW/settings-reference#useautomodeduringplan) | 來自任何受管來源、`--settings`、`~/.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使獲勝的受管來源設定 `true` 也被尊重;`.claude/settings.json` 中的 `false` 被忽略 |313| [`useAutoModeDuringPlan`](https://code.claude.com/docs/zh-TW/settings-reference#useautomodeduringplan) | 來自任何受管來源、`--settings`、`~/.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使勝出的受管來源設定為 `true` 也會採用;`.claude/settings.json` 中的 `false` 會被忽略 |

314| [`syncClaudeAiSkills`](https://code.claude.com/docs/zh-TW/settings-reference#syncclaudeaiskills) | 來自任何受管來源、`--settings`、`~/.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使獲勝的受管來源設定 `true` 也被尊重;`.claude/settings.json` 中的 `false` 被忽略 |314| [`syncClaudeAiSkills`](https://code.claude.com/docs/zh-TW/settings-reference#syncclaudeaiskills) | 來自任何受管來源、`--settings`、`~/.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使勝出的受管來源設定為 `true` 也會採用;`.claude/settings.json` 中的 `false` 會被忽略 |

315| [`syncClaudeAiPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#syncclaudeaiplugins) | 來自任何受管來源、`--settings`、`~/.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使獲勝的受管來源設定 `true` 也被尊重;`.claude/settings.json` 中的 `false` 被忽略 |315| [`syncClaudeAiPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#syncclaudeaiplugins) | 來自任何受管來源、`--settings`、`~/.claude/settings.json` 或 `.claude/settings.local.json` 的 `false` | 即使勝出的受管來源設定為 `true` 也會採用;`.claude/settings.json` 中的 `false` 會被忽略 |

316| [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) | 來自任何範圍(包括 `--settings`)的較低上限 | 即使 Claude Code 應用的受管設定設定較高的上限也被尊重;最低上限適用。需要 Claude Code v2.1.267 或更新版本 |316| [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) | 來自任何範圍(包括 `--settings`)的較低上限 | 即使 Claude Code 套用的受管設定設定了較高的上限也會採用;以最低的上限為準。需要 Claude Code v2.1.267 或更新版本 |

317 317 

318在自身內部執行 Claude Code 並設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars) 的應用程式也是例外。Claude Code 採用該應用程式的模型設定而不是來自每個受管來源的 `model`、`fallbackModel`、`modelPicker` 和 `modelOverrides` 鍵,以及受管 `env` 區塊中的模型選擇變數,例如 `ANTHROPIC_MODEL` 和 `ANTHROPIC_DEFAULT_*_MODEL` 系列。Claude Code 保持受管 [`availableModels`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels) 允許清單有效,除非應用程式提供自己的。318在自身內部執行 Claude Code 並設定了 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars) 的應用程式也是一個例外。Claude Code 會採用該應用程式的模型設定,優先於來自每個受管來源的 `model`、`fallbackModel`、`modelPicker` 和 `modelOverrides` 鍵,以及受管 `env` 區塊中的模型選擇變數,例如 `ANTHROPIC_MODEL` 和 `ANTHROPIC_DEFAULT_*_MODEL` 系列。除非該應用程式提供自己的允許清單,否則 Claude Code 會讓受管的 [`availableModels`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels) 允許清單持續生效。

319 319 

320## 雲端工作階段中的設定320## 雲端工作階段中的設定

321 321 

settings-reference.md +210 −209

Details

266 266 

267## 模型與回應267## 模型與回應

268 268 

269選擇 Claude Code 使用的模型及其回應方式。如需了解這些設定如何與 `/model` 指令和環境變數互動,請參閱[模型設定](https://code.claude.com/docs/zh-TW/model-config.md)。269選擇 Claude Code 使用哪些模型以及其回應方式。關於這些設定如何與 `/model` 命令及環境變數互動,請參閱[模型設定](https://code.claude.com/docs/zh-TW/model-config.md)。

270 270 

271### `advisorModel`271### `advisorModel`

272 272 

273選擇當 Claude 呼叫伺服器端[顧問工具](https://code.claude.com/docs/zh-TW/advisor.md)時回答的模型。取消設定以關閉顧問。顧問的能力必須至少與您的主要模型相當。請參閱[選擇顧問模型](https://code.claude.com/docs/zh-TW/advisor.md#choose-an-advisor-model)以了解接受的配對及選擇未被接受的配對時會發生什麼。273選擇當 Claude 呼叫伺服器端 [advisor 工具](https://code.claude.com/docs/zh-TW/advisor.md)時由哪個模型回答。取消設定即可關閉 advisor。advisor 的能力必須至少與您的主要模型相當。請參閱[選擇 advisor 模型](https://code.claude.com/docs/zh-TW/advisor.md#choose-an-advisor-model),了解可接受的組合,以及選擇不被接受的組合時會發生什麼情況。

274 274 

275您通常不會手動編輯此金鑰。執行 `/advisor` 以開啟選擇器,顯示目前的選擇、可以提供建議的模型和**無顧問**。Claude Code 會將您的選擇儲存到 `~/.claude/settings.json` 中的此金鑰。如果您從[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md)用戶端或附加到遠端工作者的工作階段中選擇,該選擇僅適用於該工作階段,不會變更此金鑰。275通常不需要手動編輯此鍵。執行 `/advisor` 會開啟一個選擇器,顯示目前的選擇、可擔任 advisor 的模型,以及 **No advisor**。Claude Code 會將您的選擇儲存到 `~/.claude/settings.json` 中的此鍵。如果您是從 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 用戶端,或在連接至遠端 worker 的工作階段中進行選擇,該選擇僅套用於該工作階段,不會變更此鍵。

276 276 

277如果您的帳戶需要[使用額度同意](https://code.claude.com/docs/zh-TW/advisor.md#fable-advisor-and-usage-credits),請先執行 `/model fable` 以接受。在您這樣做之前,在 `/advisor` 中選擇 Fable 不會儲存任何內容,Claude Code 會告訴您先執行 `/model fable`。277如果您的帳戶需要[用量點數同意](https://code.claude.com/docs/zh-TW/advisor.md#fable-advisor-and-usage-credits),請先執行 `/model fable` 接受同意。在您接受之前,於 `/advisor` 中選擇 Fable 不會儲存任何內容,且 Claude Code 會提示您先執行 `/model fable`。

278 278 

279* **範圍**: [`任何檔案`](#scopes)279* **範圍**:[`Any file`](#scopes)

280* **類型**: 字串,別名之一 `"fable"`、`"opus"` 或 `"sonnet"`,解析為 Claude Code 該模型系列的目前預設版本,或完整模型 ID,例如 `"claude-opus-5-5"`280* **類型**:字串,為別名 `"fable"`、`"opus"` 或 `"sonnet"` 之一(會解析為 Claude Code 目前該模型系列的預設版本),或完整的模型 ID,例如 `"claude-opus-5-5"`

281* **預設**: 未設定,因此顧問已關閉281* **預設值**:未設定,因此 advisor 為關閉狀態

282* **每個工作階段的覆蓋**: `--advisor` 優先於此金鑰一個工作階段。[`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](https://code.claude.com/docs/zh-TW/env-vars)關閉顧問,此金鑰無法將其重新開啟282* **每個工作階段的覆寫**:`--advisor` 在單一工作階段中優先於此鍵。[`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](https://code.claude.com/docs/zh-TW/env-vars) 會關閉 advisor,且此鍵無法將其重新開啟

283 283 

284```json settings.json theme={null}284```json settings.json theme={null}

285{285{


287}287}

288```288```

289 289 

290此金鑰對顧問[不可用](https://code.claude.com/docs/zh-TW/advisor.md#requirements)的提供者(例如 Amazon Bedrock 和 AWS 上的 Claude Platform)無效。`"fable"` 需要[Fable 存取](https://code.claude.com/docs/zh-TW/advisor.md#choose-an-advisor-model)。290在 advisor [無法使用](https://code.claude.com/docs/zh-TW/advisor.md#requirements)的供應商上,此鍵不會產生作用,例如 Amazon Bedrock 和 Claude Platform on AWS。`"fable"` 需要 [Fable 存取權](https://code.claude.com/docs/zh-TW/advisor.md#choose-an-advisor-model)。

291 291 

292### `alwaysThinkingEnabled`292### `alwaysThinkingEnabled`

293 293 

294透過將此設定為 `false` 來為每個工作階段關閉[延伸思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)。思考預設為開啟,因此 `true` 不會改變任何內容。大多數人透過 `/config` 而不是編輯檔案來設定此項。294將此設為 `false`,即可在每個工作階段中關閉[延伸思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)。思考預設為開啟,因此 `true` 不會改變任何事情。大多數人透過 `/config` 設定此項,而不是直接編輯檔案。

295 295 

296在始終思考的模型上,例如 Opus 5.5、Sonnet 5.5、Haiku 5.5 和 Fable 模型,`false` 無效。在[第三方提供者](https://code.claude.com/docs/zh-TW/third-party-integrations.md)上,Claude Code 會省略 `thinking` 參數而不是關閉思考,因此自適應推理模型可能仍會思考。在 Anthropic API 上關閉思考時,對於 Claude Code 已知[不接受該組合](https://code.claude.com/docs/zh-TW/errors.md#effort-isnt-available-with-thinking-turned-off)的模型(例如 Opus 5),Claude Code 會傳送 effort `high` 而不是更高的等級。296在始終進行思考的模型上,例如 Opus 5.5、Sonnet 5.5、Haiku 5.5 以及 Fable 模型,`false` 不會產生作用。在[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)上,Claude Code 會省略 `thinking` 參數而非關閉思考,因此自適應推理模型仍可能進行思考。在 Anthropic API 上關閉思考時,對於 Claude Code 已知[不接受該組合](https://code.claude.com/docs/zh-TW/errors.md#effort-isnt-available-with-thinking-turned-off)的模型(例如 Opus 5),Claude Code 會傳送 effort `high` 而非更高的等級。

297 297 

298* **範圍**: [`任何檔案`](#scopes)298* **範圍**:[`Any file`](#scopes)

299* **類型**: 布林值299* **類型**:Boolean

300 * `true`: 無效;思考已經開啟300 * `true`:沒有作用;思考已開啟

301 * `false`: Claude Code 為每個工作階段關閉延伸思考301 * `false`:Claude Code 在每個工作階段中關閉延伸思考

302* **預設**: 未設定,因此思考對支援它的模型開啟302* **預設值**:未設定,因此支援思考的模型會開啟思考

303* **每個工作階段的覆蓋**: [`MAX_THINKING_TOKENS`](https://code.claude.com/docs/zh-TW/env-vars)優先於此金鑰一個工作階段:`0` 關閉思考,受相同的模型和提供者限制如 `false`,正值開啟思考,即使此金鑰為 `false`。在自適應推理模型上,數字本身被忽略303* **每個工作階段的覆寫**:[`MAX_THINKING_TOKENS`](https://code.claude.com/docs/zh-TW/env-vars) 在單一工作階段中優先於此鍵:`0` 會關閉思考,受與 `false` 相同的模型和供應商限制;正值則會開啟思考,即使此鍵為 `false` 亦然。在自適應推理模型上,數值本身會被忽略

304 304 

305```json settings.json theme={null}305```json settings.json theme={null}

306{306{


310 310 

311### `availableModels`311### `availableModels`

312 312 

313限制人們可以為主要工作階段、[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)、[技能](https://code.claude.com/docs/zh-TW/skills.md)和[顧問](https://code.claude.com/docs/zh-TW/advisor.md)選擇的模型。受管清單限制 `/model`、`--model` 和開發人員自己檔案中的 `model` 金鑰;清單外的模型無法選擇。使用預設的前綴符合,這不會單獨觸及預設選項;將其與 [`enforceAvailableModels`](#enforceavailablemodels) 配對以實現該目的。313限制使用者可為主要工作階段、[subagent](https://code.claude.com/docs/zh-TW/sub-agents.md)、[skill](https://code.claude.com/docs/zh-TW/skills.md) 以及 [advisor](https://code.claude.com/docs/zh-TW/advisor.md) 選擇哪些模型。受管清單會限制 `/model`、`--model`,以及開發者自己檔案中的 `model` 鍵;清單以外的模型無法被選擇。在預設的前綴比對下,此鍵本身不會影響 Default 選項;若要影響該選項,請搭配 [`enforceAvailableModels`](#enforceavailablemodels) 使用。

314 314 

315* **範圍**: [`任何檔案`](#scopes)。在受管設定中部署以為組織強制執行。315* **範圍**:[`Any file`](#scopes)。將其部署於受管設定中,即可為組織強制執行。

316* **類型**: 模型別名或 ID 的陣列316* **類型**:模型別名或 ID 的陣列

317* **預設**: 未設定,因此每個模型都可用317* **預設值**:未設定,因此所有模型皆可使用

318 318 

319此範例僅允許人們選擇 Sonnet 和 Haiku 模型:319此範例讓使用者只能選擇 Sonnet 和 Haiku 模型:

320 320 

321```json settings.json theme={null}321```json settings.json theme={null}

322{322{


324}324}

325```325```

326 326 

327模型 ID 項目(例如 `"claude-opus-5"`)也允許擴展它的更新版本,例如 Opus 5.5。要阻止其中一個版本,請使用 [`deniedModels`](#deniedmodels)。要使每個模型 ID 項目僅允許它命名的版本,請使用 [`availableModelsMatch`](#availablemodelsmatch)。請參閱[限制模型選擇](https://code.claude.com/docs/zh-TW/model-config.md#restrict-model-selection)。如需第三方提供者 ID,請參閱[為第三方部署固定模型](https://code.claude.com/docs/zh-TW/model-config.md#pin-models-for-third-party-deployments)。327像 `"claude-opus-5"` 這樣的模型 ID 項目,也會允許延伸自該 ID 的後續版本,例如 Opus 5.5。若要封鎖其中某個版本,請使用 [`deniedModels`](#deniedmodels)。若要讓每個模型 ID 項目只允許其所指定的版本,請使用 [`availableModelsMatch`](#availablemodelsmatch)。請參閱[限制模型選擇](https://code.claude.com/docs/zh-TW/model-config.md#restrict-model-selection)。關於第三方供應商的 ID,請參閱[為第三方部署固定模型](https://code.claude.com/docs/zh-TW/model-config.md#pin-models-for-third-party-deployments)。

328 328 

329### `availableModelsMatch`329### `availableModelsMatch`

330 330 

331選擇 [`availableModels`](#availablemodels) 項目如何符合模型 ID。預設情況下,模型 ID 項目也允許擴展它的更新版本,因此 `"claude-opus-5"` 允許 Opus 5.5。使用 `"exact"`,每個模型 ID 項目僅允許它命名的版本,因此該模型的更新版本保持被阻止,直到您列出它。需要 Claude Code v2.1.283 或更新版本。331選擇 [`availableModels`](#availablemodels) 項目如何比對模型 ID。預設情況下,模型 ID 項目也會允許延伸自該 ID 的後續版本,因此 `"claude-opus-5"` 會允許 Opus 5.5。使用 `"exact"` 時,每個模型 ID 項目只允許其所指定的版本,因此該模型的較新版本在您將其列出之前都會保持封鎖。需要 Claude Code v2.1.283 或更新版本。

332 332 

333* **範圍**: [`受管`](#scopes)。Claude Code 在使用者、專案和本地設定以及 `--settings` 中忽略金鑰,並帶有警告333* **範圍**:[`Managed`](#scopes)。Claude Code 會忽略使用者、專案及本機設定中以及 `--settings` 中的此鍵,並顯示警告

334* **類型**: 字串,其中之一:334* **類型**:字串,為下列之一:

335 * `"prefix"`: 模型 ID 項目允許其版本和任何用另一個區段擴展它的模型 ID335 * `"prefix"`:模型 ID 項目允許其版本,以及任何以另一個片段延伸該 ID 的模型 ID

336 * `"exact"`: 模型 ID 項目僅允許它命名的版本,因此 `"claude-opus-5"` 允許 Opus 5 但不允許 `claude-opus-5-5`。像 `"claude-opus-4-5"` 這樣的項目也允許其帶日期的 Anthropic 模型 ID `claude-opus-4-5-20251101`。系列別名(例如 `"opus"`)仍然允許整個系列,`best`、`opusplan` 和 `default` 項目被忽略336 * `"exact"`:模型 ID 項目只允許其所指定的版本,因此 `"claude-opus-5"` 允許 Opus 5 但不允許 `claude-opus-5-5`。像 `"claude-opus-4-5"` 這樣的項目也會允許其帶日期的 Anthropic 模型 ID `claude-opus-4-5-20251101`。像 `"opus"` 這樣的系列別名仍會允許整個系列,而 `best`、`opusplan` 和 `default` 項目會被忽略

337* **預設**: `"prefix"`337* **預設值**:`"prefix"`

338 338 

339此範例允許 Opus 5 和 Sonnet 5,不允許任何更新版本:339此範例允許 Opus 5 和 Sonnet 5,但不允許兩者的任何後續版本:

340 340 

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

342{342{


345}345}

346```346```

347 347 

348使用 `"exact"`,預設選項也限制為列出的模型,只要清單至少命名一個模型或系列。請參閱[阻止特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions)。348使用 `"exact"` 時,只要清單至少列出一個模型或系列,Default 選項也會被限制在所列出的模型中。請參閱[封鎖特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions)。

349 349 

350### `deniedModels`350### `deniedModels`

351 351 

352阻止特定模型,無論是否有 [`availableModels`](#availablemodels) 允許清單,即使該清單允許它們。Claude Code 從 `/model` 選擇器隱藏被阻止的模型,該模型無法在強制執行 `availableModels` 的任何地方選擇。預設選項上的工作階段也不執行被阻止的模型,如[阻止特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions)所述。需要 Claude Code v2.1.283 或更新版本。352封鎖特定模型,無論是否有 [`availableModels`](#availablemodels) 允許清單,且即使該清單允許這些模型亦然。Claude Code 會在 `/model` 選擇器中隱藏被封鎖的模型,且在任何強制執行 `availableModels` 的地方都無法選擇該模型。使用 Default 選項的工作階段也不會執行被封鎖的模型,如[封鎖特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions)所述。需要 Claude Code v2.1.283 或更新版本。

353 353 

354* **範圍**: [`受管`](#scopes)。Claude Code 在使用者、專案和本地設定以及 `--settings` 中忽略金鑰,並帶有警告354* **範圍**:[`Managed`](#scopes)。Claude Code 會忽略使用者、專案及本機設定中以及 `--settings` 中的此鍵,並顯示警告

355* **類型**: 模型別名或 ID 的陣列355* **類型**:模型別名或 ID 的陣列

356 * 系列別名(例如 `"opus"`)阻止該系列中的每個模型356 * 像 `"opus"` 這樣的系列別名會封鎖該系列中的所有模型

357 * 模型 ID(例如 `"claude-opus-5-5"`)在每個拼寫中阻止該版本,包括日期和提供者特定 ID357 * 像 `"claude-opus-5-5"` 這樣的模型 ID 會封鎖該版本的所有寫法,包括帶日期的 ID 和供應商特定的 ID

358 * 沒有次要版本的模型 ID(例如 `"claude-opus-5"`)也阻止更新的次要版本,例如 Opus 5.5。寫 `"claude-opus-5-0"` 以僅阻止 Opus 5358 * 沒有次版本號的模型 ID,例如 `"claude-opus-5"`,也會封鎖後續的次版本,例如 Opus 5.5。若只要封鎖 Opus 5,請寫成 `"claude-opus-5-0"`

359 * `best`、`opusplan` 和 `default` 項目被忽略359 * `best`、`opusplan` 和 `default` 項目會被忽略

360* **預設**: 未設定,因此沒有模型被阻止360* **預設值**:未設定,因此不會封鎖任何模型

361 361 

362此範例允許 Opus 和 Sonnet 模型,並阻止 Opus 5.5:362此範例允許 Opus 和 Sonnet 模型,並封鎖 Opus 5.5:

363 363 

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

365{365{


368}368}

369```369```

370 370 

371請參閱[阻止特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions)。371請參閱[封鎖特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions)。

372 372 

373### `effortLevel`373### `effortLevel`

374 374 

375為您尚未儲存級別的模型設定預設[努力級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。較低的級別在直接任務上更快且更便宜,較高的級別在複雜問題上推理更深入。375為尚未儲存等級的模型設定預設的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。較低的等級在簡單任務上更快且更便宜,較高的等級則會針對複雜問題進行更深入的推理。

376 376 

377當您在機器上的互動工作階段中執行 `/effort low`、`medium`、`high` 或 `xhigh` 時,Claude Code 會在 [`modelSettings`](#modelsettings) 下為活動模型儲存級別,而不是寫入此金鑰。在 v2.1.251 之前,`/effort` 寫入此金鑰。377當您在本機的互動式工作階段中執行 `/effort low`、`medium`、`high` 或 `xhigh` 時,Claude Code 會將該等級儲存在 [`modelSettings`](#modelsettings) 中目前使用的模型之下,而不是寫入此鍵。在 v2.1.251 之前,`/effort` 會寫入此鍵。

378 378 

379在同一設定檔中,Claude Code 使用模型的儲存級別而不是此金鑰。[`modelSettings`](#modelsettings)說明跨檔案優先順序。379在同一個設定檔中,Claude Code 會使用模型已儲存的等級,而非此鍵。[`modelSettings`](#modelsettings) 說明了跨檔案的優先順序。

380 380 

381在附加到遠端工作者的工作階段中、在 `-p` 執行中以及在 Agent SDK 中,`/effort` 僅適用於該工作階段。[調整努力級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)列出也僅適用於該工作階段的互動選擇。`/effort` 列印的訊息說明發生了什麼。381在連接至遠端 worker 的工作階段、`-p` 執行以及 Agent SDK 中,`/effort` 只會套用於該工作階段。[調整 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)列出了同樣只套用於該工作階段的互動式選擇。`/effort` 所顯示的訊息會說明實際發生的情況。

382 382 

383* **範圍**: [`任何檔案`](#scopes)383* **範圍**:[`Any file`](#scopes)

384* **類型**: 字串,其中之一:384* **類型**:字串,為下列之一:

385 * `"low"`: 最少推理,用於短期、範圍內、延遲敏感且不是智慧敏感的任務385 * `"low"`:最少的推理,適用於簡短、範圍明確、對延遲敏感且不需要高度智慧的任務

386 * `"medium"`: 減少成本敏感工作的令牌使用,可以權衡一些智慧386 * `"medium"`:為對成本敏感、可犧牲部分智慧的工作減少 token 使用量

387 * `"high"`: 平衡令牌使用和智慧387 * `"high"`:在 token 使用量與智慧之間取得平衡

388 * `"xhigh"`: 更深入的推理,令牌支出更高388 * `"xhigh"`:以較高的 token 花費進行更深入的推理

389* **預設**: 未設定389* **預設值**:未設定

390* **每個工作階段的覆蓋**: `--effort` 優先於此金鑰一個工作階段,[`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/zh-TW/env-vars)優先於兩者390* **每個工作階段的覆寫**:`--effort` 在單一工作階段中優先於此鍵,而 [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/zh-TW/env-vars) 則優先於兩者

391 391 

392```json settings.json theme={null}392```json settings.json theme={null}

393{393{


395}395}

396```396```

397 397 

398在您的使用者設定檔 `~/.claude/settings.json` 中,此金鑰是 `/effort` 在按模型儲存級別之前寫入的較舊形式,它繼續適用於之前適用的地方,在 Opus 5、Fable 5.1 和較早的模型上。Opus 5.5 和之後發佈的模型忽略它,並從它們自己的預設開始,直到您為它們儲存級別,`/effort` 在 [`modelSettings`](#modelsettings) 下寫入。在專案、本地和受管設定中,以及使用 `--settings` 時,此金鑰適用於每個模型。398在您的使用者設定檔 `~/.claude/settings.json` 中,此鍵是 `/effort` 在依模型儲存等級之前所寫入的舊格式,並會繼續套用於先前套用的地方,即 Opus 5、Fable 5.1 及更早的模型。Opus 5.5 以及在其之後發布的模型會忽略此鍵,並以其自身的預設值開始,直到您為其儲存等級為止,而 `/effort` 會將該等級寫入 [`modelSettings`](#modelsettings) 之下。在專案、本機及受管設定中,以及使用 `--settings` 時,此鍵會套用於所有模型。

399 399 

400### `enforceAvailableModels`400### `enforceAvailableModels`

401 401 

402`/model` 選擇器有一個**預設**選項,[`default` 模型設定](https://code.claude.com/docs/zh-TW/model-config#default-model-setting)描述它解析為的模型。[`availableModels`](#availablemodels) 允許清單限制您可以命名的模型,但使用預設的[前綴符合](#availablemodelsmatch),它不會重新對應您帳戶類型的預設,因此**預設**仍可解析為清單外的模型。此金鑰關閉該間隙。需要 Claude Code v2.1.175 或更新版本。402`/model` 選擇器有一個 **Default** 選項,而 [`default` 模型設定](https://code.claude.com/docs/zh-TW/model-config#default-model-setting)描述了它所解析的模型。[`availableModels`](#availablemodels) 允許清單會限制您可以指定的模型,但在預設的[前綴比對](#availablemodelsmatch)下,它不會重新對應您帳戶類型的預設值,因此 **Default** 仍可能解析為清單以外的模型。此鍵可補上這個缺口。需要 Claude Code v2.1.175 或更新版本。

403 403 

404當您的組織部署任何受管設定時,Claude Code 僅從受管來源讀取此金鑰,並忽略您其他檔案中的此金鑰。404當您的組織部署任何受管設定時,Claude Code 只會從受管來源讀取此鍵,並忽略您其他檔案中的此鍵。

405 405 

406如需了解此設定鍵如何套用於啟動時的模型檢查,請參閱 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#when-your-organization-enforces-a-model-allowlist) 和 [Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#when-your-organization-enforces-a-model-allowlist)。406關於此鍵如何套用於啟動時的模型檢查,請參閱 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#when-your-organization-enforces-a-model-allowlist) 和 [Google Cloud's Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#when-your-organization-enforces-a-model-allowlist)。

407 407 

408* **範圍**: [`任何檔案`](#scopes)408* **範圍**:[`Any file`](#scopes)

409* **類型**: 布林值409* **類型**:Boolean

410 * `true`: 當**預設**會解析為 `availableModels` 外的模型時,Claude Code 將其解析為清單中第一個可用的模型410 * `true`:當 **Default** 會解析為 `availableModels` 以外的模型時,Claude Code 會將其解析為清單中第一個可用的模型

411 * `false`: 此金鑰不會改變**預設**如何解析411 * `false`:此鍵不會改變 **Default** 的解析方式

412* **預設**: `false`412* **預設值**:`false`

413 413 

414此範例將命名選擇限制為 Sonnet 和 Haiku 模型,並使**預設**解析為其中第一個可用的:414此範例將指定的選擇限制為 Sonnet 和 Haiku 模型,並讓 **Default** 解析為其中第一個可用的模型:

415 415 

416```json settings.json theme={null}416```json settings.json theme={null}

417{417{


420}420}

421```421```

422 422 

423當 `availableModels` 未設定或為空時,此金鑰無效。請參閱[為預設模型強制執行允許清單](https://code.claude.com/docs/zh-TW/model-config.md#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更新版本。423當 `availableModels` 未設定或為空時,此鍵不會產生作用。請參閱[為 Default 模型強制執行允許清單](https://code.claude.com/docs/zh-TW/model-config.md#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更新版本。

424 424 

425### `fallbackModel`425### `fallbackModel`

426 426 

427命名備份模型供 Claude Code 在您的主要模型過載或不可用時依序嘗試。Claude Code 為該輪的其餘部分切換到備用模型鏈中下一個可用的模型,並顯示通知。沒有鏈的情況下,Claude Code 重試相同的模型,然後顯示伺服器的錯誤,您重試或自己切換模型。427指定當您的主要模型過載或無法使用時,Claude Code 依序嘗試的備援模型。Claude Code 會在該回合的剩餘部分切換至鏈中下一個可用的模型,並顯示通知。若沒有設定鏈,Claude Code 會重試同一個模型,然後顯示伺服器的錯誤,由您自行重試或切換模型。

428 428 

429切換意味著在備用模型上進行一輪冷[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md#switching-models);您的下一條訊息首先再次嘗試主要模型。429一次切換代表在備援模型上會有一個[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md#switching-models)為冷狀態的回合;您的下一則訊息會再次先嘗試主要模型。

430 430 

431* **範圍**: [`任何檔案`](#scopes)431* **範圍**:[`Any file`](#scopes)

432* **類型**: 模型別名或 ID 的陣列;`"default"` 擴展為預設模型432* **類型**:模型別名或 ID 的陣列;`"default"` 會展開為預設模型

433* **預設**: 未設定,因此失敗的請求不會在另一個模型上重試433* **預設值**:未設定,因此失敗的請求不會在其他模型上重試

434* **每個工作階段的覆蓋**: `--fallback-model` 優先於此金鑰一個工作階段434* **每個工作階段的覆寫**:`--fallback-model` 在單一工作階段中優先於此鍵

435 435 

436此範例在您的主要模型失敗時首先嘗試 Sonnet 5,然後嘗試 Haiku 4.5:436此範例在主要模型失敗時,先嘗試 Sonnet 5,再嘗試 Haiku 4.5:

437 437 

438```json settings.json theme={null}438```json settings.json theme={null}

439{439{


441}441}

442```442```

443 443 

444與大多數陣列設定不同,此金鑰不會跨設定檔合併:最高優先順序的定義它的檔案提供整個鏈。如果您的專案檔案設定 `["claude-sonnet-5"]` 而您的使用者檔案設定 `["claude-haiku-4-5"]`,鏈是 `["claude-sonnet-5"]` 只。Claude Code 從清單中保留最多三個不同的允許模型,並忽略其餘的。請參閱[備用模型鏈](https://code.claude.com/docs/zh-TW/model-config.md#fallback-model-chains)。444與大多數陣列設定不同,此鍵不會跨設定檔合併:定義此鍵且優先順序最高的檔案會提供整個鏈。如果您的專案檔案設定為 `["claude-sonnet-5"]`,而使用者檔案設定為 `["claude-haiku-4-5"]`,則鏈僅為 `["claude-sonnet-5"]`。Claude Code 最多保留清單中三個不同的允許模型,並忽略其餘模型。請參閱[備援模型鏈](https://code.claude.com/docs/zh-TW/model-config.md#fallback-model-chains)。

445 445 

446### `fastMode`446### `fastMode`

447 447 

448為可用的工作階段開啟[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md),用於互動工作,例如快速迭代或實時除錯,您想要以更高的每令牌成本換取速度。您通常不會手動編輯此金鑰:執行 `/fast` 將 `fastMode: true` 寫入 `~/.claude/settings.json`,再次執行以關閉快速模式會移除金鑰。快速模式僅在 Opus 5.5、Opus 5 和 Opus 4.8 上執行:從另一個模型開啟它會將您切換到 Opus,切換到不支援的模型會關閉它。請參閱[在快速模式開啟時切換模型](https://code.claude.com/docs/zh-TW/fast-mode.md#switch-models-while-fast-mode-is-on)。448在可使用[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)的工作階段中開啟快速模式,適用於快速迭代或即時除錯等互動式工作,讓您以較高的每 token 成本換取速度。通常不需要手動編輯此鍵:執行 `/fast` 會將 `fastMode: true` 寫入 `~/.claude/settings.json`,再次執行以關閉快速模式則會移除此鍵。快速模式只能在 Opus 5.5、Opus 5 和 Opus 4.8 上執行:從其他模型開啟快速模式會將您切換至 Opus,而切換至不支援的模型則會關閉快速模式。請參閱[在快速模式開啟時切換模型](https://code.claude.com/docs/zh-TW/fast-mode.md#switch-models-while-fast-mode-is-on)。

449 449 

450* **範圍**: [`任何檔案`](#scopes)450* **範圍**:[`Any file`](#scopes)

451* **類型**: 布林值451* **類型**:Boolean

452 * `true`: Claude Code 為可用的工作階段開啟快速模式452 * `true`:Claude Code 在可使用快速模式的工作階段中開啟快速模式

453 * `false`: 快速模式保持關閉453 * `false`:快速模式保持關閉

454* **預設**: 未設定,因此快速模式已關閉454* **預設值**:未設定,因此快速模式為關閉狀態

455* **每個工作階段的覆蓋**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/zh-TW/env-vars)為一個工作階段關閉快速模式,此金鑰無法將其重新開啟455* **每個工作階段的覆寫**:[`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/zh-TW/env-vars) 會在單一工作階段中關閉快速模式,且此鍵無法將其重新開啟

456 456 

457```json settings.json theme={null}457```json settings.json theme={null}

458{458{


462 462 

463### `fastModePerSessionOptIn`463### `fastModePerSessionOptIn`

464 464 

465通常,執行 `/fast` 會將 [`fastMode`](#fastmode)儲存到人員的使用者設定,因此快速模式在之後每個工作階段的開始時開啟。將此金鑰設定為 `true` 以停止:儲存的 `fastMode: true` 不再在工作階段開始時開啟快速模式,每個人必須在他們想要的每個工作階段中執行 `/fast`。Claude Code 在其檔案中保留 `fastMode` 金鑰,因此關閉此金鑰會恢復舊行為。465通常,執行 `/fast` 會將 [`fastMode`](#fastmode) 儲存到使用者的使用者設定中,因此在之後每個工作階段開始時快速模式都會開啟。將此鍵設為 `true` 即可停止此行為:已儲存的 `fastMode: true` 不再於工作階段開始時開啟快速模式,每位使用者都必須在需要的每個工作階段中執行 `/fast`。Claude Code 會保留其檔案中的 `fastMode` 鍵,因此關閉此鍵即可恢復舊有行為。

466 466 

467Team 或 Enterprise 計畫的擁有者可以透過[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)在組織範圍內部署它。當受管設定設定金鑰時,`/fast on` 在互動終端工作階段外被拒絕,並報告您的組織已停用快速模式。這涵蓋[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)、[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)和[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)。467Team 或 Enterprise 方案的擁有者可以透過[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)在整個組織中部署此鍵。當受管設定設定了此鍵時,`/fast on` 在互動式終端機工作階段以外會被拒絕,並回報您的組織已停用快速模式。這包括[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)、[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)以及[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)。

468 468 

469* **範圍**: [`任何檔案`](#scopes)469* **範圍**:[`Any file`](#scopes)

470* **類型**: 布林值470* **類型**:Boolean

471 * `true`: 儲存的 `fastMode: true` 不再在工作階段開始時開啟快速模式,因此每個人在他們想要的每個工作階段中執行 `/fast`;使用 `--settings` 傳遞的 `fastMode: true` 仍然計為該工作階段,除非受管設定設定此金鑰471 * `true`:已儲存的 `fastMode: true` 不再於工作階段開始時開啟快速模式,因此每位使用者需在需要的每個工作階段中執行 `/fast`;除非受管設定設定了此鍵,否則透過 `--settings` 傳入的 `fastMode: true` 仍會對該工作階段生效

472 * `false`: 儲存的 `fastMode: true` 在之後每個工作階段的開始時開啟快速模式472 * `false`:已儲存的 `fastMode: true` 會在之後每個工作階段開始時開啟快速模式

473* **預設**: `false`473* **預設值**:`false`

474 474 

475```json settings.json theme={null}475```json settings.json theme={null}

476{476{


478}478}

479```479```

480 480 

481請參閱[要求每個工作階段的選擇加入](https://code.claude.com/docs/zh-TW/fast-mode.md#require-per-session-opt-in)。481請參閱[要求每個工作階段選擇加入](https://code.claude.com/docs/zh-TW/fast-mode.md#require-per-session-opt-in)。

482 482 

483### `language`483### `language`

484 484 

485預設讓 Claude 以英文以外的語言回應。回應沒有固定清單:Claude Code 將值逐字傳遞給 Claude 作為始終以該語言回應的指令,因此任何 Claude 可以讀取的語言名稱都有效。Claude Code 不檢查值,因此拼寫錯誤的名稱會按原樣到達 Claude,而不是產生錯誤。相同的值設定[語音聽寫](https://code.claude.com/docs/zh-TW/voice-dictation.md#change-the-dictation-language)的語言,它確實有[支援的聽寫語言](https://code.claude.com/docs/zh-TW/voice-dictation.md#change-the-dictation-language)的固定清單,以及自動生成的工作階段標題。485讓 Claude 預設以英文以外的語言回應。回應語言沒有固定清單:Claude Code 會將此值原封不動地傳給 Claude,作為始終以該語言回應的指令,因此任何 Claude 能讀懂的語言名稱都可使用。Claude Code 不會檢查此值,因此拼錯的名稱會原樣傳給 Claude,而不會產生錯誤。同一個值也會設定[語音聽寫](https://code.claude.com/docs/zh-TW/voice-dictation.md#change-the-dictation-language)的語言(語音聽寫確實有固定的[支援聽寫語言](https://code.claude.com/docs/zh-TW/voice-dictation.md#change-the-dictation-language)清單),以及自動產生的工作階段標題的語言。

486 486 

487* **範圍**: [`任何檔案`](#scopes)487* **範圍**:[`Any file`](#scopes)

488* **類型**: 字串,任何語言名稱,例如 `"japanese"`、`"spanish"` 或 `"french"`;Claude Code 不驗證它488* **類型**:字串,任何語言名稱,例如 `"japanese"`、`"spanish"` 或 `"french"`;Claude Code 不會驗證此值

489* **預設**: 未設定;工作階段標題然後符合您對話的語言489* **預設值**:未設定;此時工作階段標題會與您對話的語言一致

490 490 

491```json settings.json theme={null}491```json settings.json theme={null}

492{492{


496 496 

497### `maxEffortLevel`497### `maxEffortLevel`

498 498 

499限制工作階段可以使用的[努力級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level),保留較低的級別可用。任何更高的級別改為在上限執行,包括來自 `/effort`、`/model` 選擇器、`--effort`、[`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/zh-TW/env-vars)、技能或子代理的 `effort` frontmatter 或模型自己的預設。Claude Code 在每個請求之前自己應用上限,因此它在每個提供者上保持,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry。需要 Claude Code v2.1.267 或更新版本。499為工作階段可使用的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)設定上限,較低的等級仍可使用。任何較高的等級都會改以上限執行,包括來自 `/effort`、`/model` 選擇器、`--effort`、[`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/zh-TW/env-vars)、skill 或 subagent 的 `effort` frontmatter,或模型自身預設值的等級。Claude Code 會在每次請求前自行套用上限,因此在所有供應商上都有效,包括 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry。需要 Claude Code v2.1.267 或更新版本。

500 500 

501* **範圍**: [`任何檔案`](#scopes)。在受管設定中部署以為組織強制執行。當多個範圍設定上限時,最低的適用,因此在一個範圍中設定的上限無法從另一個範圍提高501* **範圍**:[`Any file`](#scopes)。將其部署於受管設定中,即可為組織強制執行。當多個範圍設定了上限時,會套用最低的上限,因此在某個範圍設定的上限無法從另一個範圍提高

502* **類型**: 字串,其中之一 `"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。`"max"` 值設定無上限502* **類型**:字串,為 `"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"` 之一。`"max"` 值表示不設上限

503* **預設**: 未設定,因此無上限適用503* **預設值**:未設定,因此不套用任何上限

504* **每個模型的上限**: 將 `maxEffortLevel` 新增到模型的 [`modelSettings`](#modelsettings) 項目。該項目在設定來源(例如您的使用者設定或一個[受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources))中設定兩者的範圍內僅替換該模型的此金鑰。在那裡設定 `"max"` 以豁免該模型免受該來源的上限;Claude Code 仍然應用來自其他來源的上限504* **每個模型的上限**:在模型的 [`modelSettings`](#modelsettings) 項目中加入 `maxEffortLevel`。該項目只會在同時設定兩者的設定來源中(例如您的使用者設定或某一個[受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)),針對該模型取代此鍵。在該處設定 `"max"` 可讓該模型免受該來源的上限限制;Claude Code 仍會套用其他來源的上限

505 505 

506此範例將每個模型限制在 `medium`,並豁免 Sonnet 4.6:506此範例將所有模型的上限設為 `medium`,並讓 Sonnet 4.6 免受限制:

507 507 

508```json settings.json theme={null}508```json settings.json theme={null}

509{509{


516}516}

517```517```

518 518 

519當您的組織也為模型設定[努力限制](https://code.claude.com/docs/zh-TW/model-config.md#organization-effort-limits)時,兩個上限中較低的適用。519當您的組織也為某個模型設定了 [effort 限制](https://code.claude.com/docs/zh-TW/model-config.md#organization-effort-limits)時,會套用兩個上限中較低者。

520 520 

521### `model`521### `model`

522 522 

523設定每個新工作階段使用的模型,因此您不必每次都使用 `/model` 選擇一個。在此設定它不會阻止您在工作階段中期切換。如果您的管理員設定[組織預設模型](https://code.claude.com/docs/zh-TW/model-config.md#organization-default-model)以覆蓋使用者選擇,即使您在使用者、專案或本地設定中設定此金鑰,您也會獲得該模型。523設定每個新工作階段使用的模型,這樣您就不必每次都用 `/model` 選擇。在此設定不會妨礙您在工作階段中途切換模型。如果您的管理員設定了[組織預設模型](https://code.claude.com/docs/zh-TW/model-config.md#organization-default-model)來覆寫使用者的選擇,即使您在使用者、專案或本機設定中設定了此鍵,您仍會使用該模型。

524 524 

525* **範圍**: [`任何檔案`](#scopes)525* **範圍**:[`Any file`](#scopes)

526* **類型**: 字串,模型別名或完整模型 ID526* **類型**:字串,模型別名或完整的模型 ID

527* **預設**: 未設定,因此 Claude Code 使用您帳戶的預設模型527* **預設值**:未設定,因此 Claude Code 會使用您帳戶的預設模型

528* **每個工作階段的覆蓋**: `--model` 優先於 [`ANTHROPIC_MODEL`](https://code.claude.com/docs/zh-TW/env-vars),兩者優先於此金鑰一個工作階段,包括優先於受管 `model`;[`availableModels`](#availablemodels) 清單仍然適用於選擇528* **每個工作階段的覆寫**:`--model` 優先於 [`ANTHROPIC_MODEL`](https://code.claude.com/docs/zh-TW/env-vars),而兩者在單一工作階段中都優先於此鍵,包括優先於受管的 `model`;[`availableModels`](#availablemodels) 清單仍會套用於所選模型

529 529 

530```json settings.json theme={null}530```json settings.json theme={null}

531{531{


533}533}

534```534```

535 535 

536此處的值優先於 [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/zh-TW/model-config#set-a-default-model-for-new-sessions),Claude Code 僅在沒有其他內容選擇模型時使用。536此處的值優先於 [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/zh-TW/model-config#set-a-default-model-for-new-sessions),Claude Code 只在沒有其他項目選擇模型時才會使用後者。

537 537 

538### `modelOverrides`538### `modelOverrides`

539 539 

540將 Anthropic 模型 ID 對應到提供者特定的模型 ID,例如 Amazon Bedrock 推論設定檔 ARN。每個模型選擇器項目然後在呼叫提供者 API 時使用其對應的值。管理員在[Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](https://code.claude.com/docs/zh-TW/model-config.md#override-model-ids-per-version)上使用此項以將每個模型版本路由到特定的推論設定檔、版本名稱或部署,以進行治理、成本分配或區域路由。540將 Anthropic 模型 ID 對應至供應商特定的模型 ID,例如 Amazon Bedrock 推論設定檔 ARN。模型選擇器中的每個項目在呼叫供應商 API 時,就會使用其對應的值。管理員會在 [Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry](https://code.claude.com/docs/zh-TW/model-config.md#override-model-ids-per-version) 上使用此設定,將每個模型版本導向特定的推論設定檔、版本名稱或部署,以用於治理、成本分攤或區域路由。

541 541 

542* **範圍**: [`任何檔案`](#scopes)542* **範圍**:[`Any file`](#scopes)

543* **類型**: 將模型 ID 對應到提供者模型 ID 的物件543* **類型**:將模型 ID 對應至供應商模型 ID 的物件

544* **預設**: 未設定544* **預設值**:未設定

545 545 

546此範例將 Opus 4.6 的每個呼叫路由到命名的 Bedrock 推論設定檔:546此範例將所有 Opus 4.6 的呼叫導向指定的 Bedrock 推論設定檔:

547 547 

548```json settings.json theme={null}548```json settings.json theme={null}

549{549{


553}553}

554```554```

555 555 

556請參閱[按版本覆蓋模型 ID](https://code.claude.com/docs/zh-TW/model-config.md#override-model-ids-per-version)。556請參閱[依版本覆寫模型 ID](https://code.claude.com/docs/zh-TW/model-config.md#override-model-ids-per-version)。

557 557 

558### `modelPicker`558### `modelPicker`

559 559 

560列出 `/model` 選擇器提供的模型,按您寫入的順序和您選擇的標籤下,因此選擇器列出您的組織執行的模型,在內建陣容之後或代替它。每行的 `model` 逐字取用,因此它接受 `--model` 接受的任何內容:別名(例如 `opus`)、Anthropic 模型 ID 或 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 LLM 閘道的提供者格式 ID。需要 Claude Code v2.1.242 或更新版本。560列出 `/model` 選擇器所提供的模型,依您撰寫的順序並使用您選擇的標籤,讓選擇器在內建陣容之後或取代內建陣容,列出您組織所執行的模型。每一列的 `model` 會原封不動地採用,因此它接受任何 `--model` 接受的值:像 `opus` 這樣的別名、Anthropic 模型 ID,或適用於 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或 LLM 閘道的供應商格式 ID。需要 Claude Code v2.1.242 或更新版本。

561 561 

562* **範圍**: [`使用者或受管`](#scopes)。Claude Code 從受管設定、`--settings` 和使用者設定讀取金鑰,並在專案和本地設定中忽略它,因此您複製的儲存庫無法重新標籤選擇器。這三個中最高的設定金鑰提供整個陣容,Claude Code 永遠不會合併來自兩個來源的陣容。562* **範圍**:[`User or managed`](#scopes)。Claude Code 會從受管設定、`--settings` 和使用者設定讀取此鍵,並忽略專案及本機設定中的此鍵,以免您複製的儲存庫重新標記選擇器。這三者中設定了此鍵且優先順序最高者會提供整個陣容,Claude Code 絕不會合併來自兩個來源的陣容。

563* **類型**: 具有 `options` 陣列的物件和可選的 `replaceBuiltInOptions` 布林值563* **類型**:包含列組成的 `options` 陣列以及選用的 `replaceBuiltInOptions` Boolean 的物件

564* **預設**: 未設定,因此選擇器顯示內建陣容564* **預設值**:未設定,因此選擇器會顯示內建陣容

565 565 

566此範例在內建陣容之後新增兩個 Bedrock 部署,在您的團隊識別的名稱下:566此範例在內建陣容之後新增兩個 Bedrock 部署,並使用您團隊認得的名稱:

567 567 

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

569{569{


582 582 

583#### `modelPicker` 的欄位583#### `modelPicker` 的欄位

584 584 

585金鑰採用兩個欄位,一個用於行本身,一個用於它們是否替換內建陣容或新增到它。585此鍵接受兩個欄位,一個用於列本身,另一個用於決定這些列是取代內建陣容還是加入其中。

586 586 

587| 欄位 | 類型 | 它的作用 |587| 欄位 | 類型 | 作用 |

588| :- | :- | :- |588| :- | :- | :- |

589| `options` | 行的陣列,每行具有必需的 `model` 和可選的 `label`、`description` 和 `behavesAs` | 選擇器顯示的行,按此順序,除了灰顯的行移到底部。沒有 `label` 時,Claude Code 用它知道的模型的內建名稱標題行,或模型 ID 否則,沒有 `description` 時它寫通用第二行 |589| `options` | 列的陣列,每一列都有必要的 `model` 以及選用的 `label`、`description` 和 `behavesAs` | 選擇器依此順序顯示的列,但顯示為灰色的列會移至最下方。若沒有 `label`,對於 Claude Code 已知的模型,會以內建名稱作為該列的標題,否則使用模型 ID;若沒有 `description`,則會寫入一般性的第二行 |

590| `replaceBuiltInOptions` | 布林值,預設 `false` | 將其設定為 `true` 以僅顯示這些行、**預設**和工作階段已在使用的模型的行。保留未設定以在內建陣容之後新增這些行 |590| `replaceBuiltInOptions` | Boolean,預設為 `false` | 設為 `true` 時,只會顯示這些列、**Default**,以及工作階段目前正在使用之模型的一列。保持未設定則會將這些列加在內建陣容之後 |

591 591 

592在 `options` 中的項目也可以在其 `model` 旁邊帶有可選的 `behavesAs` 字串,需要 v2.1.257 或更新版本。將其設定為您的 Claude Code 版本已知的模型 ID,例如 `claude-opus-4-8`,在其 `model` 比您的版本更新的項目上。Claude Code 然後將該已知模型的能力和努力預設應用於項目,而不是將其模型視為未知。項目的標籤和 Claude Code 在請求中傳送的模型 ID 不會改變。592`options` 中的項目也可以在其 `model` 旁加上選用的 `behavesAs` 字串,這需要 v2.1.257 或更新版本。在 `model` 比您的 Claude Code 版本更新的項目上,將其設為您的 Claude Code 版本已知的模型 ID,例如 `claude-opus-4-8`。Claude Code 就會將該已知模型的能力和 effort 預設值套用至該項目,而不是將其模型視為未知。項目的標籤以及 Claude Code 在請求中傳送的模型 ID 不會改變。

593 593 

594開啟 `replaceBuiltInOptions` 時,Claude Code 隱藏每個其他行:內建陣容、它為 [`availableModels`](#availablemodels) 項目新增的行、[閘道發現](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#model-discovery)找到的模型和 [`ANTHROPIC_CUSTOM_MODEL_OPTION`](https://code.claude.com/docs/zh-TW/model-config#add-a-custom-model-option)。關閉時,Claude Code 跳過內建陣容已涵蓋的列出模型。標籤改變選擇器顯示的內容,而不是 Claude Code 執行的模型。594開啟 `replaceBuiltInOptions` 時,Claude Code 會隱藏所有其他列:內建陣容、它為 [`availableModels`](#availablemodels) 項目新增的列、[閘道探索](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#model-discovery)找到的模型,以及 [`ANTHROPIC_CUSTOM_MODEL_OPTION`](https://code.claude.com/docs/zh-TW/model-config#add-a-custom-model-option)。關閉時,Claude Code 會略過內建陣容已涵蓋的列出模型。標籤會改變選擇器顯示的內容,而不會改變 Claude Code 執行的模型。

595 595 

596[`availableModels`](#availablemodels) 允許清單仍然適用於這些行。在將列出的模型新增到允許清單之前,請閱讀[合併行為](https://code.claude.com/docs/zh-TW/model-config.md#merge-behavior):特定模型 ID 縮小其系列的萬用字元項目。Claude Code 也在顯示選擇器之前根據工作階段檢查每行:596[`availableModels`](#availablemodels) 允許清單仍會套用於這些列。在將列出的模型加入允許清單之前,請閱讀[合併行為](https://code.claude.com/docs/zh-TW/model-config.md#merge-behavior):特定的模型 ID 會縮小其系列的萬用字元項目。Claude Code 也會在顯示選擇器之前,針對工作階段檢查每一列:

597 597 

598* **已刪除**: Claude Code 無法提供的行,例如已停用的模型或您的組織無法存取的模型598* **捨棄**:Claude Code 無法提供的列,例如已淘汰的模型,或您的組織沒有存取權的模型

599* **灰顯**: 您還無法選擇的行,顯示原因599* **顯示為灰色**:您目前尚無法選擇的列,並顯示原因

600* **沒有行倖存**: Claude Code 保留內建陣容,由允許清單篩選如常600* **沒有任何列保留**:Claude Code 會保留內建陣容,並如常依允許清單篩選

601 601 

602Claude Code 刪除它無法解析的行,並保留其餘的。請參閱[修復損壞的設定檔](https://code.claude.com/docs/zh-TW/settings.md#fix-a-broken-settings-file)。602Claude Code 會捨棄無法解析的列並保留其餘列。請參閱[修正損壞的設定檔](https://code.claude.com/docs/zh-TW/settings.md#fix-a-broken-settings-file)。

603 603 

604### `modelPricing`604### `modelPricing`

605 605 

606以您的組織支付的費率而不是列表價格報告支出。當您的組織有合約費率時設定它,因此開發人員看到的美元數字符合您的帳單。Claude Code 在 `/usage`、[狀態行](https://code.claude.com/docs/zh-TW/statusline.md)、Agent SDK 的 `total_cost_usd`、[`--max-budget-usd`](https://code.claude.com/docs/zh-TW/cli-reference) 限制和 [OpenTelemetry](https://code.claude.com/docs/zh-TW/monitoring-usage.md) 成本指標和事件中應用費率。您提供費率:Claude Code 不從您的合約或 Claude 主控台讀取它們。需要 Claude Code v2.1.242 或更新版本。606以您組織實際支付的費率而非牌價回報花費。當您的組織有合約費率時設定此項,讓開發者看到的金額與您的帳單一致。Claude Code 會在 `/usage`、[狀態列](https://code.claude.com/docs/zh-TW/statusline.md)、Agent SDK 的 `total_cost_usd`、[`--max-budget-usd`](https://code.claude.com/docs/zh-TW/cli-reference) 限制,以及 [OpenTelemetry](https://code.claude.com/docs/zh-TW/monitoring-usage.md) 成本指標和事件中套用這些費率。費率由您提供:Claude Code 不會從您的合約或 Claude Console 讀取。需要 Claude Code v2.1.242 或更新版本。

607 607 

608* **範圍**: [`受管`](#scopes)。透過伺服器受管設定、MDM 原則、`managed-settings.json` 檔案或[原則協助程式](https://code.claude.com/docs/zh-TW/managed-settings.md#compute-the-policy-with-a-helper-program)部署金鑰。Claude Code 在使用者、專案和本地設定中、在 `--settings` 中以及在 Windows 中的使用者可寫[HKCU 登錄](https://code.claude.com/docs/zh-TW/managed-settings.md#where-each-mechanism-stores-the-policy)中忽略它。使用伺服器受管設定時,每個工作階段以列表價格報告成本,直到該工作階段的[設定擷取](https://code.claude.com/docs/zh-TW/server-managed-settings.md#fetch-and-caching-behavior)已確認設定。嵌入 Claude Code 的主機應用程式,設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars),可以透過 SDK [`managedSettings`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項提供自己的表格,Claude Code 僅在沒有受管來源設定金鑰時以及僅在 Claude Code v2.1.246 或更新版本中使用。608* **範圍**:[`Managed`](#scopes)。透過伺服器受管設定、MDM 政策、`managed-settings.json` 檔案或[政策輔助程式](https://code.claude.com/docs/zh-TW/managed-settings.md#compute-the-policy-with-a-helper-program)部署此鍵。Claude Code 會忽略使用者、專案及本機設定中、`--settings` 中,以及 Windows 上使用者可寫入的 [HKCU 登錄](https://code.claude.com/docs/zh-TW/managed-settings.md#where-each-mechanism-stores-the-policy)中的此鍵。使用伺服器受管設定時,每個工作階段會以牌價回報成本,直到該工作階段的[設定擷取](https://code.claude.com/docs/zh-TW/server-managed-settings.md#fetch-and-caching-behavior)確認此設定為止。嵌入 Claude Code 並設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars) 的主機應用程式,可以透過 SDK 的 [`managedSettings`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項提供自己的費率表,Claude Code 只會在沒有受管來源設定此鍵時使用該費率表,且僅限 Claude Code v2.1.246 或更新版本。

609* **類型**: 具有可選 `multiplier` 和可選 `overrides` 對應的物件609* **類型**:包含選用的 `multiplier` 和選用的 `overrides` 對應的物件

610* **預設**: 未設定,因此 Claude Code 報告列表價格,除非主機應用程式提供表格610* **預設值**:未設定,因此除非主機應用程式提供費率表,否則 Claude Code 會回報牌價

611 611 

612單獨設定 `multiplier` 以獲得統一折扣或加價,單獨設定 `overrides` 以獲得每個模型費率,或兩者。612單獨設定 `multiplier` 可套用統一的折扣或加價,單獨設定 `overrides` 可套用各模型的費率,也可兩者都設定。

613 613 

614此範例為 Sonnet 4.6 設定合約費率,然後將每個數字(包括 Sonnet 行)減少 15%:614此範例為 Sonnet 4.6 設定合約費率,然後將所有金額(包括 Sonnet 該列)減少 15%:

615 615 

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

617{617{


629}629}

630```630```

631 631 

632將 `multiplier` 設定為 1 以上,最多 10,以標記每個數字。加價需要 Claude Code v2.1.271 或更新版本。較早的版本忽略 `multiplier` 超過 1 並帶有警告,並保留設定的其餘部分。632將 `multiplier` 設為大於 1、最高 10 的值,即可將所有金額加價。加價需要 Claude Code v2.1.271 或更新版本。較早的版本會忽略大於 1 的 `multiplier` 並顯示警告,同時保留設定的其餘部分。

633 633 

634如需步驟,包括如何確認費率有效,請參閱[以您的合約費率報告支出](https://code.claude.com/docs/zh-TW/costs.md#report-spend-at-your-contracted-rates)。634關於相關步驟,包括如何確認費率已生效,請參閱[以您的合約費率回報花費](https://code.claude.com/docs/zh-TW/costs.md#report-spend-at-your-contracted-rates)。

635 635 

636#### `modelPricing` 的欄位636#### `modelPricing` 的欄位

637 637 

638| 欄位 | 類型 | 它的作用 |638| 欄位 | 類型 | 作用 |

639| :- | :- | :- |639| :- | :- | :- |

640| `multiplier` | 大於 0 且最多 10 的數字 | 縮放 Claude Code 計算的每個成本,無論 `overrides` 行是否涵蓋它。低於 1 是折扣,高於 1 是加價 |640| `multiplier` | 大於 0 且最多為 10 的數字 | 縮放 Claude Code 計算的每一筆成本,無論是否有 `overrides` 列涵蓋。小於 1 為折扣,大於 1 為加價 |

641| `overrides` | 模型 ID 對應到具有 `input`、`output`、`cacheRead` 和 `cacheWrite` 的費率物件的對應,每個 0 到 10000 | 該模型的美元每百萬令牌費率,全部四個必需。`cacheWrite` 涵蓋五分鐘和一小時快取寫入。請參閱[`modelPricing` 行適用於哪些模型](#which-models-a-modelpricing-row-applies-to) |641| `overrides` | 將模型 ID 對應至費率物件的對應,費率物件包含 `input`、`output`、`cacheRead` 和 `cacheWrite`,每項皆為 0 到 10000 | 該模型每百萬 token 的美元費率,四項皆為必要。`cacheWrite` 同時涵蓋五分鐘和一小時的快取寫入。請參閱[一列適用於哪些模型](#which-models-a-modelpricing-row-applies-to) |

642 642 

643Claude Code 完全按照您寫入的方式使用行的費率,不新增快速模式加價或[僅限美國推論費率](https://platform.claude.com/docs/en/about-claude/pricing)。如果您也設定 `multiplier`,Claude Code 在行的費率之上應用它。Claude Code 刪除具有它無法解析的費率或 `multiplier` 的行,並保留其餘的;請參閱[修復損壞的設定檔](https://code.claude.com/docs/zh-TW/settings.md#fix-a-broken-settings-file)。643Claude Code 會完全依照您撰寫的方式使用一列的費率,不會加上快速模式附加費或[僅限美國推論的費率](https://platform.claude.com/docs/en/about-claude/pricing)。如果您也設定了 `multiplier`,Claude Code 會在該列的費率之上套用它。Claude Code 會捨棄包含無法解析之費率的列,或無法解析的 `multiplier`,並保留其餘部分;請參閱[修正損壞的設定檔](https://code.claude.com/docs/zh-TW/settings.md#fix-a-broken-settings-file)。

644 644 

645#### `modelPricing` 行適用於哪些模型645#### `modelPricing` 的一列適用於哪些模型

646 646 

647Claude Code 從行的鍵決定行適用於哪些模型:647Claude Code 會根據列的鍵來決定該列適用於哪些模型:

648 648 

649* **內建模型的 ID**: Claude Code 本身為內建模型使用的鍵,無論該鍵是模型自己的 ID(例如 `claude-sonnet-4-6`)還是其 Bedrock、Agent Platform 或 Foundry ID。Claude Code 將行應用於該模型的每個日期快照 ID 和提供者特定 ID。649* **內建模型的 ID**:Claude Code 本身用於內建模型的鍵,無論該鍵是模型自身的 ID(例如 `claude-sonnet-4-6`),還是其 Bedrock、Agent Platform 或 Foundry ID。Claude Code 會將該列套用至該模型的每個帶日期快照 ID 和供應商特定 ID。

650* **任何其他鍵**: 不是內建模型 ID 的鍵,例如閘道模型別名。Claude Code 僅將行應用於該一個 ID。當模型 ID 完全符合您的一個鍵,也落在以內建模型 ID 為鍵的行下時,Claude Code 使用完全符合。650* **任何其他鍵**:不是內建模型 ID 的鍵,例如閘道模型別名。Claude Code 只會將該列套用至那一個 ID。當某個模型 ID 與您的某個鍵完全相符,同時也屬於以內建模型 ID 為鍵的列時,Claude Code 會使用完全相符者。

651* **Bedrock 應用程式推論設定檔**: 一旦 Claude Code 透過您的 [`modelOverrides`](#modeloverrides) 對應或 [`bedrock:GetInferenceProfile` 查詢](https://code.claude.com/docs/zh-TW/amazon-bedrock#iam-configuration)將設定檔解析為它路由到的模型,Claude Code 將該模型的行應用於設定檔。651* **Bedrock 應用程式推論設定檔**:一旦 Claude Code 透過您的 [`modelOverrides`](#modeloverrides) 對應或 [`bedrock:GetInferenceProfile` 查詢](https://code.claude.com/docs/zh-TW/amazon-bedrock#iam-configuration),將該設定檔解析為其路由到的模型,Claude Code 就會將該模型的列套用至該設定檔。

652 652 

653### `modelSettings`653### `modelSettings`

654 654 

655為您使用的每個模型儲存[努力級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。需要 Claude Code v2.1.251 或更新版本。655為您使用的每個模型儲存 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。需要 Claude Code v2.1.251 或更新版本。

656 656 

657在機器上的互動工作階段中,當您使用 `/effort` 或 `/model` 選擇器的努力滑塊將 `low`、`medium`、`high` 或 `xhigh` 儲存為預設時,Claude Code 在您使用的模型下在此處寫入該級別,因此您很少自己編輯此金鑰。當您在 [VS Code 擴充功能的模型選擇器](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box)中選擇其中一個級別時,Claude Code 以相同方式在此處儲存它。[`effortLevel`](#effortlevel) 項目列出 `/effort` 僅適用於該工作階段的工作階段。657在本機的互動式工作階段中,當您使用 `/effort` 或 `/model` 選擇器的 effort 滑桿將 `low`、`medium`、`high` 或 `xhigh` 儲存為預設值時,Claude Code 會將該等級寫入此處您正在使用的模型之下,因此您很少需要自行編輯此鍵。當您在 [VS Code 擴充功能的模型選擇器](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box)中選擇其中一個等級時,Claude Code 也會以相同方式將其儲存於此。[`effortLevel`](#effortlevel) 項目列出了 `/effort` 只套用於該工作階段的工作階段。

658 658 

659手動編輯金鑰以變更或移除您儲存的級別。659手動編輯此鍵即可變更或移除您已儲存的等級。

660 660 

661此處模型的 `effortLevel` 優先於同一設定檔中的頂級 [`effortLevel`](#effortlevel)。跨檔案,Claude Code 分別解析每個模型:最高優先順序[設定檔](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)設定該模型的 `effortLevel` 或[適用於該模型](#effortlevel)的頂級 `effortLevel` 決定,因此受管設定中的 `effortLevel` 優先於您在使用者設定中儲存的級別。[調整努力級別](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)列出還可以覆蓋儲存級別的內容,例如啟動時的 `--effort`。661此處模型的 `effortLevel` 優先於同一個設定檔中頂層的 [`effortLevel`](#effortlevel)。跨檔案時,Claude Code 會分別解析每個模型:設定了該模型的 `effortLevel`,或設定了[適用於該模型](#effortlevel)的頂層 `effortLevel`,且優先順序最高的[設定檔](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)會決定結果,因此受管設定中的 `effortLevel` 優先於您在使用者設定中儲存的等級。[調整 effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)列出了其他可覆寫已儲存等級的項目,例如啟動時的 `--effort`。

662 662 

663要限制一個模型的努力而不是設定其級別,將 [`maxEffortLevel`](#maxeffortlevel) 欄位新增到該模型的項目。該欄位需要 Claude Code v2.1.267 或更新版本。663若要為某個模型的 effort 設定上限而非設定其等級,請在該模型的項目中加入 [`maxEffortLevel`](#maxeffortlevel) 欄位。此欄位需要 Claude Code v2.1.267 或更新版本。

664 664 

665* **範圍**: [`任何檔案`](#scopes)665* **範圍**:[`Any file`](#scopes)

666* **類型**: 將模型名稱對應到物件的物件,該物件可包含下列任一欄位:666* **類型**:將模型名稱對應至物件的物件,該物件可包含下列任一欄位:

667 * `effortLevel`: `"low"`、`"medium"`、`"high"` 或 `"xhigh"` 其中之一667 * `effortLevel`:`"low"`、`"medium"`、`"high"` 或 `"xhigh"` 之一

668 * [`maxEffortLevel`](#maxeffortlevel): 模型可執行的最高 effort 等級668 * [`maxEffortLevel`](#maxeffortlevel):該模型可執行的最高 effort 等級

669 * `autoCompactWindow`: 介於 `100000` 到 `1000000` 的 token 數,或 `"auto"` 表示為該模型調校的視窗。[`/autocompact`](https://code.claude.com/docs/zh-TW/model-config#set-the-auto-compact-window) 會儲存於此。對於該模型,此值優先於同一設定檔中的頂層 [`autoCompactWindow`](#autocompactwindow)。需要 Claude Code v2.1.288 或更新版本669 * `autoCompactWindow`:從 `100000` 到 `1000000` 的 token 數量,或 `"auto"` 表示針對該模型調整的視窗。[`/autocompact`](https://code.claude.com/docs/zh-TW/model-config#set-the-auto-compact-window) 會儲存於此。對於該模型,此值優先於同一個設定檔中頂層的 [`autoCompactWindow`](#autocompactwindow)。需要 Claude Code v2.1.288 或更新版本

670* **預設**: 未設定670* **預設值**:未設定

671 671 

672Claude Code 在模型的規範名稱下寫入每個項目,例如 `claude-opus-5-5`,並將該模型的別名、日期後綴、`[1m]` 和識別的提供者特定 ID 符合到同一項目。672Claude Code 會以模型的標準名稱(例如 `claude-opus-5-5`)寫入每個項目,並將該模型的別名、帶日期後綴的 ID、`[1m]` 以及可辨識的供應商特定 ID 對應至同一個項目。

673 673 

674此範例將 Opus 5.5 保持在 `high`,而其他模型使用它們自己的儲存或預設級別:674此範例讓 Opus 5.5 保持在 `high`,而其他模型則使用其自身已儲存的等級或預設等級:

675 675 

676```json settings.json theme={null}676```json settings.json theme={null}

677{677{


683}683}

684```684```

685 685 

686執行 `/effort auto` 以清除您為正在使用的模型儲存的級別。Claude Code 保留其他項目和任何頂級 `effortLevel`。686執行 `/effort auto` 即可清除您正在使用之模型的已儲存等級。Claude Code 會保留其他項目以及任何頂層的 `effortLevel`。

687 687 

688### `outputStyle`688### `outputStyle`

689 689 

690按名稱選擇[輸出樣式](https://code.claude.com/docs/zh-TW/output-styles.md)。輸出樣式是一組儲存的指令,改變 Claude 的角色、語調和輸出格式,例如內建的解釋性和學習樣式或您自己寫的。690依名稱選擇[輸出風格](https://code.claude.com/docs/zh-TW/output-styles.md)。輸出風格是一組已儲存的指令,可改變 Claude 的角色、語氣和輸出格式,例如內建的 Explanatory 和 Learning 風格,或您自己撰寫的風格。

691 691 

692如果您在工作階段期間變更此金鑰,Claude 從您的下一條訊息開始使用新樣式。如需該訊息在提示快取中的成本,請參閱[變更輸出樣式](https://code.claude.com/docs/zh-TW/prompt-caching.md#changing-output-style)。在 v2.1.251 之前,編輯僅在您執行 `/clear` 或開始新工作階段後適用。692如果您在工作階段期間變更此鍵,Claude 會從您的下一則訊息開始使用新風格。關於該訊息在提示快取方面的成本,請參閱[變更輸出風格](https://code.claude.com/docs/zh-TW/prompt-caching.md#changing-output-style)。在 v2.1.251 之前,此編輯只會在您執行 `/clear` 或開始新的工作階段後才生效。

693 693 

694* **範圍**: [`任何檔案`](#scopes)694* **範圍**:[`Any file`](#scopes)

695* **類型**: 字串,[內建](https://code.claude.com/docs/zh-TW/output-styles.md#built-in-output-styles)或[自訂](https://code.claude.com/docs/zh-TW/output-styles.md#create-a-custom-output-style)輸出樣式的名稱695* **類型**:字串,[內建](https://code.claude.com/docs/zh-TW/output-styles.md#built-in-output-styles)或[自訂](https://code.claude.com/docs/zh-TW/output-styles.md#create-a-custom-output-style)輸出風格的名稱

696* **預設**: 未設定,因此 Claude Code 使用預設樣式696* **預設值**:未設定,因此 Claude Code 會使用預設風格

697 697 

698此範例選擇內建的解釋性樣式,在任務之間新增教育見解:698此範例選擇內建的 Explanatory 風格,它會在任務之間加入教育性的見解:

699 699 

700```json settings.json theme={null}700```json settings.json theme={null}

701{701{


705 705 

706### `promptCacheTtl`706### `promptCacheTtl`

707 707 

708選擇[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md)保持主要對話多長時間。此金鑰適用於您的互動、`-p` 和 Agent SDK 輪,以及 Claude Code 與它們內聯執行的協助程式。一小時的生命週期在較長的中斷中保持快取溫暖,API [以比五分鐘生命週期更高的費率計費每個快取寫入](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更新版本。708選擇[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md)保留主要對話的時間長度。此鍵套用於您的互動式、`-p` 以及 Agent SDK 回合,以及 Claude Code 與其一同內嵌執行的輔助程式。一小時的存留期可在較長的中斷期間保持快取為熱狀態,而 API 會以高於五分鐘存留期的[費率對每次快取寫入計費](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更新版本。

709 709 

710* **範圍**: [`任何檔案`](#scopes)710* **範圍**:[`Any file`](#scopes)

711* **類型**: 字串,其中之一:711* **類型**:字串,為下列之一:

712 * `"5m"`: 快取保持五分鐘712 * `"5m"`:快取保留五分鐘

713 * `"1h"`: 快取保持一小時713 * `"1h"`:快取保留一小時

714* **預設**: 未設定,因此每個主要對話請求獲得[其預設生命週期](https://code.claude.com/docs/zh-TW/prompt-caching.md#which-ttl-each-request-gets)714* **預設值**:未設定,因此每個主要對話請求會取得[其預設存留期](https://code.claude.com/docs/zh-TW/prompt-caching.md#which-ttl-each-request-gets)

715* **每個工作階段的覆蓋**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/zh-TW/env-vars)優先於所有其他,然後 [`CLAUDE_CODE_PROMPT_CACHE_TTL`](https://code.claude.com/docs/zh-TW/env-vars),然後此金鑰,最後 [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/zh-TW/env-vars)715* **每個工作階段的覆寫**:[`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/zh-TW/env-vars) 優先於其他所有項目,其次是 [`CLAUDE_CODE_PROMPT_CACHE_TTL`](https://code.claude.com/docs/zh-TW/env-vars),然後是此鍵,最後是 [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/zh-TW/env-vars)

716 716 

717此範例將主要對話保持在一小時生命週期,並將子代理保持在五分鐘:717此範例讓主要對話使用一小時的存留期,並讓 subagent 保持五分鐘:

718 718 

719```json settings.json theme={null}719```json settings.json theme={null}

720{720{


723}723}

724```724```

725 725 

726如需每個生命週期的成本,請參閱[快取生命週期](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)。726關於各存留期的成本,請參閱[快取存留期](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)。

727 727 

728### `showThinkingSummaries`728### `showThinkingSummaries`

729 729 

730在互動工作階段中查看 Claude 的[延伸思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)摘要。如果您想在使用 `Ctrl+O` 展開思考時看到完整摘要,請設定它。未設定或為 `false` 時,Anthropic API 會遮蔽思考區塊,Claude Code 顯示摺疊的存根。730在互動式工作階段中查看 Claude [延伸思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)的摘要。如果您希望在使用 `Ctrl+O` 展開思考時看到完整摘要,請設定此項。未設定或為 `false` 時,Anthropic API 會遮蔽思考區塊,而 Claude Code 會顯示一個摺疊的虛設區塊。

731 731 

732* **範圍**: [`任何檔案`](#scopes)732* **範圍**:[`Any file`](#scopes)

733* **類型**: 布林值733* **類型**:Boolean

734 * `true`: 當您使用 `Ctrl+O` 展開思考時,您看到完整思考摘要734 * `true`:使用 `Ctrl+O` 展開思考時,您會看到完整的思考摘要

735 * `false`: Anthropic API 編輯思考區塊,Claude Code 顯示摺疊的存根735 * `false`:Anthropic API 會遮蔽思考區塊,而 Claude Code 會顯示一個摺疊的虛設區塊

736* **預設**: `false`736* **預設值**:`false`

737 737 

738```json settings.json theme={null}738```json settings.json theme={null}

739{739{


741}741}

742```742```

743 743 

744編輯僅改變您看到的內容,而不是模型生成的內容。要減少思考支出,[降低預算或停用思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)。744遮蔽只會改變您看到的內容,而不會改變模型產生的內容。若要減少思考花費,請改為[降低預算或停用思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)。

745 745 

746### `subagentPromptCacheTtl`746### `subagentPromptCacheTtl`

747 747 

748選擇[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md)保持 Claude Code 在主要對話外進行的請求多長時間。此金鑰適用於[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)、[工作流程](https://code.claude.com/docs/zh-TW/workflows.md)和 Claude Code 自己的背景和協助程式請求,例如壓縮和工作階段標題。一小時的生命週期在較長的中斷中保持快取溫暖,API [以比五分鐘生命週期更高的費率計費每個快取寫入](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更新版本。748選擇[提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md)保留 Claude Code 在主要對話以外發出之請求的時間長度。此鍵套用於 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md)、[工作流程](https://code.claude.com/docs/zh-TW/workflows.md),以及 Claude Code 自身的背景和輔助請求,例如壓縮和工作階段標題。一小時的存留期可在較長的中斷期間保持快取為熱狀態,而 API 會以高於五分鐘存留期的[費率對每次快取寫入計費](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更新版本。

749 749 

750* **範圍**: [`任何檔案`](#scopes)750* **範圍**:[`Any file`](#scopes)

751* **類型**: 字串,其中之一:751* **類型**:字串,為下列之一:

752 * `"5m"`: 快取保持五分鐘752 * `"5m"`:快取保留五分鐘

753 * `"1h"`: 快取保持一小時753 * `"1h"`:快取保留一小時

754* **預設**: 未設定,因此這些請求中的每一個獲得[其預設生命週期](https://code.claude.com/docs/zh-TW/prompt-caching.md#which-ttl-each-request-gets)754* **預設值**:未設定,因此這些請求各自取得[其預設存留期](https://code.claude.com/docs/zh-TW/prompt-caching.md#which-ttl-each-request-gets)

755* **每個工作階段的覆蓋**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/zh-TW/env-vars)優先於所有其他,然後 [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](https://code.claude.com/docs/zh-TW/env-vars),然後此金鑰,然後 [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/zh-TW/env-vars),要求每個請求的一小時生命週期。如需子代理自己的 frontmatter 值排名的位置,請參閱[自己選擇 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#choose-the-ttl-yourself)755* **每個工作階段的覆寫**:[`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/zh-TW/env-vars) 優先於其他所有項目,其次是 [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](https://code.claude.com/docs/zh-TW/env-vars),然後是此鍵,再來是 [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/zh-TW/env-vars),它會要求每個請求都使用一小時的存留期。關於 subagent 自身 frontmatter 值的優先順序,請參閱[自行選擇 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#choose-the-ttl-yourself)

756 756 

757此範例為子代理和主要對話外的其他請求提供一小時生命週期:757此範例讓 subagent 以及主要對話以外的其他請求使用一小時的存留期:

758 758 

759```json settings.json theme={null}759```json settings.json theme={null}

760{760{


762}762}

763```763```

764 764 

765此金鑰涵蓋 [`promptCacheTtl`](#promptcachettl) 不涵蓋的請求,因此設定兩者以為 Claude Code 進行的每個請求選擇生命週期。如需子代理的快取與主要對話的快取有何不同,請參閱[子代理和快取](https://code.claude.com/docs/zh-TW/prompt-caching.md#subagents-and-the-cache)。765此鍵涵蓋 [`promptCacheTtl`](#promptcachettl) 未涵蓋的請求,因此同時設定兩者即可為 Claude Code 發出的每個請求選擇存留期。關於 subagent 的快取與主要對話快取的差異,請參閱[Subagent 與快取](https://code.claude.com/docs/zh-TW/prompt-caching.md#subagents-and-the-cache)。

766 766 

767### `switchModelsOnFlag`767### `switchModelsOnFlag`

768 768 

769選擇當[安全分類器標記請求](https://code.claude.com/docs/zh-TW/model-config.md#automatic-model-fallback)時會發生什麼:切換到備用模型並繼續,或暫停以便您可以在切換和編輯提示之間選擇。769選擇當[安全分類器標記請求](https://code.claude.com/docs/zh-TW/model-config.md#automatic-model-fallback)時會發生什麼:切換至備援模型並繼續,或暫停讓您在切換與編輯提示詞之間做選擇。

770 770 

771* **範圍**: [`任何檔案`](#scopes)。在 `/config` 中顯示為**訊息被標示時切換模型**,選項為**自動切換**和**每次詢問**。771* **範圍**:[`Any file`](#scopes)。在 `/config` 中顯示為 **Switch models when a message is flagged**,選項為 **Switch automatically** 和 **Ask each time**。

772* **類型**: 布林值772* **類型**:Boolean

773 * `true`: Claude Code 切換到備用模型並繼續773 * `true`:Claude Code 切換至備援模型並繼續

774 * `false`: 在互動工作階段中,Claude Code 暫停以便您可以在切換和編輯提示之間選擇;在無法顯示對話框的地方,例如 `-p` 執行,標記的請求以錯誤結束774 * `false`:在互動式工作階段中,Claude Code 會暫停讓您在切換與編輯提示詞之間做選擇;在無法顯示對話方塊的情況下(例如 `-p` 執行),被標記的請求會以錯誤結束

775* **預設**: 未設定。Claude Code 會自動切換,但在互動工作階段中可能會[先詢問](https://code.claude.com/docs/zh-TW/model-config.md#ask-before-switching)775* **預設值**:未設定。Claude Code 會自動切換,但在互動式工作階段中可能會[先詢問](https://code.claude.com/docs/zh-TW/model-config.md#ask-before-switching)

776 776 

777```json settings.json theme={null}777```json settings.json theme={null}

778{778{


784 784 

785### `ultracode`785### `ultracode`

786 786 

787使用[ultracode](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode)啟動工作階段。開啟時,Claude 為每個實質性任務規劃工作流程,而不是等待您要求。Claude 僅在為您啟用[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)且您的模型支援 `xhigh` 努力時規劃工作流程。此金鑰不會改變工作階段的努力級別:ultracode 在工作階段使用的任何級別執行。Claude Code 讀取此金鑰但永遠不寫入它:`/effort ultracode` 為目前工作階段開啟 ultracode。787以開啟 [ultracode](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode) 的狀態啟動工作階段。開啟後,Claude 會為每個實質性任務規劃工作流程,而不是等待您要求。只有在您啟用了[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)且您的模型支援 `xhigh` effort 時,Claude 才會規劃工作流程。此鍵不會改變工作階段的 effort 等級:ultracode 會以工作階段所使用的任何等級執行。Claude Code 會讀取此鍵但絕不會寫入:`/effort ultracode` 只會在目前工作階段中開啟 ultracode。

788 788 

789* **範圍**: [`任何檔案`](#scopes)789* **範圍**:[`Any file`](#scopes)

790* **類型**: 布林值790* **類型**:Boolean

791 * `true`: 當為您啟用動態工作流程且您的模型支援 `xhigh` 時,工作階段以 ultracode 開啟開始791 * `true`:當您啟用了動態工作流程且您的模型支援 `xhigh` 時,工作階段會以開啟 ultracode 的狀態啟動

792 * `false`: 工作階段以 ultracode 關閉開始792 * `false`:工作階段會以關閉 ultracode 的狀態啟動

793* **預設**: 未設定,因此 ultracode 已關閉793* **預設值**:未設定,因此 ultracode 為關閉狀態

794* **每個工作階段的覆寫**: `/effort ultracode` 在沒有此設定鍵的情況下為一個工作階段開啟 ultracode,`/effort ultracode off` 在此設定鍵為 `true` 時為一個工作階段關閉它。`--effort ultracode` 旗標也會為一個工作階段開啟它,並使用 `xhigh` effort794* **每個工作階段的覆寫**:`/effort ultracode` 會在沒有此鍵的情況下於單一工作階段中開啟 ultracode,而當此鍵為 `true` 時,`/effort ultracode off` 會在單一工作階段中將其關閉。`--effort ultracode` 旗標也會以 `xhigh` effort 在單一工作階段中開啟 ultracode

795 795 

796```json settings.json theme={null}796```json settings.json theme={null}

797{797{


799}799}

800```800```

801 801 

802工作階段的努力級別來自 [`effortLevel`](#effortlevel)、[`modelSettings`](#modelsettings) 和其他[努力來源](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level),[努力上限](https://code.claude.com/docs/zh-TW/model-config.md#organization-effort-limits)(例如 [`maxEffortLevel`](#maxeffortlevel))降低該級別而不關閉 ultracode。這和 `/effort ultracode off` 形式需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,`ultracode: true` 在 `xhigh` 努力執行工作階段,低於 `xhigh` 的努力上限保持 ultracode 關閉。Agent SDK `apply_flag_settings` 控制請求也接受此金鑰。802工作階段的 effort 等級來自 [`effortLevel`](#effortlevel)、[`modelSettings`](#modelsettings) 以及其他 [effort 來源](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level),而 [effort 上限](https://code.claude.com/docs/zh-TW/model-config.md#organization-effort-limits)(例如 [`maxEffortLevel`](#maxeffortlevel))會降低該等級,但不會關閉 ultracode。此行為以及 `/effort ultracode off` 形式需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,`ultracode: true` 會以 `xhigh` effort 執行工作階段,而低於 `xhigh` 的 effort 上限會讓 ultracode 保持關閉。Agent SDK 的 `apply_flag_settings` 控制請求也接受此鍵。

803 803 

804## 權限設定804## 權限設定

805 805 


2424 2424 

2425對於符合以下所有條件的對話,閒置壓縮預設為開啟:2425對於符合以下所有條件的對話,閒置壓縮預設為開啟:

2426 2426 

2427* **工作階段**:您處於互動式終端機工作階段中,或是在 [Anthropic 選定的帳戶](#idle-compaction-in-vs-code-and-the-desktop-app)上使用 VS Code 擴充功能的聊天面板或桌面應用程式的 Code 分頁2427* **工作階段**:您處於互動式終端機工作階段中、VS Code 擴充功能的聊天面板中,或是在工作階段於您的機器上或透過 SSH 執行時處於桌面應用程式的 Code 分頁中

2428* **自動壓縮**:[`autoCompactEnabled`](#autocompactenabled) 已開啟2428* **自動壓縮**:[`autoCompactEnabled`](#autocompactenabled) 已開啟

2429* **提示快取**:對話使用[一小時提示快取 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#which-ttl-each-request-gets)2429* **提示快取**:對話使用[一小時提示快取 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#which-ttl-each-request-gets)

2430* **功能旗標**:Claude Code 可以[從 Anthropic 擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)2430* **功能旗標**:Claude Code 可以[從 Anthropic 擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)

2431* **大小**:對話的上下文已達到 token 閾值,您可以從其預設值 200,000 [變更](#change-the-idle-compaction-threshold)此閾值2431* **大小**:對話的上下文已達到 token 閾值,您可以從其預設值 200,000 [變更](#change-the-idle-compaction-threshold)此閾值

2432* **閒置時間**:自上次請求以來已經過約 54 分鐘,且您的電腦在那時處於喚醒狀態2432* **閒置時間**:自上次請求以來已經過約一小時,且您的電腦在那之前保持喚醒狀態

2433 2433 

2434若要關閉閒置壓縮,請將此鍵設定為 `false`。2434若要關閉閒置壓縮,請將此鍵設定為 `false`。

2435 2435 


2475Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json2475Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json

2476```2476```

2477 2477 

2478您不需要採取任何動作。若要關閉閒置壓縮,請在 `~/.claude/settings.json` 或其他[設定檔](https://code.claude.com/docs/zh-TW/settings.md#settings-files-and-who-they-affect)中將 `idleCompaction` 設定為 `false`。2478您不需要採取任何動作。若要關閉閒置壓縮,請在工作階段執行所在的機器或 WSL 發行版上的 `~/.claude/settings.json`,或其他[設定檔](https://code.claude.com/docs/zh-TW/settings.md#settings-files-and-who-they-affect)中,將 `idleCompaction` 設定為 `false`。

2479 

2480在 VS Code 擴充功能的聊天面板和桌面應用程式的 Code 分頁中,閒置壓縮會針對 Anthropic 選定的帳戶執行。Claude Code 會在您離開期間撰寫摘要,然後只有在您的下一則訊息距離上次請求一小時或更久時,才會使用該摘要進行壓縮。

2481 2479 

2482### `plansDirectory`2480### `plansDirectory`

2483 2481 


5173 5171 

5174### `forceLoginMethod`5172### `forceLoginMethod`

5175 5173 

5176限制人員可以使用哪種帳戶登入。設定 `"claudeai"` 以僅允許 claude.ai 帳戶,設定 `"console"` 以僅允許 Claude Console 帳戶,或設定 `"gateway"` 以將人員傳送到 [cloud gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 而不是第一方登入。管理員在受管設定中設定它,並將其與 [`forceLoginOrgUUID`](#forceloginorguuid) 配對,以將開發人員的 claude.ai 登入保持在一個組織內。如果您在任何設定檔中將其設定為 `"claudeai"` 或 `"console"`,Claude Code 也會停止在該檔案適用的工作階段中提供[無金鑰 Console 登入](https://code.claude.com/docs/zh-TW/authentication.md#sign-in-without-an-api-key)。5174限制人員可以使用哪種帳戶登入。設定 `"claudeai"` 以僅允許 claude.ai 帳戶,設定 `"console"` 以僅允許 Claude Console 帳戶,或設定 `"gateway"` 以將人員傳送到 [cloud gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 而不是第一方登入。管理員在受管設定中設定它,並將其與 [`forceLoginOrgUUID`](#forceloginorguuid) 配對,以將開發人員的 claude.ai 登入保持在一個組織內。

5175 

5176如果您在任何設定檔中將其設定為 `"claudeai"`,Claude Code 也會停止在該檔案適用的工作階段中提供[無金鑰 Console 登入](https://code.claude.com/docs/zh-TW/authentication.md#sign-in-without-an-api-key)。若僅設定 `"console"`,人員在登入失敗後仍可使用無金鑰登入。若要讓 Claude Code 停止提供此選項,請參閱[在受管機器上停止提供無金鑰登入](https://code.claude.com/docs/zh-TW/authentication.md#stop-offering-the-keyless-sign-in-on-managed-machines),其中也列出了 `forceLoginOrgUUID` 會變更的其他項目。

5177 5177 

5178* **範圍**:[`任何檔案`](#scopes)。Claude Code 從與 [`forceLoginGatewayUrl`](#forcelogingatewayurl) 相同的來源接受 `"gateway"`,並在其他所有位置將其視為未設定。5178* **範圍**:[`任何檔案`](#scopes)。Claude Code 從與 [`forceLoginGatewayUrl`](#forcelogingatewayurl) 相同的來源接受 `"gateway"`,並在其他所有位置將其視為未設定。

5179* **類型**:字串,其中之一:5179* **類型**:字串,其中之一:


5585| 限制允許清單 | 從設定它的最高來源整體取得清單,不從較低的來源新增項目。當最高來源未設定時,從下一個較低的來源整體取得 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`allowedProviders`](#allowedproviders)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 鏈 |5585| 限制允許清單 | 從設定它的最高來源整體取得清單,不從較低的來源新增項目。當最高來源未設定時,從下一個較低的來源整體取得 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`allowedProviders`](#allowedproviders)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 鏈 |

5586| 整體取值 | 從設定它的最高來源整體取得值,不合併來自較低來源的項目或欄位。當最高來源未設定時,從下一個較低的來源整體取得 | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |5586| 整體取值 | 從設定它的最高來源整體取得值,不合併來自較低來源的項目或欄位。當最高來源未設定時,從下一個較低的來源整體取得 | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |

5587| 提供的 MCP 伺服器 | 合併來自每個來源的伺服器名稱。當兩個來源設定相同名稱時,套用較高來源的整體項目 | [`managedMcpServers`](#managedmcpservers) |5587| 提供的 MCP 伺服器 | 合併來自每個來源的伺服器名稱。當兩個來源設定相同名稱時,套用較高來源的整體項目 | [`managedMcpServers`](#managedmcpservers) |

5588| 只從最高優先順序來源讀取 | 只從攜帶原則金鑰的最高優先順序來源讀取金鑰,因此即使最高來源未設定任何值,較低來源的值也會被忽略 | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |5588| 只從最高優先順序來源讀取 | 只從攜帶原則金鑰的最高優先順序來源讀取金鑰,因此即使最高來源未設定任何值,較低來源的值也會被忽略 | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |

5589| `env` | [在管理員來源間按變數合併](https://code.claude.com/docs/zh-TW/managed-settings.md#keys-read-from-every-admin-source),在 `"first-wins"` 和 `"merge"` 下都是如此 | [`env`](#env) |5589| `env` | [在管理員來源間按變數合併](https://code.claude.com/docs/zh-TW/managed-settings.md#keys-read-from-every-admin-source),在 `"first-wins"` 和 `"merge"` 下都是如此 | [`env`](#env) |

5590| 每個其他金鑰 | 從設定它的最高來源取得值 | [`cleanupPeriodDays`](#cleanupperioddays)、[`model`](#model) |5590| 每個其他金鑰 | 從設定它的最高來源取得值 | [`cleanupPeriodDays`](#cleanupperioddays)、[`model`](#model) |

5591 5591 


5596* **[`policyHelper`](#policyhelper)**: Claude Code 只在攜帶原則金鑰的最高來源是 MDM 原則或受管設定檔案時接受它,因此在伺服器受管設定下它不適用。5596* **[`policyHelper`](#policyhelper)**: Claude Code 只在攜帶原則金鑰的最高來源是 MDM 原則或受管設定檔案時接受它,因此在伺服器受管設定下它不適用。

5597* **[`modelOverrides`](#modeloverrides)**: 與 `availableModels` 配對。Claude Code 從設定它的最高來源取得 `modelOverrides`,除非較高的來源設定 `availableModels` 而不設定 `modelOverrides`。在這種情況下,它會忽略來自每個來源的 `modelOverrides`。5597* **[`modelOverrides`](#modeloverrides)**: 與 `availableModels` 配對。Claude Code 從設定它的最高來源取得 `modelOverrides`,除非較高的來源設定 `availableModels` 而不設定 `modelOverrides`。在這種情況下,它會忽略來自每個來源的 `modelOverrides`。

5598* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks) 和 [`forceLoginMethod`](#forceloginmethod) 的 `"gateway"` 值**: Claude Code 從不從伺服器受管設定讀取它們中的任何一個,因此那裡的值既不適用也不隱藏在 MDM 原則或受管設定檔案中設定的值。在機器上的管理員來源中,只有攜帶原則金鑰的排名最高的來源提供它們,無論伺服器受管設定是否也存在。5598* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks) 和 [`forceLoginMethod`](#forceloginmethod) 的 `"gateway"` 值**: Claude Code 從不從伺服器受管設定讀取它們中的任何一個,因此那裡的值既不適用也不隱藏在 MDM 原則或受管設定檔案中設定的值。在機器上的管理員來源中,只有攜帶原則金鑰的排名最高的來源提供它們,無論伺服器受管設定是否也存在。

5599* **[`forceLoginOrgUUID`](#forceloginorguuid) 以及 [`forceLoginMethod`](#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值**: 請在[哪個受管來源提供登入金鑰](https://code.claude.com/docs/zh-TW/managed-settings.md#which-managed-source-supplies-login-keys)中查詢套用的值,而不是在表格中查詢。

5599* **[`allowedProviders`](#allowedproviders)**: 在表格的規則之後,機器本身的清單仍然限制結果,如其項目的範圍附註所述。5600* **[`allowedProviders`](#allowedproviders)**: 在表格的規則之後,機器本身的清單仍然限制結果,如其項目的範圍附註所述。

5600 5601 

5601若要確認機器上合併了哪些來源,請執行 `/status` 並[讀取 `Setting sources` 行](https://code.claude.com/docs/zh-TW/managed-settings#read-the-source-in-/status)。5602若要確認機器上合併了哪些來源,請執行 `/status` 並[讀取 `Setting sources` 行](https://code.claude.com/docs/zh-TW/managed-settings#read-the-source-in-/status)。

skills.md +10 −3

Details

395| 欄位 | 必需 | 說明 |395| 欄位 | 必需 | 說明 |

396| :- | :- | :- |396| :- | :- | :- |

397| `name` | 否 | 在 `/` 菜單中顯示的命令名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |397| `name` | 否 | 在 `/` 菜單中顯示的命令名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |

398| `description` | 建議 | Skill 的功能以及何時使用它。Claude 使用此來決定何時應用 skill。如果省略,使用 markdown 內容的第一個非空行。將關鍵用例放在首位:組合的 `description` 和 `when_to_use` 文本在 skill 列表中被截斷為 1,536 個字元,以減少上下文使用。 |398| `description` | 建議 | Skill 的功能以及何時使用它。Claude 使用此來決定何時應用 skill。如果省略,使用 markdown 內容的第一個非空行。將關鍵用例放在首位:組合的 `description` 和 `when_to_use` 文本在 skill 列表中被截斷為 1,536 個字元,以減少上下文使用。文字中的角括號[會顯示為 `&lt;` 和 `&gt;`](#angle-brackets-in-a-skill-description)。 |

399| `when_to_use` | 否 | Claude 應何時調用 skill 的其他上下文,例如觸發短語或範例請求。附加到 skill 列表中的 `description`,並計入 1,536 字元上限。 |399| `when_to_use` | 否 | Claude 應何時調用 skill 的其他上下文,例如觸發短語或範例請求。附加到 skill 列表中的 `description`,並計入 1,536 字元上限。 |

400| `argument-hint` | 否 | 在自動完成期間顯示的提示,以指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |400| `argument-hint` | 否 | 在自動完成期間顯示的提示,以指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |

401| `arguments` | 否 | 用於 skill 內容中[`$name` 替換](#available-string-substitutions)的命名位置引數。接受以空格分隔的字串或 YAML 列表。名稱按順序映射到引數位置。 |401| `arguments` | 否 | 用於 skill 內容中[`$name` 替換](#available-string-substitutions)的命名位置引數。接受以空格分隔的字串或 YAML 列表。名稱按順序映射到引數位置。 |


778 778 

779使用預設 `bash` shell,將 `|| true` 附加到任何您預期會以非零結束的其他命令。一個在發現問題時結束代碼為 1 的檢查指令碼就是一個例子。779使用預設 `bash` shell,將 `|| true` 附加到任何您預期會以非零結束的其他命令。一個在發現問題時結束代碼為 1 的檢查指令碼就是一個例子。

780 780 

781#### 注入命令中的控制字元781#### 當沒有執行任何 shell 命令時

782 782 

783`No shell command in <name> was run` 表示該檔案的某個 `!` 命令包含 tab 或換行以外的原始控制字元,因此其中任何命令都不會執行。請參閱[如何找出並移除該字元](https://code.claude.com/docs/zh-TW/errors.md#no-shell-command-was-run)。783`No shell command in <name> was run` 表示其中某個 shell 命令包含工具不接受的字元。若要找出並移除該字元,請參閱[錯誤參考](https://code.claude.com/docs/zh-TW/errors.md#no-shell-command-was-run)。

784 784 

785#### 注入命令的權限檢查785#### 注入命令的權限檢查

786 786 


1229 1229 

1230若要提高預算,請設定 [`skillListingBudgetFraction`](https://code.claude.com/docs/zh-TW/settings-reference#skilllistingbudgetfraction) 設定(例如 `0.02` = 2%)或 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 環境變數為固定字元計數。若要為其他 skills 釋放預算,請在 [`skillOverrides`](#override-skill-visibility-from-settings) 中將低優先順序項目設定為 `"name-only"`,以便它們在沒有描述的情況下列出。您也可以在來源處修剪 `description` 和 `when_to_use` 文字:將關鍵使用案例放在首位,因為每個項目的組合文字上限為 1,536 個字元,無論預算如何。上限可透過 [`skillListingMaxDescChars`](https://code.claude.com/docs/zh-TW/settings-reference#skilllistingmaxdescchars) 進行設定。1230若要提高預算,請設定 [`skillListingBudgetFraction`](https://code.claude.com/docs/zh-TW/settings-reference#skilllistingbudgetfraction) 設定(例如 `0.02` = 2%)或 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 環境變數為固定字元計數。若要為其他 skills 釋放預算,請在 [`skillOverrides`](#override-skill-visibility-from-settings) 中將低優先順序項目設定為 `"name-only"`,以便它們在沒有描述的情況下列出。您也可以在來源處修剪 `description` 和 `when_to_use` 文字:將關鍵使用案例放在首位,因為每個項目的組合文字上限為 1,536 個字元,無論預算如何。上限可透過 [`skillListingMaxDescChars`](https://code.claude.com/docs/zh-TW/settings-reference#skilllistingmaxdescchars) 進行設定。

1231 1231 

1232### Skill 描述中的角括號顯示為 `&lt;` 和 `&gt;`

1233 

1234Claude Code 會將 `description` 和 `when_to_use` 欄位中的 `<` 和 `>` 顯示為 `&lt;` 和 `&gt;`。若要顯示如 `<branch>` 之類的預留位置,請使用方括號或 [`argument-hint`](#frontmatter-reference):

1235 

1236* **方括號**:將 `<branch>` 替換為 `[branch]`,它會依輸入的樣子顯示

1237* **`argument-hint`**:將預留位置移至新的一行 `argument-hint: <branch>`。它會顯示在命令名稱之後。如果您也將 skill 上傳到 claude.ai 或 Skills API,請先[確認該處是否接受 `argument-hint`](#using-skill-frontmatter-outside-claude-code)。

1238 

1232### 個人 skills 消失1239### 個人 skills 消失

1233 1240 

1234如果您在 `~/.claude/skills/` 中建立的 skill 資料夾消失,請查看 `~/.claude/skills/.trash/`。當 Claude Code [從 claude.ai 同步 skills](#how-synced-skills-behave) 時,它會將它們下載到單獨的 `synced` 子資料夾中,不會移動或刪除您建立的資料夾。1241如果您在 `~/.claude/skills/` 中建立的 skill 資料夾消失,請查看 `~/.claude/skills/.trash/`。當 Claude Code [從 claude.ai 同步 skills](#how-synced-skills-behave) 時,它會將它們下載到單獨的 `synced` 子資料夾中,不會移動或刪除您建立的資料夾。

sub-agents.md +1 −1

Details

938 938 

939若要在 Claude 等待時繼續工作,請在終端機中按 **Ctrl+B**,或在 VS Code 中按一下 [**Run in background**](https://code.claude.com/docs/zh-TW/vs-code.md#move-a-running-command-or-subagent-to-the-background)。939若要在 Claude 等待時繼續工作,請在終端機中按 **Ctrl+B**,或在 VS Code 中按一下 [**Run in background**](https://code.claude.com/docs/zh-TW/vs-code.md#move-a-running-command-or-subagent-to-the-background)。

940 940 

941如果您將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數設定為 `1` 而不是關閉 fork 模式,Claude 會等待每個 subagent。背景命令也會關閉,且 **Ctrl+B** 不會將任何內容移至背景。941如果您將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數設定為 `1` 而不是關閉 fork 模式,Claude 會等待 subagents 完成後再繼續。背景命令也會關閉,且 **Ctrl+B** 不會將任何內容移至背景。

942 942 

943#### 背景 subagents 的工具、權限和結果943#### 背景 subagents 的工具、權限和結果

944 944 

tools-reference.md +21 −21

Details

618 618 

619## WebFetch 工具行為619## WebFetch 工具行為

620 620 

621WebFetch 接受一個 URL 和一個描述要提取內容的提示詞。它會擷取頁面,並在伺服器返回 HTML 時將回應轉換為 Markdown。對於大多數擷取,它接著會在一個獨立的模型呼叫中針對內容執行提示詞,而 Claude 收到的是該呼叫的結果,而不是原始頁面。轉換步驟無法設定。621WebFetch 接受一個 URL 以及一個描述要擷取哪些內容的提示詞。它會擷取該頁面,並在伺服器傳回 HTML 時將回應轉換為 Markdown。對於大多數擷取作業,它接著會在另一個獨立的模型呼叫中,針對內容執行該提示詞,而 Claude 收到的是該呼叫的結果,而非原始頁面。轉換步驟無法設定。

622 622 

623這使得 WebFetch 在設計上是有損的。提取提示決定了什麼會到達 Claude,所以一個說頁面沒有提及某事的結果可能只是意味著提示沒有詢問它。要求 Claude 使用更具體的提示再次擷取,或透過 Bash 使用 `curl` 來取得未處理的頁面。623這使得 WebFetch 在設計上就是有損的。擷取提示詞決定了哪些內容會傳達給 Claude,因此若結果表示某個頁面未提及某事,可能只代表提示詞沒有詢問到它。請要求 Claude 使用更具體的提示詞再次擷取,或透過 Bash 使用 `curl` 取得未經處理的頁面。

624 624 

625有幾個行為會影響 Claude 收到的回應:625有幾項行為會影響 Claude 收到的回應:

626 626 

627* WebFetch 拒絕 `localhost` 和任何其他沒有點的主機名稱,例如裸露的內部網路名稱,在發出請求之前。它[返回的錯誤](https://code.claude.com/docs/zh-TW/errors.md#webfetch-cannot-fetch-localhost)告訴 Claude 改為透過 Bash 使用 `curl` 來到達本機伺服器。627* WebFetch 會在發出請求之前,拒絕 `localhost` 以及任何不含點的主機名稱,例如單純的內部網路名稱。它[傳回的錯誤](https://code.claude.com/docs/zh-TW/errors.md#webfetch-cannot-fetch-localhost)會告訴 Claude 改為透過 Bash 使用 `curl` 存取本機伺服器。

628* HTTP URL 會自動升級為 HTTPS。628* HTTP URL 會自動升級為 HTTPS。

629* WebFetch 每次呼叫最多讀取頁面內容的 100,000 個字元。在 Claude Code v2.1.290 或更新版本上,較長頁面的結果會告訴 Claude 有多少內容未被讀取,讓 Claude 可以擷取下一部分。629* WebFetch 每次呼叫最多讀取頁面內容的 100,000 個字元。在 Claude Code v2.1.290 或更新版本中,較長頁面的結果會告知 Claude 有多少內容未被讀取,讓 Claude 可以擷取下一部分。

630* WebFetch 預設會快取每個回應 15 分鐘,所以重複擷取相同 URL 會快速返回。在 Claude Code v2.1.233 或更新版本上,設定 [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 以變更 WebFetch 保留每個回應的時間長度。630* WebFetch 預設會將每個回應快取 15 分鐘,因此重複擷取相同 URL 時會快速傳回。在 Claude Code v2.1.233 或更新版本中,可設定 [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 來變更 WebFetch 保留每個回應的時間長度。

631* 一個頁面如果在五分鐘內未完成下載(包括 WebFetch 跟隨的任何重新導向),會因為截止時間錯誤而失敗。在 Claude Code v2.1.268 或更新版本上,設定 [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 以變更限制,或設定為 `0` 以移除它。631* 若頁面在五分鐘內未完成下載(包括 WebFetch 追蹤的任何重新導向),則會因期限錯誤而失敗。在 Claude Code v2.1.268 或更新版本中,可設定 [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 來變更此限制,或設為 `0` 以移除限制。

632* 當 URL 重新導向到不同的主機時,WebFetch 會返回一個文字結果,命名原始 URL 和重新導向目標,而不是跟隨它。Claude 隨後會使用第二個 WebFetch 呼叫擷取新 URL。632* 當 URL 重新導向至不同的主機時,WebFetch 不會追蹤該重新導向,而是傳回一個列出原始 URL 與重新導向目標的文字結果。接著 Claude 會以第二次 WebFetch 呼叫擷取新的 URL。

633* 當提取步驟遇到過載的 API 時,Claude Code 會以退避方式重試它;仍然失敗的擷取會返回錯誤結果。633* 當擷取步驟遇到過載的 API 時,Claude Code 會以退避方式重試;若擷取仍然失敗,則會傳回錯誤結果。

634 634 

635在手動和 `acceptEdits` [權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)中,WebFetch 會在擷取前提示,除非您的 [權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)已允許或拒絕該域名,以及一組內建的預先批准文件域名可以無提示擷取。無論您的規則允許什麼,擷取也必須先通過 [WebFetch 域名安全檢查](https://code.claude.com/docs/zh-TW/data-usage.md#webfetch-domain-safety-check);該部分涵蓋檢查發送的內容和跳過它的設定。提示提供三個選項:635在 Manual 與 `acceptEdits` [權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)下,WebFetch 會在擷取前顯示權限提示,但您的[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)已允許或拒絕的網域,以及一組內建的預先核准文件網域除外,這些網域會直接擷取而不顯示提示。無論您的規則允許什麼,擷取作業都會先通過 [WebFetch 網域安全性檢查](https://code.claude.com/docs/zh-TW/data-usage.md#webfetch-domain-safety-check);該章節說明了檢查所傳送的內容以及可略過檢查的設定。權限提示提供三個選項:

636 636 

637* **是**:僅批准此擷取。下一個 WebFetch 呼叫會再次提示,即使是相同的域名。637* **Yes**:僅核准此次擷取。下一次 WebFetch 呼叫會再次顯示提示,即使是相同網域也是如此。

638* **是,且不再詢問 `<domain>`**:批准擷取並將 `WebFetch(domain:...)` 允許規則保存到該域名的 `.claude/settings.local.json` 以供該儲存庫使用。請參閱 [已保存的批准如何持續](https://code.claude.com/docs/zh-TW/permissions.md#permission-system)。當您的組織設定 [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/permissions#managed-only-settings) 時,Claude Code 會隱藏此選項。638* **Yes, and don't ask again for `<domain>`**:核准此次擷取,並將該網域的 `WebFetch(domain:...)` 允許規則儲存至該儲存庫的 `.claude/settings.local.json`。請參閱[已儲存的核准如何保留](https://code.claude.com/docs/zh-TW/permissions.md#permission-system)。當您的組織設定了 [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/permissions#managed-only-settings) 時,Claude Code 會隱藏此選項。

639* **否,並告訴 Claude 應該如何不同地做**:拒絕擷取。639* **No, and tell Claude what to do differently**:拒絕此次擷取。

640 640 

641若要提前允許域名而不提示,請新增允許規則,例如 `WebFetch(domain:example.com)`;`WebFetch(domain:*)` 允許每個域名。`auto` 和 `bypassPermissions` [權限模式](https://code.claude.com/docs/zh-TW/permissions.md#permission-modes)會跳過提示,除非明確的 `ask` 規則符合該域名。641若要事先允許某個網域而不顯示提示,請新增類似 `WebFetch(domain:example.com)` 的允許規則;`WebFetch(domain:*)` 則會允許所有網域。`auto` 與 `bypassPermissions` [權限模式](https://code.claude.com/docs/zh-TW/permissions.md#permission-modes)會略過提示,但符合明確 `ask` 規則的網域除外。

642 642 

643`deny`、`ask` 或 `allow` 中的明確 `WebFetch(domain:...)` 規則優先於預先批准的集合,所以您可以阻止預先批准的域名或要求提示。643在 `deny`、`ask` 或 `allow` 中明確設定的 `WebFetch(domain:...)` 規則優先於預先核准的網域集合,因此您可以封鎖某個預先核准的網域,或要求對其顯示提示。

644 644 

645當 URL 是 claude.ai [artifact](https://code.claude.com/docs/zh-TW/artifacts.md) 連結時,Claude Code 也可能會請求核准以讀取 artifact 本身。關於會請求核准的情況,請參閱[讀取與您共用的 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#read-an-artifact-shared-with-you)。645當 URL 是 claude.ai [artifact](https://code.claude.com/docs/zh-TW/artifacts.md) 連結時,Claude Code 也可能要求核准以讀取該 artifact 本身。關於會要求核准的情況,請參閱[讀取與您分享的 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#read-an-artifact-shared-with-you)。

646 646 

647WebFetch 設定一個以 `Claude-User` 開頭的 `User-Agent` 標頭,以及一個 `Accept` 標頭,優先使用 Markdown 而不是 HTML,以便支援內容協商的伺服器可以直接返回 Markdown。647WebFetch 會設定以 `Claude-User` 開頭的 `User-Agent` 標頭,以及偏好 Markdown 而非 HTML 的 `Accept` 標頭,讓支援內容協商的伺服器可以直接傳回 Markdown。

648 648 

649沙箱化命令不會繼承 WebFetch 的內建預先批准文件域名集合。若要讓沙箱化命令無提示地到達域名,請將域名新增到 [`allowedDomains`](https://code.claude.com/docs/zh-TW/settings-reference#sandbox-network-alloweddomains) 或使用 `WebFetch(domain:...)` 規則允許它,[沙箱也會遵守](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)。WebFetch 不會反過來讀取沙箱允許清單,所以將域名新增到沙箱或組織網路允許清單不會阻止 WebFetch 提示它。649沙箱化的命令不會繼承 WebFetch 內建的預先核准文件網域集合。若要讓沙箱化的命令在不顯示提示的情況下存取某個網域,請將該網域新增至 [`allowedDomains`](https://code.claude.com/docs/zh-TW/settings-reference#sandbox-network-alloweddomains),或以 `WebFetch(domain:...)` 規則允許它,[沙箱也會遵循](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)此規則。反之,WebFetch 從不讀取沙箱允許清單,因此將網域新增至沙箱或組織的網路允許清單,並不會讓 WebFetch 停止對該網域顯示提示。

650 650 

651### WebFetch 可用性651### WebFetch 可用性

652 652 

653在 Claude Code v2.1.285 或更新版本上,設定 [`CLAUDE_CODE_DISABLE_WEB_FETCH`](https://code.claude.com/docs/zh-TW/env-vars#variables) 為 `1` 以關閉 WebFetch。653在 Claude Code v2.1.285 或更新版本中,將 [`CLAUDE_CODE_DISABLE_WEB_FETCH`](https://code.claude.com/docs/zh-TW/env-vars#variables) 設為 `1` 即可關閉 WebFetch。

654 654 

655如果您使用 Team 或 Enterprise claude.ai 帳戶登入,且不透過 [LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway)連接,WebFetch 也取決於您組織的政策,Claude Code 會在工作階段開始時從 `api.anthropic.com` 要求該政策。對於 Claude Code 無法判斷計畫的工作階段也是如此,例如在另一個應用程式提供的 claude.ai 權杖下執行的工作階段。655如果您使用 Team 或 Enterprise claude.ai 帳戶登入,且未透過 [LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway)連線,WebFetch 也會取決於您組織的政策,Claude Code 會在工作階段開始時向 `api.anthropic.com` 請求該政策。對於 Claude Code 無法判斷其方案的工作階段也是如此,例如在由其他應用程式提供的 claude.ai token 下執行的工作階段。

656 656 

657如果 WebFetch 在工作階段中遺失,請在工作階段中執行 `/status`。如果其 `Organization policy` 行報告政策未載入並在等待該政策的功能中命名網路擷取,Claude Code 會保留 WebFetch,直到它可以確認您的組織允許它。在工作階段外,`claude doctor` 會自行發出請求並列印相同的行。一旦載入允許 WebFetch 的政策,該工具會無需重新啟動而返回。657如果工作階段中缺少 WebFetch,請在該工作階段中執行 `/status`。如果其 `Organization policy` 行顯示政策未載入,並將 web fetch 列為等待該政策的功能之一,表示 Claude Code 正在暫緩提供 WebFetch,直到能確認您的組織允許它為止。在工作階段之外,`claude doctor` 會自行發出請求並顯示相同的行。一旦允許 WebFetch 的政策載入完成,該工具就會恢復可用,無需重新啟動。

658 658 

659## WebSearch 工具行為659## WebSearch 工具行為

660 660 

Details

1169 1169 

1170### WSL2、SSH 或容器中的 OAuth 登入失敗1170### WSL2、SSH 或容器中的 OAuth 登入失敗

1171 1171 

1172當 Claude Code 在 WSL2 中執行、透過 SSH 在遠端機器上執行或在容器內執行時,瀏覽器通常在不同的主機上開啟,其重新導向無法到達 Claude Code 的本地回呼伺服器。在您登入後,瀏覽器會顯示登入代碼而不是自動重新導向回來。將該代碼貼到終端機的 `Paste code here if prompted` 提示中以完成登入。1172如果沒有開啟瀏覽器,或瀏覽器讓您登入後顯示 `localhost` 位址的連線錯誤,您無需修正這兩個問題中的任何一個即可完成登入。請改為透過終端機在其貼上提示上方顯示的另一個登入 URL 登入:

1173 1173 

1174如果瀏覽器根本不從 WSL2 開啟,請將 `BROWSER` 環境變數設定為您的 Windows 瀏覽器路徑:1174**1. 複製登入 URL**

1175 1175 

1176```bash theme={null}1176在互動式登入提示時,按 `c` 複製 URL,或在終端機中選取它。若使用 `claude auth login`,請複製它列印的 URL。

1177export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"1177 

1178claude1178**2. 透過該 URL 登入**

1179```1179 

1180在您本地機器上的瀏覽器中開啟該 URL 並登入。瀏覽器隨後會顯示代碼,而不是返回 `localhost`。

1181 

1182**3. 貼上代碼**

1180 1183 

1181或者,在互動式登入提示時按 `c` 複製 OAuth URL,或複製 `claude auth login` 列印的 URL,並在您的本地機器上的瀏覽器中開啟它。1184將該代碼貼到終端機中以 `Paste code here` 開頭的提示。

1182 1185 

1183如果將代碼貼到互動式提示中沒有任何反應,您的終端機的貼上繫結可能無法到達輸入欄位。嘗試您的終端機的替代貼上快捷鍵,通常在 Windows Terminal 中是右鍵點擊或 Shift+Insert,或改用 `claude auth login`,它從標準輸入讀取貼上的代碼:1186如果將代碼貼到互動式提示中沒有任何反應,您的終端機的貼上繫結可能無法到達輸入欄位。嘗試您的終端機的替代貼上快捷鍵,通常在 Windows Terminal 中是右鍵點擊或 Shift+Insert,或改用 `claude auth login`,它從標準輸入讀取貼上的代碼:

1184 1187 


1188 1191 

1189此備援方式也適用於原生 Windows 或任何將代碼貼到互動式提示失敗的終端機。1192此備援方式也適用於原生 Windows 或任何將代碼貼到互動式提示失敗的終端機。

1190 1193 

1194在 WSL2 上,如果沒有開啟瀏覽器,您也可以將 `BROWSER` 環境變數設定為您的 Windows 瀏覽器路徑,讓 Claude Code 下次開啟該瀏覽器:

1195 

1196```bash theme={null}

1197export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"

1198claude

1199```

1200 

1191### 未登入或 token 已過期1201### 未登入或 token 已過期

1192 1202 

1193如果 Claude Code 在工作階段後提示您再次登入,您的 OAuth token 可能已過期。1203如果 Claude Code 在工作階段後提示您再次登入,您的 OAuth token 可能已過期。

vs-code.md +18 −7

Details

133 當目前的模型支援 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)時,選擇器也會顯示 **Effort** 列,且模型名稱按鈕會顯示所選的等級。當您選擇 `max` 以外的等級時,Claude Code 會將其儲存為目前模型的預設值,存放於使用者設定中的 [`modelSettings`](https://code.claude.com/docs/zh-TW/settings-reference#modelsettings) 之下;`max` 僅套用於目前的工作階段。模型名稱按鈕和 **Effort** 列需要 Claude Code v2.1.257 或更新版本。133 當目前的模型支援 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)時,選擇器也會顯示 **Effort** 列,且模型名稱按鈕會顯示所選的等級。當您選擇 `max` 以外的等級時,Claude Code 會將其儲存為目前模型的預設值,存放於使用者設定中的 [`modelSettings`](https://code.claude.com/docs/zh-TW/settings-reference#modelsettings) 之下;`max` 僅套用於目前的工作階段。模型名稱按鈕和 **Effort** 列需要 Claude Code v2.1.257 或更新版本。

134 134 

135 當[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)已啟用且目前的模型支援時,**Effort** 列下方會出現 **Ultracode** 開關。開啟後,Claude 會在此工作階段中,以所選的 effort 等級為每個實質任務規劃一個[工作流程](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode)。開啟期間,模型名稱按鈕會在等級後方顯示 `· Ultracode`。此開關需要 Claude Code v2.1.284 或更新版本。135 當[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)已啟用且目前的模型支援時,**Effort** 列下方會出現 **Ultracode** 開關。開啟後,Claude 會在此工作階段中,以所選的 effort 等級為每個實質任務規劃一個[工作流程](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode)。開啟期間,模型名稱按鈕會在等級後方顯示 `· Ultracode`。此開關需要 Claude Code v2.1.284 或更新版本。

136* **命令選單**:點擊 `/` 或輸入 `/` 以開啟命令選單。選項包括附加檔案、切換模型,以及切換延伸思考。136* **命令選單**:點擊 `/` 或輸入 `/` 以開啟命令選單。選項包括附加檔案和切換模型。

137 137 

138 Customize 區段包含 MCP 伺服器、命令、輸出風格、hook、記憶、指令、權限和外掛等項目。帶有終端機圖示的項目會在整合式終端機中開啟。138 Customize 區段包含 MCP 伺服器、命令、輸出風格、hook、記憶、指令、權限和外掛等項目。帶有終端機圖示的項目會在整合式終端機中開啟。

139 139 


191 若要在未顯示 agent 計數時開啟地圖(例如 Claude 已啟動背景 shell 但沒有 subagent 時),請在提示詞輸入框中輸入 `/tasks`。地圖中的背景任務和輸入的 `/tasks` 需要 Claude Code v2.1.277 或更新版本。191 若要在未顯示 agent 計數時開啟地圖(例如 Claude 已啟動背景 shell 但沒有 subagent 時),請在提示詞輸入框中輸入 `/tasks`。地圖中的背景任務和輸入的 `/tasks` 需要 Claude Code v2.1.277 或更新版本。

192 192 

193 在 Claude Code v2.1.286 或更新版本中,當您點擊 **Stop** 或按下 `Esc` 時,目前的回合會結束。背景 agent 會持續執行,直到完成或您從地圖中將其停止為止。193 在 Claude Code v2.1.286 或更新版本中,當您點擊 **Stop** 或按下 `Esc` 時,目前的回合會結束。背景 agent 會持續執行,直到完成或您從地圖中將其停止為止。

194* **延伸思考**:讓 Claude 花更多時間推理複雜的問題。透過命令選單(`/`)將其開啟。Claude 的推理會以摺疊區塊的形式出現在對話中:點擊區塊即可閱讀,或按下 `Ctrl+O` 以展開或摺疊工作階段中的每個思考區塊。詳情請參閱[延伸思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)。194* **延伸思考**:讓 Claude 花更多時間推理複雜的問題。若要將其關閉或重新開啟,請使用命令選單(`/`)Model 區段中的 **Thinking** 開關。在[無法關閉思考](https://code.claude.com/docs/zh-TW/model-config.md#extended-thinking)的模型上,選單中沒有 **Thinking** 開關,且思考會保持開啟。

195 

196 僅顯示標籤(例如 `Thought for 12s`)的思考區塊不含文字,點擊時也不會展開。若要查看思考摘要,請在 `~/.claude/settings.json` 中將 [`showThinkingSummaries`](https://code.claude.com/docs/zh-TW/settings-reference#showthinkingsummaries) 設為 `true`,然後從命令選擇區執行 **Developer: Reload Window**。

197 

198 您既有的思考區塊會保持空白。在重新載入後的回應中,點擊區塊或按下 `Ctrl+O` 即可將其全部展開。

195* **多行輸入**:按下 `Shift+Enter` 即可新增一行而不傳送。這在問題對話方塊的「Other」自由文字輸入中也適用。199* **多行輸入**:按下 `Shift+Enter` 即可新增一行而不傳送。這在問題對話方塊的「Other」自由文字輸入中也適用。

196 200 

197### 參照檔案和資料夾201### 參照檔案和資料夾


333 337 

334執行 `/usage` 以開啟 Account & usage 對話方塊,其中會顯示您登入的帳戶和您的使用量。使用量數字會依您的登入方式而定:338執行 `/usage` 以開啟 Account & usage 對話方塊,其中會顯示您登入的帳戶和您的使用量。使用量數字會依您的登入方式而定:

335 339 

336* **claude.ai 方案**:顯示您方案限制的使用量長條,例如目前工作階段和本週。每個長條都會顯示距離其限制重設還有多久。340* **claude.ai 方案**:顯示您方案限制的使用量長條,例如目前工作階段和本週。

337 341 

338 對話方塊也會細分哪些因素正在消耗您的方案限制:342 對話方塊也會細分哪些因素正在消耗您的方案限制:

339 343 


580 584 

581建立提取請求時,Claude 會根據實際的程式碼變更產生描述,並可以新增有關測試或實作決策的內容。585建立提取請求時,Claude 會根據實際的程式碼變更產生描述,並可以新增有關測試或實作決策的內容。

582 586 

587### 重新開啟已移至 worktree 的對話

588 

589在重新開啟的對話中,**This session is in worktree** 橫幅表示該對話的工作目錄是橫幅所指名的 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md),而非此視窗所開啟的資料夾。若要在新的 VS Code 視窗中開啟該 worktree,請按一下橫幅上的 **Open worktree**。

590 

591例如,當您[要求 Claude 在某個 worktree 中工作](https://code.claude.com/docs/zh-TW/worktrees.md#ask-claude-to-create-a-worktree)時,對話就會移至該 worktree。當您重新開啟對話,或面板[在視窗重新載入後重新開啟對話](#continue-conversations-after-a-reload)時,如果該 worktree 是由 Claude Code 在 `.claude/worktrees/` 下建立且仍然存在,對話就會在該 worktree 中繼續。在 Claude Code v2.1.300 之前,會改為開啟一個空白對話。若使用這些版本,請更新擴充功能。

592 

583## 在背景執行工作593## 在背景執行工作

584 594 

585將長時間執行的命令或 subagent 移至背景,然後從提示詞輸入框查看其狀態。595將長時間執行的命令或 subagent 移至背景,然後從提示詞輸入框查看其狀態。


633| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | 插入目前檔案與選取範圍的參照(需要編輯器處於聚焦狀態) |643| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | 插入目前檔案與選取範圍的參照(需要編輯器處於聚焦狀態) |

634| Accept Change at Cursor | - | 在逐一[檢閱提議的編輯](#get-started)時,接受游標所在處的變更。需要 Claude Code v2.1.275 或更新版本 |644| Accept Change at Cursor | - | 在逐一[檢閱提議的編輯](#get-started)時,接受游標所在處的變更。需要 Claude Code v2.1.275 或更新版本 |

635| Reject Change at Cursor | - | 在逐一檢閱提議的編輯時,還原游標所在處的變更。需要 Claude Code v2.1.275 或更新版本 |645| Reject Change at Cursor | - | 在逐一檢閱提議的編輯時,還原游標所在處的變更。需要 Claude Code v2.1.275 或更新版本 |

636| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | 隱藏或顯示對話中的工具活動。在 Claude 面板或側邊欄可見時有效。需要 Claude Code v2.1.221 或更新版本 |646| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | 隱藏或顯示對話中的工具活動。在 Claude 面板或側邊欄可見時有效。在 Windows/Linux 上,當焦點位於偵錯主控台或可搜尋的清單(例如檔案總管)時,`Ctrl+Alt+F` 會改為開啟 VS Code 的尋找功能。請將焦點移至編輯器或 Claude 面板後再按一次。需要 Claude Code v2.1.221 或更新版本 |

637| Rename Session Tab | - | 重新命名目前 Claude 分頁中的工作階段。需要 Claude Code v2.1.257 或更新版本 |647| Rename Session Tab | - | 重新命名目前 Claude 分頁中的工作階段。需要 Claude Code v2.1.257 或更新版本 |

638| Add Session Tab to Group | - | 將目前 Claude 分頁中的工作階段加入您選取或建立的[工作階段群組](#organize-sessions-into-groups)。需要 Claude Code v2.1.257 或更新版本 |648| Add Session Tab to Group | - | 將目前 Claude 分頁中的工作階段加入您選取或建立的[工作階段群組](#organize-sessions-into-groups)。需要 Claude Code v2.1.257 或更新版本 |

639| Mark Session as Unread | - | 在工作階段清單中將目前 Claude 分頁中的工作階段標示為未讀。需要 Claude Code v2.1.257 或更新版本 |649| Mark Session as Unread | - | 在工作階段清單中將目前 Claude 分頁中的工作階段標示為未讀。需要 Claude Code v2.1.257 或更新版本 |


654 664 

655**Linux**665**Linux**

656 666 

657`xdg-open` 命令來自 `xdg-utils` 套件。若 shell 回報找不到此命令,請參閱[在 Linux 上找不到 xdg-open](https://code.claude.com/docs/zh-TW/deep-links.md#xdg-open-is-not-found-on-linux)。

658 

659```bash theme={null}667```bash theme={null}

660xdg-open "vscode://anthropic.claude-code/open"668xdg-open "vscode://anthropic.claude-code/open"

661```669```

662 670 

671`xdg-open` 命令來自 `xdg-utils` 套件。若 shell 回報找不到此命令,請參閱[在 Linux 上找不到 xdg-open](https://code.claude.com/docs/zh-TW/deep-links.md#xdg-open-is-not-found-on-linux)。

672 

663**Windows**673**Windows**

664 674 

665在 PowerShell 中:675在 PowerShell 中:


679| 參數 | 說明 |689| 參數 | 說明 |

680| - | - |690| - | - |

681| `prompt` | 要預先填入提示詞輸入框的文字。必須經過 URL 編碼。提示詞會預先填入,但不會自動送出。 |691| `prompt` | 要預先填入提示詞輸入框的文字。必須經過 URL 編碼。提示詞會預先填入,但不會自動送出。 |

682| `session` | 要繼續的工作階段 ID,而非開始新對話。該工作階段必須屬於目前在 VS Code 中開啟的工作區。若找不到該工作階段,則會改為開始新的對話。若該工作階段已在某個分頁中開啟,則會聚焦該分頁。若要以程式方式取得工作階段 ID,請參閱[繼續對話](https://code.claude.com/docs/zh-TW/headless.md#continue-conversations)。 |692| `session` | 要繼續的工作階段 ID,來自目前在 VS Code 中開啟的資料夾。使用 Claude Code v2.1.300 或更新版本時,來自該資料夾儲存庫的主要 checkout 或 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 的工作階段也能繼續。若找不到該工作階段,則會改為開始新的對話。若該工作階段已在某個分頁中開啟,則會聚焦該分頁。若要以程式方式取得工作階段 ID,請參閱[繼續對話](https://code.claude.com/docs/zh-TW/headless.md#continue-conversations)。 |

683 693 

684例如,若要開啟預先填入「review my changes」的分頁:694例如,若要開啟預先填入「review my changes」的分頁:

685 695 


916| `Claude Code process exited with code 1` 或其他代碼 | [Claude Code process exited with code N](https://code.claude.com/docs/zh-TW/errors.md#claude-code-process-exited-with-code-n) |926| `Claude Code process exited with code 1` 或其他代碼 | [Claude Code process exited with code N](https://code.claude.com/docs/zh-TW/errors.md#claude-code-process-exited-with-code-n) |

917| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/zh-TW/errors.md#could-not-locate-the-claude-cli-on-path) |927| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/zh-TW/errors.md#could-not-locate-the-claude-cli-on-path) |

918| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/zh-TW/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |928| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/zh-TW/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |

929| `The Claude Code program for this computer, the <build> build, could not be found` | [The Claude Code program for this computer could not be found](https://code.claude.com/docs/zh-TW/errors.md#the-claude-code-program-for-this-computer-could-not-be-found) |

919| 在 VS Code 的整合式終端機中找不到 `claude` | [在 VS Code 中執行 CLI](#run-cli-in-vs-code) |930| 在 VS Code 的整合式終端機中找不到 `claude` | [在 VS Code 中執行 CLI](#run-cli-in-vs-code) |

920 931 

921### 擴充功能無法安裝932### 擴充功能無法安裝

worktrees.md +15 −1

Details

214 214 

215### 重複使用 worktree 名稱215### 重複使用 worktree 名稱

216 216 

217傳遞 `--worktree` 一個其目錄已存在的名稱會開啟該現有 worktree,而不是建立新的。217如果您傳遞給 `--worktree` 的名稱所對應的 worktree 已存在,Claude Code 會開啟它,而不是建立新的。如果 Claude Code 因包含 `belongs to a different repository` 或 `is a leftover worktree` 的錯誤而停止,請參閱[The worktree directory `belongs to a different repository`](#belongs-to-a-different-repository)。

218 218 

219使用預設 `"fresh"` [基礎](#choose-the-base-branch),當以下所有條件都成立時,重新開啟的 worktree 會重設為儲存庫的預設分支,而不是在其舊的頂端繼續:219使用預設 `"fresh"` [基礎](#choose-the-base-branch),當以下所有條件都成立時,重新開啟的 worktree 會重設為儲存庫的預設分支,而不是在其舊的頂端繼續:

220 220 


353 353 

354包含 `This repository is a partial clone` 的錯誤表示 Claude Code 無法擷取 worktree 起始提交所需的每個 git 物件。請執行訊息中以 `try again` 結尾的那句話所述的步驟。然後從您執行該步驟的 shell 重試:執行 `claude --worktree`,或在那裡啟動 `claude` 並再次提出要求。354包含 `This repository is a partial clone` 的錯誤表示 Claude Code 無法擷取 worktree 起始提交所需的每個 git 物件。請執行訊息中以 `try again` 結尾的那句話所述的步驟。然後從您執行該步驟的 shell 重試:執行 `claude --worktree`,或在那裡啟動 `claude` 並再次提出要求。

355 355 

356### `Can only use --worktree in a git repository`

357 

358此錯誤表示您在不是 git 檢出的目錄中傳入了 `--worktree`,且沒有作用中的 [`WorktreeCreate` hook](#non-git-version-control)。

359 

360* 在沒有版本控制的資料夾中,請在該處執行 `git init`,建立第一個提交,然後重試。

361* 在其他版本控制系統的檢出中,請設定訊息所建議的 hook。

362* 若要直接在該目錄中工作,請在不使用 `--worktree` 的情況下啟動 Claude。

363 

364### Worktree 目錄 `belongs to a different repository`

365 

366錯誤 `belongs to a different repository` 和 `is a leftover worktree` 都表示 git 將您所傳入之 worktree 名稱的目錄綁定到另一個位置。這可能在您複製或移動專案後發生。

367 

368請傳入不同的 worktree 名稱。如果該目錄沒有需要保留的工作,且您並未複製或移動專案,您可以將其移除並以相同名稱重試。在複製或移動之後,該重試可能會以 `is already checked out elsewhere in this repository` 失敗,因此請使用不同的名稱。

369 

356### Claude Code 拒絕使用 worktree370### Claude Code 拒絕使用 worktree

357 371 

358以 `Refusing to use <path> as an isolation worktree` 開頭的錯誤意味著 Claude Code 在採用它作為會話或子代理的隔離檢出之前檢查了目錄的 git 身份,並拒絕了它。檢查會執行,無論 Claude Code 是建立 worktree、進入現有的還是重複使用早期執行中的。372以 `Refusing to use <path> as an isolation worktree` 開頭的錯誤意味著 Claude Code 在採用它作為會話或子代理的隔離檢出之前檢查了目錄的 git 身份,並拒絕了它。檢查會執行,無論 Claude Code 是建立 worktree、進入現有的還是重複使用早期執行中的。