SpyBara
Go Premium

Documentation 2026-06-29 23:02 UTC to 2026-06-30 23:02 UTC

77 files changed +3,024 −584. View all changes and history on the product overview
2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

admin-setup.md +14 −10

Details

36| Google Vertex AI | 您希望繼承現有的 GCP 合規控制和計費 |36| Google Vertex AI | 您希望繼承現有的 GCP 合規控制和計費 |

37| Microsoft Foundry | 您希望繼承現有的 Azure 合規控制和計費 |37| Microsoft Foundry | 您希望繼承現有的 Azure 合規控制和計費 |

38 38 

39某些 Claude Code 功能需要 Claude.ai 帳戶。[Claude Code on the web](/zh-TW/claude-code-on-the-web)、[Routines](/zh-TW/routines)、[Code Review](/zh-TW/code-review)、[Remote Control](/zh-TW/remote-control) 和 [Chrome extension](/zh-TW/chrome) 無法透過 Console API 金鑰或雲端提供者認證單獨使用。如果您透過 Bedrock、Vertex 或 Foundry 部署,請規劃開發人員是否也需要 Claude for Teams 或 Enterprise 座位。每個功能頁面都列出其計畫要求。39某些 Claude Code 功能需要 claude.ai 帳戶。[Claude Code on the web](/zh-TW/claude-code-on-the-web)、[Routines](/zh-TW/routines)、[Code Review](/zh-TW/code-review)、[Remote Control](/zh-TW/remote-control) 和 [Chrome extension](/zh-TW/chrome) 無法透過 Console API 金鑰或雲端提供者認證單獨使用。如果您透過 Bedrock、Vertex 或 Foundry 部署,請規劃開發人員是否也需要 Claude for Teams 或 Enterprise 座位。每個功能頁面都列出其計畫要求。

40 40 

41有關涵蓋驗證、區域和功能奇偶性的完整提供者比較,請參閱 [企業部署概述](/zh-TW/third-party-integrations)。每個提供者的驗證設定位於 [Authentication](/zh-TW/authentication)。41有關涵蓋驗證、區域和功能奇偶性的完整提供者比較,請參閱 [企業部署概述](/zh-TW/third-party-integrations)。每個提供者的驗證設定位於 [Authentication](/zh-TW/authentication)。

42 42 


46 決定設定如何到達裝置46 決定設定如何到達裝置

47</h2>47</h2>

48 48 

49受管設定定義優先於本地開發人員配置的政策。Claude Code 按優先順序檢查以下四個來源,並應用第一個傳回非空配置的來源。49受管設定定義優先於本地開發人員配置的政策。Claude Code 按優先順序檢查以下四個來源,並應用第一個傳回非空配置的來源,但有一個例外:當任何管理員控制的來源設定時,會遵守一小組[跨來源鎖定鍵](/zh-TW/settings#settings-precedence),例如沙箱允許清單鎖定

50 50 

51| 機制 | 傳遞 | 優先級 | 平台 |51| 機制 | 傳遞 | 優先級 | 平台 |

52| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-- | :------------ |52| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-- | :------------ |

53| Server-managed | Claude.ai 管理員控制台 | 最高 | 全部 |53| Server-managed | claude.ai 管理員控制台,或用於閘道登入的自託管 [Claude apps gateway](/zh-TW/claude-apps-gateway) | 最高 | 全部 |

54| plist / registry policy | macOS:`com.anthropic.claudecode` plist<br />Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` | 高 | macOS、Windows |54| plist / registry policy | macOS:`com.anthropic.claudecode` plist<br />Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` | 高 | macOS、Windows |

55| File-based managed | macOS:`/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux 和 WSL:`/etc/claude-code/managed-settings.json`<br />Windows:`C:\Program Files\ClaudeCode\managed-settings.json` | 中 | 全部 |55| File-based managed | macOS:`/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux 和 WSL:`/etc/claude-code/managed-settings.json`<br />Windows:`C:\Program Files\ClaudeCode\managed-settings.json` | 中 | 全部 |

56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | 最低 | 僅 Windows |56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | 最低 | 僅 Windows |

57 57 

58Server-managed 設定在驗證時到達裝置,並在活動會話期間每小時刷新一次,無需端點基礎設施它們需要 Claude for Teams 或 Enterprise 計畫,因此在其他提供者上的部署需要改用基於檔案或作業系統級別的機制之一58已配置的 [`policyHelper`](/zh-TW/settings#compute-managed-settings-with-a-policy-helper) 會優先於所有四個來源:其輸出成為該執行的唯一受管配置請參閱[設定優先順序](/zh-TW/settings#settings-precedence)

59 59 

60如果您的組織混合使用提供者請為 Claude.ai 使用者配置 [server-managed settings](/zh-TW/server-managed-settings) 加上 [基於檔案或 plist/registry 備用](/zh-TW/settings#settings-files),以便其他使用者仍然接收受管政策60Server-managed 設定在驗證時到達裝置並在活動會話期間每小時刷新一次,無需端點基礎設施。透過 claude.ai 管理員控制台傳遞需要 Claude for Teams 或 Enterprise 計畫。在 Bedrock、Vertex AI 或 Foundry 上的部署可以透過執行 [Claude apps gateway](/zh-TW/claude-apps-gateway) 獲得相同的遠端傳遞或改用其中一個基於檔案或作業系統級別的機制

61 

62如果您的組織混合使用提供者,請為 claude.ai 使用者配置 [server-managed settings](/zh-TW/server-managed-settings) 加上 [基於檔案或 plist/registry 備用](/zh-TW/settings#settings-files),以便其他使用者仍然接收受管政策。

61 63 

62plist 和 HKLM 登錄位置適用於任何提供者,並且由於需要管理員權限才能寫入,因此可以抵抗篡改。Windows 使用者登錄中的 HKCU 無需提升即可寫入,因此將其視為便利預設值而不是執行通道。64plist 和 HKLM 登錄位置適用於任何提供者,並且由於需要管理員權限才能寫入,因此可以抵抗篡改。Windows 使用者登錄中的 HKCU 無需提升即可寫入,因此將其視為便利預設值而不是執行通道。

63 65 

64無論您選擇哪種機制受管值都優先於使用者和專案設定。陣列設定(例如 `permissions.allow` `permissions.deny`)會合併來自所有來源的項目,因此開發人員可以擴展受管清單但無法從中移除但有 [兩個例外](/zh-TW/settings#settings-precedence),其中受管值會取代較低層級而不是合併:`fallbackModel` 和 `availableModels`66根據預設WSL 僅讀取 `/etc/claude-code` Linux 檔案路徑。若要將您的 Windows 登錄和 `C:\Program Files\ClaudeCode` 政策擴展到同一機器上的 WSL請在這些僅限管理員的 Windows 來源之一中設定 [`wslInheritsWindowsSettings: true`](/zh-TW/settings#available-settings)。

67 

68無論您選擇哪種機制,受管值都優先於使用者和專案設定。陣列設定(例如 `permissions.allow` 和 `permissions.deny`)會合併來自所有來源的項目,因此開發人員可以擴展受管清單但無法從中移除。對於[兩個例外](/zh-TW/settings#settings-precedence),`fallbackModel` 和 `availableModels`,受管值會取代較低層級而不是合併。

65 69 

66請參閱 [Server-managed settings](/zh-TW/server-managed-settings) 和 [Settings files and precedence](/zh-TW/settings#settings-files)。70請參閱 [Server-managed settings](/zh-TW/server-managed-settings) 和 [Settings files and precedence](/zh-TW/settings#settings-files)。

67 71 


78| [Sandboxing](/zh-TW/sandboxing) | 作業系統級別的檔案系統和網路隔離,具有網域允許清單 | `sandbox.enabled`、`sandbox.network.allowedDomains` |82| [Sandboxing](/zh-TW/sandboxing) | 作業系統級別的檔案系統和網路隔離,具有網域允許清單 | `sandbox.enabled`、`sandbox.network.allowedDomains` |

79| [Managed policy CLAUDE.md](/zh-TW/memory#deploy-organization-wide-claude-md) | 在每個會話中載入的組織範圍指令,無法排除 | 受管政策路徑中的檔案 |83| [Managed policy CLAUDE.md](/zh-TW/memory#deploy-organization-wide-claude-md) | 在每個會話中載入的組織範圍指令,無法排除 | 受管政策路徑中的檔案 |

80| [MCP server control](/zh-TW/managed-mcp) | 限制使用者可以新增或連接的 MCP 伺服器,或部署固定集合 | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly`,或已部署的 `managed-mcp.json` 檔案 |84| [MCP server control](/zh-TW/managed-mcp) | 限制使用者可以新增或連接的 MCP 伺服器,或部署固定集合 | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly`,或已部署的 `managed-mcp.json` 檔案 |

81| [Plugin marketplace control](/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) | 限制使用者可以新增和安裝的市場來源 | `strictKnownMarketplaces`、`blockedMarketplaces` |85| [Plugin marketplace control](/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) | 限制使用者可以新增和安裝的市場來源,以及拒絕為單次執行側載外掛程式、agents 和 MCP 伺服器的 CLI 旗標 | `strictKnownMarketplaces`、`blockedMarketplaces`、`disableSideloadFlags` |

82| [Customization lockdown](/zh-TW/settings#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 伺服器來自使用者和專案來源,使其只能來自外掛程式或受管設定 | `strictPluginOnlyCustomization` |86| [Customization lockdown](/zh-TW/settings#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 伺服器來自使用者和專案來源,使其只能來自外掛程式或受管設定 | `strictPluginOnlyCustomization` |

83| [Hook restrictions](/zh-TW/settings#hook-configuration) | 僅受管 hooks 載入;限制 HTTP hook URL | `allowManagedHooksOnly`、`allowedHttpHookUrls` |87| [Hook restrictions](/zh-TW/settings#hook-configuration) | 僅受管 hooks 載入;限制 HTTP hook URL | `allowManagedHooksOnly`、`allowedHttpHookUrls` |

84| [Disable agent view](/zh-TW/agent-view#how-background-sessions-are-hosted) | 關閉 `claude agents`、`--bg`、`/background` 和隨選監督員 | `disableAgentView` |88| [Disable agent view](/zh-TW/agent-view#how-background-sessions-are-hosted) | 關閉 `claude agents`、`--bg`、`/background` 和隨選監督員 | `disableAgentView` |


97根據您需要報告的內容選擇監控。101根據您需要報告的內容選擇監控。

98 102 

99| 功能 | 您獲得什麼 | 可用性 | 從哪裡開始 |103| 功能 | 您獲得什麼 | 可用性 | 從哪裡開始 |

100| :------------------ | :------------------------- | :---------- | :------------------------------------------ |104| :------------------ | :------------------------- | :---------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ |

101| Usage monitoring | 會話、工具和令牌的 OpenTelemetry 匯出 | 所有提供者 | [Monitoring usage](/zh-TW/monitoring-usage) |105| Usage monitoring | 會話、工具和令牌的 OpenTelemetry 匯出 | 所有提供者 | [Monitoring usage](/zh-TW/monitoring-usage) |

102| Analytics dashboard | 每個使用者的指標、貢獻追蹤、排行榜 | 僅 Anthropic | [Analytics](/zh-TW/analytics) |106| Analytics dashboard | 每個使用者的指標、貢獻追蹤、排行榜 | 僅 Anthropic | [Analytics](/zh-TW/analytics) |

103| Cost tracking | 支出限制、速率限制和使用情況歸因 | Anthropic | [Costs](/zh-TW/costs) |107| Cost tracking | 支出限制、速率限制和使用情況歸因 | Anthropic;在第三方雲端上,[Claude 應用程式閘道](/zh-TW/claude-apps-gateway)提供每個使用者的歸因和[支出限制](/zh-TW/claude-apps-gateway-spend-limits) | [Costs](/zh-TW/costs) |

104 108 

105雲端提供者透過 AWS Cost Explorer、GCP Billing 或 Azure Cost Management 公開支出。Claude for Teams 和 Enterprise 計畫在 [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) 包含使用情況儀表板。109雲端提供者透過 AWS Cost Explorer、GCP Billing 或 Azure Cost Management 公開支出。Claude for Teams 和 Enterprise 計畫在 [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) 包含使用情況儀表板。

106 110 


116| Zero Data Retention (ZDR) | 請求完成後不存儲任何內容。在 Claude for Enterprise 上可用 | [Zero data retention](/zh-TW/zero-data-retention) |120| Zero Data Retention (ZDR) | 請求完成後不存儲任何內容。在 Claude for Enterprise 上可用 | [Zero data retention](/zh-TW/zero-data-retention) |

117| Security architecture | 網路模型、加密、驗證、稽核追蹤 | [Security](/zh-TW/security) |121| Security architecture | 網路模型、加密、驗證、稽核追蹤 | [Security](/zh-TW/security) |

118 122 

119如果您需要請求級別的稽核日誌記錄或按資料敏感性路由流量,請在開發人員和您的提供者之間放置 [LLM gateway](/zh-TW/llm-gateway)。有關法規要求和認證,請參閱 [Legal and compliance](/zh-TW/legal-and-compliance)。123如果您需要請求級別的稽核日誌記錄或按資料敏感性路由流量,請在開發人員和您的提供者之間放置自託管的 [Claude apps gateway](/zh-TW/claude-apps-gateway),它會記錄具有 IdP 身分的每個請求稽核日誌,或使用另一個 [LLM gateway](/zh-TW/llm-gateway)。有關法規要求和認證,請參閱 [Legal and compliance](/zh-TW/legal-and-compliance)。

120 124 

121<h2 id="verify-and-onboard">125<h2 id="verify-and-onboard">

122 驗證和上線126 驗證和上線

advisor.md +2 −1

Details

88| ----------------------------------------------- | ------------------------ | ------------------------------- |88| ----------------------------------------------- | ------------------------ | ------------------------------- |

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

90| Sonnet 4.6 | Fable、Opus、Sonnet | |90| Sonnet 4.6 | Fable、Opus、Sonnet | |

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

91| Opus 4.6 或更新版本 | Fable、Opus(版本在主要模型版本或以上) | Opus 4.7 主要模型搭配 Opus 4.6 顧問會被拒絕 |92| Opus 4.6 或更新版本 | Fable、Opus(版本在主要模型版本或以上) | Opus 4.7 主要模型搭配 Opus 4.6 顧問會被拒絕 |

92| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Opus 或 Sonnet 顧問會被拒絕 |93| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Opus 或 Sonnet 顧問會被拒絕 |

93 94 


161 162 

162* **Claude Code v2.1.98 或更新版本**:執行 `claude update` 以升級。163* **Claude Code v2.1.98 或更新版本**:執行 `claude update` 以升級。

163* **僅限 Anthropic API**:顧問是伺服器執行的工具。它在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。透過配置有 `ANTHROPIC_BASE_URL` 的 [LLM 閘道](/zh-TW/llm-gateway),可用性取決於閘道是否將請求完整轉發到 Anthropic API。164* **僅限 Anthropic API**:顧問是伺服器執行的工具。它在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。透過配置有 `ANTHROPIC_BASE_URL` 的 [LLM 閘道](/zh-TW/llm-gateway),可用性取決於閘道是否將請求完整轉發到 Anthropic API。

164* **支援的主要模型**:Opus 4.6 或更新版本、Sonnet 4.6 或 Haiku 4.5。{/* min-version: 2.1.170 */}Fable 5 在 Claude Code v2.1.170 或更新版本上也符合條件。165* **支援的主要模型**:Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或 Haiku 4.5。{/* min-version: 2.1.170 */}Fable 5 在 Claude Code v2.1.170 或更新版本上也符合條件。

165 166 

166<h2 id="turn-the-advisor-off">167<h2 id="turn-the-advisor-off">

167 關閉顧問168 關閉顧問

Details

226 模型226 模型

227</h3>227</h3>

228 228 

229如果您不設定 `model`,SDK 會使用 Claude Code 的預設值,這取決於您的驗證方法和訂閱。明確設定它(例如,`model="claude-sonnet-4-6"`)以固定特定模型或使用較小的模型以獲得更快、更便宜的代理程式。請參閱 [模型](https://platform.claude.com/docs/en/about-claude/models) 以了解可用的 ID。229如果您不設定 `model`,SDK 會使用 Claude Code 的預設值,這取決於您的驗證方法和訂閱。明確設定它(例如,`model="claude-sonnet-5"`)以固定特定模型或使用較小的模型以獲得更快、更便宜的代理程式。請參閱 [模型](https://platform.claude.com/docs/en/about-claude/models) 以了解可用的 ID。

230 230 

231<h2 id="the-context-window">231<h2 id="the-context-window">

232 上下文視窗232 上下文視窗

agent-sdk/hooks.md +19 −11

Details

205 205 

206`hooks` 選項是一個字典(Python)或物件(TypeScript),其中:206`hooks` 選項是一個字典(Python)或物件(TypeScript),其中:

207 207 

208* **鍵**[hook 事件名稱](#available-hooks)例如 `'PreToolUse'`、`'PostToolUse'``'Stop'`208* **鍵**[hook 事件名稱](#available-hooks)例如 `'PreToolUse'`、`'PostToolUse'``'Stop'`

209* **值**[匹配器](#matchers)的陣列,每個都包含可選的篩選模式和您的[回調函數](#callback-functions)209* **值**[匹配器](#matchers)的陣列,每個都包含可選的篩選模式和您的[回調函數](#callback-functions)

210 210 

211<h3 id="matchers">211<h3 id="matchers">

212 匹配器212 匹配器


214 214 

215使用匹配器篩選您的回調何時觸發。`matcher` 欄位根據 hook 事件類型匹配不同的值。例如,工具型 hooks 匹配工具名稱,而 `Notification` hooks 匹配通知類型。請參閱 [Claude Code hooks 參考](/zh-TW/hooks#matcher-patterns)以取得每個事件類型的完整匹配器值列表。215使用匹配器篩選您的回調何時觸發。`matcher` 欄位根據 hook 事件類型匹配不同的值。例如,工具型 hooks 匹配工具名稱,而 `Notification` hooks 匹配通知類型。請參閱 [Claude Code hooks 參考](/zh-TW/hooks#matcher-patterns)以取得每個事件類型的完整匹配器值列表。

216 216 

217SDK 匹配器遵循與[設定檔案中的匹配器](/zh-TW/hooks#matcher-patterns)相同的規則只包含字母、數字、`_`、空格、`,` 和 `|` 的匹配器會被比較為精確字串,其中替代項由 `|` 或 `,` 分隔,並可選擇周圍空格,因此 `Write|Edit` 和 `Write, Edit` 各自精確匹配這兩個工具。匹配器 `*`、空字串或完全省略匹配器會匹配事件的每次出現;包含任何其他字元的匹配器會被評估為正規表達式因此 `^mcp__` 匹配每個 MCP 工具像 `mcp__memory` 這樣的匹配器只包含字母和底線,因此會被比較為精確字串且不匹配任何工具;使用 `mcp__memory__.*` 來匹配來自該伺服器的每個工具217SDK 匹配器遵循與[設定檔案中的匹配器](/zh-TW/hooks#matcher-patterns)相同的規則只包含字母、數字、`_`、`-`、空格、`,` 和 `|` 的匹配器會被比較為精確字串,其中替代項由 `|` 或 `,` 分隔,並可選擇周圍空格,因此 `Write|Edit` 和 `Write, Edit` 各自精確匹配這兩個工具, `code-reviewer` 只匹配該代理類型匹配器 `*`、空字串或完全省略匹配器會匹配事件的每次出現

218 

219包含任何其他字元的匹配器會被評估為未錨定的正規表達式,因此 `^mcp__` 匹配每個 MCP 工具,而 `Edit.*` 同時匹配 `Edit` 和 `NotebookEdit`。當您需要全字符串匹配時,請用 `^` 和 `$` 包裝正規表達式。

220 

221像 `mcp__memory` 或 `mcp__brave-search` 這樣的匹配器只包含精確匹配字元,因此會被比較為精確字串且不匹配任何工具;使用 `mcp__memory__.*` 來匹配來自該伺服器的每個工具。

222 

223精確匹配集中的連字號需要 Claude Code 執行時版本 v2.1.195 或更新版本。在較早版本中,像 `code-reviewer` 這樣的連字號名稱會被評估為未錨定的正規表達式,必須錨定為 `^code-reviewer$` 才能精確匹配。

218 224 

219| 選項 | 類型 | 預設值 | 描述 |225| 選項 | 類型 | 預設值 | 描述 |

220| --------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |226| --------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


222| `hooks` | `HookCallback[]` | - | 必需。當模式匹配時執行的回調函數陣列 |228| `hooks` | `HookCallback[]` | - | 必需。當模式匹配時執行的回調函數陣列 |

223| `timeout` | `number` | `60` | 超時時間(秒) |229| `timeout` | `number` | `60` | 超時時間(秒) |

224 230 

225盡可能使用 `matcher` 模式來針對特定工具。帶有 `'Bash'` 的匹配器只針對 Bash 命令執行,而省略模式會針對事件的每次出現執行您的回調。請注意,對於工具型 hooks,匹配器只按**工具名稱**篩選,不按檔案路徑或其他參數篩選。要按檔案路徑篩選,請在回調內檢查 `tool_input.file_path`。231盡可能使用 `matcher` 模式來針對特定工具。帶有 `'Bash'` 的匹配器只針對 Bash 命令執行,而省略模式會針對事件的每次出現執行您的回調。

232 

233對於工具型 hooks,匹配器只按工具名稱篩選,不按檔案路徑或其他參數篩選。要按檔案路徑篩選,請在回調內檢查 `tool_input.file_path`。

226 234 

227<Tip>235<Tip>

228 **發現工具名稱:** 請參閱[工具輸入類型](/zh-TW/agent-sdk/typescript#tool-input-types)以取得內建工具名稱的完整列表,或新增沒有匹配器的 hook 以記錄您的會話進行的所有工具呼叫。236 **發現工具名稱:** 請參閱[工具輸入類型](/zh-TW/agent-sdk/typescript#tool-input-types)以取得內建工具名稱的完整列表,或新增沒有匹配器的 hook 以記錄您的會話進行的所有工具呼叫。


240 248 

241每個 hook 回調接收三個參數:249每個 hook 回調接收三個參數:

242 250 

243* **輸入資料:** 一個包含事件詳細資訊的類型物件。每個 hook 類型都有自己的輸入形狀例如,`PreToolUseHookInput` 包括 `tool_name` 和 `tool_input`,而 `NotificationHookInput` 包括 `message`。請參閱 [TypeScript](/zh-TW/agent-sdk/typescript#hookinput) 和 [Python](/zh-TW/agent-sdk/python#hookinput) SDK 參考中的完整類型定義。251* **輸入資料:** 一個包含事件詳細資訊的類型物件。每個 hook 類型都有自己的輸入形狀例如,`PreToolUseHookInput` 包括 `tool_name` 和 `tool_input`,而 `NotificationHookInput` 包括 `message`。請參閱 [TypeScript](/zh-TW/agent-sdk/typescript#hookinput) 和 [Python](/zh-TW/agent-sdk/python#hookinput) SDK 參考中的完整類型定義。

244 * 所有 hook 輸入共享 `session_id`、`cwd` 和 `hook_event_name`。252 * 所有 hook 輸入共享 `session_id`、`cwd` 和 `hook_event_name`。

245 * 當 hook 在子代理內觸發時,`agent_id` 和 `agent_type` 會被填充。在 TypeScript 中,這些在基本 hook 輸入上,可供所有 hook 類型使用。在 Python 中,它們僅在 `PreToolUse`、`PostToolUse` 和 `PostToolUseFailure` 上。253 * 當 hook 在子代理內觸發時,`agent_id` 和 `agent_type` 會被填充。在 TypeScript 中,這些在基本 hook 輸入上,可供所有 hook 類型使用。在 Python 中,它們僅在 `PreToolUse`、`PostToolUse` 和 `PostToolUseFailure` 上。

246* **工具使用 ID**(`str | None` / `string | undefined`):關聯同一工具呼叫的 `PreToolUse` 和 `PostToolUse` 事件。254* **工具使用 ID**(`str | None` / `string | undefined`):關聯同一工具呼叫的 `PreToolUse` 和 `PostToolUse` 事件。


258返回 `{}` 以允許操作而不進行變更。SDK 回調 hooks 使用與 [Claude Code shell 命令 hooks](/zh-TW/hooks#json-output) 相同的 JSON 輸出格式,其記錄每個欄位和事件特定選項。對於 SDK 類型定義,請參閱 [TypeScript](/zh-TW/agent-sdk/typescript#synchookjsonoutput) 和 [Python](/zh-TW/agent-sdk/python#synchookjsonoutput) SDK 參考。266返回 `{}` 以允許操作而不進行變更。SDK 回調 hooks 使用與 [Claude Code shell 命令 hooks](/zh-TW/hooks#json-output) 相同的 JSON 輸出格式,其記錄每個欄位和事件特定選項。對於 SDK 類型定義,請參閱 [TypeScript](/zh-TW/agent-sdk/typescript#synchookjsonoutput) 和 [Python](/zh-TW/agent-sdk/python#synchookjsonoutput) SDK 參考。

259 267 

260<Note>268<Note>

261 當多個 hooks 或權限規則適用時,**deny** 優先於 **defer****defer** 優先於 **ask****ask** 優先於 **allow**。如果任何 hook 返回 `deny`,操作將被阻止,無論其他 hooks 如何。269 當多個 hooks 或權限規則適用時,`deny` 優先於 `defer``defer` 優先於 `ask``ask` 優先於 `allow`。如果任何 hook 返回 `deny`,操作將被阻止,無論其他 hooks 如何。

262</Note>270</Note>

263 271 

264<h4 id="asynchronous-output">272<h4 id="asynchronous-output">

265 非同步輸出273 非同步輸出

266</h4>274</h4>

267 275 

268預設情況下,代理在您的 hook 返回前等待。如果您的 hook 執行副作用(記錄、傳送 webhook)並且不需要影響代理的行為,您可以改為返回非同步輸出。這告訴代理立即繼續,無需等待 hook 完成:276預設情況下,代理在您的 hook 返回前等待。如果您的 hook 執行副作用(例如記錄或傳送 webhook)並且不需要影響代理的行為,您可以改為返回非同步輸出。這告訴代理立即繼續,無需等待 hook 完成:

269 277 

270<CodeGroup>278<CodeGroup>

271 ```python Python theme={null}279 ```python Python theme={null}


782* 驗證 hook 事件名稱正確且區分大小寫(`PreToolUse`,而不是 `preToolUse`)790* 驗證 hook 事件名稱正確且區分大小寫(`PreToolUse`,而不是 `preToolUse`)

783* 檢查您的匹配器模式是否與工具名稱完全匹配791* 檢查您的匹配器模式是否與工具名稱完全匹配

784* 確保 hook 在 `options.hooks` 中的正確事件類型下792* 確保 hook 在 `options.hooks` 中的正確事件類型下

785* 對於非工具 hooks,如 `Stop` 和 `SubagentStop`,匹配器匹配不同的欄位(請參閱[匹配器模式](/zh-TW/hooks#matcher-patterns))793* 對於支援匹配器的非工具 hooks,如 `Notification` 和 `SubagentStop`,匹配器匹配不同的欄位,而 `Stop` 完全忽略匹配器(請參閱[匹配器模式](/zh-TW/hooks#matcher-patterns))

786* 當代理達到 [`max_turns`](/zh-TW/agent-sdk/python#claudeagentoptions) 限制時,hooks 可能不會觸發,因為會話在 hooks 可以執行前結束794* 當代理達到 [`max_turns`](/zh-TW/agent-sdk/python#claudeagentoptions) 限制時,hooks 可能不會觸發,因為會話在 hooks 可以執行前結束

787 795 

788<h3 id="matcher-not-filtering-as-expected">796<h3 id="matcher-not-filtering-as-expected">

789 匹配器未按預期篩選797 匹配器未按預期篩選

790</h3>798</h3>

791 799 

792匹配器只匹配**工具名稱**,不匹配檔案路徑或其他參數。要按檔案路徑篩選,請在您的 hook 內檢查 `tool_input.file_path`:800匹配器只匹配工具名稱,不匹配檔案路徑或其他參數。要按檔案路徑篩選,請在您的 hook 內檢查 `tool_input.file_path`:

793 801 

794```typescript theme={null}802```typescript theme={null}

795const myHook: HookCallback = async (input, toolUseID, { signal }) => {803const myHook: HookCallback = async (input, toolUseID, { signal }) => {


815 823 

816* 檢查所有 `PreToolUse` hooks 是否返回 `permissionDecision: 'deny'`824* 檢查所有 `PreToolUse` hooks 是否返回 `permissionDecision: 'deny'`

817* 將記錄新增到您的 hooks 以查看它們返回的 `permissionDecisionReason`825* 將記錄新增到您的 hooks 以查看它們返回的 `permissionDecisionReason`

818* 驗證匹配器模式不會太寬泛空匹配器匹配所有工具826* 驗證匹配器模式不會太寬泛空匹配器匹配所有工具

819 827 

820<h3 id="modified-input-not-applied">828<h3 id="modified-input-not-applied">

821 修改的輸入未應用829 修改的輸入未應用


841 Python 中不可用會話 hooks849 Python 中不可用會話 hooks

842</h3>850</h3>

843 851 

844`SessionStart` 和 `SessionEnd` 可以在 TypeScript 中註冊為 SDK 回調 hooks,但在 Python SDK 中不可用`HookEvent` 省略它們)。在 Python 中,它們僅作為[shell 命令 hooks](/zh-TW/hooks#hook-events) 在設定檔案中定義例如 `.claude/settings.json`。要從您的 SDK 應用程式載入 shell 命令 hooks,請使用 [`setting_sources`](/zh-TW/agent-sdk/python#settingsource) 或 [`settingSources`](/zh-TW/agent-sdk/typescript#settingsource) 包括適當的設定來源:852`SessionStart` 和 `SessionEnd` 可以在 TypeScript 中註冊為 SDK 回調 hooks,但在 Python SDK 中不可用,因為其 `HookEvent` 類型省略它們。在 Python 中,它們僅作為[shell 命令 hooks](/zh-TW/hooks#hook-events)在設定檔案中定義例如 `.claude/settings.json`。要從您的 SDK 應用程式載入 shell 命令 hooks,請使用 [`setting_sources`](/zh-TW/agent-sdk/python#settingsource) 或 [`settingSources`](/zh-TW/agent-sdk/typescript#settingsource) 包括適當的設定來源:

845 853 

846<CodeGroup>854<CodeGroup>

847 ```python Python theme={null}855 ```python Python theme={null}

Details

209 209 

210* **僅文字記錄**:`SessionStore` 鏡像文字記錄,而不是 `CLAUDE.md` 記憶檔案或其他工作目錄工件。掛載共享磁碟區或分別同步這些檔案。210* **僅文字記錄**:`SessionStore` 鏡像文字記錄,而不是 `CLAUDE.md` 記憶檔案或其他工作目錄工件。掛載共享磁碟區或分別同步這些檔案。

211* **鏡像,而非替換**:子程序首先寫入本地磁碟,然後存儲接收每個批次的副本。本地寫入保持權威性。211* **鏡像,而非替換**:子程序首先寫入本地磁碟,然後存儲接收每個批次的副本。本地寫入保持權威性。

212* **`mirror_error` 訊息**:如果存儲拒絕或逾時,SDK 會發出 `{ type: "system", subtype: "mirror_error" }` 訊息並繼續查詢而不重試。如果存儲持久性很重要,請對這些進行警報。212* **`mirror_error` 訊息**:存儲拒絕的批次最多會重新發送三次每次重試前有短暫的退避;逾時的呼叫不會重試。如果批次仍然失敗,SDK 會捨棄它、發出 `{ type: "system", subtype: "mirror_error" }` 訊息,並繼續查詢。如果存儲持久性很重要,請對這些進行警報。

213 213 

214<h3 id="observability">214<h3 id="observability">

215 可觀測性215 可觀測性

Details

44 </Step>44 </Step>

45</Steps>45</Steps>

46 46 

47<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=cc94220087262cd48c9b64a14c4e1c2c" alt="五步驟權限評估流程圖,與上述步驟相符:工具請求通過 hooks、拒絕規則、權限模式、允許規則和 canUseTool。Hooks、拒絕規則和 canUseTool 可以路由到'已阻止';權限模式繞過、允許規則和 canUseTool 可以路由到'執行'。" width="1024" height="260" data-path="images/agent-sdk/permissions-flow.svg" />47<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="六步驟權限評估流程圖,與上述步驟相符:工具請求通過 hooks、拒絕規則、詢問規則、權限模式、允許規則和 canUseTool。Hooks、拒絕規則和 canUseTool 可以路由到'已阻止';權限模式繞過、允許規則和 canUseTool 可以路由到'執行';詢問規則路由到 canUseTool。" width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

48 48 

49本頁重點關注 **允許和拒絕規則** 以及 **權限模式**。對於其他步驟:49本頁重點關注 **允許和拒絕規則** 以及 **權限模式**。對於其他步驟:

50 50 

51* **Hooks:** 執行自訂程式碼以允許、拒絕或修改工具請求。請參閱 [使用 hooks 控制執行](/zh-TW/agent-sdk/hooks)。51* **Hooks:** 執行自訂程式碼以允許、拒絕或修改工具請求。請參閱 [使用 hooks 控制執行](/zh-TW/agent-sdk/hooks)。

52* **canUseTool 回呼:** 在執行時提示使用者核准。請參閱 [處理核准和使用者輸入](/zh-TW/agent-sdk/user-input)。52* **canUseTool 回呼:** 在執行時提示使用者核准,當沒有較早的步驟解決呼叫時。請參閱 [處理核准和使用者輸入](/zh-TW/agent-sdk/user-input)。

53 53 

54<h2 id="allow-and-deny-rules">54<h2 id="allow-and-deny-rules">

55 允許和拒絕規則55 允許和拒絕規則


66 66 

67允許規則只在字面 `mcp__<server>__` 前綴之後接受工具名稱萬用字元。伺服器段必須不含萬用字元,以便規則命名您設定的特定伺服器:`mcp__puppeteer__*` 符合來自 `puppeteer` 伺服器的每個工具,`mcp__github__get_*` 符合其 `get_` 工具。未錨定的條目(如 `allowed_tools=["*"]` 或 `allowed_tools=["mcp__*"]`)會被忽略並顯示啟動警告,不會自動批准任何內容。67允許規則只在字面 `mcp__<server>__` 前綴之後接受工具名稱萬用字元。伺服器段必須不含萬用字元,以便規則命名您設定的特定伺服器:`mcp__puppeteer__*` 符合來自 `puppeteer` 伺服器的每個工具,`mcp__github__get_*` 符合其 `get_` 工具。未錨定的條目(如 `allowed_tools=["*"]` 或 `allowed_tools=["mcp__*"]`)會被忽略並顯示啟動警告,不會自動批准任何內容。

68 68 

69<Warning>

70 **自動批准的工具永遠不會到達 `canUseTool`。** 在任何較早步驟中批准的工具呼叫,由 `acceptEdits` 或 `bypassPermissions` 或允許規則批准,會跳過您的 `canUseTool` 回呼,因此您在那裡放置的權限檢查會被該工具無聲地略過。涵蓋範圍取決於條目的形式:像 `Read` 或 `mcp__github__get_issue` 這樣的裸名稱會自動批准對該工具的每個呼叫,而像 `Bash(ls *)` 這樣的限定規則只會自動批准符合的呼叫,其他 `Bash` 呼叫仍會通過回呼。對於必須在每個工具呼叫上執行的檢查,請使用 [`PreToolUse` hook](/zh-TW/agent-sdk/hooks):hook 在每個其他步驟之前執行,hook 拒絕甚至在 `bypassPermissions` 模式中也適用。

71</Warning>

72 

69對於鎖定的代理程式,將 `allowedTools` 與 `permissionMode: "dontAsk"` 配對。列出的工具會被批准;其他任何工具都會被直接拒絕,而不是提示:73對於鎖定的代理程式,將 `allowedTools` 與 `permissionMode: "dontAsk"` 配對。列出的工具會被批准;其他任何工具都會被直接拒絕,而不是提示:

70 74 

71```typescript theme={null}75```typescript theme={null}

Details

750 750 

751 751 

752async def main():752async def main():

753 options = ClaudeAgentOptions(753 # 不要同時在 allowed_tools 中列出受限 tools:allow 規則在 can_use_tool 執行前批准呼叫

754 can_use_tool=custom_permission_handler, allowed_tools=["Read", "Write", "Edit"]754 options = ClaudeAgentOptions(can_use_tool=custom_permission_handler)

755 )

756 755 

757 async with ClaudeSDKClient(options=options) as client:756 async with ClaudeSDKClient(options=options) as client:

758 await client.query("Update the system config file")757 await client.query("Update the system config file")

759 758 

760 async for message in client.receive_response():759 async for message in client.receive_response():

761 # Will use sandbox path instead760 # 將使用 sandbox 路徑代替

762 print(message)761 print(message)

763 762 

764 763 


886 fork_session: bool = False885 fork_session: bool = False

887 agents: dict[str, AgentDefinition] | None = None886 agents: dict[str, AgentDefinition] | None = None

888 setting_sources: list[SettingSource] | None = None887 setting_sources: list[SettingSource] | None = None

888 skills: list[str] | Literal["all"] | None = None

889 sandbox: SandboxSettings | None = None889 sandbox: SandboxSettings | None = None

890 plugins: list[SdkPluginConfig] = field(default_factory=list)890 plugins: list[SdkPluginConfig] = field(default_factory=list)

891 max_thinking_tokens: int | None = None # Deprecated: use thinking instead891 max_thinking_tokens: int | None = None # Deprecated: use thinking instead


924| `max_buffer_size` | `int \| None` | `None` | 緩衝 CLI stdout 時的最大位元組數 |924| `max_buffer_size` | `int \| None` | `None` | 緩衝 CLI stdout 時的最大位元組數 |

925| `debug_stderr` | `Any` | `sys.stderr` | *已棄用* - 用於偵錯輸出的類似檔案的物件。改用 `stderr` 回呼 |925| `debug_stderr` | `Any` | `sys.stderr` | *已棄用* - 用於偵錯輸出的類似檔案的物件。改用 `stderr` 回呼 |

926| `stderr` | `Callable[[str], None] \| None` | `None` | 用於 CLI stderr 輸出的回呼函數 |926| `stderr` | `Callable[[str], None] \| None` | `None` | 用於 CLI stderr 輸出的回呼函數 |

927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | tool 權限回呼函數。見 [權限類型](#canusetool) 以了解詳情 |927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | tool 權限回呼函數,僅在[權限流程](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated)進入提示時呼叫不會為由 `allowed_tools`、允許規則或 `permission_mode` 自動批准的呼叫呼叫。見 [`CanUseTool`](#canusetool) 以了解詳情 |

928| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 用於攔截事件的 hooks 配置 |928| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 用於攔截事件的 hooks 配置 |

929| `user` | `str \| None` | `None` | 使用者識別碼 |929| `user` | `str \| None` | `None` | 使用者識別碼 |

930| `include_partial_messages` | `bool` | `False` | 包括部分消息串流事件。啟用時,[`StreamEvent`](#streamevent) 消息會被產生 |930| `include_partial_messages` | `bool` | `False` | 包括部分消息串流事件。啟用時,[`StreamEvent`](#streamevent) 消息會被產生 |


960* `API_TIMEOUT_MS`:Anthropic 客戶端上的每個請求逾時,以毫秒為單位。預設 `600000`。適用於主迴圈和所有子代理。960* `API_TIMEOUT_MS`:Anthropic 客戶端上的每個請求逾時,以毫秒為單位。預設 `600000`。適用於主迴圈和所有子代理。

961* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重試次數。預設 `10`,上限為 `15`。每次重試都有自己的 `API_TIMEOUT_MS` 視窗,因此最壞情況下的牆時間大約是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。對於需要等待更長中斷的無人值守執行,設定 `CLAUDE_CODE_RETRY_WATCHDOG=1` 以無限期重試容量錯誤。961* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重試次數。預設 `10`,上限為 `15`。每次重試都有自己的 `API_TIMEOUT_MS` 視窗,因此最壞情況下的牆時間大約是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。對於需要等待更長中斷的無人值守執行,設定 `CLAUDE_CODE_RETRY_WATCHDOG=1` 以無限期重試容量錯誤。

962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 啟動的子代理的停滯監視程式。預設 `600000`。在每個串流事件上重置;停滯時中止子代理,將任務標記為失敗,並將錯誤呈現給父代理,包含任何部分結果。不適用於同步子代理。962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 啟動的子代理的停滯監視程式。預設 `600000`。在每個串流事件上重置;停滯時中止子代理,將任務標記為失敗,並將錯誤呈現給父代理,包含任何部分結果。不適用於同步子代理。

963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` 搭配 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:當標頭已到達但回應本體停止串流時中止請求。 `CLAUDE_ENABLE_STREAM_WATCHDOG` 未設定時,預設在直接 Anthropic API 上由伺服器控制,在其他提供者上關閉。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 預設為 `300000` 並限制在該最小值。中止的請求會經過正常重試路徑。963* `CLAUDE_ENABLE_STREAM_WATCHDOG` 搭配 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:當標頭已到達但回應本體停止串流時中止請求。監視程式預設在所有提供者上啟用;設定 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 以停用它。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 預設為 `300000` 並限制在該最小值。中止的請求會經過正常重試路徑。

964 964 

965<h3 id="outputformat">965<h3 id="outputformat">

966 `OutputFormat`966 `OutputFormat`


1206 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses

1207 "medium", # Moderate thinking1207 "medium", # Moderate thinking

1208 "high", # Deep reasoning1208 "high", # Deep reasoning

1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)1209 "xhigh", # Extended reasoning; falls back to "high" on models that don't support it

1210 "max", # Maximum effort1210 "max", # Maximum effort

1211]1211]

1212```1212```


1231 1231 

1232返回 `PermissionResult`(`PermissionResultAllow` 或 `PermissionResultDeny`)。1232返回 `PermissionResult`(`PermissionResultAllow` 或 `PermissionResultDeny`)。

1233 1233 

1234回呼是互動式權限提示的 SDK 替代品:它僅在[權限評估流程](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated)解決為提示時呼叫。由 `allowed_tools` 項目、設定允許規則或權限模式(例如 `acceptEdits` 或 `bypassPermissions`)已批准的 tool 呼叫永遠不會呼叫它。要限制每個 tool 呼叫,改用 [`PreToolUse` hook](/zh-TW/agent-sdk/hooks)。

1235 

1234<h3 id="toolpermissioncontext">1236<h3 id="toolpermissioncontext">

1235 `ToolPermissionContext`1237 `ToolPermissionContext`

1236</h3>1238</h3>


1432與 `ClaudeAgentOptions` 中的 `betas` 欄位一起使用以啟用測試版功能。1434與 `ClaudeAgentOptions` 中的 `betas` 欄位一起使用以啟用測試版功能。

1433 1435 

1434<Warning>1436<Warning>

1435 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此標頭沒有效果,超過標準 200k 令牌上下文視窗的請求會返回錯誤。要使用 1M 令牌上下文視窗,請遷移到 [Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),它們以標準定價包括 1M 上下文,無需測試版標頭。1437 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此標頭沒有效果,超過標準 200k 令牌上下文視窗的請求會返回錯誤。要使用 1M 令牌上下文視窗,請遷移到 [Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),它們以標準定價包括 1M 上下文,無需測試版標頭。

1436</Warning>1438</Warning>

1437 1439 

1438<h3 id="mcpsdkserverconfig">1440<h3 id="mcpsdkserverconfig">


2681 2683 

2682**Tool 名稱:** `Monitor`2684**Tool 名稱:** `Monitor`

2683 2685 

2684執行背景腳本並將每個 stdout 行作為事件傳遞給 Claude,以便它可以做出反應而無需輪詢。Monitor 遵循與 Bash 相同的權限規則 [Monitor tool 參考](/zh-TW/tools-reference#monitor-tool) 以了解行為和提供者可用性2686執行背景來源並將每個事件傳遞給 Claude,以便它可以做出反應而無需輪詢:`command` 執行指令碼並每個 stdout 行發出一個事件,`ws` 開啟 WebSocket 並每個文字框架發出一個事件請提供 `command` `ws` 中的恰好一個

2687 

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

2685 2689 

2686**輸入:**2690**輸入:**

2687 2691 

2688```python theme={null}2692```python theme={null}

2689{2693{

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

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

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

2692 "timeout_ms": int | None, # 在此期限後終止(預設 300000,最多 3600000)2697 "timeout_ms": int | None, # 在此期限後終止(預設 300000,最多 3600000)

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

Details

41 為您的語言安裝 Agent SDK 套件:41 為您的語言安裝 Agent SDK 套件:

42 42 

43 <Tabs>43 <Tabs>

44 <Tab title="TypeScript">44 <Tab title="TypeScript(新項目)">

45 ```bash theme={null}45 ```bash theme={null}

46 npm init -y

47 npm pkg set type=module

46 npm install @anthropic-ai/claude-agent-sdk48 npm install @anthropic-ai/claude-agent-sdk

49 npm install --save-dev tsx

47 ```50 ```

51 

52 在 `package.json` 中設置 `"type": "module"` 讓您的代理腳本使用頂級 `await`,而 [tsx](https://tsx.is) 直接運行 TypeScript 文件。

48 </Tab>53 </Tab>

49 54 

50 <Tab title="Python (uv)">55 <Tab title="TypeScript(現有項目)">

56 ```bash theme={null}

57 npm install @anthropic-ai/claude-agent-sdk

58 npm install --save-dev tsx

59 ```

60 

61 [tsx](https://tsx.is) 直接運行 TypeScript 文件。如果您的項目使用 CommonJS,請將您的代理腳本命名為 `agent.mts` 而不是 `agent.ts`。`.mts` 擴展名使 tsx 將文件視為 ES 模塊,因此頂級 `await` 無需將整個項目轉換為 ES 模塊即可工作。在本快速開始後面的創建和運行步驟中,使用 `agent.mts` 代替 `agent.ts`。

62 </Tab>

63 

64 <Tab title="Python(uv)">

51 [uv](https://docs.astral.sh/uv/) 是一個快速的 Python 套件管理器,可自動處理虛擬環境:65 [uv](https://docs.astral.sh/uv/) 是一個快速的 Python 套件管理器,可自動處理虛擬環境:

52 66 

53 ```bash theme={null}67 ```bash theme={null}


56 ```70 ```

57 </Tab>71 </Tab>

58 72 

59 <Tab title="Python (pip)">73 <Tab title="Pythonpip">

60 創建並啟用虛擬環境,然後安裝該套件。74 創建並啟用虛擬環境,然後安裝該套件。

61 75 

62 在 macOS 或 Linux 上:76 在 macOS 或 Linux 上:


85 </Step>99 </Step>

86 100 

87 <Step title="設置您的 API 金鑰">101 <Step title="設置您的 API 金鑰">

88 從 [Claude 控制台](https://platform.claude.com/) 取得 API 金鑰,然後在您的項目目錄中建立一個 `.env` 檔案102 從 [Claude 控制台](https://platform.claude.com/) 取得 API 金鑰,然後在您將運行代理的 shell 中將其設置為環境變數

89 103 

104 <Tabs>

105 <Tab title="macOS / Linux">

90 ```bash theme={null}106 ```bash theme={null}

91 ANTHROPIC_API_KEY=your-api-key107 export ANTHROPIC_API_KEY=your-api-key

92 ```108 ```

109 </Tab>

110 

111 <Tab title="Windows(PowerShell)">

112 ```powershell theme={null}

113 $env:ANTHROPIC_API_KEY = "your-api-key"

114 ```

115 </Tab>

116 </Tabs>

117 

118 SDK 從運行您的代理的進程環境中讀取金鑰;它不會自動加載 `.env` 文件。如果您將金鑰保存在 `.env` 文件中,請自己加載它,例如使用 `dotenv` 套件,然後再調用 SDK。

93 119 

94 SDK 也支援透過第三方 API 提供商進行身份驗證:120 SDK 也支援透過第三方 API 提供商進行身份驗證:

95 121 


133 構建查找並修復錯誤的代理159 構建查找並修復錯誤的代理

134</h2>160</h2>

135 161 

136如果您使用 Python SDK,請創建 `agent.py`,或者如果使用 TypeScript,請創建 `agent.ts`:162如果您使用 Python SDK,請創建 `agent.py`,或者如果使用 TypeScript,請創建 `agent.ts`。如果您現有的項目使用 CommonJS,請改用 `agent.mts`

137 163 

138<CodeGroup>164<CodeGroup>

139 ```python Python theme={null}165 ```python Python theme={null}


218 ```bash theme={null}244 ```bash theme={null}

219 npx tsx agent.ts245 npx tsx agent.ts

220 ```246 ```

247 

248 如果您將腳本命名為 `agent.mts`,請改為運行 `npx tsx agent.mts`。

221 </Tab>249 </Tab>

222 250 

223 <Tab title="Python (uv)">251 <Tab title="Pythonuv">

224 ```bash theme={null}252 ```bash theme={null}

225 uv run agent.py253 uv run agent.py

226 ```254 ```

227 </Tab>255 </Tab>

228 256 

229 <Tab title="Python (pip)">257 <Tab title="Pythonpip">

230 使用您仍然激活的虛擬環境:258 使用您仍然激活的虛擬環境:

231 259 

232 ```bash theme={null}260 ```bash theme={null}


244這就是 Agent SDK 的不同之處:Claude 直接執行工具,而不是要求您實現它們。272這就是 Agent SDK 的不同之處:Claude 直接執行工具,而不是要求您實現它們。

245 273 

246<Note>274<Note>

247 如果您看到'API key not found',請確保您已在 `.env` 文件或 shell 環境中設置 `ANTHROPIC_API_KEY` 環境變量有關更多幫助,請參閱[完整故障排除指南](/zh-TW/troubleshooting)。275 如果您看到'API key not found',請確保您已在運行代理的 shell 中設置 `ANTHROPIC_API_KEY` 環境變數。SDK 不會自動加載 `.env` 文件如需更多幫助,請參閱[完整故障排除指南](/zh-TW/troubleshooting)。

248</Note>276</Note>

249 277 

250<h3 id="try-other-prompts">278<h3 id="try-other-prompts">


342| 模式 | 行為 | 用例 |370| 模式 | 行為 | 用例 |

343| -------------------- | ------------------------------------------------------------------------------------------ | -------------- |371| -------------------- | ------------------------------------------------------------------------------------------ | -------------- |

344| `acceptEdits` | 自動批准文件編輯和常見文件系統命令,詢問其他操作 | 受信任的開發工作流 |372| `acceptEdits` | 自動批准文件編輯和常見文件系統命令,詢問其他操作 | 受信任的開發工作流 |

373| `plan` | 運行只讀工具;文件編輯永遠不會自動批准,並到達您的 `canUseTool` 回調 | 在批准執行前確定任務範圍 |

345| `dontAsk` | 拒絕不在 `allowedTools` 中的任何內容 | 鎖定的無頭代理 |374| `dontAsk` | 拒絕不在 `allowedTools` 中的任何內容 | 鎖定的無頭代理 |

346| `auto`(僅 TypeScript) | 模型分類器批准或拒絕每個工具調用 | 具有安全防護的自主代理 |375| `auto`(僅 TypeScript) | 模型分類器批准或拒絕每個工具調用 | 具有安全防護的自主代理 |

347| `bypassPermissions` | 運行每個工具而不提示,除非明確的 [`ask` 規則](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated) 符合 | 沙箱 CI、完全受信任的環境 |376| `bypassPermissions` | 運行每個工具而不提示,除非明確的 [`ask` 規則](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated) 符合 | 沙箱 CI、完全受信任的環境 |


349 378 

350上面的示例使用 `acceptEdits` 模式,它自動批准文件操作,以便代理可以無需交互提示地運行。如果您想提示用戶批准,請使用 `default` 模式並提供一個 [`canUseTool` 回調](/zh-TW/agent-sdk/user-input)來收集用戶輸入。如需更多控制,請參閱[權限](/zh-TW/agent-sdk/permissions)。379上面的示例使用 `acceptEdits` 模式,它自動批准文件操作,以便代理可以無需交互提示地運行。如果您想提示用戶批准,請使用 `default` 模式並提供一個 [`canUseTool` 回調](/zh-TW/agent-sdk/user-input)來收集用戶輸入。如需更多控制,請參閱[權限](/zh-TW/agent-sdk/permissions)。

351 380 

352<h2 id="troubleshooting">

353 故障排除

354</h2>

355 

356<h3 id="api-error-thinking-type-enabled-is-not-supported-for-this-model">

357 API 錯誤 `thinking.type.enabled` 不支持此模型

358</h3>

359 

360Claude Opus 4.7 將 `thinking.type.enabled` 替換為 `thinking.type.adaptive`。當您選擇 `claude-opus-4-7` 時,較舊的 Agent SDK 版本會失敗並出現以下 API 錯誤:

361 

362```text theme={null}

363API Error: 400 {"type":"invalid_request_error","message":"\"thinking.type.enabled\" is not supported for this model. Use \"thinking.type.adaptive\" and \"output_config.effort\" to control thinking behavior."}

364```

365 

366升級到 Agent SDK v0.2.111 或更高版本以使用 Opus 4.7。

367 

368<h2 id="next-steps">381<h2 id="next-steps">

369 後續步驟382 後續步驟

370</h2>383</h2>

Details

235 鏡像寫入是盡力而為235 鏡像寫入是盡力而為

236</h3>236</h3>

237 237 

238如果 `append()` 拒絕或超時,錯誤被記錄,一個 `{ type: "system", subtype: "mirror_error" }` 消息被發出到迭代器中,查詢繼續。本地記錄已經在磁盤上持久化,因此存儲中斷不會中斷代理或在本地丟失數據。失敗的批次不會重試,因此如果您需要檢測存儲數據丟失,請監視 `mirror_error`。238如果 `append()` 拒絕SDK 會以短暫的退避重試該批次最多兩次,總共最多三次嘗試。超時的呼叫不會重試,因為原始呼叫可能仍然會到達。如果批次仍然失敗,錯誤被記錄,一個 `{ type: "system", subtype: "mirror_error" }` 消息被發出到迭代器中,批次被丟棄,查詢繼續。本地記錄已經在磁盤上持久化,因此存儲中斷不會中斷代理或在本地丟失數據。監視 `mirror_error` 如果您需要檢測存儲數據丟失因為重試的批次可以重新傳遞已經到達的條目,請在您的 `append()` 實現中按 `entry.uuid` 進行去重。

239 239 

240<h3 id="getsessionmessages-returns-the-post-compaction-chain">240<h3 id="getsessionmessages-returns-the-post-compaction-chain">

241 `getSessionMessages` 返回後壓縮鏈241 `getSessionMessages` 返回後壓縮鏈

Details

24 })) {24 })) {

25 if (message.type === "system" && message.subtype === "init") {25 if (message.type === "system" && message.subtype === "init") {

26 console.log("Available slash commands:", message.slash_commands);26 console.log("Available slash commands:", message.slash_commands);

27 // Example output: ["clear", "compact", "context", "usage"]27 // 包括內建命令加上捆綁的技能,例如:

28 // ["clear", "compact", "context", "usage", "code-review", "verify", ...]

28 }29 }

29 }30 }

30 ```31 ```


38 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):39 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):

39 if isinstance(message, SystemMessage) and message.subtype == "init":40 if isinstance(message, SystemMessage) and message.subtype == "init":

40 print("Available slash commands:", message.data["slash_commands"])41 print("Available slash commands:", message.data["slash_commands"])

41 # Example output: ["clear", "compact", "context", "usage"]42 # 包括內建命令加上捆綁的技能,例如:

43 # ["clear", "compact", "context", "usage", "code-review", "verify", ...]

42 44 

43 45 

44 asyncio.run(main())46 asyncio.run(main())


49 發送 Slash Commands51 發送 Slash Commands

50</h2>52</h2>

51 53 

52透過在您的提示字串中包含 slash commands 來發送它們,就像常規文字一樣:54透過在您的提示字串中包含 slash commands 來發送它們,就像常規文字一樣。作用於對話歷史記錄的命令,例如 `/compact`,需要先前的訊息才能運作,因此下面的範例首先提出一個問題,然後將命令作為後續訊息發送到同一對話

53 55 

54<CodeGroup>56<CodeGroup>

55 ```typescript TypeScript theme={null}57 ```typescript TypeScript theme={null}

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

57 59 

58 // Send a slash command60 // Build up conversation history first

61 try {

59 for await (const message of query({62 for await (const message of query({

60 prompt: "/compact",63 prompt: "What does the README in this directory cover?",

61 options: { maxTurns: 1 }64 options: { maxTurns: 2 }

62 })) {65 })) {

63 if (message.type === "result" && message.subtype === "success") {66 if (message.type === "result" && message.subtype === "success") {

64 console.log("Command executed:", message.result);67 console.log(message.result);

68 }

69 }

70 } catch (error) {

71 // A single-shot query() throws after yielding an error result,

72 // so the follow-up query below still runs.

73 console.error(`Session ended with an error: ${error}`);

74 }

75 

76 // Send a slash command as a follow-up to the same conversation

77 for await (const message of query({

78 prompt: "/compact",

79 options: { continue: true, maxTurns: 1 }

80 })) {

81 if (message.type === "result") {

82 console.log("Command executed, result subtype:", message.subtype);

83 // Example output: Command executed, result subtype: success

65 }84 }

66 }85 }

67 ```86 ```


72 91 

73 92 

74 async def main():93 async def main():

75 # Send a slash command94 # Build up conversation history first

76 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):95 try:

96 async for message in query(

97 prompt="What does the README in this directory cover?",

98 options=ClaudeAgentOptions(max_turns=2),

99 ):

100 if isinstance(message, ResultMessage) and message.subtype == "success":

101 print(message.result)

102 except Exception as error:

103 # A single-shot query() raises after yielding an error result,

104 # so the follow-up query below still runs.

105 print(f"Session ended with an error: {error}")

106 

107 # Send a slash command as a follow-up to the same conversation

108 async for message in query(

109 prompt="/compact",

110 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

111 ):

77 if isinstance(message, ResultMessage):112 if isinstance(message, ResultMessage):

78 print("Command executed:", message.result)113 print("Command executed, result subtype:", message.subtype)

114 # Example output: Command executed, result subtype: success

79 115 

80 116 

81 asyncio.run(main())117 asyncio.run(main())

82 ```118 ```

83</CodeGroup>119</CodeGroup>

84 120 

121<Note>

122 查詢可能以錯誤結果結束,例如當 `maxTurns` / `max_turns` 限制在工作完成前達到時。最終結果訊息則具有 `is_error: true` 和錯誤子類型(例如 `error_max_turns`)而不是 `success`。

123 

124 在產生該最終結果訊息後,SDK 會拋出錯誤,因為 CLI 程序以非零代碼退出。

125 

126 如果您的命令可能達到限制,請在 TypeScript 中使用 `try`/`catch` 或在 Python 中使用 `try`/`except` 包裝迴圈,如 [Single Message Input](/zh-TW/agent-sdk/streaming-vs-single-mode#single-message-input) 中所示,或設定 `maxTurns` 足夠高以完成工作。在 Python 中,捕捉 `Exception`:SDK 將錯誤結果表示為純 `Exception`。

127</Note>

128 

85<h2 id="common-slash-commands">129<h2 id="common-slash-commands">

86 常見的 Slash Commands130 常見的 Slash Commands

87</h2>131</h2>


90 `/compact` - 壓縮對話歷史134 `/compact` - 壓縮對話歷史

91</h3>135</h3>

92 136 

93`/compact` 命令透過總結較舊的訊息同時保留重要上下文來減少您的對話歷史的大小:137`/compact` 命令透過總結較舊的訊息同時保留重要上下文來減少您的對話歷史的大小。壓縮需要至少有兩次先前交換的現有對話才能進行總結。此範例首先進行對話,然後壓縮它並讀取報告結果的 `compact_boundary` 系統訊息

94 138 

95<CodeGroup>139<CodeGroup>

96 ```typescript TypeScript theme={null}140 ```typescript TypeScript theme={null}

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

98 142 

143 // Compaction needs existing history, so have a conversation first

144 try {

145 for await (const message of query({

146 prompt: "Explain what this project does",

147 options: { maxTurns: 2 }

148 })) {

149 if (message.type === "result" && message.subtype === "success") {

150 console.log(message.result);

151 }

152 }

153 } catch (error) {

154 // A single-shot query() throws after yielding an error result,

155 // so the follow-up query below still runs.

156 console.error(`Session ended with an error: ${error}`);

157 }

158 

159 // Compact the same conversation

99 for await (const message of query({160 for await (const message of query({

100 prompt: "/compact",161 prompt: "/compact",

101 options: { maxTurns: 1 }162 options: { continue: true, maxTurns: 1 }

102 })) {163 })) {

103 if (message.type === "system" && message.subtype === "compact_boundary") {164 if (message.type === "system" && message.subtype === "compact_boundary") {

104 console.log("Compaction completed");165 console.log("Compaction completed");

105 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);166 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);

106 console.log("Trigger:", message.compact_metadata.trigger);167 console.log("Trigger:", message.compact_metadata.trigger);

168 // Example output:

169 // Compaction completed

170 // Pre-compaction tokens: 1842

171 // Trigger: manual

107 }172 }

108 }173 }

109 ```174 ```

110 175 

111 ```python Python theme={null}176 ```python Python theme={null}

112 import asyncio177 import asyncio

113 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage178 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage, SystemMessage

114 179 

115 180 

116 async def main():181 async def main():

117 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):182 # Compaction needs existing history, so have a conversation first

183 try:

184 async for message in query(

185 prompt="Explain what this project does",

186 options=ClaudeAgentOptions(max_turns=2),

187 ):

188 if isinstance(message, ResultMessage) and message.subtype == "success":

189 print(message.result)

190 except Exception as error:

191 # A single-shot query() raises after yielding an error result,

192 # so the follow-up query below still runs.

193 print(f"Session ended with an error: {error}")

194 

195 # Compact the same conversation

196 async for message in query(

197 prompt="/compact",

198 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

199 ):

118 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":200 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":

119 print("Compaction completed")201 print("Compaction completed")

120 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])202 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])

121 print("Trigger:", message.data["compact_metadata"]["trigger"])203 print("Trigger:", message.data["compact_metadata"]["trigger"])

204 # Example output:

205 # Compaction completed

206 # Pre-compaction tokens: 1842

207 # Trigger: manual

122 208 

123 209 

124 asyncio.run(main())210 asyncio.run(main())

125 ```211 ```

126</CodeGroup>212</CodeGroup>

127 213 

214<Note>

215 `compact_boundary` 訊息只在壓縮執行時才會到達。如果沒有任何內容可以總結,`/compact` 會報告原因而不是引發錯誤:執行仍然以 `success` 結果結束,不會發出 `compact_boundary` 訊息,結果文字會帶有訊息,例如在單一簡短交換後的 `Not enough messages to compact.`。全新的一次性 `query()` 呼叫開始時具有空上下文,因此請在具有先前輪次的會話中使用此模式,例如在[串流輸入模式](/zh-TW/agent-sdk/streaming-vs-single-mode)中或恢復會話時。

216</Note>

217 

128<h3 id="/clear-reset-conversation-context">218<h3 id="/clear-reset-conversation-context">

129 `/clear` - 重設對話上下文219 `/clear` - 重設對話上下文

130</h3>220</h3>


170 基本範例260 基本範例

171</h4>261</h4>

172 262 

173建立 `.claude/commands/refactor.md`:263在您的專案中建立 `.claude/commands` 目錄(如果不存在),然後建立 `.claude/commands/refactor.md`:

174 264 

175```markdown theme={null}265```markdown theme={null}

176Refactor the selected code to improve readability and maintainability.266Refactor the selected code to improve readability and maintainability.


189---279---

190allowed-tools: Read, Grep, Glob280allowed-tools: Read, Grep, Glob

191description: Run security vulnerability scan281description: Run security vulnerability scan

192model: claude-opus-4-7282model: claude-opus-4-8

193---283---

194 284 

195Analyze the codebase for security vulnerabilities including:285Analyze the codebase for security vulnerabilities including:


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

211 301 

212 // Use a custom command302 // Use a custom command

303 try {

213 for await (const message of query({304 for await (const message of query({

214 prompt: "/refactor src/auth/login.ts",305 prompt: "/refactor src/auth/login.ts",

215 options: { maxTurns: 3 }306 options: { maxTurns: 3 }


218 console.log("Refactoring suggestions:", message.message);309 console.log("Refactoring suggestions:", message.message);

219 }310 }

220 }311 }

312 } catch (error) {

313 // A single-shot query() throws after yielding an error result,

314 // so the second query below still runs.

315 console.error(`Session ended with an error: ${error}`);

316 }

221 317 

222 // Custom commands appear in the slash_commands list318 // Custom commands appear in the slash_commands list

223 for await (const message of query({319 for await (const message of query({


225 options: { maxTurns: 1 }321 options: { maxTurns: 1 }

226 })) {322 })) {

227 if (message.type === "system" && message.subtype === "init") {323 if (message.type === "system" && message.subtype === "init") {

228 // Will include both built-in and custom commands

229 console.log("Available commands:", message.slash_commands);324 console.log("Available commands:", message.slash_commands);

230 // Example: ["clear", "compact", "context", "usage", "refactor", "security-check"]325 // Includes built-in commands plus bundled skills and your custom commands, for example:

326 // ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

231 }327 }

232 }328 }

233 ```329 ```


239 335 

240 async def main():336 async def main():

241 # Use a custom command337 # Use a custom command

338 try:

242 async for message in query(339 async for message in query(

243 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)340 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)

244 ):341 ):


246 for block in message.content:343 for block in message.content:

247 if hasattr(block, "text"):344 if hasattr(block, "text"):

248 print("Refactoring suggestions:", block.text)345 print("Refactoring suggestions:", block.text)

346 except Exception as error:

347 # A single-shot query() raises after yielding an error result,

348 # so the second query below still runs.

349 print(f"Session ended with an error: {error}")

249 350 

250 # Custom commands appear in the slash_commands list351 # Custom commands appear in the slash_commands list

251 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):352 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):

252 if isinstance(message, SystemMessage) and message.subtype == "init":353 if isinstance(message, SystemMessage) and message.subtype == "init":

253 # Will include both built-in and custom commands

254 print("Available commands:", message.data["slash_commands"])354 print("Available commands:", message.data["slash_commands"])

255 # Example: ["clear", "compact", "context", "usage", "refactor", "security-check"]355 # Includes built-in commands plus bundled skills and your custom commands, for example:

356 # ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

256 357 

257 358 

258 asyncio.run(main())359 asyncio.run(main())


384 實用範例485 實用範例

385</h3>486</h3>

386 487 

387<h4 id="code-review-command">488<h4 id="pull-request-review-command">

388 程式碼審查命令489 Pull Request 審查命令

389</h4>490</h4>

390 491 

391建立 `.claude/commands/code-review.md`:492建立 `.claude/commands/review-pr.md`:

392 493 

393```markdown theme={null}494```markdown theme={null}

394---495---


414Provide specific, actionable feedback organized by priority.515Provide specific, actionable feedback organized by priority.

415```516```

416 517 

518<Note>

519 Claude Code 包含捆綁的 `code-review` 和 `verify` skills。如果您以其中一個命名自訂命令,例如 `.claude/commands/code-review.md`,您的命令會遮蔽捆綁的 skill,而 `slash_commands` 列表會列出該名稱一次。

520</Note>

521 

417<h4 id="test-runner-command">522<h4 id="test-runner-command">

418 測試執行器命令523 測試執行器命令

419</h4>524</h4>


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

443 548 

444 // Run code review549 // Run code review

550 try {

445 for await (const message of query({551 for await (const message of query({

446 prompt: "/code-review",552 prompt: "/review-pr",

447 options: { maxTurns: 3 }553 options: { maxTurns: 3 }

448 })) {554 })) {

449 // Process review feedback555 // Process review feedback

450 }556 }

557 } catch (error) {

558 // A single-shot query() throws after yielding an error result,

559 // so the second query below still runs.

560 console.error(`Session ended with an error: ${error}`);

561 }

451 562 

452 // Run specific tests563 // Run specific tests

453 for await (const message of query({564 for await (const message of query({


465 576 

466 async def main():577 async def main():

467 # Run code review578 # Run code review

468 async for message in query(prompt="/code-review", options=ClaudeAgentOptions(max_turns=3)):579 try:

580 async for message in query(prompt="/review-pr", options=ClaudeAgentOptions(max_turns=3)):

469 # Process review feedback581 # Process review feedback

470 pass582 pass

583 except Exception as error:

584 # A single-shot query() raises after yielding an error result,

585 # so the second query below still runs.

586 print(f"Session ended with an error: {error}")

471 587 

472 # Run specific tests588 # Run specific tests

473 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):589 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):

Details

71 71 

72使用 `agents` 參數直接在代碼中定義子代理。此示例創建兩個子代理:一個具有唯讀訪問權限的代碼審查員和一個可以執行命令的測試運行器。Claude 通過 Agent 工具調用子代理,因此請在 `allowedTools` 中包含 `Agent` 以自動批准子代理調用,無需權限提示。72使用 `agents` 參數直接在代碼中定義子代理。此示例創建兩個子代理:一個具有唯讀訪問權限的代碼審查員和一個可以執行命令的測試運行器。Claude 通過 Agent 工具調用子代理,因此請在 `allowedTools` 中包含 `Agent` 以自動批准子代理調用,無需權限提示。

73 73 

74本頁面上的大多數示例僅列印最終結果。若要確認 Claude 委派給子代理而不是直接回答,請參閱[檢測子代理調用](#detecting-subagent-invocation)。

75 

74<CodeGroup>76<CodeGroup>

75 ```python Python theme={null}77 ```python Python theme={null}

76 import asyncio78 import asyncio


193| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | 否 | 此代理的推理努力級別 |195| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | 否 | 此代理的推理努力級別 |

194| `permissionMode` | `PermissionMode` | 否 | 此代理內工具執行的權限模式 |196| `permissionMode` | `PermissionMode` | 否 | 此代理內工具執行的權限模式 |

195 197 

196在 Python SDK 中,這些欄位名稱使用 camelCase 以匹配線路格式。有關詳細信息,請參閱 [`AgentDefinition` 參考](/zh-TW/agent-sdk/python#agentdefinition)。198在 Python SDK 中,多字欄位名稱(例如 `disallowedTools` 和 `mcpServers`)保持其 camelCase 拼寫以匹配線路格式,而不是遵循 Python 的 snake\_case 慣例。有關詳細信息,請參閱 [`AgentDefinition` 參考](/zh-TW/agent-sdk/python#agentdefinition)。

197 199 

198<Note>200<Note>

199 {/* min-version: 2.1.172 */}自 Claude Code v2.1.172 起,子代理可以生成自己的子代理。位於主代理下方五個級別的子代理無法生成進一步的子代理,無論其是否在前景或背景中運行。若要防止子代理生成其他子代理,請從其 `tools` 陣列中省略 `Agent` 或將其添加到 `disallowedTools`。有關完整的深度規則,請參閱[嵌套子代理](/zh-TW/sub-agents#spawn-nested-subagents)。201 {/* min-version: 2.1.172 */}自 Claude Code v2.1.172 起,子代理可以生成自己的子代理。位於主代理下方五個級別的子代理無法生成進一步的子代理,無論其是否在前景或背景中運行。若要防止子代理生成其他子代理,請從其 `tools` 陣列中省略 `Agent` 或將其添加到 `disallowedTools`。有關完整的深度規則,請參閱[嵌套子代理](/zh-TW/sub-agents#spawn-nested-subagents)。


469 session_id = None471 session_id = None

470 472 

471 # First invocation - run the endpoint-finder subagent473 # First invocation - run the endpoint-finder subagent

474 try:

472 async for message in query(475 async for message in query(

473 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",476 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",

474 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),477 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),


483 # Print the final result486 # Print the final result

484 if hasattr(message, "result"):487 if hasattr(message, "result"):

485 print(message.result)488 print(message.result)

489 except Exception as error:

490 # A single-shot query() raises after yielding an error result,

491 # so session_id and agent_id have already been captured by the loop above.

492 print(f"Session ended with an error: {error}")

486 493 

487 # Second invocation - resume and ask follow-up494 # Second invocation - resume and ask follow-up

488 if agent_id and session_id:495 if agent_id and session_id:


494 ):501 ):

495 if hasattr(message, "result"):502 if hasattr(message, "result"):

496 print(message.result)503 print(message.result)

504 else:

505 print("No agentId found in the first query, so there is no subagent to resume.")

497 506 

498 507 

499 asyncio.run(main())508 asyncio.run(main())


522 let sessionId: string | undefined;531 let sessionId: string | undefined;

523 532 

524 // First invocation - run the endpoint-finder subagent533 // First invocation - run the endpoint-finder subagent

534 try {

525 for await (const message of query({535 for await (const message of query({

526 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",536 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",

527 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }537 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }


534 // Print the final result544 // Print the final result

535 if ("result" in message) console.log(message.result);545 if ("result" in message) console.log(message.result);

536 }546 }

547 } catch (error) {

548 // A single-shot query() throws after yielding an error result,

549 // so sessionId and agentId have already been captured by the loop above.

550 console.error(`Session ended with an error: ${error}`);

551 }

537 552 

538 // Second invocation - resume and ask follow-up553 // Second invocation - resume and ask follow-up

539 if (agentId && sessionId) {554 if (agentId && sessionId) {


543 })) {558 })) {

544 if ("result" in message) console.log(message.result);559 if ("result" in message) console.log(message.result);

545 }560 }

561 } else {

562 console.log("No agentId found in the first query, so there is no subagent to resume.");

546 }563 }

547 ```564 ```

548</CodeGroup>565</CodeGroup>

Details

475| `allowDangerouslySkipPermissions` | `boolean` | `false` | 啟用繞過權限。使用 `permissionMode: 'bypassPermissions'` 時需要 |475| `allowDangerouslySkipPermissions` | `boolean` | `false` | 啟用繞過權限。使用 `permissionMode: 'bypassPermissions'` 時需要 |

476| `allowedTools` | `string[]` | `[]` | 無需提示即可自動批准的工具。這不會將 Claude 限制為僅這些工具;未列出的工具會進入 `permissionMode` 和 `canUseTool`。使用 `disallowedTools` 來阻止工具。見 [權限](/zh-TW/agent-sdk/permissions#allow-and-deny-rules) |476| `allowedTools` | `string[]` | `[]` | 無需提示即可自動批准的工具。這不會將 Claude 限制為僅這些工具;未列出的工具會進入 `permissionMode` 和 `canUseTool`。使用 `disallowedTools` 來阻止工具。見 [權限](/zh-TW/agent-sdk/permissions#allow-and-deny-rules) |

477| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 啟用測試功能 |477| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 啟用測試功能 |

478| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 工具使用的自定義權限函數 |478| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 自定義權限函數,僅在 [權限流](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated) 進入提示時調用。不會為 `allowedTools`、allow 規則或 `permissionMode` 自動批准的調用調用。見 [`CanUseTool`](#canusetool) 了解詳情 |

479| `continue` | `boolean` | `false` | 繼續最近的對話 |479| `continue` | `boolean` | `false` | 繼續最近的對話 |

480| `cwd` | `string` | `process.cwd()` | 當前工作目錄 |480| `cwd` | `string` | `process.cwd()` | 當前工作目錄 |

481| `debug` | `boolean` | `false` | 為 Claude Code 進程啟用調試模式 |481| `debug` | `boolean` | `false` | 為 Claude Code 進程啟用調試模式 |


553* `API_TIMEOUT_MS`:Anthropic 客戶端上的每個請求超時,以毫秒為單位。默認 `600000`。適用於主循環和所有子代理。553* `API_TIMEOUT_MS`:Anthropic 客戶端上的每個請求超時,以毫秒為單位。默認 `600000`。適用於主循環和所有子代理。

554* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重試次數。默認 `10`,上限為 `15`。每次重試都有自己的 `API_TIMEOUT_MS` 窗口,因此最壞情況下的牆時間大約是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。對於需要等待更長時間中斷的無人值守運行,設置 `CLAUDE_CODE_RETRY_WATCHDOG=1` 以無限期重試容量錯誤。554* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重試次數。默認 `10`,上限為 `15`。每次重試都有自己的 `API_TIMEOUT_MS` 窗口,因此最壞情況下的牆時間大約是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。對於需要等待更長時間中斷的無人值守運行,設置 `CLAUDE_CODE_RETRY_WATCHDOG=1` 以無限期重試容量錯誤。

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 啟動的子代理的停滯監視程序。默認 `600000`。在每個流事件上重置;在停滯時中止子代理,將任務標記為失敗,並將錯誤與任何部分結果一起呈現給父代理。不適用於同步子代理。555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 啟動的子代理的停滯監視程序。默認 `600000`。在每個流事件上重置;在停滯時中止子代理,將任務標記為失敗,並將錯誤與任何部分結果一起呈現給父代理。不適用於同步子代理。

556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` 與 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:當標頭已到達但響應正文停止流式傳輸時中止請求。當 `CLAUDE_ENABLE_STREAM_WATCHDOG` 未設置時,默認值在直接 Anthropic API 上由服務器控制,在其他提供商上關閉。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 默認為 `300000` 並被限制為該最小值。中止的請求通過正常重試路徑進行。556* `CLAUDE_ENABLE_STREAM_WATCHDOG` 與 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:當標頭已到達但響應正文停止流式傳輸時中止請求。當 `CLAUDE_ENABLE_STREAM_WATCHDOG` 未設置時,默認值在直接 Anthropic API 上由服務器控制,在其他提供商上關閉。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 默認為 `300000` 並被限制為該最小值。中止的請求通過正常重試路徑進行。

557 557 

558<h3 id="query-object">558<h3 id="query-object">

559 `Query` 對象559 `Query` 對象


573 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;573 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;

574 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;574 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;

575 initializationResult(): Promise<SDKControlInitializeResponse>;575 initializationResult(): Promise<SDKControlInitializeResponse>;

576 reinitialize(): Promise<SDKControlInitializeResponse>;

576 supportedCommands(): Promise<SlashCommand[]>;577 supportedCommands(): Promise<SlashCommand[]>;

577 supportedModels(): Promise<ModelInfo[]>;578 supportedModels(): Promise<ModelInfo[]>;

578 supportedAgents(): Promise<AgentInfo[]>;579 supportedAgents(): Promise<AgentInfo[]>;


592</h4>593</h4>

593 594 

594| 方法 | 描述 |595| 方法 | 描述 |

595| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |596| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

596| `interrupt()` | 中斷查詢(僅在流式輸入模式下可用) |597| `interrupt()` | 中斷查詢(僅在流式輸入模式下可用) |

597| `rewindFiles(userMessageId, options?)` | 將文件恢復到指定用戶消息時的狀態。傳遞 `{ dryRun: true }` 以預覽更改。需要 `enableFileCheckpointing: true`。見 [文件 checkpointing](/zh-TW/agent-sdk/file-checkpointing) |598| `rewindFiles(userMessageId, options?)` | 將文件恢復到指定用戶消息時的狀態。傳遞 `{ dryRun: true }` 以預覽更改。需要 `enableFileCheckpointing: true`。見 [文件 checkpointing](/zh-TW/agent-sdk/file-checkpointing) |

598| `setPermissionMode()` | 更改權限模式(僅在流式輸入模式下可用) |599| `setPermissionMode()` | 更改權限模式(僅在流式輸入模式下可用) |


600| `setMaxThinkingTokens()` | *已棄用:* 改用 `thinking` 選項。更改最大思考令牌 |601| `setMaxThinkingTokens()` | *已棄用:* 改用 `thinking` 選項。更改最大思考令牌 |

601| `applyFlagSettings(settings)` | 在運行時將設置合併到會話的標誌設置層中(僅在流式輸入模式下可用)。見 [`applyFlagSettings()`](#applyflagsettings) |602| `applyFlagSettings(settings)` | 在運行時將設置合併到會話的標誌設置層中(僅在流式輸入模式下可用)。見 [`applyFlagSettings()`](#applyflagsettings) |

602| `initializationResult()` | 返回完整的初始化結果,包括支持的命令、模型、帳戶信息和輸出樣式配置 |603| `initializationResult()` | 返回完整的初始化結果,包括支持的命令、模型、帳戶信息和輸出樣式配置 |

604| `reinitialize()` | {/* min-version: 2.1.195 */}重新發送 `initialize` 控制請求到運行的 CLI,並返回新鮮的結果而不是緩存的首次連接結果。在傳輸間隙後使用它,例如在斷開連接後重新附加到會話,以便待處理的權限請求再次到達您的 `canUseTool` 回調。使回調對每個請求 ID 冪等,因為響應丟失的請求會再次被分派。需要 Claude Code v2.1.195 或更高版本 |

603| `supportedCommands()` | 返回可用的 slash commands |605| `supportedCommands()` | 返回可用的 slash commands |

604| `supportedModels()` | 返回具有顯示信息的可用模型 |606| `supportedModels()` | 返回具有顯示信息的可用模型 |

605| `supportedAgents()` | 返回可用的子代理,作為 [`AgentInfo`](#agentinfo)`[]` |607| `supportedAgents()` | 返回可用的子代理,作為 [`AgentInfo`](#agentinfo)`[]` |


689 691 

690當客戶端向已運行的會話發送 `initialize` 時,控制響應包裝器也會帶有可選的 `pending_permission_requests` 數組。該字段位於響應包裝器本身上,而不是上面的 `SDKControlInitializeResponse` 有效負載中。每個條目都是一個完整的 `control_request` 消息,具有與會話在運行時為權限請求流式傳輸的相同 `{ type: "control_request", request_id, request }` 形狀。692當客戶端向已運行的會話發送 `initialize` 時,控制響應包裝器也會帶有可選的 `pending_permission_requests` 數組。該字段位於響應包裝器本身上,而不是上面的 `SDKControlInitializeResponse` 有效負載中。每個條目都是一個完整的 `control_request` 消息,具有與會話在運行時為權限請求流式傳輸的相同 `{ type: "control_request", request_id, request }` 形狀。

691 693 

692這些是在客戶端連接之前發出的請求,仍在等待回复,因此讀取此數組以立即在表面中顯示進行中的權限提示;它們不會被重新發送694這些是在客戶端連接之前發出的請求,仍在等待回复。SDK 為您讀取數組並將每個條目分派到您的 [`canUseTool`](#canusetool) 回調這是 [`reinitialize()`](#query-object) 在傳輸間隙後觸發的相同重新傳遞以冪等方式處理重複的請求 ID,因為一個條目可以重複回調已經收到的請求,然後連接斷開。

693 695 

694<h3 id="agentdefinition">696<h3 id="agentdefinition">

695 `AgentDefinition`697 `AgentDefinition`


886 888 

887用於控制工具使用的自定義權限函數類型。889用於控制工具使用的自定義權限函數類型。

888 890 

891函數是 SDK 替代交互式權限提示:它僅在 [權限評估流](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated) 解決為提示時調用。已由 `allowedTools` 條目、設置 allow 規則或權限模式(如 `acceptEdits` 或 `bypassPermissions`)批准的工具調用永遠不會調用它。要限制每個工具調用,改用 [`PreToolUse` hook](/zh-TW/agent-sdk/hooks)。

892 

889```typescript theme={null}893```typescript theme={null}

890type CanUseTool = (894type CanUseTool = (

891 toolName: string,895 toolName: string,


1531 session_id: string;1535 session_id: string;

1532 transcript_path: string;1536 transcript_path: string;

1533 cwd: string;1537 cwd: string;

1538 prompt_id?: string;

1534 permission_mode?: string;1539 permission_mode?: string;

1535 effort?: { level: string };1540 effort?: { level: string };

1536 agent_id?: string;1541 agent_id?: string;


1538};1543};

1539```1544```

1540 1545 

1546`prompt_id` 欄位是一個 UUID,用於識別目前正在處理的使用者提示。它與 [OpenTelemetry 事件上的 `prompt.id` 屬性](/zh-TW/monitoring-usage#event-correlation-attributes)相符,在第一個使用者輸入之前不存在。需要 Claude Code v2.1.196 或更新版本。

1547 

1541<h4 id="pretoolusehookinput">1548<h4 id="pretoolusehookinput">

1542 `PreToolUseHookInput`1549 `PreToolUseHookInput`

1543</h4>1550</h4>


2037 2044 

2038```typescript theme={null}2045```typescript theme={null}

2039type MonitorInput = {2046type MonitorInput = {

2040 command: string;2047 command?: string;

2048 ws?: {

2049 url: string;

2050 protocols?: string[];

2051 };

2041 description: string;2052 description: string;

2042 timeout_ms?: number;2053 timeout_ms?: number;

2043 persistent?: boolean;2054 persistent?: boolean;

2044};2055};

2045```2056```

2046 2057 

2047運行後台腳本並將每個 stdout 行作為事件傳遞給 Claude,以便它可以在不輪詢的情況下做出反應。為會話長度的監視(如日誌尾部)設置 `persistent: true`。Monitor 遵循與 Bash 相同的權限規則 [Monitor 工具參考](/zh-TW/tools-reference#monitor-tool) 了解行為和提供商可用性2058運行後台來源並將每個事件傳遞給 Claude,以便它可以在不輪詢的情況下做出反應`command` 運行腳本並每個 stdout 行發出一個事件,`ws` 打開 WebSocket 並每個文本幀發出一個事件提供 `command` 或 `ws` 中的恰好一個。{/* min-version: 2.1.195 */}`ws` 來源需要 Claude Code v2.1.195 或更高版本

2059 

2060為會話長度的監視(如日誌尾部)設置 `persistent: true`。Monitor 運行命令時,遵循與 Bash 相同的權限規則;WebSocket 監視會單獨提示批准。見 [Monitor 工具參考](/zh-TW/tools-reference#monitor-tool) 了解行為和提供商可用性。

2048 2061 

2049<h3 id="taskoutput">2062<h3 id="taskoutput">

2050 TaskOutput2063 TaskOutput


2236運行 [動態工作流](/zh-TW/workflows):一個在後台協調許多子代理並返回一個統一結果的腳本。`Workflow` 工具在 Agent SDK v0.3.149 及更高版本中可用。至少需要 `script`、`name` 或 `scriptPath` 之一。2249運行 [動態工作流](/zh-TW/workflows):一個在後台協調許多子代理並返回一個統一結果的腳本。`Workflow` 工具在 Agent SDK v0.3.149 及更高版本中可用。至少需要 `script`、`name` 或 `scriptPath` 之一。

2237 2250 

2238| 字段 | 類型 | 描述 |2251| 字段 | 類型 | 描述 |

2239| ----------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------- |2252| ----------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2240| `script` | `string` | 內聯工作流腳本。必須以 `export const meta = { name, description, phases }` 作為字面量開始,然後是使用 `agent()`、`parallel()`、`pipeline()` 和 `phase()` 的腳本主體 |2253| `script` | `string` | 內聯工作流腳本。必須以 `export const meta = { name, description }` 作為字面量開始,然後是使用 `agent()`、`parallel()`、`pipeline()` 和 `phase()` 的腳本主體。`meta` 中的可選 `phases` 陣列在進度檢視中將代理分組到命名階段下 |

2241| `name` | `string` | 內置工作流的名稱或保存在 `.claude/workflows/` 中的工作流名稱。解析為腳本 |2254| `name` | `string` | 內置工作流的名稱或保存在 `.claude/workflows/` 中的工作流名稱。解析為腳本 |

2242| `scriptPath` | `string` | 磁盤上工作流腳本文件的路徑。優先於 `script` 和 `name`。每次調用都會持久化其腳本並在結果中返回路徑,因此您可以編輯該文件並使用相同的 `scriptPath` 重新調用以進行迭代 |2255| `scriptPath` | `string` | 磁盤上工作流腳本文件的路徑。優先於 `script` 和 `name`。每次調用都會持久化其腳本並在結果中返回路徑,因此您可以編輯該文件並使用相同的 `scriptPath` 重新調用以進行迭代 |

2243| `args` | `unknown` | 輸入值,作為全局 `args` 暴露給腳本,用於參數化的命名工作流,例如研究問題或文件路徑列表。將數組和對象作為實際 JSON 值傳遞,而不是作為 JSON 編碼的字符串 |2256| `args` | `unknown` | 輸入值,作為全局 `args` 暴露給腳本,用於參數化的命名工作流,例如研究問題或文件路徑列表。將數組和對象作為實際 JSON 值傳遞,而不是作為 JSON 編碼的字符串 |


3098```3111```

3099 3112 

3100<Warning>3113<Warning>

3101 `context-1m-2025-08-07` beta 自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此值無效,超過標準 200k 令牌上下文窗口的請求返回錯誤。要使用 1M 令牌上下文窗口,請遷移到 [Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/zh-TW/about-claude/models/overview),它們以標準定價包括 1M 上下文,無需 beta 標頭。3114 `context-1m-2025-08-07` beta 自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此值無效,超過標準 200k 令牌上下文窗口的請求返回錯誤。要使用 1M 令牌上下文窗口,請遷移到 [Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/zh-TW/about-claude/models/overview),它們以標準定價包括 1M 上下文,無需 beta 標頭。

3102</Warning>3115</Warning>

3103 3116 

3104<h3 id="slashcommand">3117<h3 id="slashcommand">

Details

44 44 

45回呼在兩種情況下觸發:45回呼在兩種情況下觸發:

46 46 

471. **工具需要批准**:Claude 想要使用未被[權限規則](/zh-TW/agent-sdk/permissions)或模式自動批准的工具。檢查 `tool_name` 以查看工具(例如 `"Bash"`、`"Write"`)。471. **工具需要批准**:Claude 想要使用未被[權限規則](/zh-TW/agent-sdk/permissions)或權限模式自動批准的工具。檢查 `tool_name` 以查看工具(例如 `"Bash"`、`"Write"`)。

482. **Claude 提出問題**:Claude 呼叫 `AskUserQuestion` 工具。檢查 `tool_name == "AskUserQuestion"` 以不同方式處理它。如果您指定 `tools` 陣列,請包含 `AskUserQuestion` 以使其正常工作。有關詳細資訊,請參閱[處理澄清問題](#handle-clarifying-questions)。482. **Claude 提出問題**:Claude 呼叫 `AskUserQuestion` 工具。檢查 `tool_name == "AskUserQuestion"` 以不同方式處理它。如果您指定 `tools` 陣列,請包含 `AskUserQuestion` 以使其正常工作。有關詳細資訊,請參閱[處理澄清問題](#handle-clarifying-questions)。

49 49 

50<Note>50<Warning>

51 要自動允許或拒絕工具而不提示使用者,請改用 [hooks](/zh-TW/agent-sdk/hooks)。Hooks `canUseTool` 之前執行可以根據您自己的邏輯允許、拒絕或修改請求您也可以使用 [`PermissionRequest` hook](/zh-TW/agent-sdk/hooks#available-hooks) 在 Claude 等待批准時發送外部通知(Slack、電子郵件推送)51 **回呼永遠不會針對自動批准的工具觸發。** [權限評估流程](/zh-TW/agent-sdk/permissions#how-permissions-are-evaluated)中任何較早的批准、允許規則或 `acceptEdits` `bypassPermissions` 等模式,都會在諮詢 `canUseTool` 之前解決呼叫。如果您在 `allowed_tools` 中列出工具除非詢問規則或 `plan` 模式將呼叫路由回提示,否則該工具的 `canUseTool` 檢查永遠不會執行對於必須應用於每個工具呼叫的邏輯,請使用 [`PreToolUse` hook](/zh-TW/agent-sdk/hooks),它在流程的其餘部分之前執行,可以允許拒絕或修改請求

52</Note>52</Warning>

53 

54您也可以使用 [`PermissionRequest` hook](/zh-TW/agent-sdk/hooks#available-hooks) 在 Claude 等待批准時發送外部通知(Slack、電子郵件、推送)。

53 55 

54<h2 id="handle-tool-approval-requests">56<h2 id="handle-tool-approval-requests">

55 處理工具批准請求57 處理工具批准請求

agent-view.md +94 −68

Details

76 76 

77執行 `claude agents` 開啟 agent view。它接管整個終端並列出按狀態分組的每個工作階段,固定的工作階段和需要您的工作階段在頂部。每行顯示工作階段的名稱、當前活動和上次更改的時間。77執行 `claude agents` 開啟 agent view。它接管整個終端並列出按狀態分組的每個工作階段,固定的工作階段和需要您的工作階段在頂部。每行顯示工作階段的名稱、當前活動和上次更改的時間。

78 78 

79根據預設,該列表顯示您啟動的每個背景工作階段,跨越所有您的專案。在一個儲存庫中工作的工作階段和在不同 worktree 中工作的另一個工作階段都會出現在這裡,無論您從哪個目錄開啟 agent view。要將檢視範圍限制在一個專案,請傳遞 `--cwd`(需要 Claude Code v2.1.141 或更新版本)79根據預設,該列表顯示您啟動的每個背景工作階段,跨越所有您的專案。在一個儲存庫中工作的工作階段和在不同 worktree 中工作的另一個工作階段都會出現在這裡,無論您從哪個目錄開啟 agent view。要將檢視範圍限制在一個專案,請傳遞 `--cwd`:

80 80 

81```bash theme={null}81```bash theme={null}

82claude agents --cwd ~/projects/my-app82claude agents --cwd ~/projects/my-app

83```83```

84 84 

85這只會顯示在該目錄下啟動的工作階段。已 [移入 worktree](#how-file-edits-are-isolated) 在 `~/projects/my-app/.claude/worktrees/` 下的工作階段仍然算作屬於 `~/projects/my-app`。85這只會顯示在該目錄下啟動的工作階段。已[移入 worktree](#how-file-edits-are-isolated)在 `~/projects/my-app/.claude/worktrees/` 下的工作階段仍然算作屬於 `~/projects/my-app`。

86 86 

87您在其他終端中開啟的互動工作階段在您 [背景化它們](#from-inside-a-session) 之前不會出現。[Subagents](/zh-TW/sub-agents) 和 [teammates](/zh-TW/agent-teams) 工作階段產生的不會列為單獨的行。87您在其他終端中開啟的互動工作階段在您[背景化它們](#from-inside-a-session)之前不會出現。[Subagents](/zh-TW/sub-agents) 和 [teammates](/zh-TW/agent-teams) 工作階段產生的不會列為單獨的行。

88 88 

89```text theme={null}89```text theme={null}

90Pinned90Pinned


129| `∙` | 程序已退出。您仍然可以查看、回覆或附加,Claude 從中斷的地方重新啟動 |129| `∙` | 程序已退出。您仍然可以查看、回覆或附加,Claude 從中斷的地方重新啟動 |

130| `✢` | 一個 [`/loop`](/zh-TW/scheduled-tasks) 工作階段在迭代之間休眠。該行顯示其執行計數和倒計時 |130| `✢` | 一個 [`/loop`](/zh-TW/scheduled-tasks) 工作階段在迭代之間休眠。該行顯示其執行計數和倒計時 |

131 131 

132出現在行右邊緣的 `PR #N` 標籤是 [工作階段開啟的拉取請求](#pull-request-status),不是狀態圖示的一部分。當工作階段開啟了多個拉取請求時,標籤會顯示計數,例如 `3 PRs`。132出現在行右邊緣的 `PR #N` 標籤是[工作階段開啟的拉取請求](#pull-request-status),不是狀態圖示的一部分。當工作階段開啟了多個拉取請求時,標籤會顯示計數,例如 `3 PRs`。

133 133 

134終端標籤標題在 agent view 開啟時顯示等待輸入計數:當工作階段需要輸入時為 `2 awaiting input · claude agents`,或當沒有工作階段需要輸入時為 `claude agents`。134終端標籤標題在 agent view 開啟時顯示等待輸入計數:當工作階段需要輸入時為 `2 awaiting input · claude agents`,或當沒有工作階段需要輸入時為 `claude agents`。

135 135 

136背景工作階段不需要任何開啟的終端即可繼續工作。單獨的 [監督程序](#the-supervisor-process) 執行它們,因此您可以關閉 agent view、關閉 shell 或啟動新的互動工作階段,您分派的工作會繼續進行。136背景工作階段不需要任何開啟的終端即可繼續工作。單獨的[監督程序](#the-supervisor-process)執行它們,因此您可以關閉 agent view、關閉 shell 或啟動新的互動工作階段,您分派的工作會繼續進行。

137 137 

138工作階段狀態通過自動更新和監督程序重新啟動在磁碟上持久化。工作階段也會在您的機器進入睡眠時保留。它們的程序在喚醒時恢復,監督程序會重新連接到它們,而不是將時間間隔視為閒置。關閉仍會停止執行中的工作階段;請參閱 [工作階段在關閉後顯示為失敗](#sessions-show-as-failed-after-shutdown) 以了解如何恢復它們。138工作階段狀態通過自動更新和監督程序重新啟動在磁碟上持久化。工作階段也會在您的機器進入睡眠時保留。它們的程序在喚醒時恢復,監督程序會重新連接到它們,而不是將時間間隔視為閒置。關閉仍會停止執行中的工作階段;請參閱[工作階段在關閉後顯示為失敗](#sessions-show-as-failed-after-shutdown)以了解如何恢復它們。

139 139 

140<h3 id="row-summaries">140<h3 id="row-summaries">

141 行摘要141 行摘要

142</h3>142</h3>

143 143 

144每行中的單行摘要由 [Haiku-class 模型](/zh-TW/model-config) 生成,因此該行可以告訴您工作階段正在做什麼、需要什麼或生成了什麼,無需開啟記錄。當工作階段主動工作時,摘要最多每 15 秒刷新一次,加上每個回合結束時刷新一次。144每行中的單行摘要由 [Haiku-class 模型](/zh-TW/model-config)生成,因此該行可以告訴您工作階段正在做什麼、需要什麼或生成了什麼,無需開啟記錄。當工作階段主動工作時,摘要最多每 15 秒刷新一次,加上每個回合結束時刷新一次。

145 145 

146從 v2.1.161 開始,當工作階段執行兩個或更多平行工作項目時,例如 subagents、背景 shell 命令或監視器,`done/total` 計數(例如 `2/5`)會出現在摘要文字之前。146當工作階段執行兩個或更多平行工作項目時,例如 subagents、背景 shell 命令或監視器,`done/total` 計數(例如 `2/5`)會出現在摘要文字之前。

147 147 

148每次刷新都是通過您的正常提供者的一個簡短 Haiku-class 請求,按照與工作階段本身相同的 [資料使用條款](/zh-TW/data-usage) 計費和處理。在第三方提供者(例如 Bedrock、Vertex AI、Microsoft Foundry 和自訂閘道)上,當未配置 Haiku 模型時,請求會回退到工作階段的主要模型。設定 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/zh-TW/model-config#environment-variables) 以在這些提供者上為這些摘要選擇模型。148每次刷新都是通過您的正常提供者的一個簡短 Haiku-class 請求,按照與工作階段本身相同的[資料使用條款](/zh-TW/data-usage)計費和處理。在第三方提供者(例如 Bedrock、Vertex AI、Microsoft Foundry 和自訂閘道)上,當未配置 Haiku 模型時,請求會回退到工作階段的主要模型。設定 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/zh-TW/model-config#environment-variables)以在這些提供者上為這些摘要選擇模型。

149 149 

150<h3 id="pull-request-status">150<h3 id="pull-request-status">

151 拉取請求狀態151 拉取請求狀態


153 153 

154當工作階段開啟拉取請求時,`PR #1234` 標籤會出現在該行的右邊緣,在支援超連結的終端中連結到拉取請求。當您向工作階段發送後續訊息時標籤會保留,因此拉取請求在該行恢復為即時進度時保持可見。154當工作階段開啟拉取請求時,`PR #1234` 標籤會出現在該行的右邊緣,在支援超連結的終端中連結到拉取請求。當您向工作階段發送後續訊息時標籤會保留,因此拉取請求在該行恢復為即時進度時保持可見。

155 155 

156當工作階段開啟了多個拉取請求時,標籤會顯示計數,例如 `3 PRs`,按最需要關注的開啟拉取請求著色。開啟 [查看面板](#peek-and-reply) 以查看它們全部。156當工作階段開啟了多個拉取請求時,標籤會顯示計數,例如 `3 PRs`,按最需要關注的開啟拉取請求著色。開啟[查看面板](#peek-and-reply)以查看它們全部。

157 157 

158拉取請求編號按其狀態著色:158拉取請求編號按其狀態著色:

159 159 


172 172 

173在選定的行上按 `Space` 開啟查看面板。它顯示工作階段需要您提供什麼、其最近的輸出以及它開啟的任何拉取請求。大多數時候這就足夠了,您永遠不需要開啟完整記錄。173在選定的行上按 `Space` 開啟查看面板。它顯示工作階段需要您提供什麼、其最近的輸出以及它開啟的任何拉取請求。大多數時候這就足夠了,您永遠不需要開啟完整記錄。

174 174 

175從 v2.1.161 開始,當工作階段執行平行工作項目時,面板也會命名執行時間最長的項目及其執行時間,因此您可以看到工作階段在等待什麼,而無需附加。175當工作階段執行平行工作項目時,面板也會命名執行時間最長的項目及其執行時間,因此您可以看到工作階段在等待什麼,而無需附加。

176 176 

177在查看面板中輸入回覆並按 `Enter` 將其發送到該工作階段。當工作階段詢問多選問題時,查看面板顯示選項,您可以按數字鍵選擇一個。對於其他被阻止的工作階段,按 `Tab` 用建議的回覆填充輸入,您可以在發送前編輯。使用 `!` 前綴回覆以發送 Bash 命令。177在查看面板中輸入回覆並按 `Enter` 將其發送到該工作階段。當工作階段詢問多選問題時,查看面板顯示選項,您可以按數字鍵選擇一個。對於其他被阻止的工作階段,按 `Tab` 用建議的回覆填充輸入,您可以在發送前編輯。使用 `!` 前綴回覆以發送 Bash 命令。

178 178 

179啟用 [語音聽寫](/zh-TW/voice-dictation) 後,在回覆輸入有焦點時按住或點擊您的推送通話鍵以聽寫回覆,而不是輸入。同樣的方式也適用於 agent view 底部的分派輸入。179啟用[語音聽寫](/zh-TW/voice-dictation)後,在回覆輸入有焦點時按住或點擊您的推送通話鍵以聽寫回覆,而不是輸入。同樣的方式也適用於 agent view 底部的分派輸入。

180 180 

181使用 `↑` 和 `↓` 查看相鄰工作階段而無需關閉面板,或按 `→` 附加。181使用 `↑` 和 `↓` 查看相鄰工作階段而無需關閉面板,或按 `→` 附加。

182 182 


186 186 

187在選定的行上按 `Enter` 或 `→` 附加。Agent view 被完整的互動工作階段替換。附加時,Claude 發佈您離開時發生的簡短回顧。187在選定的行上按 `Enter` 或 `→` 附加。Agent view 被完整的互動工作階段替換。附加時,Claude 發佈您離開時發生的簡短回顧。

188 188 

189附加時,工作階段的行為與任何其他 Claude Code 工作階段相同:每個 [命令](/zh-TW/commands)、快捷鍵和功能都有效。189附加時,工作階段的行為與任何其他 Claude Code 工作階段相同:每個[命令](/zh-TW/commands)、快捷鍵和功能都有效。

190 190 

191附加的工作階段始終以 [全螢幕模式](/zh-TW/fullscreen) 呈現,無論您的 `tui` 設定如何,因為背景工作階段沒有終端滾動回溯可附加。使用 `PgUp`、`PgDn` 或滑鼠滾輪滾動,並按 `Ctrl+O` 進入記錄模式。您終端的原生滾動和 tmux 複製模式只顯示當前視口,與執行任何全螢幕應用程式時相同。191附加的工作階段始終以[全螢幕模式](/zh-TW/fullscreen)呈現,無論您的 `tui` 設定如何,因為背景工作階段沒有終端滾動回溯可附加。使用 `PgUp`、`PgDn` 或滑鼠滾輪滾動,並按 `Ctrl+O` 進入記錄模式。您終端的原生滾動和 tmux 複製模式只顯示當前視口,與執行任何全螢幕應用程式時相同。

192 192 

193在空提示上按 `←` 分離並返回 agent view。如果對話框有焦點且不響應 `←`,按 `Ctrl+Z` 立即分離。193在空提示上按 `←` 分離並返回 agent view。如果對話框有焦點且不響應 `←`,按 `Ctrl+Z` 立即分離。

194 194 


196 196 

197分離永遠不會停止背景工作階段:`←`、`Ctrl+Z`、`/exit` 和雙 `Ctrl+C` 或雙 `Ctrl+D` 都會讓它繼續執行。要從內部結束工作階段,執行 `/stop`。197分離永遠不會停止背景工作階段:`←`、`Ctrl+Z`、`/exit` 和雙 `Ctrl+C` 或雙 `Ctrl+D` 都會讓它繼續執行。要從內部結束工作階段,執行 `/stop`。

198 198 

199在空提示上按 `←` 可從任何 Claude Code 工作階段工作,而不僅僅是您從 agent view 附加的工作階段。它背景化當前工作階段並開啟 agent view,預先選擇該工作階段,因此您可以在不離開終端的情況下切換工作階段。該行會被建立,即使是從沒有對話歷史的全新工作階段,所以 `→` 會返回到它。當該行是唯一的行時,agent view 會在其下方顯示一個入門提示。您可以在 `/config` 中關閉此快捷鍵(`leftArrowOpensAgents` 設定)。199在空提示上按 `←` 可從任何 Claude Code 工作階段工作,而不僅僅是您從 agent view 附加的工作階段。它背景化當前工作階段並開啟 agent view,預先選擇該工作階段,因此您可以在不離開終端的情況下切換工作階段。該行會被建立,即使是從沒有對話歷史的全新工作階段,所以 `→` 會返回到它。當該行是唯一的行時,agent view 會在其下方顯示一個入門提示。

200 

201如果工具在您按 `←` 時執行,Claude Code 會等待最多約十秒鐘讓它完成,然後背景化,回應在背景工作階段中繼續。再次按 `←` 以立即背景化,而不是等待。當進行中的工作無法轉移到背景工作階段時,`Background this session?` 對話會首先出現,與 [`/background`](#from-inside-a-session) 相同。

202 

203該行會被建立,即使是從沒有對話歷史的全新工作階段,所以 `→` 會返回到它。當該行是唯一的行時,agent view 會在其下方顯示一個入門提示。

204 

205您可以在 `/config` 中關閉此快捷鍵(`leftArrowOpensAgents` 設定)。

200 206 

201<h3 id="organize-the-list">207<h3 id="organize-the-list">

202 組織列表208 組織列表

203</h3>209</h3>

204 210 

205Agent view 按狀態分組工作階段,需要輸入的工作階段在頂部,`Ready for review` 和 `Needs input` 在 `Working` 和 `Completed` 上方。這些組名稱不與上面的 [狀態](#read-session-state) 一一對應:當工作階段有開啟的拉取請求時,它會移動到 `Ready for review`,`Completed` 收集已完成、失敗和已停止的工作階段。按 `Ctrl+S` 改為按目錄分組。您的選擇在執行中保存。211Agent view 按狀態分組工作階段,需要輸入的工作階段在頂部,`Ready for review` 和 `Needs input` 在 `Working` 和 `Completed` 上方。這些組名稱不與上面的[狀態](#read-session-state)一一對應:當工作階段有開啟的拉取請求時,它會移動到 `Ready for review`,`Completed` 收集已完成、失敗和已停止的工作階段。

212 

213按 `Ctrl+S` 改為按目錄分組。您的選擇在執行中保存。

206 214 

207在組內:215在組內:

208 216 

209* 按 `Ctrl+T` 將工作階段固定到頂部並 [在閒置時保持其程序執行](#the-supervisor-process)217* 按 `Ctrl+T` 將工作階段固定到頂部並[在閒置時保持其程序執行](#the-supervisor-process)

210* 按 `Shift+↑` 或 `Shift+↓` 重新排序工作階段218* 按 `Shift+↑` 或 `Shift+↓` 重新排序工作階段

211* 按 `Ctrl+R` 重命名工作階段219* 按 `Ctrl+R` 重命名工作階段

212* 在組標題上按 `Enter` 摺疊它220* 在組標題上按 `Enter` 摺疊它

213 221 

214要移除工作階段,按 `Ctrl+X` 停止它,然後在兩秒內再次按 `Ctrl+X` 刪除它。在組標題上按 `Ctrl+X` 會在確認後刪除該組中的每個工作階段。222要移除工作階段,按 `Ctrl+X` 停止它,然後在兩秒內再次按 `Ctrl+X` 刪除它。在組標題上按 `Ctrl+X` 會在確認後刪除該組中的每個工作階段。

215 223 

216刪除會從 agent view 中移除工作階段。如果 Claude [為工作階段建立了 worktree](#how-file-edits-are-isolated),刪除會移除該 worktree,包括其中的任何未提交的更改,因此在刪除前推送或提交您想保留的工作。您自己建立的 worktree 並在其中啟動工作階段的會保留在原地。對話記錄會保留在您的本機上,並且仍然可以通過 `claude --resume` 存取。224刪除會從 agent view 中移除工作階段。如果 Claude[為工作階段建立了 worktree](#how-file-edits-are-isolated),刪除會移除該 worktree,包括其中的任何未提交的更改,因此在刪除前推送或提交您想保留的工作。您自己建立的 worktree 並在其中啟動工作階段的會保留在原地。對話記錄會保留在您的本機上,並且仍然可以通過 `claude --resume` 存取。

217 225 

218較舊的已完成工作階段摺疊為 `… N more` 行以保持列表簡短。失敗和具有開啟拉取請求的工作階段始終保持可見。226較舊的已完成工作階段摺疊為 `… N more` 行以保持列表簡短。失敗和具有開啟拉取請求的工作階段始終保持可見。`Completed` 組填充在即時組之後剩餘的垂直空間,在短終端上,標題會壓縮為單行摘要,以便正在工作或需要輸入的工作階段保持可見。

219 227 

220<h3 id="filter-sessions">228<h3 id="filter-sessions">

221 篩選工作階段229 篩選工作階段


275| :---------------------- | :---------------------------------------------------------------------------------------- |283| :---------------------- | :---------------------------------------------------------------------------------------- |

276| `<agent-name> <prompt>` | 如果第一個單詞與自訂 [subagent](/zh-TW/sub-agents) 名稱匹配,該 subagent 以工作階段的主代理身份執行,其 frontmatter 中的配置 |284| `<agent-name> <prompt>` | 如果第一個單詞與自訂 [subagent](/zh-TW/sub-agents) 名稱匹配,該 subagent 以工作階段的主代理身份執行,其 frontmatter 中的配置 |

277| `@<agent-name>` | 在提示中的任何地方提及自訂 subagent 以將其作為主代理執行 |285| `@<agent-name>` | 在提示中的任何地方提及自訂 subagent 以將其作為主代理執行 |

278| `@<repo>` | 提及您開啟 agent view 的目錄下的存儲庫以在那裡執行工作階段 |286| `@<repo>` | 提及您開啟 agent view 的目錄下的儲存庫以在那裡執行工作階段 |

279| `/<command>` | 建議 [skills](/zh-TW/skills) 和 [commands](/zh-TW/commands) 作為提示分派 |287| `/<command>` | 建議 [skills](/zh-TW/skills) 和 [commands](/zh-TW/commands) 作為提示分派 |

280| `! <command>` | 執行 shell 命令作為背景工作而不是啟動 Claude 工作階段。該工作顯示為一行,您可以附加到、監視和分離 |288| `! <command>` | 執行 shell 命令作為背景工作而不是啟動 Claude 工作階段。該工作顯示為一行,您可以附加到、監視和分離 |

281| `#<number>` 或拉取請求 URL | 如果工作階段已在該 PR 上工作,選擇它而不是分派 |289| `#<number>` 或拉取請求 URL | 如果工作階段已在該 PR 上工作,選擇它而不是分派 |

282| `Shift+Enter` | 分派並立即附加到新工作階段 |290| `Shift+Enter` | 分派並立即附加到新工作階段 |

283 291 

284一小組命令在 agent view 本身中執行,而不是分派:`/exit` 和 `/quit` 關閉 agent view,`/logout` 將您登出,以及 `/model` 設定 [dispatch model](#set-the-model)。Skills、您自己的命令和提示擴展內建命令(例如 `/init`)會作為新背景工作階段的第一個提示發送。其他內建命令會顯示 `attach to a session to run it` 提示。292一小組命令在 agent view 本身中執行,而不是分派:`/exit` 和 `/quit` 關閉 agent view,`/logout` 將您登出,以及 `/model` 設定[dispatch model](#set-the-model)。Skills、您自己的命令和提示擴展內建命令(例如 `/init`)會作為新背景工作階段的第一個提示發送。其他內建命令會顯示 `attach to a session to run it` 提示。

285 293 

286將重複任務打包為 [skill](/zh-TW/skills) 可讓您從 agent view 多次啟動相同的工作流程,無需重新輸入提示。294將重複任務打包為 [skill](/zh-TW/skills)可讓您從 agent view 多次啟動相同的工作流程,無需重新輸入提示。

287 295 

288當相同的 `@name` 同時與 subagent 和同級存儲庫匹配時,subagent 優先。不帶 `@` 的第一個單詞形式也適用,因此以與您的 subagent 名稱之一匹配的單詞開頭的提示會分派該 subagent 而不是將該單詞視為純文本。當您想要明確時,請使用 `@` 形式,或以不同的單詞開頭提示以避免匹配。296當相同的 `@name` 同時與 subagent 和同級儲存庫匹配時,subagent 優先。不帶 `@` 的第一個單詞形式也適用,因此以與您的 subagent 名稱之一匹配的單詞開頭的提示會分派該 subagent 而不是將該單詞視為純文本。當您想要明確時,請使用 `@` 形式,或以不同的單詞開頭提示以避免匹配。

289 297 

290<h4 id="dispatch-to-a-specific-directory">298<h4 id="dispatch-to-a-specific-directory">

291 分派到特定目錄299 分派到特定目錄


294新工作階段在您開啟 agent view 的目錄中執行。要針對不同的目錄:302新工作階段在您開啟 agent view 的目錄中執行。要針對不同的目錄:

295 303 

296* 在該目錄中開啟 `claude agents`。304* 在該目錄中開啟 `claude agents`。

297* 在包含多個存儲庫的父目錄中開啟 `claude agents`,並在提示中使用 `@<repo>` 提及一個以在那裡執行工作階段。305* 在包含多個儲存庫的父目錄中開啟 `claude agents`,並在提示中使用 `@<repo>` 提及一個以在那裡執行工作階段。

298* 從 shell,`cd` 進入目錄並執行 `claude --bg "<prompt>"`。306* 從 shell,`cd` 進入目錄並執行 `claude --bg "<prompt>"`。

299 307 

300當 agent view 按目錄分組時,突出顯示的行的目錄成為分派目標,因此您可以滾動到組並在其中分派,無需重新輸入路徑。308當 agent view 按目錄分組時,突出顯示的行的目錄成為分派目標,因此您可以滾動到組並在其中分派,無需重新輸入路徑。


305 313 

306執行 `/background` 或其別名 `/bg` 將當前對話移動到背景工作階段。傳遞提示,例如 `/bg run the test suite and fix any failures`,以在分派前發送一個額外的指令。如果 Claude 在您執行 `/bg` 時正在回應,回應會在背景工作階段中繼續。314執行 `/background` 或其別名 `/bg` 將當前對話移動到背景工作階段。傳遞提示,例如 `/bg run the test suite and fix any failures`,以在分派前發送一個額外的指令。如果 Claude 在您執行 `/bg` 時正在回應,回應會在背景工作階段中繼續。

307 315 

308從互動工作階段背景化會啟動一個新的進程,該進程從保存的對話恢復,因此執行 subagents、[monitors](/zh-TW/tools-reference#monitor-tool) 和背景命令不會轉移到它當任何正在執行時Claude 會要求您在背景化前確認進入背景後工作階段可以啟動新的 subagents、monitors 和背景命令,這些命令在稍後分離和重新附加時保持執行316從互動工作階段背景化會啟動一個新的進程,該進程從保存的對話恢復,進行中的工作會轉移到它:執行中的背景 shell 命令、背景化的 subagents、動態工作流程和您使用 [`/loop`](/zh-TW/scheduled-tasks)建立的排定任務會轉移到背景工作階段並在那裡繼續執行Subagent 與它啟動的所有內容一起移動因此只有當所有工作都能轉移時它才會轉移,包括在 Windows 上要停止進行中的工作而不是轉移它請設定 [`CLAUDE_DISABLE_ADOPT=1`](/zh-TW/env-vars#variables)環境變數;Claude Code 隨後會要求您在背景化前確認

317 

318無法轉移的工作,例如執行中的 [monitor](/zh-TW/tools-reference#monitor-tool),會被停止。擁有監視器的背景化 subagent 會與它一起被停止。當任何此類工作執行時,Claude Code 會顯示 `Background this session?` 對話,以便您可以在停止前確認。

319 

320進入背景後,工作階段可以啟動新的 subagents、monitors 和背景命令,這些命令在稍後分離和重新附加時保持執行。

309 321 

310來自原始啟動的配置標誌會傳遞到背景化工作階段,因此其 MCP servers、settings 和備用模型保持有效:322來自原始啟動的配置標誌會傳遞到背景化工作階段,因此其 MCP servers、settings 和備用模型保持有效:

311 323 


316* `--fallback-model`328* `--fallback-model`

317* `--allow-dangerously-skip-permissions`329* `--allow-dangerously-skip-permissions`

318 330 

319您在工作階段期間使用 [`/add-dir`](/zh-TW/permissions#additional-directories-grant-file-access-not-configuration) 新增的目錄也會傳遞。331您在工作階段期間使用 [`/add-dir`](/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)新增的目錄也會傳遞。

320 332 

321傳遞 `--allow-dangerously-skip-permissions` 會在背景化工作階段中保持 `bypassPermissions` 可達,但它不會授予任何新的權限。該模式仍然需要在任何工作階段使用它之前進行相同的一次性互動接受,如 [Permission mode, model, and effort](#permission-mode-model-and-effort) 中所述。333傳遞 `--allow-dangerously-skip-permissions` 會在背景化工作階段中保持 `bypassPermissions` 可達,但它不會授予任何新的權限。該模式仍然需要在任何工作階段使用它之前進行相同的一次性互動接受,如[Permission mode, model, and effort](#permission-mode-model-and-effort)中所述。

322 334 

323<h3 id="from-your-shell">335<h3 id="from-your-shell">

324 從您的 shell336 從您的 shell


376 檔案編輯如何隔離388 檔案編輯如何隔離

377</h3>389</h3>

378 390 

379每個背景工作階段,無論是從 agent view、`/bg` 或 `claude --bg` 啟動,都在您的工作目錄中啟動。編輯檔案前,Claude 將工作階段移動到 `.claude/worktrees/` 下的隔離 [git worktrees](/zh-TW/worktrees) 中,因此並行工作階段可以讀取相同的檢出,但每個都寫入自己的。391每個背景工作階段,無論是從 agent view、`/bg` 或 `claude --bg` 啟動,都在您的工作目錄中啟動。編輯檔案前,Claude 將工作階段移動到 `.claude/worktrees/` 下的隔離 [git worktrees](/zh-TW/worktrees)中,因此並行工作階段可以讀取相同的檢出,但每個都寫入自己的。

380 392 

381Claude 在以下情況下跳過 worktree:393Claude 在以下情況下跳過 worktree:

382 394 

383* 工作階段已在連結的 git worktree 內,無論 Claude 是在 `.claude/worktrees/` 下建立它,還是您使用 `git worktree add` 在其他地方建立它395* 工作階段已在連結的 git worktree 內,無論 Claude 是在 `.claude/worktrees/` 下建立它,還是您使用 `git worktree add` 在其他地方建立它

384* 工作目錄不是 git 存儲庫且沒有配置 [`WorktreeCreate` hook](/zh-TW/hooks#worktreecreate)396* 工作目錄不是 git 儲存庫且沒有配置 [`WorktreeCreate` hook](/zh-TW/hooks#worktreecreate)

385* 寫入在工作目錄外397* 寫入在工作目錄外

386 398 

387要為 git worktrees 不實用的存儲庫關閉 worktree 隔離,請將 [`worktree.bgIsolation`](/zh-TW/settings#worktree-settings) 設定為 `"none"`。背景工作階段隨後直接編輯您的工作副本,無需先移動到 worktree。將設定新增到專案的 `.claude/settings.json`:399要為 git worktrees 不實用的儲存庫關閉 worktree 隔離,請將 [`worktree.bgIsolation`](/zh-TW/settings#worktree-settings)設定為 `"none"`。背景工作階段隨後直接編輯您的工作副本,無需先移動到 worktree。將設定新增到專案的 `.claude/settings.json`:

388 400 

389```json theme={null}401```json theme={null}

390{402{


394}406}

395```407```

396 408 

397<Note>409在 git 儲存庫外,工作階段直接寫入工作目錄,彼此之間不隔離,因此避免分派編輯相同檔案的並行工作階段。如果您使用不同的版本控制系統,請配置 [`WorktreeCreate` hook](/zh-TW/worktrees#non-git-version-control),Claude 會以與 git 相同的方式隔離編輯。

398 `worktree.bgIsolation` 設定需要 Claude Code v2.1.143 或更新版本。

399</Note>

400 410 

401git 存儲庫外,工作階段直接寫入工作目錄彼此之間不隔離因此避免分派編輯相同檔案的並行工作階段如果您使用不同的版本控制系統,請配置 [`WorktreeCreate` hook](/zh-TW/worktrees#non-git-version-control),Claude 會以與 git 相同的方式隔離編輯411agent view 中刪除工作階段(`Ctrl+X` 兩次)會移除 Claude 為其建立的 worktree包括任何未提交的更改因此在刪除前合併或推送您想保留的更改 shell 使用 [`claude rm`](#manage-sessions-from-the-shell)刪除會保留具有未提交更改的 worktree 並列印其路徑,以便您可以自己清理它。您自己建立並在其中啟動工作階段的 worktree 無論如何都會保留在原位

402 

403在 agent view 中刪除工作階段(`Ctrl+X` 兩次)會移除 Claude 為其建立的 worktree,包括任何未提交的更改,因此在刪除前合併或推送您想保留的更改。從 shell 使用 [`claude rm`](#manage-sessions-from-the-shell) 刪除會保留具有未提交更改的 worktree 並列印其路徑,以便您可以自己清理它。您自己建立並在其中啟動工作階段的 worktree 無論如何都會保留在原位。

404 412 

405要找到工作階段的 worktree 路徑,查看工作階段或附加並檢查其工作目錄。413要找到工作階段的 worktree 路徑,查看工作階段或附加並檢查其工作目錄。

406 414 

407[subagent](/zh-TW/sub-agents) 背景工作階段生成的會繼承工作階段的工作目錄,因此其檔案編輯會進入工作階段的 worktree 而不是您的工作副本。要給 subagent 其自己的單獨 worktree,請在其 frontmatter 中設定 [`isolation: worktree`](/zh-TW/sub-agents#supported-frontmatter-fields) 或在生成它時傳遞 `isolation: "worktree"`。415[subagent](/zh-TW/sub-agents)背景工作階段生成的會繼承工作階段的工作目錄,因此其檔案編輯會進入工作階段的 worktree 而不是您的工作副本。要給 subagent 其自己的單獨 worktree,請在其 frontmatter 中設定 [`isolation: worktree`](/zh-TW/sub-agents#supported-frontmatter-fields)或在生成它時傳遞 `isolation: "worktree"`。

408 416 

409<h3 id="set-the-model">417<h3 id="set-the-model">

410 設定模型418 設定模型

411</h3>419</h3>

412 420 

413agent view 標題中顯示的模型名稱是分派預設值。您從輸入啟動的新工作階段使用此模型,這來自您使用者設定中的 [`model` setting](/zh-TW/settings#available-settings)。通過在 [`/model` picker](/zh-TW/model-config) 中選擇模型來設定它,或直接編輯設定。要為整個 agent view 工作階段覆蓋它,請在開啟 agent view 時傳遞 `--model`。請參閱 [Permission mode, model, and effort](#permission-mode-model-and-effort)。421agent view 標題中顯示的模型名稱是分派預設值。您從輸入啟動的新工作階段使用此模型,這來自您使用者設定中的 [`model` setting](/zh-TW/settings#available-settings)。通過在 [`/model` picker](/zh-TW/model-config)中選擇模型來設定它,或直接編輯設定。

422 

423要為整個 agent view 工作階段覆蓋分派預設值,請在開啟 agent view 時傳遞 `--model`。請參閱[Permission mode, model, and effort](#permission-mode-model-and-effort)。

414 424 

415要從 agent view 內部更改分派預設值,請在分派輸入中輸入 `/model` 後跟模型名稱,然後按 `Enter`。標題會更新以顯示該模型,並帶有 `(session)` 標記,之後您分派的工作階段會使用它。輸入 `/model default` 以清除覆蓋並返回分派預設值。此覆蓋會持續到當前 `claude agents` 執行的其餘部分,不會寫入您的設定檔案,並需要 Claude Code v2.1.172 或更新版本。以下示例在 Opus 上分派一個工作階段,在 Sonnet 上分派下一個:425要從 agent view 內部更改分派預設值,請在分派輸入中輸入 `/model` 後跟模型名稱,然後按 `Enter`。標題會更新以顯示該模型,並帶有 `(session)` 標記,之後您分派的工作階段會使用它。輸入 `/model default` 以清除覆蓋並返回分派預設值。此覆蓋會持續到當前 `claude agents` 執行的其餘部分,不會寫入您的設定檔案。以下示例在 Opus 上分派一個工作階段,在 Sonnet 上分派下一個:

416 426 

417```text theme={null}427```text theme={null}

418/model opus428/model opus


433 443 

434背景工作階段從它執行的目錄讀取其 [settings](/zh-TW/settings),就像您在那裡啟動了 `claude` 一樣。這包括專案設定中的 [`env` values](/zh-TW/settings#available-settings),因此在那裡設定的 `ANTHROPIC_MODEL` 或提供者變數適用於該目錄中的背景工作階段。444背景工作階段從它執行的目錄讀取其 [settings](/zh-TW/settings),就像您在那裡啟動了 `claude` 一樣。這包括專案設定中的 [`env` values](/zh-TW/settings#available-settings),因此在那裡設定的 `ANTHROPIC_MODEL` 或提供者變數適用於該目錄中的背景工作階段。

435 445 

436雲提供者選擇,例如 `CLAUDE_CODE_USE_BEDROCK` 或 `CLAUDE_CODE_USE_VERTEX`,以及 `ANTHROPIC_DEFAULT_*_MODEL` 別名遵循分派工作階段的 shell。閘道端點變數,例如 `ANTHROPIC_BASE_URL` 及其配對的 `ANTHROPIC_AUTH_TOKEN` 則不遵循。請參閱 [the supervisor process](#the-supervisor-process) 以了解背景工作階段如何源自提供者設定和認證。446雲提供者選擇,例如 `CLAUDE_CODE_USE_BEDROCK` 或 `CLAUDE_CODE_USE_VERTEX`,以及 `ANTHROPIC_DEFAULT_*_MODEL` 別名遵循分派工作階段的 shell。閘道端點變數,例如 `ANTHROPIC_BASE_URL` 及其配對的 `ANTHROPIC_AUTH_TOKEN` 則不遵循。請參閱[the supervisor process](#the-supervisor-process)以了解背景工作階段如何源自提供者設定和認證。

437 447 

438[permission mode](/zh-TW/permissions) 取決於您如何啟動工作階段。使用 `/bg` 或 `←` 背景化現有工作階段會保持當前權限模式,因此您切換到 `acceptEdits` 或 `auto` 的工作階段在分離後仍保持該模式。從 agent view 輸入分派或從 shell 執行 `claude --bg` 使用該目錄設定中的 `defaultMode`,或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`。448[permission mode](/zh-TW/permissions)取決於您如何啟動工作階段。使用 `/bg` 或 `←` 背景化現有工作階段會保持當前權限模式,因此您切換到 `acceptEdits` 或 `auto` 的工作階段在分離後仍保持該模式。從 agent view 輸入分派或從 shell 執行 `claude --bg` 使用該目錄設定中的 `defaultMode`,或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields)中的 `permissionMode`。

439 449 

440背景工作階段啟動時的權限模式、模型和努力,以及它攜帶的 [configuration flags](#from-inside-a-session),在監督者稍後 [stops and restarts](#the-supervisor-process) 其進程時都會持續。您使用 `claude --bg --dangerously-skip-permissions` 或 `claude --bg --permission-mode bypassPermissions` 啟動的工作階段在該重新啟動後保持 `bypassPermissions`,而不是回退到目錄的 `defaultMode`,並且您使用 `/model` 或 `/effort` 在工作階段中途更改的模型或努力會被保留。450背景工作階段啟動時的權限模式、模型和努力,以及它攜帶的 [configuration flags](#from-inside-a-session),在監督者稍後 [stops and restarts](#the-supervisor-process)其進程時都會持續。您使用 `claude --bg --dangerously-skip-permissions` 或 `claude --bg --permission-mode bypassPermissions` 啟動的工作階段在該重新啟動後保持 `bypassPermissions`,而不是回退到目錄的 `defaultMode`,並且您使用 `/model` 或 `/effort` 在工作階段中途更改的模型或努力會被保留。

441 451 

442要為您從 agent view 分派的每個工作階段設定預設值,請在開啟它時傳遞 `--permission-mode`、`--model`、`--effort` 或 `--agent` 中的任何一個:452要為您從 agent view 分派的每個工作階段設定預設值,請在開啟它時傳遞 `--permission-mode`、`--model`、`--effort` 或 `--agent` 中的任何一個:

443 453 


447 457 

448`--agent` 設定 [subagent](/zh-TW/sub-agents),當分派提示未使用 `@name` 或作為第一個單詞命名時使用。如果設定了 [`agent` setting](/zh-TW/settings#available-settings),則預設為該設定,否則為內建的全能 `claude` 代理。在分派輸入中命名 subagent 會覆蓋兩者。458`--agent` 設定 [subagent](/zh-TW/sub-agents),當分派提示未使用 `@name` 或作為第一個單詞命名時使用。如果設定了 [`agent` setting](/zh-TW/settings#available-settings),則預設為該設定,否則為內建的全能 `claude` 代理。在分派輸入中命名 subagent 會覆蓋兩者。

449 459 

450`claude agents` 也接受 `--dangerously-skip-permissions` 作為 `--permission-mode bypassPermissions` 的簡寫,以及 `--allow-dangerously-skip-permissions` 以在每個分派工作階段的 `Shift+Tab` 循環中提供 `bypassPermissions`,而不是以該模式啟動。兩者都與 [top-level CLI flags](/zh-TW/cli-reference) 相符。460`claude agents` 也接受 `--dangerously-skip-permissions` 作為 `--permission-mode bypassPermissions` 的簡寫,以及 `--allow-dangerously-skip-permissions` 以在每個分派工作階段的 `Shift+Tab` 循環中提供 `bypassPermissions`,而不是以該模式啟動。兩者都與 [top-level CLI flags](/zh-TW/cli-reference)相符。

451 

452這些標誌在各個版本中新增。較早的版本會以未知選項錯誤拒絕它們。

453 

454| 標誌或設定 | 最低版本 |

455| :------------------------------------------------------------------------ | :------- |

456| `--permission-mode`、`--model`、`--effort`、`--dangerously-skip-permissions` | v2.1.142 |

457| `--allow-dangerously-skip-permissions` | v2.1.143 |

458| `--agent` 和尊重分派工作階段的 `agent` 設定 | v2.1.157 |

459 

460在 v2.1.157 之前,agent view 忽略 `agent` 設定並分派內建的 `claude` 代理。

461 461 

462活動預設值出現在分派輸入下方的頁腳中。462活動預設值出現在分派輸入下方的頁腳中。

463 463 

464沒有這些標誌,工作階段使用該目錄設定中的 `defaultMode` 或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`,以及 agent view 標題中顯示的模型。464沒有這些標誌,工作階段使用該目錄設定中的 `defaultMode` 或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields)中的 `permissionMode`,以及 agent view 標題中顯示的模型。

465 465 

466使用 `bypassPermissions` `auto` 被拒絕,直到您通過以互動方式運行 `claude` 接受該模式因為這些模式讓您未監視的工作階段無需批准即可行動無論您是將模式傳遞給 `claude agents` 還是 `claude --bg --permission-mode`,同樣的規則也適用466使用 `bypassPermissions` `claude --bg --permission-mode` 被拒絕,直到您通過執行 `claude --dangerously-skip-permissions` 一次互動式接受了繞過免責聲明因為該模式讓您未監視的工作階段無需批准即可行動 `--dangerously-skip-permissions` 或 `--permission-mode bypassPermissions` 傳遞給 `claude agents` 會在您之前未接受時顯示相同的免責聲明,接受會將 `bypassPermissions` 應用於您從檢視啟動的工作階段。傳遞 `--allow-dangerously-skip-permissions` 也會顯示相同的免責聲明接受會在這些工作階段的 `Shift+Tab` 循環中提供 `bypassPermissions`,而不是以它啟動它們

467 467 

468<h3 id="settings-plugins-and-mcp-servers">468<h3 id="settings-plugins-and-mcp-servers">

469 Settings, plugins, and MCP servers469 Settings, plugins, and MCP servers

470</h3>470</h3>

471 471 

472Agent view 接受與 `claude` 相同的配置標誌,用於載入 settings、plugins、MCP servers 和額外目錄。這些標誌需要 Claude Code v2.1.142 或更新版本。每個標誌適用於 agent view 本身,並傳遞給您從它分派的每個工作階段,因此以這種方式載入的 plugin 或 MCP server 在這些工作階段中也可用。472Agent view 接受與 `claude` 相同的配置標誌,用於載入 settings、plugins、MCP servers 和額外目錄。每個標誌適用於 agent view 本身,並傳遞給您從它分派的每個工作階段,因此以這種方式載入的 plugin 或 MCP server 在這些工作階段中也可用。

473 473 

474| 標誌 | 效果 |474| 標誌 | 效果 |

475| :-------------------------------------------------------------------------------------------------- | :--------------------------------------------- |475| :-------------------------------------------------------------------------------------------------- | :--------------------------------------------- |


494每個背景工作階段都有一個短 ID,您可以從 shell 使用。當您使用 `claude --bg` 啟動工作階段時會列印該 ID,每個工作階段的 ID 是其在 `~/.claude/jobs/` 下的目錄名稱。這些命令對於指令碼編寫或當您不想開啟 agent view 時很有用。494每個背景工作階段都有一個短 ID,您可以從 shell 使用。當您使用 `claude --bg` 啟動工作階段時會列印該 ID,每個工作階段的 ID 是其在 `~/.claude/jobs/` 下的目錄名稱。這些命令對於指令碼編寫或當您不想開啟 agent view 時很有用。

495 495 

496| 命令 | 目的 |496| 命令 | 目的 |

497| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |497| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

498| `claude agents` | 開啟 agent view |498| `claude agents` | 開啟 agent view |

499| `claude agents --cwd <path>` | 開啟 agent view,範圍限定於在 `<path>` 下啟動的工作階段 |499| `claude agents --cwd <path>` | 開啟 agent view,範圍限定於在 `<path>` 下啟動的工作階段 |

500| `claude agents --json` | 將即時工作階段列印為 JSON 陣列並結束:每個即時工作階段,加上仍在執行或被阻止的背景工作階段,即使其程序已結束。新增 `--all` 以同時包含已完成的背景工作階段。每個項目都有 `cwd`、`kind` 和 `startedAt`。背景項目也有 `id`(可與 `claude attach`/`logs`/`stop` 搭配使用)和 `state`:`working`、`blocked`、`done`、`failed` 或 `stopped` 之一。`pid` 和 `status` 僅在程序執行時出現,加上當 status 為 `waiting` 時的 `waitingFor`,其說明工作階段被阻止的原因,例如 `permission prompt` 或 `input needed`;`sessionId` 和 `name` 在設定時出現。與 `--cwd <path>` 結合以篩選 |500| `claude agents --json` | 將即時工作階段列印為 JSON 陣列並結束:每個即時工作階段,加上仍在執行或被阻止的背景工作階段,即使其程序已結束。新增 `--all` 以同時包含已完成的背景工作階段。每個項目都有 `cwd`、`kind` 和 `startedAt`。背景項目也有 `id`(可與 `claude attach`/`logs`/`stop` 搭配使用)和 `state`:`working`、`blocked`、`done`、`failed` 或 `stopped` 之一。`pid` 和 `status` 僅在程序執行時出現,加上當 status 為 `waiting` 時的 `waitingFor`,其說明工作階段被阻止的原因,例如 `permission prompt` 或 `input needed`;`sessionId` 和 `name` 在設定時出現。互動項目您從未命名的會帶有預設 `name`,由其工作目錄的名稱加上兩個字符後綴組成,例如 `my-app-3f`。與 `--cwd <path>` 結合以篩選 |

501| `claude attach <id>` | 在此終端中附加到工作階段 |501| `claude attach <id>` | 在此終端中附加到工作階段 |

502| `claude logs <id>` | 列印工作階段的最近輸出 |502| `claude logs <id>` | 列印工作階段的最近輸出 |

503| `claude stop <id>` | 停止工作階段。也接受 `claude kill` |503| `claude stop <id>` | 停止工作階段。也接受 `claude kill` |

504| `claude respawn <id>` | 重新啟動工作階段(執行中或已停止),保持其對話完整,例如用於採用更新的 Claude Code 二進位檔案 |504| `claude respawn <id>` | 重新啟動工作階段(執行中或已停止),保持其對話完整,例如用於採用更新的 Claude Code 二進位檔案 |

505| `claude respawn --all` | 重新啟動每個執行中的工作階段,例如一次將所有工作階段移至更新的 Claude Code 二進位檔案 |505| `claude respawn --all` | 重新啟動每個執行中的工作階段,例如一次將所有工作階段移至更新的 Claude Code 二進位檔案 |

506| `claude rm <id>` | 從清單中移除工作階段。如果沒有未提交的變更,會移除 Claude 為工作階段建立的 worktree;否則會列印 worktree 路徑以便您清理。保留您自己建立的 worktree。對話記錄會保留在您的本機上,並可透過 `claude --resume` 繼續使用 |506| `claude rm <id>` | 從清單中移除工作階段。如果沒有未提交的變更,會移除 Claude 為工作階段建立的 worktree;否則會列印 worktree 路徑以便您清理。保留您自己建立的 worktree。對話記錄會保留在您的本機上,並可透過 `claude --resume` 繼續使用 |

507| `claude daemon status` | 列印 [supervisor](#the-supervisor-process) 的狀態、版本、socket 目錄和 worker 計數 |507| `claude daemon status` | 列印 [supervisor](#the-supervisor-process)的狀態、版本、socket 目錄和 worker 計數 |

508| `claude daemon stop --any` | 停止 supervisor 程序及其託管的背景工作階段。傳遞 `--keep-workers` 以保持背景工作階段執行中,以便下一個 supervisor 可以重新連接到它們。下一個 `claude agents` 或 `claude --bg` 會啟動全新的 supervisor |508| `claude daemon stop --any` | 停止 supervisor 程序及其託管的背景工作階段。傳遞 `--keep-workers` 以保持背景工作階段執行中,以便下一個 supervisor 可以重新連接到它們。下一個 `claude agents` 或 `claude --bg` 會啟動全新的 supervisor |

509 509 

510<h2 id="how-background-sessions-are-hosted">510<h2 id="how-background-sessions-are-hosted">


523 523 

524監督程序及其工作階段使用與互動工作階段相同的認證進行身份驗證,並且除了模型 API 外不進行額外的網路連接。提供者選擇變數(例如 `CLAUDE_CODE_USE_BEDROCK` 和 `ANTHROPIC_DEFAULT_*_MODEL` 別名)從分派每個工作階段的 shell 中讀取,並應用於其工作程序。524監督程序及其工作階段使用與互動工作階段相同的認證進行身份驗證,並且除了模型 API 外不進行額外的網路連接。提供者選擇變數(例如 `CLAUDE_CODE_USE_BEDROCK` 和 `ANTHROPIC_DEFAULT_*_MODEL` 別名)從分派每個工作階段的 shell 中讀取,並應用於其工作程序。

525 525 

526{/* min-version: 2.1.174 */}背景工作階段不會繼承閘道端點變數(例如 `ANTHROPIC_BASE_URL`、等效的 Bedrock、Vertex 和 Foundry 基礎 URL 變數,或配對的 `ANTHROPIC_AUTH_TOKEN`)來自啟動監督程序的 shell 或分派 shell。工作階段改用您的儲存認證和專案目錄的[設定](/zh-TW/settings)中 `env` 區塊中的任何 `env` 值。要在專案中指向背景工作階段到[LLM 閘道](/zh-TW/llm-gateway),請在該專案的 `.claude/settings.json` `env` 區塊中設定 `ANTHROPIC_BASE_URL`,而不是在您的 shell 中匯出它。在 v2.1.174 之前,背景工作階段從監督程序的啟動 shell 繼承這些變數,因此它可以使用您在該 shell 中配置的閘道,而不是為專案目錄配置的閘道。526背景工作階段不會繼承閘道端點變數(例如 `ANTHROPIC_BASE_URL`、等效的 Bedrock、Vertex 和 Foundry 基礎 URL 變數,或配對的 `ANTHROPIC_AUTH_TOKEN`)來自啟動監督程序的 shell 或分派 shell。工作階段改用您的儲存認證和專案目錄的[設定](/zh-TW/settings)中 `env` 區塊中的任何 `env` 值。要在專案中指向背景工作階段到 [LLM 閘道](/zh-TW/llm-gateway),請在該專案的 `.claude/settings.json` `env` 區塊中設定 `ANTHROPIC_BASE_URL`,而不是在您的 shell 中匯出它。

527 527 

528每個背景工作階段都是其自己的 Claude Code 程序,由監督程序管理而不是與您的終端相關聯。正在主動工作、等待您的輸入或已連接終端的工作階段保持其程序執行。執行中的背景 shell 命令、子代理、動態工作流程或監視器計為主動工作,因此長時間執行的程序(例如開發伺服器)會保持工作階段活躍。528每個背景工作階段都是其自己的 Claude Code 程序,由監督程序管理而不是與您的終端相關聯。正在主動工作、等待您的輸入或已連接終端的工作階段保持其程序執行。執行中的背景 shell 命令、子代理、動態工作流程或監視器計為主動工作,因此長時間執行的程序(例如開發伺服器)會保持工作階段活躍。

529 529 

530一旦工作階段完成並在未附加的情況下閒置約一小時,監督程序停止其程序以釋放資源。您使用 `Ctrl+T` [釘選](#organize-the-list)的工作階段不受此限制,在閒置時保持其程序執行。無論如何,文字記錄和狀態保留在磁碟上,下次您附加、查看或回覆已停止的工作階段時,監督程序從中斷的地方啟動新程序。當每個工作階段都完成且沒有終端連接時,監督程序本身退出,並在下次您需要它時再次啟動。530一旦工作階段完成並在未附加的情況下閒置約一小時,監督程序停止其程序以釋放資源。您使用 `Ctrl+T` [釘選](#organize-the-list)的工作階段不受此限制,在閒置時保持其程序執行。無論如何,文字記錄和狀態保留在磁碟上,下次您附加、查看或回覆已停止的工作階段時,監督程序從中斷的地方啟動新程序。當每個工作階段都完成且沒有終端連接時,監督程序本身退出,並在下次您需要它時再次啟動。

531 531 

532按下 `←` 留下的空白列從未被給予提示會在約五分鐘後被完全移除以便列表自動清除使用 `claude --bg` 啟動的工作階段和等待設定提示(例如信任對話)的工作階段不會以這種方式被移除532背景 shell 命令和動態工作流程工作階段啟動的會在其程序被停止、重新啟動或更新時繼續執行包括在 Windows 上。為該工作階段啟動的下一個程序會接收它們已完成的 shell 命令會報告為已完成及其輸出工作流程會從中斷的地方恢復 subagent 啟動的 shell 命令和執行中的 [monitors](/zh-TW/tools-reference#monitor-tool)仍會與程序一起停止,刪除工作階段會停止它交付的所有內容。要讓背景 shell 命令和工作流程與程序一起停止,請將 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/zh-TW/env-vars#variables)環境變數設定為 `1`

533 

534如果重新啟動的工作階段回來時只顯示其原始提示,因為 Claude Code 誤讀其記錄為空,對話記錄會被重命名為 `.orphaned-` 後綴,而不是被刪除,因此它會保留在您的機器上。

535 

536按 `←` 留下的空白列,從未被給予提示,會在約五分鐘後被完全移除,以便列表自動清除。使用 `claude --bg` 啟動的工作階段和等待設定提示(例如信任對話)的工作階段不會以這種方式被移除。

533 537 

534當主機記憶體不足時,監督程序首先停止閒置的未釘選工作階段,只有在釋放任何資源時才停止閒置的釘選工作階段。538當主機記憶體不足時,監督程序首先停止閒置的未釘選工作階段,只有在釋放任何資源時才停止閒置的釘選工作階段。

535 539 


554 558 

555該命令也會在執行中的監督程序版本與您叫用的 `claude` 版本不同時發出警告,這會在監督程序尚未重新啟動到新版本的更新後發生。警告會顯示兩個版本,並告訴您執行 `claude daemon stop --any` 以採用新版本。當 Claude Code 安裝為作業系統服務時,建議的命令是 `claude daemon stop`,不帶該旗標。559該命令也會在執行中的監督程序版本與您叫用的 `claude` 版本不同時發出警告,這會在監督程序尚未重新啟動到新版本的更新後發生。警告會顯示兩個版本,並告訴您執行 `claude daemon stop --any` 以採用新版本。當 Claude Code 安裝為作業系統服務時,建議的命令是 `claude daemon stop`,不帶該旗標。

556 560 

561工作階段在該版本不匹配時保持完整:較舊的 Claude Code 版本更新工作階段的 `state.json` 時會保留它不識別的欄位,並保持工作階段列出。

562 

557<h3 id="turn-off-agent-view">563<h3 id="turn-off-agent-view">

558 關閉 agent view564 關閉 agent view

559</h3>565</h3>


568 `claude agents` 列出子代理而不是開啟代理檢視574 `claude agents` 列出子代理而不是開啟代理檢視

569</h3>575</h3>

570 576 

571如果 `claude agents` 列印計數後跟著您設定的子代理,然後退出,代理檢視在您的環境中不可用。較早的版本不會在每個環境中開啟代理檢視,包括透過 Bedrock、Vertex AI 或 Foundry 連接時。執行 `claude update` 以安裝最新版本。577如果 `claude agents` 列印計數後跟著您設定的子代理,然後退出,代理檢視在您的環境中不可用。執行 `claude update` 以安裝最新版本。

572 578 

573如果更新後代理檢視仍未開啟,請檢查它是否已被設定或環境變數[關閉](#turn-off-agent-view)。579如果更新後代理檢視仍未開啟,請檢查它是否已被設定或環境變數[關閉](#turn-off-agent-view)。

574 580 


578 584 

579在您分派第一個工作階段之前,agent view 會顯示簡短的入門提示,並在工作階段清單的位置顯示範例提示。在底部的輸入框中輸入提示並按 `Enter` 以分派您的第一個工作階段。585在您分派第一個工作階段之前,agent view 會顯示簡短的入門提示,並在工作階段清單的位置顯示範例提示。在底部的輸入框中輸入提示並按 `Enter` 以分派您的第一個工作階段。

580 586 

581<h3 id="cannot-open-agents-because-work-is-running-in-the-background">587<h3 id="backgrounding-shows-a-background-this-session-dialog">

582 無法開啟代理,因為背景工作正在執行588 背景化顯示 `Background this session?` 對話

583</h3>589</h3>

584 590 

585如果按 `←` 將目前工作階段放在背景中顯示 `Cannot open agents — N still running in the background`,工作階段有進行中的工作例如子代理、動態工作流程或背景 shell 命令快捷鍵不會無聲地放棄它。執行 `/tasks` 以查看正在執行的內容,然後執行 `/bg` 以確認放棄它們。請參閱[從工作階段內部](#from-inside-a-session)以了解背景化時哪些會轉移哪些不會591如果按 `←` 將當前工作階段放在背景中顯示 `Background this session?` 對話工作階段有進行中的工作無法轉移到背景工作階段例如執行中的 [monitor](/zh-TW/tools-reference#monitor-tool),Claude Code 不會無聲地停止它。對話命名將被停止的工作並分別計算轉移的任務。執行 `/tasks` 以查看正在執行的內容,然後確認以無論如何背景化或選擇 `Stay` 讓工作先完成。請參閱[從工作階段內部](#from-inside-a-session)以了解哪些任務類型轉移哪些被停止

586 592 

587<h3 id="prompt-rejected-as-too-short">593<h3 id="prompt-rejected-as-too-short">

588 提示被拒絕為過短594 提示被拒絕為過短


616 背景分派失敗,出現 `Could not resolve authentication method`622 背景分派失敗,出現 `Could not resolve authentication method`

617</h3>623</h3>

618 624 

619{/* min-version: 2.1.174 */}如果背景分派失敗,出現 `Could not resolve authentication method`,而互動式工作階段正常驗證,接收分派的背景工作程序未取得認證。在 v2.1.174 及更新版本上,監督程序在指派[預先準備的背景工作程序](#the-supervisor-process)時提供新的認證快照,因此此錯誤表示監督程序本身沒有可用的已儲存認證。確認您已執行 `/login` 或設定 API 金鑰,然後停止監督程序:625如果背景分派失敗,出現 `Could not resolve authentication method`,而互動式工作階段正常驗證,接收分派的背景工作程序未取得認證。監督程序在指派[預先準備的背景工作程序](#the-supervisor-process)時提供新的認證快照,因此此錯誤表示監督程序本身沒有可用的已儲存認證。確認您已執行 `/login` 或設定 API 金鑰,然後停止監督程序:

620 626 

621```bash theme={null}627```bash theme={null}

622claude daemon stop --any --keep-workers628claude daemon stop --any --keep-workers


624 630 

625下一個 `claude agents` 或 `claude --bg` 啟動新的監督程序,該程序會讀取您的已儲存認證。如果您使用環境變數(例如 `ANTHROPIC_API_KEY`)而不是 `/login` 進行驗證,請從設定該變數的 shell 執行下一個命令。631下一個 `claude agents` 或 `claude --bg` 啟動新的監督程序,該程序會讀取您的已儲存認證。如果您使用環境變數(例如 `ANTHROPIC_API_KEY`)而不是 `/login` 進行驗證,請從設定該變數的 shell 執行下一個命令。

626 632 

627請參閱[錯誤參考](/zh-TW/errors#could-not-resolve-authentication-method)以取得完整的原因和修復清單。在 v2.1.174 之前,閒置的預先準備背景工作程序在被指派給分派時可能會出現此錯誤,即使您的認證有效。升級以復原。633請參閱[錯誤參考](/zh-TW/errors#could-not-resolve-authentication-method)以取得完整的原因和修復清單。

628 634 

629<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">635<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">

630 背景工作階段無法在 macOS 上讀取 Desktop、Documents 或 Downloads636 背景工作階段無法在 macOS 上讀取 Desktop、Documents 或 Downloads


638 工作階段在附加後響應緩慢644 工作階段在附加後響應緩慢

639</h3>645</h3>

640 646 

641一旦工作階段完成並在未附加的情況下閒置約一小時,監督程序會停止其程序以釋放資源。附加會啟動從中斷的地方開始的新程序,這需要一些時間。正在工作、等待您或[釘選](#organize-the-list)的工作階段不會以這種方式停止,因此使用 `Ctrl+T` 釘選工作階段以保持其回應性。647一旦工作階段完成並在未附加的情況下閒置約一小時,監督程序會停止其程序以釋放資源。附加會啟動從中斷的地方開始的新程序,並立即切換到工作階段,而程序重新啟動。正在工作、等待您或[釘選](#organize-the-list)的工作階段不會以這種方式停止,因此使用 `Ctrl+T` 釘選工作階段以保持其回應性。

642 648 

643<h3 id="claude/worktrees/-is-filling-up">649<h3 id="claude/worktrees/-is-filling-up">

644 `.claude/worktrees/` 正在填滿650 `.claude/worktrees/` 正在填滿


665* [在平行中執行代理](/zh-TW/agents):比較 agent view 與 subagents、agent teams 和 worktrees671* [在平行中執行代理](/zh-TW/agents):比較 agent view 與 subagents、agent teams 和 worktrees

666* [Agent teams](/zh-TW/agent-teams):協調相互傳遞訊息的多個工作階段672* [Agent teams](/zh-TW/agent-teams):協調相互傳遞訊息的多個工作階段

667* [Claude Code on the web](/zh-TW/claude-code-on-the-web):在受管雲環境中執行工作階段,而不是本地執行673* [Claude Code on the web](/zh-TW/claude-code-on-the-web):在受管雲環境中執行工作階段,而不是本地執行

674 

675<h2 id="version-history">

676 版本歷史

677</h2>

678 

679Agent view 在研究預覽期間發展迅速。如果您使用較舊的 Claude Code 版本,本頁上的某些行為可能會有所不同;特別是,`claude agents` 會以 `unknown option` 錯誤拒絕它尚不支援的旗標。下表列出了每個旗標和行為何時新增。

680 

681| 版本 | 變更 |

682| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

683| v2.1.196 | {/* min-version: 2.1.196 */}單一 `←` 按下會背景化前景工作階段;較早的版本需要兩次按下,帶有頁尾提示和確認。傳遞給 `claude agents` 的 `--dangerously-skip-permissions` 會顯示繞過免責聲明,而不是被無聲地丟棄。您從未命名的互動工作階段在工作階段清單和 `claude agents --json` 中帶有預設名稱,例如 `my-app-3f`。背景 shell 命令和動態工作流程在工作階段的程序被停止、重新啟動或更新時存活,包括在 Windows 上;設定 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 以關閉交付。在重新啟動時誤讀為空的記錄會被重命名為 `.orphaned-` 後綴,而不是被刪除。 |

684| v2.1.195 | {/* min-version: 2.1.195 */}進行中的工作在您背景化 Windows 上的工作階段時也會轉移;設定 `CLAUDE_DISABLE_ADOPT=1` 以改為停止它。`Completed` 組填充剩餘的垂直空間,標題在短終端上壓縮。較舊的 Claude Code 版本不再丟棄較新工作階段的 `state.json` 欄位或隱藏這些工作階段。附加到已停止的工作階段會立即切換,而不是顯示空白螢幕最多五秒。無法接受連接的監督程序會自行退出並釋放其鎖定。 |

685| v2.1.174 | {/* min-version: 2.1.174 */}背景工作階段不再繼承閘道端點變數,例如來自監督程序啟動 shell 的 `ANTHROPIC_BASE_URL`;監督程序向預先準備的工作程序提供新的認證快照,修復虛假的 `Could not resolve authentication method` 錯誤。 |

686| v2.1.172 | {/* min-version: 2.1.172 */}分派輸入中的 `/model` 設定工作階段範圍的分派模型覆蓋。 |

687| v2.1.161 | {/* min-version: 2.1.161 */}行摘要顯示平行工作項目的 `done/total` 計數;查看面板命名最長執行的平行工作項目。 |

688| v2.1.157 | {/* min-version: 2.1.157 */}}`claude agents` 接受 `--agent`;分派的工作階段尊重 `agent` 設定。 |

689| v2.1.145 | {/* min-version: 2.1.145 */}查看面板回覆輸入和分派輸入中支援語音聽寫。 |

690| v2.1.143 | {/* min-version: 2.1.143 */}}`worktree.bgIsolation` 設定新增;`claude agents` 接受 `--allow-dangerously-skip-permissions`。 |

691| v2.1.142 | {/* min-version: 2.1.142 */}}`claude agents` 接受 `--permission-mode`、`--model`、`--effort`、`--dangerously-skip-permissions`、`--settings`、`--add-dir`、`--plugin-dir`、`--mcp-config` 和 `--strict-mcp-config`。 |

692| v2.1.141 | {/* min-version: 2.1.141 */}}`claude agents` 接受 `--cwd` 以將清單範圍限定為一個專案。 |

693| v2.1.139 | {/* min-version: 2.1.139 */}Agent view 作為研究預覽版本引入。 |

Details

397 1M 權杖內容視窗397 1M 權杖內容視窗

398</h2>398</h2>

399 399 

400Claude Opus 4.6 及更新版本,以及 Sonnet 4.6,在 Amazon Bedrock 上支援 [1M 權杖內容視窗](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window)。當您選取 1M 模型變體時,Claude Code 會自動啟用擴展內容視窗。400Claude Sonnet 5、Opus 4.6 及更新版本,以及 Sonnet 4.6,在 Amazon Bedrock 上支援 [1M 權杖內容視窗](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window)。Sonnet 5 透過 [Mantle 端點](#use-the-mantle-endpoint)提供,且始終以 1M 視窗執行,沒有 `[1m]` 變體可選擇。對於其他模型,當您選取 1M 模型變體時,Claude Code 會自動啟用擴展內容視窗。

401 401 

402[設定精靈](#sign-in-with-bedrock)在固定模型時提供 1M 內容選項。若要為手動固定的模型啟用它,請在模型 ID 後附加 `[1m]`。請參閱[為第三方部署固定模型](/zh-TW/model-config#pin-models-for-third-party-deployments)以取得詳細資訊。402[設定精靈](#sign-in-with-bedrock)在固定模型時提供 1M 內容選項。若要為手動固定的模型啟用它,請在模型 ID 後附加 `[1m]`。請參閱[為第三方部署固定模型](/zh-TW/model-config#pin-models-for-third-party-deployments)以取得詳細資訊。

403 403 


458 選取 Mantle 模型458 選取 Mantle 模型

459</h3>459</h3>

460 460 

461Mantle 使用以 `anthropic.` 為前綴且沒有版本尾碼的模型 ID,例如 `anthropic.claude-haiku-4-5`。您的帳戶可用的模型取決於您的組織已被授予的內容;其他模型 ID 列在來自 AWS 的您的上線材料中。請聯絡您的 AWS 帳戶團隊以要求存取允許清單模型。461Mantle 使用以 `anthropic.` 為前綴且沒有版本尾碼的模型 ID,例如 `anthropic.claude-sonnet-5` 或 `anthropic.claude-haiku-4-5`。您的帳戶可用的模型取決於您的組織已被授予的內容;其他模型 ID 列在來自 AWS 的您的上線材料中。請聯絡您的 AWS 帳戶團隊以要求存取允許清單模型。

462 462 

463使用 `--model` 旗標或 Claude Code 內的 `/model` 設定模型:463使用 `--model` 旗標或 Claude Code 內的 `/model` 設定模型:

464 464 


542 542 

543Claude Code 使用 Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html),不支援 Converse API。543Claude Code 使用 Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html),不支援 Converse API。

544 544 

545<h3 id="zero-token-counts-in-/context">

546 /context 中的零權杖計數

547</h3>

548 

549`/context` 命令透過將工具架構傳送至 Bedrock count-tokens API 來計算每個工具群組的權杖。在 Claude Code v2.1.196 之前的版本中,Bedrock 拒絕了該請求,因為架構包含其 count-tokens API 不接受的欄位,因此每個工具群組都顯示 0 個權杖。分解中的其他列(例如訊息和記憶體檔案)不受影響。

550 

551更新至 v2.1.196 或更新版本。

552 

545<h3 id="mantle-endpoint-errors">553<h3 id="mantle-endpoint-errors">

546 Mantle 端點錯誤554 Mantle 端點錯誤

547</h3>555</h3>

Details

24* **Claude for Teams 或 Enterprise**:使用您的團隊管理員邀請您的 Claude.ai 帳戶登入。24* **Claude for Teams 或 Enterprise**:使用您的團隊管理員邀請您的 Claude.ai 帳戶登入。

25* **Claude Console**:使用您的 Console 認證登入。您的管理員必須先 [邀請您](#claude-console-authentication)。25* **Claude Console**:使用您的 Console 認證登入。您的管理員必須先 [邀請您](#claude-console-authentication)。

26* **雲端提供商**:如果您的組織使用 [Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Vertex AI](/zh-TW/google-vertex-ai) 或 [Microsoft Foundry](/zh-TW/microsoft-foundry),請在執行 `claude` 之前設定所需的環境變數。不需要瀏覽器登入。26* **雲端提供商**:如果您的組織使用 [Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Vertex AI](/zh-TW/google-vertex-ai) 或 [Microsoft Foundry](/zh-TW/microsoft-foundry),請在執行 `claude` 之前設定所需的環境變數。不需要瀏覽器登入。

27* **雲端閘道**:如果您的組織執行自託管的 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway),請透過 `/login` 使用公司 SSO 登入。閘道簽發的權杖是工作階段的唯一認證。

27 28 

28若要登出並重新驗證,請在 Claude Code 提示符處輸入 `/logout`。29若要登出並重新驗證,請在 Claude Code 提示符處輸入 `/logout`。

29 30 


37 38 

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

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

41* [Claude apps gateway](/zh-TW/claude-apps-gateway),一個自託管閘道,使用您的 IdP 簽署開發人員,並將推論路由到您配置的雲端提供商

40* [Amazon Bedrock](/zh-TW/amazon-bedrock)42* [Amazon Bedrock](/zh-TW/amazon-bedrock)

41* [Google Vertex AI](/zh-TW/google-vertex-ai)43* [Google Vertex AI](/zh-TW/google-vertex-ai)

42* [Microsoft Foundry](/zh-TW/microsoft-foundry)44* [Microsoft Foundry](/zh-TW/microsoft-foundry)


131 * 在 Windows 上,認證儲存在 `%USERPROFILE%\.claude\.credentials.json` 中,並繼承您的使用者設定檔目錄的存取控制,預設情況下將檔案限制為您的使用者帳戶。133 * 在 Windows 上,認證儲存在 `%USERPROFILE%\.claude\.credentials.json` 中,並繼承您的使用者設定檔目錄的存取控制,預設情況下將檔案限制為您的使用者帳戶。

132 * 如果您在 Linux 或 Windows 上設定了 `CLAUDE_CONFIG_DIR` 環境變數,`.credentials.json` 檔案將位於該目錄下。134 * 如果您在 Linux 或 Windows 上設定了 `CLAUDE_CONFIG_DIR` 環境變數,`.credentials.json` 檔案將位於該目錄下。

133 * Claude Code 透過 `/login` 和 `/logout` 管理 `.credentials.json`。若要透過自訂 API 端點路由請求,請改為設定 [`ANTHROPIC_BASE_URL`](/zh-TW/env-vars) 環境變數。135 * Claude Code 透過 `/login` 和 `/logout` 管理 `.credentials.json`。若要透過自訂 API 端點路由請求,請改為設定 [`ANTHROPIC_BASE_URL`](/zh-TW/env-vars) 環境變數。

134* **支援的驗證類型**:Claude.ai 認證、Claude API 認證、Azure Auth、Bedrock Auth 和 Vertex Auth136* **支援的驗證類型**:Claude.ai 認證、Claude API 認證、Azure Auth、Bedrock Auth、Vertex Auth [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段令牌

135* **自訂認證指令碼**:[`apiKeyHelper`](/zh-TW/settings#available-settings) 設定可以配置為執行傳回 API 金鑰的 shell 指令碼。137* **自訂認證指令碼**:[`apiKeyHelper`](/zh-TW/settings#available-settings) 設定可以配置為執行傳回 API 金鑰的 shell 指令碼。

136* **重新整理間隔**:根據預設,`apiKeyHelper` 在 5 分鐘後或在 HTTP 401 回應時呼叫。設定 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 環境變數以自訂重新整理間隔。138* **重新整理間隔**:根據預設,`apiKeyHelper` 在 5 分鐘後或在 HTTP 401 回應時呼叫。設定 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 環境變數以自訂重新整理間隔。

137* **緩慢協助程式通知**:如果 `apiKeyHelper` 花費超過 10 秒的時間傳回金鑰,Claude Code 會在提示符列中顯示警告通知,顯示經過的時間。如果您經常看到此通知,請檢查您的認證指令碼是否可以最佳化。139* **緩慢協助程式通知**:如果 `apiKeyHelper` 花費超過 10 秒的時間傳回金鑰,Claude Code 會在提示符列中顯示警告通知,顯示經過的時間。如果您經常看到此通知,請檢查您的認證指令碼是否可以最佳化。


1515. `CLAUDE_CODE_OAUTH_TOKEN` 環境變數。由 [`claude setup-token`](#generate-a-long-lived-token) 產生的長期 OAuth 令牌。用於 CI 管道和指令碼,其中瀏覽器登入不可用。1535. `CLAUDE_CODE_OAUTH_TOKEN` 環境變數。由 [`claude setup-token`](#generate-a-long-lived-token) 產生的長期 OAuth 令牌。用於 CI 管道和指令碼,其中瀏覽器登入不可用。

1526. 來自 `/login` 的訂閱 OAuth 認證。這是 Claude Pro、Max、Team 和 Enterprise 使用者的預設值。1546. 來自 `/login` 的訂閱 OAuth 認證。這是 Claude Pro、Max、Team 和 Enterprise 使用者的預設值。

153 155 

156已簽署的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段位於此清單之外:它是一個提供商選擇,如 Bedrock 或 Vertex,並且優先於它們。當閘道工作階段存在時,CLI 使用閘道令牌進行驗證,即使設定了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,上面的持有人令牌、API 金鑰和 `apiKeyHelper` 項目也不會被使用。

157 

154如果您有有效的 Claude 訂閱,但您的環境中也設定了 `ANTHROPIC_API_KEY`,則 API 金鑰在核准後優先。如果金鑰屬於已停用或過期的組織,這可能會導致驗證失敗。執行 `unset ANTHROPIC_API_KEY` 以回退到您的訂閱,並檢查 `/status` 以確認哪種方法處於活動狀態。158如果您有有效的 Claude 訂閱,但您的環境中也設定了 `ANTHROPIC_API_KEY`,則 API 金鑰在核准後優先。如果金鑰屬於已停用或過期的組織,這可能會導致驗證失敗。執行 `unset ANTHROPIC_API_KEY` 以回退到您的訂閱,並檢查 `/status` 以確認哪種方法處於活動狀態。

155 159 

156[網頁版 Claude Code](/zh-TW/claude-code-on-the-web) 始終使用您的訂閱認證。沙箱環境中的 `ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN` 不會覆蓋它們。160[網頁版 Claude Code](/zh-TW/claude-code-on-the-web) 始終使用您的訂閱認證。沙箱環境中的 `ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN` 不會覆蓋它們。

Details

9[自動模式](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)讓 Claude Code 無需常規權限提示即可執行,方法是透過分類器路由工具呼叫,該分類器會阻止任何不可逆、破壞性或針對您環境外部的操作。拒絕和明確詢問規則會在分類器之前進行評估,仍然會阻止或提示。使用 `autoMode` 設定區塊告訴該分類器您的組織信任哪些儲存庫、儲存桶和網域,以便它停止阻止常規內部操作。9[自動模式](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)讓 Claude Code 無需常規權限提示即可執行,方法是透過分類器路由工具呼叫,該分類器會阻止任何不可逆、破壞性或針對您環境外部的操作。拒絕和明確詢問規則會在分類器之前進行評估,仍然會阻止或提示。使用 `autoMode` 設定區塊告訴該分類器您的組織信任哪些儲存庫、儲存桶和網域,以便它停止阻止常規內部操作。

10 10 

11<Note>11<Note>

12 自動模式可在 Anthropic API 上供所有使用者使用。在 Amazon Bedrock、Google Cloud Vertex AIMicrosoft Foundry ,您必須先[設定 `CLAUDE_CODE_ENABLE_AUTO_MODE`](/zh-TW/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)。如果 Claude Code 報告您的帳戶無法使用自動模式,請檢查[完整要求](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),其中也涵蓋支援的模型和 Team 與 Enterprise 方案上的管理員啟用12 自動模式可在 Anthropic API 上供所有使用者使用。在 Amazon Bedrock、Google Cloud Vertex AIMicrosoft Foundry 和已登入的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段上,您必須先[設定 `CLAUDE_CODE_ENABLE_AUTO_MODE`](/zh-TW/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)。如果 Claude Code 報告您的帳戶無法使用自動模式,請檢查[完整要求](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),其中也涵蓋支援的模型和 Team 與 Enterprise 方案上的擁有者啟用

13</Note>13</Note>

14 14 

15開箱即用,分類器只信任工作目錄和目前儲存庫的已設定遠端。推送到您公司的原始碼控制組織或寫入團隊雲端儲存桶等操作會被阻止,直到您將它們新增到 `autoMode.environment`。15根據預設,分類器只信任工作目錄和目前儲存庫的已設定遠端。推送到您公司的原始碼控制組織或寫入團隊雲端儲存桶等操作會被阻止,直到您將它們新增到 `autoMode.environment`。

16 16 

17有關如何啟用自動模式以及它預設阻止的內容,請參閱[權限模式](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)。本頁是設定參考。17有關如何啟用自動模式以及它預設阻止的內容,請參閱[權限模式](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)。本頁是設定參考。

18 18 


21* [選擇在何處設定規則](#where-the-classifier-reads-configuration)跨 CLAUDE.md、使用者設定和受管設定21* [選擇在何處設定規則](#where-the-classifier-reads-configuration)跨 CLAUDE.md、使用者設定和受管設定

22* [定義受信任的基礎設施](#define-trusted-infrastructure)使用 `autoMode.environment`22* [定義受信任的基礎設施](#define-trusted-infrastructure)使用 `autoMode.environment`

23* [覆蓋阻止和允許規則](#override-the-block-and-allow-rules)當預設值不符合您的管道時23* [覆蓋阻止和允許規則](#override-the-block-and-allow-rules)當預設值不符合您的管道時

24* [透過分類器路由所有 shell 命令](#route-all-shell-commands-through-the-classifier)使用 `autoMode.classifyAllShell`

24* [檢查您的有效設定](#inspect-the-defaults-and-your-effective-config)使用 `claude auto-mode` 子命令25* [檢查您的有效設定](#inspect-the-defaults-and-your-effective-config)使用 `claude auto-mode` 子命令

25* [檢查拒絕](#review-denials)以便您知道接下來要新增什麼26* [檢查拒絕](#review-denials)以便您知道接下來要新增什麼

26 27 


53 54 

54對於大多數組織,`autoMode.environment` 是您唯一需要設定的欄位。它告訴分類器哪些儲存庫、儲存桶和網域是受信任的:分類器使用它來決定「外部」的含義,因此任何未列出的目的地都是潛在的資料外洩目標。55對於大多數組織,`autoMode.environment` 是您唯一需要設定的欄位。它告訴分類器哪些儲存庫、儲存桶和網域是受信任的:分類器使用它來決定「外部」的含義,因此任何未列出的目的地都是潛在的資料外洩目標。

55 56 

56預設環境清單信任工作儲存庫及其設定的遠端。若要在該預設值旁邊新增您自己的項目,請在陣列中包含字面字串 `"$defaults"`。預設項目會在該位置被插入,因此您的自訂項目可以在它們之前或之後57 Claude Code v2.1.195 起,`claude auto-mode defaults` 列印兩種環境項目

58 

59* **信任槽位**:命名分類器視為在您邊界內的內容。槽位是受信任儲存庫、原始碼控制、受信任內部網域、受信任雲端儲存桶、關鍵內部服務和內部套件登錄。儲存庫和原始碼控制項目預設為工作儲存庫及其設定的遠端。所有其他信任槽位預設為 `None configured`,因此在您新增之前沒有其他內容是受信任的。

60* **敏感度槽位**:命名保護規則視為高風險的內容。槽位是 PII / 受管制資料位置、敏感遠端目標和受保護的 IaC 範圍。每個預設為廣泛的啟發式方法,例如將任何名稱包含 `prod` 或 `production` 的主機或命名空間視為敏感遠端目標,因此保護規則在您設定任何內容之前就處於活動狀態。在敏感度槽位中命名具體目標會使這些規則應用於命名的目標而不是啟發式方法。

61 

62v2.1.195 之前的版本只列印前五個信任槽位。

63 

64要在預設值旁邊新增您自己的項目,請在陣列中包含字面字串 `"$defaults"`。預設項目會在該位置被插入,因此您的自訂項目可以在它們之前或之後。

65 

66下列範例保留預設項目並新增組織的儲存庫、儲存桶、網域和服務。

57 67 

58```json theme={null}68```json theme={null}

59{69{


76* **雲端提供者和受信任的儲存桶**:Claude 應該能夠讀取和寫入的儲存桶名稱或前綴86* **雲端提供者和受信任的儲存桶**:Claude 應該能夠讀取和寫入的儲存桶名稱或前綴

77* **受信任的內部網域**:您網路內的 API、儀表板和服務的主機名稱,例如 `*.internal.example.com`87* **受信任的內部網域**:您網路內的 API、儀表板和服務的主機名稱,例如 `*.internal.example.com`

78* **關鍵內部服務**:CI、工件登錄、內部套件索引、事件工具88* **關鍵內部服務**:CI、工件登錄、內部套件索引、事件工具

89* **內部套件登錄**:私人 npm、PyPI 或其他登錄,安裝應該透過它路由,因此繞過它以使用公開登錄的安裝會被阻止

90* **PII / 受管制資料位置**:保存個人或受管制資料的儲存桶、資料庫或路徑,因此分類器保護這些位置而不是從內容猜測

91* **敏感遠端目標**:計為生產的命名空間、主機或容器,因此遠端 shell 和連接埠轉發到它們需要您的明確批准

92* **受保護的 IaC 範圍**:其應用或銷毀應始終要求您命名變更的基礎設施資源

79* **其他上下文**:受管制行業的限制、多租戶基礎設施或影響分類器應將什麼視為風險的合規要求93* **其他上下文**:受管制行業的限制、多租戶基礎設施或影響分類器應將什麼視為風險的合規要求

80 94 

95內部套件登錄、PII / 受管制資料位置、敏感遠端目標和受保護的 IaC 範圍項目需要 Claude Code v2.1.195 或更新版本。較早的版本仍將它們讀取為純上下文,但沒有針對它們的內建規則。

96 

81一個有用的起始範本:填入括號中的欄位並移除任何不適用的行。97一個有用的起始範本:填入括號中的欄位並移除任何不適用的行。

82 98 

83```json theme={null}99```json theme={null}


105 覆蓋阻止和允許規則121 覆蓋阻止和允許規則

106</h2>122</h2>

107 123 

108三個額外的欄位讓您取代分類器的內建規則清單:`autoMode.hard_deny` 用於無條件安全邊界,`autoMode.soft_deny` 用於使用者意圖可以清除的破壞性操作,以及 `autoMode.allow` 用於例外。每個都是散文描述的陣列,讀取為自然語言規則。對於在分類器之前執行的工具模式型硬阻止,請使用 [`permissions.deny`](/zh-TW/permissions)。124三個額外的欄位讓您取代分類器的內建規則清單:

125 

126* `autoMode.hard_deny`:無條件安全邊界

127* `autoMode.soft_deny`:使用者意圖可以清除的破壞性操作

128* `autoMode.allow`:軟阻止規則的例外

129 

130每個都是散文描述的陣列,讀取為自然語言規則。對於在分類器之前執行的工具模式型硬阻止,請使用 [`permissions.deny`](/zh-TW/permissions)。

109 131 

110在分類器內,優先順序分為四個層級:132在分類器內,優先順序分為四個層級:

111 133 


116 138 

117一般請求不算作明確意圖。要求 Claude「清理儲存庫」不授權強制推送,但要求 Claude「強制推送此分支」則授權。139一般請求不算作明確意圖。要求 Claude「清理儲存庫」不授權強制推送,但要求 Claude「強制推送此分支」則授權。

118 140 

119要放寬,當分類器重複標記預設例外不涵蓋的常規模式時,新增到 `allow`。要加強,對於預設值遺漏的特定於您環境的破壞性風險,新增到 `soft_deny`,或對於必須永遠不能跨越的安全邊界,新增到 `hard_deny`。要保留內建規則同時新增您自己的規則,請在陣列中包含字面字串 `"$defaults"`。預設規則會在該位置拼接,因此您的自訂規則可以在它們之前或之後,並且當內建清單在版本發佈中變更時,您繼續繼承更新。141要放寬,當分類器重複標記預設例外不涵蓋的常規模式時,新增到 `allow`。要加強,對於預設值遺漏的特定於您環境的破壞性風險,新增到 `soft_deny`,或對於必須永遠不能跨越的安全邊界,新增到 `hard_deny`。

142 

143要保留內建規則同時新增您自己的規則,請在陣列中包含字面字串 `"$defaults"`。預設規則會在該位置拼接,因此您的自訂規則可以在它們之前或之後,並且當內建清單在版本發佈中變更時,您繼續繼承更新。

144 

145下列範例在所有四個清單中保留預設值,並將組織特定的規則新增到每個清單。

120 146 

121```json theme={null}147```json theme={null}

122{148{


144```170```

145 171 

146<Danger>172<Danger>

147 設定 `environment`、`allow`、`soft_deny` 或 `hard_deny` 中的任何一個而不包含 `"$defaults"` 會取代該部分的整個預設清單。沒有 `"$defaults"` 的 `soft_deny` 陣列會丟棄每個內建軟阻止規則,包括強制推送、`curl | bash` 和生產部署。沒有 `"$defaults"` 的 `hard_deny` 陣列會丟棄內建資料外洩和安全檢查繞過規則173 設定 `environment`、`allow`、`soft_deny` 或 `hard_deny` 中的任何一個而不包含 `"$defaults"` 會取代該部分的整個預設清單。沒有 `"$defaults"` 的 `soft_deny` 陣列會丟棄每個內建軟阻止規則,包括強制推送、`curl | bash` 和生產部署。沒有 `"$defaults"` 的 `hard_deny` 陣列會丟棄內建資料外洩和自動模式繞過規則

148</Danger>174</Danger>

149 175 

150每個部分獨立評估,因此單獨設定 `environment` 會保持預設 `allow`、`soft_deny` 和 `hard_deny` 清單完整。只在您打算完全掌控清單時才省略 `"$defaults"`。要安全地執行此操作,執行 `claude auto-mode defaults` 列印內建規則,將它們複製到您的設定檔案中,然後根據您自己的管道和風險容限檢查每個規則。176每個部分獨立評估,因此單獨設定 `environment` 會保持預設 `allow`、`soft_deny` 和 `hard_deny` 清單完整。

177 

178只在您打算完全掌控清單時才省略 `"$defaults"`。要安全地執行此操作,執行 `claude auto-mode defaults` 列印內建規則,將它們複製到您的設定檔案中,然後根據您自己的管道和風險容限檢查每個規則。

179 

180<h2 id="route-all-shell-commands-through-the-classifier">

181 透過分類器路由所有 shell 命令

182</h2>

183 

184根據預設,狹隘的 Bash 和 PowerShell 允許規則,例如 `Bash(npm test)` 會進入自動模式並在分類器執行之前解決。自動模式只暫停授予任意程式碼執行的廣泛規則,例如 `Bash(*)` 或萬用字元解釋器。這意味著狹隘的規則仍然可以讓破壞性引數通過而不讓分類器看到它,例如規則的前綴未預期的指令碼路徑或旗標。

185 

186將 `autoMode.classifyAllShell` 設定為 `true` 以在自動模式處於活動狀態時暫停每個 Bash 和 PowerShell 允許規則,以便分類器評估每個 shell 命令,無論您的允許清單如何。

187 

188```json theme={null}

189{

190 "autoMode": {

191 "classifyAllShell": true

192 }

193}

194```

195 

196這用延遲換取涵蓋範圍:允許規則會立即批准的命令現在等待分類器決定,每個 shell 命令計為一個分類器呼叫。

197 

198該設定僅在自動模式處於活動狀態時適用,您的允許規則在其他權限模式中正常運作。

199 

200<Note>

201 `autoMode.classifyAllShell` 需要 Claude Code v2.1.193 或更新版本。較早的版本忽略該鍵並繼續將狹隘的 shell 允許規則進入自動模式。

202</Note>

151 203 

152<h2 id="inspect-the-defaults-and-your-effective-config">204<h2 id="inspect-the-defaults-and-your-effective-config">

153 檢查預設值和您的有效設定205 檢查預設值和您的有效設定


173claude auto-mode critique225claude auto-mode critique

174```226```

175 227 

176在儲存設定後執行 `claude auto-mode config` 以確認有效規則是您期望的,並且 `"$defaults"` 已展開到位。如果您已編寫自訂規則,`claude auto-mode critique` 會檢查它們並標記模糊、冗餘或可能導致誤報的項目。如果您需要移除或重寫內建規則而不是在其旁邊新增,請將 `claude auto-mode defaults` 的輸出儲存到檔案,編輯清單,並將結果貼到您的設定檔案中以取代 `"$defaults"`。228在儲存設定後執行 `claude auto-mode config` 以確認有效規則是您期望的,並且 `"$defaults"` 已展開到位。如果您已編寫自訂規則,`claude auto-mode critique` 會檢查它們並標記模糊、冗餘或可能導致誤報的項目。

229 

230如果您需要移除或重寫內建規則而不是在其旁邊新增,請將 `claude auto-mode defaults` 的輸出儲存到檔案,編輯清單,並將結果貼到您的設定檔案中以取代 `"$defaults"`。

177 231 

178<h2 id="review-denials">232<h2 id="review-denials">

179 檢查拒絕233 檢查拒絕


181 235 

182當自動模式拒絕工具呼叫時,拒絕會記錄在 `/permissions` 下的「最近拒絕」標籤中。在拒絕的操作上按 `r` 將其標記為重試:當您退出對話框時,Claude Code 會傳送一條訊息告訴模型它可能重試該工具呼叫並繼續對話。236當自動模式拒絕工具呼叫時,拒絕會記錄在 `/permissions` 下的「最近拒絕」標籤中。在拒絕的操作上按 `r` 將其標記為重試:當您退出對話框時,Claude Code 會傳送一條訊息告訴模型它可能重試該工具呼叫並繼續對話。

183 237 

238在 Claude Code v2.1.193 及更新版本中,分類器對每個拒絕的原因會出現在文字記錄中被阻止的工具呼叫旁邊、拒絕通知中以及「最近拒絕」標籤上的每個項目下。使用原因來決定修復是 `environment` 項目、`allow` 例外還是在您的下一條訊息中使用明確意圖重試。

239 

184對同一目的地的重複拒絕通常意味著分類器缺少上下文。將該目的地新增到 `autoMode.environment`,然後執行 `claude auto-mode config` 確認它生效。240對同一目的地的重複拒絕通常意味著分類器缺少上下文。將該目的地新增到 `autoMode.environment`,然後執行 `claude auto-mode config` 確認它生效。

185 241 

186要以程式設計方式對拒絕做出反應,請使用 [`PermissionDenied` hook](/zh-TW/hooks#permissiondenied)。242要以程式設計方式對拒絕做出反應,請使用 [`PermissionDenied` hook](/zh-TW/hooks#permissiondenied)。

claude-apps-gateway-config.md +746 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# Claude 應用程式閘道設定

6 

7> 每個 gateway.yaml 選項的參考資料:監聽器和 TLS、OIDC、工作階段、Postgres 存放區、Bedrock/Agent Platform/Foundry 上游、模型路由、受管原則和遙測。

8 

9Claude 應用程式閘道部署由一個 YAML 檔案設定,按慣例稱為 `gateway.yaml`。該檔案定義閘道執行的所有操作:它在哪裡監聽、開發人員如何登入、推論去往何處,以及哪些原則和遙測適用。本頁是該檔案中每個選項的參考資料。若要撰寫您的第一個,請從[快速入門](/zh-TW/claude-apps-gateway#quickstart)開始,它會建立最小的工作設定並執行它;一旦您有了滿意的設定,[部署指南](/zh-TW/claude-apps-gateway-deploy)涵蓋將其容器化並在 Kubernetes、Cloud Run 或您自己的平台上託管。

10 

11閘道在啟動時使用 `claude gateway --config /path/to/gateway.yaml` 讀取該檔案一次。每個選項都在啟動時根據架構進行驗證,因此格式不正確的設定會在啟動時失敗,並出現欄位級錯誤,而不是在首次使用時失敗。

12 

13本頁末尾的[完整範例](#complete-example)涵蓋每個部分。

14 

15<h2 id="file-structure">

16 檔案結構

17</h2>

18 

19五個部分是[必需的](#required-sections)。所有其他部分都是[選用的](#optional-sections),省略的部分採用其預設值。未知的鍵會導致啟動失敗,因此打字錯誤會顯示為命名錯誤,而不是被無聲地忽略的設定。

20 

21**必需部分:**

22 

23* [`listen`](#listen):繫結位址、公開 URL、TLS 終止

24* [`oidc`](#oidc):您的身分識別提供者 (IdP),包括簽發者、用戶端、宣告對應和誰可以登入

25* [`session`](#session):閘道鑄造的持有人令牌,包括祕密和生命週期

26* [`store`](#store):PostgreSQL,用於裝置授權和速率限制計數器

27* [`upstreams`](#upstreams):推論去往何處,無論是 Anthropic、Bedrock、Agent Platform 還是 Foundry

28 

29**選用部分:**

30 

31* [`admin`](#admin):Admin API 驗證和支出限制的保留

32* [`enforcement`](#enforcement):支出限制失敗開放或失敗關閉行為

33* [`models`](#models) 和 `auto_include_builtin_models`:管理員策劃的模型清單和每個上游 ID

34* [`managed`](#managed):按 IdP 群組的受管設定原則

35* [`telemetry`](#telemetry):OTLP 轉發到您的可觀測性堆疊

36* [`access_control`、`limits`、`timeouts`、`rate_limits`](#http-tuning):IP 允許/拒絕、請求大小上限、上游首位元組時間和每 IP 登入限制

37 

38<h2 id="secret-expansion">

39 祕密擴展

40</h2>

41 

42不要直接在 `gateway.yaml` 中寫入祕密,例如 `client_secret`、`jwt_secret` 或 `postgres_url`。使用下列其中一種形式參考它們,閘道會在啟動時從環境變數或檔案解析該值:

43 

44| 形式 | 解析為 | 用於 |

45| --------------- | ---------------------- | -------------------------------------- |

46| `${VAR}` | 環境變數 `VAR`。如果未定義,啟動失敗。 | 容器環境變數、透過環境注入的 AWS Secrets Manager |

47| `${file:/path}` | 檔案內容,已修剪 | Kubernetes Secret 卷掛載、Vault Agent、SOPS |

48 

49<h2 id="required-sections">

50 必需部分

51</h2>

52 

53<h3 id="listen">

54 `listen`

55</h3>

56 

57`listen` 區塊控制閘道服務的位置:繫結位址和連接埠、外部可見的來源,以及選用的 TLS 終止。

58 

59| 欄位 | 必需 | 說明 |

60| ---------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

61| `host` | 否 | 繫結位址。預設 `0.0.0.0`。 |

62| `port` | 否 | 繫結連接埠。預設 `8080`。 |

63| `public_url` | 在代理後面 | 外部可見的 `https://` 來源,用於建立 IdP `redirect_uri` 和發現中繼資料。在任何 TLS 終止代理(例如 ALB、Ingress 或 Cloud Run)後面時為必需,因為閘道在建立自己的來源時不信任 `X-Forwarded-*` 標頭;它們是用戶端可欺騙的。下面的 `trusted_proxies` 僅控制用戶端 IP 解析。啟用[遙測](#telemetry)時也是必需的,因為閘道從此 URL 建立它推送給用戶端的 OTLP 端點。 |

64| `tls.cert` / `tls.key` | 否 | 如果閘道自己終止 TLS,則為 PEM 路徑 |

65| `trusted_proxies` | 否 | 閘道前面的負載平衡器的 CIDR 或 IP。設定時,閘道僅信任來自這些對等方的 `X-Forwarded-For`,並記錄真實用戶端 IP 以進行每 IP 速率限制和稽核。等同於 nginx `set_real_ip_from`。 |

66 

67<h3 id="oidc">

68 `oidc`

69</h3>

70 

71OpenID Connect (OIDC) 是閘道與您的身分識別提供者一起使用的 SSO 協定;請參閱[身分識別提供者設定](/zh-TW/claude-apps-gateway-deploy#identity-provider-setup)以了解在 IdP 端註冊的內容。`oidc` 區塊將閘道連接到您的身分識別提供者,並決定誰可以登入。它命名簽發者和 OAuth 用戶端、對應攜帶電子郵件和群組的宣告,並按電子郵件網域或群組限制登入。

72 

73| 欄位 | 必需 | 說明 |

74| ------------------------------- | -- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

75| `issuer` | 是 | OIDC 發現基礎。必須在 `/.well-known/openid-configuration` 提供發現。在生產環境中使用 HTTPS;閘道接受 `http://` 簽發者。環回簽發者(例如 `http://localhost:8081`)會被[SSRF 防護](/zh-TW/claude-apps-gateway-deploy#threat-model-summary)拒絕,除非在閘道的環境中設定了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |

76| `client_id` / `client_secret` | 是 | 來自您的 OAuth 用戶端註冊 |

77| `allowed_email_domains` | 否 | 拒絕 `email` 宣告不在這些網域之一中的 id\_token,不區分大小寫。針對多租戶 IdP 誤設定的深度防禦。獨立於此設定,`email_verified` 宣告明確為 `false` 的 id\_token 始終被拒絕。 |

78| `allowed_groups` | 否 | 限制登入為這些 IdP 群組的成員,與 `groups_claim` 相符。允許電子郵件網域中但不在這些群組中的使用者被拒絕。需要 IdP 發出群組宣告。 |

79| `groups_claim` | 否 | 哪個 id\_token 宣告攜帶群組成員資格。預設 `groups`。Microsoft Entra 在 `roles` 下發出應用程式角色。接受平面鍵或 RFC 6901 JSON 指標,例如 `/resource_access/gateway/roles` 用於嵌套宣告。 |

80| `google_groups` | 否 | 透過 Google Workspace Admin SDK Directory API 查詢已登入使用者的群組,因為 Google 的 id\_token 不攜帶群組宣告。將 `service_account_json_path` 設定為具有 `https://www.googleapis.com/auth/admin.directory.group.readonly` 範圍的網域範圍委派的服務帳戶金鑰檔案,並將 `admin_email` 設定為服務帳戶模擬的 Workspace 管理員;Directory API 需要真實的管理員主體。每個使用者的群組電子郵件地址成為其群組宣告,因此 `allowed_groups` 和 `managed.policies.match.groups` 與群組電子郵件相符。 |

81| `email_claim` | 否 | 哪個 id\_token 宣告攜帶使用者的電子郵件。預設 `email`。某些 IdP(例如 ADFS 和 Entra B2C)改為發出 `upn` 或 `preferred_username`。接受平面鍵、JSON 指標或後備鍵清單,其中使用第一個存在的鍵。 |

82| `scopes` | 否 | 閘道請求的 OIDC 範圍的完整覆蓋。預設 `[openid, profile, email, offline_access]`。當您的 IdP 拒絕它不識別的範圍或需要自訂範圍來發出群組或電子郵件時設定。必須包含 `openid`。刪除 `offline_access` 會停用重新整理令牌,因此開發人員每 `session.ttl_hours` 重新執行瀏覽器登入。請參閱[身分識別提供者設定](/zh-TW/claude-apps-gateway-deploy#identity-provider-setup)以了解每個 IdP 範圍配方,例如 Google 的重新整理令牌流程。 |

83| `extra_auth_params` | 否 | 附加到 IdP 授權請求的額外查詢參數,逐字。這是 IdP 特定行為的覆蓋機制,例如 Google 重新整理令牌的 `access_type: offline`、某些 Entra 租戶的 `domain_hint` 或逐步提升流程的 `acr_values`。無法覆蓋閘道管理的協定參數:`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode` 和 `client_id`。 |

84| `userinfo_fallback` | 否 | 當 id\_token 省略電子郵件或群組時,從 `/userinfo` 擷取它們。Keycloak 輕量級存取令牌、Okta 組織伺服器和 ADFS 最小令牌需要。id\_token 保持權威;userinfo 僅填補空白。預設 `false`。 |

85| `use_pkce` | 否 | 在授權請求上傳送 PKCE (S256) 挑戰。預設 `true`。僅當您的 IdP 為此機密用戶端拒絕 PKCE 時設定 `false`。 |

86| `clock_skew_seconds` | 否 | 驗證 id\_token 時間宣告時容許時鐘漂移。預設 `0`,這是嚴格的。如果您在登入後立即看到「令牌已過期/尚未有效」錯誤,請提高以應對主機/IdP 時鐘偏差。 |

87| `token_endpoint_auth_method` | 否 | 覆蓋令牌端點驗證方法。接受 `client_secret_basic` 或 `client_secret_post`。預設自動協商。 |

88| `id_token_signed_response_alg` | 否 | 預期的 id\_token 簽署演算法。預設 `RS256`。為使用 ES256、PS256 或 EdDSA 簽署的 IdP 設定。 |

89| `additional_authorized_parties` | 否 | 除了 `client_id` 之外要接受的額外 `azp` 值,用於 Keycloak 代理和令牌交換流程 |

90| `discovery_url` | 否 | 從此 URL 擷取發現文件,而不是從 `issuer` 衍生,用於代理後面重寫簽發者主機的 IdP。路徑必須包含 `/.well-known/`。 |

91| `form_action_origins` | 否 | `/device` 頁面的 `Content-Security-Policy: form-action` 指令的其他來源。閘道已允許 `'self'` 和發現的 `authorization_endpoint` 來源,但 Chrome 對整個重新導向鏈強制執行 `form-action`。如果您的 IdP 透過第二個主機重新導向,例如 Azure AD 聯合到 ADFS、中樞輪輻 Okta 或公司 SSO 攔截器,列出授權請求可能重新導向的每個來源。 |

92| `ca_cert_pem` | 否 | PEM CA 憑證,用於替換 IdP 請求的系統信任存放區。用於公司 PKI 後面的 Keycloak 或 Dex。 |

93 

94<h3 id="session">

95 `session`

96</h3>

97 

98`session` 區塊塑造閘道在登入後鑄造的持有人令牌:簽署它們的祕密和它們的生命週期。

99 

100| 欄位 | 必需 | 說明 |

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

102| `jwt_secret` | 是 | 至少 32 位元組的熵,例如來自 `openssl rand -base64 32`。簽署閘道的 HS256 持有人令牌。接受單一字串或用於輪換的陣列:索引 0 簽署,所有項目驗證。若要輪換,前置新祕密,等待 `ttl_hours`,然後刪除舊祕密。 |

103| `ttl_hours` | 否 | 閘道持有人令牌生命週期。預設 `1`。當 IdP 發出重新整理令牌時,CLI 在過期前無聲地重新整理。較短的生命週期會更快地取消佈建;較長的生命週期會減少 IdP 往返次數。如果您的 IdP 因為 `offline_access` 不可用而無法發出重新整理令牌,則沒有無聲重新整理,因此將其提高到 `8` 或 `12` 以避免每小時將開發人員送回瀏覽器登入。 |

104 

105<h3 id="store">

106 `store`

107</h3>

108 

109`store` 區塊將閘道指向其 PostgreSQL 資料庫,該資料庫保存裝置授權和速率限制計數器。

110 

111| 欄位 | 必需 | 說明 |

112| ----------------- | -- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

113| `postgres_url` | 是 | `postgres://` 或 `postgresql://` URL。必需:裝置授權會合點,瀏覽器回呼寫入且輪詢 CLI 讀取,需要跨副本狀態。閘道在啟動時執行自己的架構遷移,因此角色需要在目標架構上 `CREATE TABLE`。如果您的安全原則禁止應用程式角色的 DDL,請使用管理員角色執行遷移,最初和每當新版本發出遷移時,並授予應用程式角色對閘道表的 `SELECT, INSERT, UPDATE, DELETE`。請參閱[升級](/zh-TW/claude-apps-gateway-deploy#upgrades)和 [Postgres](/zh-TW/claude-apps-gateway-deploy#postgres)。 |

114| `username` | 否 | 覆蓋 `postgres_url` 中的使用者 |

115| `password` | 否 | 資料庫認證。在此設定它而不是在 `postgres_url` 中,以便認證保持在 URL 之外。接受任何字元並優先於 URL 認證。 |

116| `max_connections` | 否 | 每個副本的 Postgres 連線池大小。預設 `5`,這是保守的且對共享資料庫友善。啟用[支出限制](#admin)後,熱路徑每個推論請求執行幾個操作,因此在負載下為專用資料庫提高它,並保持副本 × 此值低於資料庫的 `max_connections`。 |

117 

118對於本地開發,將 `postgres_url` 指向一次性 Postgres 容器,例如 `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。

119 

120<h3 id="upstreams">

121 `upstreams`

122</h3>

123 

124`upstreams` 是一個有序清單。閘道將推論轉發到解析所請求模型的第一個上游。在 `5xx`、`429` 或逾時時,它會故障轉移到下一個;其他 `4xx` 不會,因為這些錯誤可歸因於請求而不是上游。相同提供者的多個上游必須設定不同的 `name:`。

125 

126Bedrock、Agent Platform 和 Foundry 用戶端在啟動時建立一次,其 SDK 在內部重新整理認證,因此輪換雲認證不需要重新啟動。靜態 Anthropic API 金鑰和持有人在啟動時讀取;請參閱 [Anthropic API](#anthropic-api)。

127 

128<h4 id="anthropic-api">

129 Anthropic API

130</h4>

131 

132最小的 Anthropic 上游是來自 [Claude Console](https://platform.claude.com) 的 API 金鑰:

133 

134```yaml theme={null}

135upstreams:

136 - provider: anthropic

137 auth:

138 api_key: ${ANTHROPIC_API_KEY}

139 # 或 OAuth 持有人(例如工作負載身分識別聯合交換的令牌):

140 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}

141 # base_url: https://api.anthropic.com # 預設;覆蓋以使用轉發代理

142```

143 

144兩種認證形式在它們傳送的標頭中有所不同:

145 

146* **`api_key`**:傳送 `x-api-key`。在 Claude Console 中輪換它並更新環境變數。

147* **`oauth_token`**:傳送 `Authorization: Bearer`。當您的組織發出短期令牌而不是長期 API 金鑰時使用持有人形式。持有人在啟動時讀取一次,因此透過重新掛載祕密和重新啟動來重新整理。

148 

149除了靜態金鑰或持有人,您可以使用工作負載身分識別聯合。按照[工作負載身分識別聯合指南](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)建立聯合規則,然後將您的工作負載的 OIDC JWT 掛載為檔案,例如 Kubernetes 投影服務帳戶令牌或 CI 平台的 id-token。閘道將 JWT 交換為短期持有人並自動重新整理它。令牌檔案在每次交換時重新讀取,因此輪換的投影令牌無需重新啟動即可被拾取。

150 

151```yaml theme={null}

152upstreams:

153 - provider: anthropic

154 auth:

155 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}

156 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

157 identity_token_file: /var/run/secrets/anthropic/id-token

158 # workspace_id: wrkspc_... # 如果規則涵蓋 >1 個工作區,則為必需

159 # service_account_id: svac_... # 選用的預期目標檢查

160```

161 

162<h4 id="amazon-bedrock">

163 Amazon Bedrock

164</h4>

165 

166對於閘道替換或前置的用戶端 Bedrock 部署,請參閱 [Claude Code on Amazon Bedrock](/zh-TW/amazon-bedrock)。閘道端上游:

167 

168```yaml theme={null}

169upstreams:

170 - provider: bedrock

171 region: us-east-1

172 auth: {} # 首選:AWS 預設認證鏈

173 # 或明確認證:

174 # auth:

175 # aws_access_key_id: ${AWS_AKID}

176 # aws_secret_access_key: ${AWS_SK}

177 # aws_session_token: ${AWS_ST}

178 # 或 Bedrock API 持有人令牌:

179 # auth:

180 # aws_bearer_token: ${AWS_BEARER_TOKEN}

181 # 覆蓋 bedrock-runtime 端點以進行 FIPS 或 VPC 端點部署:

182 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

183```

184 

185空的 `auth` 區塊使用 AWS SDK 的預設認證鏈:環境變數、`~/.aws/credentials`、ECS 任務角色、EC2 執行個體中繼資料或 EKS 上的 IRSA。在生產環境中,給予閘道 Pod 一個 IAM 角色,而不是在容器映像中嵌入靜態金鑰。

186 

187| 設定 | 方式 |

188| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

189| IAM 權限 | 授予閘道的主體 `bedrock:InvokeModel` 和 `bedrock:InvokeModelWithResponseStream` 在推論設定檔 ARN 和基礎基礎模型 ARN 上。對於美國地區的內建目錄:`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` 和 `arn:aws:bedrock:*::foundation-model/anthropic.*`。 |

190| 模型存取 | 在 Bedrock 主控台中,按地區,請求並啟用您想要的 Claude 模型的模型存取。跨地區推論設定檔 (`us.anthropic.*`) 需要在設定檔跨越的每個地區中進行模型存取。 |

191| EKS (IRSA) | 建立具有上述原則和針對您叢集的 OIDC 提供者的信任原則的 IAM 角色,範圍限於閘道的服務帳戶。使用 `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` 註釋服務帳戶。`auth: {}` 會拾取它。 |

192| ECS / EC2 | 將 IAM 角色附加到任務定義或執行個體設定檔。`auth: {}` 會拾取它。 |

193| 其他任何地方 | 透過 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 環境變數傳遞認證,或在 `auth:` 中使用 `${VAR}` 擴展明確設定它們 |

194| 地區 | `region:` 是 API 端點地區。跨地區推論設定檔無論您選擇哪一個,都會跨地理位置 (US、EU、APAC) 路由。對於非美國地區或佈建輸送量 ARN,新增具有正確每上游 ID 的 [`models:`](#models) 區塊。 |

195 

196<h4 id="google-cloud-agent-platform">

197 Google Cloud Agent Platform

198</h4>

199 

200對於等效的用戶端設定,請參閱 [Claude Code on Google Cloud](/zh-TW/google-vertex-ai)。閘道端上游:

201 

202```yaml theme={null}

203upstreams:

204 - provider: vertex

205 region: us-east5

206 project_id: example-prod

207 auth: {} # 首選:應用程式預設認證

208 # 或服務帳戶金鑰檔案:

209 # auth: { service_account_json: /secrets/sa.json }

210 # 覆蓋 aiplatform 端點以進行私人服務連線:

211 # base_url: https://us-east5-aiplatform.p.googleapis.com

212```

213 

214空的 `auth` 區塊使用應用程式預設認證:`GOOGLE_APPLICATION_CREDENTIALS`、GCE 中繼資料或 GKE 工作負載身分識別。支援服務帳戶 JSON 金鑰檔案但不建議;使用工作負載身分識別或將服務帳戶附加到 GCE 或 Cloud Run 執行個體。

215 

216設定 `region: global` 以使用 [Agent Platform 的全域端點](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)而不是區域端點。Google 然後將每個請求路由到可用的地區,因此您不追蹤每個地區的模型可用性。設定特定地區會將每個請求固定到它。

217 

218| 設定 | 方式 |

219| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |

220| IAM 權限 | 授予閘道的服務帳戶在專案上的 `roles/aiplatform.user`,或具有 `aiplatform.endpoints.predict` 的自訂角色。啟用 Agent Platform API (`aiplatform.googleapis.com`)。 |

221| 模型存取 | 在 Model Garden 中,為您的專案啟用 Claude 模型。它們發佈到特定地區;檢查模型卡以了解支援的地區。 |

222| GKE (工作負載身分識別) | 將 GCP 服務帳戶繫結到閘道的 Kubernetes 服務帳戶,並使用 `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` 註釋 KSA。`auth: {}` 會拾取它。 |

223| Cloud Run / GCE | 將服務的服務帳戶設定為具有 `roles/aiplatform.user` 的帳戶。`auth: {}` 會拾取它。 |

224| 其他任何地方 | `auth: { service_account_json: /secrets/sa.json }`,JSON 金鑰檔案的路徑,掛載為祕密。該欄位採用檔案路徑,而不是金鑰內容,因此不涉及 `${file:…}` 擴展。 |

225 

226<h4 id="microsoft-foundry">

227 Microsoft Foundry

228</h4>

229 

230對於用戶端 Foundry 部署,請參閱 [Claude Code on Microsoft Foundry](/zh-TW/microsoft-foundry)。閘道端上游:

231 

232```yaml theme={null}

233upstreams:

234 - provider: foundry

235 resource: example-foundry # https://example-foundry.services.ai.azure.com

236 auth: { use_azure_ad: true } # 首選:DefaultAzureCredential / 受管身分識別

237 # 或 API 金鑰:

238 # auth:

239 # api_key: ${FOUNDRY_API_KEY}

240```

241 

242`use_azure_ad: true` 透過 `DefaultAzureCredential` 解析:AKS、ACI 或 App Service 上的受管身分識別;Azure CLI;或環境認證。API 金鑰有效但是專案範圍的,不會自動輪換。Foundry 的端點衍生自 `resource:`;設定選用的 `base_url` 以覆蓋它以進行主權雲,例如 Azure Government。

243 

244| 設定 | 方式 |

245| ----------------- | ---------------------------------------------------------------------------------------------------- |

246| RBAC | 授予閘道的身分識別在 Foundry 資源上的 `Azure AI User` 或 `Cognitive Services User` |

247| 部署 | Foundry 使用管理員選擇的部署名稱,而不是規範模型 ID。新增 [`models:`](#models) 區塊,將每個規範 ID 對應到您的部署名稱。 |

248| AKS (工作負載身分識別) | 將使用者指派的受管身分識別與叢集的 OIDC 簽發者聯合,並將其繫結到閘道的服務帳戶。`use_azure_ad: true` 透過 `WorkloadIdentityCredential` 拾取它。 |

249| ACI / App Service | 在資源上啟用系統指派或使用者指派的受管身分識別。`use_azure_ad: true` 會拾取它。 |

250| 其他任何地方 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。在 `{ }` 內引用 `${…}`。 |

251 

252<h4 id="multiple-upstreams">

253 多個上游

254</h4>

255 

256相同的提供者可以出現多次,具有不同的 `name:`。這涵蓋不同的地區、透過不同認證鏈的不同帳戶、佈建輸送量與隨需,以及跨提供者故障轉移。

257 

258閘道按順序嘗試上游。`5xx`、`429`、逾時和遺漏端點 (`501`) 故障轉移;其他 `4xx` 不會。`429` 是每個上游容量,因此佈建輸送量 (PT) 耗盡會故障轉移到隨需。無法解析所請求模型的上游會被跳過,無需網路往返。

259 

260此範例首先路由佈建輸送量 Bedrock 配額,溢出到隨需和第二個帳戶,最後故障轉移到 Anthropic API:

261 

262```yaml theme={null}

263upstreams:

264 # 主要:您主區域中的佈建輸送量。

265 - name: bedrock-pt

266 provider: bedrock

267 region: us-east-1

268 auth: {}

269 # 溢出:隨需跨地區。

270 - name: bedrock-od

271 provider: bedrock

272 region: us-west-2

273 auth: {}

274 # 不同帳戶:透過假設角色認證的單獨 Bedrock 配額。

275 - name: bedrock-acct2

276 provider: bedrock

277 region: us-east-1

278 auth:

279 aws_access_key_id: ${ACCT2_AKID}

280 aws_secret_access_key: ${ACCT2_SK}

281 # 最後手段:直接 Anthropic API。

282 - name: anthropic-fallback

283 provider: anthropic

284 auth:

285 api_key: ${ANTHROPIC_API_KEY}

286 

287# 每個上游模型 ID 以上游的 `name:` 為鍵;沒有 `name:` 的上游預設為其提供者字串(例如 `bedrock`)。任何未為模型列出的上游都會被跳過,這是您將模型路由到佈建輸送量的方式,而所有其他模型保持隨需。

288models:

289 - id: claude-opus-4-8

290 label: Claude Opus 4.8

291 upstream_model:

292 bedrock-pt: arn:aws:bedrock:us-east-1:111111111111:provisioned-model/abcdef

293 bedrock-od: us.anthropic.claude-opus-4-8

294 bedrock-acct2: us.anthropic.claude-opus-4-8

295 anthropic-fallback: claude-opus-4-8

296```

297 

298| 槓桿 | 方式 |

299| ------------- | ----------------------------------------------------------------------------------------------------------------------------- |

300| 不同地區 | 每個地區一個 Bedrock 上游,每個都有自己的 `region:`。使用 [`auto_include_builtin_models: true`](#models),跨地區推論設定檔會自動路由;對於地區固定部署,使用 `models:` 區塊。 |

301| 不同帳戶 | 每個帳戶一個 Bedrock 上游,每個在 `auth:` 中都有自己的認證。預設鏈 (`auth: {}`) 使用 Pod 的身分識別;對於第二個帳戶,設定明確認證或持有人令牌。 |

302| 佈建輸送量 | 將模型對應到該上游名稱的 `models:` 中的佈建輸送量 ARN。其他上游保持隨需 ID,因此 PT 容量在故障轉移前耗盡。 |

303| VPC / FIPS 端點 | 在上游上設定 `base_url:` 為您的 VPC 端點或 FIPS 端點 URL |

304| 模型範圍路由 | 從模型的 `upstream_model:` 對應中省略上游,該上游會被跳過以進行該模型。例如,將 Opus 路由到佈建輸送量,將 Sonnet 和 Haiku 路由到隨需。 |

305 

306在雲提供者之間或直接 Anthropic API 之間故障轉移會改變哪些協議、地理位置和其他條款管理請求。

307 

308CLI 對閘道應用相同的功能閘控,無論哪個上游服務給定請求,因此故障轉移不會傳送上游會拒絕的正文欄位。

309 

310<h2 id="optional-sections">

311 選用部分

312</h2>

313 

314<h3 id="admin">

315 `admin`

316</h3>

317 

318選用。啟用 `/v1/organizations/spend_limits`,它鏡像 Anthropic 的公開 Admin API,以及 `/v1/messages` 上的每個開發人員支出強制執行。請參閱[支出限制](/zh-TW/claude-apps-gateway-spend-limits)以了解如何設定和強制執行上限;本部分涵蓋打開功能和調整它的 `gateway.yaml` 鍵。

319 

320```yaml theme={null}

321admin:

322 # 管理員端點的命名靜態 API 金鑰,作為 x-api-key 傳送。

323 # id 在稽核日誌中顯示為 admin-key:<id>,因此每個金鑰都是

324 # 可歸因的。用於輪換的陣列:新增新金鑰、滾動用戶端、

325 # 移除舊金鑰。

326 write_keys:

327 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

328 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }

329 read_keys:

330 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

331 # 透過正常閘道 JWT(無 API 金鑰)授予完整管理員的 IdP 群組。

332 admin_groups: [platform-finops]

333 blocked_message: request an increase at https://go.example.com/claude-limits

334```

335 

336| 欄位 | 必需 | 說明 |

337| ------------------------- | -- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

338| `write_keys` | 否 | `{id, key}` 的陣列。與其中一個相符的 `x-api-key` 可以列出、設定和刪除支出限制。金鑰值必須至少 32 個字元;`id` 必須在 `read_keys` 和 `write_keys` 中唯一。 |

339| `read_keys` | 否 | `{id, key}` 的陣列。唯讀:每個 `GET` 端點,包括列出上限、按 ID 擷取一個,以及讀取 [`/effective`](/zh-TW/claude-apps-gateway-spend-limits#%2Feffective) 和 [`/audit`](/zh-TW/claude-apps-gateway-spend-limits#%2Faudit)。 |

340| `admin_groups` | 否 | IdP 群組名稱。其 `groups` 宣告包含其中一個的閘道 JWT 具有完整管理員存取權,讀取和寫入,並稽核為 `oidc:<sub>`。將此用於人類管理員;將 API 金鑰用於機器。 |

341| `blocked_message` | 否 | 逐字附加到被阻止的開發人員看到的 `429 billing_error`。寫入整個指令,例如 URL 或 Slack 頻道。未設定,錯誤是 `spend limit reached`。 |

342| `audit_retention_days` | 否 | 預設 `365`。較舊的 `admin_audit` 列會被掃除。 |

343| `spend_retention_months` | 否 | 預設 `13`。早於此的 `spend` 計數器列會被掃除。預設值保留完整年份加當前部分月份以進行年度比較報告。 |

344| `identity_retention_days` | 否 | 預設 `90`。`principal_emails` 列的最後一次看到 TTL,其中保存每個開發人員的電子郵件、顯示名稱和群組 (PII)。故意比支出保留更短,因此已取消佈建的身分識別會在其匿名支出計數器保留時老化。 |

345| `group_limit_mode` | 否 | `min`(預設)或 `max`。當開發人員在具有上限的多個群組中時,`min` 強制執行最限制的,`max` 強制執行最寬鬆的。由強制執行和 `/effective` 使用。 |

346 

347<h3 id="enforcement">

348 `enforcement`

349</h3>

350 

351`enforcement` 區塊控制當存放區不可用時支出限制檢查的行為。

352 

353| 欄位 | 必需 | 說明 |

354| ---------------------- | -- | ------------------------------------------------------------------------------------------------------------------------- |

355| `fail_closed_on_error` | 否 | 預設 `false`。支出強制執行在 Postgres 中斷時失敗開放,因此推論保持運行。設定 `true` 以失敗關閉:超過上限的開發人員被阻止,但如果存放區無法到達,每個人都被阻止。沒有 [`admin:`](#admin) 區塊時無效。 |

356 

357<h3 id="models">

358 `models`

359</h3>

360 

361`models` 區塊是選用的管理員策劃模型清單,在 `/v1/models` 提供並用於轉換每個上游的模型 ID。對於非美國 Bedrock 地區、Bedrock 佈建輸送量 ARN 和 Foundry 部署名稱是必需的。

362 

363```yaml theme={null}

364auto_include_builtin_models: true # false:僅公開下面的清單

365models:

366 - id: claude-opus-4-8

367 label: Claude Opus 4.8

368 # description: 在表面它的用戶端中顯示的選用文字

369 upstream_model:

370 anthropic: claude-opus-4-8

371 bedrock: us.anthropic.claude-opus-4-8 # 或推論設定檔 ARN

372 foundry: your-opus-deployment-name

373```

374 

375<h3 id="managed">

376 `managed`

377</h3>

378 

379`managed` 區塊定義基於 IdP 群組或電子郵件網域的角色型存取原則。原則按順序評估;選擇第一個相符項,然後合併到下面描述的 `match: {}` 全部捕捉基礎上。它們按使用者在 `GET /managed/settings` 提供,具有 ETag/304 快取。

380 

381```yaml theme={null}

382managed:

383 policies:

384 # 特定群組優先。

385 - match: { groups: [eng-contractors] }

386 cli:

387 availableModels: [claude-sonnet-4-6]

388 permissions: { deny: ["WebFetch", "WebSearch"] }

389 # 預設全部捕捉最後:符合每個已驗證的人。

390 - match: {}

391 cli:

392 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

393```

394 

395`match: {}` 全部捕捉,按慣例列在最後,被視為基礎層。每個其他原則從全部捕捉繼承它不設定的任何鍵,因此每個角色項目只需要列出與組織預設不同的內容。合併規則取決於鍵類型:

396 

397* **允許清單**:`availableModels` 和 `permissions.allow`。特定原則的清單完全替換基礎的。

398* **拒絕清單和掛鉤陣列**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces` 和每個 `hooks` 事件類型陣列。這些採用基礎和原則的聯合,因此組織範圍的拒絕或稽核掛鉤無法被每個角色覆蓋意外刪除。

399* **記錄類型鍵**:`env`、`modelOverrides` 和 `skillOverrides`。這些淺合併,因此每個角色 `env` 區塊覆蓋它設定的鍵並從基礎繼承其餘的。

400 

401`availableModels` 也在 `/v1/messages` 伺服器端強制執行,因此被拒絕的模型返回 `400`,無論用戶端傳送什麼。

402 

403| 匹配器 | 行為 |

404| --------------------------------------------------- | ---------------------------------------------------------- |

405| `match: {}` | 符合每個已驗證的使用者。從其中一個開始,稍後新增群組範圍的原則。 |

406| `match: { groups: [a, b] }` | 如果 JWT 的 `groups` 宣告包含任何列出的群組,則符合。區分大小寫:群組必須符合 IdP 的確切大小寫。 |

407| `match: { email_domain: example.com }` | 符合 JWT 的 `email` 宣告中最後一個 `@` 之後的部分,不區分大小寫。每個原則接受一個網域。 |

408| `match: { groups: [a], email_domain: example.com }` | 兩個條件都必須符合 |

409 

410未符合任何原則的已驗證使用者獲得閘道的預設值,這意味著目錄中的每個模型和沒有受管設定。如果您想要保證的預設原則,請在最後新增 `match: {}` 全部捕捉。

411 

412<Note>

413 閘道保持沒有自己的使用者目錄。它從使用者的 IdP 令牌授權每個請求,從令牌的 `groups` 宣告讀取群組成員資格,並根據它評估原則。沒有要列舉的名冊,沒有要預先建立的帳戶,因此沒有 SCIM 端點,因為沒有什麼可供 SCIM 同步到。

414 

415 在真實來源(您的 IdP 的原生 SCIM 佈建或專用身分識別治理平台)執行使用者和群組生命週期管理。那裡管理的成員資格和取消佈建透過令牌自動流入閘道。如果您想要 Claude 帳戶本身的 SCIM 佈建,那是 [Claude for Enterprise](/zh-TW/admin-setup) 功能。

416 

417 兩個傳播時鐘適用:

418 

419 * **原則內容**:編輯原則並重新部署在連接的用戶端的下一個受管設定輪詢時到達,在一小時內

420 * **群組成員資格**:變更使用者的群組成員資格會變更哪個原則符合他們。這在下一個工作階段重新鑄造時生效,意味著下一個無聲重新整理,受 `session.ttl_hours` 限制。

421</Note>

422 

423<h4 id="what-goes-in-cli">

424 `cli` 中的內容

425</h4>

426 

427每個 `cli` 值是完整的 Claude Code `managed-settings.json` 文件,與您透過 MDM 或 `/etc/claude-code/managed-settings.json` 部署的相同架構,在此表示為 YAML。CLI 在受管層應用傳遞的文件,在使用者和專案設定之上。

428 

429閘道在啟動時根據 CLI 的設定架構驗證每個文件,因此無法識別的頂層鍵或具有格式不正確值的識別鍵會在啟動時失敗,並出現命名每個違規鍵的錯誤。架構的故意開放部分仍然接受任意值,因為較新的用戶端可能識別閘道的架構不識別的項目。這些開放鍵是 `env`、`pluginConfigs` 和 `permissions` 下嵌套的鍵。

430 

431因為驗證使用與閘道的已安裝版本捆綁的架構,將較新 Claude Code 版本引入的頂層設定鍵放入受管設定需要首先升級閘道。在將新原則推出到一個用戶端之前進行煙霧測試。

432 

433完整的鍵參考在 [Claude Code 設定](/zh-TW/settings#available-settings) 中。操作員首先尋求的鍵:

434 

435```yaml theme={null}

436managed:

437 policies:

438 - match: {}

439 cli:

440 # 模型存取(也在 /v1/messages 伺服器端強制執行)

441 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

442 

443 # 權限原則

444 permissions:

445 deny:

446 - "WebFetch"

447 - "Read(./.env)"

448 - "Read(./secrets/**)"

449 disableBypassPermissionsMode: disable # 阻止 --dangerously-skip-permissions

450 allowManagedPermissionRulesOnly: true # 忽略使用者/專案權限規則

451 

452 # 推送到 CLI 程序的環境。DISABLE_UPDATES 阻止

453 # 背景和手動更新;DISABLE_AUTOUPDATER 僅停止

454 # 背景更新。

455 env:

456 DISABLE_UPDATES: "1" # 透過您自己的發佈固定版本

457 

458 # 組織範圍的掛鉤。掛鉤命令在開發人員機器上執行,而不是

459 # 閘道,因此路徑必須存在於原則中的每個用戶端 OS 上。

460 hooks:

461 PostToolUse:

462 - matcher: "Edit|Write"

463 hooks:

464 - { type: command, command: /usr/local/bin/audit-edit.sh }

465```

466 

467| 鍵 | 由以下強制執行 | 效果 |

468| ------------------------------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |

469| `availableModels` | 閘道 + CLI | 模型允許清單。也在 `/v1/messages` 檢查,因此修補的用戶端無法繞過它。 |

470| `permissions.allow` / `.deny` | CLI | 工具和命令規則。請參閱[權限](/zh-TW/permissions)。 |

471| `permissions.disableBypassPermissionsMode` | CLI | 設定為 `disable` 以阻止 [`bypassPermissions`](/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode),自動批准每個工具呼叫的模式,以及 `--dangerously-skip-permissions` 旗標 |

472| `allowManagedPermissionRulesOnly` | CLI | 當 `true` 時,使用者和專案權限規則被忽略;僅此文件中的規則適用 |

473| `env` | CLI | 合併到 CLI 程序的環境變數。用於遙測、自動更新和模型名稱覆蓋。 |

474| `hooks` | CLI | 組織範圍的[掛鉤](/zh-TW/hooks) |

475 

476因為這些設定透過網路到達,CLI 在應用任何可以執行 shell 命令或改變流量去往何處的內容之前,向每個開發人員顯示一次性安全批准對話。對話涵蓋:

477 

478* `hooks`

479* `env` 變數不在 CLI 的內建安全清單上

480* shell 執行設定,例如 `apiKeyHelper` 和 `statusLine`

481* 受管 CLAUDE.md 內容

482 

483安全清單決定哪些 `env` 變數無需批准即可應用:

484 

485* **在安全清單上**:自動更新和模型名稱變數

486* **不在安全清單上**:代理變數、基礎 URL 變數和 `OTEL_EXPORTER_OTLP_ENDPOINT`

487 

488閘道的[遙測](#telemetry)設定推送 `OTEL_EXPORTER_OTLP_ENDPOINT`,因此設定 `telemetry.forward_to` 在每個互動式用戶端上觸發對話。使用 `-p` 旗標的非互動式執行跳過對話並無需批准應用設定。對話保護開發人員的機器免受受損或敵對閘道的影響,而不是保護組織免受開發人員的影響,因此 `-p` 跳過是故意的而不是差距。

489 

490如果開發人員拒絕,Claude Code 退出而不是應用原則。將新掛鉤或非安全環境變數推送到廣泛原則因此意味著每個符合開發人員下一次啟動時的批准提示。

491 

492`cli` 鍵在較早版本中被命名為 `settings`。該拼寫仍然被接受為別名,但新部署應使用 `cli`。

493 

494<h4 id="precedence-with-other-managed-sources">

495 與其他受管來源的優先順序

496</h4>

497 

498如果裝置也有本地 `managed-settings.json` 或 MDM 傳遞的原則,受管來源不合併。最高優先順序來源提供所有原則設定,按此順序排列,最高優先順序優先:

499 

5001. [原則幫助程式](/zh-TW/settings#compute-managed-settings-with-a-policy-helper)

5012. 閘道傳遞的設定

5023. MDM,透過 Windows 上的 HKLM 登錄或 macOS 上的 plist

5034. `managed-settings.json` 檔案

5045. HKCU 登錄,僅在 Windows 上

505 

506嵌入主機可以透過 SDK `managedSettings` 選項提供原則。預設情況下它被忽略,僅當受管來源使用 [`parentSettingsBehavior: "merge"`](/zh-TW/settings#available-settings) 選擇加入時適用,經過篩選以便它可以收緊原則但不能放鬆它。

507 

508例外是一小組跨來源鍵,在任何管理來源設定它們時被尊重;使用者可寫 HKCU 層被排除:

509 

510* `sandbox.network.allowManagedDomainsOnly` 和 `sandbox.filesystem.allowManagedReadPathsOnly`:當鎖定時,對應的允許清單跨來源聯合

511* [`allowAllClaudeAiMcps`](/zh-TW/settings#available-settings):claude.ai MCP 伺服器允許清單的僅允許覆蓋

512* `sandbox.bwrapPath` 和 `sandbox.socatPath`:[沙箱](/zh-TW/sandboxing)幫助程式二進位檔的檔案系統路徑

513 

514`allowManagedPermissionRulesOnly` 和 `disableBypassPermissionsMode` 不是跨來源的,因此僅獲勝來源的值適用。

515 

516閘道原則適用於機器上的每個 Claude Code 呼叫,包括非互動式 `claude -p` 執行和由 Agent SDK 生成的工作階段。如果閘道在啟動時無法到達,已登入的工作階段退出並出現錯誤,而不是在沒有其原則的情況下執行。

517 

518<Warning>

519 原則的 `cli` 區塊內的 `mcpServers` 在閘道啟動時被拒絕。不提供每個群組 MCP 發佈;透過每個裝置上的檔案型 `managed-mcp.json` 部署 MCP 伺服器或讓開發人員在本地新增它們。

520</Warning>

521 

522<h3 id="telemetry">

523 `telemetry`

524</h3>

525 

526CLI 透過 HTTP 指標、日誌和(啟用時)追蹤傳送 OpenTelemetry Protocol (OTLP) 到閘道,閘道逐字將它們轉發到每個設定的目的地。請參閱[監控使用](/zh-TW/monitoring-usage)以了解 CLI 發出的指標和事件。

527 

528CLI 使用從閘道簽發的 JWT 讀取的已驗證使用者的身分識別戳記每個匯出:`user.id`、`user.email` 和 `user.groups` 屬性。每個開發人員的成本和使用歸因因此無需開發人員端設定即可運作。

529 

530```yaml theme={null}

531telemetry:

532 forward_to:

533 - url: https://otel-collector.internal.example.com

534 headers:

535 Authorization: ${OTLP_TOKEN}

536 # 每個信號選擇加入。預設:僅指標。

537 metrics: true

538 logs: false

539 traces: false

540 - url: https://api.datadoghq.com/api/v2/otlp

541 headers:

542 DD-API-KEY: ${DD_API_KEY}

543```

544 

545<Warning>

546 每個目的地獨立選擇加入 `metrics`、`logs` 和 `traces`,預設僅指標。信號在敏感性上有所不同:

547 

548 * **指標**:聚合計數器,例如令牌計數、請求計數和延遲

549 * **日誌和追蹤**:可以攜帶完整的 bash 命令、工具輸入和檔案路徑,涵蓋 Claude Code 在開發人員機器上執行的任何操作

550 

551 僅在具有該資料保證的存取控制和保留原則的目的地上啟用日誌和追蹤。

552</Warning>

553 

554遙測在 CLI 中預設關閉。將 `telemetry.forward_to` 與 `listen.public_url` 一起設定會打開它。閘道透過 `/managed/settings` 推送五個環境變數到每個連接的用戶端:

555 

556* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

557* `OTEL_METRICS_EXPORTER=otlp`

558* `OTEL_LOGS_EXPORTER=otlp`

559* `OTEL_TRACES_EXPORTER=otlp`

560* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

561 

562推送的端點是從公開 URL 建立的,因此指標和日誌不需要開發人員或原則的 OTEL 設定。推送的設定在受管層應用,覆蓋開發人員在本地設定的 `OTEL_*` 變數。

563 

564[追蹤](/zh-TW/monitoring-usage#traces-beta)另外需要每個用戶端上的 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`。閘道不推送該變數,因此透過受管原則的 `env` 區塊設定它。它不在 CLI 的安全清單上,因此透過原則傳遞它由推送的 OTLP 端點已經觸發的相同[安全批准對話](#managed)涵蓋。

565 

566protobuf 和 JSON OTLP 編碼都被轉發,任何 OpenTelemetry 相容後端都可作為目的地。

567 

568<h3 id="http-tuning">

569 HTTP 調整

570</h3>

571 

572四個選用的頂層區塊 `access_control`、`limits`、`timeouts` 和 `rate_limits` 調整 HTTP 表面。預設值適合大多數部署。

573 

574| 區塊 | 鍵 | 預設 | 說明 |

575| ---------------- | ---------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

576| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | 按用戶端位址的入站 IP 允許/拒絕,在 `trusted_proxies` 解析後。`deny_cidrs` 首先檢查;符合它的用戶端即使 `allow_cidrs` 也相符也被拒絕。如果 `allow_cidrs` 非空,閘道是預設拒絕。`/healthz` 和 `/readyz` 豁免於 `allow_cidrs`。 |

577| `limits` | `max_request_bytes` | 32 MiB | 最大入站請求正文;超大小請求在正文被緩衝前獲得 `413`。為大型檔案或影像請求提高。 |

578| `limits` | `max_request_header_bytes` | 未設定 | 設定時,超大小標頭返回 `431` |

579| `limits` | `max_url_length` | 未設定 | 設定時,過長 URL 返回 `414` |

580| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游回應標頭(首位元組時間)的最大時間。回應正文然後以無牆鐘上限流。適用於直接 Anthropic 上游路徑;Bedrock、Agent Platform 和 Foundry 受其提供者 SDK 自己的逾時限制。 |

581| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未驗證裝置授權端點上的每 IP 速率限制。為在共享出口 IP 或 NAT 後面的大型組織提高。這些限制僅適用於裝置授權登入流程,不適用於 `/v1/messages` 推論。請參閱[使用者程式碼暴力破解抵抗](/zh-TW/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |

582| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | 在 `/device` 上 `user_code` 提交的每 IP 速率限制 |

583 

584<h2 id="complete-example">

585 完整範例

586</h2>

587 

588此完整參考設定涵蓋每個核心部分;[HTTP 調整區塊](#http-tuning)保持其預設值。複製它,刪除您不需要的內容,並填入您的值。[快速入門](/zh-TW/claude-apps-gateway#quickstart)中的設定是此的最小版本。

589 

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

591# 執行方式:

592# claude gateway --config gateway.yaml

593#

594# 操作日誌詳細程度由 CLAUDE_GATEWAY_LOG_LEVEL

595# 環境變數控制(info | warn | error;預設 info)。它不

596# 影響稽核事件,始終發出。

597 

598listen:

599 host: 0.0.0.0

600 port: 8080

601 public_url: https://claude-gateway.internal.example.com

602 # 在 TLS 終止入口後面執行時省略 tls 區塊。

603 # tls:

604 # cert: /certs/gateway.crt

605 # key: /certs/gateway.key

606 # trusted_proxies:

607 # - 10.0.0.0/8

608 

609oidc:

610 issuer: https://example.okta.com

611 client_id: 0oa1example2

612 client_secret: ${OIDC_CLIENT_SECRET}

613 allowed_email_domains:

614 - example.com

615 # 當簽發者是 Okta 組織伺服器時需要,其 id_token

616 # 可以省略電子郵件和群組;閘道從 /userinfo 填充它們。

617 userinfo_fallback: true

618 # allowed_groups: [claude-code-users]

619 # Okta 僅在請求 `groups` 範圍且

620 # 應用程式的群組宣告篩選允許它們時發出群組。下面的承包商原則

621 # 符合群組,因此此處請求範圍。

622 scopes: [openid, profile, email, offline_access, groups]

623 # extra_auth_params: { access_type: offline, prompt: consent } # Google

624 # groups_claim: groups # Entra 應用程式角色:使用 `roles`

625 # email_claim: email

626 

627session:

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

629 # ttl_hours: 1

630 

631store:

632 postgres_url: ${GATEWAY_POSTGRES_URL}

633 # max_connections: 5

634 

635# 啟用 /v1/organizations/spend_limits(鏡像 Anthropic Admin API)

636# 和 /v1/messages 上的每個開發人員支出強制執行。省略以停用。

637# 上限本身透過 admin API 設定,而不是此處。

638# admin:

639# write_keys:

640# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

641# read_keys:

642# - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

643# admin_groups: [platform-finops]

644# blocked_message: request an increase at https://go.example.com/claude-limits

645# # audit_retention_days: 365

646# # spend_retention_months: 13

647# # identity_retention_days: 90

648# # group_limit_mode: min

649 

650# enforcement:

651# fail_closed_on_error: false

652 

653upstreams:

654 - provider: anthropic

655 auth:

656 api_key: ${ANTHROPIC_API_KEY}

657 

658 # - provider: bedrock

659 # region: us-east-1

660 # auth: {}

661 

662 # - provider: vertex

663 # region: us-east5

664 # project_id: example-prod

665 # auth: {}

666 

667 # - provider: foundry

668 # resource: example-foundry

669 # auth: { use_azure_ad: true }

670 

671auto_include_builtin_models: true

672models:

673 - id: claude-opus-4-8

674 label: Claude Opus 4.8

675 upstream_model:

676 anthropic: claude-opus-4-8

677 # bedrock: us.anthropic.claude-opus-4-8

678 # vertex: claude-opus-4-8

679 # foundry: <your-opus-deployment-name>

680 - id: claude-sonnet-4-6

681 label: Claude Sonnet 4.6

682 upstream_model:

683 anthropic: claude-sonnet-4-6

684 - id: claude-haiku-4-5

685 label: Claude Haiku 4.5

686 upstream_model:

687 anthropic: claude-haiku-4-5

688 

689managed:

690 policies:

691 - match: { groups: [contractors] }

692 cli:

693 availableModels: [claude-haiku-4-5]

694 # 將預設選擇器選項限制為 availableModels 而不是

695 # 層級預設,因此承包商不會在預設上獲得 400。

696 enforceAvailableModels: true

697 # allow 自動批准這些工具;它不阻止其餘的。

698 # 新增 deny 規則以限制工具。

699 permissions: { allow: [Read, Grep] }

700 - match: {}

701 cli:

702 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

703 permissions:

704 allow: [Read, Grep, Bash, Edit]

705 deny: ["WebFetch"]

706 env: { HTTP_PROXY: http://proxy.example.com:8080 }

707 

708telemetry:

709 forward_to:

710 - url: https://otel.internal.example.com:4318

711 headers:

712 Authorization: Bearer ${OTEL_TOKEN}

713```

714 

715<h2 id="client-side-managed-settings">

716 用戶端受管設定

717</h2>

718 

719上面的所有內容設定閘道伺服器。將開發人員機器指向它在每個裝置上單獨設定,透過 Claude Code 的[受管設定](/zh-TW/settings#settings-files)。閘道無法自己推送這些鍵,因為它們是告訴用戶端閘道在哪裡的內容。

720 

721對於 CLI,在每個 OS `managed-settings.json` 中設定兩個鍵:

722 

723```json theme={null}

724{

725 "forceLoginMethod": "gateway",

726 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"

727}

728```

729 

730將該檔案部署到每個裝置,通常透過您的 MDM 平台。檔案路徑因平台而異:

731 

732| 平台 | 路徑 |

733| ----------- | ----------------------------------------------------------------------------------------------------- |

734| macOS | `/Library/Application Support/ClaudeCode/managed-settings.json`,或 `com.anthropic.claudecode` 受管偏好設定網域 |

735| Linux 和 WSL | `/etc/claude-code/managed-settings.json` |

736| Windows | `C:\Program Files\ClaudeCode\managed-settings.json`,或透過 HKLM 登錄的群組原則 |

737 

738`forceLoginGatewayUrl` 和 `forceLoginMethod` 的 `"gateway"` 值僅從管理員控制的受管層被尊重。開發人員在自己的 `~/.claude/settings.json` 中設定它們無效。

739 

740<h2 id="related">

741 相關

742</h2>

743 

744* [Claude 應用程式閘道概述](/zh-TW/claude-apps-gateway):快速入門和開發人員連接

745* [部署指南](/zh-TW/claude-apps-gateway-deploy):IdP 設定、容器映像、Kubernetes 和 Cloud Run,以及操作

746* [支出限制](/zh-TW/claude-apps-gateway-spend-limits):每個開發人員上限和 Admin API

claude-apps-gateway-deploy.md +301 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# Claude 應用程式閘道部署和運營

6 

7> 向您的身份提供者註冊閘道、建置容器、在 Kubernetes 或 Cloud Run 上部署,並運營它:健康檢查、祕密輪換、升級和安全性。

8 

9本頁涵蓋執行 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway) 的運營方面:在您的身份提供者 (IdP) 中註冊 OAuth 用戶端、將閘道部署為容器,以及日常運營。關於閘道在啟動時讀取的 `gateway.yaml` 檔案中的每個選項,請參閱 [設定參考](/zh-TW/claude-apps-gateway-config)。

10 

11生產部署按順序遵循四個步驟,下面的章節與之相符。前兩個是您做出選擇的地方;後兩個是一旦運行時要查閱的參考資料。

12 

131. [設定您的身份提供者](#identity-provider-setup):註冊 OAuth 用戶端並檢查 Okta、Entra 和 Google 的各個 IdP 說明

142. [部署閘道](#deployment):建置固定版本的容器映像並在 Kubernetes、Cloud Run 或您自己的平台上執行。本章節也涵蓋成本、繞過、多閘道和無伺服器決策

153. [設定運營](#operations):日誌、健康探針、中斷行為、祕密輪換和升級。當您連接監控和運行手冊時的參考資料

164. [檢查安全態勢](#security):資料流向何處、威脅模型和合規性答案。用於安全審查的參考資料

17 

18如果沿途簽入或啟動失敗,請直接前往 [故障排除](#troubleshooting),該部分根據您看到的錯誤進行索引。

19 

20<Note>

21 **在您的私有網路上部署。** Claude Code 只連接到地址為私有的閘道。這是一個安全防護,因為受信任的閘道可以推送在開發人員機器上執行命令的設定。將閘道放在內部負載平衡器或 VPN 後面,並給它一個只解析為私有 IP 的主機名。

22</Note>

23 

24<h2 id="identity-provider-setup">

25 身份提供者設定

26</h2>

27 

28向任何 OIDC 相容的身份提供者註冊機密 OAuth/OpenID Connect (OIDC) 網路應用程式,使用單一重新導向 URI `https://<gateway>/oauth/callback`,並將其分配給應該有閘道存取權限的使用者或群組。

29 

30任何 OIDC 相容的 IdP 都可以使用:Okta、Microsoft Entra ID、Google Workspace、Keycloak、Dex、PingFederate 等。IdP 必須滿足三個要求:

31 

32* 在生產環境中透過 HTTPS 提供 `/.well-known/openid-configuration`;閘道接受 [`http://` 發行者](/zh-TW/claude-apps-gateway-config#oidc),環回發行者另外需要 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`

33* 支援授權碼流程。PKCE(代碼交換的證明金鑰)預設開啟;對於不支援它的 IdP,使用 `oidc.use_pkce: false` 停用它

34* 在 id\_token 中傳回 `email` 和可選的 `groups`,或使用 `oidc.userinfo_fallback: true` 從 userinfo 端點提供它們

35 

36對於私有 PKI,設定 `oidc.ca_cert_pem`。

37 

38一些提供者以不同方式處理電子郵件和群組聲明:

39 

40* **Okta**:位於 `https://example.okta.com` 的組織授權伺服器傳回省略 `email` 和 `groups` 的簡化 id\_token,因此當您將其用作 `issuer` 時設定 `oidc.userinfo_fallback: true`。包含 id\_token 中 `email` 和可選 `groups` 的自訂授權伺服器(例如 `https://example.okta.com/oauth2/default`)直接發出它們,不需要回退。Okta 只在 `oidc.scopes` 中請求 `groups` 範圍且應用程式的群組聲明篩選器允許時才發出 `groups`;`userinfo_fallback` 無法填充 IdP 未被要求的聲明。

41* **Microsoft Entra ID**:`issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`。Entra 發出群組物件 ID 而不是名稱,因此在 `managed.policies.match.groups` 中使用 GUID,或使用應用程式角色以獲得人類可讀的名稱。如果您的租戶在 `roles` 而不是 `groups` 下發出角色,設定 `oidc.groups_claim: roles`。

42* **Google Workspace**:`issuer` = `https://accounts.google.com`。Google 的 id\_token 不包含群組。要將基於群組的 `allowed_groups` 或 `managed.policies` 與 Google 作為 IdP 一起使用,請配置 [`oidc.google_groups`](/zh-TW/claude-apps-gateway-config#oidc),它使用具有網域範圍委派的服務帳戶透過 Admin SDK Directory API 查詢每個使用者的群組。沒有它,使用 `oidc.allowed_email_domains` 進行成員資格閘道和 `managed.policies.match.email_domain` 進行原則分配。Google 也忽略標準 `offline_access` 範圍。對於重新整理令牌,設定 `oidc.scopes: [openid, profile, email]` 和 `oidc.extra_auth_params: { access_type: offline, prompt: consent }`。

43 

44如需有關上述未涵蓋的身份提供者的支援,請參閱[疑難排解](#troubleshooting)。

45 

46<Warning>

47 重新整理令牌讓閘道無聲地更新開發人員的會話,無需將開發人員送回瀏覽器。它們也驅動取消配置,因為當 IdP 停用使用者時,下一次重新整理失敗,會話在 `ttl_hours` 內結束。閘道預設請求 `offline_access` 以獲取重新整理令牌。如果您的 IdP 需要明確同意離線存取,請配置 OAuth 用戶端以允許它。

48 

49 如果您的 IdP 根本無法發出重新整理令牌,閘道仍然可以工作,但沒有無聲更新,因此開發人員在會話過期時重新執行瀏覽器登入。為了防止每小時發生一次,將 [`session.ttl_hours`](/zh-TW/claude-apps-gateway-config#session) 提高到 `8` 或 `12`。權衡是取消配置延遲,因為沒有重新整理令牌,被停用的使用者在更長的 TTL 經過之前保持存取權限。

50</Warning>

51 

52<h2 id="deployment">

53 部署

54</h2>

55 

56閘道是單一 Linux 二進位檔案。它水平擴展,因為副本是無狀態的,Postgres 是共享協調層。以您在環境中執行無狀態服務的任何方式執行它。本章節的其餘部分說明映像需要什麼,並為 Kubernetes 和 Cloud Run 提供簡短說明。

57 

58閘道設計為在您的網路內執行,因為它持有您的上游認證並充當推理的單一出口點。它可以在您的開發人員和您的 IdP 可以透過 HTTPS 到達的任何地方執行;將其視為任何其他持有生產認證的服務。

59 

60除了它執行的位置之外,還有一些決策塑造部署:

61 

62* **成本**:閘道沒有單獨的許可證或按座位費用;它是 `claude` 二進位檔案的一部分。您透過現有的雲端或 Anthropic 承諾為推理付費,加上容器的計算和您的遙測收集器。

63* **繞過**:閘道不強制執行通往模型的唯一路由必須通過它。具有自己認證的開發人員仍然可以直接呼叫提供者,因此關閉該路徑是網路原則決策,例如阻止到 `api.anthropic.com` 的出口,除了來自閘道。阻止該出口也會破壞 [WebFetch 網域安全檢查](/zh-TW/data-usage#webfetch-domain-safety-check),它從每個開發人員的機器呼叫 `api.anthropic.com`;在受管原則中設定 `skipWebFetchPreflight: true` 以停用它。

64* **多個閘道**:每個閘道是一個單獨的部署,具有自己的配置。CLI 按閘道主機名儲存其信任指紋和認證,因此不同的團隊可以連接到不同的閘道而不會衝突。要提供多個 OIDC 發行者,請執行單獨的實例。

65* **無伺服器**:Cloud Run 可以工作;設定 `min-instances: 1` 以避免冷 OIDC 發現。Lambda 和 Cloud Functions 不行,因為閘道是長時間執行的 HTTP 伺服器。

66 

67此處的每個生產拓撲都在純 HTTP 副本前面放置 L7 代理,例如 Ingress、Cloud Run 的前端或 ALB。設定 [`listen.trusted_proxies`](/zh-TW/claude-apps-gateway-config#listen) 為代理的來源範圍,以便閘道從 `X-Forwarded-For` 讀取用戶端 IP。閘道只在 TCP 對等體受信任時才遵守標頭;[Google Cloud 實際工作範例](/zh-TW/claude-apps-gateway-on-gcp) 為每個拓撲提供具體值。沒有受信任的代理,每個請求似乎都來自代理的 IP,這會將按 IP 速率限制摺疊為一個共享桶,並在審計事件中記錄代理的 IP。

68 

69<h3 id="container-image">

70 容器映像

71</h3>

72 

73圍繞標準 Claude Code 版本中的原生 `claude` 二進位檔案建置您自己的映像:

74 

751. 從固定版本下載您的映像架構的 Linux 建置;請參閱 [安裝特定版本](/zh-TW/setup#install-a-specific-version) 以取得下載 URL。

762. 根據 [二進位完整性和代碼簽名](/zh-TW/setup#binary-integrity-and-code-signing) 中所述,根據版本的 GPG 簽名 `manifest.json` 驗證它。

773. 將其複製到建置上下文中。

78 

79如果您的建置無法到達版本主機,請將版本鏡像到您的內部登錄中,並固定您的機隊執行的版本。

80 

81除了二進位檔案,映像還需要:

82 

83* **基於 glibc 的映像**:glibc 建置的唯一動態依賴項是 glibc 庫。基於 Musl 的映像需要 `linux-x64-musl` 或 `linux-arm64-musl` 建置加上額外套件;請參閱 [Alpine Linux 設定](/zh-TW/setup#alpine-linux-and-musl-based-distributions)。

84* **可寫入的狀態目錄**:閘道以任何使用者身份執行,但最小映像沒有可寫入的主目錄。將 `CLAUDE_CONFIG_DIR` 設定為可寫入的路徑,例如 `/tmp/.claude`。

85* **容器命令**:`claude gateway --config /etc/claude/gateway.yaml`,配置檔案以唯讀方式掛載,祕密作為環境變數提供;閘道在 `listen.port` 上監聽,預設為 `8080`。

86 

87<h3 id="kubernetes">

88 Kubernetes

89</h3>

90 

91將閘道作為 Deployment 執行,就像任何無狀態服務一樣:

92 

93* 從 ConfigMap 掛載配置,從 Secret 掛載祕密;透過 `${file:/path/to/secret}` 或作為環境變數在 YAML 中參考祕密

94* 在 Ingress 處終止 TLS 並將 `listen.public_url` 設定為 Ingress 主機名

95* 將就緒探針指向 `GET /readyz`,將活躍探針指向 `GET /healthz`

96 

97<Note>

98 **工作負載身份**

99 

100 優先選擇平台的工作負載身份而不是靜態金鑰:EKS 上的 IRSA 用於 Bedrock、GKE 上的工作負載身份用於 Agent Platform,以及 AKS 上的工作負載身份用於 Foundry。在上游區塊中設定 `auth: {}`,或對 Foundry 設定 `use_azure_ad: true`,閘道透過該提供者的預設認證鏈拾取 Pod 的身份。對於跨雲配對,例如 GKE 上的 Bedrock 上游,在上游的 `auth` 區塊中設定明確認證。[`upstreams` 參考](/zh-TW/claude-apps-gateway-config#upstreams) 有各平台設定詳情。

101</Note>

102 

103<h3 id="cloud-run">

104 Cloud Run

105</h3>

106 

107按如下方式配置服務:

108 

109* 將 `listen.port` 保留在預設值 `8080`,這與 Cloud Run 的預設 `PORT` 相符,或設定 `port: ${PORT}`

110* 將 `public_url` 設定為外部可到達的來源。對於生產,這通常是內部負載平衡器的主機名,因為 `/login` [拒絕公開地址](/zh-TW/claude-apps-gateway#prerequisites),而 `*.run.app` URL 解析為一個,所以單獨的 Cloud Run URL 僅適用於 `curl` 或瀏覽器煙霧測試。例外是一個網路,其中 `*.run.app` 透過 Private Service Connect 和 Cloud DNS 私有區域私下解析;在該拓撲中,Cloud Run URL 是有效的 `public_url`。[Google Cloud 實際工作範例](/zh-TW/claude-apps-gateway-on-gcp#deploy-the-gateway) 涵蓋兩者。

111* 將配置掛載為祕密卷

112* 設定 `min-instances: 1` 以避免首次請求時的冷 OIDC 發現

113 

114<Note>

115 如需 Google Cloud 上的完整實際工作範例,涵蓋 Cloud Run 或 GKE、Cloud SQL 和 Secret Manager,請參閱 [在 Google Cloud 上部署](/zh-TW/claude-apps-gateway-on-gcp)。

116</Note>

117 

118<h3 id="push-the-gateway-url-to-developer-machines">

119 將閘道 URL 推送到開發人員機器

120</h3>

121 

122一旦閘道開始提供服務,透過受管設定、MDM 或直接寫入各個 OS `managed-settings.json` 將 `forceLoginMethod` 和 `forceLoginGatewayUrl` 推送到每個開發人員的機器。沒有這個,`/login` 顯示標準帳戶選擇器,沒有閘道選項。請參閱 [用戶端受管設定](/zh-TW/claude-apps-gateway-config#client-side-managed-settings) 以取得檔案路徑。

123 

124<h2 id="operations">

125 運營

126</h2>

127 

128一旦閘道開始提供流量,日常運營就是讀取其日誌、探測其健康狀況,以及按您的時間表輪換其祕密。下面的小節涵蓋每一個,加上 Postgres 持有的內容以及升級和回滾的行為方式。

129 

130<h3 id="logs">

131 日誌

132</h3>

133 

134閘道向 stderr 寫入兩個流,都是 JSON 友好的:

135 

136* **審計事件**:每個安全相關事件的單行 JSON。將 stderr 管道傳輸到您的日誌聚合器。發出的事件包括 `config.load`、`session.mint`、`session.refresh`、`device.authorize`、`device.verify`、`auth.denied`、`access.denied`、`inference`、`managed.serve`、`spend.blocked` 和 `admin.denied`。欄位因事件而異:

137 * 成功的 mint 和 refresh 事件攜帶 `sub`、`email`、`client_ip` 和結果

138 * 拒絕事件攜帶原因、路徑和用戶端 IP,因為拒絕時不存在身份

139 * `inference` 記錄哪個上游提供了請求以及回應狀態

140 * `admin.denied` 記錄被拒絕的管理員 API 驗證嘗試,包括原因(`invalid_key` 或 `no_credentials`)、用戶端 IP、方法和路徑,不包括呈現的金鑰材料

141* **運營日誌**:人類可讀的 `[gateway]` 前綴行,用於啟動、警告和上游錯誤。`CLAUDE_GATEWAY_LOG_LEVEL` 環境變數控制詳細程度,接受 `info`、`warn` 或 `error`,預設為 `info`。它不影響審計事件,這些事件始終被發出。

142 

143<h3 id="health">

144 健康

145</h3>

146 

147閘道提供 `GET /healthz` 作為活躍探針,`GET /readyz` 作為就緒探針;`/readyz` 驗證存儲是否可到達。兩者都豁免於 `access_control.allow_cidrs`,因此探針在鎖定的監聽器上保持工作。

148 

149OAuth 發現文件位於 `/.well-known/oauth-authorization-server` 也只在配置載入、OIDC 發現、上游用戶端構造和 Postgres 遷移全部成功後才傳回 `200`,因此它也充當端到端啟動檢查。

150 

151執行中的閘道也在 `<public_url>/protocol` 提供它接受的路徑和請求形狀的描述,與您執行的版本相符。內容在版本之間不穩定。

152 

153<h3 id="outage-behavior">

154 中斷行為

155</h3>

156 

157如果 Postgres 宕機,閘道本身繼續為已簽入的開發人員提供服務,新的簽入失敗。開發人員是否實際保持工作取決於您的協調器如何處理就緒:

158 

159* **現有會話**:持有人令牌使用 JWT 祕密在本地驗證,會話重新整理不接觸存儲,閘道程序仍然可以提供推理

160* **新簽入**:失敗直到 Postgres 恢復,因為設備流及其速率限制計數器存在於 Postgres 中

161* **[支出限制執行](/zh-TW/claude-apps-gateway-spend-limits#postgres-availability)**:在中斷期間預設失敗開放,因此推理仍然流動;如果您寧願阻止也不願無計量執行,請將其翻轉為失敗關閉

162* **就緒**:`/readyz` 在中斷期間報告未就緒,因此在就緒上閘門流量的協調器一次從輪換中移除每個副本。在該拓撲中,所有流量,包括閘道仍然可以提供的推理,在負載平衡器處失敗,直到 Postgres 恢復。`/healthz` 上的活躍探針保持通過,因此副本不會重新啟動。如果您寧願已簽入的開發人員在存儲中斷期間保持工作,請將就緒探針指向 `/healthz`;成本是新簽入失敗對仍然報告就緒的副本。

163 

164如果您的 IdP 宕機,現有會話工作直到 `ttl_hours`,新登入和重新整理失敗。如果您的 IdP 有頻繁的維護窗口,設定更長的 `ttl_hours`。

165 

166<h3 id="jwt-secret-rotation">

167 JWT 祕密輪換

168</h3>

169 

170分三個步驟輪換簽名祕密,以便現有會話保持有效:

171 

1721. 生成新祕密。將其前置到 `session.jwt_secret` 陣列。

1732. 滾動部署。新令牌使用新祕密簽名;舊令牌仍然驗證。

1743. 在 `ttl_hours` 加上邊距後,移除舊祕密並再次滾動。

175 

176輪換也是在它們過期之前強制會話退出的唯一方法:持有人令牌根據 JWT 祕密在本地驗證,因此沒有按會話撤銷。直接替換祕密,不在陣列中保留舊祕密,一次使每個未完成的會話無效。對於個別離職,在您的 IdP 中取消配置使用者;他們的會話在 `ttl_hours` 內結束。

177 

178<h3 id="postgres">

179 Postgres

180</h3>

181 

182閘道持有五個表,全部由其啟動時遷移建立:

183 

184| 表 | 內容 | 保留 |

185| ------------------ | ----------------------------------- | --------------------------------------------- |

186| `kv` | 設備授予(10 分鐘 TTL)和速率限制計數器 | 每行 TTL |

187| `spend` | 按主體期間至今支出計數器,以美分計 | `admin.spend_retention_months`,預設 13 |

188| `spend_limits` | 配置的支出上限 | 直到透過 API 刪除 |

189| `admin_audit` | 管理員 API 變更軌跡 | `admin.audit_retention_days`,預設 365 |

190| `principal_emails` | 每個主體的最後看到的電子郵件、顯示名稱和 IdP 群組。包含 PII。 | `admin.identity_retention_days` 自上次活動以來,預設 90 |

191 

19230 秒迴圈過期 `kv` 行超過其 TTL,每小時掃描在支出表上強制保留窗口,因此沒有任何東西無限增長。沒有 [支出限制](/zh-TW/claude-apps-gateway-spend-limits) 配置,只有 `kv` 被寫入。如果您的安全原則禁止應用程式角色的 DDL,預先建立這些表和 `_migrations`,使用管理員角色,並授予應用程式角色 `SELECT, INSERT, UPDATE, DELETE` 在每個上。

193 

194使用支出限制,丟失的資料庫意味著丟失支出追蹤和上限,不僅僅是開發人員重新登入,因此執行定期備份。要立即清除一個已離職的開發人員,而不是等待保留,直接執行 `DELETE FROM principal_emails WHERE principal = '<sub>'`;這移除唯一持有其電子郵件、名稱和群組的表。`spend` 和 `admin_audit` 行僅參考偽匿名 OIDC `sub`。

195 

196<h3 id="upgrades">

197 升級

198</h3>

199 

200副本是無狀態的,因此滾動重新啟動在任何時間都是安全的。閘道在啟動時執行架構遷移,這意味著部署新二進位檔案自我遷移資料庫。如果資料庫角色無法執行 DDL,預先建立架構,包括 `_migrations` 表,種子為當前版本;否則啟動失敗,嘗試 `CREATE TABLE`。

201 

202遷移是僅附加的,因此回滾到知道較少遷移的先前二進位檔案是安全的;它忽略額外的行。回滾也根據較舊二進位檔案的架構重新驗證 YAML,因此採用較新版本引入的金鑰的配置在較舊版本上啟動失敗。在回滾之前移除新金鑰。

203 

204因為您在自己的映像中固定閘道的版本,新 Claude Code 版本中的修復,包括安全修復,只有在您更新固定並重新部署時才會到達您的部署。將閘道包含在您用於持有生產認證的其他服務的相同修補週期中。

205 

206<h2 id="security">

207 安全

208</h2>

209 

210本章節回答安全審查提出的問題:什麼資料流經閘道以及它流向何處、設計防禦的攻擊,以及哪些答案屬於合規性問卷。

211 

212<h3 id="data-flow">

213 資料流

214</h3>

215 

216| 資料 | 路徑 | 由閘道發送給 Anthropic |

217| ----------------------------------------------------------------------- | -------------------------------------- | ------------------------- |

218| 推理(提示、完成) | CLI → 閘道 → 您的上游 | 只有在 Anthropic API 是配置的上游時 |

219| 遙測(OTLP 指標,加上 [選擇加入日誌和追蹤](/zh-TW/claude-apps-gateway-config#telemetry)) | CLI → 閘道 → 您的收集器 | 從不 |

220| 身份(電子郵件、群組、sub) | IdP → 閘道 → JWT → CLI;CLI 在 OTLP 匯出上標記它 | 從不 |

221| 受管設定 | 您的閘道 YAML → CLI | 從不 |

222| 審計日誌 | 閘道 stderr → 您的聚合器 | 從不 |

223 

224<h3 id="threat-model-summary">

225 威脅模型摘要

226</h3>

227 

228閘道位於您的網路周邊內,但個別開發人員筆記型電腦不被視為受信任。設計以三種方式考慮這一點:

229 

230* 開發人員持有短期 JWT 而不是原始上游金鑰。CLI 到閘道的腿使用 RFC 8628 設備授予,閘道與 IdP 的授權碼交換在預設配置中執行 PKCE,因此攔截的 IdP 授權碼是無用的。

231* 設備驗證頁面強制執行同源 POST 和根據 RFC 8628 §5.1 的每 IP 速率限制。請參閱 [使用者代碼暴力破解抵抗](#user-code-brute-force-resistance)。

232* 出站請求通過伺服器端請求偽造 (SSRF) 防護,解析 DNS、阻止連結本地和雲端中繼資料地址加上預設環回,並將連接固定到解析的 IP,因此操作員影響的 URL(例如 IdP 和 OTLP 目的地)無法重新導向到雲端中繼資料端點。RFC 1918 私有範圍被刻意允許,因為 IdP 和 OTLP 收集器通常存在於私有 IP 上。對於針對環回 IdP 或收集器的本地開發,在閘道的環境中設定 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`;在生產中保持未設定。

233 

234如果您新增自己的出口控制,閘道必須在使用工作負載身份等實例中繼資料認證時到達中繼資料伺服器。

235 

236兩個威脅超出範圍,因為它們是您的基礎設施要保護的:

237 

238* **受損的閘道主機**:主機既持有上游認證,又向每個連接的開發人員分發 [受管設定](/zh-TW/claude-apps-gateway-config#managed),因此對閘道配置的控制與對您的 MDM 的控制相當。CLI 的一次性批准對話框用於殼層功能設定限制無聲變更,但不替代主機安全。

239* **惡意 OIDC 提供者**:提供者簽署閘道信任的 id\_token,因此它可以聲稱任何身份。審查和保護您的 IdP 是您的責任。

240 

241<h3 id="user-code-brute-force-resistance">

242 使用者代碼暴力破解抵抗

243</h3>

244 

245開發人員在 `/device` 驗證頁面中輸入的 `user_code` 是從 20 字元字母表中抽取的 8 個字元,產生 20⁸ 或約 2.56×10¹⁰ 個組合,並在 10 分鐘後過期。

246 

247閘道在設備授予端點上應用按 IP 速率限制,可透過 [`rate_limits`](/zh-TW/claude-apps-gateway-config#http-tuning) 配置。如果許多開發人員從單一共享公司 NAT 地址簽入,請提高限制。限制僅適用於簽入流程,不適用於推理。

248 

249<h3 id="compliance-posture">

250 合規性態勢

251</h3>

252 

253* **資料駐留**:閘道自己的資料平面不向 Anthropic 發送任何東西,除非 Anthropic API 是配置的上游;當它是時,您現有的資料處理協議適用於推理路徑。遙測、審計、身份和設定只流向您配置的目的地。

254* **主機程序流量**:主機程序是 Claude Code CLI,可以向 Anthropic 發送啟動分析和更新檢查。對於嚴格出口部署,在閘道的容器環境中設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`。

255* **用戶端分析**:CLI 在簽入到閘道時停用自己的使用分析,錯誤報告在第三方 API 表面上預設關閉。

256* **用戶端機器**:開發人員的 CLI 仍然向 Anthropic 發送 WebFetch 主機名檢查和版本檢查,除非設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` 和 `skipWebFetchPreflight: true`。請參閱 [資料使用](/zh-TW/data-usage)。

257* **調查評分**:閘道認證停用 Anthropic 綁定評分接收器,因此評分不發送給 Anthropic。

258* **記錄單共享**:在調查的記錄單共享提示上選擇「是」會在 `~/.claude/feedback-bundles/` 下寫入本地檔案,而不是上傳到 Anthropic。

259* **用戶端更新**:更新檢查與閘道流量分開。透過您自己的分發固定版本,如果筆記型電腦不得提取版本,設定 `DISABLE_UPDATES`。`DISABLE_AUTOUPDATER` 只停止背景更新,而 `claude update` 仍然有效。

260* **TLS**:在生產中透過 HTTPS 提供 `public_url`,要麼從閘道自己的監聽器透過 `listen.tls`,要麼從 TLS 終止 ingress 在純 HTTP 副本前面,設定 `listen.public_url`。閘道不拒絕純 HTTP。IdP 必須在生產中提供 HTTPS,Postgres 支援 `?sslmode=require`。在您的 ingress 設定 `Strict-Transport-Security`。

261* **漏洞披露**:遵循 [報告安全問題](/zh-TW/security#reporting-security-issues)

262 

263<h2 id="troubleshooting">

264 故障排除

265</h2>

266 

267如有問題和反饋,請使用 [Claude Code 支援](https://support.claude.com/en/collections/14445694-claude-code),或在 [Claude Code GitHub 儲存庫](https://github.com/anthropics/claude-code/issues) 上開啟問題。報告問題時,請包括:

268 

269* **閘道問題**:相關窗口的閘道 stderr、您的 `gateway.yaml`(祕密已編輯)、閘道版本(顯示在 `/` 的登陸頁面和 `/managed/settings` 上的 `x-cc-gateway-version` 回應標頭中),以及最近變更的內容

270* **登入問題**:開發人員執行 `claude --debug-file ./claude-debug.txt`、重現,並發送該檔案加上相同窗口的閘道審計日誌

271* **推理問題**:請求的模型、配置的上游,以及請求的閘道審計日誌,記錄哪個上游提供了它以及回應狀態

272 

273| 症狀 | 原因 | 修復 |

274| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

275| 開發人員的 `/login` 顯示標準帳戶選擇器而不是 **Cloud 閘道** 螢幕 | `forceLoginMethod` 或 `forceLoginGatewayUrl` 未在該機器上的受管設定中設定 | 將 [受管設定檔案](/zh-TW/claude-apps-gateway#set-the-gateway-url) 部署到設備;`/login` 從那裡讀取閘道 URL |

276| 啟動顯示 `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | 已安裝的 Claude Code 建置早於閘道支援 | 讓開發人員更新 Claude Code 到包含 Cloud 閘道支援的版本 |

277| CLI `/login`:`Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | 閘道主機名解析為至少一個公開 IP 地址。Claude Code 檢查每個解析的地址,並要求每個都是私有的。常見原因是雙堆棧名稱,其中一個系列解析為公開地址,包括 AWS 內部雙堆棧負載平衡器,它們傳回公開範圍 AAAA 地址 | 讓閘道名稱在開發人員機器上只解析為私有地址。對於雙堆棧名稱,刪除公開範圍記錄或提供單獨的僅內部 DNS 名稱。請參閱 [私有網路先決條件](/zh-TW/claude-apps-gateway#prerequisites)。 |

278| CLI `/login`:`Gateway login requires a direct connection and does not support connecting through an HTTP proxy` | `HTTPS_PROXY` 或 `HTTP_PROXY` 適用於閘道主機,代理的主機名解析為公開地址。代理的主機解析為僅私有地址是允許的,不會觸發此錯誤 | 在開發人員的機器上將閘道主機新增到 `NO_PROXY`,以便連接是直接的,或使用主機名解析為私有地址的代理 |

279| CLI `/login`:`Could not resolve gateway host <host>` | 機器無法解析閘道的內部 DNS 名稱,通常是因為它不在公司網路上 | 讓開發人員連接到您的網路或 VPN,然後重試 `/login` |

280| 啟動退出,配置驗證錯誤命名 `store.postgres_url` | 未配置 Postgres;閘道需要 Postgres | 設定 `store.postgres_url`。對於本地開發,使用一次性容器:`docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。 |

281| 啟動退出:`requires the native binary` | 在 Node 下執行而不是原生二進位檔案 | 使用其中一種 [獨立安裝方法](/zh-TW/setup) 安裝 Claude Code |

282| 啟動退出,OIDC 發現錯誤在 `config.load` 之後 | `oidc.issuer` 無法到達,或 TLS 鏈不受信任 | 檢查發行者是否可從 Pod 到達並提供 `/.well-known/openid-configuration`。為私有 PKI 設定 `ca_cert_pem`。 |

283| 啟動退出,Postgres 權限錯誤 | 應用程式角色缺少 `CREATE TABLE` | 使用管理員角色預先建立架構,並授予應用程式角色 DML,或臨時授予 DDL 以進行應用新遷移的啟動 |

284| `/oauth/callback` 顯示「Sign-in could not be completed」 | 電子郵件網域被拒絕、id\_token 驗證失敗,或 `email_verified` 明確為 `false`,閘道始終拒絕,沒有覆蓋 | 檢查 `allowed_email_domains` 以及 IdP 是否傳回驗證的 `email` 聲明。對於 `email_verified: false`,修復 IdP 端驗證。如果您的 IdP 在不同的聲明名稱下發出電子郵件,設定 `oidc.email_claim`。 |

285| 日誌:`token exchange failed: id_token missing email claim` | IdP 預設不在 id\_token 中包含 `email`。此拒絕僅在設定 `allowed_email_domains` 時觸發;沒有它,缺失的電子郵件鑄造沒有電子郵件的會話 | 配置 IdP 在 id\_token 中發出 `email`。Okta:將 `email` 新增到自訂授權伺服器的 ID 令牌聲明。Entra:在應用程式註冊上新增 `email` 作為可選聲明。PingFederate:啟用發出 `email` 的 OpenID Connect 原則。如果 IdP 從 userinfo 端點提供 `email` 但不會在 id\_token 中包含它,例如 Okta 組織授權伺服器,設定 `oidc.userinfo_fallback: true`。 |

286| 每個 Bedrock 請求傳回 502;日誌顯示 `Could not load credentials from any providers` | 在 EC2 上,IMDSv2 的預設躍點限制 1 阻止來自容器內的實例中繼資料請求。啟動和 `/readyz` 仍然通過,因為 AWS SDK 在第一個請求時解析實例認證,而不是在用戶端構造時 | 使用 `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` 提高躍點限制,或在啟動範本中設定它。變更適用於實例上的每個容器。優先選擇 ECS 任務角色(如果可用),它從 ECS 容器認證端點讀取認證,完全避免變更,或在專用閘道實例上應用變更以限制暴露。 |

287| IdP 錯誤:unknown or unsupported scope | IdP 拒絕它不識別的範圍 | 將 `oidc.scopes` 設定為您的 IdP 接受的確切清單;它必須包含 `openid`。預設為 `openid profile email offline_access`。 |

288| 設定 `oidc.scopes` 後會話不無聲更新 | `offline_access` 從覆蓋中被刪除 | 如果您的 IdP 支援,新增 `offline_access` 回來。沒有重新整理令牌,開發人員每 `session.ttl_hours` 重新執行瀏覽器登入。 |

289| 瀏覽器顯示「This request came from another site and was blocked」 | 跨網站表單 POST,被阻止作為 CSRF 保護。嵌入或代理頁面的預期 | 直接開啟驗證連結 |

290| Chrome 使用「Refused to send form data … violates … Content Security Policy directive: form-action」阻止「批准」按鈕,但相同頁面在 Safari 或 Firefox 中有效 | Chrome 對整個重新導向鏈強制執行 `form-action`。您的 IdP 重新導向到不在允許清單中的第二個主機。 | 在 `oidc.form_action_origins` 中新增重新導向鏈中的每個額外來源。在「批准」頁面上開啟 Chrome DevTools → 主控台以查看哪個來源被阻止。 |

291| 簽入在 IdP 完成但回調失敗,Chrome 中出現 CSP 錯誤或 Safari 中出現「this sign-in link has expired」 | IdP 透過 `response_mode=form_post` 傳回代碼,它透過 POST 自動提交到 `/oauth/callback`。Chrome 在嚴格 CSP 下阻止它;Safari 允許提交但回調只讀取查詢字串。 | 確保您的 IdP 遵守 `response_mode=query`,閘道明確請求它,以便回調是純重新導向 |

292| 登入在本地有效但在 ALB 後面失敗 | `public_url` 未設定,因此 IdP 獲得內部 `http://` 來源作為 `redirect_uri` | 將 `listen.public_url` 設定為外部 `https://` 來源 |

293| 開發人員重複看到信任提示 | TLS 憑證按副本或按請求輪換 | 在 ingress 使用穩定憑證,或終止 TLS 一次並在內部透過純 HTTP 執行副本 |

294| CLI `/login`:「Could not verify the gateway's TLS certificate」或 `SELF_SIGNED_CERT_IN_CHAIN` | 閘道的 TLS 鏈由 CLI 主機的信任存儲中不存在的私有 CA 簽署 | Claude Code 預設在原生二進位檔案上讀取 OS 信任存儲,在 Node 22.15 或更新版本上;[`CLAUDE_CODE_CERT_STORE`](/zh-TW/network-config#ca-certificate-store) 控制此行為。如果 CA 安裝在 OS 信任存儲中,確保開發人員在當前執行時上。否則在啟動前將 `NODE_EXTRA_CA_CERTS` 設定為 CA 憑證 PEM。首次連接指紋提示仍然適用。 |

295 

296<h2 id="related">

297 相關

298</h2>

299 

300* [Claude 應用程式閘道概述](/zh-TW/claude-apps-gateway):快速入門和開發人員連接

301* [設定參考](/zh-TW/claude-apps-gateway-config):每個 `gateway.yaml` 選項

claude-apps-gateway-on-gcp.md +330 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# 在 Google Cloud 上部署 Claude 應用程式閘道

6 

7> 在 Google Cloud 上執行 Claude 應用程式閘道的實際範例:Cloud Run 或 GKE、Cloud SQL for PostgreSQL、Secret Manager,以及對 Agent Platform 的服務帳戶驗證。

8 

9<Note>

10 本頁面介紹在 Google Cloud 上執行 Claude 應用程式閘道的一種方式。此配置是客戶管理基礎設施的工作範例,而非受支援的生產部署;使用它來了解各個部分如何組合在一起,然後再根據您自己的環境進行調整。如需平台無關的需求,請參閱[部署指南](/zh-TW/claude-apps-gateway-deploy)。

11</Note>

12 

13此範例在 Google Cloud 上配置 Claude 應用程式閘道,使用 Google Cloud 的 Agent Platform 作為模型上游,並使用 Cloud Run 或 GKE 進行運算。Google Workspace 是範例身分提供者 (IdP),但任何符合 OpenID Connect (OIDC) 的 IdP 都可以使用;只有 `oidc` 區塊會改變。如需各個 IdP 的詳細資訊,請參閱[身分提供者設定](/zh-TW/claude-apps-gateway-deploy#identity-provider-setup)。

14 

15<h2 id="what-you’ll-build">

16 您將建立的內容

17</h2>

18 

19<Frame>

20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Google Cloud 上 Claude 應用程式閘道的圖表:Claude Code 用戶端透過 HTTPS 連接到閘道(Cloud Run 或 GKE),閘道在 VPC 內執行,旁邊有一個私有 IP Cloud SQL 資料庫用於工作階段狀態。閘道透過 OIDC 針對 Google Workspace 簽署使用者,從 Secret Manager 讀取配置和祕密,將模型請求轉發到 Agent Platform,並在部署時從 Artifact Registry 提取其映像。" width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />

21</Frame>

22 

23參考配置會配置:

24 

25* 執行閘道容器的 **Cloud Run** 服務或 **GKE** Deployment

26* 用於閘道映像的 **Artifact Registry** 儲存庫

27* **Cloud SQL for PostgreSQL** 執行個體,僅限私有 IP,用於閘道的[儲存](/zh-TW/claude-apps-gateway-config#store)

28* **Secret Manager** 祕密,用於 `gateway.yaml`、JWT 簽署金鑰、OIDC 用戶端祕密和 Postgres URL

29* **服務帳戶**,具有 `roles/aiplatform.user`,直接附加到 Cloud Run 或透過 GKE 上的 Workload Identity 繫結

30* **內部應用程式負載平衡器**(在 Cloud Run 上),或在 GKE 上使用 `gce-internal` 類別的內部 **GKE Ingress**,用於 HTTPS

31 

32<h2 id="prerequisites">

33 先決條件

34</h2>

35 

36* 啟用計費的 GCP 專案,以及建立上述資源的權限

37* `gcloud` CLI(使用 `gcloud auth login` 驗證)和本機安裝的 Docker

38* 對於 GKE 路徑:`kubectl` 和在下面逐步解說中建立的 VPC 上的 GKE 叢集

39* 在 Model Garden 中存取您需要的 Claude 模型,在發佈這些模型的區域中

40* Google Workspace OAuth 2.0 網路應用程式用戶端,重新導向 URI 為 `https://<gateway-host>/oauth/callback`;請參閱[身分提供者設定](/zh-TW/claude-apps-gateway-deploy#identity-provider-setup)

41* 閘道的 TLS 主機名稱,通常是指向負載平衡器的內部 DNS 名稱

42 

43設定專案和區域一次:

44 

45```bash theme={null}

46export PROJECT_ID=<your-project>

47export REGION=us-east5 # a region where the Claude models you need are published in Model Garden

48gcloud config set project "$PROJECT_ID"

49```

50 

51<h2 id="deploy-the-gateway">

52 部署閘道

53</h2>

54 

55下面的步驟使用 `gcloud` 命令配置完整部署。

56 

57<Steps>

58 <Step title="啟用 API">

59 啟用逐步解說使用的服務 API:

60 

61 ```bash theme={null}

62 gcloud services enable \

63 aiplatform.googleapis.com \

64 artifactregistry.googleapis.com \

65 sqladmin.googleapis.com \

66 secretmanager.googleapis.com \

67 iamcredentials.googleapis.com \

68 iam.googleapis.com \

69 compute.googleapis.com \

70 servicenetworking.googleapis.com \

71 run.googleapis.com \

72 container.googleapis.com

73 ```

74 

75 您需要的 API 取決於部署路徑:

76 

77 * `compute` 和 `servicenetworking`:私有 IP Cloud SQL 路徑所需

78 * `run`:僅限 Cloud Run

79 * `container`:僅限 GKE

80 </Step>

81 

82 <Step title="建立服務帳戶並授予 IAM">

83 閘道以專用服務帳戶執行,具有呼叫 Agent Platform 的權限。它透過 VPC 使用密碼使用者到達 Cloud SQL,因此不需要 Cloud SQL IAM 角色:

84 

85 ```bash theme={null}

86 gcloud iam service-accounts create claude-gateway --display-name="Claude apps gateway"

87 SA="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

88 

89 gcloud projects add-iam-policy-binding "$PROJECT_ID" \

90 --member="serviceAccount:${SA}" --role="roles/aiplatform.user" --condition=None

91 ```

92 

93 然後在 Model Garden 中為專案啟用 Claude 模型;模型發佈到特定區域,因此請檢查每個模型卡。

94 </Step>

95 

96 <Step title="建立映像並推送到 Artifact Registry">

97 根據[容器映像需求](/zh-TW/claude-apps-gateway-deploy#container-image)建立映像,使用 `linux-x64` glibc 二進位檔,並推送它:

98 

99 ```bash theme={null}

100 gcloud artifacts repositories create claude-gateway \

101 --repository-format=docker --location="$REGION"

102 gcloud auth configure-docker "${REGION}-docker.pkg.dev" --quiet

103 

104 # Cloud Run requires linux/amd64. --provenance=false avoids a buildx OCI

105 # image index that Cloud Run rejects.

106 docker build --platform=linux/amd64 --provenance=false \

107 -t "${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" .

108 docker push "${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>"

109 ```

110 </Step>

111 

112 <Step title="配置 Cloud SQL for PostgreSQL">

113 透過 Private Services Access 在 VPC 上建立執行個體,使其沒有公用 IP;這也滿足強制執行 `constraints/sql.restrictPublicIp` 的專案:

114 

115 ```bash theme={null}

116 VPC=cc-gateway-vpc

117 gcloud compute networks create "$VPC" --subnet-mode=custom

118 gcloud compute networks subnets create cc-gateway-subnet \

119 --network="$VPC" --region="$REGION" --range=10.0.0.0/24

120 

121 # Private Services Access: one-time per VPC

122 gcloud compute addresses create "google-managed-services-${VPC}" \

123 --global --purpose=VPC_PEERING --prefix-length=16 --network="$VPC"

124 gcloud services vpc-peerings connect \

125 --service=servicenetworking.googleapis.com \

126 --ranges="google-managed-services-${VPC}" --network="$VPC"

127 

128 gcloud sql instances create claude-gateway-db \

129 --database-version=POSTGRES_16 --tier=db-g1-small --region="$REGION" \

130 --network="projects/${PROJECT_ID}/global/networks/${VPC}" --no-assign-ip

131 gcloud sql databases create claude_gateway --instance=claude-gateway-db

132 PGPASS="$(openssl rand -hex 24)"

133 gcloud sql users create gateway --instance=claude-gateway-db --password="$PGPASS"

134 

135 PRIVATE_IP="$(gcloud sql instances describe claude-gateway-db \

136 --format='value(ipAddresses[0].ipAddress)')"

137 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${PRIVATE_IP}:5432/claude_gateway?sslmode=require"

138 ```

139 

140 Cloud Run 或 GKE 執行時必須在此 VPC 上或路由到此 VPC。

141 </Step>

142 

143 <Step title="撰寫 gateway.yaml">

144 `upstreams` 區塊使用 `auth: {}` 指向 Agent Platform,因此閘道透過執行時服務帳戶的應用程式預設認證進行驗證。如需每個欄位,請參閱[配置參考](/zh-TW/claude-apps-gateway-config)。

145 

146 兩個 `listen` 欄位取決於什麼在閘道前面:

147 

148 * `public_url`:在 Cloud Run 或 GKE Ingress 後面時為必需。閘道僅從此值建立 IdP `redirect_uri` 和其探索文件,絕不從 `X-Forwarded-*` 標頭建立。

149 * `trusted_proxies`:前端的來源範圍。閘道僅在 TCP 對等在此清單中時才接受 `X-Forwarded-For`,然後在受信任的躍點之後遍歷鏈,因此每個 IP 登入速率限制和稽核事件會記錄開發人員 IP 而不是負載平衡器的 IP。

150 

151 設定 `trusted_proxies` 以符合您的前端。`gce` 類別的外部 GKE Ingress 未列出:它配置公用轉送規則位址,`/login` [私人網路檢查](/zh-TW/claude-apps-gateway#prerequisites)會拒絕該位址。

152 

153 | 前端 | `trusted_proxies` |

154 | -------------------------------- | ---------------------------------- |

155 | 直接到達的 Cloud Run,無負載平衡器 | `[169.254.0.0/16]` |

156 | Cloud Run 前面的內部應用程式負載平衡器 | `169.254.0.0/16` 加上您的僅限代理子網路的 CIDR |

157 | GKE 內部 Ingress,類別 `gce-internal` | 您的僅限代理子網路的 CIDR |

158 

159 下面的範例使用內部負載平衡器前面的 Cloud Run 值。

160 

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

162 listen:

163 host: 0.0.0.0

164 port: 8080

165 public_url: https://claude-gateway.internal.example.com

166 trusted_proxies: [169.254.0.0/16, <your-proxy-only-subnet-cidr>]

167 

168 oidc:

169 issuer: https://accounts.google.com

170 client_id: <your-oauth-client-id>

171 client_secret: ${OIDC_CLIENT_SECRET} # GKE: ${file:/secrets/oidc-client-secret}

172 allowed_email_domains: [example.com]

173 # Google ignores offline_access; these yield refresh tokens:

174 scopes: [openid, profile, email]

175 extra_auth_params: { access_type: offline, prompt: consent }

176 

177 session:

178 jwt_secret: ${GATEWAY_JWT_SECRET} # GKE: ${file:/secrets/jwt-secret}

179 

180 store:

181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}

182 

183 upstreams:

184 - provider: vertex

185 region: <your-region> # must match $REGION

186 project_id: <your-project>

187 auth: {} # ADC via the runtime service account

188 ```

189 

190 <Note>

191 Google id\_tokens 不包含 `groups` 聲明。若要在 [`managed.policies`](/zh-TW/claude-apps-gateway-config#managed) 中使用基於群組的原則,並以 Google Workspace 作為 IdP,請配置 [`oidc.google_groups`](/zh-TW/claude-apps-gateway-config#oidc),它使用具有網域範圍委派的服務帳戶透過 Admin SDK Directory API 查詢每個使用者的群組。沒有它,改為符合 `email_domain`。

192 </Note>

193 </Step>

194 

195 <Step title="在 Secret Manager 中儲存祕密">

196 建立四個祕密並授予 `roles/secretmanager.secretAccessor` 給 `claude-gateway` 服務帳戶:

197 

198 | 祕密 | 來源 |

199 | ---------------------------- | -------------------------------------- |

200 | `gateway-jwt-secret` | `openssl rand -base64 32` |

201 | `gateway-oidc-client-secret` | Google Cloud Console → OAuth 用戶端 |

202 | `gateway-postgres-url` | Cloud SQL 步驟中的 `$GATEWAY_POSTGRES_URL` |

203 | `gateway-config` | 前一步驟中的完整 `gateway.yaml` |

204 

205 祕密到達容器的方式因路徑而異:

206 

207 * 在 GKE 上,它們透過 Secret Manager CSI 驅動程式掛載為檔案,`gateway.yaml` 參考 `${file:/secrets/...}`。

208 * 在 Cloud Run 上,它無法將多個祕密掛載到一個目錄中,`gateway.yaml` 掛載為檔案,其他三個注入為環境變數,因此 `gateway.yaml` 改為參考 `${GATEWAY_JWT_SECRET}`、`${OIDC_CLIENT_SECRET}` 和 `${GATEWAY_POSTGRES_URL}`。

209 </Step>

210 

211 <Step title="部署">

212 <Tabs>

213 <Tab title="Cloud Run">

214 下面的命令在內部負載平衡器後面部署用於生產。

215 

216 ```bash theme={null}

217 gcloud run deploy claude-gateway \

218 --image="${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" \

219 --region="$REGION" \

220 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

221 --min-instances=1 \

222 --timeout=3600 \

223 --ingress=internal-and-cloud-load-balancing \

224 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

225 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

226 --no-invoker-iam-check

227 ```

228 

229 直接 VPC 出口(透過 `--network`、`--subnet` 和 `--vpc-egress=private-ranges-only`)讓服務直接到達 Cloud SQL 私有 IP。對 Agent Platform 端點和 `accounts.google.com` 的公用出口直接進入網際網路,而不是透過 VPC,因此不需要 Cloud NAT。

230 

231 呼叫者 IAM 檢查必須開啟或停用。閘道執行自己的 OIDC,其用戶端不攜帶 GCP 令牌,因此 Cloud Run 的呼叫者檢查必須允許未驗證的請求。閘道的 OIDC 登入在請求到達容器後驗證請求,使用 `allowed_email_domains` 限制哪些網域可以登入。

232 

233 兩個旗標允許未驗證的請求:

234 

235 * `--no-invoker-iam-check`:停用檢查,無需管理 `allUsers` 繫結,並在網域受限共用下工作

236 * `--allow-unauthenticated`:授予 `allUsers` `run.invoker` 角色;如果您的組織不允許 `--no-invoker-iam-check`,請使用它

237 

238 透過 `--ingress` 的入口限制是與呼叫者檢查獨立的單獨層;保持設定以將服務限制在您的公司網路。

239 

240 預設情況下,Cloud Run `*.run.app` URL 解析為公用位址,`/login` [私人網路檢查](/zh-TW/claude-apps-gateway#prerequisites)會拒絕該位址。兩個拓撲為開發人員提供私人可解析的主機名稱,Cloud Run 都不為您配置:

241 

242 * **內部應用程式負載平衡器**,上面部署命令假設的拓撲:使用 `--ingress=internal-and-cloud-load-balancing` 部署,在服務前面配置內部應用程式負載平衡器,具有內部 DNS 名稱和憑證,並將 `listen.public_url` 設定為該主機名稱。

243 * **僅限內部入口,無負載平衡器**:使用 `--ingress=internal` 部署,並將 `listen.public_url` 保留為 `*.run.app` URL,下面[參考資產](#terraform-reference)中的預設值。若要 `*.run.app` 私下解析,您的網路團隊必須已經為 Google API 操作 Private Service Connect 端點、解析 `*.run.app` 到它的 Cloud DNS 私人區域,以及到該端點的內部部署路由。

244 

245 Google 的 [Cloud Run 私人網路指南](https://cloud.google.com/run/docs/securing/private-networking)涵蓋兩個選項都需要的基礎設施。一旦閘道在私人主機名稱上提供服務,驗證登入;在此之前,從 Cloud Run 中的日誌確認容器已啟動。

246 

247 在第一次登入之前,將 OAuth 用戶端的授權重新導向 URI 更新為 `<public_url>/oauth/callback`。變更 `public_url` 後重新部署,因為閘道僅從該設定建立其公用來源,並忽略 `X-Forwarded-Host` 和 `X-Forwarded-Proto`。僅當設定 `listen.trusted_proxies` 時,才接受 `X-Forwarded-For` 用於用戶端 IP。

248 </Tab>

249 

250 <Tab title="GKE">

251 叢集必須在 Cloud SQL 步驟中建立的 `$VPC` 上,以便 Pod 可以到達資料庫的私有 IP;VPC 對等單獨不起作用,因為 Cloud SQL 私有 IP 本身是對等網路,對等是非傳遞的。若要在該 VPC 上建立新叢集,請將 `--network="$VPC" --subnetwork=cc-gateway-subnet` 傳遞給 `gcloud container clusters create`。

252 

253 在叢集及其節點池上啟用 Workload Identity,然後將 Google 服務帳戶繫結到 Kubernetes 服務帳戶,以便 Pod 繼承其認證:

254 

255 ```bash theme={null}

256 gcloud container clusters update <cluster> --region="$REGION" \

257 --workload-pool="${PROJECT_ID}.svc.id.goog"

258 # On a Standard cluster, existing node pools also need GKE_METADATA;

259 # Autopilot enables this by default.

260 gcloud container node-pools update <pool> --cluster=<cluster> \

261 --region="$REGION" --workload-metadata=GKE_METADATA

262 

263 kubectl create namespace claude-gateway

264 kubectl create serviceaccount gateway -n claude-gateway

265 

266 gcloud iam service-accounts add-iam-policy-binding \

267 "claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

268 --role roles/iam.workloadIdentityUser \

269 --member "serviceAccount:${PROJECT_ID}.svc.id.goog[claude-gateway/gateway]"

270 

271 kubectl annotate serviceaccount gateway -n claude-gateway \

272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

273 ```

274 

275 將閘道部署為標準 Deployment 加上 Service 和內部 Ingress,類別 `gce-internal`,如 [Kubernetes 部署](/zh-TW/claude-apps-gateway-deploy#kubernetes)中所述,具有:

276 

277 * `serviceAccountName: gateway`

278 * Secret Manager CSI 驅動程式在 `/secrets` 掛載祕密

279 * 就緒探針指向 `GET /readyz`

280 

281 將具有提高 `timeoutSec` 的 BackendConfig 附加到閘道 Service:GKE Ingress 後面的負載平衡器後端服務預設為 30 秒超時,這會切斷長串流回應。

282 

283 不要在 Workload Identity 叢集上應用阻止 `169.254.169.254` 的出口 NetworkPolicy;Pod 必須到達中繼資料伺服器以取得認證。閘道的內建 [SSRF 防護](/zh-TW/claude-apps-gateway-deploy#threat-model-summary)是那裡的防禦。

284 

285 閘道記錄啟動警告,指出中繼資料端點可到達,並建議應用出口 NetworkPolicy。在 Workload Identity 下,該警告是預期的,因為 Pod 需要端點。

286 </Tab>

287 </Tabs>

288 </Step>

289 

290 <Step title="將閘道 URL 推送到開發人員機器">

291 閘道現在正在執行,但開發人員在透過 MDM 部署的[受管設定檔](/zh-TW/claude-apps-gateway#set-the-gateway-url)中設定 `forceLoginMethod` 和 `forceLoginGatewayUrl` 之前,無法從 `/login` 到達它。沒有閘道選項供開發人員在登入選擇器中手動選擇。

292 </Step>

293</Steps>

294 

295<h2 id="terraform-reference">

296 Terraform 參考

297</h2>

298 

299[參考部署資產](https://github.com/anthropics/claude-code/tree/main/examples/gateway/gcp)自動化本頁面上的 Cloud Run 路徑;配置和映像資產適用於兩個路徑:

300 

301* `setup.sh`:一個冪等 `gcloud` 配置程式,遍歷完整的 Cloud Run 路徑,從啟用 API 到第一次部署

302* `terraform/`:相同的部署作為基礎設施即程式碼,用於綠地部署:針對性應用以建立 Artifact Registry 儲存庫,然後建立和推送映像,然後完整應用

303* `gateway.yaml.example` 和用於 distroless 執行時映像的 `Dockerfile`

304 

305工件預設 Cloud Run 入口為 `internal`,因此不需要負載平衡器。若要符合本頁面的生產後 ALB 部署,使用 `INGRESS=internal-and-cloud-load-balancing` 執行 `setup.sh`,或將 Terraform 變數 `ingress` 設定為 `INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER`。工件也預設呼叫者層為 `allUsers` `run.invoker` 授予,而不是 `--no-invoker-iam-check`,與本頁面逐步解說相反;兩者都有效,選擇取決於您的組織的原則限制。

306 

307資產作為工作範例提供,而非受支援的生產工件;檢查並根據您的環境調整它們。

308 

309<h2 id="troubleshooting">

310 疑難排解

311</h2>

312 

313如需閘道啟動和登入錯誤,請參閱平台無關的[疑難排解表](/zh-TW/claude-apps-gateway-deploy#troubleshooting)。下面的項目特定於 Google Cloud。

314 

315| 症狀 | 原因 | 修正 |

316| --------------------------------------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |

317| Cloud Run 在到達容器之前返回 `403 Forbidden` | 呼叫者 IAM 檢查仍然啟用 | 使用 `--no-invoker-iam-check` 部署,或使用 `--allow-unauthenticated` 授予 `allUsers` `run.invoker` 角色 |

318| `--no-invoker-iam-check` 被拒絕,出現 `invoker_iam_disabled is not currently available` | 被 `constraints/run.managed.requireInvokerIam` 阻止 | 使用 `--allow-unauthenticated`。如果透過 `constraints/iam.allowedPolicyMemberDomains` 的網域受限共用也阻止了它,請使用 GKE 路徑,它在網路層公開閘道,無需 `allUsers` 繫結。 |

319| 部署時 `Container manifest type … must support amd64/linux` | 映像在非 amd64 主機上建立,或 buildx 發出了 OCI 映像索引 | 使用 `--platform=linux/amd64 --provenance=false` 建立 |

320| 閘道啟動在 Cloud Run 上以 Postgres 連線逾時錯誤退出 | 服務未附加到 VPC,或 Cloud SQL 在該 VPC 上沒有私有 IP;儲存在 5 秒後停止等待 | 使用 `--network` 和 `--subnet` 部署以進行直接 VPC 出口,並使用 `--no-assign-ip` 和指向相同 VPC 的 `--network` 建立 Cloud SQL 執行個體 |

321| Agent Platform 請求返回 `403 PERMISSION_DENIED` | 執行時未使用 `claude-gateway` 服務帳戶,或模型未在 Model Garden 中為專案啟用 | 在 Cloud Run 上設定 `--service-account` 或在 GKE 上繫結 Workload Identity,並在 Model Garden 中為目標區域啟用每個 Claude 模型 |

322| 串流回應在固定持續時間後切斷 | 前端請求超時:GKE Ingress 後面的負載平衡器後端服務預設為 30 秒,Cloud Run 預設為 300 秒 | 在 GKE 上附加具有提高 `timeoutSec` 的 BackendConfig,或在 Cloud Run 上使用 `--timeout=3600` 部署 |

323 

324<h2 id="next-steps">

325 後續步驟

326</h2>

327 

328* [配置參考](/zh-TW/claude-apps-gateway-config):每個 `gateway.yaml` 選項,包括 `managed.policies` 和 `telemetry`

329* [部署和操作](/zh-TW/claude-apps-gateway-deploy):IdP 設定、健康檢查、JWT 祕密輪換、升級和安全模型

330* [Claude 應用程式閘道概述](/zh-TW/claude-apps-gateway):快速入門和連接開發人員

Details

1> ## Documentation Index

2> 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.

4 

5# Claude 應用程式閘道支出限制

6 

7> 透過 Claude 應用程式閘道限制每位開發人員的每日、每週或每月支出。使用管理員 API 設定限制,閘道會在每個請求上即時執行這些限制。

8 

9支出限制會限制每位開發人員在指定的一天、一週或一個月內透過您的 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway) 可以花費的金額。當開發人員超過其限制時,閘道會在他們的下一個請求上返回 `429`,並在該期間重置或管理員提高限制之前阻止他們。使用支出限制為每位開發人員、群組或整個組織設定共享認證的上限。

10 

11Claude 應用程式閘道會透過一個共享的上游認證轉發所有推論,因此您的提供商的帳單會將所有內容歸屬於該認證,而不是個別開發人員。沒有按開發人員的限制,一個失控的代理程式群隊可能會花費組織的整個承諾。支出限制是閘道在該共享帳單之上的按開發人員檢視和斷路器。

12 

13<h2 id="set-a-cap">

14 設定上限

15</h2>

16 

17配置了 [`admin:`](/zh-TW/claude-apps-gateway-config#admin) 區塊在 `gateway.yaml` 中後,閘道會在 `/v1/organizations/spend_limits` 提供管理員 API,並在每個推論請求上即時執行上限。上限本身是透過該 API 設定的,而不是在 `gateway.yaml` 中;每個 `POST /v1/organizations/spend_limits` 請求會從 `{scope, amount, period}` 建立或替換一個上限。該 API 鏡像了 Anthropic 公開 [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api) 支出限制端點的線路形狀,因此針對該合約編寫的 HTTP 用戶端可以透過變更其基礎 URL 來針對閘道。

18 

19此請求為每位開發人員設定組織範圍的預設值,每月 \$500:

20 

21```bash theme={null}

22curl -sS https://claude-gateway.internal.example.com/v1/organizations/spend_limits \

23 -H "x-api-key: $GATEWAY_ADMIN_WRITE_KEY" \

24 -H "Content-Type: application/json" \

25 -d '{"scope": {"type": "organization"}, "amount": "50000", "period": "monthly"}'

26```

27 

28此請求在 `contractors` 群組的每位成員上分層設定更嚴格的每日 \$100 上限:

29 

30```bash theme={null}

31curl -sS https://claude-gateway.internal.example.com/v1/organizations/spend_limits \

32 -H "x-api-key: $GATEWAY_ADMIN_WRITE_KEY" \

33 -H "Content-Type: application/json" \

34 -d '{"scope": {"type": "rbac_group", "rbac_group_id": "contractors"}, "amount": "10000", "period": "daily"}'

35```

36 

37| 欄位 | 值 | 說明 |

38| ------------ | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

39| `scope.type` | `user`、`rbac_group`、`organization` | `user` 透過其 OpenID Connect (OIDC) `sub`(您的身份提供商指派的穩定使用者 ID)針對一位開發人員;將其作為 `scope.user_id` 傳遞。`rbac_group` 透過名稱針對 [IdP 群組](/zh-TW/claude-apps-gateway-config#managed);將其作為 `scope.rbac_group_id` 傳遞。`organization` 是組織範圍的預設值。閘道接受全部三種;Anthropic 的公開 `POST` 目前僅限使用者。 |

40| `amount` | USD 美分的整數字串,或 `null` | `null` 表示無限制。`"0"` 是零上限,會阻止每個請求。 |

41| `period` | `daily`、`weekly`、`monthly` | 一個範圍可以為每個期間保持一個上限,每個都獨立執行:如果開發人員超過其中任何一個,就會被阻止。 |

42 

43群組或組織上限是每位成員繼承的按座位預設值,而不是共享池。每個期間,開發人員的有效上限按此順序解析:按使用者覆蓋、其群組上限中最嚴格的、組織預設值,然後無限制。[`admin.group_limit_mode: max`](/zh-TW/claude-apps-gateway-config#admin) 會將多群組平局決勝改為最寬鬆的。

44 

45<h3 id="authenticate-to-the-admin-api">

46 向管理員 API 進行身份驗證

47</h3>

48 

49傳送以下其中之一:

50 

51* 與 [`admin.write_keys`](/zh-TW/claude-apps-gateway-config#admin) 中的金鑰相符的 `x-api-key` 標頭以獲得完全存取權限,或 `admin.read_keys` 以獲得僅 `GET` 存取權限。每個金鑰都帶有一個 `id`,在稽核日誌中顯示為 `admin-key:<id>`,因此為 Terraform、CI 和每個自動化提供各自的金鑰。

52* 其 `groups` 聲明包含 [`admin.admin_groups`](/zh-TW/claude-apps-gateway-config#admin) 之一的閘道持有人令牌。這是完全存取權限,稽核為 `oidc:<sub>`,因此對人類管理員更好。

53 

54<h2 id="how-enforcement-works">

55 執行方式

56</h2>

57 

58在每個 `/v1/messages` 請求上,閘道在一個 Postgres 查詢中解析開發人員的上限和期間至今的支出。如果他們超過任何上限,請求會返回 `429`,其中 `error.type: billing_error` 和標頭 `x-should-retry: false`。訊息是 `spend limit reached`,後面跟著您的 [`admin.blocked_message`](/zh-TW/claude-apps-gateway-config#admin)(如果已設定)。

59 

60`/v1/messages/count_tokens` 被豁免。令牌計數是免費的,因此無論上限狀態如何都會執行。

61 

62在每個回應之後,使用量計量器從回應中讀取令牌計數,當其流向用戶端時,以 USD 列表價格對其進行定價,並為所有三個期間儲存桶增加 Postgres 計數器。計量器是流上的單一讀取器,因此用戶端的位元組不受影響,計量失敗不會破壞回應。

63 

64支出限制根據 USD 列表價格的令牌計數估計支出;它們是斷路器,而不是發票。如需權威計費,請根據您提供商自己的使用情況報告進行協調,例如 Anthropic 使用情況與成本管理員 API、Bedrock 上的呼叫日誌或 Google Cloud 上的雲端監控。

65 

66定價使用與 Claude Code CLI 用於自己的成本顯示相同的表格,在 Anthropic、Bedrock (`us.anthropic.…-v1:0`)、Agent Platform (`claude-…@date`) 和 Foundry ID 形式中具有相同的模型 ID 規範化。表格無法識別的模型 ID(例如 Foundry 部署名稱或推論設定檔 ARN)以未知模型預設層級 \$5/\$25 每百萬輸入/輸出令牌定價,而不是零,因此無法識別的 ID 無法透過不計量來繞過上限。閘道在啟動時和執行時每個 ID 一次警告當模型透過後備定價時。

67 

68用戶端中止也會被計費。上游僅在流的終端框架中報告輸出令牌,因此中止的流不會攜帶它們。計量器從流式內容大小保持保守的下限估計,約每令牌四個字元,並在終端使用量框架遺失時計費。完整流始終計費上游報告的計數。沒有這個,被限制的開發人員可以流式傳輸輸出並在結束前立即中止每個請求,花費而不被計數。

69 

70<h3 id="postgres-availability">

71 Postgres 可用性

72</h3>

73 

74預檢查使用兩秒超時查詢 Postgres。如果存儲無法到達或超時,執行預設會開放失敗:請求繼續進行,閘道記錄警告。設定 [`enforcement.fail_closed_on_error: true`](/zh-TW/claude-apps-gateway-config#enforcement) 改為關閉失敗,這會返回相同的 `429 billing_error`,訊息為 `spend limit unavailable`。開放失敗可防止存儲中斷成為推論中斷;關閉失敗保證沒有無計量支出。

75 

76<h2 id="admin-api-reference">

77 管理員 API 參考

78</h2>

79 

80以下端點在 `/v1/organizations/spend_limits` 下提供。

81 

82| 方法和路徑 | 說明 |

83| ---------------------------------------------- | ---------------------------------------------- |

84| `GET /v1/organizations/spend_limits` | 列出已配置的上限。查詢:`?limit=&after_id=&before_id=`。 |

85| `POST /v1/organizations/spend_limits` | 為 `{scope, period}` 建立或替換上限。 |

86| `GET /v1/organizations/spend_limits/{id}` | 透過其 `spl_` 前綴 ID 擷取一個上限。 |

87| `DELETE /v1/organizations/spend_limits/{id}` | 刪除一個上限。返回 `{type: "spend_limit_deleted", id}`。 |

88| `GET /v1/organizations/spend_limits/effective` | 每個主體每個期間的已解析上限和至今支出。 |

89| `GET /v1/organizations/spend_limits/audit` | 管理員變更軌跡,最新優先。查詢:`?limit=`。 |

90 

91慣例鏡像 Anthropic 的管理員 API:

92 

93* 每個物件上的 `type`

94* `spl_` 前綴 ID

95* 金額為 USD 美分的整數字串;`POST` 拒絕任何其他 `currency`,返回 `400`

96* `{type: "error", error: {type, message}, request_id}` 錯誤信封

97* 每個管理員回應上的 `request-id` 回應標頭,成功或錯誤,與正文的 `request_id` 相符

98 

99每個變更在同一交易中向 `admin_audit` 寫入前/後行,歸屬於 `admin-key:<id>` 或 `oidc:<sub>`。

100 

101閘道僅提供支出限制端點。其他管理員 API 表面(例如 `spend_limit_increase_requests` 佇列)不是閘道管理員 API 的一部分。

102 

103<h3 id="/effective">

104 `/effective`

105</h3>

106 

107`GET /v1/organizations/spend_limits/effective` 返回 Anthropic 的 `SpendSummary` 架構:每行是一個主體的一個期間,具有已解析的上限、期間至今的支出和一個 `actor` 物件。閘道特定的差異:

108 

109* `user_id` 是 OIDC `sub`。

110* `actor.name` 和 `actor.email_address` 為 `null`,直到主體透過閘道的第一個推論請求。閘道沒有使用者目錄;它從每個使用者自己的工作階段 JWT 記錄最後看到的值。

111* 每行也帶有一個 `groups` 陣列,主體最後看到的 IdP 群組。這是一個閘道擴充,因此管理員 UI 可以顯示適用的每個上限層級;Anthropic 形狀的用戶端會忽略它。

112* 沒有 `user_ids[]` 篩選,它列出有記錄支出的主體,因為閘道無法列舉所有組織成員。

113 

114群組來源的上限根據那些最後看到的群組解析,使用與執行相同的 `group_limit_mode` 平局決勝,因此檢視器顯示實際適用的上限。

115 

116| 查詢參數 | 說明 |

117| ---------------- | ----------------------------------------------- |

118| `user_ids[]` | 可重複。按 OIDC `sub` 篩選到特定主體。 |

119| `period[]` | 可重複。篩選到 `daily`、`weekly` 或 `monthly` 行。 |

120| `sort` | `spend_desc` 首先列出最高支出者。需要恰好一個 `period[]`。 |

121| `q` | 不區分大小寫的子字串篩選,涵蓋 OIDC `sub`、最後看到的電子郵件和最後看到的顯示名稱。 |

122| `limit` / `page` | 頁面大小(1–1000,預設 20)和前一個回應的 `next_page` 中的不透明游標。 |

123 

124<Warning>

125 `q=` 和 `user_ids[]=` 乘坐 GET 查詢字串,因此任何前置代理或負載平衡器都會在其存取日誌中擷取它們。如果您的 PII 日誌原則很嚴格,請在那裡清理這些參數。

126</Warning>

127 

128<h3 id="/audit">

129 `/audit`

130</h3>

131 

132返回支出限制變更軌跡:誰變更了哪個上限、前/後快照和選擇性原因,最新優先。`has_more` 是精確的。此端點遵循本地管理員 API 慣例,而不是第一方線路形狀。

133 

134<h3 id="pagination">

135 分頁

136</h3>

137 

138原始列表按 `after_id` 和 `before_id` 分頁,它們是互斥的 `spl_…` ID;結果按建立排序,`has_more` 反映遍歷方向。`/effective` 按傳回的不透明 `next_page` 令牌分頁,作為 `?page=` 傳遞,主體按升序排序,因此在記錄支出時頁面保持穩定。`limit` 在兩者上都是 1–1000,預設 20。

139 

140<h2 id="data-lifecycle">

141 資料生命週期

142</h2>

143 

144閘道保持四個支出相關表;每小時掃描執行保留視窗:

145 

146| 表格 | 內容 | 保留 |

147| ------------------ | ---------------------------------- | --------------------------------------------------------------------------------------- |

148| `spend` | 按主體期間至今計數器(美分) | [`admin.spend_retention_months`](/zh-TW/claude-apps-gateway-config#admin),預設 13 |

149| `spend_limits` | 已配置的上限 | 直到透過 API 刪除 |

150| `admin_audit` | 變更軌跡 | [`admin.audit_retention_days`](/zh-TW/claude-apps-gateway-config#admin),預設 365 |

151| `principal_emails` | 每個主體最後看到的電子郵件、顯示名稱和 IdP 群組。包含 PII。 | [`admin.identity_retention_days`](/zh-TW/claude-apps-gateway-config#admin) 自上次活動起,預設 90 |

152 

153`identity_retention_days` 刻意短於 `spend_retention_months`:已取消佈建的身份停止重新整理並老化,而其匿名支出計數器保留用於年度比較報告。

154 

155當開發人員離開時,透過 `DELETE /v1/organizations/spend_limits/{id}` 刪除任何按使用者上限;其支出和身份行按上述保留視窗老化。若要立即清除一個人,用於離職或資料主體存取請求 (DSAR),直接針對閘道資料庫執行 `DELETE FROM principal_emails WHERE principal = '<sub>'`。這會移除唯一保持其電子郵件、名稱和群組的表格。`spend` 和 `admin_audit` 行僅參考偽匿名 OIDC `sub`,並按其自己的視窗老化。

156 

157<h2 id="related">

158 相關

159</h2>

160 

161* [`admin` 和 `enforcement` 配置](/zh-TW/claude-apps-gateway-config#admin):啟用管理員 API 和調整保留

162* [部署指南](/zh-TW/claude-apps-gateway-deploy#postgres):Postgres 架構和備份指導

Details

63 雲端工作階段中可用的內容63 雲端工作階段中可用的內容

64</h3>64</h3>

65 65 

66雲端工作階段從您的儲存庫的新複製開始。任何提交到儲存庫的內容都可用。您只在自己的機器上安裝或配置的任何內容都不可用您的組織的政策通過[伺服器管理的設定](/zh-TW/server-managed-settings)單獨到達。66雲端工作階段從您的儲存庫的新複製開始。任何提交到儲存庫的內容都可用。您只在自己的機器上安裝或配置的任何內容都不可用您的組織的政策通過[伺服器管理的設定](/zh-TW/server-managed-settings)單獨到達。

67 67 

68| | 在雲端工作階段中可用 | 原因 |68| | 在雲端工作階段中可用 | 原因 |

69| :------------------------------------------------------------------ | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |69| :------------------------------------------------------------------ | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


81| 靜態 API 令牌和認證 | 否 | 尚不存在專用的秘密存儲。請參閱下文 |81| 靜態 API 令牌和認證 | 否 | 尚不存在專用的秘密存儲。請參閱下文 |

82| 互動式驗證,如 AWS SSO | 否 | 不支援。SSO 需要無法在雲端工作階段中執行的基於瀏覽器的登入 |82| 互動式驗證,如 AWS SSO | 否 | 不支援。SSO 需要無法在雲端工作階段中執行的基於瀏覽器的登入 |

83 83 

84若要在雲端工作階段中提供您自己的配置,請將其提交到儲存庫;組織政策通過[伺服器管理的設定](/zh-TW/server-managed-settings)單獨到達。尚不可用專用的秘密存儲。環境變數和設定指令碼都存儲在環境配置中,對任何可以編輯該環境的人可見。如果您需要雲端工作階段中的秘密,請將它們新增為環境變數,並考慮該可見性。84若要在雲端工作階段中提供您自己的配置,請將其提交到儲存庫;組織政策通過[伺服器管理的設定](/zh-TW/server-managed-settings)單獨到達。

85 

86尚不可用專用的秘密存儲。環境變數和設定指令碼都存儲在環境配置中,對任何可以編輯該環境的人可見。如果您需要雲端工作階段中的秘密,請將它們新增為環境變數,並考慮該可見性。

85 87 

86<h3 id="installed-tools">88<h3 id="installed-tools">

87 已安裝的工具89 已安裝的工具


186| 封存環境 | 開啟環境進行編輯並選擇**封存**。封存的環境隱藏在選擇器中,但現有工作階段繼續執行。 |188| 封存環境 | 開啟環境進行編輯並選擇**封存**。封存的環境隱藏在選擇器中,但現有工作階段繼續執行。 |

187| 為 `--remote` 設定預設值 | 在您的終端中執行 `/remote-env`。如果您有單一環境,此命令顯示您目前的配置。`/remote-env` 僅選擇預設值;從網頁介面新增、編輯和封存環境。 |189| 為 `--remote` 設定預設值 | 在您的終端中執行 `/remote-env`。如果您有單一環境,此命令顯示您目前的配置。`/remote-env` 僅選擇預設值;從網頁介面新增、編輯和封存環境。 |

188 190 

189環境變數使用 `.env` 格式,每行一個 `KEY=value` 對。不要用引號包裝值,因為引號會存儲為值的一部分。191環境變數使用 `.env` 格式,每行一個 `KEY=value` 對。不要用引號包裝值,因為引號會存儲為值的一部分。此範例定義三個變數:

190 192 

191```text theme={null}193```text theme={null}

192NODE_ENV=development194NODE_ENV=development


593 * \*.sentry.io595 * \*.sentry.io

594 * downloads.sentry-cdn.com596 * downloads.sentry-cdn.com

595 * http-intake.logs.datadoghq.com597 * http-intake.logs.datadoghq.com

598 * browser-intake-us5-datadoghq.com

596 * \*.datadoghq.com599 * \*.datadoghq.com

597 * \*.datadoghq.eu600 * \*.datadoghq.eu

598 * api.honeycomb.io601 * api.honeycomb.io


641 644 

642這會在 claude.ai 上建立新的雲端工作階段。工作階段複製您目前目錄的 GitHub 遠端,位於您目前的分支,因此如果您有本機提交,請先推送,因為 VM 從 GitHub 而不是您的機器複製。`--remote` 一次適用於單一儲存庫。任務在雲端執行,而您繼續在本機工作。645這會在 claude.ai 上建立新的雲端工作階段。工作階段複製您目前目錄的 GitHub 遠端,位於您目前的分支,因此如果您有本機提交,請先推送,因為 VM 從 GitHub 而不是您的機器複製。`--remote` 一次適用於單一儲存庫。任務在雲端執行,而您繼續在本機工作。

643 646 

647{/* min-version: 2.1.195 */}自 v2.1.195 起,CLI 會顯示設定步驟的即時檢查清單,例如複製儲存庫和執行您的[設定指令碼](#setup-scripts),同時雲端容器啟動。您在容器佈建時輸入的訊息會排隊,並在工作階段準備好後發送。

648 

644<Note>649<Note>

645 `--remote` 建立雲端工作階段。`--remote-control` 無關:它公開本機 CLI 工作階段以從網頁進行監控。請參閱[遠端控制](/zh-TW/remote-control)。650 `--remote` 建立雲端工作階段。`--remote-control` 無關:它公開本機 CLI 工作階段以從網頁進行監控。請參閱[遠端控制](/zh-TW/remote-control)。

646</Note>651</Note>


703使用以下任何方式將雲端工作階段拉入終端:708使用以下任何方式將雲端工作階段拉入終端:

704 709 

705* **使用 `--teleport`**:從命令列,執行 `claude --teleport` 以進行互動式工作階段選擇器,或執行 `claude --teleport <session-id>` 以直接恢復特定工作階段。如果您有未提交的變更,系統會提示您先隱藏它們。710* **使用 `--teleport`**:從命令列,執行 `claude --teleport` 以進行互動式工作階段選擇器,或執行 `claude --teleport <session-id>` 以直接恢復特定工作階段。如果您有未提交的變更,系統會提示您先隱藏它們。

706* **使用 `/teleport`**:在現有 CLI 工作階段內,執行 `/teleport`或 `/tp`以開啟相同的工作階段選擇器,而無需重新啟動 Claude Code。711* **使用 `/teleport`**:在現有 CLI 工作階段內,執行 `/teleport` 或 `/tp` 以開啟相同的工作階段選擇器,而無需重新啟動 Claude Code。

707* **從 `/tasks`**:執行 `/tasks` 以查看您的背景工作階段,然後按 `t` 傳送到其中一個712* **從 `/tasks`**:執行 `/tasks` 以查看您的背景工作階段,然後按 `t` 傳送到其中一個

708* **從網頁介面**:選擇**在 CLI 中開啟**以複製可貼到終端的命令713* **從網頁介面**:選擇**在 CLI 中開啟**以複製可貼到終端的命令

709 714 

710當您傳送工作階段時,Claude 驗證您在正確的儲存庫中,從雲端工作階段取得並簽出分支,並將完整的對話歷史記錄載入到終端。715當您傳送工作階段時,Claude 驗證您在正確的儲存庫中,從雲端工作階段取得並簽出分支,並將完整的對話歷史記錄載入到終端。

711 716 


770 從 Enterprise 或 Team 帳戶共享775 從 Enterprise 或 Team 帳戶共享

771</h4>776</h4>

772 777 

773對於 Enterprise 和 Team 帳戶,兩個可見性選項是**私人**和**Team**。Team 可見性使工作階段對您的 claude.ai 組織的其他成員可見。儲存庫存取驗證預設啟用,基於連接到收件者帳戶的 GitHub 帳戶。您帳戶的顯示名稱對所有有存取權限的收件者可見。[Slack 中的 Claude](/zh-TW/slack)工作階段會自動以 Team 可見性共享。778對於 Enterprise 和 Team 帳戶,兩個可見性選項是**私人**和**Team**。Team 可見性使工作階段對您的 claude.ai 組織的其他成員可見。[Slack 中的 Claude](/zh-TW/slack)工作階段會自動以 Team 可見性共享。

779 

780儲存庫存取驗證預設啟用,基於連接到收件者帳戶的 GitHub 帳戶。您帳戶的顯示名稱對所有有存取權限的收件者可見。

774 781 

775<h4 id="share-from-a-max-or-pro-account">782<h4 id="share-from-a-max-or-pro-account">

776 從 Max 或 Pro 帳戶共享783 從 Max 或 Pro 帳戶共享


863 870 

864* 檢查 [status.claude.com](https://status.claude.com) 以查找雲端工作階段事件871* 檢查 [status.claude.com](https://status.claude.com) 以查找雲端工作階段事件

865* 一分鐘後重試,因為容量是按需佈建的872* 一分鐘後重試,因為容量是按需佈建的

866* 確認您的儲存庫可到達。連接的 GitHub 帳戶必須能夠存取 GitHub 上的儲存庫,可以透過 Claude GitHub App 授權或透過 `/web-setup` 同步的 `gh` 令牌進行存取不需要在儲存庫上安裝 App。請參閱 [GitHub 驗證選項](#github-authentication-options)。873* 確認您的儲存庫可到達。連接的 GitHub 帳戶必須能夠存取 GitHub 上的儲存庫,可以透過 Claude GitHub App 授權或透過 `/web-setup` 同步的 `gh` 令牌進行存取不需要在儲存庫上安裝 App。請參閱 [GitHub 驗證選項](#github-authentication-options)。

867 874 

868<h3 id="remote-control-session-expired-or-access-denied">875<h3 id="remote-control-session-expired-or-access-denied">

869 遠端控制工作階段已過期或存取被拒絕876 遠端控制工作階段已過期或存取被拒絕

Details

283```bash theme={null}283```bash theme={null}

284export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5284export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5

285export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7285export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7

286export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6286export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5

287export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5287export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

288```288```

289 289 

Details

22| `claude -c -p "query"` | 透過 SDK 繼續 | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | 透過 SDK 繼續 | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | 按 ID 或名稱繼續工作階段 | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | 按 ID 或名稱繼續工作階段 | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | 更新至最新版本 | `claude update` |24| `claude update` | 更新至最新版本 | `claude update` |

25| `claude gateway` | 啟動自託管 [Claude apps gateway](/zh-TW/claude-apps-gateway) 伺服器,供在 Bedrock、Vertex AI 或 Foundry 上部署 SSO 和原則在 Claude Code 前面的管理員使用。需要 `--config` 指向 [`gateway.yaml`](/zh-TW/claude-apps-gateway-config)。在 Claude Code v2.1.195 及更新版本中可用。 | `claude gateway --config gateway.yaml` |

25| `claude install [version]` | 安裝或重新安裝原生二進位檔。接受版本如 `2.1.118`、`stable` 或 `latest`。請參閱 [安裝特定版本](/zh-TW/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | 安裝或重新安裝原生二進位檔。接受版本如 `2.1.118`、`stable` 或 `latest`。請參閱 [安裝特定版本](/zh-TW/setup#install-a-specific-version) | `claude install stable` |

26| `claude auth login` | 登入您的 Anthropic 帳戶。使用 `--email` 預先填入您的電子郵件地址,使用 `--sso` 強制進行 SSO 驗證,使用 `--console` 以 Anthropic Console 登入以進行 API 使用計費,而不是 Claude 訂閱 | `claude auth login --console` |27| `claude auth login` | 登入您的 Anthropic 帳戶。使用 `--email` 預先填入您的電子郵件地址,使用 `--sso` 強制進行 SSO 驗證,使用 `--console` 以 Anthropic Console 登入以進行 API 使用計費,而不是 Claude 訂閱 | `claude auth login --console` |

27| `claude auth logout` | 從您的 Anthropic 帳戶登出 | `claude auth logout` |28| `claude auth logout` | 從您的 Anthropic 帳戶登出 | `claude auth logout` |


93| `--max-budget-usd` | 在停止前在 API 呼叫上花費的最大美元金額(僅列印模式) | `claude -p --max-budget-usd 5.00 "query"` |94| `--max-budget-usd` | 在停止前在 API 呼叫上花費的最大美元金額(僅列印模式) | `claude -p --max-budget-usd 5.00 "query"` |

94| `--max-turns` | 限制代理程式轉數(僅列印模式)。達到限制時以錯誤退出。預設無限制 | `claude -p --max-turns 3 "query"` |95| `--max-turns` | 限制代理程式轉數(僅列印模式)。達到限制時以錯誤退出。預設無限制 | `claude -p --max-turns 3 "query"` |

95| `--mcp-config` | 從 JSON 檔案或字串載入 MCP 伺服器(以空格分隔) | `claude --mcp-config ./mcp.json` |96| `--mcp-config` | 從 JSON 檔案或字串載入 MCP 伺服器(以空格分隔) | `claude --mcp-config ./mcp.json` |

96| `--model` | 使用最新模型的別名(`sonnet`、`opus`、`haiku` 或 `fable`)或模型的完整名稱為目前工作階段設定模型。覆蓋 [`model`](/zh-TW/settings#available-settings) 設定和 [`ANTHROPIC_MODEL`](/zh-TW/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |97| `--model` | 使用最新模型的別名(`sonnet`、`opus`、`haiku` 或 `fable`)或模型的完整名稱為目前工作階段設定模型。覆蓋 [`model`](/zh-TW/settings#available-settings) 設定和 [`ANTHROPIC_MODEL`](/zh-TW/model-config#environment-variables) | `claude --model claude-sonnet-5` |

97| `--name`、`-n` | 為工作階段設定顯示名稱,顯示在 `/resume` 和終端標題中。您可以使用 `claude --resume <name>` 繼續已命名的工作階段。<br /><br />[`/rename`](/zh-TW/commands) 在工作階段中途變更名稱,也會在提示列中顯示 | `claude -n "my-feature-work"` |98| `--name`、`-n` | 為工作階段設定顯示名稱,顯示在 `/resume` 和終端標題中。您可以使用 `claude --resume <name>` 繼續已命名的工作階段。<br /><br />[`/rename`](/zh-TW/commands) 在工作階段中途變更名稱,也會在提示列中顯示 | `claude -n "my-feature-work"` |

98| `--no-chrome` | 為此工作階段停用 [Chrome 瀏覽器整合](/zh-TW/chrome) | `claude --no-chrome` |99| `--no-chrome` | 為此工作階段停用 [Chrome 瀏覽器整合](/zh-TW/chrome) | `claude --no-chrome` |

99| `--no-session-persistence` | 停用工作階段持久性,使工作階段不會儲存到磁碟且無法繼續。僅列印模式。[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/zh-TW/env-vars) 環境變數在任何模式中執行相同操作 | `claude -p --no-session-persistence "query"` |100| `--no-session-persistence` | 停用工作階段持久性,使工作階段不會儲存到磁碟且無法繼續。僅列印模式。[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/zh-TW/env-vars) 環境變數在任何模式中執行相同操作 | `claude -p --no-session-persistence "query"` |

commands.md +2 −0

Details

70| `/cost` | `/usage` 的別名 |70| `/cost` | `/usage` 的別名 |

71| `/debug [description]` | **[Skill](/zh-TW/skills#bundled-skills).** 為目前工作階段啟用偵錯日誌記錄並通過讀取工作階段偵錯日誌來排除故障。除非您使用 `claude --debug` 啟動,否則偵錯日誌記錄預設為關閉,因此在工作階段中期運行 `/debug` 會從該時刻開始捕獲日誌。可選擇性地描述問題以集中分析 |71| `/debug [description]` | **[Skill](/zh-TW/skills#bundled-skills).** 為目前工作階段啟用偵錯日誌記錄並通過讀取工作階段偵錯日誌來排除故障。除非您使用 `claude --debug` 啟動,否則偵錯日誌記錄預設為關閉,因此在工作階段中期運行 `/debug` 會從該時刻開始捕獲日誌。可選擇性地描述問題以集中分析 |

72| `/deep-research <question>` | **[Workflow](/zh-TW/workflows#bundled-workflows).** 在問題上展開網頁搜尋、擷取並交叉檢查來源,並綜合一份引用的報告 |72| `/deep-research <question>` | **[Workflow](/zh-TW/workflows#bundled-workflows).** 在問題上展開網頁搜尋、擷取並交叉檢查來源,並綜合一份引用的報告 |

73| `/design-login` | 使用您的 claude.ai 帳戶授權設計系統存取以進行 `/design-sync` |

74| `/design-sync [hint]` | **[Skill](/zh-TW/skills#bundled-skills).** 轉換您的存放庫的 React 設計系統並將其上傳到 [Claude Design](https://claude.ai/design),以便它產生的設計使用您的真實元件。可選擇性地命名設計系統,例如 `/design-sync Acme DS`。首次同步會驗證每個元件,在大型存放庫上可能需要幾個小時。在 Anthropic API 上可用;在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,基礎工具無法到達 claude.ai,因此命令不可用 |

73| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前的工作階段。需要 macOS 或 Windows 和 Claude 訂閱。別名:`/app` |75| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前的工作階段。需要 macOS 或 Windows 和 Claude 訂閱。別名:`/app` |

74| `/diff` | 開啟互動式差異檢視器,顯示未提交的變更和每個回合的差異。使用左/右箭頭在目前的 git 差異和個別 Claude 回合之間切換,使用上/下箭頭瀏覽檔案 |76| `/diff` | 開啟互動式差異檢視器,顯示未提交的變更和每個回合的差異。使用左/右箭頭在目前的 git 差異和個別 Claude 回合之間切換,使用上/下箭頭瀏覽檔案 |

75| `/doctor` | 診斷並驗證您的 Claude Code 安裝和設定。結果顯示狀態圖示。按 `f` 讓 Claude 修復任何報告的問題 |77| `/doctor` | 診斷並驗證您的 Claude Code 安裝和設定。結果顯示狀態圖示。按 `f` 讓 Claude 修復任何報告的問題 |

computer-use.md +3 −3

Details

112 一次一個工作階段112 一次一個工作階段

113</h3>113</h3>

114 114 

115Computer use 在活動時持有機器範圍的鎖定。如果另一個 Claude Code 工作階段已在使用您的電腦,新的嘗試會失敗,並顯示一條訊息,告訴您哪個工作階段持有鎖定。先完成或退出該工作階段115Computer use 從第一個 computer use 操作開始持有機器範圍的鎖定,直到執行該操作的工作階段退出{/* min-version: 2.1.195 */}自 v2.1.195 起,完成任務不會釋放鎖定;只有退出工作階段才會。如果另一個 Claude Code 工作階段已在使用您的電腦,新的嘗試會失敗,並顯示一條訊息,告訴您哪個工作階段持有鎖定。先退出該工作階段

116 116 

117<h3 id="apps-are-hidden-while-claude-works">117<h3 id="apps-are-hidden-while-claude-works">

118 Claude 工作時應用程式被隱藏118 Claude 工作時應用程式被隱藏


134 隨時停止134 隨時停止

135</h3>135</h3>

136 136 

137當 Claude 獲得鎖定時,會出現 macOS 通知:「Claude 正在使用您的電腦 · 按 Esc 停止」。在任何地方按 `Esc` 立即中止目前操作,或在終端機中按 `Ctrl+C`。無論哪種方式,Claude 都會釋放鎖定、取消隱藏您的應用程式,並將控制權返回給您。137當 Claude 獲得鎖定時,會出現 macOS 通知:「Claude 正在使用您的電腦 · 按 Esc 停止」。在任何地方按 `Esc` 立即中止目前操作,或在終端機中按 `Ctrl+C`。無論哪種方式,Claude 都會停止、取消隱藏您的應用程式,並將控制權返回給您。工作階段會保持 [computer use 鎖定](#one-session-at-a-time),直到它退出。

138 138 

139Claude 完成時會出現第二個通知。139Claude 完成時會出現第二個通知。

140 140 


222 「Computer use 正在被另一個 Claude 工作階段使用」222 「Computer use 正在被另一個 Claude 工作階段使用」

223</h3>223</h3>

224 224 

225另一個 Claude Code 工作階段持有鎖定。完成該工作階段中的任務或退出它。如果另一個工作階段崩潰,當 Claude 偵測到該程序不再執行時,鎖定會自動釋放。225另一個 Claude Code 工作階段持有鎖定,它會一直保持到該工作階段退出為止退出該工作階段。如果另一個工作階段崩潰,當 Claude 偵測到該程序不再執行時,鎖定會自動釋放。

226 226 

227<h3 id="macos-permissions-prompt-keeps-reappearing">227<h3 id="macos-permissions-prompt-keeps-reappearing">

228 macOS 權限提示不斷重新出現228 macOS 權限提示不斷重新出現

Details

1615* **在任務之間清除**:切換到不相關的工作時運行 `/clear`。舊對話會擠出您接下來需要的文件,並在每條消息上花費令牌。1615* **在任務之間清除**:切換到不相關的工作時運行 `/clear`。舊對話會擠出您接下來需要的文件,並在每條消息上花費令牌。

1616* **委託大型讀取**:將研究發送給[子代理](/zh-TW/sub-agents),以便文件內容保留在其上下文視窗中,而不是您的。1616* **委託大型讀取**:將研究發送給[子代理](/zh-TW/sub-agents),以便文件內容保留在其上下文視窗中,而不是您的。

1617 1617 

1618如果您需要更大的視窗而不是更小的對話,Fable 5、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 萬令牌上下文視窗。請參閱[擴展上下文](/zh-TW/model-config#extended-context)以了解按計劃的可用性以及如何選擇 `[1m]` 模型變體。壓縮在更大的限制下以相同方式工作。1618如果您需要更大的視窗而不是更小的對話,Fable 5、Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 萬令牌上下文視窗。請參閱[擴展上下文](/zh-TW/model-config#extended-context)以了解按計劃的可用性以及如何選擇 `[1m]` 模型變體。Sonnet 5 以 1M 運行,無需選擇 `[1m]` 變體;請參閱[Sonnet 5 上下文視窗](/zh-TW/model-config#sonnet-5-context-window)以了解其自動壓縮閾值和 LLM 閘道例外。壓縮在更大的限制下以相同方式工作。

1619 1619 

1620<h2 id="check-your-own-session">1620<h2 id="check-your-own-session">

1621 檢查您自己的會話1621 檢查您自己的會話

costs.md +1 −1

Details

51 對於具有自訂速率限制的組織,此工作區中的 Claude Code 流量計入您的組織整體 API 速率限制。您可以在 Claude Console 的此工作區的「限制」頁面上設定[工作區速率限制](https://platform.claude.com/docs/zh-TW/api/rate-limits#setting-lower-limits-for-workspaces),以限制 Claude Code 的份額並保護其他生產工作負載。51 對於具有自訂速率限制的組織,此工作區中的 Claude Code 流量計入您的組織整體 API 速率限制。您可以在 Claude Console 的此工作區的「限制」頁面上設定[工作區速率限制](https://platform.claude.com/docs/zh-TW/api/rate-limits#setting-lower-limits-for-workspaces),以限制 Claude Code 的份額並保護其他生產工作負載。

52</Note>52</Note>

53 53 

54在 Bedrock、Vertex 和 Foundry 上,Claude Code 不會從您的雲端傳送指標。已經透過[LLM gateway](/zh-TW/llm-gateway)路由 Claude Code 的組織可以在那裡追蹤支出,因為 gateway 會看到每個請求54在 Bedrock、Vertex 和 Foundry 上,Claude Code 不會從您的雲端傳送指標。自託管的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 提供每位使用者的使用情況歸因、包含 token 計數的 OTLP 指標,以及這些提供者上的[每位使用者支出限制](/zh-TW/claude-apps-gateway-spend-limits)。透過不同 [LLM gateway](/zh-TW/llm-gateway) 路由 Claude Code 的組織可以改為在 gateway 追蹤支出,因為它會看到每個請求

55 55 

56<h3 id="rate-limit-recommendations">56<h3 id="rate-limit-recommendations">

57 速率限制建議57 速率限制建議

data-usage.md +2 −2

Details

39 39 

40在評分提示之後,您可能會看到一個單獨的後續提問「Anthropic 可以查看您的工作階段文字記錄以幫助我們改進 Claude Code 嗎?」。這是一個與評分不同的可選第二步:40在評分提示之後,您可能會看到一個單獨的後續提問「Anthropic 可以查看您的工作階段文字記錄以幫助我們改進 Claude Code 嗎?」。這是一個與評分不同的可選第二步:

41 41 

42* **是**:將您的對話文字記錄、任何子代理文字記錄和磁碟中的原始工作階段日誌檔案上傳至 Anthropic。已知的 API 金鑰和權杖模式在上傳前會被編輯。原始程式碼、檔案內容和其他對話內容會按原樣上傳。共享的文字記錄會保留最多 6 個月。42* **是**:將您的對話文字記錄、任何子代理文字記錄和磁碟中的原始工作階段日誌檔案上傳至 Anthropic。已知的 API 金鑰和權杖模式在上傳前會被編輯。原始程式碼、檔案內容和其他對話內容會按原樣上傳。共享的文字記錄會保留最多 6 個月。在 Bedrock、Vertex AI、Foundry 和已登入的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段上,是會將相同的承載寫入 `~/.claude/feedback-bundles/` 下的本機封存,而不是上傳;在您轉發該檔案之前,沒有任何內容會離開您的機器。

43* **否**:拒絕而不發送任何內容43* **否**:拒絕而不發送任何內容

44* **不再詢問**:拒絕並停止此後續提問在未來工作階段中出現44* **不再詢問**:拒絕並停止此後續提問在未來工作階段中出現

45 45 


127 按 API 提供者的預設行為127 按 API 提供者的預設行為

128</h2>128</h2>

129 129 

130根據預設,當使用 Bedrock、Vertex、Foundry 或 Claude Platform on AWS 時,錯誤報告、遙測和錯誤報告會停用。工作階段品質調查和 WebFetch 網域安全檢查是例外,無論提供者為何都會執行。您可以透過設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 一次選擇退出所有非必要流量,包括調查。此變數不會影響 WebFetch 檢查,該檢查有其自己的選擇退出。以下是完整的預設行為:130根據預設,當使用 Bedrock、Vertex、Foundry 或 Claude Platform on AWS 時,錯誤報告、遙測和錯誤報告會停用。工作階段品質調查和 WebFetch 網域安全檢查是例外,無論提供者為何都會執行。在已登入的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段上,使用分析、錯誤報告和對 Anthropic 的調查評分會由閘道認證本身停用,沒有重新啟用的設定。您可以透過設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 一次選擇退出所有非必要流量,包括調查。此變數不會影響 WebFetch 檢查,該檢查有其自己的選擇退出。以下是完整的預設行為:

131 131 

132| 服務 | Claude API | Vertex API | Bedrock API | Foundry API | Claude Platform on AWS |132| 服務 | Claude API | Vertex API | Bedrock API | Foundry API | Claude Platform on AWS |

133| ------------------------------ | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |133| ------------------------------ | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |

Details

19如需特定類別的詳細資訊,請使用專用命令進行後續操作:19如需特定類別的詳細資訊,請使用專用命令進行後續操作:

20 20 

21| 命令 | 顯示 |21| 命令 | 顯示 |

22| :--------------- | :--------------------------------------- |22| :--------------- | :------------------------------------------------------------------------------------------------------------------------------- |

23| `/memory` | 載入了哪些 `CLAUDE.md` 和規則檔案,加上自動記憶項目 |23| `/memory` | 載入了哪些 `CLAUDE.md` 和規則檔案,加上自動記憶項目 |

24| `/skills` | 來自專案、使用者和外掛程式來源的可用 skills |24| `/skills` | 來自專案、使用者和外掛程式來源的可用 skills |

25| `/agents` | 已設定的子代理及其設定 |25| `/agents` | 已設定的子代理及其設定 |

26| `/hooks` | 作用中的 hook 設定 |26| `/hooks` | 作用中的 hook 設定 |

27| `/mcp` | 已連線的 MCP servers 及其狀態 |27| `/mcp` | 已連線的 MCP servers 及其狀態 |

28| `/permissions` | 目前生效的已解析允許和拒絕規則 |28| `/permissions` | 目前生效的已解析允許和拒絕規則 |

29| `/doctor` | 設定診斷:無效的鍵、schema 錯誤、安裝健康狀況 |29| `/doctor` | 設定診斷:無效的鍵、schema 錯誤、安裝健康狀況。{/* min-version: 2.1.196 */}自 v2.1.196 起,也會報告在同一範圍內定義的重複 [subagent](/zh-TW/sub-agents) 名稱,並標記哪一個是作用中的 |

30| `/debug [issue]` | 啟用工作階段的偵錯日誌記錄,並提示 Claude 使用日誌輸出和設定路徑進行診斷 |30| `/debug [issue]` | 啟用工作階段的偵錯日誌記錄,並提示 Claude 使用日誌輸出和設定路徑進行診斷 |

31| `/status` | 作用中的設定來源,包括是否啟用了受管設定 |31| `/status` | 作用中的設定來源,包括是否啟用了受管設定 |

32 32 

desktop.md +10 −6

Details

8 8 

9Claude Desktop 應用程式有三個標籤:**Chat** 用於對話、**Cowork** 用於 [Dispatch 和更長的代理工作](https://claude.com/product/cowork),以及 **Code** 用於軟體開發。本頁面是 Code 標籤的參考。9Claude Desktop 應用程式有三個標籤:**Chat** 用於對話、**Cowork** 用於 [Dispatch 和更長的代理工作](https://claude.com/product/cowork),以及 **Code** 用於軟體開發。本頁面是 Code 標籤的參考。

10 10 

11<CardGroup cols={2}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universal build for Intel and Apple Silicon

14 </Card>14 </Card>


16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian

22 </Card>

19</CardGroup>23</CardGroup>

20 24 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).

22 26 

23安裝後,啟動 Claude,登入,然後點擊 **Code** 標籤。第一次在 Windows 上開啟時,您需要安裝 [Git for Windows](https://git-scm.com/downloads/win);安裝後請重新啟動應用程式。如需您第一個會話的逐步說明,請參閱[快速入門指南](/zh-TW/desktop-quickstart)。27安裝後,啟動 Claude,登入,然後點擊 **Code** 標籤。第一次在 Windows 上開啟時,您需要安裝 [Git for Windows](https://git-scm.com/downloads/win);安裝後請重新啟動應用程式。如需您第一個會話的逐步說明,請參閱[快速入門指南](/zh-TW/desktop-quickstart)。

24 28 


88 92 

89<span id="auto-mode-availability" />93<span id="auto-mode-availability" />

90 94 

91Auto mode 是在 Anthropic API 上提供給所有使用者的研究預覽版。它需要 Claude Opus 4.6 或更新版本,或 Sonnet 4.6。在路由 Desktop 至 Google Cloud Vertex AI 的企業部署中,Auto mode 預設為關閉,直到您[設定 `CLAUDE_CODE_ENABLE_AUTO_MODE`](/zh-TW/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry),且僅支援 Claude Opus 4.7 和 Opus 4.8。95Auto mode 是在 Anthropic API 上提供給所有使用者的研究預覽版。它需要 Claude Opus 4.6 或更新版本,或 Sonnet 4.6 或更新版本。在路由 Desktop 至 Google Cloud Vertex AI 的企業部署中,Auto mode 預設為關閉,直到您[設定 `CLAUDE_CODE_ENABLE_AUTO_MODE`](/zh-TW/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry),且僅支援 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。

92 96 

93<Tip title="最佳實踐">97<Tip title="最佳實踐">

94 在 Plan mode 中開始複雜任務,以便 Claude 在進行變更之前規劃方法。一旦您批准計畫,切換到'自動接受編輯'或'詢問權限'以執行它。有關此工作流程的更多資訊,請參閱[先探索,然後計畫,然後編碼](/zh-TW/best-practices#explore-first-then-plan-then-code)。98 在 Plan mode 中開始複雜任務,以便 Claude 在進行變更之前規劃方法。一旦您批准計畫,切換到'自動接受編輯'或'詢問權限'以執行它。有關此工作流程的更多資訊,請參閱[先探索,然後計畫,然後編碼](/zh-TW/best-practices#explore-first-then-plan-then-code)。


600 604 

601若要在任何平台上為本機會話和開發伺服器設定環境變數,請在提示框中開啟環境下拉式選單,將滑鼠懸停在 **Local** 上,然後點擊齒輪圖示以開啟本機環境編輯器。您在此處儲存的變數會在您的機器上加密儲存,並適用於您啟動的每個本機會話和預覽伺服器。您也可以將變數新增到 `~/.claude/settings.json` 檔案中的 `env` 金鑰,儘管這些僅到達 Claude 會話而不是開發伺服器。有關支援的變數的完整清單,請參閱[環境變數](/zh-TW/env-vars)。605若要在任何平台上為本機會話和開發伺服器設定環境變數,請在提示框中開啟環境下拉式選單,將滑鼠懸停在 **Local** 上,然後點擊齒輪圖示以開啟本機環境編輯器。您在此處儲存的變數會在您的機器上加密儲存,並適用於您啟動的每個本機會話和預覽伺服器。您也可以將變數新增到 `~/.claude/settings.json` 檔案中的 `env` 金鑰,儘管這些僅到達 Claude 會話而不是開發伺服器。有關支援的變數的完整清單,請參閱[環境變數](/zh-TW/env-vars)。

602 606 

603[Extended thinking](/zh-TW/model-config#extended-thinking) 預設啟用,這改進了複雜推理任務的效能,但使用額外的 tokens。若要停用思考,請在本機環境編輯器中將 `MAX_THINKING_TOKENS` 設定為 `0`;這對 Fable 5 沒有影響,Fable 5 始終使用 extended thinking。在[第三方提供者](/zh-TW/third-party-integrations)上,`0` 會改為省略 `thinking` 參數,自適應推理模型可能仍會思考。在具有[自適應推理](/zh-TW/model-config#adjust-effort-level)的模型上,任何其他 `MAX_THINKING_TOKENS` 值都會被忽略,因為自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設定為 `1` 以使用固定思考預算;Opus 4.7 及更新版本始終使用自適應推理,沒有固定預算模式。607[Extended thinking](/zh-TW/model-config#extended-thinking) 預設啟用,這改進了複雜推理任務的效能,但使用額外的 tokens。若要停用思考,請在本機環境編輯器中將 `MAX_THINKING_TOKENS` 設定為 `0`;這對 Fable 5 沒有影響,Fable 5 始終使用 extended thinking。在[第三方提供者](/zh-TW/third-party-integrations)上,`0` 會改為省略 `thinking` 參數,自適應推理模型可能仍會思考。在具有[自適應推理](/zh-TW/model-config#adjust-effort-level)的模型上,任何其他 `MAX_THINKING_TOKENS` 值都會被忽略,因為自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設定為 `1` 以使用固定思考預算;Fable 5、Sonnet 5 和 Opus 4.7 及更新版本始終使用自適應推理,沒有固定預算模式。

604 608 

605<h3 id="cloud-sessions">609<h3 id="cloud-sessions">

606 雲端會話610 雲端會話


822以下功能僅在 CLI 或 VS Code 擴充功能中可用,除非另有說明:826以下功能僅在 CLI 或 VS Code 擴充功能中可用,除非另有說明:

823 827 

824* **第三方提供者**:Desktop 預設連接到 Anthropic 的 API。企業部署可以透過[受管設定](https://support.claude.com/en/articles/12622667-enterprise-configuration)配置 Vertex AI 和閘道提供者。對於 Bedrock 或 Foundry,請參閱 [quickstart](/zh-TW/quickstart)。作為上述部分的例外,[Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview) 在 Bedrock、Vertex AI、Foundry 或自託管 LLM 閘道上執行 Code 標籤。828* **第三方提供者**:Desktop 預設連接到 Anthropic 的 API。企業部署可以透過[受管設定](https://support.claude.com/en/articles/12622667-enterprise-configuration)配置 Vertex AI 和閘道提供者。對於 Bedrock 或 Foundry,請參閱 [quickstart](/zh-TW/quickstart)。作為上述部分的例外,[Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview) 在 Bedrock、Vertex AI、Foundry 或自託管 LLM 閘道上執行 Code 標籤。

825* **Linux**:桌面應用程式僅在 macOS Windows 上可用。在 Linux 上,請使用 [CLI](/zh-TW/quickstart)。829* **Linux (beta)**:Linux 桌面應用程式中尚未提供電腦使用。請參閱 [Claude Desktop on Linux](/zh-TW/desktop-linux)。

826* **內嵌程式碼建議**:Desktop 不提供自動完成樣式的建議。它透過對話提示和明確的程式碼變更進行工作。830* **內嵌程式碼建議**:Desktop 不提供自動完成樣式的建議。它透過對話提示和明確的程式碼變更進行工作。

827* **Agent teams**:平行 Claude Code 會話相互傳遞訊息,可在 [CLI](/zh-TW/agent-teams) 中使用,不在 Desktop 中。若要在一個會話內進行多代理工作,請使用 [dynamic workflows](/zh-TW/workflows),它們在 Desktop 中執行。831* **Agent teams**:平行 Claude Code 會話相互傳遞訊息,可在 [CLI](/zh-TW/agent-teams) 中使用,不在 Desktop 中。若要在一個會話內進行多代理工作,請使用 [dynamic workflows](/zh-TW/workflows),它們在 Desktop 中執行。

828* **Terminal-dialog 命令**:在終端機中開啟互動式面板的內建命令,例如 `/permissions`、`/config`、`/agents` 和 `/doctor`,在 Code 標籤中不可用,並回覆 `isn't available in this environment`。直接編輯[設定檔案](/zh-TW/settings)以管理權限規則和配置,或從獨立 CLI 執行命令。832* **Terminal-dialog 命令**:在終端機中開啟互動式面板的內建命令,例如 `/permissions`、`/config`、`/agents` 和 `/doctor`,在 Code 標籤中不可用,並回覆 `isn't available in this environment`。直接編輯[設定檔案](/zh-TW/settings)以管理權限規則和配置,或從獨立 CLI 執行命令。


862如果應用程式開啟但顯示空白或無反應的螢幕:866如果應用程式開啟但顯示空白或無反應的螢幕:

863 867 

8641. 重新啟動應用程式。8681. 重新啟動應用程式。

8652. 檢查待處理的更新。應用程式在啟動時自動更新。8692. 檢查待處理的更新。在 macOS 和 Windows 上,應用程式在啟動時自動更新;在 Linux 上,透過 apt 更新,如 [Claude Desktop on Linux](/zh-TW/desktop-linux) 中所述

8663. 在 Windows 上,檢查「事件檢視器」中的 **Windows 日誌 → 應用程式** 下的當機日誌。8703. 在 Windows 上,檢查「事件檢視器」中的 **Windows 日誌 → 應用程式** 下的當機日誌。

867 871 

868<h3 id="failed-to-load-session">872<h3 id="failed-to-load-session">

desktop-linux.md +113 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# Linux 上的 Claude Desktop(測試版)

6 

7> 在 Ubuntu 和 Debian 上安裝和更新 Claude 桌面應用程式

8 

9<Note>

10 Linux 上的 Claude 桌面應用程式處於測試版。Chat、Cowork 和 Code 標籤都可用。

11</Note>

12 

13Linux 上的桌面應用程式提供與 macOS 和 Windows 相同的 Chat、Cowork 和 Claude Code 體驗:平行工作階段、視覺化差異檢視、整合式終端機和編輯器,以及即時應用程式預覽。請參閱[使用 Claude Code Desktop](/zh-TW/desktop)以取得完整功能參考。

14 

15<h2 id="requirements">

16 需求

17</h2>

18 

19* Ubuntu 22.04 或更新版本,或 Debian 12 或更新版本

20* x86\_64 或 arm64

21 

22其他符合這些需求的 Debian 衍生發行版本可能可以運作,但未經官方測試。

23 

24<h2 id="install">

25 安裝

26</h2>

27 

28從 Anthropic 的 apt 儲存庫安裝,以便更新透過您系統的定期套件更新到達。

29 

30<Steps>

31 <Step title="新增 Anthropic 的 apt 儲存庫">

32 下載 Anthropic 的簽署金鑰:

33 

34 ```bash theme={null}

35 sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc

36 ```

37 

38 註冊儲存庫:

39 

40 ```bash theme={null}

41 echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list

42 ```

43 </Step>

44 

45 <Step title="安裝套件">

46 ```bash theme={null}

47 sudo apt update && sudo apt install claude-desktop

48 ```

49 </Step>

50 

51 <Step title="啟動並登入">

52 從您的應用程式啟動器啟動 **Claude**,或從終端機執行 `claude-desktop`,然後使用您的 Anthropic 帳戶登入。

53 </Step>

54</Steps>

55 

56<Accordion title="驗證簽署金鑰">

57 您可以確認下載的簽署金鑰屬於 Anthropic:

58 

59 ```bash theme={null}

60 gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

61 ```

62 

63 指紋應為 `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`。

64</Accordion>

65 

66<h3 id="install-from-a-downloaded-file">

67 從下載的檔案安裝

68</h3>

69 

70如果您無法使用 apt 儲存庫,請從 [claude.com/download](https://claude.com/download) 下載適用於您的架構(x64 或 arm64)的 `.deb` 套件,然後使用您的軟體安裝程式開啟它,或從您的下載目錄執行:

71 

72```bash theme={null}

73sudo apt install ./claude-desktop_*.deb

74```

75 

76以這種方式安裝的 `.deb` 不會接收更新。若要透過 apt 取得更新,請如上所示新增儲存庫,或取消註解套件寫入 `/etc/apt/sources.list.d/claude-desktop.list` 的預留位置項目中的 `deb` 行。

77 

78<h2 id="update">

79 更新

80</h2>

81 

82桌面應用程式在 Linux 上不會自動更新。更新透過您系統的定期套件更新到達:

83 

84```bash theme={null}

85sudo apt update && sudo apt upgrade

86```

87 

88您的發行版本的圖形軟體更新程式也會取得新版本。

89 

90<h2 id="uninstall">

91 解除安裝

92</h2>

93 

94```bash theme={null}

95sudo apt remove claude-desktop

96```

97 

98這會移除簽署金鑰以及應用程式,因此如果您在安裝期間新增了儲存庫項目,也請移除它:

99 

100```bash theme={null}

101sudo rm /etc/apt/sources.list.d/claude-desktop.list

102```

103 

104<h2 id="what’s-not-in-the-linux-beta-yet">

105 Linux 測試版中尚未提供的功能

106</h2>

107 

108* **Computer Use**:[應用程式和螢幕控制](/zh-TW/desktop#let-claude-use-your-computer)在 Linux 上不可用。

109* **Dictation**:語音輸入在 Linux 桌面應用程式中不可用。請改用 CLI 中的[語音聽寫](/zh-TW/voice-dictation)。

110* **Quick Entry 全域快捷鍵**:在 X11 上運作。在原生 Wayland 上,它需要您的桌面環境的 GlobalShortcuts 入口。

111* **Fedora 和 RHEL**:目前僅支援 Debian 衍生發行版本。將來會支援其他發行版本。

112 

113對於桌面應用程式中尚未提供的任何功能,[CLI](/zh-TW/quickstart) 執行相同的 Claude Code 引擎並支援更廣泛的 Linux 發行版本;請參閱[系統需求](/zh-TW/setup#system-requirements)。

Details

8 8 

9桌面應用程式為您提供具有圖形介面的 Claude Code,專為並行執行多個會話而設計:用於管理並行工作的側邊欄、具有整合終端機和檔案編輯器的拖放式佈局、視覺化差異檢查、即時應用程式預覽、GitHub PR 監控與自動合併,以及排程任務。無需終端機。9桌面應用程式為您提供具有圖形介面的 Claude Code,專為並行執行多個會話而設計:用於管理並行工作的側邊欄、具有整合終端機和檔案編輯器的拖放式佈局、視覺化差異檢查、即時應用程式預覽、GitHub PR 監控與自動合併,以及排程任務。無需終端機。

10 10 

11<CardGroup cols={2}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universal build for Intel and Apple Silicon

14 </Card>14 </Card>


16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian

22 </Card>

19</CardGroup>23</CardGroup>

20 24 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).

22 26 

23<Note>27<Note>

24 Claude Code 需要 [Pro、Max、Team 或 Enterprise 訂閱](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。28 Claude Code 需要 [Pro、Max、Team 或 Enterprise 訂閱](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。


40 44 

41<Steps>45<Steps>

42 <Step title="安裝並登入">46 <Step title="安裝並登入">

43 從上方連結下載您平台的安裝程式並執行它。從 macOS 上的應用程式資料夾或 Windows 上的開始功能表啟動 Claude,然後使用您的 Anthropic 帳戶登入。47 在 macOS 和 Windows 上,從上方連結下載安裝程式並執行它在 Linux 上,請按照 [Claude Desktop on Linux](/zh-TW/desktop-linux) 中的安裝步驟進行。從 macOS 上的應用程式資料夾、Windows 上的開始功能表或 Linux 上的應用程式啟動器啟動 Claude,然後使用您的 Anthropic 帳戶登入。

44 </Step>48 </Step>

45 49 

46 <Step title="開啟 Code 標籤">50 <Step title="開啟 Code 標籤">

Details

223 **快捷方式**:您可以使用 `/plugin market` 代替 `/plugin marketplace`,以及 `rm` 代替 `remove`。223 **快捷方式**:您可以使用 `/plugin market` 代替 `/plugin marketplace`,以及 `rm` 代替 `remove`。

224</Tip>224</Tip>

225 225 

226* **GitHub 儲存庫**:`owner/repo` 格式(例如,`anthropics/claude-code`226* **GitHub 儲存庫**:`owner/repo` 格式,例如 `anthropics/claude-code`

227* **Git URL**:任何 git 儲存庫 URLGitLab、Bitbucket、自託管)227* **Git URL**:任何 git 儲存庫 URL,包括 GitLab、Bitbucket 和自託管伺服器

228* **本機路徑**:目錄或 `marketplace.json` 檔案的直接路徑228* **本機路徑**:目錄或 `marketplace.json` 檔案的直接路徑

229* **遠端 URL**:託管 `marketplace.json` 檔案的直接 URL229* **遠端 URL**:託管 `marketplace.json` 檔案的直接 URL

230 230 


246 246 

247透過提供完整 URL 新增任何 git 儲存庫。這適用於任何 Git 主機,包括 GitLab、Bitbucket 和自託管伺服器。包含 `.git` 後綴,以便 Claude Code 複製儲存庫,而不是將 URL 視為託管 `marketplace.json` 檔案的直接連結。247透過提供完整 URL 新增任何 git 儲存庫。這適用於任何 Git 主機,包括 GitLab、Bitbucket 和自託管伺服器。包含 `.git` 後綴,以便 Claude Code 複製儲存庫,而不是將 URL 視為託管 `marketplace.json` 檔案的直接連結。

248 248 

249包含 `https://` 前綴。Claude Code v2.1.196 及更新版本會拒絕沒有前綴的主機,例如 `gitlab.com/company/plugins.git`,視其為無效的 GitHub `owner/repo` 簡寫,錯誤訊息會告訴您新增前綴。較早的版本會將其誤讀為 GitHub 儲存庫路徑,並在複製時失敗。

250 

249使用 HTTPS:251使用 HTTPS:

250 252 

251```shell theme={null}253```shell theme={null}


298 安裝外掛程式300 安裝外掛程式

299</h2>301</h2>

300 302 

301新增市場後,您可以直接安裝外掛程式(預設安裝到使用者範圍)303新增市場後,您可以直接安裝外掛程式:

302 304 

303```shell theme={null}305```shell theme={null}

304/plugin install plugin-name@marketplace-name306/plugin install plugin-name@marketplace-name

305```307```

306 308 

307若要選擇不同的[安裝範圍](/zh-TW/settings#configuration-scopes),請使用互動式 UI:執行 `/plugin`前往 **Discover** 標籤,然後在外掛程式上按 **Enter**。您將看到以下選項309該命令會開啟該外掛程式的詳細資訊,您可以在其中選擇[安裝範圍](/zh-TW/settings#configuration-scopes)。當您執行 `/plugin`前往 **Discover** 標籤,並在外掛程式上按 **Enter** 時,您會看到相同的選項

308 310 

309* **User scope**(預設):在所有專案中為自己安裝311* **User scope**(預設):在所有專案中為自己安裝

310* **Project scope**:為此儲存庫上的所有協作者安裝(新增到 `.claude/settings.json`312* **Project scope**:為此儲存庫上的所有協作者安裝,這會將外掛程式新增到 `.claude/settings.json`

311* **Local scope**:僅在此儲存庫中為自己安裝不與協作者共享313* **Local scope**:僅在此儲存庫中為自己安裝不與協作者共享

314 

315若要在沒有互動式步驟的情況下安裝,請使用 [`claude plugin install`](/zh-TW/plugins-reference#plugin-install) shell 命令,該命令預設安裝到使用者範圍,除非您傳遞 `--scope`。

312 316 

313您也可能看到具有 **managed** 範圍的外掛程式這些是由管理員透過[受管設定](/zh-TW/settings#settings-files)安裝的,無法修改。317您也可能看到具有 **managed** 範圍的外掛程式這些是由管理員透過[受管設定](/zh-TW/settings#settings-files)安裝的,無法修改。

314 318 

315<Warning>319<Warning>

316 在安裝外掛程式之前,請確保您信任它。Anthropic 不控制外掛程式中包含的 MCP servers、檔案或其他軟體,也無法驗證它們是否按預期工作。檢查每個外掛程式的首頁以獲取更多資訊。320 在安裝外掛程式之前,請確保您信任它。Anthropic 不控制外掛程式中包含的 MCP servers、檔案或其他軟體,也無法驗證它們是否按預期工作。檢查每個外掛程式的首頁以獲取更多資訊。


328* 輸入以按外掛程式名稱或描述篩選332* 輸入以按外掛程式名稱或描述篩選

329* 按 Enter 以開啟外掛程式的詳細檢視並啟用、停用或解除安裝它333* 按 Enter 以開啟外掛程式的詳細檢視並啟用、停用或解除安裝它

330 334 

331詳細檢視會顯示外掛程式貢獻的元件:命令、skills、agents、hooks、MCP servers 和 LSP servers。相同的清單也可從命令列透過 `claude plugin details` 取得。335詳細檢視會顯示外掛程式貢獻的元件:commands、skills、agents、hooks、MCP servers 和 LSP servers。相同的清單也可從命令列透過 `claude plugin details` 取得。

332 336 

333在 Claude Code v2.1.187 及更新版本中,Installed 標籤新增了 **Not used recently** 群組,用於您自己安裝但至少兩週內未叫用且跨越至少 10 個工作階段的 marketplace 外掛程式,詳細檢視會為每個外掛程式顯示 **Last used** 行。使用這些功能來找出您不再使用但仍在增加啟動和內容成本的外掛程式,然後停用或解除安裝它們。337在 Claude Code v2.1.187 及更新版本中,Installed 標籤新增了 **Not used recently** 群組,用於您自己安裝但至少兩週內未叫用且跨越至少 10 個工作階段的 marketplace 外掛程式,詳細檢視會為每個外掛程式顯示 **Last used** 行。使用這些功能來找出您不再使用但仍在增加啟動和內容成本的外掛程式,然後停用或解除安裝它們。

334 338 


358/plugin enable plugin-name@marketplace-name362/plugin enable plugin-name@marketplace-name

359```363```

360 364 

365在這些識別碼中,`plugin-name` 是 [marketplace 項目](/zh-TW/plugin-marketplaces#plugin-entries) 中外掛程式的 `name`,可能與外掛程式自身 `plugin.json` 中的 `name` 不同。

366 

367自 Claude Code v2.1.195 起,`/plugin` 介面中的 **Enable** 和 **Disable** 適用於其兩個名稱不同的外掛程式,`/plugin enable` 和 `/plugin disable` 接受任一名稱。當您在較早版本中停用此類外掛程式時,Claude Code 會報告 `already disabled` 並保持其啟用狀態。

368 

361完全移除外掛程式:369完全移除外掛程式:

362 370 

363```shell theme={null}371```shell theme={null}


464 472 

465團隊管理員可以透過將市場配置新增到 `.claude/settings.json` 來為專案設定自動市場安裝。當團隊成員信任儲存庫資料夾時,Claude Code 會提示他們安裝這些市場和外掛程式。473團隊管理員可以透過將市場配置新增到 `.claude/settings.json` 來為專案設定自動市場安裝。當團隊成員信任儲存庫資料夾時,Claude Code 會提示他們安裝這些市場和外掛程式。

466 474 

475自 Claude Code v2.1.195 起,此安裝步驟適用於載入外掛程式的每個路徑。只有專案的 `.claude/settings.json` 啟用的外掛程式,且來自外部來源(例如 GitHub 儲存庫或 npm 套件),在團隊成員安裝之前不會載入。在此之前,Claude Code 會將外掛程式報告為未安裝,並顯示要執行的 `claude plugin install` 命令。

476 

467將 `extraKnownMarketplaces` 新增到您的專案的 `.claude/settings.json`:477將 `extraKnownMarketplaces` 新增到您的專案的 `.claude/settings.json`:

468 478 

469```json theme={null}479```json theme={null}


499 509 

5001. **檢查您的版本**:執行 `claude --version` 以查看已安裝的內容。5101. **檢查您的版本**:執行 `claude --version` 以查看已安裝的內容。

5012. **更新 Claude Code**:5112. **更新 Claude Code**:

502 * **Homebrew**:`brew upgrade claude-code`或如果您安裝了該 cask,執行 `brew upgrade claude-code@latest`512 * **Homebrew**:`brew upgrade claude-code`或如果您安裝了該 cask,執行 `brew upgrade claude-code@latest`

503 * **npm**:`npm install -g @anthropic-ai/claude-code@latest`513 * **npm**:`npm install -g @anthropic-ai/claude-code@latest`

504 * **原生安裝程式**:從[設定](/zh-TW/setup)重新執行安裝命令514 * **原生安裝程式**:從[設定](/zh-TW/setup)重新執行安裝命令

5053. **重新啟動 Claude Code**:更新後,重新啟動您的終端機並再次執行 `claude`。5153. **重新啟動 Claude Code**:更新後,重新啟動您的終端機並再次執行 `claude`。


509</h3>519</h3>

510 520 

511* **市場未載入**:驗證 URL 是否可存取以及 `.claude-plugin/marketplace.json` 是否存在於路徑中521* **市場未載入**:驗證 URL 是否可存取以及 `.claude-plugin/marketplace.json` 是否存在於路徑中

512* **外掛程式安裝失敗**:檢查外掛程式來源 URL 是否可存取以及儲存庫是否為公開(或您有存取權)522* **外掛程式安裝失敗**:檢查外掛程式來源 URL 是否可存取以及儲存庫是否為公開,或您是否有存取權

513* **安裝後找不到檔案**:外掛程式被複製到快取中,因此參考外掛程式目錄外檔案的路徑將無法運作523* **安裝後找不到檔案**:外掛程式被複製到快取中,因此參考外掛程式目錄外檔案的路徑將無法運作

514* **外掛程式技能未出現**:使用 `rm -rf ~/.claude/plugins/cache` 清除快取,重新啟動 Claude Code,然後重新安裝外掛程式。524* **外掛程式技能未出現**:使用 `rm -rf ~/.claude/plugins/cache` 清除快取,重新啟動 Claude Code,然後重新安裝外掛程式。

515 525 

errors.md +23 −5

Details

40| `Your organization has disabled API key authentication` | [Authentication](#your-organization-has-disabled-api-key-authentication) |40| `Your organization has disabled API key authentication` | [Authentication](#your-organization-has-disabled-api-key-authentication) |

41| `Your organization has disabled Claude subscription access` | [Authentication](#your-organization-has-disabled-claude-subscription-access) |41| `Your organization has disabled Claude subscription access` | [Authentication](#your-organization-has-disabled-claude-subscription-access) |

42| `Routines are disabled by your organization's policy` | [Authentication](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |42| `Routines are disabled by your organization's policy` | [Authentication](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |

43| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentication](#remote-control-requires-the-anthropic-api) |

43| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |44| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |

44| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |45| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |

45| `Unable to connect to API` | [Network](#unable-to-connect-to-api) |46| `Unable to connect to API` | [Network](#unable-to-connect-to-api) |


426* 要求您的管理員在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 啟用 **Routines** 切換427* 要求您的管理員在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 啟用 **Routines** 切換

427* 對於不需要組織層級例程的一次性排程工作,請參閱 [scheduled tasks](/zh-TW/scheduled-tasks)428* 對於不需要組織層級例程的一次性排程工作,請參閱 [scheduled tasks](/zh-TW/scheduled-tasks)

428 429 

430<h3 id="remote-control-requires-the-anthropic-api">

431 Remote Control requires the Anthropic API

432</h3>

433 

434此工作階段不是直接與 Anthropic API 通訊,因此沒有 claude.ai 後端供 [Remote Control](/zh-TW/remote-control) 配對。

435 

436```text theme={null}

437Remote Control is only available when using Claude via api.anthropic.com.

438```

439 

440這會出現在 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry 上。{/* min-version: 2.1.196 */}從 v2.1.196 開始,當 [`ANTHROPIC_BASE_URL`](/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機時,例如 [LLM gateway](/zh-TW/llm-gateway) 或代理,即使您使用 claude.ai 登入,它也會出現。

441 

442**要做什麼:**

443 

444* 取消設定 `ANTHROPIC_BASE_URL` 並重新啟動工作階段,或從直接與 Anthropic API 通訊的工作階段啟動 Remote Control

445* 對於此錯誤和其他 Remote Control 啟動訊息,請參閱 [Troubleshoot Remote Control](/zh-TW/remote-control#troubleshooting)

446 

429<h3 id="oauth-token-revoked-or-expired">447<h3 id="oauth-token-revoked-or-expired">

430 OAuth token revoked or expired448 OAuth token revoked or expired

431</h3>449</h3>


727 thinking.type.enabled is not supported for this model745 thinking.type.enabled is not supported for this model

728</h3>746</h3>

729 747 

730您的 Claude Code 版本早於 Opus 4.7 或 Opus 4.8 的最低版本。CLI 傳送了模型不再接受的思考配置。748您的 Claude Code 版本早於 Sonnet 5、Opus 4.8 或 Opus 4.7 的最低版本。CLI 傳送了模型不再接受的思考配置。

731 749 

732```text theme={null}750```text theme={null}

733API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.751API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.


735 753 

736**要做什麼:**754**要做什麼:**

737 755 

738* 執行 `claude update` 並重新啟動 Claude Code。Opus 4.7 需要 v2.1.111 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本756* 執行 `claude update` 並重新啟動 Claude Code。Opus 4.7 需要 v2.1.111 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。Sonnet 5 需要 v2.1.197 或更新版本

739* 如果您無法升級,請執行 `/model` 並選擇 Opus 4.6 或 Sonnet757* 如果您無法升級,請執行 `/model` 並選擇 Opus 4.6 或 Sonnet 4.6 代替

740* 如果您在 Agent SDK 中遇到這個,請參閱 [SDK troubleshooting](/zh-TW/agent-sdk/quickstart#troubleshooting)758* {/* min-version: agent-sdk@0.3.197 */}如果您在 [Agent SDK](/zh-TW/agent-sdk/overview) 中遇到這個,請升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更新版本和 Python SDK v0.2.88 或更新版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更新版本

741 759 

742<h3 id="thinking-budget-exceeds-output-limit">760<h3 id="thinking-budget-exceeds-output-limit">

743 Thinking budget exceeds output limit761 Thinking budget exceeds output limit


791 809 

792* 按 Esc 兩次或執行 `/rewind` 以回退到觸發拒絕的轉向之前的檢查點,然後重新表述或採取不同的方法。請參閱 [Checkpointing](/zh-TW/checkpointing)。810* 按 Esc 兩次或執行 `/rewind` 以回退到觸發拒絕的轉向之前的檢查點,然後重新表述或採取不同的方法。請參閱 [Checkpointing](/zh-TW/checkpointing)。

793* 如果您無法識別哪個轉向導致了它,請執行 `/clear` 以在同一專案中啟動新的對話。您之前的對話已保留在磁碟上,並在 `/resume` 中保持可用。811* 如果您無法識別哪個轉向導致了它,請執行 `/clear` 以在同一專案中啟動新的對話。您之前的對話已保留在磁碟上,並在 `/resume` 中保持可用。

794* 在 [non-interactive mode](/zh-TW/headless)(`-p`)中,其中無法使用 rewind,請使用重新表述的提示重試或啟動新的工作階段而不使用 `--continue`。812* 在 [non-interactive mode](/zh-TW/headless)(`-p`)中,其中無法使用 rewind,請使用重新表述的提示重試或啟動新的工作階段而不使用 `--continue`。政策檢查因模型而異,因此使用 `--model` 切換到不同的模型也可能在某些情況下解決拒絕。

795 813 

796<h2 id="responses-seem-lower-quality-than-usual">814<h2 id="responses-seem-lower-quality-than-usual">

797 回應品質似乎低於平常815 回應品質似乎低於平常

fullscreen.md +7 −1

Details

123 搜尋和檢閱對話123 搜尋和檢閱對話

124</h2>124</h2>

125 125 

126`Ctrl+o` 在正常提示和文字記錄模式之間切換。若要取得更安靜的檢視,只顯示您的最後一個提示、工具呼叫的單行摘要(含編輯 diffstats)和最終回應,請執行 `/focus`。該設定在工作階段之間保持。再次執行 `/focus` 以關閉它。126`Ctrl+o` 在正常提示和文字記錄模式之間切換。

127 

128若要取得更安靜的檢視,只顯示您的最後一個提示、工具呼叫的單行摘要(含編輯 diffstats)和最終回應,請執行 `/focus`。該設定在工作階段之間保持。再次執行 `/focus` 以關閉它。

127 129 

128文字記錄模式獲得 `less` 風格的導航和搜尋:130文字記錄模式獲得 `less` 風格的導航和搜尋:

129 131 


203 205 

204禁用滑鼠捕捉後,使用 `PgUp`、`PgDn`、`Ctrl+Home` 和 `Ctrl+End` 的鍵盤捲動仍然運作,您的終端原生處理選擇。您會失去點擊定位游標、點擊展開工具輸出、URL 點擊和 Claude Code 內的滾輪捲動。206禁用滑鼠捕捉後,使用 `PgUp`、`PgDn`、`Ctrl+Home` 和 `Ctrl+End` 的鍵盤捲動仍然運作,您的終端原生處理選擇。您會失去點擊定位游標、點擊展開工具輸出、URL 點擊和 Claude Code 內的滾輪捲動。

205 207 

208若要保持滾輪捲動但關閉點擊、拖曳和懸停處理,請改為設定 `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`。需要 Claude Code v2.1.195 或更新版本。當兩個變數都設定時,`CLAUDE_CODE_DISABLE_MOUSE` 優先。

209 

210禁用點擊後,Claude Code 仍然捕捉滑鼠,因此滾輪和觸控板捲動對話,但左鍵點擊在 Claude Code 內不執行任何操作。您仍然需要按住終端的按鍵進行原生點擊並拖曳選擇。右鍵點擊和中鍵貼上在支援它們的終端上繼續運作。

211 

206<h2 id="research-preview">212<h2 id="research-preview">

207 研究預覽213 研究預覽

208</h2>214</h2>

gateways.md +87 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# 透過閘道執行 Claude Code

6 

7> 透過自託管閘道路由 Claude Code,以實現集中式認證、使用情況追蹤和成本控制。涵蓋架構、Anthropic 的 Claude 應用程式閘道和使用其他閘道產品。

8 

9閘道是您的組織在 Claude Code 和模型提供者之間執行的代理。Claude Code 將 API 流量傳送到閘道,而不是直接傳送到提供者,閘道使用您的組織持有的認證轉發流量。開發人員向閘道進行身份驗證,而不是持有提供者認證,因此身份驗證、使用情況追蹤、預算和稽核日誌都在您控制的一個地方進行。

10 

11Claude Code 包含一個自託管閘道,[Claude 應用程式閘道](/zh-TW/claude-apps-gateway),在 `claude` 二進位檔案中,因此您不必採用單獨的閘道產品來執行一個。如果您的組織已經執行 [LLM 閘道](/zh-TW/llm-gateway),Claude Code 也可以與之配合使用。

12 

13本頁涵蓋:

14 

15* [閘道如何位於 Claude Code 和您的提供者之間](#how-a-gateway-works)

16* [在 Claude 應用程式閘道和您已經執行的閘道之間進行選擇](#choose-a-gateway)

17* [閘道如何與 claude.ai 訂閱互動](#subscriptions-and-gateways)

18* [與閘道分開配置的內容](#configure-separately-from-the-gateway)

19 

20<h2 id="how-a-gateway-works">

21 閘道如何運作

22</h2>

23 

24每個開發人員的 Claude Code 都指向閘道的位址,並使用閘道簽發的認證進行身份驗證。

25 

26閘道對開發人員進行身份驗證,應用您配置的任何存取和預算規則,並使用組織的認證將請求轉發給您的提供者。提供者可以是 Anthropic 的 API 或 [雲端提供者](/zh-TW/third-party-integrations),例如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry;閘道的配置決定了這一點。使用 Claude 應用程式閘道或另一個公開單一 Anthropic 格式端點的閘道,更改提供者不需要觸及開發人員機器。

27 

28<Frame>

29 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/llm-gateway-flow.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=1c1a8dcc0cfcc3a58652cc8e28cd3e20" alt="顯示 Claude Code 透過閘道路由的圖表。在開發人員機器區域中,Claude Code CLI 和 VS Code 擴充功能使用每個開發人員的認證將請求傳送到閘道位址。在標記為您的基礎設施的區域中,閘道處理身份驗證、使用情況追蹤、預算和路由,並使用您的組織認證轉發請求。在模型提供者區域中,實線箭頭指向您配置的提供者(顯示為 Anthropic API),虛線箭頭指向其他提供者選項,以 Amazon Bedrock、Google Cloud 和 Microsoft Foundry 為例。" width="780" height="322" data-path="images/llm-gateway-flow.svg" />

30</Frame>

31 

32涉及兩種認證:

33 

34* **開發人員認證**:每個開發人員持有自己的認證,由閘道簽發。它向閘道驗證他們的身份,並在使用情況追蹤中識別他們

35* **提供者認證**:閘道為您的提供者帳戶持有一個認證,由所有轉發的流量共享

36 

37<h2 id="choose-a-gateway">

38 選擇閘道

39</h2>

40 

41Claude Code 可與 Anthropic 自己的閘道或您的組織已經執行的閘道配合使用。

42 

43<h3 id="claude-apps-gateway">

44 Claude 應用程式閘道

45</h3>

46 

47Claude 應用程式閘道是 Anthropic 的自託管閘道,包含在 `claude` 二進位檔案中。它路由到 Amazon Bedrock、Google Cloud、Microsoft Foundry 或 Anthropic API 作為上游。開發人員透過 `/login` 使用您的公司身份提供者登入,閘道按 IdP 群組強制執行模型存取和 [受管設定](/zh-TW/permissions#managed-settings),並向您自己的可觀測性堆疊發出 [OpenTelemetry Protocol (OTLP)](/zh-TW/monitoring-usage) 使用情況指標。

48 

49因為它與每個 Claude Code 版本一起構建和測試,所以它轉發 Claude Code 傳送的標頭和請求欄位。單獨維護的閘道需要其 [轉發規則隨著每個版本中這些標頭和欄位的變化而更新](/zh-TW/llm-gateway-protocol#forward-as-open-lists);Claude 應用程式閘道與 CLI 一起發佈,因此沒有清單需要保持最新。有關在閘道工作階段上行為不同的小功能集,請參閱 [可用性和限制](/zh-TW/claude-apps-gateway#availability-and-limitations)。

50 

51閘道登入是瀏覽器 SSO 步驟,沒有服務令牌流,因此沒有開發人員批准登入的 CI 管道無法透過它進行身份驗證;直接針對您的提供者配置這些。Agent SDK 工作階段和在開發人員已登入的機器上執行的 `claude -p` 使用該機器的閘道工作階段,並受其原則管制。請參閱 [CI 管道和遠端機器](/zh-TW/claude-apps-gateway#ci-pipelines-and-remote-machines)。

52 

53請參閱 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway) 以部署它。

54 

55<h3 id="other-gateways">

56 其他閘道

57</h3>

58 

59如果您的組織已經執行 LLM 閘道或 API 閘道,您可以改用它。Anthropic 不認可、維護或審計其他閘道產品,也不支援透過任何閘道將 Claude Code 路由到非 Claude 模型。有關管理員推出檢查清單、閘道必須實現的內容以及如何將 Claude Code 指向它,請參閱 [其他 LLM 閘道](/zh-TW/llm-gateway)。

60 

61<h2 id="subscriptions-and-gateways">

62 訂閱和閘道

63</h2>

64 

65當開發人員透過具有閘道認證的閘道連接時,使用情況按 API 費率計費到您的組織提供者帳戶,他們的 claude.ai 訂閱不被使用或收費。為您執行的閘道設定 [`ANTHROPIC_AUTH_TOKEN`](/zh-TW/env-vars),或使用 `/login` 登入 Claude 應用程式閘道,會關閉該工作階段的訂閱登入。在該認證下轉發的每個請求都計費到閘道提供者認證背後的帳戶。

66 

67例外是僅設定 `ANTHROPIC_BASE_URL`,沒有閘道認證。請求仍然透過閘道路由,但已保存的 claude.ai 登入保持為活動認證,因此訂閱的使用限制和計費適用。[其他 LLM 閘道](/zh-TW/llm-gateway#subscriptions-and-gateways) 涵蓋該配置以及閘道必須轉發的內容才能使其正常運作。

68 

69<h2 id="configure-separately-from-the-gateway">

70 與閘道分開配置

71</h2>

72 

73閘道路由模型 API 請求。您可能期望它處理的一些事情在其他地方配置:

74 

75* **哪個模型回答**:使用 `/model` 命令或 [模型環境變數](/zh-TW/model-config#setting-your-model) 選擇模型。閘道決定請求的去向,而不是開發人員選擇的模型。Claude 應用程式閘道可以使用每個群組的 `availableModels` 允許清單限制選擇,但開發人員仍在其中進行選擇。

76* **其他網路流量**:Claude Code 本身將版本檢查和下載直接傳送到 Anthropic,與閘道路徑分開。可選用戶端遙測流是否也在取決於您的提供者;[遙測預設值表](/zh-TW/data-usage#telemetry-services) 涵蓋每種情況。在已登入的 Claude 應用程式閘道工作階段上,閘道認證禁用 Anthropic 繫結的分析,並在配置 [遙測轉發](/zh-TW/claude-apps-gateway-config#telemetry) 時,將 OTLP 匯出固定到閘道。您的網路仍然需要對 [必需網域](/zh-TW/network-config) 的出口,或設定 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/zh-TW/env-vars) 以關閉可選流。

77* **公司 HTTP 代理**:`HTTPS_PROXY` 位於 Claude Code 和它與之通訊的每個伺服器之間,包括閘道。如果您的網路需要一個,[配置代理](/zh-TW/network-config) 以及閘道。對於 Claude 應用程式閘道,[登入檢查代理主機也在私人網路上](/zh-TW/claude-apps-gateway#prerequisites);如果不是,將閘道主機新增到 `NO_PROXY`,以便 CLI 直接連接到它。

78 

79<h2 id="next-steps">

80 後續步驟

81</h2>

82 

83下一頁取決於誰執行閘道。Anthropic 的閘道從 `claude` 二進位檔案執行,有自己的設定指南;您的組織已經執行的閘道有要實現的協議和管理員推出檢查清單。

84 

85* [Claude 應用程式閘道](/zh-TW/claude-apps-gateway) 以部署 Anthropic 的自託管閘道,具有 SSO 登入和 OTLP 遙測

86* [其他 LLM 閘道](/zh-TW/llm-gateway) 用於您的組織已經執行的閘道必須實現的內容,以及如何將 Claude Code 指向它

87* [為您的組織設定 Claude Code](/zh-TW/admin-setup) 用於閘道是其中一部分的更廣泛推出決策

Details

127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

128 custom_instructions: "Follow our coding standards"128 custom_instructions: "Follow our coding standards"

129 max_turns: "10"129 max_turns: "10"

130 model: "claude-sonnet-4-6"130 model: "claude-sonnet-5"

131```131```

132 132 

133**GA 版本 (v1.0):**133**GA 版本 (v1.0):**


140 claude_args: |140 claude_args: |

141 --append-system-prompt "Follow our coding standards"141 --append-system-prompt "Follow our coding standards"

142 --max-turns 10142 --max-turns 10

143 --model claude-sonnet-4-6143 --model claude-sonnet-5

144```144```

145 145 

146<Tip>146<Tip>


228 228 

229在議題或 PR 評論中:229在議題或 PR 評論中:

230 230 

231```text theme={null}231```text wrap theme={null}

232@claude implement this feature based on the issue description232@claude implement this feature based on the issue description

233@claude how should I implement user authentication for this endpoint?233@claude how should I implement user authentication for this endpoint?

234@claude fix the TypeError in the user dashboard component234@claude fix the TypeError in the user dashboard component


709`claude_args` 參數接受任何 Claude Code CLI 引數:709`claude_args` 參數接受任何 Claude Code CLI 引數:

710 710 

711```yaml theme={null}711```yaml theme={null}

712claude_args: "--max-turns 5 --model claude-sonnet-4-6 --mcp-config /path/to/config.json"712claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"

713```713```

714 714 

715常見引數:715常見引數:

716 716 

717* `--max-turns`:最大對話輪數(預設:10)717* `--max-turns`:最大對話輪數(預設:10)

718* `--model`:要使用的模型(例如 `claude-sonnet-4-6`)718* `--model`:要使用的模型(例如 `claude-sonnet-5`)

719* `--mcp-config`:MCP 設定的路徑719* `--mcp-config`:MCP 設定的路徑

720* `--allowedTools`:允許的工具的逗號分隔清單。`--allowed-tools` 別名也可以使用。720* `--allowedTools`:允許的工具的逗號分隔清單。`--allowed-tools` 別名也可以使用。

721* `--debug`:啟用偵錯輸出721* `--debug`:啟用偵錯輸出

glossary.md +1 −1

Details

170 Effort level170 Effort level

171</h3>171</h3>

172 172 

173一個設定,控制 Claude 在每個回合上使用多少自適應推理思考預算。更高的努力意味著更多的思考 tokens 和更深入的推理;更低的努力更快且更便宜。Effort 在 Fable 5、Opus 4.6 及更新版本和 Sonnet 4.6 上受支援173一個設定,控制 Claude 在每個回合上使用多少自適應推理思考預算。更高的努力意味著更多的思考 tokens 和更深入的推理;更低的努力更快且更便宜。Effort 在 Fable 5、Opus 4.6 及更新版本和 Sonnet 4.6 及更新版本上受支援

174 174 

175了解更多:[Adjust effort level](/zh-TW/model-config#adjust-effort-level)175了解更多:[Adjust effort level](/zh-TW/model-config#adjust-effort-level)

176 176 

Details

236 236 

237```bash theme={null}237```bash theme={null}

238export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'238export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'

239export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'239export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'

240export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'240export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'

241```241```

242 242 


290 1M token context window290 1M token context window

291</h2>291</h2>

292 292 

293Claude Opus 4.6 及更新版本,以及 Sonnet 4.6,在 Vertex AI 上支援 [1M token context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#1m-token-context-window)。當您選擇 1M 模型變體時,Claude Code 會自動啟用擴展 context window。293Claude Sonnet 5、Opus 4.6 及更新版本,以及 Sonnet 4.6,在 Vertex AI 上支援 [1M token context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#1m-token-context-window)。Sonnet 5 始終以 1M 視窗執行沒有 `[1m]` 變體可選擇。對於其他模型,Claude Code 會在您選擇 1M 模型變體時自動啟用擴展 context window。

294 294 

295[設定精靈](#sign-in-with-vertex-ai)在固定模型時提供 1M context 選項。若要為手動固定的模型啟用它,請在模型 ID 後附加 `[1m]`。如需詳細資訊,請參閱[為第三方部署固定模型](/zh-TW/model-config#pin-models-for-third-party-deployments)。295[設定精靈](#sign-in-with-vertex-ai)在固定模型時提供 1M context 選項。若要為手動固定的模型啟用它,請在模型 ID 後附加 `[1m]`。如需詳細資訊,請參閱[為第三方部署固定模型](/zh-TW/model-config#pin-models-for-third-party-deployments)。

296 296 

hooks.md +53 −24

Details

191`matcher` 欄位篩選 hooks 何時觸發。匹配器的評估方式取決於它包含的字元:191`matcher` 欄位篩選 hooks 何時觸發。匹配器的評估方式取決於它包含的字元:

192 192 

193| 匹配器值 | 評估為 | 範例 |193| 匹配器值 | 評估為 | 範例 |

194| :----------------------- | :--------------------------------- | :------------------------------------------------------------------------ |194| :--------------------------- | :--------------------------------- | :----------------------------------------------------------------------------------- |

195| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出現時觸發 |195| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出現時觸發 |

196| 僅字母、數字、`_`、空格、`,` 和 `\|` | 精確字串或由 `\|` 或 `,` 分隔的精確字串清單,可選周圍空格 | `Bash` 僅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各自精確匹配任一工具 |196| 僅字母、數字、`_`、`-`、空格、`,` 和 `\|` | 精確字串或由 `\|` 或 `,` 分隔的精確字串清單,可選周圍空格 | `Bash` 僅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各自精確匹配任一工具;`code-reviewer` 僅匹配該代理類型 |

197| 包含任何其他字元 | JavaScript 正規表達式 | `^Notebook` 匹配任何以 Notebook 開頭的工具;`mcp__memory__.*` 匹配來自 `memory` 伺服器的每個工具 |197| 包含任何其他字元 | JavaScript 正規表達式,未錨定 | `^Notebook` 匹配任何以 Notebook 開頭的工具;`mcp__memory__.*` 匹配來自 `memory` 伺服器的每個工具 |

198 198 

199逗號分隔符和周圍空格容差需要 Claude Code v2.1.191 或更新版本。`FileChanged` `StopFailure` 事件僅接受 `|` 作為清單分隔符並將 `,` 視為字面字元;表格中列出的所有其他事件接受 `|` `,`。199在正規表達式路徑上的匹配器使用 JavaScript `RegExp.prototype.test` 進行測試,該測試在值中任何位置的匹配時成功。`Edit.*` 匹配 `Edit` `NotebookEdit`;當您需要整個字串匹配時 `^` `$` 包裝模式,如 `^Edit$`。

200 

201逗號分隔符和周圍空格容差需要 Claude Code v2.1.191 或更新版本。

202 

203精確匹配集中的連字號需要 Claude Code v2.1.195 或更新版本。在較早的版本上,像 `code-reviewer` 這樣的連字號名稱被評估為未錨定的正規表達式,因此它也會針對 `senior-code-reviewer` 觸發;在這些版本上將其錨定為 `^code-reviewer$` 以僅匹配該名稱。

204 

205`FileChanged` 和 `StopFailure` 使用更窄的精確匹配集,僅包含字母、數字、`_` 和 `|`。匹配器中的連字號、空格或逗號會將其保留在正規表達式路徑上,只有 `|` 分隔替代項。表格中列出的支援匹配器的所有其他事件接受 `|` 或 `,`。

200 206 

201`FileChanged` 事件在建立其監視清單時不遵循這些規則。請參閱 [FileChanged](#filechanged)。207`FileChanged` 事件在建立其監視清單時不遵循這些規則。請參閱 [FileChanged](#filechanged)。

202 208 


209| `Setup` | 哪個 CLI 旗標觸發設定 | `init`、`maintenance` |215| `Setup` | 哪個 CLI 旗標觸發設定 | `init`、`maintenance` |

210| `SessionEnd` | 工作階段為何結束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`bypass_permissions_disabled`、`other` |216| `SessionEnd` | 工作階段為何結束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`bypass_permissions_disabled`、`other` |

211| `Notification` | 通知類型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_complete`、`elicitation_response` |217| `Notification` | 通知類型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_complete`、`elicitation_response` |

212| `SubagentStart` | 代理類型 | `general-purpose`、`Explore`、`Plan` 或自訂代理名稱 |218| `SubagentStart` | 代理類型 | `general-purpose`、`Explore`、`Plan`、自訂代理名稱或外掛程式範圍名稱,如 `^my-plugin:reviewer$` |

213| `PreCompact`、`PostCompact` | 觸發壓縮的原因 | `manual`、`auto` |219| `PreCompact`、`PostCompact` | 觸發壓縮的原因 | `manual`、`auto` |

214| `SubagentStop` | 代理類型 | 與 `SubagentStart` 相同的值 |220| `SubagentStop` | 代理類型 | 與 `SubagentStart` 相同的值 |

215| `ConfigChange` | 配置來源 | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |221| `ConfigChange` | 配置來源 | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |


244}250}

245```251```

246 252 

247`UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove` 和 `CwdChanged` 不支援匹配器,總是在每次出現時觸發。如果您將 `matcher` 欄位新增到這些事件,它會被無聲地忽略。253`UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` 和 `CwdChanged` 不支援匹配器,總是在每次出現時觸發。如果您將 `matcher` 欄位新增到這些事件,它會被無聲地忽略。

248 254 

249對於工具事件,您可以通過在個別 hook 處理程式上設定 [`if` 欄位](#common-fields) 來更狹隘地篩選。`if` 使用 [權限規則語法](/zh-TW/permissions) 來匹配工具名稱和參數,因此 `"Bash(git *)"` 僅在任何 Bash 輸入的子命令匹配 `git *` 時執行,`"Edit(*.ts)"` 僅針對 TypeScript 檔案執行。255對於工具事件,您可以通過在個別 hook 處理程式上設定 [`if` 欄位](#common-fields) 來更狹隘地篩選。`if` 使用 [權限規則語法](/zh-TW/permissions) 來匹配工具名稱和參數,因此 `"Bash(git *)"` 僅在任何 Bash 輸入的子命令匹配 `git *` 時執行,`"Edit(*.ts)"` 僅針對 TypeScript 檔案執行。

250 256 


260* `mcp__filesystem__read_file`:Filesystem 伺服器的讀取檔案工具266* `mcp__filesystem__read_file`:Filesystem 伺服器的讀取檔案工具

261* `mcp__github__search_repositories`:GitHub 伺服器的搜尋工具267* `mcp__github__search_repositories`:GitHub 伺服器的搜尋工具

262 268 

263要匹配來自伺服器的每個工具,請在伺服器前綴後附加 `.*`。`.*` 是必需的:像 `mcp__memory` 這樣的匹配器僅包含字母和底線,因此它被比較為精確字串,不匹配任何工具。269要匹配來自伺服器的每個工具,請在伺服器前綴後附加 `.*`。`.*` 是必需的:像 `mcp__memory` 或 `mcp__brave-search` 這樣的匹配器僅包含精確匹配字元,因此它被比較為精確字串,不匹配任何工具。

264 270 

265* `mcp__memory__.*` 匹配來自 `memory` 伺服器的所有工具271* `mcp__memory__.*` 匹配來自 `memory` 伺服器的所有工具

272* `mcp__brave-search__.*` 匹配來自名稱包含連字號的伺服器的所有工具

266* `mcp__.*__write.*` 匹配來自任何伺服器的任何名稱以 `write` 開頭的工具273* `mcp__.*__write.*` 匹配來自任何伺服器的任何名稱以 `write` 開頭的工具

267 274 

275精確匹配集中的連字號需要 Claude Code v2.1.195 或更新版本。在較早的版本上,像 `mcp__brave-search` 這樣的裸連字號前綴被評估為未錨定的正規表達式,並匹配來自該伺服器的每個工具。`mcp__brave-search__.*` 形式在每個版本上都有效。

276 

268此範例記錄所有 memory 伺服器操作並驗證來自任何 MCP 伺服器的寫入操作:277此範例記錄所有 memory 伺服器操作並驗證來自任何 MCP 伺服器的寫入操作:

269 278 

270```json theme={null}279```json theme={null}


306* **[提示 hooks](#prompt-and-agent-hook-fields)**(`type: "prompt"`):將提示發送到 Claude 模型進行單輪評估。模型以 JSON 形式返回是/否決定。請參閱 [基於提示的 hooks](#prompt-based-hooks)。315* **[提示 hooks](#prompt-and-agent-hook-fields)**(`type: "prompt"`):將提示發送到 Claude 模型進行單輪評估。模型以 JSON 形式返回是/否決定。請參閱 [基於提示的 hooks](#prompt-based-hooks)。

307* **[代理 hooks](#prompt-and-agent-hook-fields)**(`type: "agent"`):生成一個可以使用 Read、Grep 和 Glob 等工具來驗證條件的 subagent,然後返回決定。代理 hooks 是實驗性的,可能會變更。請參閱 [基於代理的 hooks](#agent-based-hooks)。316* **[代理 hooks](#prompt-and-agent-hook-fields)**(`type: "agent"`):生成一個可以使用 Read、Grep 和 Glob 等工具來驗證條件的 subagent,然後返回決定。代理 hooks 是實驗性的,可能會變更。請參閱 [基於代理的 hooks](#agent-based-hooks)。

308 317 

318所有匹配的 hooks 並行執行,相同的處理程式會自動去重。命令 hooks 按命令字串和 `args` 去重,HTTP hooks 按 URL 去重。

319 

320處理程式在目前目錄中執行,使用 Claude Code 的環境。在遠端網路環境中,`$CLAUDE_CODE_REMOTE` 環境變數設定為 `"true"`,在本機 CLI 中未設定。

321 

309<h4 id="common-fields">322<h4 id="common-fields">

310 通用欄位323 通用欄位

311</h4>324</h4>


341除了 [通用欄位](#common-fields) 外,命令 hooks 還接受這些欄位:354除了 [通用欄位](#common-fields) 外,命令 hooks 還接受這些欄位:

342 355 

343| 欄位 | 必需 | 描述 |356| 欄位 | 必需 | 描述 |

344| :------------ | :- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |357| :------------ | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

345| `command` | 是 | 要執行的 shell 命令。使用 `args` 時,要直接生成的可執行檔。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |358| `command` | 是 | 要執行的 shell 命令。使用 `args` 時,要直接生成的可執行檔。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |

346| `args` | 否 | 參數清單。存在時,`command` 被解析為可執行檔並直接使用 `args` 作為參數向量生成,不涉及 shell。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |359| `args` | 否 | 參數清單。存在時,`command` 被解析為可執行檔並直接使用 `args` 作為參數向量生成,不涉及 shell。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |

347| `async` | 否 | 如果為 `true`,在背景執行而不阻止。請參閱 [在背景執行 hooks](#run-hooks-in-the-background) |360| `async` | 否 | 如果為 `true`,在背景執行而不阻止。請參閱 [在背景執行 hooks](#run-hooks-in-the-background) |

348| `asyncRewake` | 否 | 如果為 `true`,在背景執行並在退出代碼 2 時喚醒 Claude。暗示 `async`。Hook 的 stderr,或如果 stderr 為空則為 stdout,作為系統提醒顯示給 Claude,以便它可以對長時間執行的背景失敗做出反應 |361| `asyncRewake` | 否 | 如果為 `true`,在背景執行並在退出代碼 2 時喚醒 Claude。暗示 `async`。Hook 的 stderr,或如果 stderr 為空則為 stdout,作為系統提醒顯示給 Claude,以便它可以對長時間執行的背景失敗做出反應 |

349| `shell` | 否 | 用於此 hook 的 shell。接受 `"bash"`(預設)或 `"powershell"`。設定 `"powershell"` 在 Windows 上通過 PowerShell 執行命令。不需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL`,因為 hooks 直接生成 PowerShell。設定 `args` 時被忽略 |362| `shell` | 否 | 用於此 hook 的 shell。接受 `"bash"` 或 `"powershell"`。預設為 `"bash"`,或在未安裝 Git Bash 時在 Windows 上預設為 `"powershell"`。設定 `"powershell"` 在 Windows 上通過 PowerShell 執行命令。不需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL`,因為 hooks 直接生成 PowerShell。設定 `args` 時被忽略 |

350 363 

351<a id="exec-form-and-shell-form" />364<a id="exec-form-and-shell-form" />

352 365 


479| `prompt` | 是 | 要發送到模型的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。使用反斜線逸出以包含字面文字:`\$1.00` 呈現為 `$1.00` |492| `prompt` | 是 | 要發送到模型的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。使用反斜線逸出以包含字面文字:`\$1.00` 呈現為 `$1.00` |

480| `model` | 否 | 用於評估的模型。預設為快速模型 |493| `model` | 否 | 用於評估的模型。預設為快速模型 |

481 494 

482所有匹配的 hooks 並行執行,相同的處理程式會自動去重。命令 hooks 按命令字串和 `args` 去重,HTTP hooks 按 URL 去重。處理程式在目前目錄中執行,使用 Claude Code 的環境。在遠端網路環境中,`$CLAUDE_CODE_REMOTE` 環境變數設定為 `"true"`,在本機 CLI 中未設定。

483 

484<h3 id="reference-scripts-by-path">495<h3 id="reference-scripts-by-path">

485 按路徑參考指令碼496 按路徑參考指令碼

486</h3>497</h3>


620| 欄位 | 描述 |631| 欄位 | 描述 |

621| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |632| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

622| `session_id` | 目前工作階段識別碼 |633| `session_id` | 目前工作階段識別碼 |

634| `prompt_id` | UUID 識別目前正在處理的使用者提示。與 [OpenTelemetry 事件上的 `prompt.id` 屬性](/zh-TW/monitoring-usage#event-correlation-attributes) 相符,因此您可以將 hook 輸出與單一提示的遙測相關聯。在第一個使用者輸入之前不存在。{/* min-version: 2.1.196 */}需要 Claude Code v2.1.196 或更新版本 |

623| `transcript_path` | 對話 JSON 的路徑 |635| `transcript_path` | 對話 JSON 的路徑 |

624| `cwd` | 叫用 hook 時的目前工作目錄 |636| `cwd` | 叫用 hook 時的目前工作目錄 |

625| `permission_mode` | 目前 [權限模式](/zh-TW/permissions#permission-modes):`"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"` 或 `"bypassPermissions"`。並非所有事件都接收此欄位:請參閱下面每個事件的 JSON 範例以檢查 |637| `permission_mode` | 目前 [權限模式](/zh-TW/permissions#permission-modes):`"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"` 或 `"bypassPermissions"`。並非所有事件都接收此欄位:請參閱下面每個事件的 JSON 範例以檢查 |


629使用 `--agent` 執行或在 subagent 內執行時,包括兩個額外欄位:641使用 `--agent` 執行或在 subagent 內執行時,包括兩個額外欄位:

630 642 

631| 欄位 | 描述 |643| 欄位 | 描述 |

632| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |644| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

633| `agent_id` | Subagent 的唯一識別碼。僅當 hook 在 subagent 呼叫內觸發時出現。使用此項來區分 subagent hook 呼叫與主執行緒呼叫。 |645| `agent_id` | Subagent 的唯一識別碼。僅當 hook 在 subagent 呼叫內觸發時出現。使用此項來區分 subagent hook 呼叫與主執行緒呼叫。 |

634| `agent_type` | 代理名稱(例如 `"Explore"` 或 `"security-reviewer"`)。當工作階段使用 `--agent` 或 hook 在 subagent 內觸發時出現。對於 subagents,subagent 的類型優先於工作階段的 `--agent` 值。對於 [自訂 subagents](/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。 |646| `agent_type` | 代理名稱(例如 `"Explore"` 或 `"security-reviewer"`)。當工作階段使用 `--agent` 或 hook 在 subagent 內觸發時出現。對於 subagents,subagent 的類型優先於工作階段的 `--agent` 值。對於 [自訂 subagents](/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。對於由 [plugin](/zh-TW/plugins) 提供的 subagents,這是外掛範圍識別碼,例如 `my-plugin:reviewer`,而不是裸 frontmatter 名稱。請參閱 [SubagentStart](#subagentstart) 以了解如何針對外掛範圍名稱編寫匹配器。 |

635 647 

636只有 [`SessionStart`](#sessionstart) hooks 可以接收 `model` 欄位,且不保證存在。沒有 `$CLAUDE_MODEL` 環境變數。Hook 程序繼承父環境,因此如果您在 shell 中設定它,它可以讀取 `$ANTHROPIC_MODEL`,但當您在工作階段期間使用 `/model` 切換模型時,該值不會改變。648只有 [`SessionStart`](#sessionstart) hooks 可以接收 `model` 欄位,且不保證存在。沒有 `$CLAUDE_MODEL` 環境變數。Hook 程序繼承父環境,因此如果您在 shell 中設定它,它可以讀取 `$ANTHROPIC_MODEL`,但當您在工作階段期間使用 `/model` 切換模型時,該值不會改變。

637 649 


640```json theme={null}652```json theme={null}

641{653{

642 "session_id": "abc123",654 "session_id": "abc123",

655 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

643 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",656 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",

644 "cwd": "/home/user/my-project",657 "cwd": "/home/user/my-project",

645 "permission_mode": "default",658 "permission_mode": "default",


796# Notification hook:當 Claude Code 需要注意時 ping 桌面。809# Notification hook:當 Claude Code 需要注意時 ping 桌面。

797input=$(cat)810input=$(cat)

798title="Claude Code'811title="Claude Code'

799body=$(jq -r '.message // 'Needs your attention'' <<<'$input")812body=$(jq -r '.message // 'Needs your attention"' <<<"$input")

800seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")813seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

801jq -nc --arg seq "$seq" '{terminalSequence: $seq}'814jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

802```815```


867 880 

868一些事件也可以重寫內容,而不僅僅是允許或阻止它:881一些事件也可以重寫內容,而不僅僅是允許或阻止它:

869 882 

870* `PreToolUse``updatedInput` 直接在 `hookSpecificOutput` 下替換工具的引數,然後執行[詳細資訊](#pretooluse-decision-control)883* `PreToolUse``updatedInput` 直接在 `hookSpecificOutput` 下替換工具的引數,然後執行。請參閱 [PreToolUse 決定控制](#pretooluse-decision-control) 以取得完整的選項集。

871* `PermissionRequest``updatedInput` 在 `decision` 物件內[詳細資訊](#permissionrequest-decision-control)884* `PermissionRequest``updatedInput` 在 `decision` 物件內。請參閱 [PermissionRequest 決定控制](#permissionrequest-decision-control) 以取得完整的選項集。

872* `PostToolUse``updatedToolOutput` 替換工具的結果[詳細資訊](#posttooluse-decision-control)885* `PostToolUse``updatedToolOutput` 替換工具的結果。請參閱 [PostToolUse 決定控制](#posttooluse-decision-control) 以取得完整的選項集。

873* `UserPromptSubmit`無法替換提示;僅在其旁邊注入 `additionalContext`886* `UserPromptSubmit`無法替換提示;僅在其旁邊注入 `additionalContext`

874 887 

875對於編輯或轉換使用案例,在 `PreToolUse` 攔截出站工具輸入,在 `PostToolUse` 攔截入站工具結果。888對於編輯或轉換使用案例,在 `PreToolUse` 攔截出站工具輸入,在 `PostToolUse` 攔截入站工具結果。

876 889 


959 "cwd": "/Users/...",972 "cwd": "/Users/...",

960 "hook_event_name": "SessionStart",973 "hook_event_name": "SessionStart",

961 "source": "startup",974 "source": "startup",

962 "model": "claude-sonnet-4-6"975 "model": "claude-sonnet-5"

963}976}

964```977```

965 978 


1148 1161 

1149`UserPromptSubmit` hooks 對於 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比其他事件上這些類型的 600 秒預設值更短。因為此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1162`UserPromptSubmit` hooks 對於 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比其他事件上這些類型的 600 秒預設值更短。因為此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1150 1163 

1164達到逾時的 `UserPromptSubmit` hook 被取消,其輸出(包括任何 `additionalContext`)被丟棄。提示仍然到達 Claude,但沒有該上下文。從 v2.1.196 開始,成績單顯示一個通知,命名 hook、觸發的逾時以及輸出被丟棄。較早的版本取消 hook 而不顯示通知。

1165 

1151<h4 id="userpromptsubmit-input">1166<h4 id="userpromptsubmit-input">

1152 UserPromptSubmit 輸入1167 UserPromptSubmit 輸入

1153</h4>1168</h4>


1404 1419 

1405在 Claude 建立工具參數後和處理工具呼叫之前執行。匹配工具名稱:`Bash`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`WebFetch`、`WebSearch`、`AskUserQuestion`、`ExitPlanMode` 和任何 [MCP 工具名稱](#match-mcp-tools)。1420在 Claude 建立工具參數後和處理工具呼叫之前執行。匹配工具名稱:`Bash`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`WebFetch`、`WebSearch`、`AskUserQuestion`、`ExitPlanMode` 和任何 [MCP 工具名稱](#match-mcp-tools)。

1406 1421 

1422<Warning>

1423 PreToolUse 僅在 Claude 呼叫工具時執行。您 [在提示中使用 `@` 參考的檔案](/zh-TW/common-workflows#reference-files-and-directories) 被新增而不進行任何工具呼叫:Claude Code 在建立提示時插入其內容,因此沒有 PreToolUse hook 針對它們觸發,包括匹配 `Read` 的 hooks。要阻止特定路徑的 `@` 參考,請改用 [`Read` 拒絕規則](/zh-TW/permissions#read-and-edit)。

1424</Warning>

1425 

1407使用 [PreToolUse 決定控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。1426使用 [PreToolUse 決定控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。

1408 1427 

1409<h4 id="pretooluse-input">1428<h4 id="pretooluse-input">


1938}1957}

1939```1958```

1940 1959 

1941注入的 `additionalContext` 被持久化到工作階段成績單。在 `--continue` 或 `--resume` 時,保存的文字從磁碟重新播放,hook 不會針對過去的轉向重新執行。優先選擇靜態上下文,例如慣例或檔案類型指導,而不是動態值,例如時間戳或目前提交 SHA,因為這些在恢復時變得陳舊。

1942 

1943將上下文框架為事實資訊而不是命令式系統指令。寫成帶外系統命令的文字可以觸發 Claude 的提示注入防禦,這會將注入呈現給使用者而不是對其採取行動。

1944 

1945返回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。1960返回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。

1946 1961 

1947<h3 id="permissiondenied">1962<h3 id="permissiondenied">


2043 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",2058 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2044 "cwd": "/Users/...",2059 "cwd": "/Users/...",

2045 "hook_event_name": "Notification",2060 "hook_event_name": "Notification",

2046 "message": "Claude needs your permission to use Bash",2061 "message": "Claude needs your permission",

2047 "title": "Permission needed",2062 "title": "Permission needed",

2048 "notification_type": "permission_prompt"2063 "notification_type": "permission_prompt"

2049}2064}


2057 2072 

2058當通過 Agent 工具生成 Claude Code subagent 時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂 subagents](/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。2073當通過 Agent 工具生成 Claude Code subagent 時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂 subagents](/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。

2059 2074 

2075對於由 [plugin](/zh-TW/plugins) 提供的 subagents,代理類型是外掛程式範圍的識別碼,例如 `my-plugin:reviewer`,而不是裸露的 frontmatter 名稱。冒號將外掛程式範圍的名稱放在正規表達式路徑上,因此使用 `^` 和 `$` 錨定匹配器以進行精確匹配:`^my-plugin:reviewer$`。

2076 

2060<h4 id="subagentstart-input">2077<h4 id="subagentstart-input">

2061 SubagentStart 輸入2078 SubagentStart 輸入

2062</h4>2079</h4>


3288}3305}

3289```3306```

3290 3307 

3308若要從 PowerShell shell 形式命令參考專案根目錄,請使用 `$env:CLAUDE_PROJECT_DIR` 將其讀取為環境變數。PowerShell 將裸露的 `${CLAUDE_PROJECT_DIR}` 形式視為本機變數,而非環境查詢,Claude Code 僅在 [plugin hooks](#reference-scripts-by-path) 的 shell 形式中替換該佔位符。對於在 `settings.json` 中定義的 hook,請使用 `$env:` 形式或切換到 [exec 形式](#exec-form-and-shell-form),其中 `${CLAUDE_PROJECT_DIR}` 會在每個 `args` 元素中被替換,無論 hook 在何處定義。

3309 

3310下面的範例顯示了一個 `settings.json` hook,它使用 `$env:` 形式執行專案指令碼:

3311 

3312```json theme={null}

3313{

3314 "type": "command",

3315 "shell": "powershell",

3316 "command": "& \"$env:CLAUDE_PROJECT_DIR\\.claude\\hooks\\check.ps1\""

3317}

3318```

3319 

3291<h2 id="debug-hooks">3320<h2 id="debug-hooks">

3292 偵錯 hooks3321 偵錯 hooks

3293</h2>3322</h2>

Details

249* 當您執行 `/clear` 以開始新會話時,輸入歷史會重設。先前會話的對話會被保留,可以繼續進行。249* 當您執行 `/clear` 以開始新會話時,輸入歷史會重設。先前會話的對話會被保留,可以繼續進行。

250* 連續提交相同的提示兩次會記錄一個歷史項目,因此按向上鍵會跳到先前的不同提示250* 連續提交相同的提示兩次會記錄一個歷史項目,因此按向上鍵會跳到先前的不同提示

251* 使用向上/向下箭頭導航(請參閱上面的快捷鍵)251* 使用向上/向下箭頭導航(請參閱上面的快捷鍵)

252* **注意**:歷史擴展(`!`)預設停用252* 歷史擴展(`!`)預設停用

253 253 

254<h3 id="reverse-search-with-ctrl-r">254<h3 id="reverse-search-with-ctrl-r">

255 使用 Ctrl+R 進行反向搜尋255 使用 Ctrl+R 進行反向搜尋


271搜尋會載入所選範圍中最近的 100 個唯一提示,重複項目會摺疊至最新出現。匹配的提示會顯示醒目提示的搜尋詞,因此您可以找到並重複使用先前的輸入。271搜尋會載入所選範圍中最近的 100 個唯一提示,重複項目會摺疊至最新出現。匹配的提示會顯示醒目提示的搜尋詞,因此您可以找到並重複使用先前的輸入。

272 272 

273<h2 id="background-bash-commands">273<h2 id="background-bash-commands">

274 背景 bash 命令274 背景 Bash 命令

275</h2>275</h2>

276 276 

277Claude Code 支援在背景執行 bash 命令,允許您在長時間執行的程序執行時繼續工作。277Claude Code 支援在背景執行 Bash 命令,允許您在長時間執行的程序執行時繼續工作。

278 278 

279<h3 id="how-backgrounding-works">279<h3 id="how-backgrounding-works">

280 背景執行的工作原理280 背景執行的工作原理


285若要在背景執行命令,您可以:285若要在背景執行命令,您可以:

286 286 

287* 提示 Claude Code 在背景執行命令287* 提示 Claude Code 在背景執行命令

288* 按 Ctrl+B 將常規 Bash 工具呼叫移到背景。Tmux 使用者必須按 Ctrl+B 兩次,因為 tmux 的前綴鍵。288* 按 `Ctrl+B` 將常規 Bash 工具呼叫移到背景。Tmux 使用者必須按 `Ctrl+B` 兩次,因為 tmux 的前綴鍵。

289 289 

290**主要功能:**290**主要功能:**

291 291 

292* 輸出被寫入檔案,Claude 可以使用 Read 工具檢索它292* 輸出被寫入檔案,Claude 可以使用 Read 工具檢索它

293* 背景工作有唯一的 ID 用於追蹤和輸出檢索293* 背景工作有唯一的 ID 用於追蹤和輸出檢索

294* 背景工作在 Claude Code 退出時會自動清理294* 背景工作在 Claude Code 退出時會自動清理。將工作階段背景執行而不是退出會將它們交給背景工作階段,它們會繼續執行。請參閱[背景執行執行中的工作階段](/zh-TW/agent-view#from-inside-a-session)

295* 如果輸出超過 5GB,背景工作會自動終止,stderr 中會有說明原因的備註295* 如果輸出超過 5GB,背景工作會自動終止,stderr 中會有說明原因的備註

296* {/* min-version: 2.1.193 */}自 v2.1.193 起,在 macOS 和 Linux 上,當作業系統發出記憶體壓力信號時,執行中的背景工作會被終止,前提是工作階段已閒置至少 30 分鐘,沒有任何轉換或子代理執行。將 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/zh-TW/env-vars) 設定為 `1` 以關閉此功能

296 297 

297若要停用所有背景工作功能,請將 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 環境變數設定為 `1`。詳見[環境變數](/zh-TW/env-vars)。298若要停用所有背景工作功能,請將 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 環境變數設定為 `1`。詳見[環境變數](/zh-TW/env-vars)。

298 299 


308 使用 `!` 前綴的 Shell 模式309 使用 `!` 前綴的 Shell 模式

309</h3>310</h3>

310 311 

311透過在輸入前加上 `!` 直接執行 bash 命令,無需透過 Claude:312透過在輸入前加上 `!` 直接執行 shell 命令,無需透過 Claude:

312 313 

313```bash theme={null}314```bash theme={null}

314! npm test315! npm test


322* 顯示即時進度和輸出323* 顯示即時進度和輸出

323* 支援相同的 `Ctrl+B` 背景執行,用於長時間執行的命令324* 支援相同的 `Ctrl+B` 背景執行,用於長時間執行的命令

324* 不需要 Claude 解釋或批准命令325* 不需要 Claude 解釋或批准命令

325* 支援基於歷史的自動完成:輸入部分命令並按 **Tab** 以從目前專案中的先前 `!` 命令完成326* 支援基於歷史的自動完成:輸入部分命令並按 `Tab` 以從目前專案中的先前 `!` 命令完成

326* 使用 `Escape``Backspace` 或在空提示上使用 `Ctrl+U` 退出327* {/* min-version: 2.1.193 */}自 v2.1.193 起在所有平台上支援即時檔案路徑自動完成:輸入包含正斜線的權杖,例如 `./src/``~/`,以查看符合的檔案和目錄的下拉清單,然後按 `Tab` 以接受。在 Windows 上也使用正斜線;下拉清單由 `/` 觸發,而不是 `\`

328* 在空提示上使用 `Escape`、`Backspace` 或 `Ctrl+U` 退出

327* 將以 `!` 開頭的貼上文字貼到空提示中會自動進入 shell 模式,符合輸入的 `!` 行為329* 將以 `!` 開頭的貼上文字貼到空提示中會自動進入 shell 模式,符合輸入的 `!` 行為

328 330 

329自 v2.1.186 起,Claude 會在命令輸出進入文字記錄後自動回應,因此您可以執行 `! npm test` 並獲得失敗的說明,無需第二個提示。回應成本與傳送一般提示相同。若要恢復先前的行為,其中輸出被新增到上下文而不進行回應,請在 `settings.json` 中將 [`respondToBashCommands`](/zh-TW/settings#available-settings) 設定為 `false`。在 v2.1.186 之前,shell 模式始終將輸出新增到上下文而不進行回應。331自 v2.1.186 起,Claude 會在命令輸出進入文字記錄後自動回應,因此您可以執行 `! npm test` 並獲得失敗的說明,無需第二個提示。回應成本與傳送一般提示相同。若要恢復先前的行為,其中輸出被新增到上下文而不進行回應,請在 `settings.json` 中將 [`respondToBashCommands`](/zh-TW/settings#available-settings) 設定為 `false`。在 v2.1.186 之前,shell 模式始終將輸出新增到上下文而不進行回應。


338 340 

339Claude 回應後,建議會根據您的對話歷史繼續出現,例如多部分請求的後續步驟或工作流程的自然延續。341Claude 回應後,建議會根據您的對話歷史繼續出現,例如多部分請求的後續步驟或工作流程的自然延續。

340 342 

341* 按 **Tab****Right arrow** 以將建議放入提示輸入中,然後按 **Enter** 以提交343* 按 `Tab``Right arrow` 以將建議放入提示輸入中,然後按 `Enter` 以提交

342* 開始輸入以關閉它344* 開始輸入以關閉它

343 345 

344建議作為背景請求執行,該請求重複使用父對話的提示快取,因此額外成本最少。當快取冷時,Claude Code 會跳過建議生成以避免不必要的成本。346建議作為背景請求執行,該請求重複使用父對話的提示快取,因此額外成本最少。當快取冷時,Claude Code 會跳過建議生成以避免不必要的成本。


413* 紅色:要求變更415* 紅色:要求變更

414* 灰色:草稿416* 灰色:草稿

415 417 

416拉取請求合併或關閉後,徽章會消失。`Cmd+click`(Mac)或 `Ctrl+click`(Windows/Linux)連結以在瀏覽器中開啟拉取請求。狀態每 60 秒自動更新,並在工作階段中執行 `gh pr` 或 `git push` 命令後立即更新。418拉取請求合併或關閉後,徽章會消失。`Cmd+click`(macOS)或 `Ctrl+click`(Windows/Linux)連結以在瀏覽器中開啟拉取請求。狀態每 60 秒自動更新,並在工作階段中執行 `gh pr` 或 `git push` 命令後立即更新。

417 419 

418<Note>420<Note>

419 PR 狀態需要安裝並驗證 `gh` CLI(`gh auth login`)。421 PR 狀態需要安裝並驗證 `gh` CLI(`gh auth login`)。

jetbrains.md +1 −1

Details

233 安全考量233 安全考量

234</h2>234</h2>

235 235 

236當 Claude Code 在啟用自動編輯權限的 JetBrains IDE 中執行時,它可能能夠修改可由您的 IDE 自動執行的 IDE 設定檔。這可能會增加在自動編輯模式下執行 Claude Code 的風險,並允許繞過 Claude Code 對 bash 執行的權限提示。236當 Claude Code 在啟用 [`acceptEdits` 權限模式](/zh-TW/permission-modes#auto-approve-file-edits-with-acceptedits-mode)的 JetBrains IDE 中執行時,它可能能夠修改可由您的 IDE 自動執行的 IDE 設定檔。這可能會增加在 `acceptEdits` 模式下執行 Claude Code 的風險,並允許繞過 Claude Code 對 bash 執行的權限提示。

237 237 

238在 JetBrains IDEs 中執行時,請考慮:238在 JetBrains IDEs 中執行時,請考慮:

239 239 

llm-gateway.md +0 −96 deleted

File Deleted View Diff

1> ## Documentation Index

2> 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.

4 

5# LLM gateway

6 

7> 透過 LLM gateway 路由 Claude Code 以進行集中身份驗證、使用情況追蹤和成本控制。涵蓋將 Claude Code 連接到 gateway、為您的組織推出 gateway、Claude Code 發送到 gateway 的內容,以及 gateway 如何與 claude.ai 訂閱互動。

8 

9LLM gateway 是您的組織在 Claude Code 和模型提供商之間運行的代理。Claude Code 將 API 流量發送到 gateway,gateway 使用您的組織控制的憑證將其轉發給提供商。

10 

11<Note>

12 * 如果您是連接到現有 gateway 的開發人員:[將 Claude Code 連接到您的 gateway](/zh-TW/llm-gateway-connect)

13 * 如果您是為組織推出 gateway 的管理員:[部署和分發 gateway](/zh-TW/llm-gateway-rollout)

14 * 如果您正在配置 gateway 產品:[gateway 協議參考](/zh-TW/llm-gateway-protocol)

15</Note>

16 

17<h2 id="what-a-gateway-provides">

18 gateway 提供的功能

19</h2>

20 

21gateway 為您的組織提供一個地方來管理:

22 

23* **憑證**:提供商金鑰保留在伺服器端;開發人員改為持有 gateway 憑證

24* **使用情況追蹤**:按開發人員或團隊歸屬使用情況,無論哪個提供商處理請求

25* **成本控制**:在一個地方強制執行預算和速率限制

26* **審計日誌**:記錄每個模型請求以進行合規性檢查

27* **提供商切換**:在 gateway 配置中更改提供商,無需觸及開發人員機器

28 

29除了提供商切換外,所有這些都適用於上游是 Anthropic API 還是[雲提供商](/zh-TW/third-party-integrations)。

30 

31權衡是 gateway 成為您的組織運營的基礎設施。Claude Code 在每個版本中添加功能,不轉發這些功能的 gateway 會破壞相應的功能,因此 gateway 產品需要隨著 Claude Code 的發展而保持更新。[gateway 協議參考](/zh-TW/llm-gateway-protocol)涵蓋要轉發的內容。

32 

33<h2 id="how-a-gateway-works">

34 gateway 如何運作

35</h2>

36 

37默認情況下,Claude Code 直接向 Anthropic API 在 `api.anthropic.com` 發送請求。要透過 gateway 路由,請將 `ANTHROPIC_BASE_URL` 設置為 gateway 的地址;Claude Code 改為向那裡發送相同的請求。gateway 對開發人員進行身份驗證,附加您的組織的提供商憑證,並將每個請求轉發給它配置的任何提供商。

38 

39`ANTHROPIC_BASE_URL` 是大多數 gateway 的地址變數。面向特定雲提供商(如 Bedrock、Vertex、Foundry 或 AWS 上的 Claude Platform)的 gateway 改為使用該提供商的基本 URL 變數;[API 格式](/zh-TW/llm-gateway-protocol#api-formats)列出哪個變數與每個配置相關聯。

40 

41<Frame>

42 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/llm-gateway-flow.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=1c1a8dcc0cfcc3a58652cc8e28cd3e20" alt="顯示 Claude Code 透過 LLM gateway 路由的圖表。在開發人員機器區域中,Claude Code CLI、VS Code 擴展和 CI 或 Agent SDK 客戶端向 gateway 發送請求,gateway API 格式的基本 URL 變數指向它,每個開發人員持有每個開發人員的憑證,桌面應用程式透過組織分發的配置到達相同的 gateway。在標記為您的基礎設施的區域中,LLM gateway 處理身份驗證、使用情況追蹤、預算和路由,並使用您的組織的憑證轉發請求。在模型提供商區域中,實線箭頭指向您配置的提供商(顯示為 Anthropic API),虛線箭頭指向其他提供商選項,以 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry 為例。" width="780" height="322" data-path="images/llm-gateway-flow.svg" />

43</Frame>

44 

45涉及兩種憑證:

46 

47* **開發人員憑證**:每個開發人員持有自己的憑證,由 gateway 發行。它對 gateway 進行身份驗證,並在使用情況追蹤中識別他們

48* **提供商憑證**:gateway 為您的提供商帳戶持有一個憑證,由所有轉發的流量共享。您不需要為每個開發人員配置提供商金鑰

49 

50gateway 將每個請求轉發給您配置的提供商,例如 Anthropic API、[Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Vertex AI](/zh-TW/google-vertex-ai)、[Microsoft Foundry](/zh-TW/microsoft-foundry) 或 [AWS 上的 Claude Platform](/zh-TW/claude-platform-on-aws)。因為 Claude Code 只與 gateway 通信,提供商選擇是 gateway 的配置,而不是客戶端的。

51 

52<h2 id="roll-out-a-gateway">

53 推出 gateway

54</h2>

55 

56當您準備好為組織推出 LLM gateway 時,無論您選擇哪個 gateway 產品,順序都是相同的:

57 

581. 部署 gateway 並給予它您的提供商憑證,以便它可以對它轉發的請求進行身份驗證。

592. 為每個開發人員發行 gateway 憑證,以便使用情況歸屬於開發人員,離職時撤銷一個憑證。

603. 透過[受管設定檔](/zh-TW/settings#settings-files)和您的機密工具分發配置,以便每台機器都接收基本 URL 和憑證。當兩者都分發時,開發人員無需配置任何內容。如果您沒有設定分發,開發人員按照[連接頁面](/zh-TW/llm-gateway-connect)自己設置變數。

614. 讓每個開發人員[檢查 Claude Code 中的配置](/zh-TW/llm-gateway-connect#check-for-an-existing-configuration),以便分發問題在他們依賴 gateway 之前浮出水面。

62 

63[為您的組織推出 LLM gateway](/zh-TW/llm-gateway-rollout) 逐步介紹每個步驟,並顯示在每個步驟分發的配置檔案。gateway 是組織設置的一部分;有關政策強制執行、使用情況可見性和資料處理決策,請參閱[為您的組織設置 Claude Code](/zh-TW/admin-setup)。

64 

65<h2 id="third-party-gateways">

66 第三方 gateway

67</h2>

68 

69任何公開[支持的 API 格式](/zh-TW/llm-gateway-protocol#api-formats)的 gateway 都可以運作。Anthropic 不認可、維護或審計第三方 gateway 產品。按照他們自己的文檔部署它們,然後使用[推出步驟](/zh-TW/llm-gateway-rollout)完成 Claude Code 端的推出。

70 

71<h2 id="subscriptions-and-gateways">

72 訂閱和 gateway

73</h2>

74 

75當[gateway 憑證變數](/zh-TW/llm-gateway-connect#set-the-credential-variable)或 `apiKeyHelper` 處於活動狀態時,開發人員的 claude.ai 訂閱不被使用:憑證替換該會話的訂閱登錄,訂閱的使用限制不適用。該流量按令牌計費給擁有 gateway 轉發的憑證的人,例如您的組織的 Anthropic Console 帳戶,或當 gateway 路由到那裡時您的 Bedrock、Vertex 或 Foundry 帳戶。

76 

77僅設置 `ANTHROPIC_BASE_URL` 而不設置 gateway 憑證不會替換訂閱。請求仍然透過 gateway 路由,但保存的 claude.ai 登錄保持活動憑證,因此其使用限制和計費適用。將此流量轉發給 Anthropic 的 gateway 必須轉發 `anthropic-beta` 中的 OAuth 功能;請參閱[請求標頭參考](/zh-TW/llm-gateway-protocol#request-headers)。

78 

79<h2 id="configure-separately-from-the-gateway">

80 與 gateway 分開配置

81</h2>

82 

83gateway 決定模型 API 請求的發送位置。模型選擇、Claude Code 的其餘網路流量和公司代理分開配置:

84 

85* **模型選擇**:基本 URL 決定請求的發送位置,而不是哪個模型回答它們。使用 `/model` 命令或模型環境變數選擇模型;請參閱[如何設置您的模型](/zh-TW/model-config#setting-your-model)

86* **客戶端流量**:版本檢查和可選客戶端遙測(都使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/zh-TW/env-vars) 禁用),以及當使用 claude.ai 或 Console 登錄時的登錄流量,轉到 Anthropic 的更新和身份驗證端點而不是 gateway。有關域,請參閱[網路存取要求](/zh-TW/network-config#network-access-requirements)

87* **公司代理**:使用 `HTTPS_PROXY` 設置的代理位於 Claude Code 和它與之通信的每個伺服器之間,包括 gateway。如果您的網路需要代理,請配置兩者;請參閱[代理配置](/zh-TW/network-config#proxy-configuration)

88 

89<h2 id="related-pages">

90 相關頁面

91</h2>

92 

93* [將 Claude Code 連接到 LLM gateway](/zh-TW/llm-gateway-connect):在您自己的機器上設置基本 URL 和憑證,具有每個表面的配置和故障排除表

94* [為您的組織推出 LLM gateway](/zh-TW/llm-gateway-rollout):部署 gateway、發行開發人員憑證和分發受管設定的管理員檢查清單

95* [Gateway 協議參考](/zh-TW/llm-gateway-protocol):Claude Code 發送到 gateway 的內容,供配置 gateway 的操作人員使用,涵蓋端點、要轉發的標頭和功能傳遞

96* [為您的組織設置 Claude Code](/zh-TW/admin-setup):gateway 是其中一部分的更廣泛推出決策,包括政策強制執行和使用情況可見性

Details

231 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}231 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

232```232```

233 233 

234對於 bearer 令牌閘道,將相同的密鑰作為 `anthropic_api_key` 輸入和工作流程 `env` 區塊中的 `ANTHROPIC_AUTH_TOKEN` 傳遞。操作在啟動 Claude Code 之前需要 `anthropic_api_key`、`CLAUDE_CODE_OAUTH_TOKEN` 或工作負載身份聯合,並且它不讀取 `ANTHROPIC_AUTH_TOKEN`,因此輸入滿足該啟動檢查,而 env 變數將金鑰放在閘道讀取的 `Authorization` 標頭中。`x-api-key` 中的副本被忽略:234對於 bearer 令牌閘道,將相同的密鑰作為 `anthropic_api_key` 輸入和工作流程 `env` 區塊中的 `ANTHROPIC_AUTH_TOKEN` 傳遞。操作在啟動 Claude Code 之前需要 `anthropic_api_key`、`CLAUDE_CODE_OAUTH_TOKEN` 或工作負載身份聯合,並且它不讀取 `ANTHROPIC_AUTH_TOKEN`,因此輸入只是為了滿足該啟動檢查。env 變數是將金鑰放在閘道讀取的 `Authorization` 標頭中的原因;`x-api-key` 中的副本被忽略:

235 235 

236```yaml theme={null}236```yaml theme={null}

237env:237env:


285 285 

286[Slack 中的 Claude Code](/zh-TW/slack) 和[網頁上的 Claude Code](/zh-TW/claude-code-on-the-web) 是 Anthropic 託管的產品,始終使用 Anthropic 的 API;它們不是閘道部署的一部分。在雲端會話的環境配置中設定的閘道變數不適用。如果您的流量必須保留在閘道上,請不要為這些使用者啟用這些介面。286[Slack 中的 Claude Code](/zh-TW/slack) 和[網頁上的 Claude Code](/zh-TW/claude-code-on-the-web) 是 Anthropic 託管的產品,始終使用 Anthropic 的 API;它們不是閘道部署的一部分。在雲端會話的環境配置中設定的閘道變數不適用。如果您的流量必須保留在閘道上,請不要為這些使用者啟用這些介面。

287 287 

288[遠端控制](/zh-TW/remote-control)和[語音聽寫](/zh-TW/voice-dictation)都依賴於 claude.ai 身份:遠端控制將實時會話與您的帳戶配對,語音聽寫到達 claude.ai 轉錄端點。當 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 處於活動狀態時,它們不可用。要使用任一個,取消設定閘道認證並改用 claude.ai 登入;`/doctor` 命名要取消設定的變數288[遠端控制](/zh-TW/remote-control)和[語音聽寫](/zh-TW/voice-dictation)都依賴於 claude.ai 身份:遠端控制將實時會話與您的帳戶配對,語音聽寫到達 claude.ai 轉錄端點。當 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 處於活動狀態時,它們不可用。{/* min-version: 2.1.196 */}自 v2.1.196 起,當 `ANTHROPIC_BASE_URL` 指向非 Anthropic 主機時,遠端控制也被禁用,因此僅使用 claude.ai 登入本身是不夠的

289 

290若要還原任一功能,請使用 claude.ai 登入並取消設定它檢查的閘道變數。`/doctor` 命名要取消設定的認證變數。

291 

292* 語音聽寫:取消設定閘道認證

293* 遠端控制:取消設定閘道認證和 `ANTHROPIC_BASE_URL`

289 294 

290<h2 id="additional-configuration">295<h2 id="additional-configuration">

291 其他配置296 其他配置


318```json theme={null}323```json theme={null}

319{324{

320 "env": {325 "env": {

321 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: acme"326 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: example"

322 }327 }

323}328}

324```329```


388 通過閘道路由到雲端提供者393 通過閘道路由到雲端提供者

389</h3>394</h3>

390 395 

391這些配置使用提供者特定的基礎 URL 變數代替 `ANTHROPIC_BASE_URL` 將 Claude Code 指向通過閘道的雲端提供者。Bedrock 和 Vertex 閘道接受這些提供者的本機請求格式;Foundry 和 AWS 上的 Claude Platform 閘道接受 Anthropic Messages 格式,僅在哪個基礎 URL 變數到達它們方面有所不同。396這些配置使用提供者特定的基礎 URL 變數代替 `ANTHROPIC_BASE_URL` 將 Claude Code 指向通過閘道的雲端提供者。Bedrock 和 Agent Platform 閘道接受這些提供者的本機請求格式;Foundry 和 AWS 上的 Claude Platform 閘道接受 Anthropic Messages 格式,僅在哪個基礎 URL 變數到達它們方面有所不同。

392 397 

393僅在您的閘道團隊特別命名 Bedrock、Vertex、Foundry 或 AWS 上的 Claude Platform 時使用一個。如果上面的[驗證請求](#verify-the-connection)返回 JSON,您可以跳過本部分。398僅在您的閘道團隊特別命名 Bedrock、Agent Platform、Foundry 或 AWS 上的 Claude Platform 時使用一個。如果上面的[驗證請求](#verify-the-connection)返回 JSON,您可以跳過本部分。

394 399 

395為您的閘道團隊命名的提供者設定區塊。跳過身份驗證變數告訴 Claude Code 不要使用提供者認證簽署請求,因為閘道持有這些。如果閘道需要自己的令牌,請在區塊後添加 `ANTHROPIC_AUTH_TOKEN`,除了 Foundry,它使用 `ANTHROPIC_FOUNDRY_API_KEY`,如所示。400為您的閘道團隊命名的提供者設定區塊。跳過身份驗證變數告訴 Claude Code 不要使用提供者認證簽署請求,因為閘道持有這些。如果閘道需要自己的令牌,請在區塊後添加 `ANTHROPIC_AUTH_TOKEN`,除了 Foundry,它使用 `ANTHROPIC_FOUNDRY_API_KEY`,如所示。

396 401 


416 </Tab>421 </Tab>

417</Tabs>422</Tabs>

418 423 

419<h4 id="google-vertex-ai">424<h4 id="google-cloud’s-agent-platform">

420 Google Vertex AI425 Google Cloud 的 Agent Platform

421</h4>426</h4>

422 427 

423<Tabs>428<Tabs>

Details

8 8 

9本頁面記錄了 Claude Code 發送給 gateway 的請求,包括它呼叫的端點、gateway 必須轉發的標頭和請求體欄位,以及當 gateway 不這樣做時哪些功能會停止運作。本文件是為配置 gateway 產品以與 Claude Code 搭配運作的操作人員編寫的。9本頁面記錄了 Claude Code 發送給 gateway 的請求,包括它呼叫的端點、gateway 必須轉發的標頭和請求體欄位,以及當 gateway 不這樣做時哪些功能會停止運作。本文件是為配置 gateway 產品以與 Claude Code 搭配運作的操作人員編寫的。

10 10 

11執行中的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 在 `GET /protocol` 提供此契約的機器可讀版本,涵蓋相同的轉發要求以及 Claude apps gateway 特定的端點,用於 SSO 登入、受管設定傳遞和遙測。Claude apps gateway 從與 CLI 相同的 `claude` 二進位檔案執行,因此 [Claude apps gateway 快速入門](/zh-TW/claude-apps-gateway#quickstart) 是取得您可以從中擷取規格的執行中實例的最短路徑。

12 

11<Note>13<Note>

12 * 若要為您的組織推出現有或第三方 gateway,請參閱[推出 LLM gateway](/zh-TW/llm-gateway-rollout)14 * 若要為您的組織推出現有或第三方 gateway,請參閱[推出 LLM gateway](/zh-TW/llm-gateway-rollout)

13 * 如果您是使用提供給您的認證向 gateway 驗證 Claude Code 的個人開發人員,請參閱[將 Claude Code 連接到 LLM gateway](/zh-TW/llm-gateway-connect)15 * 如果您是使用提供給您的認證向 gateway 驗證 Claude Code 的個人開發人員,請參閱[將 Claude Code 連接到 LLM gateway](/zh-TW/llm-gateway-connect)


32 API 格式34 API 格式

33</h2>35</h2>

34 36 

35Gateway 必須向 Claude Code 用戶端公開以下至少一種 API 格式。Claude Code 使用哪種格式由用戶端的配置決定:下表「選擇者」欄中的變數指向您的 gateway 使用該格式。37Gateway 必須向 Claude Code 用戶端公開以下至少一種 API 格式。Claude Code 使用哪種格式由用戶端的配置決定:下表「選擇者」欄中的變數指向您的 gateway 使用該格式。Agent Platform 是 Google Cloud 的 Claude 端點,前身為 Vertex AI;其變數名稱保留 `VERTEX` 拼寫。

36 38 

37| 格式 | 選擇者 | 端點 | 轉發不變 |39| 格式 | 選擇者 | 端點 | 轉發不變 |

38| :------------------ | :---------------------------------------------------------- | :------------------------------------------------------------------- | :----------------------------------------------------------------------- |40| :------------------------ | :---------------------------------------------------------- | :------------------------------------------------------------------- | :----------------------------------------------------------------------- |

39| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`、`/v1/messages/count_tokens`(可選) | `anthropic-beta` 和 `anthropic-version` 請求標頭 |41| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`、`/v1/messages/count_tokens`(可選) | `anthropic-beta` 和 `anthropic-version` 請求標頭 |

40| Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` 搭配 `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`、`/model/{model}/invoke-with-response-stream` | `anthropic_beta` 和 `anthropic_version` 請求體欄位 |42| Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` 搭配 `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`、`/model/{model}/invoke-with-response-stream` | `anthropic_beta` 和 `anthropic_version` 請求體欄位 |

41| Vertex rawPredict | `ANTHROPIC_VERTEX_BASE_URL` 搭配 `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`、`:streamRawPredict`、`count-tokens:rawPredict`(可選) | `anthropic-beta` 和 `anthropic-version` 請求標頭,以及 `anthropic_version` 請求體欄位 |43| Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` 搭配 `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`、`:streamRawPredict`、`count-tokens:rawPredict`(可選) | `anthropic-beta` 和 `anthropic-version` 請求標頭,以及 `anthropic_version` 請求體欄位 |

42 44 

43<h3 id="foundry-and-claude-platform-on-aws">45<h3 id="foundry-and-claude-platform-on-aws">

44 Foundry 和 AWS 上的 Claude Platform46 Foundry 和 AWS 上的 Claude Platform


50 可選端點和啟動流量52 可選端點和啟動流量

51</h3>53</h3>

52 54 

53令牌計數端點是唯一可選的:當它們不存在時,Claude Code 會在本地估計上下文使用情況。推理請求發佈到 `/v1/messages?beta=true`,因此請匹配路徑,而不是完整 URL。Vertex 方法後綴附加到發佈者模型路徑,如 `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`。55令牌計數端點是唯一可選的:當它們不存在時,Claude Code 會在本地估計上下文使用情況。推理請求發佈到 `/v1/messages?beta=true`,因此請匹配路徑,而不是完整 URL。Agent Platform 方法後綴附加到發佈者模型路徑,如 `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`。

54 56 

55Gateway 也會看到最佳努力的啟動流量,它可以拒絕而不會破壞任何東西:一個 `HEAD /` 連接探測,以及在 Bedrock 格式 gateway 上的 `GET /inference-profiles?type=SYSTEM_DEFINED` 請求。57Gateway 也會看到最佳努力的啟動流量,它可以拒絕而不會破壞任何東西:一個 `HEAD /` 連接探測,以及在 Bedrock 格式 gateway 上的 `GET /inference-profiles?type=SYSTEM_DEFINED` 請求。

56 58 


58 串流60 串流

59</h3>61</h3>

60 62 

61推理回應必須串流。Claude Code 在接收時使用伺服器發送事件,因此在轉發完整回應之前進行緩衝的 gateway 會使用戶端停滯63推理回應必須串流。Claude Code 在接收時使用伺服器發送事件,因此在轉發完整回應之前進行緩衝的 gateway 會使客戶端停滯

62 64 

63<h3 id="format-mismatch-with-the-upstream">65<h3 id="format-mismatch-with-the-upstream">

64 與上游的格式不匹配66 與上游的格式不匹配


66 68 

67用戶端使用的格式決定了您的 gateway 接收的內容。常見的失敗模式是用戶端發送給您的 gateway 的格式與其後面的上游提供者接受的格式不匹配。69用戶端使用的格式決定了您的 gateway 接收的內容。常見的失敗模式是用戶端發送給您的 gateway 的格式與其後面的上游提供者接受的格式不匹配。

68 70 

69* 當用戶端使用 Bedrock 或 Vertex 格式時,Claude Code 只發送那些提供者接受的完整功能集的子集71* 當用戶端使用 Bedrock 或 Agent Platform 格式時,Claude Code 只發送那些提供者接受的完整功能集的子集

70* 當用戶端使用 Anthropic Messages 格式時,Claude Code 發送完整集合,即使您的 gateway 轉發到 Bedrock 或 Vertex 上游72* 當用戶端使用 Anthropic Messages 格式時,Claude Code 發送完整集合,即使您的 gateway 轉發到 Bedrock 或 Agent Platform 上游

71 73 

72橋接該差異是您的 gateway 的工作。[功能傳遞](#feature-pass-through)描述了當它不這樣做時會發生什麼。74橋接該差異是您的 gateway 的工作。[功能傳遞](#feature-pass-through)描述了當它不這樣做時會發生什麼。

73 75 


80| 標頭 | 描述 |82| 標頭 | 描述 |

81| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |83| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

82| `Authorization`、`x-api-key` | 開發人員的 gateway 認證,根據他們設定的[認證變數](/zh-TW/llm-gateway-connect#set-the-credential-variable)在一個或兩個標頭中 |84| `Authorization`、`x-api-key` | 開發人員的 gateway 認證,根據他們設定的[認證變數](/zh-TW/llm-gateway-connect#set-the-credential-variable)在一個或兩個標頭中 |

83| `anthropic-version` | API 版本,目前為 `2023-06-01`。Bedrock 和 Vertex 格式請求也攜帶 `anthropic_version` 請求體欄位,其值是提供者方言字串,而不是此標頭的值 |85| `anthropic-version` | API 版本,目前為 `2023-06-01`。Bedrock 和 Agent Platform 格式請求也攜帶 `anthropic_version` 請求體欄位,其值是提供者方言字串,而不是此標頭的值 |

84| `anthropic-beta` | 請求的逗號分隔功能值。逐字轉發標頭;不要將個別值列入允許清單,因為該集合隨 Claude Code 版本而變化。當開發人員使用 claude.ai 登入進行驗證時(當設定 `ANTHROPIC_BASE_URL` 而沒有 gateway 認證變數時可能),此標頭也會攜帶上游需要的 OAuth 功能,移除它會導致這些請求失敗並出現 `401` |86| `anthropic-beta` | 請求的逗號分隔功能值。逐字轉發標頭;不要將個別值列入允許清單,因為該集合隨 Claude Code 版本而變化。當開發人員使用 claude.ai 登入進行驗證時(當設定 `ANTHROPIC_BASE_URL` 而沒有 gateway 認證變數時可能),此標頭也會攜帶上游需要的 OAuth 功能,移除它會導致這些請求失敗並出現 `401` |

85| `x-claude-code-session-id` | 目前 Claude Code 工作階段的唯一識別碼。使用它來聚合來自一個工作階段的所有請求,而無需解析請求體 |87| `x-claude-code-session-id` | 目前 Claude Code 工作階段的唯一識別碼。使用它來聚合來自一個工作階段的所有請求,而無需解析請求體 |

86| `x-claude-code-agent-id` | 發出請求的[子代理](/zh-TW/sub-agents)的識別碼,僅在來自 Claude Code 在工作階段內生成的代理的請求上存在。將其與工作階段 ID 一起使用以將成本歸屬於平行代理 |88| `x-claude-code-agent-id` | 發出請求的[子代理](/zh-TW/sub-agents)的識別碼,僅在來自 Claude Code 在工作階段內生成的代理的請求上存在。將其與工作階段 ID 一起使用以將成本歸屬於平行代理 |


98 100 

99轉發到 Anthropic 格式上游時,傳遞 `anthropic-*` 請求標頭和請求體欄位不變,而不是將您今天看到的列入允許清單。固定到觀察清單的 gateway 會移除下一個功能的標頭或欄位,並在引入它的版本上破壞它。101轉發到 Anthropic 格式上游時,傳遞 `anthropic-*` 請求標頭和請求體欄位不變,而不是將您今天看到的列入允許清單。固定到觀察清單的 gateway 會移除下一個功能的標頭或欄位,並在引入它的版本上破壞它。

100 102 

101例外是非 Anthropic 上游(如 Bedrock 或 Vertex),其中橋接架構差異是 gateway 的工作;請參閱[功能傳遞](#feature-pass-through)。103例外是非 Anthropic 上游(如 Bedrock 或 Agent Platform),其中橋接架構差異是 gateway 的工作;請參閱[功能傳遞](#feature-pass-through)。

102 104 

103<h2 id="system-prompt-attribution-block">105<h2 id="system-prompt-attribution-block">

104 系統提示歸屬區塊106 系統提示歸屬區塊


112 功能傳遞114 功能傳遞

113</h2>115</h2>

114 116 

115Claude Code 將 `ANTHROPIC_BASE_URL` gateway 視為 Anthropic 格式端點,並向其發送它發送給 `api.anthropic.com` 的測試版標頭和請求體欄位,除了為直接連接保留的一小組診斷和預設值。117Claude Code 將 `ANTHROPIC_BASE_URL` gateway 視為 Anthropic 格式端點,並向其發送它發送給 `api.anthropic.com` 的測試版標頭和請求體欄位,除了為直接連接保留的一小組診斷和預設值,例如下面涵蓋的細粒度工具串流預設該集合因版本而異,因此不要依賴其內容。

116 118 

117添加請求體欄位的功能將它們與測試版標頭配對,該對一起傳遞。移除標頭同時傳遞請求體的 gateway,或將 Anthropic 格式請求體轉發到具有不同架構的上游,會產生硬 `400` 錯誤;只有當兩個部分一起不存在時,功能才會安靜地關閉。重寫或編輯請求體以進行內容檢查的 gateway 會以與移除相同的方式破壞配對,因此請在不修改的情況下檢查。該表注意了功能偏離配對的位置。119添加請求體欄位的功能將它們與測試版標頭配對,該對一起傳遞。移除標頭同時傳遞請求體的 gateway,或將 Anthropic 格式請求體轉發到具有不同架構的上游,會產生硬 `400` 錯誤;只有當兩個部分一起不存在時,功能才會安靜地關閉。重寫或編輯請求體以進行內容檢查的 gateway 會以與移除相同的方式破壞配對,因此請在不修改的情況下檢查。該表注意了功能偏離配對的位置。

118 120 

119細粒度工具串流是直接連接預設值之一:每當請求通過自訂基礎 URL 路由時,它預設為關閉,當開發人員設定 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/zh-TW/env-vars) 時,gateway 會接收它。121細粒度工具串流是直接連接預設值之一:每當請求通過自訂基礎 URL 路由時,它預設為關閉,當開發人員設定 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/zh-TW/env-vars) 時,gateway 會接收它。

120 122 

121| 功能 | 標頭和請求體對 | 破壞時的症狀 | 補救 |123| 功能 | 標頭和請求體對 | 破壞時的症狀 | 補救 |

122| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |124| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |

123| [自適應推理](/zh-TW/model-config#adjust-effort-level) | 無測試版標頭。Claude Code 為 Claude 4.6 及更新版本發送 `thinking: {"type": "adaptive"}`,並將它不識別的模型名稱(如 gateway 別名)視為接收該欄位的目前模型 | 當上游模型組建不接受它時,命名 `thinking` 欄位或 `adaptive` 標籤的 `400` | 升級上游。在 Opus 4.6 和 Sonnet 4.6 上,開發人員可以改為設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |125| [自適應推理](/zh-TW/model-config#adjust-effort-level) | 無測試版標頭。Claude Code 為 Claude 4.6 及更新版本發送 `thinking: {"type": "adaptive"}`,並將它不識別的模型名稱(如 gateway 別名)視為接收該欄位的目前模型 | 當上游模型組建不接受它時,命名 `thinking` 欄位或 `adaptive` 標籤的 `400` | 升級上游。在 Opus 4.6 和 Sonnet 4.6 上,開發人員可以改為設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |

124| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-management) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於 gateway 接受 Anthropic 格式請求但將其轉發到 Bedrock 時 | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/zh-TW/env-vars) |126| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-management) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於 gateway 接受 Anthropic 格式請求但將其轉發到 Bedrock 時 | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/zh-TW/env-vars) |

125| [擴展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window)和[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 僅測試版標頭,無請求體欄位 | 當標頭被移除時無聲地不可用;上游永遠不會看到功能請求 | 逐字轉發 `anthropic-beta` |127| [擴展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window)和[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 僅測試版標頭,無請求體欄位 | 當標頭被移除時無聲地不可用;上游永遠不會看到功能請求 | 逐字轉發 `anthropic-beta` |

126| 測試版[工具欄位](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相關的測試版標頭與工具架構欄位(如 `strict` 和 `defer_loading`)配對 | 當請求體在沒有其標頭的情況下通過時,命名無法識別的工具架構欄位的 `400` | 轉發兩者,或 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` |128| 測試版[工具欄位](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相關的測試版標頭與工具架構欄位(如 `strict` 和 `defer_loading`)配對 | 當請求體在沒有其標頭的情況下通過時,命名無法識別的工具架構欄位的 `400` | 轉發兩者,或 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` |

127| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[結構化輸出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 請求體欄位攜帶努力、結構化輸出格式和任務預算設定;每個都與其自己的測試版標頭配對 | 在 Bedrock 和 Vertex 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起轉發欄位及其標頭 |129| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[結構化輸出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 請求體欄位攜帶努力、結構化輸出格式和任務預算設定;每個都與其自己的測試版標頭配對 | 在 Bedrock 和 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起轉發欄位及其標頭 |

128| [令牌計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 無測試版配對;使用 `count_tokens` 端點 | Claude Code 回退到在本地估計上下文使用情況 | 如果您想要精確計數,請公開端點 |130| [令牌計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 無測試版配對;使用 `count_tokens` 端點 | Claude Code 回退到在本地估計上下文使用情況 | 如果您想要精確計數,請公開端點 |

129 131 

130`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [變數](/zh-TW/model-config)僅在提供者配置中聲明模型功能:`CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY` 和 [`CLAUDE_CODE_USE_MANTLE`](/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。它們在 `ANTHROPIC_BASE_URL` gateway 後面沒有效果。132`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [變數](/zh-TW/model-config)僅在提供者配置中聲明模型功能:`CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY` 和 [`CLAUDE_CODE_USE_MANTLE`](/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。它們在 `ANTHROPIC_BASE_URL` gateway 後面沒有效果。


182{184{

183 "data": [185 "data": [

184 { "id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6" },186 { "id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6" },

185 { "id": "claude-opus-4-7" }187 { "id": "claude-opus-4-8" }

186 ]188 ]

187}189}

188```190```


191 選擇器條目和快取193 選擇器條目和快取

192</h3>194</h3>

193 195 

194選擇器是當開發人員在 Claude Code 中運行 `/model` 時打開的互動式模型清單。每個發現的條目都標記為「來自 gateway」,並在提供時使用 `display_name`。發現的 ID 僅在它完全匹配選擇器中已有的列,或當發現的和現有的 ID 都解析為 [Fable](/zh-TW/model-config#work-with-fable-5) 時才被跳過。內建列由別名(如 `sonnet`)鍵入,因此發現的 ID(如 `claude-sonnet-4-6`)在內建條目旁邊添加其自己的「來自 gateway」列。[`availableModels` 受管設定](/zh-TW/settings#available-settings)限制發現可以添加的內容。196選擇器是當開發人員在 Claude Code 中運行 `/model` 時打開的互動式模型清單。每個發現的條目都標記為「來自 gateway」,並在提供時使用 `display_name`。[`availableModels` 受管設定](/zh-TW/settings#available-settings)限制發現可以添加的內容。

197 

198發現的 ID 僅在它完全匹配選擇器中已有的列,或當發現的和現有的 ID 都解析為 [Fable](/zh-TW/model-config#work-with-fable-5) 時才被跳過。內建列由別名(如 `sonnet`)鍵入,因此發現的 ID(如 `claude-sonnet-4-6`)在內建條目旁邊添加其自己的「來自 gateway」列,而不是替換它。

195 199 

196結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/zh-TW/model-config)變數手動添加這些別名。200結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/zh-TW/model-config)變數手動添加這些別名。

197 201 


201 205 

202有關 gateway 文件集的其餘部分和基礎 API 參考:206有關 gateway 文件集的其餘部分和基礎 API 參考:

203 207 

204* [LLM gateway 概述](/zh-TW/llm-gateway):gateway 是什麼以及它如何與 claude.ai 訂閱互動208* [Gateway 概述](/zh-TW/gateways):什麼是 gateway 以及如何在 Claude 應用程式 gateway 和其他產品之間進行選擇

209* [其他 LLM gateway](/zh-TW/llm-gateway):如何推出您的組織執行的 gateway 以及它如何與 claude.ai 訂閱互動

205* [為您的組織推出 LLM gateway](/zh-TW/llm-gateway-rollout):使用此契約的管理員檢查清單210* [為您的組織推出 LLM gateway](/zh-TW/llm-gateway-rollout):使用此契約的管理員檢查清單

206* [將 Claude Code 連接到 LLM gateway](/zh-TW/llm-gateway-connect):每個開發人員的配置和故障排除表211* [將 Claude Code 連接到 LLM gateway](/zh-TW/llm-gateway-connect):每個開發人員的配置和故障排除表

207* [測試版標頭參考](https://platform.claude.com/docs/en/api/beta-headers):目前的 `anthropic-beta` 值集合212* [測試版標頭參考](https://platform.claude.com/docs/en/api/beta-headers):目前的 `anthropic-beta` 值集合

Details

22* 在您的基礎設施上部署的閘道,在您將分發給開發者的確切位址上提供 HTTPS,而不是重定向到它的位址,並配置為將 Claude 模型名稱路由到您的提供者22* 在您的基礎設施上部署的閘道,在您將分發給開發者的確切位址上提供 HTTPS,而不是重定向到它的位址,並配置為將 Claude 模型名稱路由到您的提供者

23* 閘道轉發的提供者認證:23* 閘道轉發的提供者認證:

24 * 對於 Anthropic API:來自 [Claude 控制台](https://platform.claude.com/settings/keys)的 API 金鑰24 * 對於 Anthropic API:來自 [Claude 控制台](https://platform.claude.com/settings/keys)的 API 金鑰

25 * 對於雲端提供者:具有模型存取權限的雲端認證。請參閱 [Amazon Bedrock](/zh-TW/amazon-bedrock#prerequisites)、[Google Vertex AI](/zh-TW/google-vertex-ai#prerequisites) 或 [Microsoft Foundry](/zh-TW/microsoft-foundry#prerequisites) 頁面上的先決條件25 * 對於雲端提供者:具有模型存取權限的雲端認證。請參閱 [Amazon Bedrock](/zh-TW/amazon-bedrock#prerequisites)、[Google Cloud 的 Agent Platform](/zh-TW/google-vertex-ai#prerequisites) 或 [Microsoft Foundry](/zh-TW/microsoft-foundry#prerequisites) 頁面上的先決條件

26* 一種將設定檔案傳遞到開發者機器的方式,例如 MDM 或配置管理26* 一種將設定檔案傳遞到開發者機器的方式,例如 MDM 或配置管理

27 * 如果您還沒有,[設定如何到達裝置](/zh-TW/admin-setup#decide-how-settings-reach-devices)會比較各選項27 * 如果您還沒有,[設定如何到達裝置](/zh-TW/admin-setup#decide-how-settings-reach-devices)會比較各選項

28 28 


180無論您選擇哪條路徑,相同的變數集都適用。大多數推出只需要 `ANTHROPIC_BASE_URL` 和認證;當您的閘道設定需要時,包括條件列。180無論您選擇哪條路徑,相同的變數集都適用。大多數推出只需要 `ANTHROPIC_BASE_URL` 和認證;當您的閘道設定需要時,包括條件列。

181 181 

182| 變數或設定 | 它的作用 | 包括時機 |182| 變數或設定 | 它的作用 | 包括時機 |

183| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------- |183| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

184| `ANTHROPIC_BASE_URL` | 將 Claude Code 的 API 請求發送到閘道,而不是 `api.anthropic.com` | 總是 |184| `ANTHROPIC_BASE_URL` | 將 Claude Code 的 API 請求發送到閘道,而不是 `api.anthropic.com` | 總是 |

185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的認證 | 驗證對閘道的每個請求。幫助程式執行命令以擷取金鑰;變數持有靜態金鑰,分別作為 `Authorization: Bearer` 和 `x-api-key` 發送 | 總是;三者之一 |185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的認證 | 驗證對閘道的每個請求。幫助程式執行命令以擷取金鑰;變數持有靜態金鑰,分別作為 `Authorization: Bearer` 和 `x-api-key` 發送 | 總是;三者之一 |

186| `ANTHROPIC_CUSTOM_HEADERS` | 將額外的 HTTP 標頭新增到每個 API 請求 | 您的閘道在每個請求上需要租戶或路由標頭 |186| `ANTHROPIC_CUSTOM_HEADERS` | 將額外的 HTTP 標頭新增到每個 API 請求 | 您的閘道在每個請求上需要租戶或路由標頭 |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在啟動時查詢閘道的 `/v1/models` 並將返回的名稱新增到 `/model` 選擇器 | 您的閘道提供 `/v1/models` 並且您希望開發者的選擇器從中填充 |187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在啟動時查詢閘道的 `/v1/models` 並將返回的名稱新增到 `/model` 選擇器 | 您的閘道提供 `/v1/models` 並且您希望開發者的選擇器從中填充 |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 發送預發行功能標頭和正文欄位 | 您的閘道轉發到拒絕測試版欄位的 Bedrock 或 Vertex 上游;請參閱[閘道要求](#gateway-requirements) |188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 發送預發行功能標頭和正文欄位 | 您的閘道轉發到拒絕測試版欄位的 Bedrock 或 Agent Platform 上游;請參閱[閘道要求](#gateway-requirements) |

189| `ANTHROPIC_MODEL` 或 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/zh-TW/model-config) | 設定 Claude Code 為主工作階段和背景流量請求的模型名稱 | 您的閘道路由與 Claude Code 預設值不符的模型名稱,或您將[背景功能](/zh-TW/costs#background-token-usage)路由到不同的模型。在閘道上路由覆蓋名稱和 Claude Code 的預設名稱,因為某些子呼叫可以請求預設名稱,無論覆蓋如何 |189| `ANTHROPIC_MODEL` 或 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/zh-TW/model-config) | 設定 Claude Code 為主工作階段和背景流量請求的模型名稱 | 您的閘道路由與 Claude Code 預設值不符的模型名稱,或您將[背景功能](/zh-TW/costs#background-token-usage)路由到不同的模型。在閘道上路由覆蓋名稱和 Claude Code 的預設名稱,因為某些子呼叫可以請求預設名稱,無論覆蓋如何;[模型配置](/zh-TW/model-config)涵蓋工作階段的每個部分使用哪個模型 |

190| `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL`、`ANTHROPIC_FOUNDRY_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 以及[該提供者的變數](/zh-TW/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) | 透過提供者特定的基本 URL 將 Claude Code 指向閘道。Bedrock 和 Vertex 也切換到這些提供者的原生請求格式 | 您的閘道前置 Bedrock、Vertex、Foundry 或 AWS 上的 Claude 平台;請參閱 [API 格式](/zh-TW/llm-gateway-protocol#api-formats) |190| `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL`、`ANTHROPIC_FOUNDRY_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 以及[該提供者的變數](/zh-TW/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) | 透過提供者特定的基本 URL 將 Claude Code 指向閘道。Bedrock 和 Agent Platform 也切換到這些提供者的原生請求格式 | 您的閘道前置 Bedrock、Agent Platform、Foundry 或 AWS 上的 Claude 平台;請參閱 [API 格式](/zh-TW/llm-gateway-protocol#api-formats) |

191 191 

192<h4 id="distribute-through-managed-settings">192<h4 id="distribute-through-managed-settings">

193 透過受管設定分發193 透過受管設定分發

mcp.md +43 −15

Details

111 111 

112Stdio servers 在您的機器上作為本機程序執行。它們非常適合需要直接系統存取或自訂指令碼的工具。112Stdio servers 在您的機器上作為本機程序執行。它們非常適合需要直接系統存取或自訂指令碼的工具。

113 113 

114Claude Code 在生成的 server 環境中設定 `CLAUDE_PROJECT_DIR`,以指向專案根目錄,因此您的 server 可以解析專案相對路徑,而無需依賴工作目錄。這與 hooks 在其 `CLAUDE_PROJECT_DIR` 變數中接收的目錄相同。從您的 server 程序內部讀取它,例如 Node 中的 `process.env.CLAUDE_PROJECT_DIR` 或 Python 中的 `os.environ["CLAUDE_PROJECT_DIR"]`。您的 server 也可以呼叫 MCP `roots/list` 請求,該請求會傳回啟動 Claude Code 的目錄。114Claude Code 在生成的 server 環境中設定 `CLAUDE_PROJECT_DIR`,以指向專案根目錄,因此您的 server 可以解析專案相對路徑,而無需依賴工作目錄。這與 hooks 在其 `CLAUDE_PROJECT_DIR` 變數中接收的目錄相同。從您的 server 程序內部讀取它,例如 Node 中的 `process.env.CLAUDE_PROJECT_DIR` 或 Python 中的 `os.environ["CLAUDE_PROJECT_DIR"]`。

115 

116您的 server 也可以呼叫 MCP `roots/list` 請求,該請求會傳回啟動 Claude Code 的目錄。

115 117 

116此變數在 server 的環境中設定,而不是在 Claude Code 自己的環境中,因此在專案或使用者範圍的 `.mcp.json` `command` 或 `args` 中透過 `${VAR}` 擴展參考它需要預設值,例如 `${CLAUDE_PROJECT_DIR:-.}`。Plugin 提供的 MCP 配置直接替換 `${CLAUDE_PROJECT_DIR}`,不需要預設值。118此變數在 server 的環境中設定,而不是在 Claude Code 自己的環境中,因此在專案或使用者範圍的 `.mcp.json` `command` 或 `args` 中透過 `${VAR}` 擴展參考它需要預設值,例如 `${CLAUDE_PROJECT_DIR:-.}`。Plugin 提供的 MCP 配置直接替換 `${CLAUDE_PROJECT_DIR}`,不需要預設值。

117 119 


176 178 

177來自 `.mcp.json` 的專案範圍 servers 等待您的批准時,會在 `claude mcp list` 中顯示為 `⏸ Pending approval`。執行 `claude` 互動式命令以檢查和批准它們。`claude mcp get <name>` 將待處理的 servers 顯示為 `⏸ Pending approval`,將被拒絕的 servers 顯示為 `✗ Rejected`。179來自 `.mcp.json` 的專案範圍 servers 等待您的批准時,會在 `claude mcp list` 中顯示為 `⏸ Pending approval`。執行 `claude` 互動式命令以檢查和批准它們。`claude mcp get <name>` 將待處理的 servers 顯示為 `⏸ Pending approval`,將被拒絕的 servers 顯示為 `✗ Rejected`。

178 180 

181自 v2.1.196 起,`claude mcp list` 和 `claude mcp get` 只從未簽入儲存庫的設定檔案中讀取 `.mcp.json` 批准,直到您透過在其中執行 `claude` 並接受工作區信任對話框來信任工作區。複製的儲存庫無法批准自己的 servers:提交到專案 `.claude/settings.json` 的 [`enableAllProjectMcpServers` 或 `enabledMcpjsonServers`](/zh-TW/settings#available-settings) 在不受信任的資料夾中被忽略,server 保持在 `⏸ Pending approval` 而不是被連接和健康檢查。

182 

183這些來源的批准仍然適用於不受信任的資料夾:

184 

185* 您的使用者 `~/.claude/settings.json`

186* 受管設定

187* 使用 `--settings` 傳遞的設定

188* `.claude/settings.local.json`,只要 git 不追蹤它

189 

190任何設定檔案中的 `disabledMcpjsonServers` 項目仍然會拒絕 server。

191 

179`/mcp` 面板會在每個已連接的 server 旁邊顯示工具計數,並標記宣告工具功能但未公開任何工具的 servers。192`/mcp` 面板會在每個已連接的 server 旁邊顯示工具計數,並標記宣告工具功能但未公開任何工具的 servers。

180 193 

181如果您的請求需要來自仍在背景連接的 server 的工具,Claude 會在繼續之前等待該 server。啟用 [tool search](#scale-with-mcp-tool-search)(預設啟用)後,等待會在 `ToolSearch` 呼叫內進行。在沒有工具搜尋的配置中,例如 Vertex AI、自訂 `ANTHROPIC_BASE_URL` 或 `ENABLE_TOOL_SEARCH=false`,Claude 會改用 `WaitForMcpServers` 工具。194如果您的請求需要來自仍在背景連接的 server 的工具,Claude 會在繼續之前等待該 server。啟用 [tool search](#scale-with-mcp-tool-search)(預設啟用)後,等待會在 `ToolSearch` 呼叫內進行。在沒有工具搜尋的配置中,例如 Vertex AI、自訂 `ANTHROPIC_BASE_URL` 或 `ENABLE_TOOL_SEARCH=false`,Claude 會改用 `WaitForMcpServers` 工具。


208 提示:221 提示:

209 222 

210 * 使用 `--scope` 旗標指定配置的儲存位置:223 * 使用 `--scope` 旗標指定配置的儲存位置:

211 * `local` (預設):僅在目前專案中對您可用 (在較舊版本中稱為 `project`)224 * `local` (預設):僅在目前專案中對您可用。較舊版本稱此範圍為 `project`

212 * `project`:透過 `.mcp.json` 檔案與專案中的所有人共享225 * `project`:透過 `.mcp.json` 檔案與專案中的所有人共享

213 * `user`:在所有專案中對您可用 (在較舊版本中稱為 `global`)226 * `user`:在所有專案中對您可用。較舊版本稱此範圍為 `global`

214 * 使用 `--env` 旗標設定環境變數 (例如,`--env KEY=value`)227 * 使用 `--env` 旗標設定環境變數 (例如,`--env KEY=value`)

215 * 使用 MCP\_TIMEOUT 環境變數配置 MCP server 啟動逾時 (例如,`MCP_TIMEOUT=10000 claude` 設定 10 秒逾時)228 * 使用 `MCP_TIMEOUT` 環境變數配置 MCP server 啟動逾時 (例如,`MCP_TIMEOUT=10000 claude` 設定 10 秒逾時)

216 * 透過在該 server 的 `.mcp.json` 項目中新增 `timeout` 欄位(以毫秒為單位)來設定每個 server 的工具執行逾時,例如 `"timeout": 600000` 表示十分鐘。這只會覆寫該 server 的 `MCP_TOOL_TIMEOUT` 環境變數229 * 透過在該 server 的 `.mcp.json` 項目中新增 `timeout` 欄位(以毫秒為單位)來設定每個 server 的工具執行逾時,例如 `"timeout": 600000` 表示十分鐘。這只會覆寫該 server 的 `MCP_TOOL_TIMEOUT` 環境變數

217 * 當 MCP 工具輸出超過 10,000 個 tokens 時,Claude Code 會顯示警告。若要增加此限制,請設定 `MAX_MCP_OUTPUT_TOKENS` 環境變數 (例如,`MAX_MCP_OUTPUT_TOKENS=50000`)230 * 當 MCP 工具輸出超過 10,000 個 tokens 時,Claude Code 會顯示警告。若要增加此限制,請設定 `MAX_MCP_OUTPUT_TOKENS` 環境變數 (例如,`MAX_MCP_OUTPUT_TOKENS=50000`)

218 * 使用 `/mcp` 向需要 OAuth 2.0 驗證的遠端 servers 進行驗證231 * 使用 `/mcp` 向需要 OAuth 2.0 驗證的遠端 servers 進行驗證


233* Plugins 在 plugin 根目錄的 `.mcp.json` 中或在 `plugin.json` 中內聯定義 MCP servers246* Plugins 在 plugin 根目錄的 `.mcp.json` 中或在 `plugin.json` 中內聯定義 MCP servers

234* 啟用 plugin 時,其 MCP servers 會自動啟動247* 啟用 plugin 時,其 MCP servers 會自動啟動

235* Plugin MCP 工具與手動配置的 MCP 工具一起出現248* Plugin MCP 工具與手動配置的 MCP 工具一起出現

236* Plugin servers 透過 plugin 安裝進行管理 (不是 `/mcp` 命令)249* Plugin servers 透過 plugin 安裝進行管理不是 `/mcp` 命令

237 250 

238**Plugin MCP 配置範例**:251**Plugin MCP 配置範例**:

239 252 


272* **自動生命週期**:在 session 啟動時,已啟用 plugins 的 servers 會自動連接。如果您在 session 期間啟用或停用 plugin,請執行 `/reload-plugins` 以連接或斷開其 MCP servers285* **自動生命週期**:在 session 啟動時,已啟用 plugins 的 servers 會自動連接。如果您在 session 期間啟用或停用 plugin,請執行 `/reload-plugins` 以連接或斷開其 MCP servers

273* **環境變數**:使用 `${CLAUDE_PLUGIN_ROOT}` 表示捆綁的 plugin 檔案,`${CLAUDE_PLUGIN_DATA}` 表示 [persistent state](/zh-TW/plugins-reference#persistent-data-directory) 在 plugin 更新後仍然存在,以及 `${CLAUDE_PROJECT_DIR}` 表示穩定的專案根目錄286* **環境變數**:使用 `${CLAUDE_PLUGIN_ROOT}` 表示捆綁的 plugin 檔案,`${CLAUDE_PLUGIN_DATA}` 表示 [persistent state](/zh-TW/plugins-reference#persistent-data-directory) 在 plugin 更新後仍然存在,以及 `${CLAUDE_PROJECT_DIR}` 表示穩定的專案根目錄

274* **使用者環境存取**:存取與手動配置的 servers 相同的環境變數287* **使用者環境存取**:存取與手動配置的 servers 相同的環境變數

275* **多種傳輸類型**:支援 stdio、SSE、HTTP 和 WebSocket 傳輸 (傳輸支援可能因 server 而異)288* **多種傳輸類型**:支援 stdio、SSE、HTTP 和 WebSocket 傳輸傳輸支援可能因 server 而異

276 289 

277**檢視 plugin MCP servers**:290**檢視 plugin MCP servers**:

278 291 


524 537 

525許多雲端 MCP servers 需要驗證。Claude Code 支援 OAuth 2.0 以進行安全連接。538許多雲端 MCP servers 需要驗證。Claude Code 支援 OAuth 2.0 以進行安全連接。

526 539 

527Claude Code 會在 server 以 `401 Unauthorized` 或 `403 Forbidden` 回應時,將遠端 server 標記為需要驗證。任一狀態碼都會在 `/mcp` 中標記 server,以便您可以完成 OAuth 流程。傳回指向其授權 server 的 `WWW-Authenticate` 標頭的自訂 server 會獲得與任何其他遠端 server 相同的自動探索。540Claude Code 會在 server 以 `401 Unauthorized` 或 `403 Forbidden` 回應時,將遠端 server 標記為需要驗證。任一狀態碼都會在 `/mcp` 中標記 server,以便您可以完成 OAuth 流程。

541 

542從 v2.1.195 開始,當 token 重新整理失敗,因為 server 拒絕儲存的重新整理 token 時,Claude Code 會立即顯示指向 `/mcp` 的通知。連接的 server 的功能表會提供「重新驗證」選項,因此您可以在下一個工具呼叫失敗之前重新登入。

543 

544傳回指向其授權 server 的 `WWW-Authenticate` 標頭的自訂 server 會獲得與任何其他遠端 server 相同的自動探索。

545 

546從 v2.1.193 開始,Claude Code 也會在啟動時顯示通知,當一個或多個已配置的 servers 需要驗證時,因此您不必開啟 `/mcp` 來探索哪些 servers 需要登入。

547 

548在非互動模式中,沒有 `/mcp` 面板,因此 Claude Code 無法為您執行 OAuth 流程。從 v2.1.196 開始,當已配置的 server 在 `claude -p` 或啟用[工具搜尋](#scale-with-mcp-tool-search)的 Agent SDK 執行期間需要驗證時 (這是預設值),Claude Code 會告訴 Claude 該 server 的工具不可用,直到您授權它。Claude 可以命名需要登入的 server,而不是回應為好像 server 未配置。從使用 `/mcp` 或 `claude mcp login <name>` 的互動 session 完成登入。

528 549 

529如果您為 server 配置了 `headers.Authorization`,而 server 拒絕該標頭,Claude Code 會將連接報告為失敗,而不是回退到 OAuth。檢查 token 對 MCP 端點是否有效,或移除標頭以使用 OAuth 流程。550如果您為 server 配置了 `headers.Authorization`,而 server 拒絕該標頭,Claude Code 會將連接報告為失敗,而不是回退到 OAuth。檢查 token 對 MCP 端點是否有效,或移除標頭以使用 OAuth 流程。

530 551 


710 731 

711`oauth.scopes` 優先於 `authServerMetadataUrl` 和 server 在 `/.well-known` 發現的範圍。保持未設定以讓 MCP server 決定要求的範圍集。732`oauth.scopes` 優先於 `authServerMetadataUrl` 和 server 在 `/.well-known` 發現的範圍。保持未設定以讓 MCP server 決定要求的範圍集。

712 733 

734從 v2.1.196 開始,當未設定 `oauth.scopes` 時,Claude Code 會要求 server 的 `WWW-Authenticate` 標頭或其受保護資源中繼資料提供的範圍,當兩者都未提供時不傳送 `scope` 參數。它不再要求自動探索的授權 server 中繼資料中的完整 `scopes_supported` 目錄。要求該目錄使得宣傳僅限管理員或範本範圍的身分提供者以 `invalid_scope` 錯誤拒絕授權要求。從配置的 `authServerMetadataUrl` 擷取的中繼資料仍然提供其 `scopes_supported` 作為要求的範圍。

735 

713如果授權 server 在 `scopes_supported` 中宣傳 `offline_access`,Claude Code 會將其附加到固定範圍,以便可以在沒有新瀏覽器登入的情況下重新整理存取 token。736如果授權 server 在 `scopes_supported` 中宣傳 `offline_access`,Claude Code 會將其附加到固定範圍,以便可以在沒有新瀏覽器登入的情況下重新整理存取 token。

714 737 

715如果 server 稍後為工具呼叫傳回 403 `insufficient_scope`,Claude Code 會使用相同的固定範圍重新驗證。當您需要的工具需要固定範圍外的範圍時,擴展 `oauth.scopes`。738如果 server 稍後為工具呼叫傳回 403 `insufficient_scope`,Claude Code 會使用相同的固定範圍重新驗證。當您需要的工具需要固定範圍外的範圍時,擴展 `oauth.scopes`。


754 777 

755helper 在每次連接時執行 (在 session 啟動和重新連接時)。沒有快取,因此您的指令碼負責任何 token 重複使用。778helper 在每次連接時執行 (在 session 啟動和重新連接時)。沒有快取,因此您的指令碼負責任何 token 重複使用。

756 779 

780從 v2.1.193 開始,如果工具呼叫傳回 `401 Unauthorized` 或 `403 Forbidden`,Claude Code 會自動重新執行 helper、使用新標頭重新連接,並重試呼叫一次。Claude Code 只有在該重試也失敗時,才會在 `/mcp` 中將 server 標記為需要驗證。

781 

757Claude Code 在執行 helper 時設定這些環境變數:782Claude Code 在執行 helper 時設定這些環境變數:

758 783 

759| 變數 | 值 |784| 變數 | 值 |

760| :---------------------------- | :--------------- |785| :---------------------------- | :------------------------------------------------------------------- |

761| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP server 的名稱 |786| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP server 的名稱 |

762| `CLAUDE_CODE_MCP_SERVER_URL` | MCP server 的 URL |787| `CLAUDE_CODE_MCP_SERVER_URL` | MCP server 的 URL |

788| `CLAUDE_PLUGIN_ROOT` | 外掛程式的根目錄。僅當[外掛程式](/zh-TW/plugins-reference#mcp-servers)提供 server 時設定 |

763 789 

764使用這些來編寫為多個 MCP servers 服務的單一 helper 指令碼。790使用這些來編寫為多個 MCP servers 服務的單一 helper 指令碼。

765 791 

792對於外掛程式提供的 server,helper 也會在其工作目錄設定為外掛程式根目錄的情況下執行,因此相對 `headersHelper` 路徑會在外掛程式目錄內解析,而不是針對 session 的工作目錄。需要 Claude Code v2.1.195 或更新版本。

793 

766<Note>794<Note>

767 `headersHelper` 執行任意 shell 命令。在專案或本機範圍定義時,它僅在您接受工作區信任對話框後執行。795 `headersHelper` 執行任意 shell 命令。在專案或本機範圍定義時,它僅在您接受工作區信任對話框後執行。

768</Note>796</Note>


841</Tip>869</Tip>

842 870 

843<h2 id="use-mcp-servers-from-claude-ai">871<h2 id="use-mcp-servers-from-claude-ai">

844 使用來自 Claude.ai 的 MCP servers872 使用來自 claude.ai 的 MCP servers

845</h2>873</h2>

846 874 

847如果您已使用 [Claude.ai](https://claude.ai) 帳戶登入 Claude Code,您在 Claude.ai 中新增的 MCP servers 會自動在 Claude Code 中可用:875如果您已使用 [claude.ai](https://claude.ai) 帳戶登入 Claude Code,您在 claude.ai 中新增的 MCP servers 會自動在 Claude Code 中可用:

848 876 

849<Steps>877<Steps>

850 <Step title="在 Claude.ai 中配置 MCP servers">878 <Step title="在 claude.ai 中配置 MCP servers">

851 在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 新增 servers。在 Team 和 Enterprise 計畫上,只有管理員可以新增 servers。879 在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 新增 servers。在 Team 和 Enterprise 計畫上,只有管理員可以新增 servers。

852 </Step>880 </Step>

853 881 

854 <Step title="驗證 MCP server">882 <Step title="驗證 MCP server">

855Claude.ai 中完成任何必需的驗證步驟。883claude.ai 中完成任何必需的驗證步驟。

856 </Step>884 </Step>

857 885 

858 <Step title="在 Claude Code 中檢視和管理 servers">886 <Step title="在 Claude Code 中檢視和管理 servers">


862 /mcp890 /mcp

863 ```891 ```

864 892 

865 Claude.ai servers 在列表中出現,並有指示器顯示它們來自 Claude.ai。893 Claude.ai servers 在列表中出現,並有指示器顯示它們來自 claude.ai。

866 </Step>894 </Step>

867</Steps>895</Steps>

868 896 

869從 v2.1.161 開始,您從未登入過的 connectors 會在 claude.ai 部分末尾的 `Show unused connectors` 列後面摺疊,因此組織佈建的列表不會填滿面板。選擇該列以展開它們。您之前登入過的 connector 即使目前需要重新驗證,也會保持可見。897從 v2.1.161 開始,您從未登入過的 connectors 會在 claude.ai 部分末尾的 `Show unused connectors` 列後面摺疊,因此組織佈建的列表不會填滿面板。選擇該列以展開它們。您之前登入過的 connector 即使目前需要重新驗證,也會保持可見。

870 898 

871Claude.ai connectors 只有在您的活躍[驗證方法](/zh-TW/authentication#authentication-precedence)是您的 Claude.ai 訂閱時才會被取得。當 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper` 或第三方提供者(例如 Bedrock 或 Vertex)處於活躍狀態時,它們不會被載入,即使您之前執行過 `/login`。如果 `/mcp` 沒有列出您新增的 connector,請執行 `/status` 以確認哪個驗證方法處於活躍狀態,取消設定該環境變數或移除 `apiKeyHelper` 設定,然後執行 `/login` 以選擇您的 Claude.ai 帳戶。899Claude.ai connectors 只有在您的活躍[驗證方法](/zh-TW/authentication#authentication-precedence)是您的 Claude.ai 訂閱時才會被取得。當 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper` 或第三方提供者(例如 Bedrock 或 Vertex)處於活躍狀態時,它們不會被載入,即使您之前執行過 `/login`。如果 `/mcp` 沒有列出您新增的 connector,請執行 `/status` 以確認哪個驗證方法處於活躍狀態,取消設定該環境變數或移除 `apiKeyHelper` 設定,然後執行 `/login` 以選擇您的 claude.ai 帳戶。

872 900 

873您在 Claude Code 中新增的 server 優先於指向相同 URL 的 claude.ai connector。發生這種情況時,`/mcp` 會將 connector 列為隱藏,並顯示如何移除重複項(如果您寧願使用 connector)。901您在 Claude Code 中新增的 server 優先於指向相同 URL 的 claude.ai connector。發生這種情況時,`/mcp` 會將 connector 列為隱藏,並顯示如何移除重複項(如果您寧願使用 connector)。

874 902 


1199 * MCP 提示從連接的 servers 動態探索1227 * MCP 提示從連接的 servers 動態探索

1200 * 引數根據提示的定義參數進行解析1228 * 引數根據提示的定義參數進行解析

1201 * 提示結果直接注入到對話中1229 * 提示結果直接注入到對話中

1202 * Server 和提示名稱已標準化 (空格變成底線)1230 * Server 和提示名稱已標準化空格變成底線

1203</Tip>1231</Tip>

1204 1232 

1205<h2 id="managed-mcp-configuration">1233<h2 id="managed-mcp-configuration">

Details

171 171 

172```bash theme={null}172```bash theme={null}

173export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'173export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'

174export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'174export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'

175export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'175export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'

176```176```

177 177 

model-config.md +42 −31

Details

30模型別名提供了一種便捷的方式來選擇模型設定,無需記住確切的版本號:30模型別名提供了一種便捷的方式來選擇模型設定,無需記住確切的版本號:

31 31 

32| 模型別名 | 行為 |32| 模型別名 | 行為 |

33| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

34| **`default`** | 特殊值,可清除任何模型覆蓋並還原為您帳戶類型的推薦模型。本身不是模型別名 |34| **`default`** | 特殊值,可清除任何模型覆蓋並還原為您帳戶類型的推薦模型。本身不是模型別名 |

35| **`best`** | 在您的組織有權限的地方使用 Fable 5,否則使用最新的 Opus 模型 |35| **`best`** | 在您的組織有權限的地方使用 Fable 5,否則使用最新的 Opus 模型 |

36| **`fable`** | 使用 Claude Fable 5 進行您最困難和最長時間執行的任務 |36| **`fable`** | 使用 Claude Fable 5 進行您最困難和最長時間執行的任務 |

37| **`sonnet`** | 使用最新的 Sonnet 模型進行日常編碼任務 |37| **`sonnet`** | 使用最新的 Sonnet 模型進行日常編碼任務 |

38| **`opus`** | 使用最新的 Opus 模型進行複雜推理任務 |38| **`opus`** | 使用最新的 Opus 模型進行複雜推理任務 |

39| **`haiku`** | 使用快速高效的 Haiku 模型進行簡單任務 |39| **`haiku`** | 使用快速高效的 Haiku 模型進行簡單任務 |

40| **`sonnet[1m]`** | 使用 Sonnet 搭配[100 萬個 token 的 context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#1m-token-context-window)進行長時間會話 |40| **`sonnet[1m]`** | 使用 Sonnet 搭配[100 萬個 token 的 context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#1m-token-context-window)進行長時間會話。當 `sonnet` 已解析為具有原生 1M window 的 Sonnet 5 時無效;在 [LLM 閘道](/zh-TW/llm-gateway)後方時,會為 Sonnet 5 選擇 1M window |

41| **`opus[1m]`** | 使用 Opus 搭配[100 萬個 token 的 context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#1m-token-context-window)進行長時間會話 |41| **`opus[1m]`** | 使用 Opus 搭配[100 萬個 token 的 context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#1m-token-context-window)進行長時間會話 |

42| **`opusplan`** | 特殊模式,在 Plan Mode 期間使用 `opus`,然後在執行時切換到 `sonnet` |42| **`opusplan`** | 特殊模式,在 Plan Mode 期間使用 `opus`,然後在執行時切換到 `sonnet` |

43 43 

44在 Anthropic API 上,`opus` 解析為 Opus 4.8,`sonnet` 解析為 Sonnet 4.6。在 [AWS 上的 Claude Platform](/zh-TW/claude-platform-on-aws) 上,`opus` 解析為 Opus 4.7,`sonnet` 解析為 Sonnet 4.6。在 Bedrock、Vertex 和 Foundry 上,`opus` 解析為 Opus 4.6,`sonnet` 解析為 Sonnet 4.5;透過明確選擇完整模型名稱或設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL`,這些提供者上可以使用更新的模型。44在 Anthropic API 上,`opus` 解析為 Opus 4.8,`sonnet` 解析為 Sonnet 5。在 [AWS 上的 Claude Platform](/zh-TW/claude-platform-on-aws) 上,`opus` 解析為 Opus 4.7,`sonnet` 解析為 Sonnet 4.6。在 Bedrock、Vertex 和 Foundry 上,`opus` 解析為 Opus 4.6,`sonnet` 解析為 Sonnet 4.5;透過明確選擇完整模型名稱或設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL`,這些提供者上可以使用更新的模型。

45 45 

46別名指向您提供者的推薦版本,並隨著時間推移而更新。若要固定到特定版本,請使用完整模型名稱(例如 `claude-opus-4-8`)或設定相應的環境變數,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。46別名指向您提供者的推薦版本,並隨著時間推移而更新。若要固定到特定版本,請使用完整模型名稱(例如 `claude-opus-4-8`)或設定相應的環境變數,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。

47 47 

48<Note>48<Note>

49 Opus 4.8 需要 Claude Code v2.1.154 或更新版本。執行 `claude update` 以升級。49 Sonnet 5 需要 Claude Code v2.1.197 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。執行 `claude update` 以升級。

50</Note>50</Note>

51 51 

52<h3 id="work-with-fable-5">52<h3 id="work-with-fable-5">


74 74 

75您可以透過多種方式配置模型,按優先順序列出:75您可以透過多種方式配置模型,按優先順序列出:

76 76 

771. **在會話期間** - 使用 `/model <alias|name>` 立即切換,或執行 `/model` 不帶任何引數以開啟選擇器。當會話有先前的輸出時,選擇器會要求確認,因為下一個回應會重新讀取完整歷史記錄而不使用快取的 context771. **在會話期間**使用 `/model <alias|name>` 立即切換,或執行 `/model` 不帶任何引數以開啟選擇器。當會話有先前的輸出時,選擇器會要求確認,因為下一個回應會重新讀取完整歷史記錄而不使用快取的 context

782. **在啟動時** - 使用 `claude --model <alias|name>` 啟動782. **在啟動時**使用 `claude --model <alias|name>` 啟動

793. **環境變數** - 設定 `ANTHROPIC_MODEL=<alias|name>`793. **環境變數**設定 `ANTHROPIC_MODEL=<alias|name>`

804. **設定** - 在設定檔中使用 `model` 欄位永久配置804. **設定**在設定檔中使用 `model` 欄位永久配置

81 81 

82自 v2.1.153 起,`/model` 會透過在您的使用者設定中寫入 `model` 欄位,將您的選擇儲存為新會話的預設值。在選擇器中:82自 v2.1.153 起,`/model` 會透過在您的使用者設定中寫入 `model` 欄位,將您的選擇儲存為新會話的預設值。在選擇器中:

83 83 


165 預設模型行為165 預設模型行為

166</h3>166</h3>

167 167 

168根據預設,模型選擇器中的「預設」選項不受 `availableModels` 影響,除非也設定了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)。單獨使用 `availableModels` 會保持「預設」可用,根據[使用者的訂閱層級](#default-model-setting)解析為系統的執行時預設值如果層級預設值是您想要限制的模型,也請設定 `enforceAvailableModels`。168根據預設,模型選擇器中的「預設」選項不受 `availableModels` 影響,除非也設定了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)。單獨使用 `availableModels` 會保持「預設」可用,根據帳戶的[執行時預設](#default-model-setting)解析為系統預設值如果該預設值是您想要限制的模型,也請設定 `enforceAvailableModels`。

169 169 

170空的 `availableModels` 陣列永遠不會啟用「預設」模型強制執行:使用 `availableModels: []` 時,具名模型選擇會被阻止,但帳戶類型的「預設」模型無論 `enforceAvailableModels` 為何都保持可用。170空的 `availableModels` 陣列永遠不會啟用「預設」模型強制執行:使用 `availableModels: []` 時,具名模型選擇會被阻止,但帳戶類型的「預設」模型無論 `enforceAvailableModels` 為何都保持可用。

171 171 


192 控制使用者執行的模型192 控制使用者執行的模型

193</h3>193</h3>

194 194 

195`model` 設定是初始選擇,而非強制執行。它設定會話啟動時哪個模型處於活動狀態,但使用者仍然可以開啟 `/model` 並選擇「預設」,這會解析為其層級的系統預設值,無論 `model` 設定為何,除非 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 重新導向它。195`model` 設定是初始選擇,而非強制執行。它設定會話啟動時哪個模型處於活動狀態,但使用者仍然可以開啟 `/model` 並選擇「預設」,這會解析為系統的[執行時預設](#default-model-setting),無論 `model` 設定為何,除非 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 重新導向它。

196 196 

197若要完全控制模型體驗,請結合這些設定:197若要完全控制模型體驗,請結合這些設定:

198 198 


234 組織模型限制234 組織模型限制

235</h3>235</h3>

236 236 

237當您的成員透過 Anthropic API 進行驗證,且您想要一個組織範圍的開關而不部署設定檔時,請使用主控台切換而不是 `availableModels`。組織管理員透過在 Claude 主控台中停用個別模型來限制成員可以執行的模型。此限制在 Claude Code 驗證時與帳戶的權利一起傳遞,與設定中的任何 `availableModels` 清單分開,而伺服器在建立會話時獨立強制執行相同的限制。需要 Claude Code v2.1.187 或更新版本。237組織管理員透過在 Claude 主控台中停用個別模型來限制成員可以執行的模型。當您的成員透過 Anthropic API 進行驗證,且您想要一個組織範圍的開關而不部署設定檔時,請使用主控台切換而不是 `availableModels`。此限制在 Claude Code 驗證時與帳戶的權利一起傳遞,與設定中的任何 `availableModels` 清單分開,而伺服器在建立會話時獨立強制執行相同的限制。需要 Claude Code v2.1.187 或更新版本。

238 238 

239受限制的模型會從 `/model` 選擇器中隱藏。使用 `--model`、`ANTHROPIC_MODEL` 環境變數或 `model` 設定按名稱選擇它會顯示通知 `Model "<name>" is restricted by your organization's settings. Using <model> instead.`,會話會在允許的模型上啟動。為受限制的模型輸入 `/model <name>` 會被拒絕,並顯示 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`,會話會保持其目前模型。239受限制的模型會從 `/model` 選擇器中隱藏。使用 `--model`、`ANTHROPIC_MODEL` 環境變數或 `model` 設定按名稱選擇它會顯示通知 `Model "<name>" is restricted by your organization's settings. Using <model> instead.`,會話會在允許的模型上啟動。為受限制的模型輸入 `/model <name>` 會被拒絕,並顯示 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`,會話會保持其目前模型。

240 240 

241這兩個機制組合:只有當模型被 `availableModels` 允許且未被組織限制時,它才可選擇。組織限制會傳遞到 Anthropic API 和 [LLM 閘道](/zh-TW/llm-gateway)部署上的會話。Bedrock、Vertex AI、Foundry 和 AWS 上的 Claude Platform 上的會話不接收它們,因此請改為在這些提供者上使用 `availableModels`。241這兩個限制組合:只有當模型被 `availableModels` 允許且未被組織限制時,它才可選擇。組織限制會傳遞到 Anthropic API 和 [LLM 閘道](/zh-TW/llm-gateway)部署上的會話。Bedrock、Vertex AI、Foundry 和 AWS 上的 Claude Platform 上的會話不接收它們,因此請改為在這些提供者上使用 `availableModels`。

242 242 

243<h2 id="special-model-behavior">243<h2 id="special-model-behavior">

244 特殊模型行為244 特殊模型行為


252 252 

253* **Max、Team Premium、Enterprise 隨用隨付和 Anthropic API**:預設為 Opus 4.8253* **Max、Team Premium、Enterprise 隨用隨付和 Anthropic API**:預設為 Opus 4.8

254* **AWS 上的 Claude Platform**:預設為 Opus 4.7254* **AWS 上的 Claude Platform**:預設為 Opus 4.7

255* **Pro、Team Standard 和 Enterprise 訂閱席位**:預設為 Sonnet 4.6255* **Pro、Team Standard 和 Enterprise 訂閱席位**:預設為 Sonnet 5

256* **Bedrock、Vertex 和 Foundry**:預設為 Sonnet 4.5256* **Bedrock、Vertex 和 Foundry**:預設為 Sonnet 4.5

257 257 

258Enterprise 隨用隨付是指按使用量計費而非按訂閱席位計費的 Enterprise 組織。258Enterprise 隨用隨付是指按使用量計費而非按訂閱席位計費的 Enterprise 組織。


267 267 

268`opusplan` 模型別名提供了一種自動化的混合方法:268`opusplan` 模型別名提供了一種自動化的混合方法:

269 269 

270* **在 Plan Mode 中** - 使用 `opus` 進行複雜推理和架構決策270* **在 Plan Mode 中**使用 `opus` 進行複雜推理和架構決策

271* **在執行模式中** - 自動切換到 `sonnet` 進行程式碼生成和實現271* **在執行模式中**自動切換到 `sonnet` 進行程式碼生成和實現

272 272 

273這為您提供了兩全其美的方案:Opus 優越的推理能力用於計畫,Sonnet 的效率用於執行。273這為您提供了兩全其美的方案:Opus 優越的推理能力用於計畫,Sonnet 的效率用於執行。

274 274 


296 296 

297```json theme={null}297```json theme={null}

298{298{

299 "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]299 "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]

300}300}

301```301```

302 302 


368可用的努力等級取決於模型。此處未列出的模型不支援努力:368可用的努力等級取決於模型。此處未列出的模型不支援努力:

369 369 

370| 模型 | 等級 |370| 模型 | 等級 |

371| :-------------------- | :---------------------------------- |371| :--------------------------- | :---------------------------------- |

372| Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |372| Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |

373| Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |373| Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |

374| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |374| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |

375 375 

376如果您設定活動模型不支援的等級,Claude Code 會回退到您設定的等級處或以下的最高支援等級。例如,`xhigh` 在 Opus 4.6 上執行為 `high`。376如果您設定活動模型不支援的等級,Claude Code 會回退到您設定的等級處或以下的最高支援等級。例如,`xhigh` 在 Opus 4.6 上執行為 `high`。

377 377 

378Fable 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的預設努力為 `high`,Opus 4.7 上的預設努力為 `xhigh`。378Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的預設努力為 `high`,Opus 4.7 上的預設努力為 `xhigh`。

379 379 

380當您首次執行 Fable 5、Opus 4.8 或 Opus 4.7 時,Claude Code 會應用該模型的預設努力,即使您之前為另一個模型設定了不同的等級:Fable 5 和 Opus 4.8 上的 `high`,以及 Opus 4.7 上的 `xhigh`。執行 `/effort` 以在切換後選擇不同的等級。380當您首次執行 Fable 5、Opus 4.8 或 Opus 4.7 時,Claude Code 會應用該模型的預設努力,即使您之前為另一個模型設定了不同的等級:Fable 5 和 Opus 4.8 上的 `high`,以及 Opus 4.7 上的 `xhigh`。執行 `/effort` 以在切換後選擇不同的等級。

381 381 


393| :---------- | :---------------------------------------------------------------------------- |393| :---------- | :---------------------------------------------------------------------------- |

394| `low` | 保留用於短期、範圍有限、延遲敏感且不是智能敏感的任務 |394| `low` | 保留用於短期、範圍有限、延遲敏感且不是智能敏感的任務 |

395| `medium` | 減少成本敏感工作的 token 使用,可以權衡一些智能 |395| `medium` | 減少成本敏感工作的 token 使用,可以權衡一些智能 |

396| `high` | 平衡 token 使用和智能。Fable 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的預設值 |396| `high` | 平衡 token 使用和智能。Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的預設值 |

397| `xhigh` | 更深入的推理,token 支出更高。Opus 4.7 上的預設值 |397| `xhigh` | 更深入的推理,token 支出更高。Opus 4.7 上的預設值 |

398| `max` | 可以改善困難任務的效能,但可能顯示遞減回報,容易過度思考。在廣泛採用前進行測試 |398| `max` | 可以改善困難任務的效能,但可能顯示遞減回報,容易過度思考。在廣泛採用前進行測試 |

399| `ultracode` | 一個 Claude Code 設定,為每個實質性任務規劃[動態工作流程](/zh-TW/workflows),每條訊息進行 `xhigh` 推理。僅限會話 |399| `ultracode` | 一個 Claude Code 設定,為每個實質性任務規劃[動態工作流程](/zh-TW/workflows),每條訊息進行 `xhigh` 推理。僅限會話 |


429 429 

430自適應推理使思考在每一步上都是可選的,因此 Claude 可以更快地回應常規提示,並為受益於思考的步驟保留更深入的思考。如果您想要 Claude 比目前等級產生的更頻繁或更少地思考,您可以直接在您的提示或 `CLAUDE.md` 中說明;模型在其努力設定範圍內回應該指導。430自適應推理使思考在每一步上都是可選的,因此 Claude 可以更快地回應常規提示,並為受益於思考的步驟保留更深入的思考。如果您想要 Claude 比目前等級產生的更頻繁或更少地思考,您可以直接在您的提示或 `CLAUDE.md` 中說明;模型在其努力設定範圍內回應該指導。

431 431 

432Opus 4.7 及更新版本始終使用自適應推理,Fable 5 也是如此。固定思考預算模式和 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 不適用於它們。432Fable 5、Sonnet 5 和 Opus 4.7 及更新版本始終使用自適應推理。固定思考預算模式和 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 不適用於它們。

433 433 

434在 Opus 4.6 和 Sonnet 4.6 上,您可以設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 以恢復到由 `MAX_THINKING_TOKENS` 控制的先前固定思考預算。請參閱[環境變數](/zh-TW/env-vars)。434在 Opus 4.6 和 Sonnet 4.6 上,您可以設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 以恢復到由 `MAX_THINKING_TOKENS` 控制的先前固定思考預算。請參閱[環境變數](/zh-TW/env-vars)。

435 435 


453 擴展 context453 擴展 context

454</h3>454</h3>

455 455 

456Fable 5、Opus 4.6 及更新版本和 Sonnet 4.6 支援[100 萬個 token 的 context window](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window),用於具有大型程式碼庫的長時間會話。456Fable 5、Sonnet 5、Opus 4.6 及更新版本和 Sonnet 4.6 支援[100 萬個 token 的 context window](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window),用於具有大型程式碼庫的長時間會話。

457 457 

458可用性因模型和計畫而異。在 Max、Team 和 Enterprise 計畫上,Opus 會自動升級到 1M context,無需額外配置。這適用於 Team Standard 和 Team Premium 席位。在 Anthropic API 上,Fable 5、Opus 4.8 和 Opus 4.7 始終使用 1M window 執行。Sonnet 搭配 1M context 不是自動升級的一部分,需要在每個訂閱計畫上進行[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max。458可用性因模型和計畫而異。在 Anthropic API 上,Fable 5、Sonnet 5、Opus 4.8 和 Opus 4.7 始終使用 1M window 執行。在 Max、Team 和 Enterprise 計畫上,Opus 會自動升級到 1M context,無需額外配置。這適用於 Team Standard 和 Team Premium 席位。Sonnet 4.6 搭配 1M context 不是自動升級的一部分,需要在每個訂閱計畫上進行[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max。

459 459 

460| 計畫 | Opus 搭配 1M context | Sonnet 搭配 1M context |460| 計畫 | Opus 搭配 1M context | Sonnet 4.6 搭配 1M context |

461| --------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |461| --------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |

462| Max、Team 和 Enterprise | 包含在訂閱中 | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |462| Max、Team 和 Enterprise | 包含在訂閱中 | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

463| Pro | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |463| Pro | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |


480/model claude-opus-4-8[1m]480/model claude-opus-4-8[1m]

481```481```

482 482 

483<h4 id="sonnet-5-context-window">

484 Sonnet 5 的 context window

485</h4>

486 

487在 Anthropic API 上,Sonnet 5 始終使用 1M context window 執行。沒有 200K 變體,沒有可選擇的 `[1m]` 後綴,任何計畫都不需要使用額度。會話會在 window 填滿前自動壓縮,預設約在 967K 個 token 時;設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/zh-TW/env-vars) 以選擇不同的閾值。

488 

489兩種配置會改為以 200K 計算 window,並在該邊界自動壓縮:

490 

491* **LLM 閘道**:當 `ANTHROPIC_BASE_URL` 指向[閘道](/zh-TW/llm-gateway)時,Claude Code 無法驗證 1M 支援。若要使用完整的 window,請在模型選擇器中選擇 Sonnet 5 (1M context),它會對應到 `sonnet[1m]`。

492* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:將 Sonnet 5 會話視為具有 200K window,適用於需要限制 context 的部署。

493 

483<h2 id="checking-your-current-model">494<h2 id="checking-your-current-model">

484 檢查您目前的模型495 檢查您目前的模型

485</h2>496</h2>

486 497 

487您可以透過多種方式查看您目前使用的模型498您可以在兩個地方查看您目前使用的模型

488 499 

4891. 在[狀態行](/zh-TW/statusline)中(如果已配置)500* 在[狀態行](/zh-TW/statusline)中(如果已配置)

4902. 在 `/status` 中,它也會顯示您的帳戶資訊501* 在 `/status` 中,它也會顯示您的帳戶資訊

491 502 

492<h2 id="add-a-custom-model-option">503<h2 id="add-a-custom-model-option">

493 新增自訂模型選項504 新增自訂模型選項


498此範例設定所有三個變數以使閘道路由的 Opus 部署可選擇:509此範例設定所有三個變數以使閘道路由的 Opus 部署可選擇:

499 510 

500```bash theme={null}511```bash theme={null}

501export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-7"512export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-8"

502export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"513export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

503export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"514export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

504```515```

505 516 

506自訂項目出現在 `/model` 選擇器的底部。`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` 和 `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` 是可選的。如果省略,模型 ID 會用作名稱,描述預設為 `Custom model (<model-id>)`。517自訂項目出現在 `/model` 選擇器的底部。`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` 和 `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` 是可選的。如果省略,模型 ID 會用作名稱,描述預設為 `Custom model (<model-id>)`。

507 518 

508Claude Code 會跳過在 `ANTHROPIC_CUSTOM_MODEL_OPTION` 中設定的模型 ID 的驗證,因此您可以使用您的 API 端點接受的任何字串。當設定 [`availableModels`](#restrict-model-selection) 時,也要在允許清單中包含自訂模型 ID:自訂項目會從選擇器中篩選出來,對其進行 `--model` 選擇會被拒絕,就像任何其他被排除的模型一樣。嵌入家族名稱的自訂 ID(例如 `my-gateway/claude-opus-4-7`)會計為該家族的特定項目,並停用其萬用字元,因此也要列出您打算保持可選擇的版本。請參閱 [合併行為](#merge-behavior)。519Claude Code 會跳過在 `ANTHROPIC_CUSTOM_MODEL_OPTION` 中設定的模型 ID 的驗證,因此您可以使用您的 API 端點接受的任何字串。當設定 [`availableModels`](#restrict-model-selection) 時,也要在允許清單中包含自訂模型 ID:自訂項目會從選擇器中篩選出來,對其進行 `--model` 選擇會被拒絕,就像任何其他被排除的模型一樣。嵌入家族名稱的自訂 ID(例如 `my-gateway/claude-opus-4-8`)會計為該家族的特定項目,並停用其萬用字元,因此也要列出您打算保持可選擇的版本。請參閱 [合併行為](#merge-behavior)。

509 520 

510<h2 id="environment-variables">521<h2 id="environment-variables">

511 環境變數522 環境變數

512</h2>523</h2>

513 524 

514您可以使用以下環境變數這些變數必須是完整的**模型名稱**(或您的 API 提供者的等效項),以控制別名對應到的模型名稱525您可以使用以下環境變數來控制別名對應到的模型名稱。每個值必須是完整的模型名稱,或您的 API 提供者的等效識別碼

515 526 

516| 環境變數 | 描述 |527| 環境變數 | 描述 |

517| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |528| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


555 566 

556* Claude Code 在將模型 ID 發送到您的提供者之前會移除該後綴。567* Claude Code 在將模型 ID 發送到您的提供者之前會移除該後綴。

557* 只有當基礎模型[支援 1M context](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) 時,才附加 `[1m]`。568* 只有當基礎模型[支援 1M context](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) 時,才附加 `[1m]`。

558* 後綴是按變數讀取的,而不是按模型讀取的。在 Bedrock、Vertex 和 Foundry 上,一個變數中沒有 `[1m]` 的模型 ID 會使用 200K context,即使另一個變數設定相同的模型並帶有後綴。569* 後綴是按變數讀取的,而不是按模型讀取的。在 Bedrock、Vertex 和 Foundry 上,一個變數中沒有 `[1m]` 的模型 ID 會使用 200K context,即使另一個變數設定相同的模型並帶有後綴。Sonnet 5 在這些提供者上始終以 1M window 執行,永遠不需要後綴。

559 570 

560<Note>571<Note>

561 使用第三方提供者時,透過 [MDM 或受管設定檔](/zh-TW/settings#settings-files) 傳遞的 `availableModels` 允許清單仍然適用;[伺服器管理的設定不會在那裡傳遞](/zh-TW/server-managed-settings#platform-availability)。篩選會根據模型別名(例如 `opus`)、版本前綴(例如 `claude-opus-4-8`)或完整提供者形式模型 ID 進行匹配。提供者特定的前綴(例如 `us.anthropic.`)不會被移除,因此若要允許特定模型,請列出選擇器顯示的相同提供者形式 ID,或透過 [`modelOverrides`](#override-model-ids-per-version) 對應它。任何 `[1m]` 後綴會從允許清單項目和請求的模型中移除,然後進行匹配。572 使用第三方提供者時,透過 [MDM 或受管設定檔](/zh-TW/settings#settings-files) 傳遞的 `availableModels` 允許清單仍然適用;[伺服器管理的設定不會在那裡傳遞](/zh-TW/server-managed-settings#platform-availability)。篩選會根據模型別名(例如 `opus`)、版本前綴(例如 `claude-opus-4-8`)或完整提供者形式模型 ID 進行匹配。提供者特定的前綴(例如 `us.anthropic.`)不會被移除,因此若要允許特定模型,請列出選擇器顯示的相同提供者形式 ID,或透過 [`modelOverrides`](#override-model-ids-per-version) 對應它。任何 `[1m]` 後綴會從允許清單項目和請求的模型中移除,然後進行匹配。

Details

93| `OTEL_METRIC_EXPORT_INTERVAL` | 匯出間隔(毫秒)(預設:60000) | `5000`、`60000` |93| `OTEL_METRIC_EXPORT_INTERVAL` | 匯出間隔(毫秒)(預設:60000) | `5000`、`60000` |

94| `OTEL_LOGS_EXPORT_INTERVAL` | 日誌匯出間隔(毫秒)(預設:5000) | `1000`、`10000` |94| `OTEL_LOGS_EXPORT_INTERVAL` | 日誌匯出間隔(毫秒)(預設:5000) | `1000`、`10000` |

95| `OTEL_LOG_USER_PROMPTS` | 啟用使用者提示內容的日誌記錄(預設:停用) | `1` 以啟用 |95| `OTEL_LOG_USER_PROMPTS` | 啟用使用者提示內容的日誌記錄(預設:停用) | `1` 以啟用 |

96| `OTEL_LOG_ASSISTANT_RESPONSES` | 啟用在 `assistant_response` 事件上記錄助手回應文字的日誌(預設:停用)。未設定時,會回退到 `OTEL_LOG_USER_PROMPTS` 的值。{/* min-version: 2.1.193 */}需要 Claude Code v2.1.193 或更新版本 | `1` 以啟用,`0` 以保持編輯 |

96| `OTEL_LOG_TOOL_DETAILS` | 啟用在工具事件和追蹤跨度屬性中記錄工具參數和輸入引數的日誌:Bash 命令、MCP 伺服器和工具名稱、Skill 名稱和工具輸入。也在 `user_prompt` 事件上啟用自訂、plugin 和 MCP 命令名稱(預設:停用) | `1` 以啟用 |97| `OTEL_LOG_TOOL_DETAILS` | 啟用在工具事件和追蹤跨度屬性中記錄工具參數和輸入引數的日誌:Bash 命令、MCP 伺服器和工具名稱、Skill 名稱和工具輸入。也在 `user_prompt` 事件上啟用自訂、plugin 和 MCP 命令名稱(預設:停用) | `1` 以啟用 |

97| `OTEL_LOG_TOOL_CONTENT` | 啟用在跨度事件中記錄工具輸入和輸出內容的日誌(預設:停用)。需要[追蹤](#traces-beta)。內容在 60 KB 處截斷 | `1` 以啟用 |98| `OTEL_LOG_TOOL_CONTENT` | 啟用在跨度事件中記錄工具輸入和輸出內容的日誌(預設:停用)。需要[追蹤](#traces-beta)。內容在 60 KB 處截斷 | `1` 以啟用 |

98| `OTEL_LOG_RAW_API_BODIES` | 將完整的 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出(預設:停用)。主體包括整個對話歷史記錄。啟用此選項意味著同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 會揭露的所有內容 | `1` 用於在 60 KB 處截斷的內聯主體,或 `file:<dir>` 用於磁碟上未截斷的主體,事件中有 `body_ref` 指標 |99| `OTEL_LOG_RAW_API_BODIES` | 將完整的 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出(預設:停用)。主體包括整個對話歷史記錄。啟用此選項意味著同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 會揭露的所有內容 | `1` 用於在 60 KB 處截斷的內聯主體,或 `file:<dir>` 用於磁碟上未截斷的主體,事件中有 `body_ref` 指標 |


341每個自訂鍵都會成為每個指標序列上的標籤,因此高基數值會增加指標後端中的儲存成本。若要僅在資源區塊中傳送自訂屬性並從資料點標籤中省略它們,請設定 `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`。請參閱[指標基數控制](#metrics-cardinality-control)。342每個自訂鍵都會成為每個指標序列上的標籤,因此高基數值會增加指標後端中的儲存成本。若要僅在資源區塊中傳送自訂屬性並從資料點標籤中省略它們,請設定 `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`。請參閱[指標基數控制](#metrics-cardinality-control)。

342 343 

343<Warning>344<Warning>

344 **OTEL\_RESOURCE\_ATTRIBUTES 的重要格式要求:**

345 

346 `OTEL_RESOURCE_ATTRIBUTES` 環境變數使用逗號分隔的鍵=值對,具有嚴格的格式要求:345 `OTEL_RESOURCE_ATTRIBUTES` 環境變數使用逗號分隔的鍵=值對,具有嚴格的格式要求:

347 346 

348 * **不允許空格**:值不能包含空格。例如,`user.organizationName=My Company` 無效347 * **不允許空格**:值不能包含空格。例如,`user.organizationName=My Company` 無效


350 * **允許的字元**:僅限 US-ASCII 字元,不包括控制字元、空格、雙引號、逗號、分號和反斜線349 * **允許的字元**:僅限 US-ASCII 字元,不包括控制字元、空格、雙引號、逗號、分號和反斜線

351 * **特殊字元**:允許範圍外的字元必須進行百分比編碼350 * **特殊字元**:允許範圍外的字元必須進行百分比編碼

352 351 

353 **範例**352 對於需要空格的值,請改用底線或駝峰式大小寫。以下範例以每種形式設定 `org.name`

354 353 

355 ```bash theme={null}354 ```bash theme={null}

356 # ❌ 無效 - 包含空格

357 export OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"

358 

359 # ✅ 有效 - 改用底線或駝峰式大小寫

360 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"355 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"

361 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"356 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"

357 ```

362 358 

363 # ✅ 有效 - 如果需要對特殊字元進行百分比編碼359 您可以對任何字元進行百分比編碼不僅限於排除的字元。此範例對空格和撇號進行編碼:

360 

361 ```bash theme={null}

364 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"362 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"

365 ```363 ```

366 364 

367 注意:將值用引號括起來不會逃逸空格。例如,`org.name="My Company"` 會產生字面值 `"My Company"`(包括引號),而不是 `My Company`。365 將值用引號括起來不會逃逸空格。例如,`org.name="My Company"` 會產生字面值 `"My Company"`(包括引號),而不是 `My Company`。

368</Warning>366</Warning>

369 367 

370<h3 id="example-configurations">368<h3 id="example-configurations">


439| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時始終包含 |437| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時始終包含 |

440| Keys from `OTEL_RESOURCE_ATTRIBUTES` | 您設定的自訂屬性,例如 `department` 或 `team.id`。詳見[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |438| Keys from `OTEL_RESOURCE_ATTRIBUTES` | 您設定的自訂屬性,例如 `department` 或 `team.id`。詳見[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |

441 439 

440當 Claude Code 登入到 [Claude apps gateway](/zh-TW/claude-apps-gateway) 時,CLI 會使用來自閘道工作階段的已驗證身份戳記匯出:`user.id` 是 IdP 主體而不是匿名安裝識別碼,`user.email` 是已登入的電子郵件,`user.groups` 以逗號分隔的字串形式帶有 IdP 群組成員資格。每個匯出還帶有 `identity.source: gateway-oidc`。閘道身份最後應用,因此透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 和 `identity.*` 鍵在閘道工作階段上被忽略。

441 

442事件另外包含以下屬性。這些永遠不會附加到指標,因為它們會導致無限制的基數:442事件另外包含以下屬性。這些永遠不會附加到指標,因為它們會導致無限制的基數:

443 443 

444* `prompt.id`:UUID 將使用者提示與所有後續事件關聯到下一個提示。請參閱[事件關聯屬性](#event-correlation-attributes)。444* `prompt.id`:UUID 將使用者提示與所有後續事件關聯到下一個提示。請參閱[事件關聯屬性](#event-correlation-attributes)。


488 488 

489* 所有[標準屬性](#standard-attributes)489* 所有[標準屬性](#standard-attributes)

490* `type`:(`"added"`、`"removed"`)490* `type`:(`"added"`、`"removed"`)

491* `model`:進行變更的模型識別碼(例如,"claude-sonnet-4-6")。{/* min-version: 2.1.172 */}需要 Claude Code v2.1.172 或更新版本491* `model`:進行變更的模型識別碼(例如,"claude-sonnet-5")

492 492 

493<h4 id="pull-request-counter">493<h4 id="pull-request-counter">

494 提取請求計數器494 提取請求計數器


519**屬性**:519**屬性**:

520 520 

521* 所有[標準屬性](#standard-attributes)521* 所有[標準屬性](#standard-attributes)

522* `model`:模型識別碼(例如,"claude-sonnet-4-6")522* `model`:模型識別碼(例如,"claude-sonnet-5")

523* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一523* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一

524* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在524* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在

525* `effort`:應用於請求的[努力等級](/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。525* `effort`:應用於請求的[努力等級](/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。


540 540 

541* 所有[標準屬性](#standard-attributes)541* 所有[標準屬性](#standard-attributes)

542* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)542* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)

543* `model`:模型識別碼(例如,"claude-sonnet-4-6")543* `model`:模型識別碼(例如,"claude-sonnet-5")

544* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一544* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一

545* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在545* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在

546* `effort`:應用於請求的[努力等級](/zh-TW/model-config#adjust-effort-level)。詳見[成本計數器](#cost-counter)以了解詳情。546* `effort`:應用於請求的[努力等級](/zh-TW/model-config#adjust-effort-level)。詳見[成本計數器](#cost-counter)以了解詳情。


608* `event.timestamp`:ISO 8601 時間戳608* `event.timestamp`:ISO 8601 時間戳

609* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件609* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件

610* `prompt_length`:提示的長度610* `prompt_length`:提示的長度

611* `prompt`:提示內容預設為編輯,使用 `OTEL_LOG_USER_PROMPTS=1` 啟用)611* `prompt`:提示內容預設為編輯。設定 `OTEL_LOG_USER_PROMPTS=1` 以包含它

612* `command_name`:當提示叫用命令時的命令名稱。內建和捆綁的命令名稱(例如 `compact` 或 `debug`)按原樣發出;別名(例如 `reset`)按輸入方式發出而不是規範名稱。自訂、plugin 和 MCP 命令名稱除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則會摺疊為 `custom` 或 `mcp`612* `command_name`:當提示叫用命令時的命令名稱。內建和捆綁的命令名稱(例如 `compact` 或 `debug`)按原樣發出;別名(例如 `reset`)按輸入方式發出而不是規範名稱。自訂、plugin 和 MCP 命令名稱除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則會摺疊為 `custom` 或 `mcp`

613* `command_source`:命令的來源(如果存在):`builtin`、`custom` 或 `mcp`。Plugin 提供的命令報告為 `custom`613* `command_source`:命令的來源(如果存在):`builtin`、`custom` 或 `mcp`。Plugin 提供的命令報告為 `custom`

614 614 

615<h4 id="assistant-response-event">

616 助手回應事件

617</h4>

618 

619在每個 API 請求傳回來自模型的文字內容後記錄。僅包含回應的文字區塊;思考區塊和工具使用區塊被排除。{/* min-version: 2.1.193 */}需要 Claude Code v2.1.193 或更新版本。

620 

621**事件名稱**:`claude_code.assistant_response`

622 

623**屬性**:

624 

625* 所有[標準屬性](#standard-attributes)

626* `event.name`:`"assistant_response"`

627* `event.timestamp`:ISO 8601 時間戳

628* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件

629* `response_length`:回應文字的長度(字元數)

630* `response`:回應文字,在 60 KB 處截斷。預設為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 以包含它。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,`OTEL_LOG_USER_PROMPTS` 會控制它,因此設定 `OTEL_LOG_ASSISTANT_RESPONSES=0` 以在啟用提示記錄時保持回應編輯

631* `model`:模型識別碼(例如,"claude-sonnet-4-6")

632* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID。僅當 API 傳回時才存在

633* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理名稱

634 

615<h4 id="tool-result-event">635<h4 id="tool-result-event">

616 工具結果事件636 工具結果事件

617</h4>637</h4>


632* `duration_ms`:執行時間(毫秒)652* `duration_ms`:執行時間(毫秒)

633* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`653* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`

634* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息654* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息

635* `decision_type`:始終為 `"accept"`,因為此事件僅在工具執行後發出拒絕的呼叫不會產生工具結果655* `decision_type`:始終為 `"accept"`,因為此事件僅在工具執行後發出拒絕的呼叫不會產生工具結果

636* `decision_source`:決定來源。`"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。詳見[工具決定事件](#tool-decision-event)以了解每個值的含義。拒絕專用來源 `"user_abort"` 和 `"user_reject"` 永遠不會出現在此事件上。656* `decision_source`:決定來源。`"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。詳見[工具決定事件](#tool-decision-event)以了解每個值的含義。拒絕專用來源 `"user_abort"` 和 `"user_reject"` 永遠不會出現在此事件上。

637* `tool_input_size_bytes`:JSON 序列化工具輸入的大小(位元組)657* `tool_input_size_bytes`:JSON 序列化工具輸入的大小(位元組)

638* `tool_result_size_bytes`:工具結果的大小(位元組)658* `tool_result_size_bytes`:工具結果的大小(位元組)


659* `event.name`:`"api_request"`679* `event.name`:`"api_request"`

660* `event.timestamp`:ISO 8601 時間戳680* `event.timestamp`:ISO 8601 時間戳

661* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件681* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件

662* `model`:使用的模型(例如,"claude-sonnet-4-6")682* `model`:使用的模型(例如,"claude-sonnet-5")

663* `cost_usd`:估計成本(美元)683* `cost_usd`:估計成本(美元)

664* `duration_ms`:請求持續時間(毫秒)684* `duration_ms`:請求持續時間(毫秒)

665* `input_tokens`:輸入權杖數685* `input_tokens`:輸入權杖數


686* `event.name`:`"api_error"`706* `event.name`:`"api_error"`

687* `event.timestamp`:ISO 8601 時間戳707* `event.timestamp`:ISO 8601 時間戳

688* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件708* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件

689* `model`:使用的模型(例如,"claude-sonnet-4-6")709* `model`:使用的模型(例如,"claude-sonnet-5")

690* `error`:錯誤訊息710* `error`:錯誤訊息

691* `status_code`:HTTP 狀態碼(數字形式)。對於非 HTTP 錯誤(例如連線失敗),不存在。711* `status_code`:HTTP 狀態碼(數字形式)。對於非 HTTP 錯誤(例如連線失敗),不存在。

692* `duration_ms`:請求持續時間(毫秒)712* `duration_ms`:請求持續時間(毫秒)


1187 稽核安全事件1207 稽核安全事件

1188</h2>1208</h2>

1189 1209 

1190OpenTelemetry 事件是 Claude Code 活動的稽核資料來源。每個事件都帶有身份屬性,將工具呼叫、MCP 活動和權限決定與觸發它們的使用者相關聯OTLP 日誌匯出器可以將這些事件傳遞到任何具有 OTLP 接收器的安全資訊和事件管理 (SIEM) 平台或轉發到您的 SIEM 的 OpenTelemetry Collector。1210OpenTelemetry 事件是 Claude Code 活動的稽核資料來源。每個事件都帶有身份屬性,將工具呼叫、MCP 活動和權限決定與觸發它們的使用者相關聯OTLP 日誌匯出器可以將這些事件傳遞到任何具有 OTLP 接收器的安全資訊和事件管理 (SIEM) 平台,或轉發到您的 SIEM 的 OpenTelemetry Collector。

1191 1211 

1192<h3 id="attribute-actions-to-users">1212<h3 id="attribute-actions-to-users">

1193 將屬性操作歸因於使用者1213 將屬性操作歸因於使用者

1194</h3>1214</h3>

1195 1215 

1196每個事件上的[標準屬性](#standard-attributes)包括已驗證使用者的身份:使用 Claude 帳戶登入時的 `user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`,加上安裝範圍的 `user.id` 和每個工作階段的 `session.id`。1216每個事件上的[標準屬性](#standard-attributes)包括已驗證使用者的身份:使用 Claude 帳戶登入時的 `user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`,加上 `user.id` 和每個工作階段的 `session.id`。`user.id` 是安裝範圍的識別碼,除了在 [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段上,其中它是來自閘道簽發令牌的 IdP 主體。

1197 1217 

1198MCP 工具呼叫、Bash 命令和檔案編輯因此歸因於啟動工作階段的開發人員。Claude Code 不在單獨的服務帳戶下運作;每個事件上記錄的身份是開發人員自己的 Claude 帳戶。1218MCP 工具呼叫、Bash 命令和檔案編輯因此歸因於啟動工作階段的開發人員。Claude Code 不在單獨的服務帳戶下運作;每個事件上記錄的身份是開發人員自己的 Claude 帳戶,或開發人員在 [Claude apps gateway](/zh-TW/claude-apps-gateway) 工作階段上的 IdP 身份

1199 1219 

1200當 Claude Code 使用直接 API 金鑰進行身份驗證,或針對 Bedrock、Vertex AI 或 Microsoft Foundry 進行身份驗證時,工作階段中沒有 Claude 帳戶,僅填充 `user.id` 和 `session.id`。在這些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自行附加使用者身份,透過[受管設定](#administrator-configuration)檔案或啟動包裝器按使用者設定:1220當 Claude Code 使用直接 API 金鑰進行身份驗證,或針對 Bedrock、Vertex AI 或 Microsoft Foundry 進行身份驗證時,工作階段中沒有 Claude 帳戶,僅填充 `user.id` 和 `session.id`。在這些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自行附加使用者身份,透過[受管設定](#administrator-configuration)檔案或啟動包裝器按使用者設定。Claude apps gateway 工作階段不需要任何這些CLI 會自動標記 IdP 身份,如[標準屬性](#standard-attributes)中所述。

1201 1221 

1202```bash theme={null}1222```bash theme={null}

1203export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1223export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."


1319* 原始檔案內容和程式碼片段不包含在指標或事件中。追蹤跨度是單獨的資料路徑:請參閱下面的 `OTEL_LOG_TOOL_CONTENT` 項目1339* 原始檔案內容和程式碼片段不包含在指標或事件中。追蹤跨度是單獨的資料路徑:請參閱下面的 `OTEL_LOG_TOOL_CONTENT` 項目

1320* 透過 OAuth 驗證時,`user.email` 包含在遙測屬性中。如果這對您的組織是個問題,請與您的遙測後端合作以篩選或編輯此欄位1340* 透過 OAuth 驗證時,`user.email` 包含在遙測屬性中。如果這對您的組織是個問題,請與您的遙測後端合作以篩選或編輯此欄位

1321* 預設不收集使用者提示內容。僅記錄提示長度。若要包含提示內容,請設定 `OTEL_LOG_USER_PROMPTS=1`1341* 預設不收集使用者提示內容。僅記錄提示長度。若要包含提示內容,請設定 `OTEL_LOG_USER_PROMPTS=1`

1342* 助理回應文字預設不收集。僅記錄回應長度。若要包含回應文字,請設定 `OTEL_LOG_ASSISTANT_RESPONSES=1`。如同 Claude Code 的所有 OpenTelemetry 資料,回應文字僅傳送到您配置的 OTel 端點,絕不會傳送到 Anthropic。當此變數未設定時,`OTEL_LOG_USER_PROMPTS` 會用作備用方案,因此如果您想要提示內容而不要回應內容,請設定 `OTEL_LOG_ASSISTANT_RESPONSES=0`

1322* 工具輸入引數和參數預設不記錄。若要包含它們,請設定 `OTEL_LOG_TOOL_DETAILS=1`。此資料僅傳送到您配置的 OTEL 端點,絕不會傳送到 Anthropic。引數仍可能包含敏感值,因此請根據需要配置您的遙測後端以篩選或編輯這些屬性。啟用時:1343* 工具輸入引數和參數預設不記錄。若要包含它們,請設定 `OTEL_LOG_TOOL_DETAILS=1`。此資料僅傳送到您配置的 OTEL 端點,絕不會傳送到 Anthropic。引數仍可能包含敏感值,因此請根據需要配置您的遙測後端以篩選或編輯這些屬性。啟用時:

1323 * `tool_result` 和 `tool_decision` 事件包含 `tool_parameters` 屬性,其中包含 Bash 命令、MCP 伺服器和工具名稱以及技能名稱。`full_command` 等欄位未截斷地發出1344 * `tool_result` 和 `tool_decision` 事件包含 `tool_parameters` 屬性,其中包含 Bash 命令、MCP 伺服器和工具名稱以及技能名稱。`full_command` 等欄位未截斷地發出

1324 * `tool_result` 事件另外包含 `tool_input` 屬性,其中包含檔案路徑、URL、搜尋模式和其他引數。超過 512 個字元的個別值會被截斷,總計上限約為 4 K 字元1345 * `tool_result` 事件另外包含 `tool_input` 屬性,其中包含檔案路徑、URL、搜尋模式和其他引數。超過 512 個字元的個別值會被截斷,總計上限約為 4 K 字元

Details

63 CA 憑證存放區63 CA 憑證存放區

64</h2>64</h2>

65 65 

66根據預設,Claude Code 信任其捆綁的 Mozilla CA 憑證和您作業系統的憑證存放區。企業 TLS 檢查代理(例如 CrowdStrike Falcon 和 Zscaler)在其根憑證安裝在作業系統信任存放區中時無需額外設定即可運作66根據預設,Claude Code 信任其捆綁的 Mozilla CA 憑證和您作業系統的憑證存放區。讀取作業系統存放區需要具有 `tls.getCACertificates` 的執行時環境:原生安裝程式始終具有它,npm 安裝需要 Node 22.15 或更新版本。在較舊的 Node 版本上,只有捆綁的集合和 `NODE_EXTRA_CA_CERTS` 適用。企業 TLS 檢查代理(例如 CrowdStrike Falcon 和 Zscaler)在其根憑證安裝在作業系統信任存放區中且執行時可以讀取它時,無需額外設定即可運作

67 67 

68`CLAUDE_CODE_CERT_STORE` 接受以逗號分隔的來源清單。認可的值為 `bundled`(Claude Code 隨附的 Mozilla CA 集合)和 `system`(作業系統信任存放區)。預設值為 `bundled,system`。68`CLAUDE_CODE_CERT_STORE` 接受以逗號分隔的來源清單。認可的值為 `bundled`(Claude Code 隨附的 Mozilla CA 集合)和 `system`(作業系統信任存放區)。預設值為 `bundled,system`。

69 69 


131 131 

132Claude Code 預設也會傳送選用的操作遙測,您可以使用環境變數停用此功能。請參閱[遙測服務](/zh-TW/data-usage#telemetry-services)以了解如何在完成允許清單之前停用它。132Claude Code 預設也會傳送選用的操作遙測,您可以使用環境變數停用此功能。請參閱[遙測服務](/zh-TW/data-usage#telemetry-services)以了解如何在完成允許清單之前停用它。

133 133 

134使用 [Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Vertex AI](/zh-TW/google-vertex-ai)[Microsoft Foundry](/zh-TW/microsoft-foundry) 模型流量和驗證會傳送到您的提供者,而不是 `api.anthropic.com`、`claude.ai` 或 `platform.claude.com`。WebFetch 工具仍會呼叫 `api.anthropic.com` 進行其[網域安全檢查](/zh-TW/data-usage#webfetch-domain-safety-check),除非您在[設定](/zh-TW/settings)中設定 `skipWebFetchPreflight: true`。134使用 [Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Vertex AI](/zh-TW/google-vertex-ai)[Microsoft Foundry](/zh-TW/microsoft-foundry) 或已登入的 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway)工作階段時模型流量和驗證會傳送到您的提供者或閘道,而不是 `api.anthropic.com`、`claude.ai` 或 `platform.claude.com`。WebFetch 工具仍會呼叫 `api.anthropic.com` 進行其[網域安全檢查](/zh-TW/data-usage#webfetch-domain-safety-check),除非您在[設定](/zh-TW/settings)中設定 `skipWebFetchPreflight: true`。

135 135 

136[Claude Code on the web](/zh-TW/claude-code-on-the-web) 和 [Code Review](/zh-TW/code-review) 從 Anthropic 管理的基礎設施連線到您的儲存庫。如果您的 GitHub Enterprise Cloud 組織按 IP 位址限制存取,請啟用[已安裝 GitHub Apps 的 IP 允許清單繼承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)。Claude GitHub App 會註冊其 IP 範圍,因此啟用此設定可允許存取而無需手動設定。若要[手動將範圍新增到允許清單](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address),或設定其他防火牆,請參閱 [Anthropic API IP 位址](https://platform.claude.com/docs/en/api/ip-addresses)。136[Claude Code on the web](/zh-TW/claude-code-on-the-web) 和 [Code Review](/zh-TW/code-review) 從 Anthropic 管理的基礎設施連線到您的儲存庫。如果您的 GitHub Enterprise Cloud 組織按 IP 位址限制存取,請啟用[已安裝 GitHub Apps 的 IP 允許清單繼承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)。Claude GitHub App 會註冊其 IP 範圍,因此啟用此設定可允許存取而無需手動設定。若要[手動將範圍新增到允許清單](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address),或設定其他防火牆,請參閱 [Anthropic API IP 位址](https://platform.claude.com/docs/en/api/ip-addresses)。

137 137 

Details

37 <Tab title="CLI">37 <Tab title="CLI">

38 **在會話期間**:按 `Shift+Tab` 循環 `default` → `acceptEdits` → `plan`。目前模式出現在狀態欄中。並非每種模式都在預設循環中:38 **在會話期間**:按 `Shift+Tab` 循環 `default` → `acceptEdits` → `plan`。目前模式出現在狀態欄中。並非每種模式都在預設循環中:

39 39 

40 * `auto`:當您的帳戶符合 [auto 模式要求](#eliminate-prompts-with-auto-mode)時出現;循環到 auto 會顯示選擇加入提示,直到您接受它,或選擇**否,不要再問**以從循環中移除 auto40 * `auto`:當您的帳戶符合 [auto 模式要求](#eliminate-prompts-with-auto-mode)時出現;循環到它會在不確認提示的情況下切換模式

41 * `bypassPermissions`:在您使用 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions` 或 `--allow-dangerously-skip-permissions` 啟動後出現;`--allow-` 變體將模式添加到循環中而不啟動它41 * `bypassPermissions`:在您使用 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions` 或 `--allow-dangerously-skip-permissions` 啟動後出現;`--allow-` 變體將模式添加到循環中而不啟動它

42 * `dontAsk`:永遠不在循環中出現;使用 `--permission-mode dontAsk` 設定它42 * `dontAsk`:永遠不在循環中出現;使用 `--permission-mode dontAsk` 設定它

43 43 


188 188 

189* **計劃**:所有計劃。189* **計劃**:所有計劃。

190* **擁有者**:在 Team 和 Enterprise 上,擁有者必須在 [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code)中啟用它,使用者才能打開它。管理員也可以通過在[受管設定](/zh-TW/permissions#managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來鎖定它。190* **擁有者**:在 Team 和 Enterprise 上,擁有者必須在 [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code)中啟用它,使用者才能打開它。管理員也可以通過在[受管設定](/zh-TW/permissions#managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來鎖定它。

191* **模型**:在 Anthropic API 上,Claude Opus 4.6 或更新版本,或 Sonnet 4.6。在 Amazon Bedrock、Google Cloud Vertex AIMicrosoft Foundry ,僅支援 Claude Opus 4.7 和 Opus 4.8。不支援較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不支援。191* **模型**:在 Anthropic API 上,Claude Opus 4.6 或更新版本,或 Sonnet 4.6 或更新版本。在 Amazon Bedrock、Google Cloud Vertex AIMicrosoft Foundry 和已登入的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 會話上,僅支援 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。不支援較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不支援。

192* **提供商**:在 Anthropic API 上預設可用。在 Amazon Bedrock、Google Cloud Vertex AIMicrosoft Foundry ,auto mode 關閉,直到您[設定 `CLAUDE_CODE_ENABLE_AUTO_MODE`](#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)。192* **提供商**:在 Anthropic API 上預設可用。在 Amazon Bedrock、Google Cloud Vertex AIMicrosoft Foundry 和已登入的 Claude apps gateway 會話上,auto mode 關閉,直到您[設定 `CLAUDE_CODE_ENABLE_AUTO_MODE`](#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)。

193 193 

194如果 Claude Code 報告 auto mode 不可用,其中一項要求未滿足;這不是暫時性中斷。單獨的訊息命名模型並說 auto mode「無法確定」操作的安全性是暫時性分類器中斷;請參閱[錯誤參考](/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)。194如果 Claude Code 報告 auto mode 不可用,其中一項要求未滿足;這不是暫時性中斷。單獨的訊息命名模型並說 auto mode「無法確定」操作的安全性是暫時性分類器中斷;請參閱[錯誤參考](/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

195 195 


199 在 Bedrock、Vertex AI 或 Foundry 上啟用 auto mode199 在 Bedrock、Vertex AI 或 Foundry 上啟用 auto mode

200</h3>200</h3>

201 201 

202在 [Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Cloud Vertex AI](/zh-TW/google-vertex-ai)[Microsoft Foundry](/zh-TW/microsoft-foundry) ,auto mode 不會出現在 `Shift+Tab` 循環中,直到 `CLAUDE_CODE_ENABLE_AUTO_MODE` 設定為 `1`。該變數在 Claude Code v2.1.158 及更新版本中有效。這些提供商上僅支援 Claude Opus 4.7 和 Opus 4.8。202在 [Amazon Bedrock](/zh-TW/amazon-bedrock)、[Google Cloud Vertex AI](/zh-TW/google-vertex-ai)[Microsoft Foundry](/zh-TW/microsoft-foundry) 和已登入的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 會話上,auto mode 不會出現在 `Shift+Tab` 循環中,直到 `CLAUDE_CODE_ENABLE_AUTO_MODE` 設定為 `1`。該變數在 Claude Code v2.1.158 及更新版本中有效。這些提供商上僅支援 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。

203 203 

204若要為一個開發人員啟用它,請將變數添加到 `~/.claude/settings.json` 中的 `env` 區塊:204若要為一個開發人員啟用它,請將變數添加到 `~/.claude/settings.json` 中的 `env` 區塊:

205 205 


217 217 

218若要防止開發人員啟用 auto mode,請在受管設定中將 `disableAutoMode` 設定為 `"disable"`。這會覆蓋啟用變數。218若要防止開發人員啟用 auto mode,請在受管設定中將 `disableAutoMode` 設定為 `"disable"`。這會覆蓋啟用變數。

219 219 

220如果您通過配置了 `ANTHROPIC_BASE_URL` 的 [LLM gateway](/zh-TW/llm-gateway) 連接,auto mode 可能已經可以在沒有啟用變數的情況下到達,因為網關通過 Anthropic API 路由請求。`disableAutoMode` 設定在該配置中以相同方式應用220如果您通過配置了 `ANTHROPIC_BASE_URL` 的 [LLM gateway](/zh-TW/llm-gateway) 連接,auto mode 可能已經可以在沒有啟用變數的情況下到達,因為網關通過 Anthropic API 路由請求。這不適用於已登入的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 會話,它是自己的提供商類別,需要啟用變數。`disableAutoMode` 設定在任一配置中以相同方式應用

221 221 

222<h3 id="what-the-classifier-blocks-by-default">222<h3 id="what-the-classifier-blocks-by-default">

223 分類器預設阻止的內容223 分類器預設阻止的內容


239* `git commit --amend`,當 HEAD 的提交不是在此會話中建立的239* `git commit --amend`,當 HEAD 的提交不是在此會話中建立的

240* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用會銷毀資源的計劃240* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用會銷毀資源的計劃

241 241 

242Claude Code v2.1.195 及更新版本預設阻止更多類別。有些取決於[環境](/zh-TW/auto-mode-config#define-trusted-infrastructure)項目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。

243 

244* 寫入密鑰管理器,或變更 DNS 記錄或 TLS 憑證

245* 合併人類未批准的拉取請求、批准 Claude 自己的拉取請求,或禁用 CI 檢查

246* 發佈本身是自動化命令的評論,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`

247* 切換、調整或刪除生產功能旗標

248* 將基礎設施變更應用到受保護的 IaC 範圍,或排空和移除叢集節點

249* 寫入超出您命名的資源的共享計算叢集,例如標籤選擇器或 `--all` 捕捉其他使用者的工作

250* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和准入 webhooks

251* 互動式 shell 或連接埠轉發到敏感遠端目標

252* 開啟隧道或反向 shell,使本地服務可從公開網際網路到達

253* 將即時認證或令牌列印到記錄或檔案

254* 存取 PII 或受管制資料位置,或從其中複製資料

255* 繞過您的內部套件登錄將套件安裝路由到公開登錄

256* 執行帶有標誌的命令,該標誌會解除安全防護,如 `--insecure`

257* [Chrome 中的 Claude](/zh-TW/chrome) 瀏覽器操作,可能會將頁面內容、Cookie 或認證發送到跨來源

258 

242**預設允許**:259**預設允許**:

243 260 

244* 工作目錄中的本地檔案操作261* 工作目錄中的本地檔案操作


247* 唯讀 HTTP 請求264* 唯讀 HTTP 請求

248* 推送到您啟動的分支或 Claude 建立的分支265* 推送到您啟動的分支或 Claude 建立的分支

249 266 

267Claude Code v2.1.195 及更新版本也預設允許這些:

268 

269* 刪除 Claude 在同一會話中稍早建立的確切工作

270* 作為您的任務的一部分,讀取、審查或編寫安全相關的程式碼、配置和威脅模型

271* 在同一多代理會話中協同工作的代理之間的訊息

272* 將資料發送到您在 [`environment`](/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任網域、儲存桶和服務。這僅涵蓋資料流,不涵蓋相同基礎設施上的破壞性或認證操作

273* [Chrome 中的 Claude](/zh-TW/chrome) 導航到受信任的內部網域、localhost 或您命名的 URL

274 

250沙箱網路存取請求通過分類器路由,而不是預設允許。執行 `claude auto-mode defaults` 以查看完整規則列表。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定添加受信任的倉庫、儲存桶和服務:請參閱[配置 auto mode](/zh-TW/auto-mode-config)。275沙箱網路存取請求通過分類器路由,而不是預設允許。執行 `claude auto-mode defaults` 以查看完整規則列表。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定添加受信任的倉庫、儲存桶和服務:請參閱[配置 auto mode](/zh-TW/auto-mode-config)。

251 276 

252<h3 id="boundaries-you-state-in-conversation">277<h3 id="boundaries-you-state-in-conversation">

permissions.md +29 −18

Details

24 管理權限24 管理權限

25</h2>25</h2>

26 26 

27您可以使用 `/permissions` 檢視和管理 Claude Code 的工具權限。此 UI 列出所有權限規則及其來源的 settings.json 檔案。27您可以使用 `/permissions` 檢視和管理 Claude Code 的工具權限。此 UI 列出所有權限規則及其來源的 `settings.json` 檔案。

28 28 

29* **Allow** 規則讓 Claude Code 使用指定的工具,無需手動批准。29* **Allow** 規則讓 Claude Code 使用指定的工具,無需手動批准。

30* **Ask** 規則在 Claude Code 嘗試使用指定工具時提示確認。30* **Ask** 規則在 Claude Code 嘗試使用指定工具時提示確認。

31* **Deny** 規則防止 Claude Code 使用指定的工具。31* **Deny** 規則防止 Claude Code 使用指定的工具。

32 32 

33規則按順序評估:deny、ask,然後 allow。該順序中的第一個符合項決定結果,規則特異性不會改變順序。符合的 deny 規則(例如 `Bash(aws *)`)會阻止每個符合的呼叫,包括也符合較窄 allow 規則(例如 `Bash(aws s3 ls)`)的呼叫,因此 deny 規則無法攜帶允許清單例外。ask 和 allow 之間也適用相同的優先順序:符合的 ask 規則即使有更具體的 allow 規則也符合相同的呼叫時,也會提示。33規則按順序評估:deny、ask,然後 allow。該順序中的第一個符合項決定結果,規則特異性不會改變順序。

34 

35一個廣泛的 deny 規則(例如 `Bash(aws *)`)會阻止每個符合的呼叫,包括也符合較窄 allow 規則(例如 `Bash(aws s3 ls)`)的呼叫,因此 deny 規則無法攜帶允許清單例外。ask 和 allow 之間也適用相同的優先順序:符合的 ask 規則即使有更具體的 allow 規則也符合相同的呼叫時,也會提示。

34 36 

35Deny 規則的行為取決於它們是否命名工具或在工具內限定模式。像 `Bash` 這樣的裸工具名稱會將工具從 Claude 的上下文中完全移除,因此 Claude 永遠看不到它。像 `Bash(rm *)` 這樣的限定規則會保留工具可用性,並在 Claude 嘗試時阻止符合的呼叫。37Deny 規則的行為取決於它們是否命名工具或在工具內限定模式。像 `Bash` 這樣的裸工具名稱會將工具從 Claude 的上下文中完全移除,因此 Claude 永遠看不到它。像 `Bash(rm *)` 這樣的限定規則會保留工具可用性,並在 Claude 嘗試時阻止符合的呼叫。

36 38 


54| `bypassPermissions` | 跳過權限提示,但明確的 `ask` 規則強制的提示除外。根目錄和主目錄移除(例如 `rm -rf /`)仍會作為斷路器提示 |56| `bypassPermissions` | 跳過權限提示,但明確的 `ask` 規則強制的提示除外。根目錄和主目錄移除(例如 `rm -rf /`)仍會作為斷路器提示 |

55 57 

56<Warning>58<Warning>

57 `bypassPermissions` 模式會跳過權限提示,包括對 `.git`、`.config/git`、`.claude`、`.vscode`、`.idea`、`.husky`、`.cargo`、`.devcontainer`、`.yarn` 和 `.mvn` 的寫入。明確的 `ask` 規則仍會強制提示,針對檔案系統根目錄或主目錄的移除(例如 `rm -rf /` 和 `rm -rf ~`)仍會作為斷路器提示以防止模型錯誤。僅在隔離環境(如容器或虛擬機)中使用此模式,其中 Claude Code 無法造成損害。管理員可以透過在 [managed settings](#managed-settings) 中將 `permissions.disableBypassPermissionsMode` 設定為 `"disable"` 來防止此模式。59 `bypassPermissions` 模式會跳過權限提示,包括對 `.git`、`.config/git`、`.claude`、`.vscode`、`.idea`、`.husky`、`.cargo`、`.devcontainer`、`.yarn` 和 `.mvn` 的寫入。明確的 `ask` 規則仍會強制提示,針對檔案系統根目錄或主目錄的移除(例如 `rm -rf /` 和 `rm -rf ~`)仍會作為斷路器提示以防止模型錯誤。僅在隔離環境(如容器或虛擬機)中使用此模式,其中 Claude Code 無法造成損害。

58</Warning>60</Warning>

59 61 

60若要防止 `bypassPermissions` 或 `auto` 模式被使用,請在任何 [settings file](/zh-TW/settings#settings-files) 中將 `permissions.disableBypassPermissionsMode` 或 `permissions.disableAutoMode` 設定為 `"disable"`。這些在 [managed settings](#managed-settings) 中最有用,因為它們無法被覆蓋。62若要防止 `bypassPermissions` 或 `auto` 模式被使用,請在任何 [settings file](/zh-TW/settings#settings-files) 中將 `permissions.disableBypassPermissionsMode` 或 `permissions.disableAutoMode` 設定為 `"disable"`。這些在 [managed settings](#managed-settings) 中最有用,因為它們無法被覆蓋。


95 按輸入參數進行符合97 按輸入參數進行符合

96</h3>98</h3>

97 99 

98拒絕和詢問規則可以使用 `Tool(param:value)` 符合任何工具上的頂層輸入參數。當 Claude 呼叫該工具且該參數設定為該確切值時,規則會符合。此語法適用於拒絕和詢問規則;單一參數值的允許規則不會確立該呼叫整體是安全的,因此允許規則繼續使用每個工具自己的指定符語法。這適用於工具接受的任何純量參數:100拒絕和詢問規則可以使用 `Tool(param:value)` 符合任何工具上的頂層輸入參數。當 Claude 呼叫該工具且該參數設定為該確切值時,規則會符合。允許規則對於一個參數值不會確立該呼叫整體是安全的,因此允許規則繼續使用每個工具自己的指定符語法。這適用於工具接受的任何純量參數:

99 101 

100| 規則 | 符合 |102| 規則 | 符合 |

101| :----------------------------- | :------------------------- |103| :----------------------------- | :------------------------- |


220 222 

221 * URL 前的選項:`curl -X GET http://github.com/...`223 * URL 前的選項:`curl -X GET http://github.com/...`

222 * 不同的協定:`curl https://github.com/...`224 * 不同的協定:`curl https://github.com/...`

223 * 重新導向:`curl -L http://bit.ly/xyz`(重新導向到 github225 * 重新導向:`curl -L http://bit.ly/xyz`(重新導向到 GitHub

224 * 變數:`URL=http://github.com && curl $URL`226 * 變數:`URL=http://github.com && curl $URL`

225 * 額外空格:`curl http://github.com`227 * 額外空格:`curl http://github.com`

226 228 


270Read 和 Edit 規則都遵循 [gitignore](https://git-scm.com/docs/gitignore) 規格,具有四種不同的模式類型:272Read 和 Edit 規則都遵循 [gitignore](https://git-scm.com/docs/gitignore) 規格,具有四種不同的模式類型:

271 273 

272| 模式 | 意義 | 範例 | 符合 |274| 模式 | 意義 | 範例 | 符合 |

273| ----------------- | ------------------ | -------------------------------- | ------------------------------ |275| ----------------- | -------------- | -------------------------------- | ------------------------------ |

274| `//path` | 來自檔案系統根目錄的**絕對**路徑 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |276| `//path` | 來自檔案系統根目錄的絕對路徑 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

275| `~/path` | 來自**主目錄**的路徑 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |277| `~/path` | 來自主目錄的路徑 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

276| `/path` | **相對於專案根目錄**的路徑 | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |278| `/path` | 相對於專案根目錄的路徑 | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |

277| `path` 或 `./path` | **相對於目前目錄**的路徑 | `Read(*.env)` | `<cwd>/*.env` |279| `path` 或 `./path` | 相對於目前目錄的路徑 | `Read(*.env)` | `<cwd>/*.env` |

278 280 

279<Warning>281<Warning>

280 像 `/Users/alice/file` 這樣的模式不是絕對路徑。它相對於專案根目錄。使用 `//Users/alice/file` 表示絕對路徑。282 像 `/Users/alice/file` 這樣的模式不是絕對路徑。它相對於專案根目錄。使用 `//Users/alice/file` 表示絕對路徑。


323 MCP325 MCP

324</h3>326</h3>

325 327 

326* `mcp__puppeteer` 符合由 `puppeteer` 伺服器提供的任何工具(在 Claude Code 中設定的名稱)328MCP 規則使用在 Claude Code 中設定的伺服器名稱,選擇性地後跟來自該伺服器的工具名稱。

327* `mcp__puppeteer__*` 萬用字元語法,也符合來自 `puppeteer` 伺服器的所有工具329 

330* `mcp__puppeteer` 符合由 `puppeteer` 伺服器提供的任何工具

331* `mcp__puppeteer__*` 使用萬用字元語法,也符合來自 `puppeteer` 伺服器的所有工具

328* `mcp__puppeteer__puppeteer_navigate` 符合由 `puppeteer` 伺服器提供的 `puppeteer_navigate` 工具332* `mcp__puppeteer__puppeteer_navigate` 符合由 `puppeteer` 伺服器提供的 `puppeteer_navigate` 工具

329 333 

330<h3 id="agent-subagents">334<h3 id="agent-subagents">


418 422 

419權限和 [sandboxing](/zh-TW/sandboxing) 是互補的安全層:423權限和 [sandboxing](/zh-TW/sandboxing) 是互補的安全層:

420 424 

421* **權限**控制 Claude Code 可以使用哪些工具以及它可以存取哪些檔案或網域。它們適用於所有工具Bash、Read、Edit、WebFetch、MCP 和其他)425* **權限**控制 Claude Code 可以使用哪些工具以及它可以存取哪些檔案或網域。它們適用於所有工具,包括 Bash、Read、Edit、WebFetch 和 MCP

422* **沙箱**提供作業系統級別的強制執行,限制 Bash 工具的檔案系統和網路存取。它僅適用於 Bash 命令及其子程序。426* **沙箱**提供作業系統級別的強制執行,限制 Bash 工具的檔案系統和網路存取。它僅適用於 Bash 命令及其子程序。

423 427 

424使用兩者進行深度防禦:428使用兩者進行深度防禦:


428* 沙箱中的檔案系統限制結合 [`sandbox.filesystem`](/zh-TW/sandboxing) 設定與 Read 和 Edit deny 規則;兩者都合併到最終沙箱邊界中432* 沙箱中的檔案系統限制結合 [`sandbox.filesystem`](/zh-TW/sandboxing) 設定與 Read 和 Edit deny 規則;兩者都合併到最終沙箱邊界中

429* 網路限制結合 WebFetch 權限規則與沙箱的 `allowedDomains` 和 `deniedDomains` 清單433* 網路限制結合 WebFetch 權限規則與沙箱的 `allowedDomains` 和 `deniedDomains` 清單

430 434 

431當沙箱啟用 `autoAllowBashIfSandboxed: true`(預設值)時,沙箱化 Bash 命令無需提示即可執行,即使您的權限包括 bare `Bash` ask 規則,或 [等效的 `Bash(*)` 形式](#match-all-uses-of-a-tool):沙箱邊界替代整個工具提示。內容範圍的 ask 規則(如 `Bash(git push *)`)仍然強制提示,明確的 deny 規則仍然適用,以及針對 `/`、您的主目錄或其他關鍵系統路徑的 `rm` 或 `rmdir` 命令仍然會觸發提示。不會在沙箱中執行的命令(例如排除的命令)會遵守 bare `Bash` ask 規則。請參閱 [sandbox modes](/zh-TW/sandboxing#sandbox-modes) 以變更此行為。435當沙箱啟用 `autoAllowBashIfSandboxed: true`(預設值)時,沙箱化 Bash 命令無需提示即可執行,即使您的權限包括 bare `Bash` ask 規則,或 [等效的 `Bash(*)` 形式](#match-all-uses-of-a-tool):沙箱邊界替代整個工具提示。這些檢查仍然適用:

436 

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

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

439* 針對 `/`、您的主目錄或其他關鍵系統路徑的 `rm` 或 `rmdir` 命令仍然會觸發提示

440 

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

432 442 

433<h2 id="managed-settings">443<h2 id="managed-settings">

434 受管理設定444 受管理設定

435</h2>445</h2>

436 446 

437對於需要集中控制 Claude Code 設定的組織,管理員可以部署無法被使用者或專案設定覆蓋的受管理設定。這些原則設定遵循與一般設定檔案相同的格式,可以透過 MDM/OS 級別原則、受管理設定檔案或 [server-managed settings](/zh-TW/server-managed-settings) 傳遞。請參閱 [settings files](/zh-TW/settings#settings-files) 以了解傳遞機制和檔案位置。447對於需要集中控制 Claude Code 設定的組織,管理員可以部署無法被使用者或專案設定覆蓋的受管理設定。這些原則設定遵循與一般設定檔案相同的格式,可以透過 MDM/OS 級別原則、受管理設定檔案、[server-managed settings](/zh-TW/server-managed-settings) 或自我託管的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 傳遞。請參閱 [settings files](/zh-TW/settings#settings-files) 以了解傳遞機制和檔案位置。

438 448 

439<h3 id="managed-only-settings">449<h3 id="managed-only-settings">

440 僅受管理的設定450 僅受管理的設定


443以下設定僅在受管理設定中有效。將它們放在使用者或專案設定檔案中沒有效果。453以下設定僅在受管理設定中有效。將它們放在使用者或專案設定檔案中沒有效果。

444 454 

445| 設定 | 描述 |455| 設定 | 描述 |

446| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |456| :--------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

447| `allowAllClaudeAiMcps` | 當為 `true` 時,claude.ai 連接器會與已部署的 `managed-mcp.json` 一起載入,而不是被其獨佔控制所抑制。請參閱 [Managed MCP configuration](/zh-TW/managed-mcp) |457| `allowAllClaudeAiMcps` | 當為 `true` 時,claude.ai 連接器會與已部署的 `managed-mcp.json` 一起載入,而不是被其獨佔控制所抑制。請參閱 [Managed MCP configuration](/zh-TW/managed-mcp) |

448| `allowedChannelPlugins` | 可能推送訊息的頻道外掛的允許清單。設定時替換預設 Anthropic 允許清單。需要 `channelsEnabled: true`。請參閱 [Restrict which channel plugins can run](/zh-TW/channels#restrict-which-channel-plugins-can-run) |458| `allowedChannelPlugins` | 可能推送訊息的頻道外掛的允許清單。設定時替換預設 Anthropic 允許清單。需要 `channelsEnabled: true`。請參閱 [Restrict which channel plugins can run](/zh-TW/channels#restrict-which-channel-plugins-can-run) |

449| `allowManagedHooksOnly` | 當為 `true` 時,僅載入受管理 hooks、SDK hooks 和在受管理設定 `enabledPlugins` 中強制啟用的外掛中的 hooks。使用者、專案和所有其他外掛 hooks 被阻止 |459| `allowManagedHooksOnly` | 當為 `true` 時,僅載入受管理 hooks、SDK hooks 和在受管理設定 `enabledPlugins` 中強制啟用的外掛中的 hooks。使用者、專案和所有其他外掛 hooks 被阻止 |


451| `allowManagedPermissionRulesOnly` | 當為 `true` 時,防止使用者和專案設定定義 `allow`、`ask` 或 `deny` 權限規則。僅套用受管理設定中的規則。不影響 MCP 伺服器允許清單;如需設定,請設定 `allowManagedMcpServersOnly` |461| `allowManagedPermissionRulesOnly` | 當為 `true` 時,防止使用者和專案設定定義 `allow`、`ask` 或 `deny` 權限規則。僅套用受管理設定中的規則。不影響 MCP 伺服器允許清單;如需設定,請設定 `allowManagedMcpServersOnly` |

452| `blockedMarketplaces` | 市場來源的封鎖清單。在下載前檢查被封鎖的來源,因此它們永遠不會接觸檔案系統。請參閱 [managed marketplace restrictions](/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) |462| `blockedMarketplaces` | 市場來源的封鎖清單。在下載前檢查被封鎖的來源,因此它們永遠不會接觸檔案系統。請參閱 [managed marketplace restrictions](/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) |

453| `channelsEnabled` | 允許組織使用 [channels](/zh-TW/channels)。請參閱 [enterprise controls](/zh-TW/channels#enterprise-controls) 以了解每個方案的預設值 |463| `channelsEnabled` | 允許組織使用 [channels](/zh-TW/channels)。請參閱 [enterprise controls](/zh-TW/channels#enterprise-controls) 以了解每個方案的預設值 |

464| `disableSideloadFlags` | {/* min-version: 2.1.193 */}在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 旗標。沒有這個設定,使用者可以透過傳遞這些旗標來為單次執行繞過 `strictKnownMarketplaces`。請參閱 [`disableSideloadFlags`](/zh-TW/settings#available-settings)。需要 Claude Code v2.1.193 或更新版本 |

454| `forceRemoteSettingsRefresh` | 當為 `true` 時,阻止 CLI 啟動直到遠端受管理設定被新鮮擷取,如果擷取失敗則退出。請參閱 [fail-closed enforcement](/zh-TW/server-managed-settings#enforce-fail-closed-startup) |465| `forceRemoteSettingsRefresh` | 當為 `true` 時,阻止 CLI 啟動直到遠端受管理設定被新鮮擷取,如果擷取失敗則退出。請參閱 [fail-closed enforcement](/zh-TW/server-managed-settings#enforce-fail-closed-startup) |

455| `pluginTrustMessage` | 自訂訊息,附加到安裝前顯示的外掛信任警告 |466| `pluginTrustMessage` | 自訂訊息,附加到安裝前顯示的外掛信任警告 |

456| `sandbox.filesystem.allowManagedReadPathsOnly` | 當為 `true` 時,僅尊重受管理設定中的 `filesystem.allowRead` 路徑。`denyRead` 仍然從所有來源合併 |467| `sandbox.filesystem.allowManagedReadPathsOnly` | 當為 `true` 時,僅尊重受管理設定中的 `filesystem.allowRead` 路徑。`denyRead` 仍然從所有來源合併 |


479 490 

480如果工具在任何級別被拒絕,沒有其他級別可以允許它。例如,受管理設定 deny 無法被 `--allowedTools` 覆蓋,`--disallowedTools` 可以新增超出受管理設定定義的限制。491如果工具在任何級別被拒絕,沒有其他級別可以允許它。例如,受管理設定 deny 無法被 `--allowedTools` 覆蓋,`--disallowedTools` 可以新增超出受管理設定定義的限制。

481 492 

482嵌入主機可以在 [`parentSettingsBehavior`](/zh-TW/settings#settings-precedence) 設定為 `"merge"` 透過 SDK `managedSettings` 選項提供額外的受管理原則;嵌入器值可以收緊原則但不能放寬它493相同的規則也適用於設定範圍:如果使用者設定允許某項權限而專案設定拒絕它,deny 規則會阻止它。反之亦然:使用者級別的 deny 會阻止專案級別的 allow因為來自任何範圍的 deny 規則會在 allow 規則之前進行評估

483 494 

484例如,如果使用者設定允許某項權限而專案設定拒絕它,deny 規則會阻止它。反之亦然:使用者級別的 deny 會阻止專案級別的 allow因為來自任何範圍的 deny 規則會在 allow 規則之前進行評估495嵌入主機可以在 [`parentSettingsBehavior`](/zh-TW/settings#settings-precedence) 設定為 `"merge"` 透過 SDK `managedSettings` 選項提供額外的受管理原則;嵌入器值可以收緊原則但不能放寬它

485 496 

486<h2 id="example-configurations">497<h2 id="example-configurations">

487 範例設定498 範例設定

Details

102 102 

103當您安裝聲明 `{ "name": "secrets-vault", "version": "~2.1.0" }` 的 plugin 時,Claude Code 會列出 marketplace 的標籤,篩選以 `secrets-vault--v` 開頭的標籤,並獲取滿足 `~2.1.0` 的最高版本。如果不存在匹配的標籤,依賴 plugin 將被禁用,並出現列出可用版本的錯誤。103當您安裝聲明 `{ "name": "secrets-vault", "version": "~2.1.0" }` 的 plugin 時,Claude Code 會列出 marketplace 的標籤,篩選以 `secrets-vault--v` 開頭的標籤,並獲取滿足 `~2.1.0` 的最高版本。如果不存在匹配的標籤,依賴 plugin 將被禁用,並出現列出可用版本的錯誤。

104 104 

105已新增為本機資料夾路徑的 marketplace 在該資料夾是 git 儲存庫時會以相同方式解析標籤。這需要 Claude Code v2.1.196 或更新版本。在兩種情況下,Claude Code 會從資料夾的目前內容安裝依賴:

106 

107* 較早的版本不會從本機資料夾 marketplace 讀取標籤,因此受約束的依賴只有在該副本滿足範圍時才會載入。

108* 不是 git 儲存庫的本機資料夾沒有標籤,無論版本如何。

109 

105已解析標籤的 semver 與 `plugin.json` 的 `version` 分開記錄,因此約束檢查使用實際獲取的標籤,即使該提交的 `plugin.json` 有過時的值。標籤解析安裝的快取目錄名稱包含 12 字元的提交 SHA 後綴,因此如果維護者強制移動標籤到不同的提交,下次安裝會獲得新的快取目錄,而不是重複使用過時的內容。110已解析標籤的 semver 與 `plugin.json` 的 `version` 分開記錄,因此約束檢查使用實際獲取的標籤,即使該提交的 `plugin.json` 有過時的值。標籤解析安裝的快取目錄名稱包含 12 字元的提交 SHA 後綴,因此如果維護者強制移動標籤到不同的提交,下次安裝會獲得新的快取目錄,而不是重複使用過時的內容。

106 111 

107<Note>112<Note>

Details

6 6 

7> 建立並託管 plugin marketplace,以在團隊和社群中分發 Claude Code 擴充功能。7> 建立並託管 plugin marketplace,以在團隊和社群中分發 Claude Code 擴充功能。

8 8 

9**plugin marketplace** 是一個目錄,可讓您將 plugin 分發給他人。Marketplace 提供集中式發現、版本追蹤、自動更新,以及對多種來源類型(git 儲存庫、本機路徑等)的支援。本指南將向您展示如何建立自己的 marketplace,以與您的團隊或社群分享 plugin。9**plugin marketplace** 是一個目錄,可讓您將 plugin 分發給他人。Marketplace 提供集中式發現、版本追蹤、自動更新,以及對多種來源類型(包括 git 儲存庫和本機路徑)的支援。本指南將向您展示如何建立自己的 marketplace,以與您的團隊或社群分享 plugin。

10 10 

11想要從現有 marketplace 安裝 plugin?請參閱[探索並安裝預先建立的 plugin](/zh-TW/discover-plugins)。11想要從現有 marketplace 安裝 plugin?請參閱[探索並安裝預先建立的 plugin](/zh-TW/discover-plugins)。

12 12 


17建立並分發 marketplace 涉及:17建立並分發 marketplace 涉及:

18 18 

191. **建立 plugin**:使用 skills、agents、hooks、MCP servers 或 LSP servers 建立一個或多個 plugin。本指南假設您已經有要分發的 plugin;有關如何建立 plugin 的詳細資訊,請參閱[建立 plugin](/zh-TW/plugins)。191. **建立 plugin**:使用 skills、agents、hooks、MCP servers 或 LSP servers 建立一個或多個 plugin。本指南假設您已經有要分發的 plugin;有關如何建立 plugin 的詳細資訊,請參閱[建立 plugin](/zh-TW/plugins)。

202. **建立 marketplace 檔案**:定義 `marketplace.json`,列出您的 plugin 及其位置請參閱[建立 marketplace 檔案](#create-the-marketplace-file)202. **建立 marketplace 檔案**:定義 `marketplace.json`,列出您的 plugin 及其位置請參閱[建立 marketplace 檔案](#create-the-marketplace-file)。

213. **託管 marketplace**:推送到 GitHub、GitLab 或其他 git 主機請參閱[託管並分發 marketplace](#host-and-distribute-marketplaces)213. **託管 marketplace**:推送到 GitHub、GitLab 或其他 git 主機請參閱[託管並分發 marketplace](#host-and-distribute-marketplaces)。

224. **與使用者分享**:使用者使用 `/plugin marketplace add` 新增您的 marketplace 並安裝個別 plugin請參閱[探索並安裝 plugin](/zh-TW/discover-plugins)224. **與使用者分享**:使用者使用 `/plugin marketplace add` 新增您的 marketplace 並安裝個別 plugin請參閱[探索並安裝 plugin](/zh-TW/discover-plugins)。

23 23 

24一旦您的 marketplace 上線,您可以透過推送變更到您的儲存庫來更新它。使用者使用 `/plugin marketplace update` 重新整理其本機副本。24一旦您的 marketplace 上線,您可以透過推送變更到您的儲存庫來更新它。使用者使用 `/plugin marketplace update` 重新整理其本機副本。

25 25 


44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---45 ---

46 description: 檢查程式碼中的錯誤、安全性和效能問題46 description: 檢查程式碼中的錯誤、安全性和效能問題

47 disable-model-invocation: true

48 ---47 ---

49 48 

50 檢查我選擇的程式碼或最近的變更,查找:49 檢查我選擇的程式碼或最近的變更,查找:


125 124 

126在您的儲存庫根目錄中建立 `.claude-plugin/marketplace.json`。此檔案定義您的 marketplace 名稱、擁有者資訊以及包含其來源的 plugin 清單。125在您的儲存庫根目錄中建立 `.claude-plugin/marketplace.json`。此檔案定義您的 marketplace 名稱、擁有者資訊以及包含其來源的 plugin 清單。

127 126 

128每個 plugin 項目至少需要 `name` 和 `source`(從何處取得)。有關所有可用欄位,請參閱下面的[完整架構](#marketplace-schema)。127每個 plugin 項目至少需要 `name` 和 `source`(告訴 Claude Code 從何處取得)。有關所有可用欄位,請參閱下面的[完整架構](#marketplace-schema)。

129 128 

130```json theme={null}129```json theme={null}

131{130{


188</h3>187</h3>

189 188 

190| 欄位 | 類型 | 描述 |189| 欄位 | 類型 | 描述 |

191| :------------------------------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |190| :------------------------------------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

192| `$schema` | string | JSON Schema URL,用於編輯器自動完成和驗證。Claude Code 在載入時會忽略此欄位。 |191| `$schema` | string | JSON Schema URL,用於編輯器自動完成和驗證。Claude Code 在載入時會忽略此欄位。 |

193| `description` | string | 簡短的 marketplace 描述 |192| `description` | string | 簡短的 marketplace 描述 |

194| `version` | string | Marketplace 版本 |193| `version` | string | Marketplace 版本 |

195| `metadata.pluginRoot` | string | 前置於相對 plugin 來源路徑的基本目錄(例如,`"./plugins"` 可讓您寫入 `"source": "formatter"` 而不是 `"source": "./plugins/formatter"`) |194| `metadata.pluginRoot` | string | 前置於相對 plugin 來源路徑的基本目錄(例如,`"./plugins"` 可讓您寫入 `"source": "formatter"` 而不是 `"source": "./plugins/formatter"`) |

196| `allowCrossMarketplaceDependenciesOn` | array | 此 marketplace 中的 plugin 可能依賴的其他 marketplace。來自此處未列出的 marketplace 的相依性在安裝時被阻止。請參閱[依賴來自另一個 marketplace 的 plugin](/zh-TW/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)。 |195| `allowCrossMarketplaceDependenciesOn` | array | 此 marketplace 中的 plugin 可能依賴的其他 marketplace。來自此處未列出的 marketplace 的相依性在安裝時被阻止。請參閱[依賴來自另一個 marketplace 的 plugin](/zh-TW/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)。 |

196| `renames` | object | {/* min-version: 2.1.193 */}從前一個 plugin `name` 對應到其目前名稱,或對應到 `null`(如果 plugin 已移除)的對應。當您重新命名或移除 `plugins` 中的項目時,可讓現有使用者自動遷移。請參閱[重新命名或移除 plugin](#rename-or-remove-a-plugin)。需要 Claude Code v2.1.193 或更新版本。 |

197 197 

198`description` 和 `version` 也可在 `metadata` 下接受,以保持向後相容性。198`description` 和 `version` 也可在 `metadata` 下接受,以保持向後相容性。

199 199 


251 251 

252Plugin 來源告訴 Claude Code 在您的 marketplace 中列出的每個個別 plugin 從何處取得。這些在 `marketplace.json` 中每個 plugin 項目的 `source` 欄位中設定。252Plugin 來源告訴 Claude Code 在您的 marketplace 中列出的每個個別 plugin 從何處取得。這些在 `marketplace.json` 中每個 plugin 項目的 `source` 欄位中設定。

253 253 

254一旦 plugin 被複製或複製到本機它就會被複製到本機版本化 plugin 快取中,位於 `~/.claude/plugins/cache`。254一旦 Claude Code 複製或下載 plugin 到本機它就會將 plugin 複製到本機版本化 plugin 快取中,位於 `~/.claude/plugins/cache`。

255 255 

256| 來源 | 類型 | 欄位 | 備註 |256| 來源 | 類型 | 欄位 | 備註 |

257| ------------ | ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------- |257| ------------ | ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------- |


264<Note>264<Note>

265 **Marketplace 來源與 plugin 來源**:這些是控制不同事物的不同概念。265 **Marketplace 來源與 plugin 來源**:這些是控制不同事物的不同概念。

266 266 

267 * **Marketplace 來源**從何處取得 `marketplace.json` 目錄本身。在使用者執行 `/plugin marketplace add` 或在 `extraKnownMarketplaces` 設定中設定。支援 `ref`(分支/標籤)但不支援 `sha`。267 * **Marketplace 來源**從何處取得 `marketplace.json` 目錄本身。在使用者執行 `/plugin marketplace add` 或在 `extraKnownMarketplaces` 設定中設定。支援 `ref`(分支/標籤)但不支援 `sha`。

268 * **Plugin 來源**從何處取得 marketplace 中列出的個別 plugin。在 `marketplace.json` 內每個 plugin 項目的 `source` 欄位中設定。支援 `ref`(分支/標籤)和 `sha`(確切提交)。268 * **Plugin 來源**從何處取得 marketplace 中列出的個別 plugin。在 `marketplace.json` 內每個 plugin 項目的 `source` 欄位中設定。支援 `ref`(分支/標籤)和 `sha`(確切提交)。

269 269 

270 例如,託管在 `acme-corp/plugin-catalog`(marketplace 來源)的 marketplace 可以列出從 `acme-corp/code-formatter`(plugin 來源)取得的 plugin。marketplace 來源和 plugin 來源指向不同的儲存庫,並獨立固定。270 例如,託管在 `acme-corp/plugin-catalog`(marketplace 來源)的 marketplace 可以列出從 `acme-corp/code-formatter`(plugin 來源)取得的 plugin。marketplace 來源和 plugin 來源指向不同的儲存庫,並獨立固定。

271</Note>271</Note>


288路徑相對於 marketplace 根目錄解析,即包含 `.claude-plugin/` 的目錄。在上面的範例中,`./plugins/my-plugin` 指向 `<repo>/plugins/my-plugin`,即使 `marketplace.json` 位於 `<repo>/.claude-plugin/marketplace.json`。不要使用 `../` 參考 marketplace 根目錄外的路徑。288路徑相對於 marketplace 根目錄解析,即包含 `.claude-plugin/` 的目錄。在上面的範例中,`./plugins/my-plugin` 指向 `<repo>/plugins/my-plugin`,即使 `marketplace.json` 位於 `<repo>/.claude-plugin/marketplace.json`。不要使用 `../` 參考 marketplace 根目錄外的路徑。

289 289 

290<Note>290<Note>

291 相對路徑僅在使用者透過 Git(GitHub、GitLab git URL)新增您的 marketplace 時有效。如果使用者透過直接 URL 新增您的 marketplace 到 `marketplace.json` 檔案,相對路徑將無法正確解析。對於基於 URL 的分發,請改用 GitHub、npm 或 git URL 來源。有關詳細資訊,請參閱[疑難排解](#plugins-with-relative-paths-fail-in-url-based-marketplaces)。291 相對路徑會針對 marketplace 的本機副本解析,因此當使用者從 git 來源或本機目錄新增您的 marketplace 時可以運作。如果使用者透過直接 URL 新增您的 marketplace 到 `marketplace.json` 檔案,相對路徑將無法解析,因為只會下載該檔案。對於基於 URL 的分發,請改用 GitHub、npm 或 git URL 來源。有關詳細資訊,請參閱[疑難排解](#plugins-with-relative-paths-fail-in-url-based-marketplaces)。

292</Note>292</Note>

293 293 

294<h3 id="github-repositories">294<h3 id="github-repositories">


547 在 GitHub 上託管(推薦)547 在 GitHub 上託管(推薦)

548</h3>548</h3>

549 549 

550GitHub 提供最簡單的分發方法550GitHub 是託管和分發 marketplace 的推薦方式

551 551 

5521. **建立儲存庫**:為您的 marketplace 設定新儲存庫5521. **建立儲存庫**:為您的 marketplace 設定新儲存庫

5532. **新增 marketplace 檔案**:使用您的 plugin 定義建立 `.claude-plugin/marketplace.json`5532. **新增 marketplace 檔案**:使用您的 plugin 定義建立 `.claude-plugin/marketplace.json`


596在分享前在本機測試您的 marketplace:596在分享前在本機測試您的 marketplace:

597 597 

598```shell theme={null}598```shell theme={null}

599/plugin marketplace add ./my-local-marketplace599/plugin marketplace add ./my-marketplace

600/plugin install test-plugin@my-local-marketplace600/plugin install quality-review-plugin@my-plugins

601```601```

602 602 

603有關完整的新增命令範圍(GitHub、Git URL、本機路徑、遠端 URL),請參閱[新增 marketplace](/zh-TW/discover-plugins#add-marketplaces)。603有關完整的新增命令範圍(GitHub、Git URL、本機路徑、遠端 URL),請參閱[新增 marketplace](/zh-TW/discover-plugins#add-marketplaces)。


680 受管 marketplace 限制680 受管 marketplace 限制

681</h3>681</h3>

682 682 

683對於需要對 plugin 來源進行嚴格控制的組織,管理員可以使用受管設定中的 [`strictKnownMarketplaces`](/zh-TW/settings#strictknownmarketplaces) 設定限制使用者允許新增的 plugin marketplace。683對於需要對 plugin 來源進行嚴格控制的組織,管理員可以使用受管設定中的 [`strictKnownMarketplaces`](/zh-TW/settings#strictknownmarketplaces) 設定限制使用者允許新增的 plugin marketplace。若要也拒絕為單次執行側載 plugin、agent 和 MCP 伺服器的 CLI 旗標,請將其與 [`disableSideloadFlags`](/zh-TW/settings#available-settings) 配對。

684 684 

685當在受管設定中配置 `strictKnownMarketplaces` 時,限制行為取決於值:685當在受管設定中配置 `strictKnownMarketplaces` 時,限制行為取決於值:

686 686 


792<Warning>792<Warning>

793 設定 `version` 會固定 plugin。如果 `plugin.json` 宣告 `"version": "1.0.0"`,推送新提交而不更改該字串對現有使用者沒有任何作用,因為 Claude Code 看到相同的版本並保留快取副本。在每次發行時提升該欄位,或省略它以使用提交 SHA。793 設定 `version` 會固定 plugin。如果 `plugin.json` 宣告 `"version": "1.0.0"`,推送新提交而不更改該字串對現有使用者沒有任何作用,因為 Claude Code 看到相同的版本並保留快取副本。在每次發行時提升該欄位,或省略它以使用提交 SHA。

794 794 

795 避免在 `plugin.json` 和 marketplace 項目中同時設定 `version`。`plugin.json` 值總是無聲地獲勝,因此過時的 manifest 版本可能會掩蓋您在 `marketplace.json` 中設定的版本。795 避免在 `plugin.json` 和 marketplace 項目中同時設定 `version`。Claude Code 總是無聲地使用 `plugin.json` ,因此過時的 manifest 版本可能會掩蓋您在 `marketplace.json` 中設定的版本。

796</Warning>796</Warning>

797 797 

798<h4 id="set-up-release-channels">798<h4 id="set-up-release-channels">


881 881 

882Plugin 可以將其依賴限制在 semver 範圍內,以便依賴的更新不會破壞依賴 plugin。請參閱[限制 plugin 依賴版本](/zh-TW/plugin-dependencies)以了解 `{plugin-name}--v{version}` git 標籤慣例、範圍語法,以及如何組合對同一依賴的多個限制。882Plugin 可以將其依賴限制在 semver 範圍內,以便依賴的更新不會破壞依賴 plugin。請參閱[限制 plugin 依賴版本](/zh-TW/plugin-dependencies)以了解 `{plugin-name}--v{version}` git 標籤慣例、範圍語法,以及如何組合對同一依賴的多個限制。

883 883 

884<h3 id="rename-or-remove-a-plugin">

885 重新命名或移除 plugin

886</h3>

887 

888Plugin 的 `name` 是其穩定識別碼。使用者在 `enabledPlugins`、`pluginConfigs` 和 `/plugin install` 命令中參考它,因此更改它會破壞每個現有安裝。若要更改 UI 中顯示的標籤而不破壞安裝,請設定 [`displayName`](#optional-plugin-fields) 並保持 `name` 不變。

889 

890如果您必須更改 plugin 的 `name`,或您從 `plugins` 陣列中移除 plugin,請新增頂層 `renames` 項目,以便現有使用者遷移而不是看到 `plugin-not-found` 錯誤。自動遷移需要 Claude Code v2.1.193 或更新版本。將每個前名稱對應到其目前名稱,或如果 plugin 不再存在,則對應到 `null`。以下範例將 `formatter` 重新命名為 `code-formatter`,並記錄 `legacy-linter` 已被移除:

891 

892```json theme={null}

893{

894 "name": "acme-tools",

895 "owner": { "name": "Acme" },

896 "plugins": [

897 { "name": "code-formatter", "source": "./plugins/code-formatter" }

898 ],

899 "renames": {

900 "formatter": "code-formatter",

901 "legacy-linter": null

902 }

903}

904```

905 

906當使用者啟動 Claude Code 時舊名稱仍在其設定中,Claude Code 會遵循 `renames` 對應:

907 

908* 如果項目指向新名稱,Claude Code 會在其新名稱下載入 plugin,並顯示一行通知,例如 `已在 "acme-tools" marketplace 中重新命名為 "code-formatter"`。然後它會在使用者、專案和本機設定範圍中重寫舊金鑰為新金鑰,用於 `enabledPlugins` 和 `pluginConfigs`,因此通知只出現一次。

909* 對於 `null` 項目,Claude Code 會刪除舊金鑰,通知報告 plugin 已從 marketplace 中移除。

910* 如果重新命名的 plugin 使用遠端來源,例如 `github` 或 `npm`,Claude Code 在重新命名後報告 `plugin-cache-miss`,使用者必須執行 `/plugin install` 一次以在新名稱下取得它。

911 

912將 `renames` 視為僅附加歷史記錄:即使在您預期每個使用者都已遷移後,也要保持舊項目就位。Claude Code 遵循鏈,因此如果您稍後將 `code-formatter` 重新命名為 `formatter-pro`,請新增第二項而不是編輯第一項。仍然啟用原始 `formatter` 的使用者然後透過兩項解析到 `formatter-pro`。

913 

914在編輯對應後執行 `claude plugin validate .`;它會拒絕任何鏈形成循環或不終止於 `null` 或 `plugins` 中列出的名稱的項目。

915 

916<Note>

917 受管和原則設定對 Claude Code 是唯讀的,因此在那裡啟用的 plugin 無法自動重寫。重新命名的 plugin 仍在每個工作階段載入,但重新命名通知會重複出現,直到管理員更新受管設定檔案中的 `enabledPlugins` 以使用新名稱。相同的情況也適用於透過其他唯讀來源(例如 `--add-dir`)啟用的 plugin。

918</Note>

919 

920Claude Code 的早期版本會忽略 `renames` 欄位,並為舊名稱報告 `plugin-not-found`。

921 

884<h2 id="validation-and-testing">922<h2 id="validation-and-testing">

885 驗證和測試923 驗證和測試

886</h2>924</h2>


933 971 

934* `<source>`:GitHub `owner/repo` 簡寫、git URL、遠端 URL 到 `marketplace.json` 檔案或本機目錄路徑。若要固定到分支或標籤,請將 `@ref` 附加到 GitHub 簡寫或 `#ref` 附加到 git URL972* `<source>`:GitHub `owner/repo` 簡寫、git URL、遠端 URL 到 `marketplace.json` 檔案或本機目錄路徑。若要固定到分支或標籤,請將 `@ref` 附加到 GitHub 簡寫或 `#ref` 附加到 git URL

935 973 

974URL 必須包含其配置。自 Claude Code v2.1.196 起,未輸入配置的主機(例如 `gitlab.example.com/team/plugins`)會被拒絕為無效的 `owner/repo` 簡寫,錯誤訊息會告訴您新增 `https://` 或使用 `./` 作為本機路徑。較早的版本會將其誤讀為 GitHub 儲存庫路徑,並在複製時因 GitHub 找不到錯誤而失敗。

975 

936**選項:**976**選項:**

937 977 

938| 選項 | 描述 | 預設 |978| 選項 | 描述 | 預設 |


1061 Marketplace 驗證錯誤1101 Marketplace 驗證錯誤

1062</h3>1102</h3>

1063 1103 

1064從您的 marketplace 目錄執行 `claude plugin validate .` 或 `/plugin validate .` 以檢查問題。當指向 marketplace 目錄時,驗證器僅檢查 `marketplace.json`:架構、重複的 plugin 名稱、來源路徑遍歷和版本不匹配(針對每個參考的 `plugin.json`1104從您的 marketplace 目錄執行 `claude plugin validate .` 或 `/plugin validate .` 以檢查問題。當指向 marketplace 目錄時,驗證器檢查 `marketplace.json` 是否有架構錯誤、重複的 plugin 名稱和來源路徑遍歷。對於每個 `source` 為本機路徑的項目,它也會驗證該 plugin 自己的 `plugin.json`,並在項目的 `version` 與 `plugin.json` 中的版本不符時發出警告在 plugin 的 `plugin.json` 中發現的問題會以項目索引作為前綴,形式為 `plugins[2] plugin.json →`。

1105 

1106自 Claude Code v2.1.196 起,每個項目的檢查也會:

1107 

1108* 包含 `source` 為 `.` 的 plugin

1109* 在 `marketplace.json` 位於 `.claude-plugin` 目錄外時執行,針對檔案自己的目錄解析來源

1110* 即使檔案的另一部分有架構錯誤,也會報告每個項目的問題

1111 

1112較早的版本會跳過 marketplace 根目錄中的 plugin,並且只從 `.claude-plugin/marketplace.json` 開始下降。

1065 1113 

1066若要驗證個別 plugin 的 `plugin.json` 及其 skill、agent、command 和 hook 檔案,請針對 plugin 目錄本身執行該命令,例如 `claude plugin validate ./plugins/my-plugin`。常見錯誤:1114若要驗證個別 plugin 的 `plugin.json` 及其 skill、agent、command 和 hook 檔案,請針對 plugin 目錄本身執行該命令,例如 `claude plugin validate ./plugins/my-plugin`。常見錯誤:

1067 1115 


1078 1126 

1079* `Marketplace has no plugins defined`:將至少一個 plugin 新增到 `plugins` 陣列1127* `Marketplace has no plugins defined`:將至少一個 plugin 新增到 `plugins` 陣列

1080* `No marketplace description provided`:新增頂層 `description` 以幫助使用者瞭解您的 marketplace1128* `No marketplace description provided`:新增頂層 `description` 以幫助使用者瞭解您的 marketplace

1081* `Plugin name "x" is not kebab-case`:plugin 名稱包含大寫字母、空格或特殊字元。重新命名為僅包含小寫字母、數字和連字號(例如,`my-plugin`)。Claude Code 接受其他形式,但 Claude.ai marketplace 同步會拒絕它們。1129* `Plugin name "x" is not kebab-case`:plugin 名稱包含大寫字母、空格或特殊字元。重新命名為僅包含小寫字母、數字和連字號(例如,`my-plugin`)。Claude Code 接受其他形式,但 claude.ai marketplace 同步會拒絕它們。

1082 1130 

1083<h3 id="plugin-installation-failures">1131<h3 id="plugin-installation-failures">

1084 Plugin 安裝失敗1132 Plugin 安裝失敗

Details

477如果您包含 manifest,`name` 是唯一必需的欄位。477如果您包含 manifest,`name` 是唯一必需的欄位。

478 478 

479| 欄位 | 類型 | 描述 | 範例 |479| 欄位 | 類型 | 描述 | 範例 |

480| :----- | :----- | :-------------------- | :------------------- |480| :----- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

481| `name` | string | 唯一識別碼(kebab-case,無空格) | `"deployment-tools"` |481| `name` | string | 唯一識別碼(kebab-case,無空格)。當[marketplace 項目](/zh-TW/plugin-marketplaces#plugin-entries)以不同名稱列出 plugin 時,marketplace 項目名稱是 `enabledPlugins` 金鑰和 `/plugin` 使用的名稱 | `"deployment-tools"` |

482 482 

483此名稱用於命名空間元件。例如,在 UI 中,名稱為 `plugin-dev` 的 plugin 的 agent `agent-creator` 將顯示為 `plugin-dev:agent-creator`。483此名稱用於命名空間元件。例如,在 UI 中,名稱為 `plugin-dev` 的 plugin 的 agent `agent-creator` 將顯示為 `plugin-dev:agent-creator`。

484 484 


503</h3>503</h3>

504 504 

505| 欄位 | 類型 | 描述 | 範例 |505| 欄位 | 類型 | 描述 | 範例 |

506| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |506| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

507| `$schema` | string | JSON Schema URL,用於編輯器自動完成和驗證。Claude Code 在載入時忽略此欄位。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |507| `$schema` | string | JSON Schema URL,用於編輯器自動完成和驗證。Claude Code 在載入時忽略此欄位。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

508| `displayName` | string | {/* min-version: 2.1.143 */}在 `/plugin` 選擇器和其他 UI 介面中顯示的人類可讀名稱。當省略時回退到 `name`。與 `name` 不同,可能包含空格和任何大小寫。不用於命名空間或查詢。需要 Claude Code v2.1.143 或更新版本。 | `"Deployment Tools"` |508| `displayName` | string | {/* min-version: 2.1.143 */}在 `/plugin` 選擇器和其他 UI 介面中顯示的人類可讀名稱。當省略時回退到 `name`。與 `name` 不同,可能包含空格和任何大小寫。不用於命名空間或查詢。需要 Claude Code v2.1.143 或更新版本。 | `"Deployment Tools"` |

509| `version` | string | 選用。語義版本。設定此項會將 plugin 固定到該版本字串,因此使用者只會在您提升版本時收到更新。如果省略,Claude Code 會回退到 git commit SHA,因此每個 commit 都被視為新版本。如果也在 marketplace 項目中設定,`plugin.json` 優先。請參閱[Version management](#version-management)。 | `"2.1.0"` |509| `version` | string | 選用。語義版本。設定此項會將 plugin 固定到該版本字串,因此使用者只會在您提升版本時收到更新。如果省略,Claude Code 會回退到 git commit SHA,因此每個 commit 都被視為新版本。如果也在 marketplace 項目中設定,`plugin.json` 優先。請參閱[版本管理](#version-management)。 | `"2.1.0"` |

510| `description` | string | plugin 用途的簡短說明 | `"Deployment automation tools"` |510| `description` | string | plugin 用途的簡短說明 | `"Deployment automation tools"` |

511| `author` | object | 作者資訊 | `{"name": "Dev Team", "email": "dev@company.com"}` |511| `author` | object | 作者資訊 | `{"name": "Dev Team", "email": "dev@company.com"}` |

512| `homepage` | string | 文件 URL | `"https://docs.example.com"` |512| `homepage` | string | 文件 URL | `"https://docs.example.com"` |

513| `repository` | string | 原始程式碼 URL | `"https://github.com/user/plugin"` |513| `repository` | string | 原始程式碼 URL | `"https://github.com/user/plugin"` |

514| `license` | string | 授權識別碼 | `"MIT"`、`"Apache-2.0"` |514| `license` | string | 授權識別碼 | `"MIT"`、`"Apache-2.0"` |

515| `keywords` | array | 探索標籤 | `["deployment", "ci-cd"]` |515| `keywords` | array | 探索標籤 | `["deployment", "ci-cd"]` |

516| `defaultEnabled` | boolean | {/* min-version: 2.1.154 */}當使用者未設定時,plugin 是否以啟用狀態啟動。預設為 `true`。請參閱 [Default enablement](#default-enablement)。需要 Claude Code v2.1.154 或更新版本。 | `false` |516| `defaultEnabled` | boolean | {/* min-version: 2.1.154 */}當使用者未設定時,plugin 是否以啟用狀態啟動。預設為 `true`。請參閱[預設啟用](#default-enablement)。需要 Claude Code v2.1.154 或更新版本。 | `false` |

517 517 

518<h3 id="default-enablement">518<h3 id="default-enablement">

519 預設啟用519 預設啟用


524`defaultEnabled` 是當沒有其他因素決定 plugin 狀態時的後備。有兩件事優先於它:524`defaultEnabled` 是當沒有其他因素決定 plugin 狀態時的後備。有兩件事優先於它:

525 525 

526* **使用者的設定**:在任何設定範圍的 `enabledPlugins` 中為 plugin 的項目。一旦寫入,它會在 plugin 更新和重新安裝中保留,因此在後續版本中變更 `defaultEnabled` 不會翻轉現有使用者。526* **使用者的設定**:在任何設定範圍的 `enabledPlugins` 中為 plugin 的項目。一旦寫入,它會在 plugin 更新和重新安裝中保留,因此在後續版本中變更 `defaultEnabled` 不會翻轉現有使用者。

527* **相依性要求**:當 plugin 被另一個啟用的 plugin 所需時,Claude Code 會在安裝或啟用時為其寫入 `true`。這給了它一個明確的設定,所以它自己的預設不再適用。請參閱 [Enable or disable a plugin with dependencies](/zh-TW/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)。527* **相依性要求**:當 plugin 被另一個啟用的 plugin 所需時,Claude Code 會在安裝或啟用時為其寫入 `true`。這給了它一個明確的設定,所以它自己的預設不再適用。請參閱[啟用或停用具有相依性的 plugin](/zh-TW/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)。

528 528 

529相同的欄位可以出現在 plugin 的 marketplace 項目中,其優先於 `plugin.json` 中的值。請參閱 [Optional plugin fields](/zh-TW/plugin-marketplaces#optional-plugin-fields)。529相同的欄位可以出現在 plugin 的 marketplace 項目中,其優先於 `plugin.json` 中的值。請參閱[選用 plugin 欄位](/zh-TW/plugin-marketplaces#optional-plugin-fields)。

530 530 

531<h3 id="component-path-fields">531<h3 id="component-path-fields">

532 元件路徑欄位532 元件路徑欄位

533</h3>533</h3>

534 534 

535| 欄位 | 類型 | 描述 | 範例 |535| 欄位 | 類型 | 描述 | 範例 |

536| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |536| :---------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

537| `skills` | string\|array | 包含 `<name>/SKILL.md` 的自訂 skill 目錄。新增到預設 `skills/` 掃描。請參閱[路徑行為規則](#path-behavior-rules)以了解 marketplace 根目錄例外 | `"./custom/skills/"` |537| `skills` | string\|array | 包含 `<name>/SKILL.md` 的自訂 skill 目錄。新增到預設 `skills/` 掃描。請參閱[路徑行為規則](#path-behavior-rules)以了解 marketplace 根目錄例外 | `"./custom/skills/"` |

538| `commands` | string\|array | 自訂平面 `.md` skill 檔案或目錄(取代預設 `commands/`) | `"./custom/cmd.md"` 或 `["./cmd1.md"]` |538| `commands` | string\|array | 自訂平面 `.md` skill 檔案或目錄(取代預設 `commands/`) | `"./custom/cmd.md"` 或 `["./cmd1.md"]` |

539| `agents` | string\|array | 自訂 agent 檔案(取代預設 `agents/`) | `"./custom/agents/reviewer.md"` |539| `agents` | string\|array | 自訂 agent 檔案(取代預設 `agents/`) | `"./custom/agents/reviewer.md"` |


541| `mcpServers` | string\|array\|object | MCP 設定路徑或內聯設定 | `"./my-extra-mcp-config.json"` |541| `mcpServers` | string\|array\|object | MCP 設定路徑或內聯設定 | `"./my-extra-mcp-config.json"` |

542| `outputStyles` | string\|array | 自訂輸出樣式檔案/目錄(取代預設 `output-styles/`) | `"./styles/"` |542| `outputStyles` | string\|array | 自訂輸出樣式檔案/目錄(取代預設 `output-styles/`) | `"./styles/"` |

543| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 設定,用於程式碼智慧(前往定義、尋找參考等) | `"./.lsp.json"` |543| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 設定,用於程式碼智慧(前往定義、尋找參考等) | `"./.lsp.json"` |

544| `experimental.themes` | string\|array | 色彩主題檔案/目錄(取代預設 `themes/`)。請參閱[Themes](#themes) | `"./themes/"` |544| `experimental.themes` | string\|array | 色彩主題檔案/目錄(取代預設 `themes/`)。請參閱[主題](#themes) | `"./themes/"` |

545| `experimental.monitors` | string\|array | 背景 [Monitor](/zh-TW/tools-reference#monitor-tool) 設定,在 plugin 啟用時自動啟動。請參閱[Monitors](#monitors) | `"./monitors.json"` |545| `experimental.monitors` | string\|array | 背景 [Monitor](/zh-TW/tools-reference#monitor-tool) 設定,在 plugin 啟用時自動啟動。請參閱[監視器](#monitors) | `"./monitors.json"` |

546| `userConfig` | object | 在啟用時提示使用者的使用者可設定值。請參閱[User configuration](#user-configuration) | 請參閱下方 |546| `userConfig` | object | 在啟用時提示使用者的使用者可設定值。請參閱[使用者設定](#user-configuration) | 請參閱下方 |

547| `channels` | array | 訊息注入的頻道宣告(Telegram、Slack、Discord 風格)。請參閱[Channels](#channels) | 請參閱下方 |547| `channels` | array | 訊息注入的頻道宣告(Telegram、Slack、Discord 風格)。請參閱[頻道](#channels) | 請參閱下方 |

548| `dependencies` | array | 此 plugin 需要的其他 plugins,可選擇使用 semver 版本限制。請參閱[Constrain plugin dependency versions](/zh-TW/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |548| `dependencies` | array | 此 plugin 需要的其他 plugins,可選擇使用 semver 版本限制。請參閱[限制 plugin 相依性版本](/zh-TW/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

549 549 

550<h3 id="experimental-components">550<h3 id="experimental-components">

551 實驗性元件551 實驗性元件


554`experimental` 金鑰下的元件 `themes` 和 `monitors` 具有在版本之間穩定時可能會變更的 manifest 架構。您宣告它們的位置是一個單獨的遷移:頂層仍然有效,`claude plugin validate` 會發出警告,未來的版本將需要 `experimental.*`。554`experimental` 金鑰下的元件 `themes` 和 `monitors` 具有在版本之間穩定時可能會變更的 manifest 架構。您宣告它們的位置是一個單獨的遷移:頂層仍然有效,`claude plugin validate` 會發出警告,未來的版本將需要 `experimental.*`。

555 555 

556<h3 id="user-configuration">556<h3 id="user-configuration">

557 User configuration557 使用者設定

558</h3>558</h3>

559 559 

560`userConfig` 欄位宣告 Claude Code 在啟用 plugin 時提示使用者的值。使用此方法而不是要求使用者手動編輯 `settings.json`。560`userConfig` 欄位宣告 Claude Code 在啟用 plugin 時提示使用者的值。使用此方法而不是要求使用者手動編輯 `settings.json`。


595非敏感值儲存在 `settings.json` 中的 `pluginConfigs[<plugin-id>].options` 下。敏感值進入系統鑰匙圈(或在鑰匙圈不可用的地方進入 `~/.claude/.credentials.json`)。鑰匙圈儲存與 OAuth 令牌共享,總限制約為 2 KB,因此請保持敏感值較小。595非敏感值儲存在 `settings.json` 中的 `pluginConfigs[<plugin-id>].options` 下。敏感值進入系統鑰匙圈(或在鑰匙圈不可用的地方進入 `~/.claude/.credentials.json`)。鑰匙圈儲存與 OAuth 令牌共享,總限制約為 2 KB,因此請保持敏感值較小。

596 596 

597<h3 id="channels">597<h3 id="channels">

598 Channels598 頻道

599</h3>599</h3>

600 600 

601`channels` 欄位讓 plugin 宣告一個或多個訊息頻道,將內容注入對話中。每個頻道繫結到 plugin 提供的 MCP server。601`channels` 欄位讓 plugin 宣告一個或多個訊息頻道,將內容注入對話中。每個頻道繫結到 plugin 提供的 MCP server。

quickstart.md +1 −0

Details

106* [Claude Pro、Max、Team 或 Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login)(推薦)106* [Claude Pro、Max、Team 或 Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login)(推薦)

107* [Claude Console](https://console.anthropic.com/)(具有預付額度的 API 存取)。首次登入時,Console 中會自動建立「Claude Code」工作區以進行集中成本追蹤。107* [Claude Console](https://console.anthropic.com/)(具有預付額度的 API 存取)。首次登入時,Console 中會自動建立「Claude Code」工作區以進行集中成本追蹤。

108* [Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry](/zh-TW/third-party-integrations)(企業雲端提供商)108* [Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry](/zh-TW/third-party-integrations)(企業雲端提供商)

109* 自行託管的 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway)(如果您的組織執行一個的話):您的管理員會預先設定閘道 URL,`/login` 會直接在 **Cloud gateway** 畫面上開啟,供您使用公司 SSO 登入

109 110 

110登入後,您的認證將被儲存,您無需再次登入。111登入後,您的認證將被儲存,您無需再次登入。

111 112 

Details

34 34 

35* **訂閱**:在 Pro、Max、Team 和 Enterprise 方案上可用。不支援 API 金鑰。在 Team 和 Enterprise 上,管理員必須先在 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)中啟用 Remote Control 切換。35* **訂閱**:在 Pro、Max、Team 和 Enterprise 方案上可用。不支援 API 金鑰。在 Team 和 Enterprise 上,管理員必須先在 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)中啟用 Remote Control 切換。

36* **驗證**:執行 `claude` 並使用 `/login` 透過 claude.ai 登入(如果您還沒有登入)。36* **驗證**:執行 `claude` 並使用 `/login` 透過 claude.ai 登入(如果您還沒有登入)。

37* **API 端點**:在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。{/* min-version: 2.1.196 */}自 v2.1.196 起,當 [`ANTHROPIC_BASE_URL`](/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機(例如 [LLM 閘道](/zh-TW/llm-gateway)或代理)時,Remote Control 也會被停用。取消設定該變數以使用 Remote Control。

37* **工作區信任**:在您的專案目錄中至少執行一次 `claude` 以接受工作區信任對話框。38* **工作區信任**:在您的專案目錄中至少執行一次 `claude` 以接受工作區信任對話框。

38 39 

39<h2 id="start-a-remote-control-session">40<h2 id="start-a-remote-control-session">


148 為所有會話啟用 Remote Control149 為所有會話啟用 Remote Control

149</h3>150</h3>

150 151 

151預設情況下,Remote Control 只在您明確執行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 時啟動。要為每個互動式會話自動啟用它,請在 Claude Code 內執行 `/config` 並將**為所有會話啟用 Remote Control** 設定為 `true`。將其設定回 `false` 以停用。在桌面應用程式中,您也可以從**設定 → Claude Code → 預設啟用遠端控制**切換此選項。152預設情況下,Remote Control 只在您明確執行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 時啟動,除非自動連接已開啟。要為每個互動式會話自動啟用它,請在 Claude Code 內執行 `/config` 並將**為所有會話啟用 Remote Control** 設定為 `true`。將其設定為 `false` 以永不自動連接,或保留未設定以遵循您組織的預設值。在桌面應用程式中,您也可以從**設定 → Claude Code → 預設啟用遠端控制**切換此選項。

152 153 

153啟用此設定後,每個互動式 Claude Code 程序會註冊一個遠端會話。如果您執行多個實例,每個實例都會獲得自己的環境和會話。要從單個程序執行多個並行會話,請改用[伺服器模式](#start-a-remote-control-session)。154啟用此設定後,每個互動式 Claude Code 程序會註冊一個遠端會話。如果您執行多個實例,每個實例都會獲得自己的環境和會話。要從單個程序執行多個並行會話,請改用[伺服器模式](#start-a-remote-control-session)。

154 155 


318 319 

319Claude Code 無法到達功能旗標服務以檢查您的帳戶是否啟用了 Remote Control,通常是因為您離線或代理阻止了請求。一旦您有網路存取權,請重試,或執行 `claude doctor` 以取得詳細資訊。相關訊息「無法驗證您的組織的 Remote Control 政策」具有相同的原因和相同的修復。兩個訊息都在 v2.1.178 中新增。320Claude Code 無法到達功能旗標服務以檢查您的帳戶是否啟用了 Remote Control,通常是因為您離線或代理阻止了請求。一旦您有網路存取權,請重試,或執行 `claude doctor` 以取得詳細資訊。相關訊息「無法驗證您的組織的 Remote Control 政策」具有相同的原因和相同的修復。兩個訊息都在 v2.1.178 中新增。

320 321 

322<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">

323 「Remote Control 僅在透過 api.anthropic.com 使用 Claude 時可用」

324</h3>

325 

326會話未直接與 Anthropic API 通訊,因此沒有 claude.ai 後端可配對。這發生在 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry 上。{/* min-version: 2.1.196 */}自 v2.1.196 起,當 [`ANTHROPIC_BASE_URL`](/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機時,例如 [LLM 閘道](/zh-TW/llm-gateway)或代理,即使您使用 claude.ai 登入,也會發生這種情況。取消設定 `ANTHROPIC_BASE_URL` 並重新啟動會話以使用 Remote Control。

327 

321<h3 id="remote-control-is-disabled-by-your-organization’s-policy">328<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

322 「Remote Control 已被您的組織政策停用」329 「Remote Control 已被您的組織政策停用」

323</h3>330</h3>

Details

48| 僅提示 | `/loop check the deploy` | 您的提示在 [Claude 選擇的間隔](#let-claude-choose-the-interval)上執行,每次迭代 |48| 僅提示 | `/loop check the deploy` | 您的提示在 [Claude 選擇的間隔](#let-claude-choose-the-interval)上執行,每次迭代 |

49| 僅間隔或無 | `/loop` | [內建維護提示](#run-the-built-in-maintenance-prompt)執行,或您的 `loop.md`(如果存在) |49| 僅間隔或無 | `/loop` | [內建維護提示](#run-the-built-in-maintenance-prompt)執行,或您的 `loop.md`(如果存在) |

50 50 

51您也可以傳遞另一個命令作為提示,例如 `/loop 20m /review-pr 1234`,以在每次迭代時重新執行已保存的工作流程或命令51您也可以傳遞一個 skill 作為提示,例如 `/loop 20m /review-pr 1234`,以在每次迭代時重新執行該 skill{/* min-version: 2.1.196 */}自 v2.1.196 起,排程的執行只會執行 Claude [允許自行叫用](/zh-TW/skills#control-who-invokes-a-skill)的 skill。以下內容會以純文字形式傳達給 Claude,而不是執行:

52 

53* 內建命令,例如 `/permissions`、`/model` 或 `/clear`

54* 標記為 [`disable-model-invocation: true`](/zh-TW/skills#frontmatter-reference) 的 skill

55* 由 [`skillOverrides`](/zh-TW/skills#override-skill-visibility-from-settings) 設定或 `Skill` [deny rule](/zh-TW/skills#restrict-claude’s-skill-access) 從 Claude 隱藏的 skill

56* [MCP prompts](/zh-TW/mcp#use-mcp-prompts-as-commands),例如 `/mcp__github__list_prs`;MCP 伺服器公開的 skill 仍會執行

52 57 

53<h3 id="run-on-a-fixed-interval">58<h3 id="run-on-a-fixed-interval">

54 在固定間隔上執行59 在固定間隔上執行


238 243 

239工作階段範圍的排程有固有的限制:244工作階段範圍的排程有固有的限制:

240 245 

241* 任務只在 Claude Code 執行且閒置時執行。關閉終端或讓工作階段退出會停止它們執行。246* 任務只在 Claude Code 執行且閒置時執行。關閉終端或讓工作階段退出會停止它們執行。[將工作階段放在背景執行](/zh-TW/agent-view#from-inside-a-session)會將 `/loop` 任務帶到背景工作階段,該工作階段會持續執行而無需終端。

242* 沒有錯過執行的追趕。如果任務的排程時間在 Claude 忙於長時間執行的請求時經過,它會在 Claude 變為閒置時執行一次,而不是每個錯過的間隔執行一次。247* 沒有錯過執行的追趕。如果任務的排程時間在 Claude 忙於長時間執行的請求時經過,它會在 Claude 變為閒置時執行一次,而不是每個錯過的間隔執行一次。

243* 啟動新的對話會清除所有工作階段範圍的任務。使用 `claude --resume` 或 `claude --continue` 繼續會恢復尚未過期的任務:建立後七天內的重複執行任務,以及排程時間尚未到達的一次性任務。背景 Bash 和監視任務在繼續時永遠不會被恢復。248* 啟動新的對話會清除所有工作階段範圍的任務。使用 `claude --resume` 或 `claude --continue` 繼續會恢復尚未過期的任務:建立後七天內的重複執行任務,以及排程時間尚未到達的一次性任務。背景 Bash 和監視任務在繼續時永遠不會被恢復。

244 249 

Details

153 153 

154伺服器管理的設定和[端點管理的設定](/zh-TW/settings#settings-files)都佔據 Claude Code [設定階層](/zh-TW/settings#settings-precedence)中的最高層級。沒有其他設定層級可以覆蓋它們,包括命令列引數。154伺服器管理的設定和[端點管理的設定](/zh-TW/settings#settings-files)都佔據 Claude Code [設定階層](/zh-TW/settings#settings-precedence)中的最高層級。沒有其他設定層級可以覆蓋它們,包括命令列引數。

155 155 

156在受管層級內,第一個傳遞非空設定的來源會獲勝。伺服器管理的設定會先檢查,然後是端點管理的設定。來源不會合併:如果伺服器管理的設定傳遞任何金鑰,端點管理的設定會被完全忽略。如果伺服器管理的設定不傳遞任何內容,端點管理的設定會套用。156在受管層級內,已設定的 [`policyHelper`](/zh-TW/settings#compute-managed-settings-with-a-policy-helper) 會優先於其他所有受管來源,包括伺服器管理的設定:其輸出成為該執行的唯一受管設定。否則,第一個傳遞非空設定的來源會獲勝。伺服器管理的設定會先檢查,然後是端點管理的設定。來源不會合併:如果伺服器管理的設定傳遞任何金鑰,其他端點管理的設定會被完全忽略有一個例外適用:當任何管理員控制的受管來源設定時,會遵守一小組[跨來源鎖定金鑰](/zh-TW/settings#settings-precedence)(例如沙箱允許清單鎖定);使用者可寫入的 HKCU 登錄層級被排除。如果伺服器管理的設定不傳遞任何內容,端點管理的設定會套用。

157 157 

158如果您在管理員主控台中清除伺服器管理的設定,意圖回退到端點管理的 plist 或登錄原則,請注意[快取的設定](#fetch-and-caching-behavior)會在用戶端機器上持續存在,直到下次成功擷取。執行 `/status` 以查看哪個受管來源處於作用中。158如果您在管理員主控台中清除伺服器管理的設定,意圖回退到端點管理的 plist 或登錄原則,請注意[快取的設定](#fetch-and-caching-behavior)會在用戶端機器上持續存在,直到下次成功擷取。執行 `/status` 以查看哪個受管來源處於作用中。

159 159 


222* **Shell 命令設定**:執行 shell 命令的設定222* **Shell 命令設定**:執行 shell 命令的設定

223* **自訂環境變數**:不在已知安全允許清單中的變數223* **自訂環境變數**:不在已知安全允許清單中的變數

224* **Hook 設定**:任何 hook 定義224* **Hook 設定**:任何 hook 定義

225* **受管 CLAUDE.md 內容**:透過受管設定傳遞的 `claudeMd` 值

225 226 

226當這些設定存在時,使用者會看到安全對話方塊,說明正在設定的內容。使用者必須核准才能繼續。如果使用者拒絕設定,Claude Code 會結束。227當這些設定存在時,使用者會看到安全對話方塊,說明正在設定的內容。使用者必須核准才能繼續。如果使用者拒絕設定,Claude Code 會結束。

227 228 


239* Google Vertex AI240* Google Vertex AI

240* Microsoft Foundry241* Microsoft Foundry

241* [Claude Platform on AWS](/zh-TW/claude-platform-on-aws)242* [Claude Platform on AWS](/zh-TW/claude-platform-on-aws)

242* 透過 `ANTHROPIC_BASE_URL` [LLM 閘道](/zh-TW/llm-gateway) 的自訂 API 端點243* 透過 `ANTHROPIC_BASE_URL` 或第三方 [LLM 閘道](/zh-TW/llm-gateway) 的自訂 API 端點

244 

245對於 Bedrock、Vertex AI 和 Foundry 部署,自託管的 [Claude 應用程式閘道](/zh-TW/claude-apps-gateway) 提供等效的遠端管理設定傳遞:閘道登入的用戶端從閘道而不是 `api.anthropic.com` 擷取管理設定。啟動時的失敗語義不同:無法到達閘道的閘道用戶端會以錯誤結束,而不是回退到快取的設定,而每小時的背景重新整理在兩個通道上都是開放失敗的。

243 246 

244<h2 id="audit-logging">247<h2 id="audit-logging">

245 稽核記錄248 稽核記錄


253 安全考量256 安全考量

254</h2>257</h2>

255 258 

256伺服器管理的設定提供集中式原則強制執行,但它們作為用戶端控制運作。在非受管裝置上,具有管理員或 sudo 存取權的使用者可以修改 Claude Code 二進位檔、檔案系統或網路設定259伺服器管理的設定提供集中式原則強制執行,但它們作為用戶端控制運作,而非安全邊界。在非受管裝置上,使用者不需要管理員或 sudo 存取權就能略過它們

257 260 

258| 情況 | 行為 |261| 情況 | 行為 |

259| :-------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |262| :-------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

260| 使用者編輯快取的設定檔 | 篡改的檔案在啟動時套用,但正確的設定會在下次伺服器擷取時還原 |263| 使用者編輯快取的設定檔 | 篡改的檔案在啟動時套用,但正確的設定會在下次伺服器擷取時還原 |

261| 使用者刪除快取的設定檔 | 首次啟動行為發生:設定非同步擷取,有一個簡短的未強制執行視窗 |264| 使用者刪除快取的設定檔 | 首次啟動行為發生:設定非同步擷取,有一個簡短的未強制執行視窗 |

265| 使用者執行修改過的 Claude Code 二進位檔 | 能夠執行修改過用戶端的使用者可以略過任何用戶端控制 |

266| 使用者執行較舊的 Claude Code 版本 | 早於伺服器管理設定的版本不會擷取或套用它們 |

262| API 無法使用 | 如果可用,快取設定會套用,否則受管設定在下次成功擷取之前不會強制執行。使用 `forceRemoteSettingsRefresh: true` 時,CLI 會結束而不是繼續,除了 [`claude auth` 子命令](#enforce-fail-closed-startup) |267| API 無法使用 | 如果可用,快取設定會套用,否則受管設定在下次成功擷取之前不會強制執行。使用 `forceRemoteSettingsRefresh: true` 時,CLI 會結束而不是繼續,除了 [`claude auth` 子命令](#enforce-fail-closed-startup) |

263| 使用者使用不同的組織進行身份驗證 | 不會為受管組織外的帳戶傳遞設定 |268| 使用者使用不同的組織進行身份驗證 | 不會為受管組織外的帳戶傳遞設定 |

264| 使用者設定[第三方模型提供者](#platform-availability) | 伺服器管理的設定會被略過。這包括設定 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_MANTLE`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY`、`CLAUDE_CODE_USE_ANTHROPIC_AWS` 或非預設的 `ANTHROPIC_BASE_URL` |269| 使用者設定[第三方模型提供者](#platform-availability) | 伺服器管理的設定會被略過。這包括設定 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_MANTLE`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY`、`CLAUDE_CODE_USE_ANTHROPIC_AWS` 或非預設的 `ANTHROPIC_BASE_URL` |

270| 網路流量被攔截或重新導向 | 停用的 TLS 驗證或攔截的流量可以改變用戶端接收的設定 |

265 271 

266若要偵測執行時期設定變更,請使用 [`ConfigChange` hooks](/zh-TW/hooks#configchange) 來記錄修改或在未授權的變更生效前阻止它們。272若要偵測執行時期設定變更,請使用 [`ConfigChange` hooks](/zh-TW/hooks#configchange) 來記錄修改或在未授權的變更生效前阻止它們。

267 273 

268如需更強的強制執行保證,請在已在 MDM 解決方案中註冊的裝置上使用[端點管理的設定](/zh-TW/settings#settings-files)。274若要限制使用者可以使用用戶端提供的認證存取的組織,請參閱 Claude 說明中心中的[使用租戶限制強制執行網路層級存取控制](https://support.claude.com/en/articles/13198485-enforce-network-level-access-control-with-tenant-restrictions)。如需更強的強制執行保證,請在已在 MDM 解決方案中註冊的裝置上使用[端點管理的設定](/zh-TW/settings#settings-files)。

269 275 

270<h2 id="see-also">276<h2 id="see-also">

271 另請參閱277 另請參閱

sessions.md +8 −2

Details

30 session 選擇器查看的位置30 session 選擇器查看的位置

31</h3>31</h3>

32 32 

33Sessions 按專案目錄儲存。預設情況下,session 選擇器顯示來自目前 worktree 的互動式 sessions,以及在其他地方啟動並使用 `/add-dir` 新增目前目錄的 sessions。從 v2.1.169 開始,使用 [`/cd`](/zh-TW/commands) 移動 session 會將其重新定位到新目錄的專案儲存空間,因此之後會出現在該目錄的選擇器中。使用 `Ctrl+W` 擴展到儲存庫的所有 worktrees,或使用 `Ctrl+A` 擴展到此機器上的每個專案。33Sessions 按專案目錄儲存。預設情況下,session 選擇器顯示來自目前 worktree 的互動式 sessions,以及在其他地方啟動並使用 `/add-dir` 新增目前目錄的 sessions。使用 `Ctrl+W` 擴展到儲存庫的所有 worktrees,或使用 `Ctrl+A` 擴展到此機器上的每個專案。

34 

35從 v2.1.169 開始,使用 [`/cd`](/zh-TW/commands) 移動 session 會將其重新定位到新目錄的專案儲存空間,因此之後會出現在該目錄的選擇器中。從 v2.1.196 開始,移動的 session 即使在當機或強制退出後,也會保持不在舊目錄的選擇器中。在較早的版本上,當舊路徑包含特殊字元(例如底線)時,在不乾淨的退出後,它也可能在舊目錄的清單中重新出現。

34 36 

35從同一儲存庫的另一個 worktree 選擇 session 會在原地恢復它。從不相關的專案選擇 session 會將 `cd` 和恢復命令複製到您的剪貼簿。37從同一儲存庫的另一個 worktree 選擇 session 會在原地恢復它。從不相關的專案選擇 session 會將 `cd` 和恢復命令複製到您的剪貼簿。

36 38 


56 58 

57session 命名後,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它。請參閱[恢復 session](#resume-a-session) 以了解名稱解析在 worktrees 中的行為方式。59session 命名後,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它。請參閱[恢復 session](#resume-a-session) 以了解名稱解析在 worktrees 中的行為方式。

58 60 

61{/* min-version: 2.1.196 */}您從未命名的互動式 sessions 在啟動時仍會獲得預設顯示名稱。需要 Claude Code v2.1.196 或更新版本。預設名稱結合了工作目錄的名稱和一個兩字元的後綴,例如 `my-app-3f`,並在執行中 sessions 的列表中識別該 session,例如 [agent view](/zh-TW/agent-view) 和 `claude agents --json` 輸出。

62 

63預設名稱不是恢復控制代碼:`claude --resume <name>`、`/resume <name>` 和 session 選擇器只符合您設定的名稱。命名 session 會取代預設名稱。

64 

59<h2 id="use-the-session-picker">65<h2 id="use-the-session-picker">

60 使用 session 選擇器66 使用 session 選擇器

61</h2>67</h2>


117 匯出和定位 session 資料123 匯出和定位 session 資料

118</h2>124</h2>

119 125 

120執行 `/export` 將目前對話複製到您的剪貼簿或將其儲存為純文字檔案,訊息和工具輸出呈現為可讀文字。傳遞檔案名以直接寫入該檔案126執行 `/export` 以開啟一個選單讓您將目前對話複製到剪貼簿或將其儲存為純文字檔案,訊息和工具輸出呈現為可讀文字。傳遞檔案名以略過選單並直接寫入該檔案

121 127 

122<h3 id="access-conversations-from-scripts">128<h3 id="access-conversations-from-scripts">

123 從指令碼存取對話129 從指令碼存取對話

settings.md +31 −23

Details

12 設定範圍12 設定範圍

13</h2>13</h2>

14 14 

15Claude Code 使用**範圍系統**來決定設定的適用位置和共享對象。了解範圍可幫助您決定如何為個人使用、團隊協作或企業部署設定 Claude Code。15Claude Code 使用範圍系統來決定設定的適用位置和共享對象。了解範圍可幫助您決定如何為個人使用、團隊協作或企業部署設定 Claude Code。

16 16 

17<h3 id="available-scopes">17<h3 id="available-scopes">

18 可用的範圍18 可用的範圍


97 * `.claude/settings.local.json` 用於未簽入的設定,適用於個人偏好和實驗。Claude Code 建立 `.claude/settings.local.json` 時,會設定 git 以忽略該檔案。如果您自己建立該檔案,請手動將其新增到 gitignore。97 * `.claude/settings.local.json` 用於未簽入的設定,適用於個人偏好和實驗。Claude Code 建立 `.claude/settings.local.json` 時,會設定 git 以忽略該檔案。如果您自己建立該檔案,請手動將其新增到 gitignore。

98* **Managed 設定**:對於需要集中控制的組織,Claude Code 支援多種 managed 設定的傳遞機制。所有機制都使用相同的 JSON 格式,無法被使用者或專案設定覆蓋:98* **Managed 設定**:對於需要集中控制的組織,Claude Code 支援多種 managed 設定的傳遞機制。所有機制都使用相同的 JSON 格式,無法被使用者或專案設定覆蓋:

99 99 

100 * **伺服器管理的設定**:透過 Claude.ai 管理員主控台從 Anthropic 的伺服器傳遞。請參閱[伺服器管理的設定](/zh-TW/server-managed-settings)。100 * **伺服器管理的設定**:透過 Anthropic 的伺服器或自託管的 [Claude apps gateway](/zh-TW/claude-apps-gateway) 在登入時遠端傳遞,可從 claude.ai 管理員主控台或自託管 Claude apps gateway 傳遞。請參閱[伺服器管理的設定](/zh-TW/server-managed-settings)。

101 * **MDM/OS 層級政策**:透過 macOS 和 Windows 上的原生裝置管理傳遞:101 * **MDM/OS 層級政策**:透過 macOS 和 Windows 上的原生裝置管理傳遞:

102 * macOS:`com.anthropic.claudecode` managed preferences 網域。plist 的頂層金鑰鏡像 `managed-settings.json`,巢狀設定為字典,陣列為 plist 陣列。透過 Jamf、Iru (Kandji) 或類似 MDM 工具中的設定檔案部署。102 * macOS:`com.anthropic.claudecode` managed preferences 網域。plist 的頂層金鑰鏡像 `managed-settings.json`,巢狀設定為字典,陣列為 plist 陣列。透過 Jamf、Iru (Kandji) 或類似 MDM 工具中的設定檔案部署。

103 * Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` 登錄機碼,其中包含 `Settings` 值(REG\_SZ 或 REG\_EXPAND\_SZ)包含 JSON(透過群組原則或 Intune 部署)103 * Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` 登錄機碼,其中包含 `Settings` 值(REG\_SZ 或 REG\_EXPAND\_SZ)包含 JSON(透過群組原則或 Intune 部署)


211`settings.json` 支援多個選項:211`settings.json` 支援多個選項:

212 212 

213| 金鑰 | 說明 | 範例 |213| 金鑰 | 說明 | 範例 |

214| :-------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |214| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------ |

215| `advisorModel` | {/* min-version: 2.1.98 */}伺服器端 [advisor tool](/zh-TW/advisor) 的模型。接受模型別名,例如 `"opus"`、`"sonnet"` 或 `"fable"`({/* min-version: 2.1.170 */}v2.1.170+),或完整模型 ID。當您執行 `/advisor` 時自動寫入。取消設定以停用 advisor。需要 Claude Code v2.1.98 或更新版本 | `"opus"` |215| `advisorModel` | {/* min-version: 2.1.98 */}伺服器端 [advisor tool](/zh-TW/advisor) 的模型。接受模型別名,例如 `"opus"`、`"sonnet"` 或 `"fable"`({/* min-version: 2.1.170 */}v2.1.170+),或完整模型 ID。當您執行 `/advisor` 時自動寫入。取消設定以停用 advisor。需要 Claude Code v2.1.98 或更新版本 | `"opus"` |

216| `agent` | 將主執行緒作為命名 subagent 執行,並為從 `claude agents` 分派的工作階段設定預設 agent。應用該 subagent 的系統提示、工具限制和模型。請參閱[明確叫用 subagents](/zh-TW/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |216| `agent` | 將主執行緒作為命名 subagent 執行,並為從 `claude agents` 分派的工作階段設定預設 agent。應用該 subagent 的系統提示、工具限制和模型。請參閱[明確叫用 subagents](/zh-TW/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |

217| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}**預設**:`false`。當[遠端控制](/zh-TW/remote-control)已連線時,允許 Claude 主動傳送推播通知到您的手機,例如當長時間工作完成時。在 `/config` 中顯示為**Claude 決定時推播**。請參閱[行動推播通知](/zh-TW/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更新版本 | `true` |217| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}**預設**:`false`。當[遠端控制](/zh-TW/remote-control)已連線時,允許 Claude 主動傳送推播通知到您的手機,例如當長時間工作完成時。在 `/config` 中顯示為**Claude 決定時推播**。請參閱[行動推播通知](/zh-TW/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更新版本 | `true` |


229| `autoMemoryDirectory` | [自動記憶](/zh-TW/memory#storage-location)儲存的自訂目錄。接受絕對路徑或 `~/` 前綴的路徑。從專案或本機設定接受,此設定在您接受工作區信任對話後才受尊重,因為複製的儲存庫可能提供此檔案 | `"~/my-memory-dir"` |229| `autoMemoryDirectory` | [自動記憶](/zh-TW/memory#storage-location)儲存的自訂目錄。接受絕對路徑或 `~/` 前綴的路徑。從專案或本機設定接受,此設定在您接受工作區信任對話後才受尊重,因為複製的儲存庫可能提供此檔案 | `"~/my-memory-dir"` |

230| `autoMemoryEnabled` | **預設**:`true`。啟用[自動記憶](/zh-TW/memory#enable-or-disable-auto-memory)。當為 `false` 時,Claude 不會從自動記憶目錄讀取或寫入。您也可以在工作階段期間使用 `/memory` 切換此設定。若要透過環境變數停用,請在 `env` 中設定 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/zh-TW/env-vars) | `false` |230| `autoMemoryEnabled` | **預設**:`true`。啟用[自動記憶](/zh-TW/memory#enable-or-disable-auto-memory)。當為 `false` 時,Claude 不會從自動記憶目錄讀取或寫入。您也可以在工作階段期間使用 `/memory` 切換此設定。若要透過環境變數停用,請在 `env` 中設定 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/zh-TW/env-vars) | `false` |

231| `autoMode` | 自訂[自動模式](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器阻止和允許的內容。包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 陣列的散文規則。在陣列中包含字面字串 `"$defaults"` 以在該位置繼承內建規則。請參閱[設定自動模式](/zh-TW/auto-mode-config)。不從共享專案設定讀取 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |231| `autoMode` | 自訂[自動模式](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器阻止和允許的內容。包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 陣列的散文規則。在陣列中包含字面字串 `"$defaults"` 以在該位置繼承內建規則。請參閱[設定自動模式](/zh-TW/auto-mode-config)。不從共享專案設定讀取 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

232| `autoMode.classifyAllShell` | {/* min-version: 2.1.193 */}**預設**:`false`。當為 `true` 時,在自動模式使用中時暫停每個 Bash 和 PowerShell 允許規則,以便所有 shell 命令透過分類器路由,而不僅僅是符合任意程式碼執行模式的規則。請參閱[透過分類器路由所有 shell 命令](/zh-TW/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更新版本 | `true` |

232| `autoScrollEnabled` | **預設**:`true`。在[全螢幕渲染](/zh-TW/fullscreen)中,跟隨新輸出到對話的底部。在 `/config` 中顯示為**自動捲軸**。當此設定關閉時,權限提示仍會捲軸進入檢視 | `false` |233| `autoScrollEnabled` | **預設**:`true`。在[全螢幕渲染](/zh-TW/fullscreen)中,跟隨新輸出到對話的底部。在 `/config` 中顯示為**自動捲軸**。當此設定關閉時,權限提示仍會捲軸進入檢視 | `false` |

233| `autoUpdatesChannel` | **預設**:`"latest"`。遵循更新的發行頻道。使用 `"stable"` 以取得通常約一週舊的版本並跳過有重大迴歸的版本,或 `"latest"` 以取得最新版本。若要完全停用自動更新,請在 `env` 中設定 [`DISABLE_AUTOUPDATER`](/zh-TW/setup#disable-auto-updates) | `"stable"` |234| `autoUpdatesChannel` | **預設**:`"latest"`。遵循更新的發行頻道。使用 `"stable"` 以取得通常約一週舊的版本並跳過有重大迴歸的版本,或 `"latest"` 以取得最新版本。若要完全停用自動更新,請在 `env` 中設定 [`DISABLE_AUTOUPDATER`](/zh-TW/setup#disable-auto-updates) | `"stable"` |

234| `availableModels` | 限制使用者可以為主工作階段、[subagents](/zh-TW/sub-agents)、[skills](/zh-TW/skills) 和 [advisor](/zh-TW/advisor) 選擇的模型。不影響預設選項,除非 `enforceAvailableModels` 也設定。請參閱[限制模型選擇](/zh-TW/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |235| `availableModels` | 限制使用者可以為主工作階段、[subagents](/zh-TW/sub-agents)、[skills](/zh-TW/skills) 和 [advisor](/zh-TW/advisor) 選擇的模型。不影響預設選項,除非 `enforceAvailableModels` 也設定。請參閱[限制模型選擇](/zh-TW/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |


253| `disableDeepLinkRegistration` | 設定為 `"disable"` 以防止 Claude Code 在啟動時向作業系統註冊 `claude-cli://` 協議處理程式。[深層連結](/zh-TW/deep-links)讓外部工具透過預先填入的提示開啟 Claude Code 工作階段。在協議處理程式註冊受限或單獨管理的環境中很有用 | `"disable"` |254| `disableDeepLinkRegistration` | 設定為 `"disable"` 以防止 Claude Code 在啟動時向作業系統註冊 `claude-cli://` 協議處理程式。[深層連結](/zh-TW/deep-links)讓外部工具透過預先填入的提示開啟 Claude Code 工作階段。在協議處理程式註冊受限或單獨管理的環境中很有用 | `"disable"` |

254| `disabledMcpjsonServers` | 要拒絕的 `.mcp.json` 檔案中特定 MCP servers 的清單 | `["filesystem"]` |255| `disabledMcpjsonServers` | 要拒絕的 `.mcp.json` 檔案中特定 MCP servers 的清單 | `["filesystem"]` |

255| `disableRemoteControl` | {/* min-version: 2.1.128 */}停用[遠端控制](/zh-TW/remote-control):阻止 `claude remote-control`、`--remote-control` 旗標、自動啟動和工作階段內切換。通常放在[managed 設定](/zh-TW/permissions#managed-settings)中以進行每個裝置的 MDM 強制執行,但適用於任何範圍。需要 Claude Code v2.1.128 或更新版本 | `true` |256| `disableRemoteControl` | {/* min-version: 2.1.128 */}停用[遠端控制](/zh-TW/remote-control):阻止 `claude remote-control`、`--remote-control` 旗標、自動啟動和工作階段內切換。通常放在[managed 設定](/zh-TW/permissions#managed-settings)中以進行每個裝置的 MDM 強制執行,但適用於任何範圍。需要 Claude Code v2.1.128 或更新版本 | `true` |

257| `disableSideloadFlags` | {/* min-version: 2.1.193 */}(Managed 設定僅限)在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 旗標,使用者可能會傳遞這些旗標以繞過 [`strictKnownMarketplaces`](#strictknownmarketplaces) 進行單一執行。也拒絕從任何內部產生 CLI 的表面傳遞這些旗標,目前[Cowork](/zh-TW/desktop) 桌面應用程式中的本機工作階段。其 servers 全部為進程內 `type: "sdk"` 項目的 `--mcp-config` 仍被接受,因此 Agent SDK 和 VS Code 擴充功能保持工作。不阻止 `claude mcp add`、`.mcp.json` 或 SDK `setMcpServers()`;與 [`allowedMcpServers`](/zh-TW/managed-mcp) 配對以進行每個 server 的 MCP 控制。需要 Claude Code v2.1.193 或更新版本 | `true` |

256| `disableSkillShellExecution` | 停用 [skills](/zh-TW/skills) 和來自使用者、專案、plugin 或其他目錄來源的自訂命令中的內嵌 shell 執行(`` !`...` `` 和 ` ```! ` 區塊)。命令會被替換為 `[shell command execution disabled by policy]` 而不是被執行。Bundled 和 managed skills 不受影響。在[managed 設定](/zh-TW/permissions#managed-settings)中最有用,使用者無法覆蓋它 | `true` |258| `disableSkillShellExecution` | 停用 [skills](/zh-TW/skills) 和來自使用者、專案、plugin 或其他目錄來源的自訂命令中的內嵌 shell 執行(`` !`...` `` 和 ` ```! ` 區塊)。命令會被替換為 `[shell command execution disabled by policy]` 而不是被執行。Bundled 和 managed skills 不受影響。在[managed 設定](/zh-TW/permissions#managed-settings)中最有用,使用者無法覆蓋它 | `true` |

257| `disableWorkflows` | **預設**:`false`。停用[動態工作流程](/zh-TW/workflows#turn-workflows-off)和 bundled workflow 命令。等同於將 `CLAUDE_CODE_DISABLE_WORKFLOWS` 設定為 `1` | `true` |259| `disableWorkflows` | **預設**:`false`。停用[動態工作流程](/zh-TW/workflows#turn-workflows-off)和 bundled workflow 命令。等同於將 `CLAUDE_CODE_DISABLE_WORKFLOWS` 設定為 `1` | `true` |

258| `editorMode` | **預設**:`"normal"`。輸入提示的快捷鍵模式:`"normal"` 或 `"vim"`。在 `/config` 中顯示為**編輯器模式** | `"vim"` |260| `editorMode` | **預設**:`"normal"`。輸入提示的快捷鍵模式:`"normal"` 或 `"vim"`。在 `/config` 中顯示為**編輯器模式** | `"vim"` |

259| `effortLevel` | 跨工作階段持久化[努力等級](/zh-TW/model-config#adjust-effort-level)。接受 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`。當您執行 `/effort` 時自動寫入,其中包含其中一個值。`--effort` 和 [`CLAUDE_CODE_EFFORT_LEVEL`](/zh-TW/env-vars) 會覆蓋此設定以進行一個工作階段。請參閱[調整努力等級](/zh-TW/model-config#adjust-effort-level)以了解支援的模型 | `"xhigh"` |261| `effortLevel` | 跨工作階段持久化[努力等級](/zh-TW/model-config#adjust-effort-level)。接受 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`。當您執行 `/effort` 時自動寫入,其中包含其中一個值。`--effort` 和 [`CLAUDE_CODE_EFFORT_LEVEL`](/zh-TW/env-vars) 會覆蓋此設定以進行一個工作階段。請參閱[調整努力等級](/zh-TW/model-config#adjust-effort-level)以了解支援的模型 | `"xhigh"` |

260| `enableAllProjectMcpServers` | 自動批准專案 `.mcp.json` 檔案中定義的所有 MCP servers | `true` |262| `enableAllProjectMcpServers` | 自動批准專案 `.mcp.json` 檔案中定義的所有 MCP servers。{/* min-version: 2.1.196 */}自 v2.1.196 起,`claude mcp list` 和 `claude mcp get` 在不受信任的資料夾中僅從[未簽入儲存庫的設定檔案](/zh-TW/mcp#managing-your-servers)中尊重此金鑰 | `true` |

261| `enabledMcpjsonServers` | 要批准的 `.mcp.json` 檔案中特定 MCP servers 的清單 | `["memory", "github"]` |263| `enableArtifact` | {/* min-version: 2.1.196 */}為此使用者啟用或停用 [Artifact](/zh-TW/artifacts) 工具。未設定時,預設遵循功能的[可用性](/zh-TW/artifacts#availability)以取得您的帳戶。`/config` 中的 **Artifacts** 列寫入此金鑰。Managed `disableArtifact` 和您組織的[管理員設定](/zh-TW/artifacts#manage-artifacts-for-your-organization)優先,該金鑰在專案和本機設定(`.claude/settings.json`、`.claude/settings.local.json`)中被忽略,儲存庫可能會簽入。需要 Claude Code v2.1.196 或更新版本 | `true` |

262| `enforceAvailableModels` | {/* min-version: 2.1.175 */}將 `availableModels` 白名單擴展到預設模型。當在 managed 設定中為 `true` `availableModels` 是非空陣列時,預設選項會回退到第一個可用的白名單項目。當 `availableModels` 未設定或為空時無效。請參閱[為預設模型強制執行白名單](/zh-TW/model-config#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更新版本 | `true` |264| `enabledMcpjsonServers` | 要批准的 `.mcp.json` 檔案中特定 MCP servers 的清單。{/* min-version: 2.1.196 */} v2.1.196 起,`claude mcp list` `claude mcp get` 在不受信任的資料夾中僅從[未簽入儲存庫的設定檔案](/zh-TW/mcp#managing-your-servers)中尊重此金鑰 | `["memory", "github"]` |

263| `env` | 應用於每個工作階段和 Claude Code 從中產生的子流程的環境變數。{/* min-version: 2.1.143 */} v2.1.143 起,此處設定的 `NO_COLOR` `FORCE_COLOR` 會傳遞到子流程但不會改變 Claude Code 自己的介面顏色在啟動 `claude` 前在您的 shell 中設定這些以改變介面顏色 | `{"FOO": "bar"}` |265| `enforceAvailableModels` | {/* min-version: 2.1.175 */} `availableModels` 白名單擴展到預設模型。當在 managed 設定中為 `true` `availableModels` 是非空陣列時預設選項會回退到第一個可用的白名單項目,但僅當使用者帳戶類型的預設模型不在白名單中時;白名單預設會保持原樣 `availableModels` 未設定或為空時無效。請參閱[為預設模型強制執行白名單](/zh-TW/model-config#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更新版本 | `true` |

264| `fallbackModel` | 當主模型過載或不可用時按順序嘗試的備用模型。Claude Code 會為該輪的其餘部分切換到鏈中的下一個可用模型並顯示通知。`"default"` 擴展為預設模型。鏈限制為三個模型;額外項目會被忽略。與大多數陣列設定不同此金鑰不跨設定檔案合併:定義它的最高優先順序檔案提供整個鏈[`--fallback-model`](/zh-TW/cli-reference#cli-flags) 旗標會覆蓋此設定以進行一個工作階段請參閱[備用模型鏈](/zh-TW/model-config#fallback-model-chains) | `["claude-sonnet-4-6", "claude-haiku-4-5"]` |266| `env` | 應用於每個工作階段和 Claude Code 從中產生的子流程的環境變數{/* min-version: 2.1.143 */}自 v2.1.143 起,此處設定的 `NO_COLOR` 和 `FORCE_COLOR` 會傳遞到子流程但不會改變 Claude Code 自己的介面顏色在啟動 `claude` 前在您的 shell 中設定這些以改變介面顏色{/* min-version: 2.1.195 */}自 v2.1.195 起,Claude Code 的託管環境設定的身份變數(例如 `CLAUDE_CODE_REMOTE` 和 `CLAUDE_CODE_ACCOUNT_UUID`)在此處設定時會被忽略 | `{"FOO": "bar"}` |

267| `fallbackModel` | 當主模型過載或不可用時按順序嘗試的備用模型。Claude Code 會為該輪的其餘部分切換到鏈中的下一個可用模型並顯示通知。`"default"` 擴展為預設模型。鏈限制為三個模型;額外項目會被忽略。與大多數陣列設定不同,此金鑰不跨設定檔案合併:定義它的最高優先順序檔案提供整個鏈。[`--fallback-model`](/zh-TW/cli-reference#cli-flags) 旗標會覆蓋此設定以進行一個工作階段。請參閱[備用模型鏈](/zh-TW/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` |

265| `fastModePerSessionOptIn` | 當為 `true` 時,快速模式不會跨工作階段持久化。每個工作階段都以快速模式關閉開始,需要使用者使用 `/fast` 啟用它。使用者的快速模式偏好仍會儲存。請參閱[需要每個工作階段的選擇加入](/zh-TW/fast-mode#require-per-session-opt-in) | `true` |268| `fastModePerSessionOptIn` | 當為 `true` 時,快速模式不會跨工作階段持久化。每個工作階段都以快速模式關閉開始,需要使用者使用 `/fast` 啟用它。使用者的快速模式偏好仍會儲存。請參閱[需要每個工作階段的選擇加入](/zh-TW/fast-mode#require-per-session-opt-in) | `true` |

266| `feedbackSurveyRate` | [工作階段品質調查](/zh-TW/data-usage#session-quality-surveys)出現時符合條件的機率(0–1)。設定為 `0` 以完全抑制,或設定 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/zh-TW/env-vars) 在 `env` 中。在使用 Bedrock、Vertex 或 Foundry 時很有用,其中預設樣本率不適用 | `0.05` |269| `feedbackSurveyRate` | [工作階段品質調查](/zh-TW/data-usage#session-quality-surveys)出現時符合條件的機率(0–1)。設定為 `0` 以完全抑制,或設定 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/zh-TW/env-vars) 在 `env` 中。在使用 Bedrock、Vertex 或 Foundry 時很有用,其中預設樣本率不適用 | `0.05` |

267| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**預設**:`true`。在每次編輯前快照檔案,以便 [`/rewind`](/zh-TW/checkpointing) 可以還原它們。在 `/config` 中顯示為**倒帶程式碼(檢查點)**。若要透過環境變數停用,請在 `env` 中設定 [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/zh-TW/env-vars) | `false` |270| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**預設**:`true`。在每次編輯前快照檔案,以便 [`/rewind`](/zh-TW/checkpointing) 可以還原它們。在 `/config` 中顯示為**倒帶程式碼(檢查點)**。若要透過環境變數停用,請在 `env` 中設定 [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/zh-TW/env-vars) | `false` |

268| `fileSuggestion` | 為 `@` 檔案自動完成設定自訂指令碼。請參閱[檔案建議設定](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |271| `fileSuggestion` | 為 `@` 檔案自動完成設定自訂指令碼。請參閱[檔案建議設定](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

269| `footerLinksRegexes` | {/* min-version: 2.1.176 */}當 regex 符合輪次輸出時在頁尾中渲染額外的可點擊徽章。每個項目都有一個 `pattern`、一個包含 `{name}` 佔位符的 URL 範本(從命名擷取群組填入),以及一個選用的 `label`。僅從使用者設定、`--settings` 旗標和 managed 設定讀取。請參閱[頁尾連結徽章](#footer-link-badges)以了解 URL 限制、方案白名單和限制。需要 Claude Code v2.1.176 或更新版本 | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |272| `footerLinksRegexes` | {/* min-version: 2.1.176 */}當 regex 符合輪次輸出時在頁尾中渲染額外的可點擊徽章。每個項目都有一個 `pattern`、一個包含 `{name}` 佔位符的 URL 範本(從命名擷取群組填入),以及一個選用的 `label`。僅從使用者設定、`--settings` 旗標和 managed 設定讀取。請參閱[頁尾連結徽章](#footer-link-badges)以了解 URL 限制、方案白名單和限制。需要 Claude Code v2.1.176 或更新版本 | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

270| `forceLoginMethod` | 使用 `claudeai` 限制登入到 Claude.ai 帳戶,`console` 限制登入到 Claude Console 帳戶。在 managed 設定中設定時,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的工作階段在啟動時被阻止,因為兩個值都無法在沒有第一方 OAuth 的情況下滿足。第三方提供者工作階段(例如 Bedrock、Vertex 和 Foundry)不被阻止:它們針對您的雲端提供者而不是 Anthropic 進行驗證 | `claudeai` |273| `forceLoginMethod` | 使用 `claudeai` 限制登入到 Claude.ai 帳戶,`console` 限制登入到 Claude Console 帳戶,或 `gateway` 限制登入到雲端閘道;請參閱 [Claude apps gateway](/zh-TW/claude-apps-gateway)。在 managed 設定中設定為任何值時,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的工作階段在啟動時被阻止,因為環境認證無法滿足所需的登入方法。第三方提供者工作階段(例如 Bedrock、Vertex 和 Foundry)不被阻止:它們針對您的雲端提供者而不是 Anthropic 進行驗證 | `claudeai` |

274| `forceLoginGatewayUrl` | 在 `/login` 雲端閘道畫面上預先填入並鎖定閘道 URL。此金鑰或 `forceLoginMethod: "gateway"` 會顯示該畫面;同時設定兩者以便 URL 被填入。僅在 managed 政策層級受尊重;在使用者和專案設定中被忽略。請參閱 [Claude apps gateway](/zh-TW/claude-apps-gateway#set-the-gateway-url) | `"https://claude-gateway.example.com"` |

271| `forceLoginOrgUUID` | 要求登入屬於特定 Anthropic 組織。接受單一 UUID 字串(也會在登入期間預先選擇該組織),或 UUID 陣列,其中接受任何列出的組織而不預先選擇。在 managed 設定中設定時,如果驗證帳戶不屬於列出的組織,登入會失敗;由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的工作階段在啟動時被阻止,因為無法驗證它們的組織成員資格。第三方提供者工作階段(例如 Bedrock、Vertex 和 Foundry)不被阻止:使用您的雲端 IAM 限制可以使用哪些雲端帳戶。空陣列會失敗關閉並使用誤設定訊息阻止登入 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 或 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |275| `forceLoginOrgUUID` | 要求登入屬於特定 Anthropic 組織。接受單一 UUID 字串(也會在登入期間預先選擇該組織),或 UUID 陣列,其中接受任何列出的組織而不預先選擇。在 managed 設定中設定時,如果驗證帳戶不屬於列出的組織,登入會失敗;由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的工作階段在啟動時被阻止,因為無法驗證它們的組織成員資格。第三方提供者工作階段(例如 Bedrock、Vertex 和 Foundry)不被阻止:使用您的雲端 IAM 限制可以使用哪些雲端帳戶。空陣列會失敗關閉並使用誤設定訊息阻止登入 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 或 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

272| `forceRemoteSettingsRefresh` | (Managed 設定僅限)阻止 CLI 啟動,直到從伺服器新鮮擷取遠端 managed 設定。如果擷取失敗,CLI 會結束而不是繼續使用快取或無設定。未設定時,啟動會繼續而不等待遠端設定。請參閱[失敗關閉強制執行](/zh-TW/server-managed-settings#enforce-fail-closed-startup) | `true` |276| `forceRemoteSettingsRefresh` | (Managed 設定僅限)阻止 CLI 啟動,直到從伺服器新鮮擷取遠端 managed 設定。如果擷取失敗,CLI 會結束而不是繼續使用快取或無設定。未設定時,啟動會繼續而不等待遠端設定。請參閱[失敗關閉強制執行](/zh-TW/server-managed-settings#enforce-fail-closed-startup) | `true` |

273| `gcpAuthRefresh` | 當 GCP Application Default Credentials 過期或無法載入時重新整理它們的自訂指令碼。請參閱[進階認證設定](/zh-TW/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |277| `gcpAuthRefresh` | 當 GCP Application Default Credentials 過期或無法載入時重新整理它們的自訂指令碼。請參閱[進階認證設定](/zh-TW/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |


276| `includeGitInstructions` | **預設**:`true`。在 Claude 的系統提示中包含內建提交和 PR 工作流程指示和 git 狀態快照。設定為 `false` 以移除兩者,例如在使用您自己的 git 工作流程 skills 時。`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 環境變數在設定時優先於此設定 | `false` |280| `includeGitInstructions` | **預設**:`true`。在 Claude 的系統提示中包含內建提交和 PR 工作流程指示和 git 狀態快照。設定為 `false` 以移除兩者,例如在使用您自己的 git 工作流程 skills 時。`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 環境變數在設定時優先於此設定 | `false` |

277| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}**預設**:`false`。當[遠端控制](/zh-TW/remote-control)已連線時,當權限提示或問題等待您的輸入時傳送推播通知到您的手機。在 `/config` 中顯示為**需要操作時推播**。請參閱[行動推播通知](/zh-TW/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更新版本 | `true` |281| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}**預設**:`false`。當[遠端控制](/zh-TW/remote-control)已連線時,當權限提示或問題等待您的輸入時傳送推播通知到您的手機。在 `/config` 中顯示為**需要操作時推播**。請參閱[行動推播通知](/zh-TW/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更新版本 | `true` |

278| `language` | 設定 Claude 的首選回應語言(例如 `"japanese"`、`"spanish"`、`"french"`)。Claude 預設會以此語言回應。也設定[語音聽寫](/zh-TW/voice-dictation#change-the-dictation-language)語言和自動產生的工作階段標題。{/* min-version: 2.1.176 */}自 v2.1.176 起,未設定時,工作階段標題符合您對話的語言 | `"japanese"` |282| `language` | 設定 Claude 的首選回應語言(例如 `"japanese"`、`"spanish"`、`"french"`)。Claude 預設會以此語言回應。也設定[語音聽寫](/zh-TW/voice-dictation#change-the-dictation-language)語言和自動產生的工作階段標題。{/* min-version: 2.1.176 */}自 v2.1.176 起,未設定時,工作階段標題符合您對話的語言 | `"japanese"` |

279| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}**預設**:`1536`。[skill 清單](/zh-TW/skills#skill-descriptions-are-cut-short)中每個 skill 的字元上限,Claude 每輪看到的 `description` 和 `when_to_use` 文字的組合。超過此長度的文字會被截斷。提高以保持長描述完整,代價是每輪更多內容;降低以在 [`skillListingBudgetFraction`](#available-settings) 下適應更多 skills。需要 Claude Code v2.1.105 或更新版本 | `2048` |

280| `minimumVersion` | 防止背景自動更新和 `claude update` 安裝低於此版本的版本。當從 `"latest"` 頻道切換到 `"stable"` 時透過 `/config` 提示您保持在目前版本或允許降級。選擇保持設定此值。也適用於[managed 設定](/zh-TW/permissions#managed-settings)以釘選組織範圍的最小值。如需完全阻止啟動的硬底線,請參閱 `requiredMinimumVersion` | `"2.1.100"` |283| `minimumVersion` | 防止背景自動更新和 `claude update` 安裝低於此版本的版本。當從 `"latest"` 頻道切換到 `"stable"` 時透過 `/config` 提示您保持在目前版本或允許降級。選擇保持設定此值。也適用於[managed 設定](/zh-TW/permissions#managed-settings)以釘選組織範圍的最小值。如需完全阻止啟動的硬底線,請參閱 `requiredMinimumVersion` | `"2.1.100"` |

281| `model` | 覆蓋 Claude Code 使用的預設模型。`--model` 和 [`ANTHROPIC_MODEL`](/zh-TW/model-config#environment-variables) 會覆蓋此設定以進行一個工作階段 | `"claude-sonnet-4-6"` |284| `model` | 覆蓋 Claude Code 使用的預設模型。`--model` 和 [`ANTHROPIC_MODEL`](/zh-TW/model-config#environment-variables) 會覆蓋此設定以進行一個工作階段 | `"claude-sonnet-5"` |

282| `modelOverrides` | 將 Anthropic 模型 ID 對應到提供者特定的模型 ID,例如 Bedrock 推論設定檔 ARN。每個模型選擇器項目在呼叫提供者 API 時使用其對應的值。請參閱[按版本覆蓋模型 ID](/zh-TW/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |285| `modelOverrides` | 將 Anthropic 模型 ID 對應到提供者特定的模型 ID,例如 Bedrock 推論設定檔 ARN。每個模型選擇器項目在呼叫提供者 API 時使用其對應的值。請參閱[按版本覆蓋模型 ID](/zh-TW/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

283| `otelHeadersHelper` | 產生動態 OpenTelemetry 標頭的指令碼。在啟動時和定期執行。使用 [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/zh-TW/env-vars) 設定重新整理間隔。請參閱[動態標頭](/zh-TW/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |286| `otelHeadersHelper` | 產生動態 OpenTelemetry 標頭的指令碼。在啟動時和定期執行。使用 [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/zh-TW/env-vars) 設定重新整理間隔。請參閱[動態標頭](/zh-TW/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |

284| `outputStyle` | 設定輸出樣式以調整系統提示。請參閱[輸出樣式文件](/zh-TW/output-styles) | `"Explanatory"` |287| `outputStyle` | 設定輸出樣式以調整系統提示。請參閱[輸出樣式文件](/zh-TW/output-styles) | `"Explanatory"` |


300| `showThinkingSummaries` | **預設**:`false`。在互動式工作階段中顯示[擴展思考](/zh-TW/model-config#extended-thinking)摘要。未設定或 `false` 時,思考區塊由 API 編輯並顯示為摺疊的存根。編輯只會改變您看到的內容,而不是模型生成的內容:若要減少思考支出,請[降低預算或停用思考](/zh-TW/model-config#extended-thinking)。此設定在非互動模式(`-p`)、Agent SDK 或 IDE 擴充功能(例如 VS Code)中無效 | `true` |303| `showThinkingSummaries` | **預設**:`false`。在互動式工作階段中顯示[擴展思考](/zh-TW/model-config#extended-thinking)摘要。未設定或 `false` 時,思考區塊由 API 編輯並顯示為摺疊的存根。編輯只會改變您看到的內容,而不是模型生成的內容:若要減少思考支出,請[降低預算或停用思考](/zh-TW/model-config#extended-thinking)。此設定在非互動模式(`-p`)、Agent SDK 或 IDE 擴充功能(例如 VS Code)中無效 | `true` |

301| `showTurnDuration` | **預設**:`true`。在回應後顯示輪次持續時間訊息,例如「Cooked for 1m 6s」。在 `/config` 中顯示為**顯示輪次持續時間** | `false` |304| `showTurnDuration` | **預設**:`true`。在回應後顯示輪次持續時間訊息,例如「Cooked for 1m 6s」。在 `/config` 中顯示為**顯示輪次持續時間** | `false` |

302| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}**預設**:`0.01`(1%)。為 Claude 每輪看到的[skill 清單](/zh-TW/skills#skill-descriptions-are-cut-short)保留的模型內容視窗分數。當清單超過預算時,最少使用的 skills 的描述會摺疊為裸名稱,以便 Claude 仍可叫用它們,但不會看到原因。提高以保持更多描述可見,代價是每輪更多內容。`/doctor` 顯示目前的截斷計數和受影響的 skills。需要 Claude Code v2.1.105 或更新版本 | `0.02` |305| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}**預設**:`0.01`(1%)。為 Claude 每輪看到的[skill 清單](/zh-TW/skills#skill-descriptions-are-cut-short)保留的模型內容視窗分數。當清單超過預算時,最少使用的 skills 的描述會摺疊為裸名稱,以便 Claude 仍可叫用它們,但不會看到原因。提高以保持更多描述可見,代價是每輪更多內容。`/doctor` 顯示目前的截斷計數和受影響的 skills。需要 Claude Code v2.1.105 或更新版本 | `0.02` |

306| `skillListingMaxDescChars` | {/* min-version: 2.1.105 */}**預設**:`1536`。[skill 清單](/zh-TW/skills#skill-descriptions-are-cut-short)中每個 skill 的字元上限,Claude 每輪看到的 `description` 和 `when_to_use` 文字的組合。超過此長度的文字會被截斷。提高以保持長描述完整,代價是每輪更多內容;降低以在 [`skillListingBudgetFraction`](#available-settings) 下適應更多 skills。需要 Claude Code v2.1.105 或更新版本 | `2048` |

303| `skillOverrides` | {/* min-version: 2.1.129 */}按 skill 名稱鍵入的每個 skill 可見性覆蓋。值為 `"on"`、`"name-only"`、`"user-invocable-only"` 或 `"off"`。讓您隱藏或摺疊 skill 而無需編輯其 SKILL.md。不適用於 plugin skills,這些由 `/plugin` 管理。`/skills` 功能表將這些寫入 `.claude/settings.local.json`。請參閱[從設定覆蓋 skill 可見性](/zh-TW/skills#override-skill-visibility-from-settings)。需要 Claude Code v2.1.129 或更新版本 | `{"legacy-context": "name-only", "deploy": "off"}` |307| `skillOverrides` | {/* min-version: 2.1.129 */}按 skill 名稱鍵入的每個 skill 可見性覆蓋。值為 `"on"`、`"name-only"`、`"user-invocable-only"` 或 `"off"`。讓您隱藏或摺疊 skill 而無需編輯其 SKILL.md。不適用於 plugin skills,這些由 `/plugin` 管理。`/skills` 功能表將這些寫入 `.claude/settings.local.json`。請參閱[從設定覆蓋 skill 可見性](/zh-TW/skills#override-skill-visibility-from-settings)。需要 Claude Code v2.1.129 或更新版本 | `{"legacy-context": "name-only", "deploy": "off"}` |

304| `skipWebFetchPreflight` | 跳過[WebFetch 網域安全檢查](/zh-TW/data-usage#webfetch-domain-safety-check),該檢查在擷取前將每個請求的主機名稱傳送到 `api.anthropic.com`。在阻止流量到 Anthropic 的環境中設定為 `true`,例如 Bedrock、Vertex AI 或 Foundry 部署,具有限制性的出站。跳過時,WebFetch 嘗試任何 URL 而不諮詢黑名單 | `true` |308| `skipWebFetchPreflight` | 跳過[WebFetch 網域安全檢查](/zh-TW/data-usage#webfetch-domain-safety-check),該檢查在擷取前將每個請求的主機名稱傳送到 `api.anthropic.com`。在阻止流量到 Anthropic 的環境中設定為 `true`,例如 Bedrock、Vertex AI 或 Foundry 部署,具有限制性的出站。跳過時,WebFetch 嘗試任何 URL 而不諮詢黑名單 | `true` |

305| `spinnerTipsEnabled` | **預設**:`true`。在 Claude 工作時在微調器中顯示提示。設定為 `false` 以停用提示 | `false` |309| `spinnerTipsEnabled` | **預設**:`true`。在 Claude 工作時在微調器中顯示提示。設定為 `false` 以停用提示 | `false` |

306| `spinnerTipsOverride` | 使用自訂字串覆蓋微調器提示。`tips`:提示字串陣列。`excludeDefault`:如果為 `true`,僅顯示自訂提示;如果為 `false` 或不存在,自訂提示會與內建提示合併 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |310| `spinnerTipsOverride` | 使用自訂字串覆蓋微調器提示。`tips`:提示字串陣列。`excludeDefault`:如果為 `true`,僅顯示自訂提示;如果為 `false` 或不存在,自訂提示會與內建提示合併 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |

307| `spinnerVerbs` | 自訂在微調器中顯示的動作動詞。將 `mode` 設定為 `"replace"` 以僅使用您的動詞,或 `"append"` 以將它們新增到預設值 | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |311| `spinnerVerbs` | 自訂在微調器中顯示的動作動詞。將 `mode` 設定為 `"replace"` 以僅使用您的動詞,或 `"append"` 以將它們新增到預設值 | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |

308| `sshConfigs` | 要在[桌面](/zh-TW/desktop#pre-configure-ssh-connections-for-your-team)環境下拉式清單中顯示的 SSH 連線。每個項目需要 `id`、`name` 和 `sshHost`;`sshPort`、`sshIdentityFile` 和 `startDirectory` 是選用的。在 managed 設定中設定時,連線對使用者是唯讀的。僅從 managed 和使用者設定讀取 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |312| `sshConfigs` | 要在[桌面](/zh-TW/desktop#pre-configure-ssh-connections-for-your-team)環境下拉式清單中顯示的 SSH 連線。每個項目需要 `id`、`name` 和 `sshHost`;`sshPort`、`sshIdentityFile` 和 `startDirectory` 是選用的。在 managed 設定中設定時,連線對使用者是唯讀的。僅從 managed 和使用者設定讀取 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

309| `statusLine` | 設定自訂狀態行以顯示內容。請參閱 [`statusLine` 文件](/zh-TW/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |313| `statusLine` | 設定自訂狀態行以顯示內容。物件的選用 `padding`、`refreshInterval` 和 `hideVimModeIndicator` 欄位控制間距、定期重新執行和是否隱藏提示下方的內建 vim 模式指示器。請參閱 [`statusLine` 文件](/zh-TW/statusline#manually-configure-a-status-line) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

310| `strictKnownMarketplaces` | (Managed 設定僅限)plugin marketplaces 白名單。未定義 = 無限制,空陣列 = 鎖定。在 marketplace 新增和 plugin 安裝、更新、重新整理和自動更新時強制執行,因此在設定政策之前新增的 marketplace 無法用於擷取 plugins。請參閱 [Managed marketplace 限制](/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |314| `strictKnownMarketplaces` | (Managed 設定僅限)plugin marketplaces 白名單。未定義 = 無限制,空陣列 = 鎖定。在 marketplace 新增和 plugin 安裝、更新、重新整理和自動更新時強制執行,因此在設定政策之前新增的 marketplace 無法用於擷取 plugins。請參閱 [Managed marketplace 限制](/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

311| `strictPluginOnlyCustomization` | (Managed 設定僅限)阻止 skills、agents、hooks 和 MCP servers 來自使用者和專案來源,因此它們只能來自 plugins 或 managed 設定。`true` 鎖定所有四個表面;陣列僅鎖定命名的表面。請參閱 [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |315| `strictPluginOnlyCustomization` | (Managed 設定僅限)阻止 skills、agents、hooks 和 MCP servers 來自使用者和專案來源,因此它們只能來自 plugins 或 managed 設定。`true` 鎖定所有四個表面;陣列僅鎖定命名的表面。請參閱 [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |

312| `syntaxHighlightingDisabled` | 停用 diffs、程式碼區塊和檔案預覽中的語法醒目提示 | `true` |316| `syntaxHighlightingDisabled` | 停用 diffs、程式碼區塊和檔案預覽中的語法醒目提示 | `true` |


483**預設提交歸屬:**487**預設提交歸屬:**

484 488 

485```text theme={null}489```text theme={null}

486Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>490Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

487```491```

488 492 

489模型名稱在 trailer 中反映工作階段的使用中模型。493模型名稱在 trailer 中反映工作階段的使用中模型。


6561. **Managed 設定**([伺服器管理](/zh-TW/server-managed-settings)、[MDM/OS 層級政策](#configuration-scopes)或 [managed 設定](/zh-TW/settings#settings-files))6601. **Managed 設定**([伺服器管理](/zh-TW/server-managed-settings)、[MDM/OS 層級政策](#configuration-scopes)或 [managed 設定](/zh-TW/settings#settings-files))

657 * 由 IT 透過伺服器傳遞、MDM 設定檔案、登錄政策或 managed 設定檔案部署的政策661 * 由 IT 透過伺服器傳遞、MDM 設定檔案、登錄政策或 managed 設定檔案部署的政策

658 * 無法被任何其他層級覆蓋,包括命令列引數662 * 無法被任何其他層級覆蓋,包括命令列引數

659 * 在 managed 層級內,優先順序為:伺服器管理 > MDM/OS 層級政策 > 檔案型(`managed-settings.d/*.json` + `managed-settings.json`)> HKCU 登錄(僅限 Windows)。僅使用一個 managed 來源;來源不合併跨層級。在檔案型層級內,放入檔案和基礎檔案會合併在一起。663 * 在 managed 層級內,優先順序為:[`policyHelper`](#compute-managed-settings-with-a-policy-helper) 輸出(當設定時是唯一使用的 managed 來源)> 遠端(claude.ai [伺服器管理](/zh-TW/server-managed-settings)或 [Claude apps gateway](/zh-TW/claude-apps-gateway)傳遞)> MDM/OS 層級政策 > 檔案型(`managed-settings.d/*.json` + `managed-settings.json`)> HKCU 登錄(僅限 Windows)。僅使用一個 managed 來源;來源不合併跨層級,有一個例外:sandbox 鎖定金鑰 `sandbox.network.allowManagedDomainsOnly` 和 `sandbox.filesystem.allowManagedReadPathsOnly`,以及其相關聯的白名單、`allowAllClaudeAiMcps` 和 sandbox 二進位路徑 `sandbox.bwrapPath` 和 `sandbox.socatPath` 在任何管理員控制的 managed 來源設定它們時受尊重;使用者可寫的 HKCU 層級被排除。在檔案型層級內,放入檔案和基礎檔案會合併在一起。

660 * 嵌入主機(例如 Claude Desktop)可以透過 SDK `managedSettings` 選項提供政策。預設情況下,當任何 managed-settings 層級存在時,此會被忽略。管理員可以透過設定 [`parentSettingsBehavior`](#available-settings) 為 `"merge"` 來選擇加入。嵌入器的值會被篩選,以便它們可以收緊 managed 政策但不能放鬆政策。664 * 嵌入主機(例如 Claude Desktop)可以透過 SDK `managedSettings` 選項提供政策。預設情況下,當任何 admin 部署的 managed 來源存在時,此會被忽略:伺服器管理的設定、MDM 或 OS 層級政策,或 managed 設定檔案使用者可寫的 HKCU 登錄回退不計為 admin 部署的來源。管理員可以透過設定 [`parentSettingsBehavior`](#available-settings) 為 `"merge"` 來選擇加入。嵌入器的值會被篩選,以便它們可以收緊 managed 政策但不能放鬆政策。

661 665 

6622. **命令列引數**6662. **命令列引數**

663 * 特定工作階段的臨時覆蓋。JSON 透過 `--settings <file-or-json>` 傳遞會與檔案型設定合併,使用與其他層級相同的規則:此處設定的金鑰會覆蓋本機、專案或使用者設定中的相同金鑰,省略金鑰會保留較低層級的值667 * 特定工作階段的臨時覆蓋。JSON 透過 `--settings <file-or-json>` 傳遞會與檔案型設定合併,使用與其他層級相同的規則:此處設定的金鑰會覆蓋本機、專案或使用者設定中的相同金鑰,省略金鑰會保留較低層級的值


711 715 

712Claude Code 的內部系統提示未發佈。若要新增自訂指示,請使用 `CLAUDE.md` 檔案或 `--append-system-prompt` 旗標。716Claude Code 的內部系統提示未發佈。若要新增自訂指示,請使用 `CLAUDE.md` 檔案或 `--append-system-prompt` 旗標。

713 717 

714<h3 id="excluding-sensitive-files">718<h3 id="exclude-sensitive-files">

715 排除敏感檔案719 排除敏感檔案

716</h3>720</h3>

717 721 


739 743 

740Claude Code 支援可在使用者和專案層級設定的自訂 AI subagents。這些 subagents 儲存為具有 YAML frontmatter 的 Markdown 檔案:744Claude Code 支援可在使用者和專案層級設定的自訂 AI subagents。這些 subagents 儲存為具有 YAML frontmatter 的 Markdown 檔案:

741 745 

742* **使用者 subagents**:`~/.claude/agents/` - 在所有專案中可用746* **使用者 subagents**:`~/.claude/agents/`在所有專案中可用

743* **專案 subagents**:`.claude/agents/` - 特定於您的專案,可與您的團隊共享747* **專案 subagents**:`.claude/agents/`特定於您的專案,可與您的團隊共享

744 748 

745Subagent 檔案定義具有自訂提示和工具權限的專門 AI 助手。在 [subagents 文件](/zh-TW/sub-agents)中深入了解建立和使用 subagents。749Subagent 檔案定義具有自訂提示和工具權限的專門 AI 助手。在 [subagents 文件](/zh-TW/sub-agents)中深入了解建立和使用 subagents。

746 750 


791 專案設定優先於使用者設定,因此在 `~/.claude/settings.json` 中將 plugin 設定為 `false` 不會停用專案的 `.claude/settings.json` 啟用的 plugin。若要在您的機器上選擇退出專案啟用的 plugin,請改在 `.claude/settings.local.json` 中將其設定為 `false`。795 專案設定優先於使用者設定,因此在 `~/.claude/settings.json` 中將 plugin 設定為 `false` 不會停用專案的 `.claude/settings.json` 啟用的 plugin。若要在您的機器上選擇退出專案啟用的 plugin,請改在 `.claude/settings.local.json` 中將其設定為 `false`。

792 796 

793 由 managed 設定強制啟用的 plugins 無法以此方式停用,因為 managed 設定會覆蓋本機設定。797 由 managed 設定強制啟用的 plugins 無法以此方式停用,因為 managed 設定會覆蓋本機設定。

798 

799 自 Claude Code v2.1.195 起,在專案的 `.claude/settings.json` 中啟用來自外部來源(例如 GitHub 儲存庫或 npm 套件)的 plugin 不會為其他人安裝它。每個載入 plugins 的路徑都會要求每個使用者在執行前[安裝並信任 plugin](/zh-TW/discover-plugins#configure-team-marketplaces)。

794</Note>800</Note>

795 801 

796**範例**:802**範例**:


847* `hostPattern`:正規表達式模式以符合 marketplace 主機(使用 `hostPattern`)853* `hostPattern`:正規表達式模式以符合 marketplace 主機(使用 `hostPattern`)

848* `settings`:直接在 settings.json 中宣告的內嵌 marketplace,無需單獨的託管儲存庫(使用 `name` 和 `plugins`)854* `settings`:直接在 settings.json 中宣告的內嵌 marketplace,無需單獨的託管儲存庫(使用 `name` 和 `plugins`)

849 855 

856`git` 來源類型適用於任何 git 託管服務,包括自託管 GitLab 和 Bitbucket。Claude Code 使用與該機器上 `git clone` 相同的驗證來複製儲存庫:已設定的認證助手、SSH 金鑰或主機特定的 token 環境變數。請參閱[私有儲存庫](/zh-TW/plugin-marketplaces#private-repositories)以了解設定詳細資訊。

857 

850對於 `github` 和 `git` 來源,在 `source` 物件內設定 `"skipLfs": true`(與 `repo` 或 `url` 並列)以在 Claude Code 複製或更新 marketplace 儲存庫時跳過 Git LFS 下載。LFS 指標檔案保持為指標而不是下載其內容。當儲存庫包含與 plugin 內容無關的大型 LFS 物件時,請使用此選項。{/* min-version: 2.1.153 */}需要 Claude Code v2.1.153 或更新版本。858對於 `github` 和 `git` 來源,在 `source` 物件內設定 `"skipLfs": true`(與 `repo` 或 `url` 並列)以在 Claude Code 複製或更新 marketplace 儲存庫時跳過 Git LFS 下載。LFS 指標檔案保持為指標而不是下載其內容。當儲存庫包含與 plugin 內容無關的大型 LFS 物件時,請使用此選項。{/* min-version: 2.1.153 */}需要 Claude Code v2.1.153 或更新版本。

851 859 

852每個 marketplace 項目也接受選用的 `autoUpdate` 布林值。在 `source` 旁邊設定 `"autoUpdate": true`,使 Claude Code 在啟動時重新整理該 marketplace 並更新其已安裝的 plugins。省略時,官方 Anthropic marketplaces 預設為 `true`,所有其他 marketplaces 預設為 `false`。請參閱[設定自動更新](/zh-TW/discover-plugins#configure-auto-updates)。860每個 marketplace 項目也接受選用的 `autoUpdate` 布林值。在 `source` 旁邊設定 `"autoUpdate": true`,使 Claude Code 在啟動時重新整理該 marketplace 並更新其已安裝的 plugins。省略時,官方 Anthropic marketplaces 預設為 `true`,所有其他 marketplaces 預設為 `false`。請參閱[設定自動更新](/zh-TW/discover-plugins#configure-auto-updates)。


912{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }920{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }

913```921```

914 922 

915欄位:`repo`(必需)、`ref`(選用:分支/標籤/SHA)、`path`(選用:子目錄)923欄位:`repo`(必需)、`ref`(選用:分支或標籤)、`path`(選用:子目錄)

916 924 

9172. **Git 儲存庫**:9252. **Git 儲存庫**:

918 926 


922{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }930{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }

923```931```

924 932 

925欄位:`url`(必需)、`ref`(選用:分支/標籤/SHA)、`path`(選用:子目錄)933欄位:`url`(必需)、`ref`(選用:分支或標籤)、`path`(選用:子目錄)

926 934 

9273. **基於 URL 的 marketplaces**:9353. **基於 URL 的 marketplaces**:

928 936 


1021}1029}

1022```1030```

1023 1031 

1024範例 - 停用所有 marketplace 新增:1032範例停用所有 marketplace 新增:

1025 1033 

1026```json theme={null}1034```json theme={null}

1027{1035{


1044 1052 

1045**精確匹配要求**:1053**精確匹配要求**:

1046 1054 

1047Marketplace 來源必須**完全符合**才能允許使用者的新增。對於基於 git 的來源(`github` 和 `git`),這包括所有選用欄位:1055Marketplace 來源必須完全符合才能允許使用者的新增。對於基於 git 的來源(`github` 和 `git`),這包括所有選用欄位:

1048 1056 

1049* `repo` 或 `url` 必須完全符合1057* `repo` 或 `url` 必須完全符合

1050* `ref` 欄位必須完全符合(或兩者都未定義)1058* `ref` 欄位必須完全符合(或兩者都未定義)


1155 1163 

1156Claude Code 版本不識別的表面名稱會被忽略而不是導致設定檔案失敗,因此您可以在所有用戶端更新之前新增新的表面名稱。1164Claude Code 版本不識別的表面名稱會被忽略而不是導致設定檔案失敗,因此您可以在所有用戶端更新之前新增新的表面名稱。

1157 1165 

1158<h3 id="managing-plugins">1166<h3 id="manage-plugins">

1159 管理 plugins1167 管理 plugins

1160</h3>1168</h3>

1161 1169 

setup.md +1 −1

Details

36</h2>36</h2>

37 37 

38<Tip>38<Tip>

39 偏好圖形介面?[桌面應用程式](/zh-TW/desktop-quickstart)讓您無需終端機即可使用 Claude Code。下載適用於 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) 或 [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 的版本。39 偏好圖形介面?[桌面應用程式](/zh-TW/desktop-quickstart)讓您無需終端機即可使用 Claude Code。下載適用於 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)、[Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 或 [Linux](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 的版本。

40 40 

41 初次使用終端機?請參閱[終端機指南](/zh-TW/terminal-guide)以取得逐步說明。41 初次使用終端機?請參閱[終端機指南](/zh-TW/terminal-guide)以取得逐步說明。

42</Tip>42</Tip>

skills.md +8 −3

Details

251| `when_to_use` | 否 | Claude 應何時叫用該 skill 的額外上下文,例如觸發短語或範例請求。附加到 skill 清單中的 `description`,並計入 1,536 個字元的上限。 |251| `when_to_use` | 否 | Claude 應何時叫用該 skill 的額外上下文,例如觸發短語或範例請求。附加到 skill 清單中的 `description`,並計入 1,536 個字元的上限。 |

252| `argument-hint` | 否 | 自動完成期間顯示的提示,指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |252| `argument-hint` | 否 | 自動完成期間顯示的提示,指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |

253| `arguments` | 否 | 用於 skill 內容中[`$name` 替換](#available-string-substitutions)的具名位置引數。接受空格分隔的字串或 YAML 清單。名稱按順序對應到引數位置。 |253| `arguments` | 否 | 用於 skill 內容中[`$name` 替換](#available-string-substitutions)的具名位置引數。接受空格分隔的字串或 YAML 清單。名稱按順序對應到引數位置。 |

254| `disable-model-invocation` | 否 | 設定為 `true` 以防止 Claude 自動載入此 skill。用於您想使用 `/name` 手動觸發的工作流程。也防止該 skill 被[預載入到 subagents](/zh-TW/sub-agents#preload-skills-into-subagents)。預設值:`false`。 |254| `disable-model-invocation` | 否 | 設定為 `true` 以防止 Claude 自動載入此 skill。用於您想使用 `/name` 手動觸發的工作流程。也防止該 skill 被[預載入到 subagents](/zh-TW/sub-agents#preload-skills-into-subagents)。自 v2.1.196 起,也防止該 skill 在[排程任務](/zh-TW/scheduled-tasks)以該 skill 作為其提示觸發時執行。預設值:`false`。 |

255| `user-invocable` | 否 | 設定為 `false` 以從 `/` 功能表中隱藏。用於使用者不應直接叫用的背景知識。預設值:`true`。 |255| `user-invocable` | 否 | 設定為 `false` 以從 `/` 功能表中隱藏。用於使用者不應直接叫用的背景知識。預設值:`true`。 |

256| `allowed-tools` | 否 | 當此 skill 處於作用中時,Claude 可以使用而無需詢問許可的工具。接受空格分隔的字串或逗號分隔的字串,或 YAML 清單。 |256| `allowed-tools` | 否 | 當此 skill 處於作用中時,Claude 可以使用而無需詢問許可的工具。接受空格分隔的字串或逗號分隔的字串,或 YAML 清單。 |

257| `disallowed-tools` | 否 | 當此 skill 處於作用中時從 Claude 的可用工具池中移除的工具。用於不應呼叫某些工具的自主 skills,例如用於背景迴圈的 `AskUserQuestion`。接受空格分隔的字串或逗號分隔的字串,或 YAML 清單。限制在您傳送下一則訊息時清除。 |257| `disallowed-tools` | 否 | 當此 skill 處於作用中時從 Claude 的可用工具池中移除的工具。用於不應呼叫某些工具的自主 skills,例如用於背景迴圈的 `AskUserQuestion`。接受空格分隔的字串或逗號分隔的字串,或 YAML 清單。限制在您傳送下一則訊息時清除。 |


288Skills 支援 skill 內容中動態值的字串替換:288Skills 支援 skill 內容中動態值的字串替換:

289 289 

290| 變數 | 描述 |290| 變數 | 描述 |

291| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |291| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

292| `$ARGUMENTS` | 叫用 skill 時傳遞的所有引數。如果 `$ARGUMENTS` 不在內容中,引數會附加為 `ARGUMENTS: <value>`。 |292| `$ARGUMENTS` | 叫用 skill 時傳遞的所有引數。如果 `$ARGUMENTS` 不在內容中,引數會附加為 `ARGUMENTS: <value>`。 |

293| `$ARGUMENTS[N]` | 透過 0 為基礎的索引存取特定引數,例如 `$ARGUMENTS[0]` 表示第一個引數。 |293| `$ARGUMENTS[N]` | 透過 0 為基礎的索引存取特定引數,例如 `$ARGUMENTS[0]` 表示第一個引數。 |

294| `$N` | `$ARGUMENTS[N]` 的簡寫,例如 `$0` 表示第一個引數或 `$1` 表示第二個引數。 |294| `$N` | `$ARGUMENTS[N]` 的簡寫,例如 `$0` 表示第一個引數或 `$1` 表示第二個引數。 |


296| `${CLAUDE_SESSION_ID}` | 目前的工作階段 ID。適用於記錄、建立工作階段特定檔案或將 skill 輸出與工作階段相關聯。 |296| `${CLAUDE_SESSION_ID}` | 目前的工作階段 ID。適用於記錄、建立工作階段特定檔案或將 skill 輸出與工作階段相關聯。 |

297| `${CLAUDE_EFFORT}` | 目前的努力級別:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一個不同的級別,報告為 `xhigh`。使用此來根據作用中的努力設定調整 skill 說明。 |297| `${CLAUDE_EFFORT}` | 目前的努力級別:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一個不同的級別,報告為 `xhigh`。使用此來根據作用中的努力設定調整 skill 說明。 |

298| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 檔案的目錄。對於外掛 skills,這是外掛中 skill 的子目錄,而不是外掛根目錄。在 bash 注入命令中使用此來參考與 skill 捆綁的指令碼或檔案,無論目前的工作目錄如何。 |298| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 檔案的目錄。對於外掛 skills,這是外掛中 skill 的子目錄,而不是外掛根目錄。在 bash 注入命令中使用此來參考與 skill 捆綁的指令碼或檔案,無論目前的工作目錄如何。 |

299| `${CLAUDE_PROJECT_DIR}` | 專案根目錄。這是 [hooks](/zh-TW/hooks#reference-scripts-by-path) 和 MCP 伺服器接收的相同路徑作為 `CLAUDE_PROJECT_DIR`。使用此來參考專案本地指令碼或檔案,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,獨立於 skill 的安裝位置。 |

300 

301`${CLAUDE_PROJECT_DIR}` 替換需要 Claude Code v2.1.196 或更新版本。它適用於 skill 主體和 [`allowed-tools`](#frontmatter-reference) frontmatter,因此許可規則(例如 `Bash(${CLAUDE_PROJECT_DIR}/scripts/lint.sh *)` 解析為 skill 主體使用的相同路徑。

299 302 

300索引引數使用 shell 風格的引用,因此將多字值包裝在引號中以將其作為單個引數傳遞。例如,`/my-skill "hello world" second` 使 `$0` 擴展為 `hello world`,`$1` 擴展為 `second`。`$ARGUMENTS` 預留位置始終擴展為輸入的完整引數字串。303索引引數使用 shell 風格的引用,因此將多字值包裝在引號中以將其作為單個引數傳遞。例如,`/my-skill "hello world" second` 使 `$0` 擴展為 `hello world`,`$1` 擴展為 `second`。`$ARGUMENTS` 預留位置始終擴展為輸入的完整引數字串。

301 304 


899 902 

900Skill 描述會載入上下文,以便 Claude 知道可用的內容。所有 skill 名稱始終包含在內,但如果您有許多 skills,描述會被縮短以適應字元預算,這可能會去除 Claude 需要匹配您的請求的關鍵字。預算在模型上下文視窗的 1% 處動態縮放。當預算溢出時,您最少叫用的 skills 的描述會首先被捨棄,因此您實際使用的 skills 會保留其完整文字。執行 `/doctor` 以查看有多少 skill 描述被縮短或捨棄,以及哪些 skills 受到影響。903Skill 描述會載入上下文,以便 Claude 知道可用的內容。所有 skill 名稱始終包含在內,但如果您有許多 skills,描述會被縮短以適應字元預算,這可能會去除 Claude 需要匹配您的請求的關鍵字。預算在模型上下文視窗的 1% 處動態縮放。當預算溢出時,您最少叫用的 skills 的描述會首先被捨棄,因此您實際使用的 skills 會保留其完整文字。執行 `/doctor` 以查看有多少 skill 描述被縮短或捨棄,以及哪些 skills 受到影響。

901 904 

902若要提高預算,請設定 [`skillListingBudgetFraction`](/zh-TW/settings#available-settings) 設定(例如 `0.02` = 2%)或 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 環境變數為固定字元計數。若要為其他 skills 釋放預算,請在 [`skillOverrides`](#override-skill-visibility-from-settings) 中將低優先順序項目設定為 `"name-only"`以便它們列出而不顯示描述。您也可以在來源處修剪 `description` `when_to_use` 文字:前置關鍵使用案例因為每個項目的結合文字無論預算如何都限制在 1,536 個字元此上限可透過 [`maxSkillDescriptionChars`](/zh-TW/settings#available-settings) 進行設定905 v2.1.196 ,`/context` 中的 Skills 列會報告套用預算後的列表大小因此它與模型接收的內容相符較早的版本會計算每個描述的完整文字,因此該列可能會顯示一個比預算 `/doctor` 報告的值大幾倍的數值

906 

907若要提高預算,請設定 [`skillListingBudgetFraction`](/zh-TW/settings#available-settings) 設定(例如 `0.02` = 2%)或 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 環境變數為固定字元計數。若要為其他 skills 釋放預算,請在 [`skillOverrides`](#override-skill-visibility-from-settings) 中將低優先順序項目設定為 `"name-only"`,以便它們列出而不顯示描述。您也可以在來源處修剪 `description` 和 `when_to_use` 文字:前置關鍵使用案例,因為每個項目的結合文字無論預算如何都限制在 1,536 個字元。此上限可透過 [`skillListingMaxDescChars`](/zh-TW/settings#available-settings) 進行設定。

903 908 

904<h2 id="related-resources">909<h2 id="related-resources">

905 相關資源910 相關資源

statusline.md +4 −1

Details

171Claude Code 透過 stdin 將以下 JSON 欄位傳送到您的指令碼:171Claude Code 透過 stdin 將以下 JSON 欄位傳送到您的指令碼:

172 172 

173| 欄位 | 描述 |173| 欄位 | 描述 |

174| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |174| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

175| `model.id`, `model.display_name` | 目前的模型識別碼和顯示名稱 |175| `model.id`, `model.display_name` | 目前的模型識別碼和顯示名稱 |

176| `cwd`, `workspace.current_dir` | 目前的工作目錄。兩個欄位包含相同的值;`workspace.current_dir` 因與 `workspace.project_dir` 一致而首選。 |176| `cwd`, `workspace.current_dir` | 目前的工作目錄。兩個欄位包含相同的值;`workspace.current_dir` 因與 `workspace.project_dir` 一致而首選。 |

177| `workspace.project_dir` | 啟動 Claude Code 的目錄,如果工作階段期間工作目錄變更,可能與 `cwd` 不同 |177| `workspace.project_dir` | 啟動 Claude Code 的目錄,如果工作階段期間工作目錄變更,可能與 `cwd` 不同 |


194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | 5 小時或 7 天速率限制視窗重設時的 Unix 紀元秒數 |194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | 5 小時或 7 天速率限制視窗重設時的 Unix 紀元秒數 |

195| `session_id` | 唯一的工作階段識別碼 |195| `session_id` | 唯一的工作階段識別碼 |

196| `session_name` | 使用 `--name` 旗標或 `/rename` 設定的自訂工作階段名稱。如果未設定自訂名稱,則不存在 |196| `session_name` | 使用 `--name` 旗標或 `/rename` 設定的自訂工作階段名稱。如果未設定自訂名稱,則不存在 |

197| `prompt_id` | 識別目前正在處理的使用者提示的 UUID。符合 [OpenTelemetry 事件上的 `prompt.id` 屬性](/zh-TW/monitoring-usage#event-correlation-attributes)。在第一次使用者輸入之前不存在。{/* min-version: 2.1.196 */}需要 Claude Code v2.1.196 或更新版本 |

197| `transcript_path` | 對話記錄檔案的路徑 |198| `transcript_path` | 對話記錄檔案的路徑 |

198| `version` | Claude Code 版本 |199| `version` | Claude Code 版本 |

199| `output_style.name` | 目前輸出樣式的名稱 |200| `output_style.name` | 目前輸出樣式的名稱 |


215 "cwd": "/current/working/directory",216 "cwd": "/current/working/directory",

216 "session_id": "abc123...",217 "session_id": "abc123...",

217 "session_name": "my-session",218 "session_name": "my-session",

219 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

218 "transcript_path": "/path/to/transcript.jsonl",220 "transcript_path": "/path/to/transcript.jsonl",

219 "model": {221 "model": {

220 "id": "claude-opus-4-8",222 "id": "claude-opus-4-8",


296 **可能不存在的欄位**(不在 JSON 中):298 **可能不存在的欄位**(不在 JSON 中):

297 299 

298 * `session_name`:僅在使用 `--name` 或 `/rename` 設定自訂名稱時出現300 * `session_name`:僅在使用 `--name` 或 `/rename` 設定自訂名稱時出現

301 * `prompt_id`:僅在第一次使用者輸入後出現

299 * `workspace.git_worktree`:僅當目前目錄位於連結 git worktree 內時出現302 * `workspace.git_worktree`:僅當目前目錄位於連結 git worktree 內時出現

300 * `workspace.repo`:僅在 git 儲存庫內且設定了 `origin` 遠端時出現303 * `workspace.repo`:僅在 git 儲存庫內且設定了 `origin` 遠端時出現

301 * `effort`:僅當目前模型支援推理努力參數時出現304 * `effort`:僅當目前模型支援推理努力參數時出現

sub-agents.md +34 −22

Details

77 </Tab>77 </Tab>

78</Tabs>78</Tabs>

79 79 

80內建 subagents 在互動式工作階段中始終會被註冊。若要封鎖特定的內建類型,請將其新增至 `permissions.deny`,如[停用特定 subagents](#disable-specific-subagents) 中所示。若要防止 Claude 委派給任何 subagent,請使用 [`permissions.deny`](/zh-TW/permissions#tool-specific-permission-rules) 拒絕 `Agent` 工具本身。在[非互動式模式](/zh-TW/headless)和 [Agent SDK](/zh-TW/agent-sdk/overview) 中,設定 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/zh-TW/env-vars) 以移除所有內建類型,並僅提供您自己的。80內建 subagents 在互動式工作階段中始終會被註冊。若要限制它們:

81 

82* 若要封鎖特定的內建類型,請將其新增至 `permissions.deny`,如[停用特定 subagents](#disable-specific-subagents) 中所示。

83* 若要防止 Claude 委派給任何 subagent,請使用 [`permissions.deny`](/zh-TW/permissions#tool-specific-permission-rules) 拒絕 `Agent` 工具本身。

84* 在[非互動式模式](/zh-TW/headless)和 [Agent SDK](/zh-TW/agent-sdk/overview) 中,設定 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/zh-TW/env-vars) 以移除所有內建類型,並僅提供您自己的。

81 85 

82除了這些內建 subagents 之外,您可以建立自己的 subagents,具有自訂提示、工具限制、權限模式、hooks 和 skills。以下部分展示如何開始和自訂 subagents。86除了這些內建 subagents 之外,您可以建立自己的 subagents,具有自訂提示、工具限制、權限模式、hooks 和 skills。以下部分展示如何開始和自訂 subagents。

83 87 


93 <Step title="開啟 subagents 介面">97 <Step title="開啟 subagents 介面">

94 在 Claude Code 中,執行:98 在 Claude Code 中,執行:

95 99 

96 ```text theme={null}100 ```text wrap theme={null}

97 /agents101 /agents

98 ```102 ```

99 </Step>103 </Step>


105 <Step title="使用 Claude 生成">109 <Step title="使用 Claude 生成">

106 選擇 **Generate with Claude**。出現提示時,描述 subagent:110 選擇 **Generate with Claude**。出現提示時,描述 subagent:

107 111 

108 ```text theme={null}112 ```text wrap theme={null}

109 A code improvement agent that scans files and suggests improvements113 A code improvement agent that scans files and suggests improvements

110 for readability, performance, and best practices. It should explain114 for readability, performance, and best practices. It should explain

111 each issue, show the current code, and provide an improved version.115 each issue, show the current code, and provide an improved version.


133 <Step title="儲存並試用">137 <Step title="儲存並試用">

134 檢查配置摘要。按 `s` 或 `Enter` 儲存,或按 `e` 在編輯器中儲存並編輯檔案。Subagent 立即可用。試試看:138 檢查配置摘要。按 `s` 或 `Enter` 儲存,或按 `e` 在編輯器中儲存並編輯檔案。Subagent 立即可用。試試看:

135 139 

136 ```text theme={null}140 ```text wrap theme={null}

137 Use the code-improver agent to suggest improvements in this project141 Use the code-improver agent to suggest improvements in this project

138 ```142 ```

139 143 


167 選擇 subagent 範圍171 選擇 subagent 範圍

168</h3>172</h3>

169 173 

170Subagents 是具有 YAML frontmatter 的 Markdown 檔案。根據範圍將它們儲存在不同位置。當多個 subagents 共享相同名稱時,更高優先級的位置獲勝174Subagents 是具有 YAML frontmatter 的 Markdown 檔案。根據範圍將它們儲存在不同位置。當多個 subagents 共享相同名稱時,Claude Code 使用來自優先級較高位置的那個

171 175 

172| Location | Scope | Priority | 如何建立 |176| Location | Scope | Priority | 如何建立 |

173| :-------------------- | :-------- | :------- | :---------------------------------------- |177| :-------------------- | :-------- | :------- | :---------------------------------------- |


185 189 

186**使用者 subagents**(`~/.claude/agents/`)是在所有專案中可用的個人 subagents。190**使用者 subagents**(`~/.claude/agents/`)是在所有專案中可用的個人 subagents。

187 191 

188Claude Code 會遞迴掃描 `.claude/agents/` 和 `~/.claude/agents/`,因此您可以將定義組織到子資料夾中,例如 `agents/review/` 或 `agents/research/`。子目錄路徑不會影響 subagent 的識別或呼叫方式,因為身份僅來自 `name` frontmatter 欄位。在整個樹中保持 `name` 值唯一:如果一個範圍內的兩個檔案宣告相同的名稱,Claude Code 會保留一個並丟棄另一個,不會發出警告。192Claude Code 會遞迴掃描 `.claude/agents/` 和 `~/.claude/agents/`,因此您可以將定義組織到子資料夾中,例如 `agents/review/` 或 `agents/research/`。子目錄路徑不會影響 subagent 的識別或呼叫方式,因為身份僅來自 `name` frontmatter 欄位。

193 

194在整個樹中保持 `name` 值唯一:如果一個範圍內的兩個檔案宣告相同的名稱,Claude Code 只會載入其中一個。{/* min-version: 2.1.196 */}自 v2.1.196 起,執行 `/doctor` 會報告同範圍的重複代理名稱,並顯示哪個定義處於活動狀態。

189 195 

190外掛程式 `agents/` 目錄也會遞迴掃描。與專案和使用者範圍不同,外掛程式 `agents/` 目錄內的子資料夾成為 [scoped identifier](#invoke-subagents-explicitly) 的一部分:外掛程式 `my-plugin` 中位於 `agents/review/security.md` 的檔案註冊為 `my-plugin:review:security`。196外掛程式 `agents/` 目錄也會遞迴掃描。與專案和使用者範圍不同,外掛程式 `agents/` 目錄內的子資料夾成為 [scoped identifier](#invoke-subagents-explicitly) 的一部分:外掛程式 `my-plugin` 中位於 `agents/review/security.md` 的檔案註冊為 `my-plugin:review:security`。

191 197 


233 239 

234**受管 subagents** 由組織管理員部署。將 markdown 檔案放在 [managed settings directory](/zh-TW/settings#settings-files) 內的 `.claude/agents/` 中,使用與專案和使用者 subagents 相同的 frontmatter 格式。受管定義優先於具有相同名稱的專案和使用者 subagents。240**受管 subagents** 由組織管理員部署。將 markdown 檔案放在 [managed settings directory](/zh-TW/settings#settings-files) 內的 `.claude/agents/` 中,使用與專案和使用者 subagents 相同的 frontmatter 格式。受管定義優先於具有相同名稱的專案和使用者 subagents。

235 241 

236**外掛程式 subagents** 來自您已安裝的 [plugins](/zh-TW/plugins)。它們與您的自訂 subagents 一起出現在 `/agents` 中。請參閱 [外掛程式元件參考](/zh-TW/plugins-reference#agents) 以了解建立外掛程式 subagents 的詳細資訊。242**外掛程式 subagents** 來自您已安裝的 [plugins](/zh-TW/plugins)。它們與您的自訂 subagents 一起出現在 `/agents` 中。請參閱 [plugin components reference](/zh-TW/plugins-reference#agents) 以了解建立外掛程式 subagents 的詳細資訊。

237 243 

238<Note>244<Note>

239 基於安全考慮,外掛程式 subagents 不支援 `hooks`、`mcpServers` 或 `permissionMode` frontmatter 欄位。從外掛程式載入代理時,這些欄位會被忽略。如果您需要它們,請將代理檔案複製到 `.claude/agents/` 或 `~/.claude/agents/`。您也可以在 `settings.json` 或 `settings.local.json` 中的 [`permissions.allow`](/zh-TW/settings#permission-settings) 新增規則,但這些規則適用於整個工作階段,而不僅僅是外掛程式 subagent。245 基於安全考慮,外掛程式 subagents 不支援 `hooks`、`mcpServers` 或 `permissionMode` frontmatter 欄位。從外掛程式載入代理時,這些欄位會被忽略。如果您需要它們,請將代理檔案複製到 `.claude/agents/` 或 `~/.claude/agents/`。您也可以在 `settings.json` 或 `settings.local.json` 中的 [`permissions.allow`](/zh-TW/settings#permission-settings) 新增規則,但這些規則適用於整個工作階段,而不僅僅是外掛程式 subagent。


299`model` 欄位控制 subagent 使用的 [AI model](/zh-TW/model-config):305`model` 欄位控制 subagent 使用的 [AI model](/zh-TW/model-config):

300 306 

301* **Model alias**:使用可用的別名之一:`sonnet`、`opus`、`haiku` 或 `fable`307* **Model alias**:使用可用的別名之一:`sonnet`、`opus`、`haiku` 或 `fable`

302* **Full model ID**:使用完整模型 ID,例如 `claude-opus-4-8` 或 `claude-sonnet-4-6`。接受與 `--model` 標誌相同的值308* **Full model ID**:使用完整模型 ID,例如 `claude-opus-4-8` 或 `claude-sonnet-5`。接受與 `--model` 標誌相同的值

303* **inherit**:使用與主要對話相同的模型309* **inherit**:使用與主要對話相同的模型

304* **Omitted**:如果未指定,預設為 `inherit`(使用與主要對話相同的模型)310* **Omitted**:如果未指定,預設為 `inherit`(使用與主要對話相同的模型)

305 311 

306當 Claude 呼叫 subagent 時,它也可以為該特定呼叫傳遞 `model` 參數。Claude Code 按此順序解析 subagent 的模型:312當 Claude 呼叫 subagent 時,它也可以為該特定呼叫傳遞 `model` 參數。Claude Code 按此順序解析 subagent 的模型:

307 313 

3081. [`CLAUDE_CODE_SUBAGENT_MODEL`](/zh-TW/model-config#environment-variables) 環境變數(如果設定3141. [`CLAUDE_CODE_SUBAGENT_MODEL`](/zh-TW/model-config#environment-variables) 環境變數(如果設定為模型別名或模型 ID

3092. 每次呼叫的 `model` 參數3152. 每次呼叫的 `model` 參數

3103. Subagent 定義的 `model` frontmatter3163. Subagent 定義的 `model` frontmatter

3114. 主要對話的模型3174. 主要對話的模型

312 318 

319{/* min-version: 2.1.196 */}自 v2.1.196 起,將 `CLAUDE_CODE_SUBAGENT_MODEL` 設定為 `inherit` 與不設定相同:解析繼續進行每次呼叫的 `model` 參數,然後是 frontmatter。在較早的版本中,`inherit` 強制 subagents 使用主要對話的模型,並忽略這兩個來源。

320 

313環境變數、每次呼叫的參數和 frontmatter 值會根據您組織的 [`availableModels`](/zh-TW/model-config#restrict-model-selection) 允許清單進行檢查。解析為排除模型的值不會被使用,subagent 會改為在繼承的模型上執行。321環境變數、每次呼叫的參數和 frontmatter 值會根據您組織的 [`availableModels`](/zh-TW/model-config#restrict-model-selection) 允許清單進行檢查。解析為排除模型的值不會被使用,subagent 會改為在繼承的模型上執行。

314 322 

315<h3 id="control-subagent-capabilities">323<h3 id="control-subagent-capabilities">


602 610 

603Subagents 可以定義在 subagent 生命週期期間執行的 [hooks](/zh-TW/hooks)。有兩種方式來配置 hooks:611Subagents 可以定義在 subagent 生命週期期間執行的 [hooks](/zh-TW/hooks)。有兩種方式來配置 hooks:

604 612 

6051. **在 subagent 的 frontmatter 中**:定義只在該 subagent 活動時執行的 hooks613* **在 subagent 的 frontmatter 中**:定義只在該 subagent 活動時執行的 hooks

6062. **在 `settings.json` 中**:定義在 subagents 啟動或停止時在主工作階段中執行的 hooks614* **在 `settings.json` 中**:定義在 subagents 啟動或停止時在主工作階段中執行的 hooks

607 615 

608<h4 id="hooks-in-subagent-frontmatter">616<h4 id="hooks-in-subagent-frontmatter">

609 Subagent frontmatter 中的 Hooks617 Subagent frontmatter 中的 Hooks


656| `SubagentStart` | Agent type name | 當 subagent 開始執行時 |664| `SubagentStart` | Agent type name | 當 subagent 開始執行時 |

657| `SubagentStop` | Agent type name | 當 subagent 完成時 |665| `SubagentStop` | Agent type name | 當 subagent 完成時 |

658 666 

659兩個事件都支援匹配器以按名稱針對特定代理類型。此範例僅在 `db-agent` subagent 啟動時執行設定指令碼,並在任何 subagent 停止時執行清理指令碼:667兩個事件都支援匹配器以按名稱針對特定代理類型。匹配器值是專案層級和使用者層級 subagents 的代理 frontmatter `name`,或 [plugin subagents](/zh-TW/plugins) 的外掛程式範圍識別碼,例如 `my-plugin:db-agent`。範圍名稱包含冒號,因此它被評估為 [unanchored regular expression](/zh-TW/hooks#matcher-patterns);使用 `^` 和 `$` 錨定它,如 `^my-plugin:db-agent$`,以僅匹配該代理。

668 

669此範例僅在 `db-agent` subagent 啟動時執行設定指令碼,並在任何 subagent 停止時執行清理指令碼:

660 670 

661```json theme={null}671```json theme={null}

662{672{


680}690}

681```691```

682 692 

693連字號匹配器(如 `db-agent`)在 Claude Code v2.1.195 或更高版本上精確匹配。在較早的版本上,它被評估為 unanchored regular expression,也會針對任何包含它的代理類型觸發,例如 `prod-db-agent`;在這些版本上使用 `^db-agent$` 錨定它。

694 

683請參閱 [Hooks](/zh-TW/hooks) 以了解完整的 hook 配置格式。695請參閱 [Hooks](/zh-TW/hooks) 以了解完整的 hook 配置格式。

684 696 

685<h2 id="work-with-subagents">697<h2 id="work-with-subagents">


704 716 

705對於自然語言,沒有特殊語法。命名 subagent,Claude 通常會委派:717對於自然語言,沒有特殊語法。命名 subagent,Claude 通常會委派:

706 718 

707```text theme={null}719```text wrap theme={null}

708Use the test-runner subagent to fix failing tests720Use the test-runner subagent to fix failing tests

709Have the code-reviewer subagent look at my recent changes721Have the code-reviewer subagent look at my recent changes

710```722```

711 723 

712**@-mention subagent。** 輸入 `@` 並從預輸入中選擇 subagent,就像您 @-mention 檔案一樣。這確保該特定 subagent 執行,而不是將選擇留給 Claude:724**@-mention subagent。** 輸入 `@` 並從預輸入中選擇 subagent,就像您 @-mention 檔案一樣。這確保該特定 subagent 執行,而不是將選擇留給 Claude:

713 725 

714```text theme={null}726```text wrap theme={null}

715@"code-reviewer (agent)" look at the auth changes727@"code-reviewer (agent)" look at the auth changes

716```728```

717 729 


757 在前景或背景中執行 subagents769 在前景或背景中執行 subagents

758</h3>770</h3>

759 771 

760Subagents 可以在前景(阻止)或背景(並行)中執行772Subagents 可以在前景或背景中執行

761 773 

762* **前景 subagents** 阻止主要對話直到完成。權限提示會在出現時傳遞給您。774* **前景 subagents** 阻止主要對話直到完成。權限提示會在出現時傳遞給您。

763* **背景 subagents** 在您繼續工作時並行執行。{/* min-version: 2.1.186 */}自 v2.1.186 起,當背景 subagent 到達需要權限的工具呼叫時,提示會在您的主要工作階段中出現,並命名要求的 subagent。批准以讓 subagent 繼續,或按 Esc 拒絕該單一工具呼叫而不停止 subagent。在 v2.1.186 之前,背景 subagents 自動拒絕任何會提示的工具呼叫。775* **背景 subagents** 在您繼續工作時並行執行。{/* min-version: 2.1.186 */}自 v2.1.186 起,當背景 subagent 到達需要權限的工具呼叫時,提示會在您的主要工作階段中出現,並命名要求的 subagent。批准以讓 subagent 繼續,或按 Esc 拒絕該單一工具呼叫而不停止 subagent。在 v2.1.186 之前,背景 subagents 自動拒絕任何會提示的工具呼叫。


781 793 

782subagents 最有效的用途之一是隔離產生大量輸出的操作。執行測試、獲取文件或處理日誌檔案可能會消耗大量上下文。透過將這些委派給 subagent,詳細輸出保留在 subagent 的上下文中,而只有相關摘要返回到主要對話。794subagents 最有效的用途之一是隔離產生大量輸出的操作。執行測試、獲取文件或處理日誌檔案可能會消耗大量上下文。透過將這些委派給 subagent,詳細輸出保留在 subagent 的上下文中,而只有相關摘要返回到主要對話。

783 795 

784```text theme={null}796```text wrap theme={null}

785Use a subagent to run the test suite and report only the failing tests with their error messages797Use a subagent to run the test suite and report only the failing tests with their error messages

786```798```

787 799 


791 803 

792對於獨立調查,產生多個 subagents 以同時工作:804對於獨立調查,產生多個 subagents 以同時工作:

793 805 

794```text theme={null}806```text wrap theme={null}

795Research the authentication, database, and API modules in parallel using separate subagents807Research the authentication, database, and API modules in parallel using separate subagents

796```808```

797 809 


809 821 

810對於多步驟工作流程,要求 Claude 按順序使用 subagents。每個 subagent 完成其任務並將結果返回給 Claude,然後將相關上下文傳遞給下一個 subagent。822對於多步驟工作流程,要求 Claude 按順序使用 subagents。每個 subagent 完成其任務並將結果返回給 Claude,然後將相關上下文傳遞給下一個 subagent。

811 823 

812```text theme={null}824```text wrap theme={null}

813Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them825Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them

814```826```

815 827 


820在以下情況下使用 **主要對話**:832在以下情況下使用 **主要對話**:

821 833 

822* 任務需要頻繁的來回或反覆改進834* 任務需要頻繁的來回或反覆改進

823* 多個階段共享重要上下文(規劃 → 實現 → 測試)835* 多個階段共享重要上下文,例如規劃、實現和測試

824* 您正在進行快速、有針對性的更改836* 您正在進行快速、有針對性的更改

825* 延遲很重要。Subagents 從頭開始,可能需要時間收集上下文837* 延遲很重要。Subagents 從頭開始,可能需要時間收集上下文

826 838 


840 852 

841{/* min-version: 2.1.172 */}自 Claude Code v2.1.172 起,subagent 可以產生自己的 subagents。當委派的任務本身分裂成並行子任務時使用此功能,例如審查者 subagent 為每個發現分派驗證者,所以中間輸出永遠不會到達您的主要對話。只有頂級 subagent 的摘要返回給您。853{/* min-version: 2.1.172 */}自 Claude Code v2.1.172 起,subagent 可以產生自己的 subagents。當委派的任務本身分裂成並行子任務時使用此功能,例如審查者 subagent 為每個發現分派驗證者,所以中間輸出永遠不會到達您的主要對話。只有頂級 subagent 的摘要返回給您。

842 854 

843嵌套 subagent 的配置方式與頂級 subagent 相同,並從相同的 [scopes](#choose-the-subagent-scope) 解析。提示輸入下方的 subagent 面板顯示完整樹:每一行顯示後代的 `(+N)` 計數,打開一行會顯示該 subagent 的直接子代,以及返回到 `main` 的路徑。[`/agents`](#use-the-%2Fagents-command) 中的 Running 標籤將執行中的 subagents 列為平面列表。855嵌套 subagent 的配置方式與頂級 subagent 相同,並從相同的 [scopes](#choose-the-subagent-scope) 解析。提示輸入下方的 subagent 面板顯示完整樹:每一行顯示後代的 `(+N)` 計數,{/* min-version: 2.1.193 */}自 v2.1.193 起,打開一行會顯示該 subagent 的同級和直接子代,以及返回到 `main` 的路徑。[`/agents`](#use-the-%2Fagents-command) 中的 Running 標籤將執行中的 subagents 列為平面列表。

844 856 

845深度計算為主要對話下方的 subagent 級別數,無論每個級別是否在 [前景或背景](#run-subagents-in-foreground-or-background) 中執行。深度為五的 subagent 不接收 Agent 工具,無法進一步產生。限制是固定的且不可配置。857深度計算為主要對話下方的 subagent 級別數,無論每個級別是否在 [前景或背景](#run-subagents-in-foreground-or-background) 中執行。深度為五的 subagent 不接收 Agent 工具,無法進一步產生。限制是固定的且不可配置。

846 858 


884 896 

885若要恢復 subagent,請要求 Claude 繼續先前的工作:897若要恢復 subagent,請要求 Claude 繼續先前的工作:

886 898 

887```text theme={null}899```text wrap theme={null}

888Use the code-reviewer subagent to review the authentication module900Use the code-reviewer subagent to review the authentication module

889[Agent completes]901[Agent completes]

890 902 


942 954 

943您可以使用 `/fork` 後跟指令自己啟動 fork,無論是否設定了變數。Claude Code 從指令的前幾個詞命名 fork。以下範例 forks 對話以在您在主工作階段中繼續實現時草擬測試案例:955您可以使用 `/fork` 後跟指令自己啟動 fork,無論是否設定了變數。Claude Code 從指令的前幾個詞命名 fork。以下範例 forks 對話以在您在主工作階段中繼續實現時草擬測試案例:

944 956 

945```text theme={null}957```text wrap theme={null}

946/fork draft unit tests for the parser changes so far958/fork draft unit tests for the parser changes so far

947```959```

948 960 

Details

196 196 

197* [Claude for Teams 或 Enterprise](/zh-TW/authentication#claude-for-teams-or-enterprise)197* [Claude for Teams 或 Enterprise](/zh-TW/authentication#claude-for-teams-or-enterprise)

198* [Anthropic Console](/zh-TW/authentication#claude-console-authentication)198* [Anthropic Console](/zh-TW/authentication#claude-console-authentication)

199* [Claude 應用程式閘道](/zh-TW/claude-apps-gateway),一個自託管閘道,在 Amazon Bedrock、Google Vertex AI、Microsoft Foundry 或 Anthropic API 前面添加 IdP 登入

199* [Amazon Bedrock](/zh-TW/amazon-bedrock)200* [Amazon Bedrock](/zh-TW/amazon-bedrock)

200* [Claude Platform on AWS](/zh-TW/claude-platform-on-aws)201* [Claude Platform on AWS](/zh-TW/claude-platform-on-aws)

201* [Google Vertex AI](/zh-TW/google-vertex-ai)202* [Google Vertex AI](/zh-TW/google-vertex-ai)

Details

11若要新增自訂工具,請連接 [MCP server](/zh-TW/mcp)。若要使用可重複使用的提示型工作流程擴展 Claude,請撰寫 [skill](/zh-TW/skills),它透過現有的 `Skill` 工具執行,而不是新增工具項目。11若要新增自訂工具,請連接 [MCP server](/zh-TW/mcp)。若要使用可重複使用的提示型工作流程擴展 Claude,請撰寫 [skill](/zh-TW/skills),它透過現有的 `Skill` 工具執行,而不是新增工具項目。

12 12 

13| 工具 | 描述 | 需要權限 |13| 工具 | 描述 | 需要權限 |

14| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- |14| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--- |

15| `Agent` | 生成一個具有自己 context window 的 [subagent](/zh-TW/sub-agents),以處理任務。請參閱 [Agent 工具行為](#agent-tool-behavior) | 否 |15| `Agent` | 生成一個具有自己 context window 的 [subagent](/zh-TW/sub-agents),以處理任務。請參閱 [Agent 工具行為](#agent-tool-behavior) | 否 |

16| `Artifact` | 將 HTML 或 Markdown 檔案發佈為 [artifact](/zh-TW/artifacts):一個私人的互動式頁面,您可以在 claude.ai 上與組織內部分享。{/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}需要 Team 或 Enterprise 計畫和 `/login` 驗證;請參閱 [可用性](/zh-TW/artifacts#availability) | 是 |16| `Artifact` | 將 HTML 或 Markdown 檔案發佈為 [artifact](/zh-TW/artifacts):一個私人的互動式頁面,您可以在 claude.ai 上與組織內部分享。{/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}需要 Team 或 Enterprise 計畫和 `/login` 驗證;請參閱 [可用性](/zh-TW/artifacts#availability) | 是 |

17| `AskUserQuestion` | 提出多選題以收集需求或澄清歧義 | 否 |17| `AskUserQuestion` | 提出多選題以收集需求或澄清歧義 | 否 |


28| `Grep` | 在檔案內容中搜尋模式。請參閱 [Grep 工具行為](#grep-tool-behavior) | 否 |28| `Grep` | 在檔案內容中搜尋模式。請參閱 [Grep 工具行為](#grep-tool-behavior) | 否 |

29| `ListMcpResourcesTool` | 列出連接的 [MCP servers](/zh-TW/mcp) 公開的資源 | 否 |29| `ListMcpResourcesTool` | 列出連接的 [MCP servers](/zh-TW/mcp) 公開的資源 | 否 |

30| `LSP` | 透過語言伺服器進行程式碼智慧:跳轉到定義、尋找參考、報告型別錯誤和警告。請參閱 [LSP 工具行為](#lsp-tool-behavior) | 否 |30| `LSP` | 透過語言伺服器進行程式碼智慧:跳轉到定義、尋找參考、報告型別錯誤和警告。請參閱 [LSP 工具行為](#lsp-tool-behavior) | 否 |

31| `Monitor` | 在背景執行命令,並將每個輸出行回饋給 Claude,以便它可以對日誌項目、檔案變更或輪詢狀態做出反應。請參閱 [Monitor 工具](#monitor-tool) | 是 |31| `Monitor` | 在背景執行命令,並將每個輸出行回饋給 Claude,以便它可以對日誌項目、檔案變更或輪詢狀態做出反應。也可以開啟 WebSocket 並將每個傳入訊息視為事件。請參閱 [Monitor 工具](#monitor-tool) | 是 |

32| `NotebookEdit` | 修改 Jupyter notebook 儲存格。請參閱 [NotebookEdit 工具行為](#notebookedit-tool-behavior) | 是 |32| `NotebookEdit` | 修改 Jupyter notebook 儲存格。請參閱 [NotebookEdit 工具行為](#notebookedit-tool-behavior) | 是 |

33| `PowerShell` | 原生執行 PowerShell 命令。請參閱 [PowerShell 工具](#powershell-tool) 以了解可用性 | 是 |33| `PowerShell` | 原生執行 PowerShell 命令。請參閱 [PowerShell 工具](#powershell-tool) 以了解可用性 | 是 |

34| `PushNotification` | 傳送桌面通知,以及當 [Remote Control](/zh-TW/remote-control) 已連接時傳送手機推播,以便長時間執行的任務或 [排程任務](/zh-TW/scheduled-tasks) 可以在您離開時聯繫您。{/* plan-availability: feature=push-notifications providers=anthropic */}推播傳遞透過 Anthropic 託管的基礎設施執行,無法從 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 存取 | 否 |34| `PushNotification` | 傳送桌面通知,以及當 [Remote Control](/zh-TW/remote-control) 已連接時傳送手機推播,以便長時間執行的任務或 [排程任務](/zh-TW/scheduled-tasks) 可以在您離開時聯繫您。{/* plan-availability: feature=push-notifications providers=anthropic */}推播傳遞透過 Anthropic 託管的基礎設施執行,無法從 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 存取 | 否 |

35| `Read` | 讀取檔案的內容。請參閱 [Read 工具行為](#read-tool-behavior) | 否 |35| `Read` | 讀取檔案的內容。請參閱 [Read 工具行為](#read-tool-behavior) | 否 |

36| `ReadMcpResourceTool` | 按 URI 讀取特定 MCP 資源 | 否 |36| `ReadMcpResourceTool` | 按 URI 讀取特定 MCP 資源 | 否 |

37| `RemoteTrigger` | 在 claude.ai 上建立、更新、執行和列出 [Routines](/zh-TW/routines)。支援 `/schedule` 命令。{/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines 位於 claude.ai 上,需要 Pro、Max、Team 或 Enterprise 計畫,因此此工具無法從 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 存取 | 否 |37| `RemoteTrigger` | 在 claude.ai 上建立、更新、執行和列出 [Routines](/zh-TW/routines)。支援 `/schedule` 命令。{/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines 位於 claude.ai 上,需要 Pro、Max、Team 或 Enterprise 計畫,因此此工具無法從 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 存取 | 否 |

38| `ReportFindings` | 將程式碼審查結果報告為結構化清單,每個結果包含檔案、摘要和失敗情景,以便 Claude Code 可以呈現它們而不是將其列印為文字。當有效的程式碼審查指示告訴它時,Claude 會呼叫它。{/* min-version: 2.1.196 */}需要 Claude Code v2.1.196 或更新版本 | 否 |

38| `ScheduleWakeup` | 重新排程 [自主進行的 `/loop`](/zh-TW/scheduled-tasks#let-claude-choose-the-interval) 的下一次迭代。Claude 在每次迭代結束時呼叫此工具,以選擇下一次執行的時間,範圍在一分鐘到一小時之間;您不需要直接呼叫它。待處理的喚醒會出現在 [Stop hook input](/zh-TW/hooks#stop-input) 的 `session_crons` 中。{/* plan-availability: feature=loop-dynamic providers=anthropic */}在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用,其中沒有間隔的 `/loop` 提示會改為按固定時間表執行 | 否 |39| `ScheduleWakeup` | 重新排程 [自主進行的 `/loop`](/zh-TW/scheduled-tasks#let-claude-choose-the-interval) 的下一次迭代。Claude 在每次迭代結束時呼叫此工具,以選擇下一次執行的時間,範圍在一分鐘到一小時之間;您不需要直接呼叫它。待處理的喚醒會出現在 [Stop hook input](/zh-TW/hooks#stop-input) 的 `session_crons` 中。{/* plan-availability: feature=loop-dynamic providers=anthropic */}在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用,其中沒有間隔的 `/loop` 提示會改為按固定時間表執行 | 否 |

39| `SendMessage` | 傳送訊息給 [agent team](/zh-TW/agent-teams) 隊友,或按 agent ID [恢復 subagent](/zh-TW/sub-agents#resume-subagents)。已停止的 subagents 會在背景中自動恢復。結構化的團隊協議訊息需要 agent teams | 否 |40| `SendMessage` | 傳送訊息給 [agent team](/zh-TW/agent-teams) 隊友,或按 agent ID [恢復 subagent](/zh-TW/sub-agents#resume-subagents)。已停止的 subagents 會在背景中自動恢復。結構化的團隊協議訊息需要 agent teams | 否 |

41| `SendUserFile` | 將工作階段中的檔案傳送給您,並附上選擇性標題,以便生成的報告、圖表、螢幕擷取畫面或建置的成品可以到達您的裝置,而不是只在文字記錄中提及。{/* min-version: 2.1.196 */}自 v2.1.196 起,選擇性的 `display` 輸入控制呈現方式:`render` 在用戶端中內聯開啟檔案,`attach` 僅顯示下載卡片,未設定時用戶端會根據檔案類型決定。當連接了 [Remote Control](/zh-TW/remote-control) 用戶端或工作階段在受管雲端環境(例如 [Claude Code on the web](/zh-TW/claude-code-on-the-web))中執行時可用。傳遞透過 Anthropic 託管的基礎設施執行,因此該工具在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用 | 否 |

40| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}上傳 `ONBOARDING.md` 並傳回隊友可以在 Claude Code 中開啟的分享連結。在撰寫指南後從 `/team-onboarding` 呼叫。適用於 Pro、Max、Team 和 Enterprise 計畫上的 claude.ai 訂閱者 | 是 |42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}上傳 `ONBOARDING.md` 並傳回隊友可以在 Claude Code 中開啟的分享連結。在撰寫指南後從 `/team-onboarding` 呼叫。適用於 Pro、Max、Team 和 Enterprise 計畫上的 claude.ai 訂閱者 | 是 |

41| `Skill` | 在主對話中執行 [skill](/zh-TW/skills#control-who-invokes-a-skill) | 是 |43| `Skill` | 在主對話中執行 [skill](/zh-TW/skills#control-who-invokes-a-skill) | 是 |

42| `TaskCreate` | 在任務清單中建立新任務 | 否 |44| `TaskCreate` | 在任務清單中建立新任務 | 否 |


206* 輪詢 PR 或 CI 工作,並在其狀態變更時報告208* 輪詢 PR 或 CI 工作,並在其狀態變更時報告

207* 監視目錄以查看檔案變更209* 監視目錄以查看檔案變更

208* 追蹤您指向的任何長時間執行指令碼的輸出210* 追蹤您指向的任何長時間執行指令碼的輸出

211* 連接到 WebSocket 摘要並在每條訊息到達時報告

209 212 

210Claude 為監視編寫一個小指令碼,在背景執行它,並在每行到達時接收它。您可以在同一工作階段中繼續工作,Claude 會在事件發生時插入。透過要求 Claude 取消監視或結束工作階段來停止監視213對於大多數監視,Claude 會編寫一個小指令碼,在背景執行它,並在每行到達時接收它。對於已經推送事件的伺服器,Claude 可以開啟 [WebSocket](#websocket-source) 而不是執行指令碼

211 214 

212Monitor 使用與 [Bash 相同的權限規則](/zh-TW/permissions#tool-specific-permission-rules)因此您為 Bash 設定的 `allow` 和 `deny` 模式也適用於此處。它在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用當設定 `DISABLE_TELEMETRY` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時,它也不可用215您可以在同一工作階段中繼續工作Claude 會在事件發生時插入透過要求 Claude 取消監視或結束工作階段來停止監視

216 

217當 Monitor 執行命令時,它使用與 [Bash 相同的權限規則](/zh-TW/permissions#tool-specific-permission-rules),因此您為 Bash 設定的 `allow` 和 `deny` 模式也適用於此處。[WebSocket 來源](#websocket-source)有其自己的核准提示。

218 

219該工具在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。當設定 `DISABLE_TELEMETRY` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時,它也不可用。

213 220 

214外掛可以宣告在外掛啟用時自動啟動的監視,而不是要求 Claude 啟動它們。請參閱 [外掛監視](/zh-TW/plugins-reference#monitors)。221外掛可以宣告在外掛啟用時自動啟動的監視,而不是要求 Claude 啟動它們。請參閱 [外掛監視](/zh-TW/plugins-reference#monitors)。

215 222 

223<h3 id="websocket-source">

224 WebSocket 來源

225</h3>

226 

227<Note>

228 WebSocket 來源需要 Claude Code v2.1.195 或更新版本。

229</Note>

230 

231當伺服器已經透過 WebSocket 推送事件時,Claude 可以直接連接到它,而不是編寫輪詢指令碼。每種套接字活動要麼變成一個事件,要麼結束監視:

232 

233* **文字訊息**:每一條都變成一個事件,即使訊息跨越多行。

234* **二進位訊息**:不會通過。Claude 會收到一個佔位符行,例如 `[binary frame, 512 bytes]`。

235* **大於 1 MiB 的訊息**:監視結束,因此請訂閱存在的篩選摘要。

236* **套接字關閉**:監視結束,Claude 會收到關閉代碼。

237 

238WebSocket 監視採用 `ws` 輸入代替 `command`,單一 Monitor 呼叫無法結合兩者。`ws` 輸入有兩個欄位:

239 

240| 欄位 | 必需 | 說明 |

241| :---------- | :- | :-------------------------------------------------------- |

242| `url` | 是 | 要連接的端點。必須是 `ws://` 或 `wss://` URL,不含嵌入的認證或空白,僅使用 ASCII 字元 |

243| `protocols` | 否 | 在握手期間提供的 WebSocket 子協議名稱。每個項目必須是有效的子協議令牌,清單不能包含重複項 |

244 

245`timeout_ms` 和 `persistent` 輸入的行為與它們對命令的行為相同:監視在截止時間結束,除非設定 `persistent`,`TaskStop` 會提前取消它。

246 

247開啟 WebSocket 會提示核准,提示不提供跳過相同主機的未來提示的選項。

248 

249Claude Code 拒絕指向私有、連結本地或雲端中繼資料位址的 URL,包括解析為該位址的主機名稱。它也拒絕 `sandbox.network.deniedDomains` 中的主機,以及當在受管設定中設定 [`allowManagedDomainsOnly`](/zh-TW/settings#sandbox-settings) 時,受管允許清單外的任何主機。

250 

216<h2 id="notebookedit-tool-behavior">251<h2 id="notebookedit-tool-behavior">

217 NotebookEdit 工具行為252 NotebookEdit 工具行為

218</h2>253</h2>


265 300 

266Bash 工具部分中描述的相同主工作階段工作目錄重設行為適用於 PowerShell 命令,包括 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 環境變數。301Bash 工具部分中描述的相同主工作階段工作目錄重設行為適用於 PowerShell 命令,包括 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 環境變數。

267 302 

303{/* min-version: 2.1.196 */}自 v2.1.196 起,PowerShell 工具符合 Bash 工具對搜尋和 diff 結束代碼的處理方式。來自 `grep`、`egrep`、`fgrep` 和 `git grep` 的結束代碼 1 表示沒有符合項目,來自 `git diff` 的結束代碼 1 表示存在差異,因此這些結果不會作為命令失敗報告給 Claude。

304 

268<h3 id="preview-limitations">305<h3 id="preview-limitations">

269 預覽限制306 預覽限制

270</h3>307</h3>


284 321 

285Read 處理純文字以外的多種檔案類型:322Read 處理純文字以外的多種檔案類型:

286 323 

287* **影像**:PNG、JPG 和其他影像格式作為 Claude 可以看到的視覺內容傳回,而不是原始位元組。Claude Code 在傳送前調整大小並重新壓縮大型影像以適應模型的影像大小限制,因此 Claude 可能會看到大型螢幕截圖的縮小版本。如果 Claude 在大型影像中遺漏細微的像素級詳細資訊,請要求它先裁剪感興趣的區域,例如使用 ImageMagick 透過 Bash。324* **影像**:PNG、JPG 和其他影像格式作為 Claude 可以看到的視覺內容傳回,而不是原始位元組。Claude Code 在傳送前調整大小並重新壓縮大型影像以適應模型的影像大小限制,因此 Claude 可能會看到大型螢幕截圖的縮小版本。{/* min-version: 2.1.196 */}自 v2.1.196 起,在調整大小後仍然大於 500KB 的影像會以降低品質的 JPEG 重新編碼,其像素尺寸保持不變。如果 Claude 在大型影像中遺漏細微的像素級詳細資訊,請要求它先裁剪感興趣的區域,例如使用 ImageMagick 透過 Bash。

288* **PDF**:Claude 完整讀取短 `.pdf` 檔案。對於超過 10 頁的 PDF,它使用 `pages` 參數(例如 `"1-5"`)按範圍讀取,一次最多 20 頁。325* **PDF**:Claude 完整讀取短 `.pdf` 檔案。對於超過 10 頁的 PDF,它使用 `pages` 參數(例如 `"1-5"`)按範圍讀取,一次最多 20 頁。

289* **Jupyter notebooks**:`.ipynb` 檔案傳回所有儲存格及其輸出,包括程式碼、markdown 和視覺化。326* **Jupyter notebooks**:`.ipynb` 檔案傳回所有儲存格及其輸出,包括程式碼、markdown 和視覺化。

290 327 

Details

45如果您的問題未列出,請執行下面的診斷檢查以縮小原因範圍。45如果您的問題未列出,請執行下面的診斷檢查以縮小原因範圍。

46 46 

47<Tip>47<Tip>

48 如果您寧願完全跳過終端,[Claude Code Desktop 應用程式](/zh-TW/desktop-quickstart)可讓您透過圖形介面安裝和使用 Claude Code。下載適用於 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) 或 [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 的版本,無需任何命令列設定即可開始編碼。48 如果您寧願完全跳過終端,[Claude Code Desktop 應用程式](/zh-TW/desktop-quickstart)可讓您透過圖形介面安裝和使用 Claude Code。下載適用於 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)、[Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 或 [Linux](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 的版本,無需任何命令列設定即可開始編碼。

49</Tip>49</Tip>

50 50 

51<h2 id="run-diagnostic-checks">51<h2 id="run-diagnostic-checks">

Details

18 要求18 要求

19</h2>19</h2>

20 20 

21語音聽寫會將您錄製的音頻串流傳輸到 Anthropic 的伺服器進行轉錄。音頻不在本地處理。語音轉文字服務僅在您使用 Claude.ai 帳戶進行身份驗證時可用,當 Claude Code 配置為直接使用 Anthropic API 金鑰、Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 時不可用。當您的組織啟用了 HIPAA 合規性時,語音聽寫也不可用。轉錄不會消耗 Claude 訊息或代幣,也不會計入 `/usage` 中顯示的限制。請參閱[資料使用](/zh-TW/data-usage)了解 Anthropic 如何處理您的資料。21語音聽寫會將您錄製的音頻串流傳輸到 Anthropic 的伺服器進行轉錄。音頻不在本地處理。它需要以下所有條件:

22 22 

23語音聽寫還需要本地麥克風存取權限,因此它在遠端環境中不起作用,例如[網頁上的 Claude Code](/zh-TW/claude-code-on-the-web)或 SSH 工作階段。在 WSL 語音聽寫需要 WSLg 來進行音頻存取。WSL2 在從 Microsoft Store 在 Windows 10 11 上安裝時包含 WSLg。如果 WSLg 不可用,例如在 WSL1 上,改為在原生 Windows 中執行 Claude Code23* **Claude.ai 帳戶**:語音轉文字服務僅在您使用 Claude.ai 帳戶進行身份驗證時可用 Claude Code 配置為直接使用 Anthropic API 金鑰、Amazon Bedrock、Google Vertex AI Microsoft Foundry 時不可用

24* **未啟用 HIPAA 合規性的組織**:當此限制適用時,`/voice` 會顯示 `Voice mode is disabled by your organization's policy`。

25* **本地麥克風**:語音聽寫在遠端環境中不起作用,例如[網頁上的 Claude Code](/zh-TW/claude-code-on-the-web)或 SSH 工作階段。

26* **如果您在 WSL 中執行 Claude Code,則需要 WSLg**:WSLg 在從 Microsoft Store 在 Windows 10 或 11 上安裝 WSL2 時包含。如果 WSLg 不可用,例如在 WSL1 上,改為在原生 Windows 中執行 Claude Code。

27 

28轉錄不會消耗 Claude 訊息或代幣,也不會計入 `/usage` 中顯示的限制。請參閱[資料使用](/zh-TW/data-usage)了解 Anthropic 如何處理您的資料。

24 29 

25音頻錄製在 macOS、Linux 和 Windows 上使用內建的原生模組。在 Linux 上,如果原生模組無法載入,Claude Code 會回退到 ALSA utils 中的 `arecord` 或 SoX 中的 `rec`。如果兩者都不可用,`/voice` 會列印您的套件管理員的安裝命令。30音頻錄製在 macOS、Linux 和 Windows 上使用內建的原生模組。在 Linux 上,如果原生模組無法載入,Claude Code 會回退到 ALSA utils 中的 `arecord` 或 SoX 中的 `rec`。如果兩者都不可用,`/voice` 會列印您的套件管理員的安裝命令。

26 31 


91 96 

92點擊模式使用單個按鍵切換錄製:點擊一次開始,說話,然後再點擊一次發送提示。沒有預熱,您不需要保持鍵被按住。97點擊模式使用單個按鍵切換錄製:點擊一次開始,說話,然後再點擊一次發送提示。沒有預熱,您不需要保持鍵被按住。

93 98 

94使用 `/voice tap` 啟用點擊模式。當提示輸入為空時,點擊 `Space` 開始錄製。頁尾在錄製時顯示即時波形。再次點擊 `Space` 停止。Claude Code 插入轉錄,當轉錄至少有三個單詞時自動提交提示。較短的轉錄會被插入但不會被提交,因此意外點擊不會發送一個隨意的單詞。99使用 `/voice tap` 啟用點擊模式。當提示輸入為空時,點擊 `Space` 開始錄製。頁尾在錄製時顯示即時波形。再次點擊 `Space` 停止。

100 

101Claude Code 插入轉錄,當轉錄至少有三個單詞時自動提交提示。較短的轉錄會被插入但不會被提交,因此意外點擊不會發送一個隨意的單詞。

102 

103三個單詞的閾值計算不使用空格書寫的語言中的單詞。自 v2.1.195 起,日文、中文和泰文轉錄計算個別單詞,因此它們在點擊模式和使用 `autoSubmit` 的保持模式中自動提交。較早的版本將沒有空格的轉錄計為一個單詞,並且從不自動提交。

95 104 

96第一次點擊只在提示輸入為空時開始錄製,因此您在撰寫訊息時仍然可以正常輸入空格。第二次點擊無論輸入內容如何都會停止錄製。錄製也會在 15 秒無聲或 2 分鐘總時間後自動停止。105第一次點擊只在提示輸入為空時開始錄製,因此您在撰寫訊息時仍然可以正常輸入空格。第二次點擊無論輸入內容如何都會停止錄製。錄製也會在 15 秒無聲或 2 分鐘總時間後自動停止。

97 106 


169語音聽寫未啟動或錄製時的常見問題:178語音聽寫未啟動或錄製時的常見問題:

170 179 

171* **`Voice mode requires a Claude.ai account`**:您使用 API 金鑰或第三方提供者進行了身份驗證。執行 `/login` 以使用 Claude.ai 帳戶登入。180* **`Voice mode requires a Claude.ai account`**:您使用 API 金鑰或第三方提供者進行了身份驗證。執行 `/login` 以使用 Claude.ai 帳戶登入。

181* **`Voice mode is disabled by your organization's policy`**:您的組織的合規性配置停用了語音聽寫,如[需求](#requirements)中所述。請聯絡您的組織管理員以確認您的組織是否可使用語音聽寫。

172* **`Microphone access is denied`**:在系統設定中授予您的終端機麥克風權限。在 macOS 上,前往系統設定 → 隱私與安全 → 麥克風並啟用您的終端機應用程式,然後再次執行 `/voice`。在 Windows 上,前往設定 → 隱私與安全 → 麥克風並開啟桌面應用程式的麥克風存取,然後再次執行 `/voice`。如果您的終端機未列在 macOS 設定中,請參閱[終端機未列在 macOS 麥克風設定中](#terminal-not-listed-in-macos-microphone-settings)。182* **`Microphone access is denied`**:在系統設定中授予您的終端機麥克風權限。在 macOS 上,前往系統設定 → 隱私與安全 → 麥克風並啟用您的終端機應用程式,然後再次執行 `/voice`。在 Windows 上,前往設定 → 隱私與安全 → 麥克風並開啟桌面應用程式的麥克風存取,然後再次執行 `/voice`。如果您的終端機未列在 macOS 設定中,請參閱[終端機未列在 macOS 麥克風設定中](#terminal-not-listed-in-macos-microphone-settings)。

173* **Linux 上的 `No audio recording tool found`**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。183* **Linux 上的 `No audio recording tool found`**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。

184* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**:SoX 已安裝,但主機沒有音頻擷取裝置,例如無頭伺服器或容器。在具有麥克風的機器上執行 Claude Code。{/* min-version: 2.1.195 */}自 v2.1.195 起,Linux 上的 Claude Code 在該情況下報告此訊息;較早的版本即使已安裝 SoX 也會要求您安裝它。

174* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 透過 PulseAudio 而非 ALSA 裝置路由音頻,因此 SoX 需要明確安裝其 PulseAudio 後端。執行 `sudo apt install sox libsox-fmt-pulse`。單獨安裝 `sox` 會拉入 ALSA 後端,這在 WSL 上無法錄製,因為沒有 `/dev/snd` 裝置。185* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 透過 PulseAudio 而非 ALSA 裝置路由音頻,因此 SoX 需要明確安裝其 PulseAudio 後端。執行 `sudo apt install sox libsox-fmt-pulse`。單獨安裝 `sox` 會拉入 ALSA 後端,這在 WSL 上無法錄製,因為沒有 `/dev/snd` 裝置。

175* **`Voice input is failing repeatedly and has been paused`**:語音聽寫連續遇到多個啟動失敗,並停止嘗試新的工作階段,直到一個成功。這通常表示此主機上的麥克風或音頻堆疊無法捕獲音頻,例如無頭伺服器、沒有音頻傳遞的遠端 shell 或被拒絕的麥克風權限。確認工作輸入裝置,修復上述項目中的根本原因,然後再次觸發語音。186* **`Voice input is failing repeatedly and has been paused`**:語音聽寫連續遇到多個啟動失敗,並停止嘗試新的工作階段,直到一個成功。這通常表示此主機上的麥克風或音頻堆疊無法捕獲音頻,例如無頭伺服器、沒有音頻傳遞的遠端 shell 或被拒絕的麥克風權限。確認工作輸入裝置,修復上述項目中的根本原因,然後再次觸發語音。

176* **在按住模式中按住 `Space` 時沒有任何反應**:在按住時監視提示輸入。如果空格不斷累積,語音聽寫可能已關閉;執行 `/voice hold` 啟用它。如果只出現一個或兩個空格然後沒有任何反應,語音聽寫已開啟但按住偵測未觸發。按住偵測需要您的終端機發送按鍵重複事件,因此如果在作業系統層級停用了按鍵重複,它無法偵測按住的鍵。使用 `/voice tap` 切換到點擊模式以避免按鍵重複要求。187* **在按住模式中按住 `Space` 時沒有任何反應**:在按住時監視提示輸入。如果空格不斷累積,語音聽寫可能已關閉;執行 `/voice hold` 啟用它。如果只出現一個或兩個空格然後沒有任何反應,語音聽寫已開啟但按住偵測未觸發。按住偵測需要您的終端機發送按鍵重複事件,因此如果在作業系統層級停用了按鍵重複,它無法偵測按住的鍵。使用 `/voice tap` 切換到點擊模式以避免按鍵重複要求。

whats-new.md +16 −0

Details

8 8 

9每週開發摘要重點介紹最有可能改變您工作方式的功能。每個條目都包含可執行的程式碼、簡短的示範和完整文件的連結。如需每個錯誤修復和次要改進,請參閱 [changelog](/zh-TW/changelog)。9每週開發摘要重點介紹最有可能改變您工作方式的功能。每個條目都包含可執行的程式碼、簡短的示範和完整文件的連結。如需每個錯誤修復和次要改進,請參閱 [changelog](/zh-TW/changelog)。

10 10 

11<Update label="Week 26" description="June 22–26, 2026" tags={["v2.1.185–v2.1.193"]}>

12 **`claude mcp login`**:從您的 shell 驗證已設定的 MCP 伺服器,而不是使用互動式 `/mcp` 選單,稍後可以使用 `claude mcp logout` 清除其儲存的認證。

13 

14 本週還有:**shell mode 回應命令輸出**(`! npm test` 無需第二個提示即可獲得說明);**`/rewind`** 可以從執行 `/clear` 之前恢復對話;以及 **background subagents** 現在在主工作階段中顯示權限提示,而不是自動拒絕。

15 

16 [閱讀 Week 26 摘要 →](/zh-TW/whats-new/2026-w26)

17</Update>

18 

19<Update label="Week 25" description="June 15–19, 2026" tags={["v2.1.178–v2.1.183"]}>

20 **Artifacts**:將工作階段的輸出轉換為 claude.ai 上的即時、可共享頁面,在工作階段進行時就地更新,現在在 Team 和 Enterprise 計畫上進行測試。

21 

22 本週還有:**deny 和 ask rules 使用 `Tool(param:value)` 符合工具參數**,例如 `Agent(model:opus)`;**`/config key=value`** 從提示、`-p` 模式和遠端控制設定任何設定;以及 **auto mode 在您未要求捨棄本機工作時阻止破壞性 git 命令**。

23 

24 [閱讀 Week 25 摘要 →](/zh-TW/whats-new/2026-w25)

25</Update>

26 

11<Update label="Week 24" description="June 8–12, 2026" tags={["v2.1.166–v2.1.176"]}>27<Update label="Week 24" description="June 8–12, 2026" tags={["v2.1.166–v2.1.176"]}>

12 **`/cd`**:在對話中途將目前的工作階段移至新的工作目錄,無需重建提示快取。28 **`/cd`**:在對話中途將目前的工作階段移至新的工作目錄,無需重建提示快取。

13 29 

Details

73 <p className="digest-feature-try">在受管設定中新增下限,以便較舊的用戶端拒絕啟動:</p>73 <p className="digest-feature-try">在受管設定中新增下限,以便較舊的用戶端拒絕啟動:</p>

74 74 

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

76 {

76 "requiredMinimumVersion": "2.1.163"77 "requiredMinimumVersion": "2.1.163"

78 }

77 ```79 ```

78 80 

79 <a className="digest-feature-link" href="/zh-TW/docs/admin-setup#decide-what-to-enforce">決定要強制執行的項目</a>81 <a className="digest-feature-link" href="/zh-TW/docs/admin-setup#decide-what-to-enforce">決定要強制執行的項目</a>

whats-new/2026-w25.md +90 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# 第 25 週 · 2026 年 6 月 15–19 日

6 

7> 從您的工作階段使用 Artifacts 發佈即時可分享的頁面、在拒絕和詢問規則中比對工具參數,以及使用 /config 從提示設定任何設定。

8 

9<div className="digest-meta">

10 <span>版本 <a href="/zh-TW/docs/changelog#2-1-178">v2.1.178 → v2.1.183</a></span>

11 <span>3 項功能 · 6 月 15–19 日</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Artifacts</span>

17 </div>

18 

19 <p className="digest-feature-lede">Artifact 是一個即時互動式頁面,Claude Code 從您的工作階段發佈到 claude.ai 上的私人 URL,並在工作階段繼續進行時在原地更新。當終端文字不是合適的媒介時,請要求一個,例如帶有內聯註解差異的 PR 逐步解說或從工作階段資料建立的儀表板。Artifacts 在 Team 和 Enterprise 方案上處於測試版。</p>

20 

21 <Frame>

22 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/1ylKDoQynT1UgfEK/images/whats-new/artifacts.mp4?fit=max&auto=format&n=1ylKDoQynT1UgfEK&q=85&s=7f5391559d2bc69989621b36322fcff1" data-path="images/whats-new/artifacts.mp4" />

23 </Frame>

24 

25 <p className="digest-feature-try">向 Claude 要求一個頁面,然後批准發佈提示:</p>

26 

27 ```text Claude Code theme={null}

28 > Make an artifact that walks through this PR with the diff annotated inline.

29 ```

30 

31 <a className="digest-feature-link" href="/zh-TW/docs/artifacts#create-an-artifact">建立 artifact</a>

32</div>

33 

34<div className="digest-feature">

35 <div className="digest-feature-header">

36 <span className="digest-feature-title">按輸入參數比對</span>

37 <span className="digest-feature-pill">v2.1.178</span>

38 </div>

39 

40 <p className="digest-feature-lede">拒絕和詢問權限規則現在可以使用 <code>Tool(param:value)</code> 語法比對工具的輸入參數。例如,<code>Agent(model:opus)</code> 比對要求 Opus 模型層級的子代理生成。該值接受 `*` 作為萬用字元,因此 `Agent(isolation:*)` 比對任何明確的隔離值。</p>

41 

42 <p className="digest-feature-try">在 <code>settings.json</code> 中將參數規則新增到拒絕清單:</p>

43 

44 ```json .claude/settings.json {3} theme={null}

45 {

46 "permissions": {

47 "deny": ["Agent(model:opus)"]

48 }

49 }

50 ```

51 

52 <a className="digest-feature-link" href="/zh-TW/docs/permissions#match-by-input-parameter">按輸入參數比對</a>

53</div>

54 

55<div className="digest-feature">

56 <div className="digest-feature-header">

57 <span className="digest-feature-title">從提示設定任何設定</span>

58 <span className="digest-feature-pill">v2.1.181</span>

59 </div>

60 

61 <p className="digest-feature-lede">將 <code>key=value</code> 傳遞給 <code>/config</code> 以直接變更設定,無需開啟設定介面。該語法也適用於使用 <code>-p</code> 旗標的非互動模式和遠端控制。</p>

62 

63 <p className="digest-feature-try">從提示設定 <code>thinking</code> 設定:</p>

64 

65 ```text Claude Code theme={null}

66 > /config thinking=false

67 ```

68 

69 <a className="digest-feature-link" href="/zh-TW/docs/commands#all-commands">命令參考</a>

70</div>

71 

72<div className="digest-wins">

73 <p className="digest-wins-title">其他成果</p>

74 

75 <div className="digest-wins-grid">

76 <div>自動模式現在在您未要求捨棄本機工作時會阻止破壞性 git 命令(`git reset --hard`、`git clean -fd`、`git stash drop`),並在您未要求特定堆疊時阻止 <code>terraform destroy</code></div>

77 <div>將新的 <code>attribution.sessionUrl</code> 設定設為 <code>false</code> 以在網頁和遠端控制工作階段中的提交和 PR 中省略 claude.ai 工作階段連結</div>

78 <div>在 <code>/config</code> 介面中,Enter 和 Space 都會變更選定的設定,Esc 現在會儲存並關閉而不是還原</div>

79 <div>新的 <code>sandbox.allowAppleEvents</code> 選擇加入設定讓沙箱命令在 macOS 上傳送 Apple Events</div>

80 <div>將 <code>CLAUDE\_CLIENT\_PRESENCE\_FILE</code> 指向標記檔案以在您在機器上時抑制行動推播通知</div>

81 <div>長段落現在逐行串流而不是等待第一個換行符</div>

82 <div>API 連線在思考中斷開現在會自動重試,而不是顯示「思考時連線已關閉」</div>

83 <div>設定 <code>CLAUDE\_CODE\_EXPERIMENTAL\_AGENT\_TEAMS=1</code> 時,每個工作階段都有一個隱含的團隊,因此您可以直接使用 Agent 工具的 <code>name</code> 參數生成隊友</div>

84 <div>嵌套 <code>.claude/skills</code> 目錄中的技能在處理該處的檔案時會載入;在名稱衝突時,嵌套技能顯示為 `<dir>:<name>`,因此兩者都保持可用</div>

85 <div>修正了提示快取在自訂 <code>ANTHROPIC\_BASE\_URL</code> 和 Foundry 上未讀取的問題</div>

86 <div>修正了 Write 和 Edit 在網路磁碟機和雲端同步資料夾上產生零位元組或截斷檔案的問題</div>

87 </div>

88</div>

89 

90[v2.1.178–v2.1.183 的完整變更日誌 →](/zh-TW/changelog#2-1-178)

whats-new/2026-w26.md +66 −0 created

Details

1> ## Documentation Index

2> 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.

4 

5# 第 26 週 · 2026 年 6 月 22–26 日

6 

7> 使用 claude mcp login 從您的 shell 驗證 MCP 伺服器,使用 ! 前綴取得 shell 模式命令輸出的回應,以及使用 /rewind 從 /clear 之前恢復對話。

8 

9<div className="digest-meta">

10 <span>版本 <a href="/docs/zh-TW/changelog#2-1-185">v2.1.185 → v2.1.193</a></span>

11 <span>2 項功能 · 6 月 22–26 日</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">從 CLI 驗證 MCP 伺服器</span>

17 <span className="digest-feature-pill">v2.1.186</span>

18 </div>

19 

20 <p className="digest-feature-lede">新的 `claude mcp login <name>` 和 `claude mcp logout <name>` 命令可從您的 shell 驗證已設定的 MCP 伺服器,而不是使用互動式 <code>/mcp</code> 選單。`claude mcp login` 直接執行伺服器的 OAuth 流程,而 `claude mcp logout` 會清除儲存的認證。</p>

21 

22 <p className="digest-feature-try">在不開啟工作階段的情況下執行已設定伺服器的 OAuth 流程:</p>

23 

24 ```bash terminal theme={null}

25 claude mcp login sentry

26 ```

27 

28 <a className="digest-feature-link" href="/docs/zh-TW/mcp#authenticate-from-the-command-line">從命令列驗證</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Shell 模式回應命令輸出</span>

34 <span className="digest-feature-pill">v2.1.186</span>

35 </div>

36 

37 <p className="digest-feature-lede">您使用 <code>!</code> 前綴執行的命令現在會在輸出進入文字記錄後從 Claude 獲得回應,因此您可以執行 <code>! npm test</code> 並獲得失敗的說明,而無需第二個提示。回應成本與傳送一般提示相同。若要保持較早的行為(其中輸出被新增至內容而不獲得回應),請在 <code>settings.json</code> 中將 <code>respondToBashCommands</code> 設定為 <code>false</code>。</p>

38 

39 <p className="digest-feature-try">執行命令並取得其輸出的回應:</p>

40 

41 ```text Claude Code theme={null}

42 > ! npm test

43 ```

44 

45 <a className="digest-feature-link" href="/docs/zh-TW/interactive-mode#shell-mode-with-prefix">使用 ! 前綴的 Shell 模式</a>

46</div>

47 

48<div className="digest-wins">

49 <p className="digest-wins-title">其他改進</p>

50 

51 <div className="digest-wins-grid">

52 <div><code>/rewind</code> 現在可以從執行 <code>/clear</code> 之前恢復對話</div>

53 <div>新的 <code>sandbox.credentials</code> 設定會阻止沙箱化命令讀取認證檔案和祕密環境變數</div>

54 <div>組織設定的模型限制現在適用於模型選擇器、`--model`、<code>/model</code> 和 <code>ANTHROPIC\_MODEL</code>,當選取受限制的模型時會顯示「受您組織的設定限制」訊息</div>

55 <div>新的 <code>autoMode.classifyAllShell</code> 設定會將所有 Bash 和 PowerShell 命令路由通過自動模式分類器,拒絕原因現在會顯示在文字記錄、拒絕快顯通知和 <code>/permissions</code> 中</div>

56 <div>新的 <code>claude\_code.assistant\_response</code> OpenTelemetry 日誌事件會攜帶模型的回應文字;已經記錄提示內容的部署在升級時會開始接收它,因此請設定 <code>OTEL\_LOG\_ASSISTANT\_RESPONSES=0</code> 以僅保留提示</div>

57 <div>背景子代理現在會在主工作階段中顯示權限提示,而不是自動拒絕;對話框會顯示哪個代理在詢問,而 Esc 只會拒絕該工具</div>

58 <div><code>/install-github-app</code> 現在可以僅安裝 GitHub App,並跳過 Actions 工作流程和祕密步驟</div>

59 <div>您在沙箱網路權限對話框中允許的主機會在工作階段的其餘時間內被記住,而不是在每次連線時重新提示</div>

60 <div>串流回應使用的 CPU 減少約 37%,而來自終端輸出快取的長工作階段記憶體成長已減少</div>

61 <div>`/review <pr>` 現在使用與 <code>/code-review medium</code> 相同的審查引擎</div>

62 <div>Bash 模式 <code>!</code> 命令獲得即時檔案路徑自動完成</div>

63 </div>

64</div>

65 

66[v2.1.185–v2.1.193 的完整變更日誌 →](/zh-TW/changelog#2-1-185)

workflows.md +2 −0

Details

68 68 

69 <Step title="閱讀報告">69 <Step title="閱讀報告">

70 執行完成後,報告進入您的工作階段。它引用每項聲明來自的來源,未通過交叉檢查的聲明已被篩選出去。70 執行完成後,報告進入您的工作階段。它引用每項聲明來自的來源,未通過交叉檢查的聲明已被篩選出去。

71 

72 {/* min-version: 2.1.196 */}自 v2.1.196 起,當驗證代理無法檢查聲明時(例如在速率限制或 API 錯誤之後),報告會將該聲明列為未驗證,而不是計為駁回。

71 </Step>73 </Step>

72</Steps>74</Steps>

73 75