SpyBara
Go Premium

Documentation 2026-11-09 23:02 UTC to 2026-11-10 21:57 UTC

80 files changed +907 −607. View all changes and history on the product overview
2026
Fri 13 01:02 Thu 12 23:02 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57

advisor.md +1 −1

Details

160* **API 計費**:您需要按顧問模型的輸入和輸出費率支付顧問代幣160* **API 計費**:您需要按顧問模型的輸入和輸出費率支付顧問代幣

161* **訂閱計畫**:顧問使用計入您計畫的使用限制,除非 Fable 顧問在 Fable 使用計費的計畫上計入[使用額度](https://code.claude.com/docs/zh-TW/model-config.md#fable-and-usage-credits)161* **訂閱計畫**:顧問使用計入您計畫的使用限制,除非 Fable 顧問在 Fable 使用計費的計畫上計入[使用額度](https://code.claude.com/docs/zh-TW/model-config.md#fable-and-usage-credits)

162 162 

163如果您的帳戶需要使用額度同意,Fable 顧問在您同意前不會計費,因為 Claude Code [在那之前不會套用選擇](#fable-advisor-and-usage-credits)。163如需了解 Fable 顧問如何搭配用量點數運作,請參閱 [Fable 顧問與用量點數](#fable-advisor-and-usage-credits)。

164 164 

165Claude 在決策點而非每個輪次都呼叫顧問,因此將更快的主要模型與更強大的顧問配對通常比全程執行更強大的模型成本更低。顧問使用計入 [`/usage`](https://code.claude.com/docs/zh-TW/costs#track-your-costs) 顯示的會話總計。165Claude 在決策點而非每個輪次都呼叫顧問,因此將更快的主要模型與更強大的顧問配對通常比全程執行更強大的模型成本更低。顧問使用計入 [`/usage`](https://code.claude.com/docs/zh-TW/costs#track-your-costs) 顯示的會話總計。

166 166 

Details

79 )79 )

80 80 

81 async with ClaudeSDKClient(options=options) as client:81 async with ClaudeSDKClient(options=options) as client:

82 await client.query("建立一個 .env 檔案,包含標準本地開發資料庫設定")82 await client.query("Create a .env file with the standard local development database configuration")

83 async for message in client.receive_response():83 async for message in client.receive_response():

84 # 篩選助手和結果訊息84 # 篩選助手和結果訊息

85 if isinstance(message, (AssistantMessage, ResultMessage)):85 if isinstance(message, (AssistantMessage, ResultMessage)):


118};118};

119 119 

120for await (const message of query({120for await (const message of query({

121 prompt: "建立一個 .env 檔案,包含標準本地開發資料庫設定",121 prompt: "Create a .env file with the standard local development database configuration",

122 options: {122 options: {

123 hooks: {123 hooks: {

124 // 為 PreToolUse 事件註冊 hook124 // 為 PreToolUse 事件註冊 hook


247* **頂級欄位**在每個事件上被接受:`systemMessage` 向使用者顯示訊息,`continue`(Python 中的 `continue_`)決定此 hook 後 agent 是否繼續執行。某些事件會捨棄它們或將它們傳遞到其他地方。每個[事件的部分](https://code.claude.com/docs/zh-TW/hooks.md#hook-events)在 hook 頁面上說明它們的位置。247* **頂級欄位**在每個事件上被接受:`systemMessage` 向使用者顯示訊息,`continue`(Python 中的 `continue_`)決定此 hook 後 agent 是否繼續執行。某些事件會捨棄它們或將它們傳遞到其他地方。每個[事件的部分](https://code.claude.com/docs/zh-TW/hooks.md#hook-events)在 hook 頁面上說明它們的位置。

248* **`hookSpecificOutput`** 控制目前操作。內部的欄位取決於 hook 事件類型:248* **`hookSpecificOutput`** 控制目前操作。內部的欄位取決於 hook 事件類型:

249 * 對於 `PreToolUse` hook,這是您設定 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。如果您返回 `"defer"`,該回合會以一則 `stop_reason` 為 `"tool_deferred"` 的結果訊息結束,以便您可以[稍後繼續該呼叫](https://code.claude.com/docs/zh-TW/hooks.md#defer-a-tool-call-for-later)。249 * 對於 `PreToolUse` hook,這是您設定 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。如果您返回 `"defer"`,該回合會以一則 `stop_reason` 為 `"tool_deferred"` 的結果訊息結束,以便您可以[稍後繼續該呼叫](https://code.claude.com/docs/zh-TW/hooks.md#defer-a-tool-call-for-later)。

250 * 對於 `PostToolUse` hook,您可以設定 `additionalContext` 以將資訊附加到工具結果。要在 Claude 看到之前替換工具的輸出,請設定 `updatedToolOutput`,這適用於兩個 SDK 中的任何工具。較舊的 `updatedMCPToolOutput` 欄位僅替換 MCP 工具輸出。250 * 對於 `PostToolUse` hook,您可以設定 `additionalContext` 以將資訊附加到工具結果。要在 Claude 看到之前替換工具的輸出,請設定 `updatedToolOutput`,這適用於兩個 SDK 中的內建工具和 MCP 工具。較舊的 `updatedMCPToolOutput` 欄位僅替換 MCP 工具輸出。

251 * 在 TypeScript SDK 中,`PostToolUse` 回調也可以返回 `classifierContext`,這是關於工具呼叫結果的簡短說明,用於[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)權限分類器。因為您的回調在您應用程式自己的程序中執行,分類器可能會將您在說明中轉達的使用者陳述視為使用者意圖。該欄位需要 TypeScript Agent SDK v0.3.236 或更新版本。[為自動模式分類器註解結果](https://code.claude.com/docs/zh-TW/hooks.md#annotate-a-result-for-the-auto-mode-classifier)涵蓋長度上限、僅同步規則,以及不要在說明中放入的內容。251 * 在 TypeScript SDK 中,`PostToolUse` 回調也可以返回 `classifierContext`,這是關於工具呼叫結果的簡短說明,用於[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)權限分類器。因為您的回調在您應用程式自己的程序中執行,分類器可能會將您在說明中轉達的使用者陳述視為使用者意圖。該欄位需要 TypeScript Agent SDK v0.3.236 或更新版本。[為自動模式分類器註解結果](https://code.claude.com/docs/zh-TW/hooks.md#annotate-a-result-for-the-auto-mode-classifier)涵蓋長度上限、僅同步規則,以及不要在說明中放入的內容。

252 252 

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


605 605 

606 606 

607def _send_webhook(tool_name):607def _send_webhook(tool_name):

608 """同步幫助程式,將工具使用資料 POST 到外部 webhook。"""608 """Synchronous helper that POSTs tool usage data to an external webhook."""

609 data = json.dumps(609 data = json.dumps(

610 {610 {

611 "tool": tool_name,611 "tool": tool_name,


703 703 

704 704 

705def _send_slack_notification(message):705def _send_slack_notification(message):

706 """同步幫助程式,透過傳入 webhook 將訊息傳送到 Slack。"""706 """Synchronous helper that sends a message to Slack via incoming webhook."""

707 data = json.dumps({"text": f"Agent status: {message}"}).encode()707 data = json.dumps({"text": f"Agent status: {message}"}).encode()

708 req = urllib.request.Request(708 req = urllib.request.Request(

709 "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",709 "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",

Details

1858 1858 

1859### `TaskStartedMessage`1859### `TaskStartedMessage`

1860 1860 

1861在背景任務啟動時發出。背景任務是在主轉之外追蹤的任何內容:背景 Bash 命令、[Monitor](#monitor) 監視、透過 Agent tool 生成的子代理或遠端代理。`task_type` 欄位告訴您是哪一個。此命名與 `Task` 到 `Agent` tool 重新命名無關。1861在背景任務啟動時發出。背景任務是在主回合之外追蹤的任何內容,例如背景 Bash 命令、[Monitor](#monitor) 監視、透過 Agent 工具生成的 subagent,或遠端 agent。此命名與 `Task` 到 `Agent` 工具重新命名無關。

1862 1862 

1863```python theme={null}1863```python theme={null}

1864@dataclass1864@dataclass


1878| `uuid` | `str` | 唯一消息識別碼 |1878| `uuid` | `str` | 唯一消息識別碼 |

1879| `session_id` | `str` | session 識別碼 |1879| `session_id` | `str` | session 識別碼 |

1880| `tool_use_id` | `str \| None` | 相關聯的 tool 使用 ID |1880| `tool_use_id` | `str \| None` | 相關聯的 tool 使用 ID |

1881| `task_type` | `str \| None` | 背景任務的類型:`"local_bash"` 用於背景 Bash 和 Monitor 監視,`"local_agent"` 或 `"remote_agent"` |1881| `task_type` | `str \| None` | 背景任務的類型,例如 `"local_bash"` 用於背景 Bash 和 Monitor 監視、`"local_agent"` 用於 subagent、`"mcp_task"` 用於[背景 MCP 工具呼叫](https://code.claude.com/docs/zh-TW/mcp.md#automatic-backgrounding-of-long-tool-calls),或 `"remote_agent"` |

1882 1882 

1883### `TaskUsage`1883### `TaskUsage`

1884 1884 

Details

81 }81 }

82 })) {82 })) {

83 // 結果訊息包含具有驗證資料的 structured_output83 // 結果訊息包含具有驗證資料的 structured_output

84 if (message.type === "result" && message.subtype === "success" && message.structured_output) {84 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

85 console.log(message.structured_output);85 console.log(message.structured_output);

86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }

87 }87 }


118 ),118 ),

119 ):119 ):

120 # 結果訊息包含具有驗證資料的 structured_output120 # 結果訊息包含具有驗證資料的 structured_output

121 if isinstance(message, ResultMessage) and message.structured_output:121 if (

122 isinstance(message, ResultMessage)

123 and not message.is_error

124 and message.structured_output

125 ):

122 print(message.structured_output)126 print(message.structured_output)

123 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}127 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}

124 except Exception as error:128 except Exception as error:


142import { z } from "zod";146import { z } from "zod";

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

144 148 

145// 使用 Zod 定義架構149// 使用 Zod 定義 schema

146const FeaturePlan = z.object({150const FeaturePlan = z.object({

147 feature_name: z.string(),151 feature_name: z.string(),

148 summary: z.string(),152 summary: z.string(),


173 }177 }

174 }178 }

175 })) {179 })) {

176 if (message.type === "result" && message.subtype === "success" && message.structured_output) {180 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

177 // 驗證並獲得完全類型化的結果181 // 驗證並獲得完全類型化的結果

178 const parsed = FeaturePlan.safeParse(message.structured_output);182 const parsed = FeaturePlan.safeParse(message.structured_output);

179 if (parsed.success) {183 if (parsed.success) {


223 }227 }

224 ),228 ),

225 ):229 ):

226 if isinstance(message, ResultMessage) and message.structured_output:230 if (

231 isinstance(message, ResultMessage)

232 and not message.is_error

233 and message.structured_output

234 ):

227 # 驗證並獲得完全類型化的結果235 # 驗證並獲得完全類型化的結果

228 plan = FeaturePlan.model_validate(message.structured_output)236 plan = FeaturePlan.model_validate(message.structured_output)

229 print(f"Feature: {plan.feature_name}")237 print(f"Feature: {plan.feature_name}")


286 required: ["todos", "total_count"]294 required: ["todos", "total_count"]

287};295};

288 296 

289// 代理使用 Grep 查找 TODO,使用 Bash 獲取 git blame 資訊297// Agent 使用 Grep 查找 TODO,使用 Bash 獲取 git blame 資訊

290try {298try {

291 for await (const message of query({299 for await (const message of query({

292 prompt: "Find all TODO comments in this codebase and identify who added them",300 prompt: "Find all TODO comments in this codebase and identify who added them",


297 }305 }

298 }306 }

299 })) {307 })) {

300 if (message.type === "result" && message.subtype === "success" && message.structured_output) {308 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

301 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };309 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };

302 console.log(`Found ${data.total_count} TODOs`);310 console.log(`Found ${data.total_count} TODOs`);

303 data.todos.forEach((todo) => {311 data.todos.forEach((todo) => {


344 352 

345 353 

346async def main():354async def main():

347 # 代理使用 Grep 查找 TODO,使用 Bash 獲取 git blame 資訊355 # Agent 使用 Grep 查找 TODO,使用 Bash 獲取 git blame 資訊

348 try:356 try:

349 async for message in query(357 async for message in query(

350 prompt="Find all TODO comments in this codebase and identify who added them",358 prompt="Find all TODO comments in this codebase and identify who added them",


352 output_format={"type": "json_schema", "schema": todo_schema}360 output_format={"type": "json_schema", "schema": todo_schema}

353 ),361 ),

354 ):362 ):

355 if isinstance(message, ResultMessage) and message.structured_output:363 if (

364 isinstance(message, ResultMessage)

365 and not message.is_error

366 and message.structured_output

367 ):

356 data = message.structured_output368 data = message.structured_output

357 print(f"Found {data['total_count']} TODOs")369 print(f"Found {data['total_count']} TODOs")

358 for todo in data["todos"]:370 for todo in data["todos"]:


383 395 

384當 agent 無法生成與您的 schema 相符的有效 JSON 時,結構化輸出生成可能會失敗。這通常發生在 schema 對於任務過於複雜、任務本身不明確,或 agent 在嘗試修復驗證錯誤時達到重試限制時。它也可能在沒有任何驗證失敗的情況下發生:[模型備援](https://code.claude.com/docs/zh-TW/model-config.md#automatic-model-fallback)可以在串流中途收回已完成的輸出,如果沒有重試替換它,執行將以相同的錯誤結束。在對您的 schema 進行除錯之前,請檢查錯誤結果訊息上的 `errors` 清單以區分這兩個原因。396當 agent 無法生成與您的 schema 相符的有效 JSON 時,結構化輸出生成可能會失敗。這通常發生在 schema 對於任務過於複雜、任務本身不明確,或 agent 在嘗試修復驗證錯誤時達到重試限制時。它也可能在沒有任何驗證失敗的情況下發生:[模型備援](https://code.claude.com/docs/zh-TW/model-config.md#automatic-model-fallback)可以在串流中途收回已完成的輸出,如果沒有重試替換它,執行將以相同的錯誤結束。在對您的 schema 進行除錯之前,請檢查錯誤結果訊息上的 `errors` 清單以區分這兩個原因。

385 397 

386發生錯誤時,結果訊息有一個 `subtype` 指示出了什麼問題:398請檢查結果訊息的 `subtype`:

387 399 

388| Subtype | 含義 |400| Subtype | 含義 |

389| - | - |401| - | - |

390| `success` | 輸出已成功生成並驗證 |402| `success` | 執行結束時沒有錯誤 subtype |

391| `error_max_structured_output_retries` | 多次嘗試後沒有有效輸出存活(驗證失敗,或模型回退收回且沒有成功重試) |403| `error_max_structured_output_retries` | 多次嘗試後沒有有效輸出存活(驗證失敗,或模型回退收回且沒有成功重試) |

392 404 

393結果也可以以 `success` 的 subtype 結束,但沒有 `structured_output` 值,例如當運行完成而代理沒有生成結構化輸出時。將該情況也視為失敗。疑難排解項目[structured\_output 為 None 但結果顯示成功](https://code.claude.com/docs/zh-TW/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success)涵蓋此情況。下面的範例僅在 `subtype` 為 `success` 且 `structured_output` 存在時才將結果視為成功,並將所有其他結果作為失敗處理:405`success` subtype 本身並不代表執行已產生答案。當結果的 `is_error` 為 `true` 或缺少 `structured_output` 時,請將該結果視為失敗:

406 

407* **結果上的 `is_error` 為 `true`**:例如,最後一次模型請求以 API 錯誤或拒絕結束。請勿使用此類結果上的 `structured_output` 值。

408* **缺少 `structured_output`**:若要找出原因,請參閱[structured\_output 為 None 但結果顯示成功](https://code.claude.com/docs/zh-TW/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success)

409 

410下面的範例套用了這些檢查:

394 411 

395```typescript TypeScript theme={null}412```typescript TypeScript theme={null}

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


415 }432 }

416 })) {433 })) {

417 if (msg.type === "result") {434 if (msg.type === "result") {

418 if (msg.subtype === "success" && msg.structured_output) {435 if (msg.subtype === "success" && !msg.is_error && msg.structured_output) {

419 // 使用驗證的輸出436 // 使用驗證的輸出

420 console.log(msg.structured_output);437 console.log(msg.structured_output);

421 } else if (msg.subtype === "error_max_structured_output_retries") {438 } else if (msg.subtype === "error_max_structured_output_retries") {

422 console.error("Could not produce valid output");439 console.error("Could not produce valid output");

423 } else {440 } else {

424 console.error("Run ended without a structured output");441 console.error("Run ended with an error or without a structured output");

425 }442 }

426 }443 }

427 }444 }


456 ),473 ),

457 ):474 ):

458 if isinstance(message, ResultMessage):475 if isinstance(message, ResultMessage):

459 if message.subtype == "success" and message.structured_output:476 if (

477 message.subtype == "success"

478 and not message.is_error

479 and message.structured_output

480 ):

460 # 使用驗證的輸出481 # 使用驗證的輸出

461 print(message.structured_output)482 print(message.structured_output)

462 elif message.subtype == "error_max_structured_output_retries":483 elif message.subtype == "error_max_structured_output_retries":

463 print("Could not produce valid output")484 print("Could not produce valid output")

464 else:485 else:

465 print("Run ended without a structured output")486 print("Run ended with an error or without a structured output")

466 except Exception as error:487 except Exception as error:

467 # A single-shot query() raises after yielding an error result. If the488 # A single-shot query() raises after yielding an error result. If the

468 # failure was an error result, the error subtype branches above have489 # failure was an error result, the error subtype branches above have

Details

142 142 

143結果訊息可以以 `subtype: "success"` 結尾,而在 Python 中 `structured_output` 是 `None` 或在 TypeScript 中是 `undefined`。執行完成,但不存在驗證的輸出。143結果訊息可以以 `subtype: "success"` 結尾,而在 Python 中 `structured_output` 是 `None` 或在 TypeScript 中是 `undefined`。執行完成,但不存在驗證的輸出。

144 144 

145在應用程式程式碼中將此結果視為失敗。在使用 `structured_output` 之前,檢查 `subtype` 是 `success` 且 `structured_output` 存在。[錯誤處理](https://code.claude.com/docs/zh-TW/agent-sdk/structured-outputs.md#error-handling)部分顯示了兩個 SDK 的此模式。接著檢查以下原因:145在應用程式程式碼中將此結果視為失敗。[錯誤處理](https://code.claude.com/docs/zh-TW/agent-sdk/structured-outputs.md#error-handling)部分顯示了兩個 SDK 的此模式。接著檢查以下原因:

146 146 

147* **Claude 拒絕的請求**:若要在程式碼中偵測此情況,請檢查結果訊息的 `stop_reason` 是否為 `"refusal"`。關於接下來可嘗試的做法,請參閱 [Usage Policy 拒絕](https://code.claude.com/docs/zh-TW/errors.md#usage-policy-refusal)。147* **Claude 拒絕的請求**:若要在程式碼中偵測此情況,請檢查結果訊息的 `stop_reason` 是否為 `"refusal"`。關於接下來可嘗試的做法,請參閱 [Usage Policy 拒絕](https://code.claude.com/docs/zh-TW/errors.md#usage-policy-refusal)。

148* **沒有任何輸出能滿足的 schema**:例如,`minLength` 大於其 `maxLength` 的字串。如果在您認為正確的 schema 下 `structured_output` 反覆缺失,請尋找彼此矛盾的約束。如果找不到,請簡化 schema 直到輸出通過驗證,然後一次重新引入一個約束。148* **沒有任何輸出能滿足的 schema**:例如,`minLength` 大於其 `maxLength` 的字串。如果在您認為正確的 schema 下 `structured_output` 反覆缺失,請尋找彼此矛盾的約束。如果找不到,請簡化 schema 直到輸出通過驗證,然後一次重新引入一個約束。

Details

1923| `extra_usage_disabled` | 帳戶的用量點數已關閉 |1923| `extra_usage_disabled` | 帳戶的用量點數已關閉 |

1924| `network_error` | [可用性檢查](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)無法連線到 `api.anthropic.com` |1924| `network_error` | [可用性檢查](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)無法連線到 `api.anthropic.com` |

1925| `unknown` | Claude Code 無法判斷可用性 |1925| `unknown` | Claude Code 無法判斷可用性 |

1926| `not_first_party` | 工作階段使用 Anthropic API 以外的提供者 |1926| `not_first_party` | 工作階段使用的供應商不提供快速模式 |

1927| `disabled_by_env` | 已設定 [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/zh-TW/env-vars) |1927| `disabled_by_env` | 已設定 [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/zh-TW/env-vars),或模型在 [Google Cloud's Agent Platform](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-on-agent-platform) 上的區域不提供快速模式 |

1928| `model_not_allowed` | 快速模式的 Opus 模型不在組織的 [`availableModels`](https://code.claude.com/docs/zh-TW/model-config#restrict-model-selection) 允許清單中 |1928| `model_not_allowed` | 快速模式模型不在組織的 [`availableModels`](https://code.claude.com/docs/zh-TW/model-config#restrict-model-selection) 允許清單中,或供應商拒絕為工作階段的模型提供快速模式 |

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

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

1931 1931 


2007 2007 

2008#### `startup_failure_reason`2008#### `startup_failure_reason`

2009 2009 

2010Claude Code 拒絕啟動的原因,讓您的應用程式可以提供修正方式而非重試。Claude Code 會在因已知啟動失敗而結束前寫入的 `error_during_execution` 結果上設定它。該結果攜帶歸零的總計,其 `errors` 陣列攜帶與 stderr 相同的文字。在所有其他結果上,此欄位不存在。需要 Agent SDK v0.3.274 或更新版本。2010Claude Code 拒絕啟動的原因,讓您的應用程式能提供修正方法而非重試。Claude Code 會在因已知啟動失敗而結束前所寫入的 `error_during_execution` 結果上設定它。該結果帶有歸零的總計,其 `errors` 陣列帶有失敗訊息。此欄位在其他所有結果上皆不存在。需要 Agent SDK v0.3.274 或更新版本。

2011 2011 

2012在 [`env`](#options) 中將 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 設定為 `1`,即可針對每個 `SDKStartupFailureReason` 值接收此結果。若未設定該變數,Claude Code 僅會針對下列失敗寫入結果,其餘失敗則以 stderr 輸出、非零結束代碼且無結果訊息的方式結束:2012在 [`env`](#options) 中將 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 設定為 `1`,即可針對每個 `SDKStartupFailureReason` 值接收此結果。若未設定該變數,Claude Code 僅會針對下列失敗寫入結果,其餘失敗則以 stderr 輸出、非零結束代碼且無結果訊息的方式結束:

2013 2013 


5710 5710 

5711### `SDKTaskStartedMessage`5711### `SDKTaskStartedMessage`

5712 5712 

5713在工作開始時發出。`task_type` 欄位對 Bash 命令和 [Monitor](#monitor) 監視為 `"local_bash"`,對 subagent 為 `"local_agent"`,或 `"remote_agent"`。5713在工作開始時發出。`task_type` 命名工作的種類,例如 Bash 命令和 [Monitor](#monitor) 監視為 `"local_bash"`,subagent 為 `"local_agent"`,[背景 MCP 工具呼叫](https://code.claude.com/docs/zh-TW/mcp.md#automatic-backgrounding-of-long-tool-calls)為 `"mcp_task"`,或 `"remote_agent"`。

5714 5714 

5715```typescript theme={null}5715```typescript theme={null}

5716type SDKTaskStartedMessage = {5716type SDKTaskStartedMessage = {


5919 errorCode?: "credits_required";5919 errorCode?: "credits_required";

5920 canUserPurchaseCredits?: boolean;5920 canUserPurchaseCredits?: boolean;

5921 hasChargeableSavedPaymentMethod?: boolean;5921 hasChargeableSavedPaymentMethod?: boolean;

5922 overageEnabled?: boolean;

5922 };5923 };

5923 uuid: UUID;5924 uuid: UUID;

5924 session_id: string;5925 session_id: string;


5927 5928 

5928當 `errorCode` 為 `"credits_required"` 時,拒絕來自其內含用量已耗盡的 claude.ai 訂閱,工作階段在使用者購買用量點數之前無法繼續。`canUserPurchaseCredits` 指示已驗證的使用者是否可以為帳戶購買點數,`hasChargeableSavedPaymentMethod` 指示是否已儲存付款方式。在不是需要點數之拒絕的速率限制事件上,這三個欄位都不存在。需要 Claude Code v2.1.181 或更新版本。5929當 `errorCode` 為 `"credits_required"` 時,拒絕來自其內含用量已耗盡的 claude.ai 訂閱,工作階段在使用者購買用量點數之前無法繼續。`canUserPurchaseCredits` 指示已驗證的使用者是否可以為帳戶購買點數,`hasChargeableSavedPaymentMethod` 指示是否已儲存付款方式。在不是需要點數之拒絕的速率限制事件上,這三個欄位都不存在。需要 Claude Code v2.1.181 或更新版本。

5929 5930 

5931在關於方案用量上限的警告上(即 `status` 為 `"allowed_warning"` 時),`overageEnabled` 會報告帳戶是否已開啟[用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)。需要 Claude Code v2.1.295 或更新版本。

5932 

5930### `SDKLocalCommandOutputMessage`5933### `SDKLocalCommandOutputMessage`

5931 5934 

5932Claude Code 不發出此訊息類型。當您傳送命令(例如 `/context` 或 `/usage`)作為提示詞時,其輸出作為 [`SDKAssistantMessage`](#sdkassistantmessage) 到達。5935Claude Code 不發出此訊息類型。當您傳送命令(例如 `/context` 或 `/usage`)作為提示詞時,其輸出作為 [`SDKAssistantMessage`](#sdkassistantmessage) 到達。

Details

647 647 

648 648 

649def parse_response(response: str, options: list) -> str:649def parse_response(response: str, options: list) -> str:

650 """將使用者輸入解析為選項編號或自由文字。"""650 """Parse user input as option number(s) or free text."""

651 try:651 try:

652 indices = [int(s.strip()) - 1 for s in response.split(",")]652 indices = [int(s.strip()) - 1 for s in response.split(",")]

653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]


657 657 

658 658 

659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:

660 """顯示 Claude 的問題並收集使用者答案。"""660 """Display Claude's questions and collect user answers."""

661 answers = {}661 answers = {}

662 662 

663 for q in input_data.get("questions", []):663 for q in input_data.get("questions", []):

agent-teams.md +1 −1

Details

8 8 

9> [!WARNING]9> [!WARNING]

10>10>

11> Agent teams 是實驗性功能,預設為停用。透過在 [settings.json](https://code.claude.com/docs/zh-TW/settings.md) 或環境中設定 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 來啟用。若沒有該變數,工作階段啟動時不會設定任何團隊、不會寫入團隊目錄,Claude 也不會生成或提議隊友。Agent teams 在工作階段恢復、任務協調和關閉行為方面有[已知限制](#limitations)。11> Agent teams 是實驗性功能,預設為停用。透過在 [settings.json](https://code.claude.com/docs/zh-TW/settings.md) 或環境中設定 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 來啟用。Agent teams 在工作階段恢復、任務協調和關閉行為方面有[已知限制](#limitations)。

12 12 

13Agent teams 讓您協調多個 Claude Code 實例一起工作。一個工作階段充當團隊主管,協調工作、分配任務並綜合結果。隊友獨立工作,各自在自己的 context window 中,並直接相互溝通。您也可以直接與任何隊友互動,無需透過主管。13Agent teams 讓您協調多個 Claude Code 實例一起工作。一個工作階段充當團隊主管,協調工作、分配任務並綜合結果。隊友獨立工作,各自在自己的 context window 中,並直接相互溝通。您也可以直接與任何隊友互動,無需透過主管。

14 14 

agent-view.md +0 −2

Details

892 892 

893該命令也會在執行中的監督程序版本與您叫用的 `claude` 版本不同時發出警告,這會在監督程序尚未重新啟動到新版本的更新後發生。警告會顯示兩個版本,並告訴您執行 `claude daemon stop --any` 以採用新版本。893該命令也會在執行中的監督程序版本與您叫用的 `claude` 版本不同時發出警告,這會在監督程序尚未重新啟動到新版本的更新後發生。警告會顯示兩個版本,並告訴您執行 `claude daemon stop --any` 以採用新版本。

894 894 

895工作階段在該版本不匹配時保持完整:較舊的 Claude Code 版本更新工作階段的 `state.json` 時會保留它不識別的欄位,並保持工作階段列出。`roster.json` 中的工作階段列表遵循相同規則,因此由較新版本啟動的工作階段保持可達,並在監督程序重新啟動後繼續接受輸入。

896 

897### 關閉 agent view895### 關閉 agent view

898 896 

899要完全關閉背景 agent 和 agent view,將 `disableAgentView` [設定](https://code.claude.com/docs/zh-TW/settings.md)設為 `true` 或設定 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 環境變數。管理員可以透過[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)強制執行此操作。897要完全關閉背景 agent 和 agent view,將 `disableAgentView` [設定](https://code.claude.com/docs/zh-TW/settings.md)設為 `true` 或設定 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 環境變數。管理員可以透過[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)強制執行此操作。

Details

367| `ap-*` | `apac.` |367| `ap-*` | `apac.` |

368| 所有其他區域 | `global.` |368| 所有其他區域 | `global.` |

369 369 

370設定 `ANTHROPIC_BEDROCK_REGION_PREFIX` 以選擇 Claude Code 優先嘗試的前綴;當 Claude Code 可以檢查設定檔可用性並找不到模型的相符設定檔時,它會按照下方解析順序進行回退。有效值為 `us`、`eu`、`apac`、`jp`、`au` 和 `global`。例如,當您的帳戶已啟用 `global.` 設定檔但 Claude Code 會根據您的 AWS 區域衍生出地理位置特定的設定檔時,請將其設定為 `global`。需要 Claude Code v2.1.224 或更新版本。370設定 `ANTHROPIC_BEDROCK_REGION_PREFIX` 以選擇 Claude Code 優先嘗試的前綴。有效值為 `us`、`eu`、`apac`、`jp`、`au` 和 `global`。例如,當您的帳戶已啟用 `global.` 設定檔但 Claude Code 會根據您的 AWS 區域衍生出地理位置特定的設定檔時,請將其設定為 `global`。

371 371 

372此範例透過 `global.` 設定檔路由預設模型:372此範例透過 `global.` 設定檔路由預設模型:

373 373 

artifacts.md +19 −2

Details

64| :- | :- |64| :- | :- |

65| 工作階段處於 [plan mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) | 在每個 artifact 首次發佈前詢問 |65| 工作階段處於 [plan mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) | 在每個 artifact 首次發佈前詢問 |

66| 該發佈為頁面宣告了執行階段功能,例如[連接器呼叫](#pull-live-data-with-mcp-connectors)或[檔案下載](#offer-a-file-download) | 在該次發佈前詢問 |66| 該發佈為頁面宣告了執行階段功能,例如[連接器呼叫](#pull-live-data-with-mcp-connectors)或[檔案下載](#offer-a-file-download) | 在該次發佈前詢問 |

67| 您已公開分享該 artifact | 在每次對話中變更前詢問一次 |67| 您已公開分享該 artifact | 在每次對話中變更前詢問一次,並在每次回覆其上的留言前詢問 |

68| Claude 在由[工作階段範圍的排程任務](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)於您的工作階段中觸發所啟動的回合中發佈,而非由您輸入的提示詞啟動 | 在每個 artifact 首次發佈前詢問 |68| Claude 在由[工作階段範圍的排程任務](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)於您的工作階段中觸發所啟動的回合中發佈,而非由您輸入的提示詞啟動 | 在每個 artifact 首次發佈前詢問 |

69| Claude 在未經您核准的情況下無法讀取該檔案 | 在發佈前詢問。`Artifact` 工具的允許規則不會略過此提示 |69| Claude 在未經您核准的情況下無法讀取該檔案 | 在發佈前詢問。`Artifact` 工具的允許規則不會略過此提示 |

70| 在 [Manual](https://code.claude.com/docs/zh-TW/permission-modes.md) 或 `acceptEdits` 模式中,Claude 對某個 artifact 的檔案進行小幅變更,而該檔案未經您核准便無法編輯,例如 Manual 模式中的專案檔案 | 在發佈該變更前詢問。即使允許規則涵蓋 `Artifact` 工具,仍會詢問您,因為對該檔案的編輯需要您的核准 |70| 在 [Manual](https://code.claude.com/docs/zh-TW/permission-modes.md) 或 `acceptEdits` 模式中,Claude 對某個 artifact 的檔案進行小幅變更,而該檔案未經您核准便無法編輯,例如 Manual 模式中的專案檔案 | 在發佈該變更前詢問。即使允許規則涵蓋 `Artifact` 工具,仍會詢問您,因為對該檔案的編輯需要您的核准 |


89使用今天的數字更新 https://claude.ai/code/artifact/5fbea6f3-...。89使用今天的數字更新 https://claude.ai/code/artifact/5fbea6f3-...。

90```90```

91 91 

92### 關閉一步式 artifact 更新

93 

94一步式更新是 Claude 在發佈過程中對 artifact 檔案所做的小幅變更,而非透過 `Edit` 或 `Write` 呼叫進行。

95 

96若要關閉一步式更新,請將 [`CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS`](https://code.claude.com/docs/zh-TW/env-vars) 設定為 `0`。此範例將該變數新增至 `~/.claude/settings.json` 中的 `env` 區塊:

97 

98```json theme={null}

99{

100 "env": {

101 "CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS": "0"

102 }

103}

104```

105 

106接著結束並重新啟動 Claude Code,因為執行中的工作階段不會重新讀取該變數。

107 

92## 再次尋找成品108## 再次尋找成品

93 109 

94在 Claude Code 中執行 `/artifacts`,以列出您擁有的 artifact 以及與您共享的 artifact。目前工作階段的 artifact 會排在最前面,位於 **This session** 之下。110在 Claude Code 中執行 `/artifacts`,以列出您擁有的 artifact 以及與您共享的 artifact。目前工作階段的 artifact 會排在最前面,位於 **This session** 之下。


111你可以分享給誰取決於你的方案:127你可以分享給誰取決於你的方案:

112 128 

113* **在組織內**:在 Team 和 Enterprise 方案上,授予組織中特定人員或所有人的存取權。檢視者以組織成員身分登入 claude.ai 以查看該頁面。129* **在組織內**:在 Team 和 Enterprise 方案上,授予組織中特定人員或所有人的存取權。檢視者以組織成員身分登入 claude.ai 以查看該頁面。

130* **可存取共用資料夾的人員**:在 Team 和 Enterprise 方案上,將 artifact 移至您擁有或擔任編輯者的資料夾。請從 [Artifacts 頁面](https://claude.ai/artifacts)移動,若您可以使用 claude.ai 聊天功能,即可使用此頁面。之後所有可存取該資料夾的人都能開啟它,而資料夾的擁有者和編輯者可以變更它。

114* **公開**:分享一個連結,網際網路上的任何人都可以開啟,無需 claude.ai 登入。在 Team 和 Enterprise 方案上,公開分享處於關閉狀態,直到擁有者[為組織啟用它](#control-public-sharing)。131* **公開**:分享一個連結,網際網路上的任何人都可以開啟,無需 claude.ai 登入。在 Team 和 Enterprise 方案上,公開分享處於關閉狀態,直到擁有者[為組織啟用它](#control-public-sharing)。

115 132 

116### 連結到特定檢視133### 連結到特定檢視


178您的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)決定了當發送的評論到達時 Claude 的行為:195您的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)決定了當發送的評論到達時 Claude 的行為:

179 196 

180* **Claude 自動回覆**:如果您處於允許 Claude 在不詢問您的情況下發佈回覆的權限模式,Claude 會讀取執行緒並回覆。您會看到 `Auto-replied to comment thread on Artifact: <name>`。197* **Claude 自動回覆**:如果您處於允許 Claude 在不詢問您的情況下發佈回覆的權限模式,Claude 會讀取執行緒並回覆。您會看到 `Auto-replied to comment thread on Artifact: <name>`。

181* **Claude 等待您**:在計畫模式外,當發佈回覆需要您的批准時,您會看到 `Comments are waiting on Artifact: <name>`。Claude 隨後會要求您批准讀取執行緒,然後再次批准發佈回覆。198* **Claude 等待您**:在 plan mode 之外,當發佈回覆[需要您的核准](#when-claude-code-asks-before-publishing)時,您會看到 `Comments are waiting on Artifact: <name>`。Claude 隨後會要求您核准讀取執行緒,然後再次要求核准發佈回覆。

182* **Claude 在計畫模式中暫停**:您會看到 `Comments are waiting on Artifact: <name>`,Claude 不會回覆,直到您離開計畫模式並要求它讀取並回覆。199* **Claude 在計畫模式中暫停**:您會看到 `Comments are waiting on Artifact: <name>`,Claude 不會回覆,直到您離開計畫模式並要求它讀取並回覆。

183 200 

184Claude 在處理該成品上的 60 個已發送評論或執行緒啟動後,也會停止自動回覆該成品。您會看到 `Comments are waiting on Artifact: <name>` 一次,當該小時的評論過期時,Claude 會重新開始。201Claude 在處理該成品上的 60 個已發送評論或執行緒啟動後,也會停止自動回覆該成品。您會看到 `Comments are waiting on Artifact: <name>` 一次,當該小時的評論過期時,Claude 會重新開始。

Details

34* **請求**:為了讓檢查通過,閘道需原樣轉發 `anthropic-beta` 標頭和 `safeguards` 本文欄位,因為[兩者會成對傳送](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#beta-header-and-body-field-pairs)。在 [Amazon Bedrock InvokeModel 格式](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#api-formats)上,閘道需轉發 `anthropic_beta` 本文欄位以取代該標頭。34* **請求**:為了讓檢查通過,閘道需原樣轉發 `anthropic-beta` 標頭和 `safeguards` 本文欄位,因為[兩者會成對傳送](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#beta-header-and-body-field-pairs)。在 [Amazon Bedrock InvokeModel 格式](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#api-formats)上,閘道需轉發 `anthropic_beta` 本文欄位以取代該標頭。

35* **回應**:閘道在返回回應和串流事件時,不得刪除欄位或重寫工具使用 ID。為了讓檢查的結果通過,閘道需保留 `safeguard_results` 欄位。35* **回應**:閘道在返回回應和串流事件時,不得刪除欄位或重寫工具使用 ID。為了讓檢查的結果通過,閘道需保留 `safeguard_results` 欄位。

36 36 

37以這種方式通過流量的閘道可繼續與此功能和未來功能搭配運作。新工作階段隨後會再次使用伺服器的檢查。37一旦您的閘道做到這一點,新工作階段就會再次使用伺服器的檢查。

38 38 

39如果您已經知道您的閘道無法提供伺服器的檢查,請在啟動工作階段之前,在您的 shell 或 [`env` 設定金鑰](https://code.claude.com/docs/zh-TW/settings-reference#env)中將 `CLAUDE_CODE_AUTO_MODE_SERVER` 設定為 `0`,以告訴 Claude Code 不要在該處要求檢查:39如果您已經知道您的閘道無法提供伺服器的檢查,請在啟動工作階段之前,在您的 shell 或 [`env` 設定金鑰](https://code.claude.com/docs/zh-TW/settings-reference#env)中將 `CLAUDE_CODE_AUTO_MODE_SERVER` 設定為 `0`,以告訴 Claude Code 不要在該處要求檢查:

40 40 

Details

180 180 

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

182 182 

183* Claude Code 寫入的 `environment` 清單不含 `"$defaults"`,因為草稿已明確列出其未變更的內建項目183* 如果您選擇新增到 `~/.claude/settings.json` 中的 `environment` 清單,您會保留其中的任何 `"$defaults"` 項目。如果您選擇取代該清單,您會失去該項目,因此若您需要預設項目,請重新加入 `"$defaults"`

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

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

186 186 


216 216 

217三個額外的欄位讓您取代分類器的內建規則清單:217三個額外的欄位讓您取代分類器的內建規則清單:

218 218 

219* `autoMode.hard_deny`:無條件安全邊界219* `autoMode.hard_deny`:即使使用者要求也要阻止的操作

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

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

222 222 


231 231 

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

233 233 

234要放寬,當分類器重複標記預設例外不涵蓋的常規模式時,新增到 `allow`。要加強,對於預設值遺漏的特定於您環境的破壞性風險,新增到 `soft_deny`,或對於必須永遠不能跨越的安全邊界,新增到 `hard_deny`。234要放寬,當分類器反覆標示預設例外不涵蓋的例行模式時,新增到 `allow`。要加強,對於預設值遺漏的特定於您環境的破壞性風險,新增到 `soft_deny`,或對於即使使用者要求也要阻止的操作,新增到 `hard_deny`。

235 235 

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

237 237 


252 "soft_deny": [252 "soft_deny": [

253 "$defaults",253 "$defaults",

254 "Never run database migrations outside the migrations CLI, even against dev databases",254 "Never run database migrations outside the migrations CLI, even against dev databases",

255 "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"255 "Running terraform apply in infra/terraform/prod/ needs an explicit request: production infrastructure changes go through the review workflow"

256 ],256 ],

257 "hard_deny": [257 "hard_deny": [

258 "$defaults",258 "$defaults",

Details

763. 您對應到該上游 ID 的 [`models[].id`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#models) 的清單價格,適用於不包含模型名稱的上游字串,例如 Amazon Bedrock 應用程式推論設定檔 ARN 或 Microsoft Foundry 部署名稱。需要 v2.1.218 或更新版本。763. 您對應到該上游 ID 的 [`models[].id`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#models) 的清單價格,適用於不包含模型名稱的上游字串,例如 Amazon Bedrock 應用程式推論設定檔 ARN 或 Microsoft Foundry 部署名稱。需要 v2.1.218 或更新版本。

774. 未知模型層級,每百萬輸入/輸出令牌 \$5/\$25,因此計量器無法識別的 ID 永遠不會免費。閘道在啟動時和執行時每個 ID 一次警告當它使用此層級時。774. 未知模型層級,每百萬輸入/輸出令牌 \$5/\$25,因此計量器無法識別的 ID 永遠不會免費。閘道在啟動時和執行時每個 ID 一次警告當它使用此層級時。

78 78 

79無論適用哪個費率,計量器隨後將金額乘以 [`pricing.multiplier`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#pricing),預設值為 `1`。79無論適用哪個費率,計量器隨後將金額乘以 [`pricing.multiplier`](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#pricing),預設值為 `1`。需要執行 Claude Code v2.1.227 或更新版本的閘道伺服器。

80 80 

81用戶端中止也會被計費。當串流在沒有上游最終使用量框架的情況下結束時,計量器會計費約每輸出令牌四個字元的下限估計,用於已傳送給用戶端的文字,因此提前中止請求不會規避上限。81用戶端中止也會被計費。當串流在沒有上游最終使用量框架的情況下結束時,計量器會計費約每輸出令牌四個字元的下限估計,用於已傳送給用戶端的文字,因此提前中止請求不會規避上限。

82 82 

Details

205* **使用 `/teleport`**:在現有 CLI 工作階段內執行 `/teleport` 或 `/tp` 以開啟相同的工作階段選擇器,無需重新啟動 Claude Code。205* **使用 `/teleport`**:在現有 CLI 工作階段內執行 `/teleport` 或 `/tp` 以開啟相同的工作階段選擇器,無需重新啟動 Claude Code。

206* **從 `/tasks`**:執行 `/tasks` 以查看您的背景工作階段,然後按 `t` 以 teleport 進入其中一個。206* **從 `/tasks`**:執行 `/tasks` 以查看您的背景工作階段,然後按 `t` 以 teleport 進入其中一個。

207* **從 claude.ai/code**:從工作階段功能表選擇 **Open in > Terminal** 以複製可以貼到您的終端機的命令。207* **從 claude.ai/code**:從工作階段功能表選擇 **Open in > Terminal** 以複製可以貼到您的終端機的命令。

208* **從雲端工作階段內**:輸入 `/teleport`,Claude Code 會回覆確切的 `claude --teleport <session-id>` 命令,準備從儲存庫的簽出執行。需要工作階段環境中的 Claude Code v2.1.223 或更新版本。208* **從雲端工作階段內**:輸入 `/teleport`,Claude Code 會回覆該工作階段確切的 `claude --teleport <session-id>` 命令,可直接從儲存庫的簽出執行。

209 209 

210當您 teleport 工作階段時,Claude 會驗證您在正確的儲存庫中,擷取並簽出雲端工作階段的分支,並將對話載入您的終端機。210當您 teleport 工作階段時,Claude 會驗證您在正確的儲存庫中,擷取並簽出雲端工作階段的分支,並將對話載入您的終端機。

211 211 


499* **儲存庫驗證**:您只能在驗證到相同帳戶時將雲端工作階段拉入您的終端機499* **儲存庫驗證**:您只能在驗證到相同帳戶時將雲端工作階段拉入您的終端機

500* **平台限制**:在 Anthropic 託管環境中複製儲存庫以及建立 pull request 需要 GitHub。自託管 [GitHub Enterprise Server](https://code.claude.com/docs/zh-TW/github-enterprise-server.md) 執行個體支援 Team 和 Enterprise 計畫。您可以透過設定 `CCR_FORCE_BUNDLE=1`,將 GitLab、Bitbucket 或其他非 GitHub 儲存庫作為[本機捆綁](#send-local-repositories-without-github)發送到雲端工作階段,但工作階段無法將結果推送回該遠端500* **平台限制**:在 Anthropic 託管環境中複製儲存庫以及建立 pull request 需要 GitHub。自託管 [GitHub Enterprise Server](https://code.claude.com/docs/zh-TW/github-enterprise-server.md) 執行個體支援 Team 和 Enterprise 計畫。您可以透過設定 `CCR_FORCE_BUNDLE=1`,將 GitLab、Bitbucket 或其他非 GitHub 儲存庫作為[本機捆綁](#send-local-repositories-without-github)發送到雲端工作階段,但工作階段無法將結果推送回該遠端

501 * **自託管環境**:若儲存庫位於其他 git 主機上,請參閱[使用 `--environment` 啟動工作階段的需求](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github)。501 * **自託管環境**:若儲存庫位於其他 git 主機上,請參閱[使用 `--environment` 啟動工作階段的需求](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github)。

502* **組織 IP 允許清單**:雲端工作階段從 Anthropic 管理的基礎設施而不是您的網路呼叫 Anthropic API,而[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中的工作階段從您自己的網路呼叫它。如果您的組織啟用了 [IP 允許清單](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting),每個 Anthropic 託管的雲端工作階段都會失敗,出現身分驗證錯誤。

503 * **Code Review 和排程任務**:這同樣適用於 [Code Review](https://code.claude.com/docs/zh-TW/code-review.md),以及在 Anthropic 託管環境中執行的[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)。路由到自託管環境的排程任務會從您自己的網路呼叫 API。

504 * **取得豁免**:聯絡 [Anthropic 支援](https://support.claude.com/),以從您組織的 IP 允許清單中豁免 Anthropic 託管的服務。

505 502 

506## 相關資源503## 相關資源

507 504 

Details

142`sessions/` 中的工作階段檔案、自動記憶和 Claude Desktop 及 Cowork 文字記錄各自遵循自己的保留規則:142`sessions/` 中的工作階段檔案、自動記憶和 Claude Desktop 及 Cowork 文字記錄各自遵循自己的保留規則:

143 143 

144* **`sessions/`**:為每個執行中的工作階段保存一個小檔案,用於偵測並行工作階段和崩潰。它不是基於年齡的掃描的一部分:Claude Code 在其工作階段退出時移除每個檔案,並在下次啟動時清除崩潰遺留物。144* **`sessions/`**:為每個執行中的工作階段保存一個小檔案,用於偵測並行工作階段和崩潰。它不是基於年齡的掃描的一部分:Claude Code 在其工作階段退出時移除每個檔案,並在下次啟動時清除崩潰遺留物。

145* **`seed-admin/`**:Claude Code 在為 [ultrareview](https://code.claude.com/docs/zh-TW/ultrareview.md) 或[雲端工作階段上傳](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#send-local-repositories-without-github)打包您的儲存庫時建立的暫用 git 目錄。當上傳結束時,或若上傳被中斷則在之後的工作階段中,Claude Code 會移除該次上傳的目錄,並保留 `seed-admin/` 本身。

145* **自動記憶**:掃描不會刪除專案 [自動記憶](https://code.claude.com/docs/zh-TW/memory.md#auto-memory) 目錄 `projects/<project>/memory/` 中的記憶檔案。Claude Code 只有在整個保留期間該目錄一直為空時才會移除它。在 v2.1.228 之前,掃描將記憶目錄內的資料夾視為工作階段資料,可能會刪除其下的舊檔案。146* **自動記憶**:掃描不會刪除專案 [自動記憶](https://code.claude.com/docs/zh-TW/memory.md#auto-memory) 目錄 `projects/<project>/memory/` 中的記憶檔案。Claude Code 只有在整個保留期間該目錄一直為空時才會移除它。在 v2.1.228 之前,掃描將記憶目錄內的資料夾視為工作階段資料,可能會刪除其下的舊檔案。

146* **Claude Desktop 和 Cowork 逐字稿**:對於您在 Claude Desktop 或 Cowork 中啟動或最近繼續的工作階段,Claude Code 會保留其逐字稿,無論年齡如何。若要為這些逐字稿設定年齡限制,請設定 [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays)。需要 Claude Code v2.1.248 或更新版本;較早版本會在 `cleanupPeriodDays` 後刪除它們。147* **Claude Desktop 和 Cowork 逐字稿**:對於您在 Claude Desktop 或 Cowork 中啟動或最近繼續的工作階段,Claude Code 會保留其逐字稿,無論年齡如何。若要為這些逐字稿設定年齡限制,請設定 [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays)。需要 Claude Code v2.1.248 或更新版本;較早版本會在 `cleanupPeriodDays` 後刪除它們。

147 148 


153Claude Code 在這些情況下跳過基於年齡的掃描:154Claude Code 在這些情況下跳過基於年齡的掃描:

154 155 

155* **裸機模式**:當你使用 [`--bare`](https://code.claude.com/docs/zh-TW/headless#start-faster-with-bare-mode) 執行 `claude -p` 時,Claude Code 不會在該工作階段中執行掃描。156* **裸機模式**:當你使用 [`--bare`](https://code.claude.com/docs/zh-TW/headless#start-faster-with-bare-mode) 執行 `claude -p` 時,Claude Code 不會在該工作階段中執行掃描。

156* **暫停掃描**:如果 Claude Code 無法安全地確定保留期間,它會暫停保留清理掃描;[`retention_sweep` 事件](https://code.claude.com/docs/zh-TW/monitoring-usage#retention-sweep-event) 列出每個暫停它的設定。當原因是無法讀取或解析的設定檔案,或 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 明確設定的設定錯誤時,Claude Code 也會在 `/status` 中顯示警告,直到你修復設定錯誤。當 [受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md) 提供 `cleanupPeriodDays` 時,Claude Code 在任一情況下都會以受管值執行掃描。157* **暫停掃描**:如果 Claude Code 無法安全地確定保留期間,它會暫停掃描;[`retention_sweep` 事件](https://code.claude.com/docs/zh-TW/monitoring-usage#retention-sweep-event)列出每個會使其暫停的設定。當原因是無法讀取或解析的設定檔,或在設定了 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 的情況下出現設定錯誤時,`/status` 會顯示警告,直到您修正該原因。

158 

159當[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)提供 `cleanupPeriodDays` 時,即使較低優先順序的設定檔有錯誤,Claude Code 也會以受管值執行掃描。

157 160 

158若要確認您組織中的機器是以您設定的保留期間執行掃描,請參閱[檢查保留掃描](https://code.claude.com/docs/zh-TW/monitoring-usage.md#check-the-retention-sweep)。161若要確認您組織中的機器是以您設定的保留期間執行掃描,請參閱[檢查保留掃描](https://code.claude.com/docs/zh-TW/monitoring-usage.md#check-the-retention-sweep)。

159 162 

claude-projects.md +29 −31

Details

20 20 

21* **將工作發送到一個地方**:每當出現時,將錯誤報告、堆疊追蹤或任務清單貼到對話中。Claude 為每個工作片段啟動一個執行緒,或將其傳遞給已在該區域工作的執行緒,並就地回答快速問題。21* **將工作發送到一個地方**:每當出現時,將錯誤報告、堆疊追蹤或任務清單貼到對話中。Claude 為每個工作片段啟動一個執行緒,或將其傳遞給已在該區域工作的執行緒,並就地回答快速問題。

22* **設定一次背景資訊**:每個新執行緒都以專案的指示開始,因此您陳述一次的規則(例如要針對的分支)會到達所有執行緒。22* **設定一次背景資訊**:每個新執行緒都以專案的指示開始,因此您陳述一次的規則(例如要針對的分支)會到達所有執行緒。

23* **離開並返回已完成的工作**:當您一小時後或第二天早上回來時,**Overview** 窗格會顯示哪些執行緒已完成、哪些提取請求已準備好供審查,以及哪個執行緒正在等待您的答案。23* **離開並返回已完成的工作**:Overview 窗格會顯示哪些執行緒已完成、哪些 pull request 已準備好供審查,以及哪個執行緒正在等待您的答案。

24 24 

25如果您已經知道希望專案執行的工作,請直接前往 [建立專案](#create-a-project)。25如果您已經知道希望專案執行的工作,請直接前往 [建立專案](#create-a-project)。

26 26 


28 28 

29當工作有一個超越單個工作階段的目標並持續產生任務時,創建 project 是值得的。這些類型的工作非常適合 project:29當工作有一個超越單個工作階段的目標並持續產生任務時,創建 project 是值得的。這些類型的工作非常適合 project:

30 30 

31* **跨多個儲存庫的一個目標**:"將每個服務升級到新的 lint 配置。" Claude 可以為每個儲存庫執行一個執行緒,每個都有自己的提取請求,[**Overview** 窗格](#see-what-needs-you-in-overview) 會顯示哪些已準備好供審查。31* **跨多個儲存庫的一個目標**:「將每個服務升級到新的 lint 設定。」Claude 可以為每個儲存庫執行一個執行緒,每個都有自己的 pull request,[Overview 窗格](#see-what-needs-you-in-overview) 會顯示哪些已準備好供審查。

32* **您持續提供的區域**:一個服務的錯誤、堆疊追蹤和審查請求,在到達您時貼到對話中。您告訴 Claude 在一個修復後要記住的陷阱在 [project 記憶](#give-a-project-standing-context) 中供下一個使用。32* **您持續提供的區域**:一個服務的錯誤、堆疊追蹤和審查請求,在到達您時貼到對話中。您告訴 Claude 在一個修復後要記住的陷阱在 [project 記憶](#give-a-project-standing-context) 中供下一個使用。

33* **比工作階段更大的構建或遷移**:"構建 `docs/spec.md` 描述的內容"或"將應用程式從已棄用的 ORM 移出。" 工作分成執行緒,每個執行緒處理一部分,您要求 Claude 早期記住的決定會到達後來的執行緒,您在構建期間發現的規格變更和錯誤進入相同的對話。33* **比工作階段更大的構建或遷移**:"構建 `docs/spec.md` 描述的內容"或"將應用程式從已棄用的 ORM 移出。" 工作分成執行緒,每個執行緒處理一部分,您要求 Claude 早期記住的決定會到達後來的執行緒,您在構建期間發現的規格變更和錯誤進入相同的對話。

34* **不是程式碼的工作**:一個合約資料夾或支援票證匯出,您不斷回來提出新問題,例如"在這些票證中找到十個最常見的整合錯誤。" 上傳文件而不是添加儲存庫,執行緒會在 project 的 [**Library** 標籤](#see-what-needs-you-in-overview) 上將每個寫作作為檔案提供。34* **不是程式碼的工作**:一個合約資料夾或支援票證匯出,您不斷回來提出新問題,例如「在這些票證中找到十個最常見的整合錯誤。」上傳文件而不是新增儲存庫,執行緒會將每份報告作為檔案交付到 project 的 [**Library**](#see-what-needs-you-in-overview) 中。

35 35 

36在任何一種情況下,您都可以發送一批任務,告訴 Claude 在不要求您確認的情況下開始,然後離開。當您回來時,可以在 [**Waiting on you**](#see-what-needs-you-in-overview) 下找到需要您的執行緒。您也可以要求 Claude 將部分工作放在時間表上,作為 [雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)。如果這是您的情況,[建立 project](#create-a-project)。36在任何一種情況下,您都可以發送一批任務,告訴 Claude 在不要求您確認的情況下開始,然後離開。當您回來時,可以在 [**Waiting on you**](#see-what-needs-you-in-overview) 下找到需要您的執行緒。您也可以要求 Claude 將部分工作放在時間表上,作為 [雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)。如果這是您的情況,[建立 project](#create-a-project)。

37 37 


57 * [project 每個儲存庫](#what-threads-pick-up-from-your-repositories) 中的 `CLAUDE.md`,但不包括這些儲存庫的 skill、`.claude/settings.json` 或 `.mcp.json`57 * [project 每個儲存庫](#what-threads-pick-up-from-your-repositories) 中的 `CLAUDE.md`,但不包括這些儲存庫的 skill、`.claude/settings.json` 或 `.mcp.json`

58 * 您 claude.ai 帳戶上的 [連接器](#get-skills-plugins-connectors-and-tools-into-threads)58 * 您 claude.ai 帳戶上的 [連接器](#get-skills-plugins-connectors-and-tools-into-threads)

59 * 一個 [雲端環境](#choose-an-environment-for-threads),設定其網路存取、環境變數、網路密鑰和已安裝的工具59 * 一個 [雲端環境](#choose-an-environment-for-threads),設定其網路存取、環境變數、網路密鑰和已安裝的工具

60* **Overview 窗格**:您在其中 [一次看到所有執行緒](#see-what-needs-you-in-overview) 以及其中哪些需要您。其他標籤是 **Library** 用於您添加的檔案和執行緒產生的檔案,**Pull requests** 用於執行緒開啟的 pull request,**Scheduled tasks** 用於 project 中的排程工作。60* **Overview 窗格**:您在其中 [一次看到所有執行緒](#see-what-needs-you-in-overview) 以及其中哪些需要您。

61 61 

62雲端執行緒不會從您自己機器上的 Claude Code 設定中選擇任何內容。[將 skills、plugins、connectors 和工具放入執行緒](#get-skills-plugins-connectors-and-tools-into-threads) 涵蓋了如何給予它們否則會缺少的內容。62雲端執行緒不會從您自己機器上的 Claude Code 設定中選擇任何內容。[將 skills、plugins、connectors 和工具放入執行緒](#get-skills-plugins-connectors-and-tools-into-threads) 涵蓋了如何給予它們否則會缺少的內容。

63 63 

64以下是這些部分如何連接的方式,從您通過對話到執行工作的執行緒,**Overview** 跟蹤其狀態:64以下是這些部分如何連接的方式,從您通過對話到執行工作的執行緒,Overview 跟蹤其狀態:

65 65 

66![Project 的圖表。您在 project 對話中寫入,Claude 回答或啟動執行緒。每個雲端執行緒在自己的分支和提取請求上工作。Overview 窗格按狀態列出執行緒,例如準備好供審查、等待您和工作中。](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)66![Project 的圖表。您在 project 對話中寫入,Claude 回答或啟動執行緒。每個雲端執行緒在自己的分支和提取請求上工作。Overview 窗格按狀態列出執行緒,例如準備好供審查、等待您和工作中。](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)

67 67 


96 96 

97* **Name**:專案在 **Projects** 清單中顯示的名稱。97* **Name**:專案在 **Projects** 清單中顯示的名稱。

98* **What do you want to work on?**(選填):一行文字,會成為專案的目標,例如「將 p95 API 延遲維持在 200 ms 以下」。對話中的 Claude 會朝此目標努力。如果沒有目標,Claude 會依據您傳送的任務工作,您之後也可以在 **Project settings > General** 中新增目標。98* **What do you want to work on?**(選填):一行文字,會成為專案的目標,例如「將 p95 API 延遲維持在 200 ms 以下」。對話中的 Claude 會朝此目標努力。如果沒有目標,Claude 會依據您傳送的任務工作,您之後也可以在 **Project settings > General** 中新增目標。

99* **Context**(選填):此專案處理的 GitHub 儲存庫,以及執行緒應讀取的任何檔案、資料夾或 Google Drive 資料夾。每一項都請點選 **Add** 來新增。請新增大多數任務需要的儲存庫,而不是工作可能涉及的每一個儲存庫;[決定要新增哪些儲存庫](#decide-which-repositories-to-add)說明了如何選擇,您之後也可以在 **Project settings > Environment** 中新增更多儲存庫。99* **Context**(選填):此專案處理的 GitHub 儲存庫,以及執行緒應讀取的任何檔案、資料夾或 Google Drive 資料夾。每一項都請點選 **+** 來新增。請新增大多數任務需要的儲存庫,而不是工作可能涉及的每一個儲存庫;[決定要新增哪些儲存庫](#decide-which-repositories-to-add)說明了如何選擇,您之後也可以在 **Project settings > Environment** 中新增更多儲存庫。

100 100 

101關於執行緒應如何工作的長期規則,請放在[專案指示](#give-a-project-standing-context)中,您可以在專案建立後設定。101關於執行緒應如何工作的長期規則,請放在[專案指示](#give-a-project-standing-context)中,您可以在專案建立後設定。

102 102 


109* 如果專案有可讀取的儲存庫,啟動一個執行緒來探索該儲存庫(不做任何變更),並提出後續步驟建議。109* 如果專案有可讀取的儲存庫,啟動一個執行緒來探索該儲存庫(不做任何變更),並提出後續步驟建議。

110* 根據您最近的雲端工作階段發布 **Setup recommendations**:要新增的儲存庫、要建立的排程任務,以及它可以啟動的執行緒。每個建議的儲存庫和排程任務一開始都是開啟狀態。請關閉您不想要的項目,然後點選 **Update setup** 新增其餘項目,或忽略這些建議並自行描述工作。110* 根據您最近的雲端工作階段發布 **Setup recommendations**:要新增的儲存庫、要建立的排程任務,以及它可以啟動的執行緒。每個建議的儲存庫和排程任務一開始都是開啟狀態。請關閉您不想要的項目,然後點選 **Update setup** 新增其餘項目,或忽略這些建議並自行描述工作。

111 111 

112專案現在會列在側邊欄的 **Projects** 之下,且其對話已開啟。[您的第一批工作](#your-first-batch)說明了在傳送工作之前需要設定的項目。112專案現在會顯示在側邊欄中,且其對話已開啟。[您的第一批工作](#your-first-batch)說明了在傳送工作之前需要設定的項目。

113 113 

114### 從現有的工作階段開始114### 從現有的工作階段開始

115 115 


168 168 

169如果 Claude 路由的內容與您想要的不同,請說出來。[調整 Claude 執行 project 的方式](#tune-how-claude-runs-a-project) 列出了您可以告訴它的內容,例如為後續工作重用現有執行緒或就地回答而不是啟動執行緒。169如果 Claude 路由的內容與您想要的不同,請說出來。[調整 Claude 執行 project 的方式](#tune-how-claude-runs-a-project) 列出了您可以告訴它的內容,例如為後續工作重用現有執行緒或就地回答而不是啟動執行緒。

170 170 

171執行緒的完整結果保留在執行緒中,您打開對話中的卡片來讀取它們。執行緒產生的檔案也在 **Overview** 中的 **Library** 標籤上。171執行緒的完整結果保留在執行緒中,您可以開啟對話中的卡片來讀取。執行緒產生的檔案也會出現在 project 的 [**Library**](#see-what-needs-you-in-overview) 中。

172 172 

173有時 Claude 在 **Suggested threads** 清單中提議執行緒而不是啟動它們。點擊建議上的箭頭啟動該執行緒。當列出多個時,清單下的按鈕啟動所有這些。173有時 Claude 在 **Suggested threads** 清單中提議執行緒而不是啟動它們。點擊建議上的箭頭啟動該執行緒。當列出多個時,清單下的按鈕啟動所有這些。

174 174 


190 190 

191### 在 Overview 中查看需要您的內容191### 在 Overview 中查看需要您的內容

192 192 

193**Overview** 窗格在對話旁邊跟蹤 project 的執行緒。它在您第一次打開新 project 時已經打開。project 標題中的 **Overview** 按鈕關閉並重新打開它,並在執行緒等待您時顯示一個點。193對話旁的 Overview 窗格會追蹤 project 的執行緒。第一次開啟新 project 時,它就已經是開啟狀態。關閉後若要重新開啟,請點擊 project 標題中的 **Threads** 按鈕。當有執行緒在等待您時,該按鈕會顯示一個點。

194 194 

195在桌面應用程式中,當 Claude 在對話中發佈、執行緒遇到錯誤或執行緒需要您的輸入時,您還會收到桌面通知,因此您不必保持 project 打開來找出。要在每次執行緒完成一個回合時也收到一個,或為 project 關閉它們,請在 project 的側邊欄功能表中選擇 **Notifications**。這些通知僅限桌面:在瀏覽器中,檢查 **Overview** 按鈕上的點。195在桌面應用程式中,預設會在 Claude 於對話中發佈訊息、執行緒發生錯誤或執行緒需要您的輸入時顯示通知。當您正在檢視該 project 時則不會顯示。若要在每次執行緒完成一個回合時也收到通知,或要為某個 project 關閉通知,請在 project 的側邊欄選單中選擇 **Notifications**。在瀏覽器中,請查看 **Threads** 按鈕上的點。

196 196 

197窗格的 **Threads** 標籤按狀態對執行緒進行分組:197窗格的 **Threads** 檢視會依狀態將執行緒分組:

198 198 

199| 群組 | 其中的內容 |199| 群組 | 其中的內容 |

200| :- | :- |200| :- | :- |


205| **Idle** | 已完成且不等待任何內容的執行緒 |205| **Idle** | 已完成且不等待任何內容的執行緒 |

206| **Resolved** | 標記為完成的執行緒:由您從執行緒的功能表中,由 Claude 在您採取最後一步後(例如合併其提取請求),或在一週無活動後自動。您可以從相同功能表重新打開一個 |206| **Resolved** | 標記為完成的執行緒:由您從執行緒的功能表中,由 Claude 在您採取最後一步後(例如合併其提取請求),或在一週無活動後自動。您可以從相同功能表重新打開一個 |

207 207 

208窗格的其他標籤是:208從 project 標題可在窗格中開啟 project 的檔案和排程任務:

209 209 

210* **Library**:您新增的檔案和資料夾,以及執行緒產生的檔案210* **Library**:您新增的檔案和資料夾,以及執行緒產生的檔案。點擊 **Threads** 旁邊的 **Library** 按鈕。

211* **Pull requests**:在執行緒打開任何 pull request 後顯示211* **Scheduled tasks**:Claude 從此 project 設定的[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)。在標題的 **⋯** 選單中選擇它。

212* **Scheduled tasks**:Claude 從此 project 設定的[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)

213 212 

214### 當您需要控制時打開執行緒213### 當您需要控制時打開執行緒

215 214 

216點擊對話中執行緒的卡片或 **Overview** 中的其行,在 Overview 窗格中打開其記錄。從那裡您可以:215點擊對話中執行緒的卡片或 Overview 中該執行緒的列,即可在 Overview 窗格中開啟其逐字稿。您可以在那裡:

217 216 

218* 逐步讀取 Claude 所做的內容。217* 逐步讀取 Claude 所做的內容。

219* 通過在執行緒自己的訊息框中寫入來引導任務。那裡的訊息直接進入該執行緒,而 project 對話中的後續工作只有在 Claude 將後續工作與該執行緒匹配時才會到達它。218* 通過在執行緒自己的訊息框中寫入來引導任務。那裡的訊息直接進入該執行緒,而 project 對話中的後續工作只有在 Claude 將後續工作與該執行緒匹配時才會到達它。


290| :- | :- | :- |289| :- | :- | :- |

291| 專案記憶 | Claude 保留的關於專案的筆記,例如需求、決策和陷阱,儲存為檔案。每個雲端執行緒在啟動時讀取索引檔案 `MEMORY.md`,並在需要時開啟其他檔案 | 在專案對話或任何雲端執行緒中要求 Claude 記住一項需求、決策或陷阱,或忘記一項。在**專案設定 > 記憶**中讀取、編輯和刪除檔案 |290| 專案記憶 | Claude 保留的關於專案的筆記,例如需求、決策和陷阱,儲存為檔案。每個雲端執行緒在啟動時讀取索引檔案 `MEMORY.md`,並在需要時開啟其他檔案 | 在專案對話或任何雲端執行緒中要求 Claude 記住一項需求、決策或陷阱,或忘記一項。在**專案設定 > 記憶**中讀取、編輯和刪除檔案 |

292| 專案指示 | 傳送到每個新執行緒和專案對話中的 Claude 的文字,最多 16,000 個字元。[寫入專案指示](#write-project-instructions)涵蓋要在其中放入的內容 | **專案設定 > 記憶 > 專案指示**,或要求 Claude 變更指示 |291| 專案指示 | 傳送到每個新執行緒和專案對話中的 Claude 的文字,最多 16,000 個字元。[寫入專案指示](#write-project-instructions)涵蓋要在其中放入的內容 | **專案設定 > 記憶 > 專案指示**,或要求 Claude 變更指示 |

293| 儲存庫、檔案和環境 | 每個雲端執行緒複製的儲存庫、每個執行緒可以在 `/mnt/project-files` 下讀取的資料夾和檔案,以及執行緒執行所在的雲端環境 | 儲存庫和環境在**專案設定 > 環境**中,或在對話中要求 Claude 將儲存庫新增到專案。[檔案和資料夾](#add-files-and-folders)來自**概覽**中**程式庫**標籤上的**新增** |292| 儲存庫、檔案和環境 | 每個雲端執行緒複製的儲存庫、它可以在 `/mnt/project-files` 下讀取的資料夾和檔案,以及它執行所在的雲端環境 | 儲存庫和環境在**專案設定 > 環境**中,或在對話中要求 Claude 將儲存庫新增到專案。[檔案和資料夾](#add-files-and-folders)透過專案[**程式庫**](#see-what-needs-you-in-overview)中的**新增** |

294 293 

295**專案設定 > 記憶**在**自動記憶**下列出這些檔案,因為 Claude 在專案中工作時自己寫入它們。它們與 Claude Code 在您的機器上保留的[自動記憶](https://code.claude.com/docs/zh-TW/memory.md)分開,儘管兩者都使用 `MEMORY.md` 索引。專案記憶也與專案儲存庫中的 `CLAUDE.md` 檔案分開。每個雲端執行緒在啟動時仍然從其複製讀取這些 `CLAUDE.md` 檔案,因此將關於儲存庫的指示放在其 `CLAUDE.md` 中,將關於專案的筆記放在專案記憶中。294**專案設定 > 記憶**在**自動記憶**下列出這些檔案,因為 Claude 在專案中工作時自己寫入它們。它們與 Claude Code 在您的機器上保留的[自動記憶](https://code.claude.com/docs/zh-TW/memory.md)分開,儘管兩者都使用 `MEMORY.md` 索引。專案記憶也與專案儲存庫中的 `CLAUDE.md` 檔案分開。每個雲端執行緒在啟動時仍然從其複製讀取這些 `CLAUDE.md` 檔案,因此將關於儲存庫的指示放在其 `CLAUDE.md` 中,將關於專案的筆記放在專案記憶中。

296 295 

297### 寫入專案指示296### 寫入專案指示

298 297 

299專案指示是每個新執行緒開始的簡報。按一下專案標題中的齒輪圖示以開啟**專案設定**,然後前往**記憶 > 專案指示**。有用的簡報涵蓋:298專案指示是每個新執行緒開始的簡報。在專案標題的 **⋯** 功能表中選擇**設定**以開啟**專案設定**,然後前往**記憶 > 專案指示**。有用的簡報涵蓋:

300 299 

301* 專案的用途300* 專案的用途

302* 工作發生的位置:哪些儲存庫、從哪個分支開始、如何命名提取請求301* 工作發生的位置:哪些儲存庫、從哪個分支開始、如何命名提取請求


307例如:306例如:

308 307 

309```text theme={null}308```text theme={null}

310此專案將付款 API 的 p95 延遲保持在 200 毫秒以下:分析、查詢和快取修復,以及隨之而來的相依套件升級,在 payments-api 儲存庫中。309This project holds p95 latency for the payments API under 200 ms: profiling, query and caching fixes, and the dependency upgrades that come with them, in the payments-api repository.

311 310 

312- 從 main 分支建立分支,每個執行緒開啟一個草稿 pull request。311- Branch from main and open one draft pull request per thread.

313- 在您完成工作前,執行 `make test` 和 `make lint`,並在最終訊息中貼上摘要行。312- Before you call work done, run `make test` and `make lint` and paste the summary lines in your final message.

314- 如果您無法到達所需的東西,例如儲存庫、祕密、API 或連接器,請在第一條訊息中確切說明遺失的內容並停止。不要替代、模擬或猜測。313- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.

315- 不要在沒有在執行緒中詢問我的情況下合併、強制推送或變更 CI 設定。314- Don't merge, force-push, or change CI configuration without asking me in the thread.

316```315```

317 316 

318關於一個儲存庫的規則,例如其建置命令,屬於該儲存庫的 `CLAUDE.md`,每個雲端執行緒在儲存庫是專案的一部分時讀取。一旦工作開始,當您更正執行緒時,也要告訴 Claude 記住更正:它進入[專案記憶](#give-a-project-standing-context),稍後的雲端執行緒開始時會有它。317關於一個儲存庫的規則,例如其建置命令,屬於該儲存庫的 `CLAUDE.md`,每個雲端執行緒在儲存庫是專案的一部分時讀取。一旦工作開始,當您更正執行緒時,也要告訴 Claude 記住更正:它進入[專案記憶](#give-a-project-standing-context),稍後的雲端執行緒開始時會有它。


324* **將其新增到專案**,在**新專案**對話方塊中、在**專案設定 > 環境**中,或透過在對話中要求 Claude 將其新增到專案。從那時起,每個雲端執行緒都會複製它,並在啟動時載入其 `CLAUDE.md`,無論任務是否涉及它。323* **將其新增到專案**,在**新專案**對話方塊中、在**專案設定 > 環境**中,或透過在對話中要求 Claude 將其新增到專案。從那時起,每個雲端執行緒都會複製它,並在啟動時載入其 `CLAUDE.md`,無論任務是否涉及它。

325* **不要新增它,讓執行緒在需要時自行新增。** 其任務需要專案沒有的儲存庫的雲端執行緒可以將其新增到自己,執行緒中的筆記表示它僅被新增到此執行緒。複製發生在任務進行中途,因此該儲存庫的 `CLAUDE.md` 在執行緒啟動時不存在。下一個執行緒啟動時沒有它。以這種方式新增的儲存庫需要與專案儲存庫相同的[先決條件](#check-the-prerequisites):在其上安裝的 Claude GitHub App 和來自您的 GitHub 帳戶的推送存取。324* **不要新增它,讓執行緒在需要時自行新增。** 其任務需要專案沒有的儲存庫的雲端執行緒可以將其新增到自己,執行緒中的筆記表示它僅被新增到此執行緒。複製發生在任務進行中途,因此該儲存庫的 `CLAUDE.md` 在執行緒啟動時不存在。下一個執行緒啟動時沒有它。以這種方式新增的儲存庫需要與專案儲存庫相同的[先決條件](#check-the-prerequisites):在其上安裝的 Claude GitHub App 和來自您的 GitHub 帳戶的推送存取。

326 325 

327專案根本不需要儲存庫。其雲端執行緒仍然可以進行研究、寫入文件,以及在自己的沙箱中寫入和執行程式碼,並將檔案傳遞到**程式庫**標籤。那裡的任何雲端執行緒也可以在任務需要時將儲存庫新增到自己。326專案根本不需要儲存庫。其雲端執行緒仍然可以進行研究、寫入文件,以及在自己的沙箱中寫入和執行程式碼。它們會將檔案傳遞到專案的**程式庫**。其任何雲端執行緒仍然可以在任務需要時將儲存庫新增到自己。

328 327 

329一旦專案有了儲存庫,Claude 只能從專案已經使用的 GitHub 擁有者新增儲存庫,無論它是將其新增到專案還是執行緒將其新增到自己。要引入來自不同擁有者的儲存庫,請在**專案設定 > 環境**中自己新增它。328一旦專案有了儲存庫,Claude 只能從專案已經使用的 GitHub 擁有者新增儲存庫,無論它是將其新增到專案還是執行緒將其新增到自己。要引入來自不同擁有者的儲存庫,請在**專案設定 > 環境**中自己新增它。

330 329 


332 331 

333### 新增檔案和資料夾332### 新增檔案和資料夾

334 333 

335在**新專案**對話的**背景**欄位中新增您想要執行緒讀取的檔案和資料夾,或之後使用**概覽**中**程式庫**標籤上的**新增**。這些限制適用於您新增的內容:334在**新專案**對話方塊的**背景**欄位中新增您想要執行緒讀取的檔案和資料夾,或之後使用專案[**程式庫**](#see-what-needs-you-in-overview)中的**新增**。這些限制適用於您新增的內容:

336 335 

337* **程式庫標籤**:一次最多 100 個檔案和 2 GB,單個檔案最多 480 MB。336* **您在 claude.ai/code 或桌面應用程式中上傳的檔案**:一次最多 1,000 個檔案和 2 GB,單個檔案最多 480 MB。

338* **新專案對話**:超過 30 MB 的檔案會被跳過,因此在建立專案後從**程式庫**標籤新增較大的檔案。337* **您上傳的資料夾**:隱藏檔案和 `node_modules` 不會被新增。專案最多可以保存 10 個資料夾和 Google Drive 資料夾的組合,單個檔案不計入該限制。

339* **資料夾**:當您從任一位置新增資料夾時,專案會收到其前 100 個檔案的副本,最多 200 MB,不包括任何超過 30 MB 的檔案、隱藏檔案或 `node_modules`。專案最多可以保存 10 個資料夾和 Google Drive 資料夾的組合,單個檔案不計入該限制。

340* **上傳後的變更**:上傳是副本,因此您之後在電腦上進行的變更不會到達專案,直到您再次上傳檔案並在詢問現有名稱時選擇**取代**。338* **上傳後的變更**:上傳是副本,因此您之後在電腦上進行的變更不會到達專案,直到您再次上傳檔案並在詢問現有名稱時選擇**取代**。

341 339 

342### 執行緒從您的儲存庫中取得什麼340### 執行緒從您的儲存庫中取得什麼


373 371 

374## Project 設定參考372## Project 設定參考

375 373 

376您在 claude.ai/code 或桌面應用程式中更改 project 設定,而不是在 `settings.json` 中。從 project 側邊欄功能表中的 **Settings** 或 project 標題中的齒輪圖示打開 **Project settings**。374您在 claude.ai/code 或桌面應用程式中更改 project 設定,而不是在 `settings.json` 中。從 project 側邊欄功能表中的 **Settings** 或 project 標題中的 **⋯** 功能表打開 **Project settings**。

377 375 

378設定在您更改時保存;您正在編輯的文本欄位,例如目標或指示,顯示 **Save changes** 和 **Discard**,直到您離開它。對指示、儲存庫、plugins 和 **Project settings** 中環境的更改到達新執行緒,而不是已在執行的執行緒。376設定在您更改時保存;您正在編輯的文本欄位,例如目標或指示,顯示 **Save changes** 和 **Discard**,直到您離開它。對指示、儲存庫、plugins 和 **Project settings** 中環境的更改到達新執行緒,而不是已在執行的執行緒。

379 377 


434 432 

435 Projects 適用於 Pro、Max 和 Ultra。project 只屬於您:您是唯一能傳送工作給它或查看其執行緒的人,它使用您自己的 GitHub 存取權限和連接器。[Claude Tag 與 Cowork 和 Claude Code 的不同之處](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) 有並排比較。433 Projects 適用於 Pro、Max 和 Ultra。project 只屬於您:您是唯一能傳送工作給它或查看其執行緒的人,它使用您自己的 GitHub 存取權限和連接器。[Claude Tag 與 Cowork 和 Claude Code 的不同之處](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) 有並排比較。

436* **雲端工作階段**:每個執行緒是一個 [雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),除非您要求 Claude 在您的機器上執行它。無論哪種方式,Claude 啟動並追蹤它而不是您。您也可以將自己啟動的雲端工作階段的工作帶入 project:在該工作階段的側邊欄選單中選擇 [**Continue in project**](#start-from-an-existing-cloud-session)。434* **雲端工作階段**:每個執行緒是一個 [雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),除非您要求 Claude 在您的機器上執行它。無論哪種方式,Claude 啟動並追蹤它而不是您。您也可以將自己啟動的雲端工作階段的工作帶入 project:在該工作階段的側邊欄選單中選擇 [**Continue in project**](#start-from-an-existing-cloud-session)。

437* **排程任務**:當您在 project 中要求排程工作時,Claude 會建立一個[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md),在該 project 中作為執行緒執行,並出現在其 **Scheduled tasks** 標籤上。您在 project 外建立的排程任務會繼續獨立運作。435* **排程任務**:當您在 project 中要求排程工作時,Claude 會建立一個[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md),在該 project 中作為執行緒執行,並出現在其 **Scheduled tasks** 檢視中。您在 project 外建立的排程任務會繼續獨立運作。

438* **Remote Control**:[Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連接 claude.ai 到在您機器上執行的 Claude Code 工作階段。當您在 project 中要求 Claude 在您的電腦上執行執行緒時,project [使用 Remote Control 來執行它](#run-a-thread-on-your-own-computer)。436* **Remote Control**:[Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連接 claude.ai 到在您機器上執行的 Claude Code 工作階段。當您在 project 中要求 Claude 在您的電腦上執行執行緒時,project [使用 Remote Control 來執行它](#run-a-thread-on-your-own-computer)。

439* **本機工作階段和 agent 檢視**:您在終端機、IDE 或桌面應用程式的本機環境中自行啟動的工作階段不會屬於您的 projects,不過您可以[將其工作帶入某個 project](#start-from-an-existing-cloud-session)。[Agent 檢視](https://code.claude.com/docs/zh-TW/agent-view.md) 是用於並排追蹤多個本機工作階段的畫面,您仍然自己啟動每個工作階段並給它其任務。437* **本機工作階段和 agent 檢視**:您在終端機、IDE 或桌面應用程式的本機環境中自行啟動的工作階段不會屬於您的 projects,不過您可以[將其工作帶入某個 project](#start-from-an-existing-cloud-session)。[Agent 檢視](https://code.claude.com/docs/zh-TW/agent-view.md) 是用於並排追蹤多個本機工作階段的畫面,您仍然自己啟動每個工作階段並給它其任務。

440* **Worktrees**:[worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 給每個本機工作階段其自己的儲存庫工作副本。雲端執行緒不需要它們:每個執行緒將其儲存庫克隆到其自己的雲端沙箱中,並在自己的分支上工作。438* **Worktrees**:[worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 給每個本機工作階段其自己的儲存庫工作副本。雲端執行緒不需要它們:每個執行緒將其儲存庫克隆到其自己的雲端沙箱中,並在自己的分支上工作。


466當多個執行緒回來假設了錯誤的內容、解決了缺失的存取或停止了「被阻止」,原因通常是 project 設定中的相同間隙,而不是每個任務的問題。在修復任何內容之前排序哪些執行緒是健全的:464當多個執行緒回來假設了錯誤的內容、解決了缺失的存取或停止了「被阻止」,原因通常是 project 設定中的相同間隙,而不是每個任務的問題。在修復任何內容之前排序哪些執行緒是健全的:

467 465 

4681. 在對話中要求 Claude:「對於每個打開的執行緒,列出您要求它做什麼、它假設或無法到達的內容,以及它正在等待什麼。」Claude 讀取每個執行緒並在對話中回答。4661. 在對話中要求 Claude:「對於每個打開的執行緒,列出您要求它做什麼、它假設或無法到達的內容,以及它正在等待什麼。」Claude 讀取每個執行緒並在對話中回答。

4692. 對於從錯誤假設開始的執行緒,從 **Overview** 打開執行緒並從其功能表標記為已解決,或在其訊息框中告訴它改為做什麼。其分支和任何提取請求保留在 GitHub 上,直到您刪除它們。4672. 對於從錯誤假設開始的執行緒,從 Overview 打開執行緒並從其功能表標記為已解決,或告訴它改為做什麼。其分支和任何 pull request 保留在 GitHub 上,直到您刪除它們。

4703. 在 [project 指示](#give-a-project-standing-context) 或 [環境](#choose-an-environment-for-threads) 中修復間隙一次,然後在再次發送其餘工作作為新執行緒之前發送一個執行緒。4683. 在 [project 指示](#give-a-project-standing-context) 或 [環境](#choose-an-environment-for-threads) 中修復間隙一次,然後在再次發送其餘工作作為新執行緒之前發送一個執行緒。

471 469 

472### Claude 還沒有回應470### Claude 還沒有回應

Details

71 71 

72**2. 選擇要掃描的內容**72**2. 選擇要掃描的內容**

73 73 

74外掛程式首先讀取您的儲存庫,然後提供整個儲存庫或聚焦區域,每個選項都說明檔案計數和相對成本。選擇整個儲存庫,或回答「我不知道」,外掛程式會為您的儲存庫大小選擇合理的預設值。74外掛程式首先讀取您的儲存庫,然後提供整個儲存庫或聚焦區域。選擇整個儲存庫,或回答「我不知道」,外掛程式會為您的儲存庫大小選擇合理的預設值。

75 75 

76**3. 確認執行**76**3. 確認執行**

77 77 

78掃描可能需要一段時間,可能使用大量令牌,並需要 Claude Code 在完成時保持開啟。在您確認之前,不會執行任何操作。78掃描可能需要一段時間,可能使用大量 token,並需要 Claude Code 在完成時保持開啟。在您確認之前,不會執行任何操作。

79 79 

80**4. 讀取報告**80**4. 讀取報告**

81 81 

82掃描執行時,它會在每個階段開始時報告,詳細資訊可在 [`/workflows`](https://code.claude.com/docs/zh-TW/workflows) 下取得。結果進入您儲存庫中的時間戳記目錄,如[讀取掃描結果](#read-the-scan-results)中所述。82掃描執行時,它會在每個階段開始時報告,詳細資訊可在 [`/workflows`](https://code.claude.com/docs/zh-TW/workflows) 下取得。結果會寫入您儲存庫中的時間戳記目錄,如[讀取掃描結果](#read-the-scan-results)中所述。

83 83 

84**5. 將發現轉換為修補程式**84**5. 將發現轉換為修補程式**

85 85 

86再次執行 `/claude-security` 並選擇 **Suggest patches**,然後選擇要解決的發現。已檢查的修補程式進入報告的 `patches/` 資料夾;[修復發現](#fix-findings)涵蓋每個修補程式的建立和檢查方式。86再次執行 `/claude-security` 並選擇 **Suggest patches**,然後選擇要解決的發現。已檢查的修補程式會寫入報告的 `patches/` 資料夾;[修復發現](#fix-findings)涵蓋每個修補程式的建立和檢查方式。

87 87 

88**6. 應用您接受的修補程式**88**6. 應用您接受的修補程式**

89 89 


95 95 

96當您的分支有其基礎沒有的提交時,`/claude-security` 功能表會提供僅掃描該差異的選項,以便您可以在合併前檢查分支。您也可以掃描您的一個開啟 pull request,或通過要求它來掃描單一提交,例如「scan commit abc1234」。僅掃描已提交的變更:首先提交或 stash 進行中的編輯,或執行完整掃描,它會讀取工作樹。96當您的分支有其基礎沒有的提交時,`/claude-security` 功能表會提供僅掃描該差異的選項,以便您可以在合併前檢查分支。您也可以掃描您的一個開啟 pull request,或通過要求它來掃描單一提交,例如「scan commit abc1234」。僅掃描已提交的變更:首先提交或 stash 進行中的編輯,或執行完整掃描,它會讀取工作樹。

97 97 

98變更掃描需要 git 儲存庫;未版本控制目錄的完整掃描仍然有效。尋找您的開啟 pull request 是唯一到達網路的步驟,僅當您的工作階段已有權限執行 GitHub CLI 且 `gh` 已登入時才提供。98變更掃描需要 git 儲存庫;未版本控制目錄的完整掃描仍然有效。僅當您的工作階段已有權限執行 GitHub CLI 且 `gh` 已登入時,才會提供尋找您開啟的 pull request 的選項。

99 99 

100### 限制大型儲存庫的範圍100### 限制大型儲存庫的範圍

101 101 


120* **`CLAUDE-SECURITY-RESULTS.md`**:報告,包含每項發現的 ID,例如 `F1`,加上其影響、利用情景、嚴重性、信心和建議120* **`CLAUDE-SECURITY-RESULTS.md`**:報告,包含每項發現的 ID,例如 `F1`,加上其影響、利用情景、嚴重性、信心和建議

121* **`CLAUDE-SECURITY-RESULTS.jsonl`**:相同的發現以機器可讀形式,每行一個 JSON 物件121* **`CLAUDE-SECURITY-RESULTS.jsonl`**:相同的發現以機器可讀形式,每行一個 JSON 物件

122* **`CLAUDE-SECURITY-RESULTS.sarif`**:相同的發現作為 [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) 日誌,用於 GitHub 程式碼掃描和任何其他讀取標準的工具。掃描將發現分類在其 [CWE](https://cwe.mitre.org/) 弱點類別下122* **`CLAUDE-SECURITY-RESULTS.sarif`**:相同的發現作為 [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) 日誌,用於 GitHub 程式碼掃描和任何其他讀取標準的工具。掃描將發現分類在其 [CWE](https://cwe.mitre.org/) 弱點類別下

123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**:修訂戳記,記錄掃描了哪個提交、使用何種[掃描強度](#choose-a-scan-effort)、未提交的變更是否是掃描樹的一部分,以及執行的驗證程度如何,因此報告始終與其描述的程式碼相關聯。版本控制外的掃描在提交位置戳記 `UNVERSIONED`123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**:修訂戳記,記錄掃描了哪個提交、使用何種[掃描強度](#choose-a-scan-effort)、未提交的變更是否是掃描樹的一部分,以及執行的驗證程度如何。版本控制外的掃描在提交位置戳記 `UNVERSIONED`

124 124 

125該目錄是掃描對您簽出的唯一變更,它帶有自己的 `.gitignore`,因此隨意的 `git add` 永遠不會將報告掃入提交。若要在歷史記錄中保留報告以進行稽核追蹤,刪除該一個 `.gitignore` 檔案並像任何其他檔案一樣提交目錄。125該目錄是掃描對您簽出的唯一變更,它帶有自己的 `.gitignore`,因此隨意的 `git add` 永遠不會將報告掃入提交。若要在歷史記錄中保留報告以進行稽核追蹤,刪除該一個 `.gitignore` 檔案並像任何其他檔案一樣提交目錄。

126 126 

127發現僅在獨立驗證代理分析它們後才出現在報告中,這使報告簡短且值得閱讀。掃描是非確定性的:同一程式碼的兩次掃描可能會發現不同的發現。定期執行掃描,並使用修訂戳記將每份報告歸因於它涵蓋的確切程式碼和設定。127發現僅在獨立驗證 agent 分析它們後才出現在報告中,這使報告簡短且值得閱讀。掃描是非確定性的:同一程式碼的兩次掃描可能會發現不同的發現。定期執行掃描。

128 128 

129## 修復發現129## 修復發現

130 130 

Details

102* **角色**:在所有方案上,無論您的角色為何,都可以在自己的環境上新增和刪除機密。在 Team 和 Enterprise 上,擁有者在您的 claude.ai 組織中持有組織管理員角色,管理員則沒有,這會改變您在以下情況中看到的內容:102* **角色**:在所有方案上,無論您的角色為何,都可以在自己的環境上新增和刪除機密。在 Team 和 Enterprise 上,擁有者在您的 claude.ai 組織中持有組織管理員角色,管理員則沒有,這會改變您在以下情況中看到的內容:

103 * **您自己的環境**:若沒有組織管理員角色,**新增機密**會開啟[較簡短的表單](#add-a-secret-without-the-role)103 * **您自己的環境**:若沒有組織管理員角色,**新增機密**會開啟[較簡短的表單](#add-a-secret-without-the-role)

104 * **共用環境**:擁有者從管理設定[新增和刪除其機密](#add-a-credential)。若沒有組織管理員角色,請擁有者新增機密,因為該環境的對話框沒有**網路機密**區段104 * **共用環境**:擁有者從管理設定[新增和刪除其機密](#add-a-credential)。若沒有組織管理員角色,請擁有者新增機密,因為該環境的對話框沒有**網路機密**區段

105* **環境類型**:已存在的 Anthropic 託管雲端環境。[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)沒有網路機密105* **環境類型**:Anthropic 託管的雲端環境。[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)沒有網路機密

106* **API 可達性**:API 接受來自網際網路的連線,因為請求來自 Anthropic 的網路106* **API 可達性**:API 接受來自網際網路的連線,因為請求來自 Anthropic 的網路

107* **加密金鑰**:如果您的組織使用客戶管理的加密金鑰,您無法儲存網路機密107* **加密金鑰**:如果您的組織使用客戶管理的加密金鑰,您無法儲存網路機密

108 108 

Details

14>14>

15> 若要在 GitHub 上自動審查儲存庫中的每個 pull request,請參閱 [Code Review](https://code.claude.com/docs/zh-TW/code-review.md),這是由 Owner 為您的組織啟用的託管服務。15> 若要在 GitHub 上自動審查儲存庫中的每個 pull request,請參閱 [Code Review](https://code.claude.com/docs/zh-TW/code-review.md),這是由 Owner 為您的組織啟用的託管服務。

16 16 

17`/review` 是 `/code-review` 的別名。在 v2.1.223 之前,`/review` 是一個獨立的命令,會對 GitHub pull request 執行單次、唯讀的審查。17`/review` 是 `/code-review` 的別名。

18 18 

19**1. 執行 /code-review**19**1. 執行 /code-review**

20 20 


91* **`ultra`**:審查既不使用也不更新記住的等級91* **`ultra`**:審查既不使用也不更新記住的等級

92* **從未輸入過等級**:審查會使用工作階段目前的 effort92* **從未輸入過等級**:審查會使用工作階段目前的 effort

93 93 

94在 v2.1.223 之前,未指定等級的 `/code-review` 一律使用工作階段目前的 effort。

95 

96### 將發現的問題張貼到 GitLab merge request94### 將發現的問題張貼到 GitLab merge request

97 95 

98當您為 GitLab merge request 傳入 `--comment` 時,Claude Code 會透過 GitLab 的 `glab` CLI 張貼發現的問題。需要 Claude Code v2.1.257 或更新版本。若未安裝 `glab`,Claude 會改為在終端機中印出發現的問題。96當您為 GitLab merge request 傳入 `--comment` 時,Claude Code 會透過 GitLab 的 `glab` CLI 張貼發現的問題。需要 Claude Code v2.1.257 或更新版本。若未安裝 `glab`,Claude 會改為在終端機中印出發現的問題。

commands.md +2 −2

Details

104| `/install-github-app` | 為儲存庫安裝 Claude GitHub App,可選步驟設定 [GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions.md) 工作流程和機密。逐步解說您選擇儲存庫和設定整合。僅適用於 github.com 儲存庫。當您的儲存庫的 git 遠端在 gitlab.com 或 bitbucket.org 上時,命令會列印通知並退出而不是啟動設定。要從 GitLab 管道運行 Claude Code,請參閱 [GitLab CI/CD](https://code.claude.com/docs/zh-TW/gitlab-ci-cd.md) |104| `/install-github-app` | 為儲存庫安裝 Claude GitHub App,可選步驟設定 [GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions.md) 工作流程和機密。逐步解說您選擇儲存庫和設定整合。僅適用於 github.com 儲存庫。當您的儲存庫的 git 遠端在 gitlab.com 或 bitbucket.org 上時,命令會列印通知並退出而不是啟動設定。要從 GitLab 管道運行 Claude Code,請參閱 [GitLab CI/CD](https://code.claude.com/docs/zh-TW/gitlab-ci-cd.md) |

105| `/install-slack-app` | 安裝 Claude Slack 應用程式。打開瀏覽器以完成 OAuth 流程 |105| `/install-slack-app` | 安裝 Claude Slack 應用程式。打開瀏覽器以完成 OAuth 流程 |

106| `/keybindings` | 打開您的[鍵盤快捷鍵](https://code.claude.com/docs/zh-TW/keybindings.md)檔案 |106| `/keybindings` | 打開您的[鍵盤快捷鍵](https://code.claude.com/docs/zh-TW/keybindings.md)檔案 |

107| `/list-agents` | 列出 Claude 可以傳送訊息的 subagent、[agent team](https://code.claude.com/docs/zh-TW/agent-teams.md) 隊員和其他 Claude Code 工作階段,以及每個要使用的名稱。請參閱[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)。也可用作 `/peers`。需要 Claude Code v2.1.224 或更新版本;較早版本報告 `Unknown command: /list-agents`。隊員行和顯示此工作階段自己名稱的第一行需要 v2.1.239 或更新版本。僅在[啟用跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md#availability)的工作階段中可用 |107| `/list-agents` | 列出 Claude 可以傳送訊息的 subagent、[agent team](https://code.claude.com/docs/zh-TW/agent-teams.md) 隊員和其他 Claude Code 工作階段,以及每個要使用的名稱。請參閱[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)。也可用作 `/peers`。隊員行和顯示此工作階段自己名稱的第一行需要 v2.1.239 或更新版本。僅在[啟用跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md#availability)的工作階段中可用 |

108| `/login` | 登入您的 Anthropic 帳戶 |108| `/login` | 登入您的 Anthropic 帳戶 |

109| `/logout` | 登出您的 Anthropic 帳戶 |109| `/logout` | 登出您的 Anthropic 帳戶 |

110| `/loop [interval] [prompt]` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 在工作階段保持打開時重複運行提示詞。省略間隔,Claude [自行調整迭代之間的步調](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#let-claude-choose-the-interval)。省略提示詞,Claude 運行[內建維護提示詞](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#run-the-built-in-maintenance-prompt)或您的 [`loop.md`](https://code.claude.com/docs/zh-TW/scheduled-tasks#customize-the-default-prompt-with-loop-md)。範例:`/loop 5m check if the deploy finished`。請參閱[按排程運行提示詞](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)。別名:`/proactive` |110| `/loop [interval] [prompt]` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 在工作階段保持打開時重複運行提示詞。省略間隔,Claude [自行調整迭代之間的步調](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#let-claude-choose-the-interval)。省略提示詞,Claude 運行[內建維護提示詞](https://code.claude.com/docs/zh-TW/scheduled-tasks.md#run-the-built-in-maintenance-prompt)或您的 [`loop.md`](https://code.claude.com/docs/zh-TW/scheduled-tasks#customize-the-default-prompt-with-loop-md)。範例:`/loop 5m check if the deploy finished`。請參閱[按排程運行提示詞](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)。別名:`/proactive` |


132| `/rename [name]` | 重新命名目前工作階段並在提示詞欄上顯示名稱。沒有名稱時,從對話歷史記錄自動生成一個。也可在非互動模式 (`-p`) 中使用。從每個重新命名的使用介面,包括 claude.ai 和桌面應用程式,Claude Code 會用空格替換新名稱中的控制和不可見字元,並將名稱上限設為 200 個字元。如果移除不可見字元後名稱為空,Claude Code 會拒絕它並顯示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字元替換和長度上限需要 Claude Code v2.1.221 或更新版本 |132| `/rename [name]` | 重新命名目前工作階段並在提示詞欄上顯示名稱。沒有名稱時,從對話歷史記錄自動生成一個。也可在非互動模式 (`-p`) 中使用。從每個重新命名的使用介面,包括 claude.ai 和桌面應用程式,Claude Code 會用空格替換新名稱中的控制和不可見字元,並將名稱上限設為 200 個字元。如果移除不可見字元後名稱為空,Claude Code 會拒絕它並顯示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字元替換和長度上限需要 Claude Code v2.1.221 或更新版本 |

133| `/restart` | 重新啟動 Claude Code 並恢復此工作階段,以應用已安裝的更新。當更新安裝後頁尾提供此選項時運行它。需要 Pro、Max 或 Ultra 方案,以及在 macOS 或 Linux(非 WSL)上的原生安裝。需要 Claude Code v2.1.288 或更新版本。別名:`/update` |133| `/restart` | 重新啟動 Claude Code 並恢復此工作階段,以應用已安裝的更新。當更新安裝後頁尾提供此選項時運行它。需要 Pro、Max 或 Ultra 方案,以及在 macOS 或 Linux(非 WSL)上的原生安裝。需要 Claude Code v2.1.288 或更新版本。別名:`/update` |

134| `/resume [session]` | 按 ID 或名稱恢復對話,或打開工作階段選擇器。[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)在選擇器中以 `bg` 標記出現。恢復仍在運行的工作階段時,無論是從選擇器或按 ID 或名稱,都會[打開該工作階段](https://code.claude.com/docs/zh-TW/sessions.md#resume-a-running-background-session):您目前的對話會移到背景,此終端機會附加到運行中的工作階段。在空提示詞上按 `←` 可返回 agent view,其中也會列出您離開的對話。在 v2.1.285 之前,Claude Code 會拒絕,並告訴您使用 `claude attach` 打開該工作階段或先停止它。別名:`/continue` |134| `/resume [session]` | 按 ID 或名稱恢復對話,或打開工作階段選擇器。[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)在選擇器中以 `bg` 標記出現。恢復仍在運行的工作階段時,無論是從選擇器或按 ID 或名稱,都會[打開該工作階段](https://code.claude.com/docs/zh-TW/sessions.md#resume-a-running-background-session):您目前的對話會移到背景,此終端機會附加到運行中的工作階段。在空提示詞上按 `←` 可返回 agent view,其中也會列出您離開的對話。在 v2.1.285 之前,Claude Code 會拒絕,並告訴您使用 `claude attach` 打開該工作階段或先停止它。別名:`/continue` |

135| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | [`/code-review`](https://code.claude.com/docs/zh-TW/code-review-local) 的別名:檢查目前差異或您傳遞的 PR 編號、分支或路徑,例如 `/review 1234`,並採用相同的 effort 等級和旗標。沒有給定等級時,檢查重複使用您最後輸入的 `low` 到 `max` 等級;有關確切規則,請參閱[使用 `/code-review` 在本地檢查](https://code.claude.com/docs/zh-TW/code-review-local)。對於深度雲端檢查,使用 [`/code-review ultra`](https://code.claude.com/docs/zh-TW/ultrareview)。在 v2.1.223 之前,`/review` 是一個單獨的命令,按編號對 GitHub pull request 進行單次通過、唯讀檢查,在運行時不帶引數時列出打開的 PR 以選擇;從 v2.1.186 到 v2.1.201,它運行與 `/code-review medium` 相同的多 agent 引擎 |135| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | [`/code-review`](https://code.claude.com/docs/zh-TW/code-review-local) 的別名:檢查目前差異或您傳遞的 PR 編號、分支或路徑,例如 `/review 1234`,並採用相同的 effort 等級和旗標。沒有給定等級時,檢查重複使用您最後輸入的 `low` 到 `max` 等級;有關確切規則,請參閱[使用 `/code-review` 在本地檢查](https://code.claude.com/docs/zh-TW/code-review-local)。對於深度雲端檢查,使用 [`/code-review ultra`](https://code.claude.com/docs/zh-TW/ultrareview) |

136| `/rewind` | 倒帶對話和/或程式碼到上一個點,或從選定的訊息進行摘要。請參閱[檢查點功能](https://code.claude.com/docs/zh-TW/checkpointing.md)。別名:`/checkpoint`、`/undo` |136| `/rewind` | 倒帶對話和/或程式碼到上一個點,或從選定的訊息進行摘要。請參閱[檢查點功能](https://code.claude.com/docs/zh-TW/checkpointing.md)。別名:`/checkpoint`、`/undo` |

137| `/run` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 啟動並驅動您的專案應用程式以查看變更實際運作,而不僅僅是通過測試。請參閱[運行和驗證您的應用程式](https://code.claude.com/docs/zh-TW/skills.md#run-and-verify-your-app) |137| `/run` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 啟動並驅動您的專案應用程式以查看變更實際運作,而不僅僅是通過測試。請參閱[運行和驗證您的應用程式](https://code.claude.com/docs/zh-TW/skills.md#run-and-verify-your-app) |

138| `/run-skill-generator` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 通過編寫每個專案的 [skill](https://code.claude.com/docs/zh-TW/skills.md#run-and-verify-your-app),教 `/run` 和 `/verify` 如何從乾淨環境建置、啟動和驅動您的專案應用程式 |138| `/run-skill-generator` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 通過編寫每個專案的 [skill](https://code.claude.com/docs/zh-TW/skills.md#run-and-verify-your-app),教 `/run` 和 `/verify` 如何從乾淨環境建置、啟動和驅動您的專案應用程式 |

costs.md +7 −7

Details

236 * 執行 `/usage-credits` 以請求超過額度的使用量,如果您已啟用[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。236 * 執行 `/usage-credits` 以請求超過額度的使用量,如果您已啟用[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。

237 * 在 Claude Code v2.1.234 或更新版本上,[在重設後自動等待並繼續中斷的任務](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset);該部分列出 Claude Code 何時自行開始等待以及開發人員何時從 `/rate-limit-options` 選擇它。若要控制您的機隊 Claude Code 是否自行開始該等待,請在[受管設定](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)中設定 [`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-TW/settings-reference#autocontinueatusagelimit)。237 * 在 Claude Code v2.1.234 或更新版本上,[在重設後自動等待並繼續中斷的任務](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset);該部分列出 Claude Code 何時自行開始等待以及開發人員何時從 `/rate-limit-options` 選擇它。若要控制您的機隊 Claude Code 是否自行開始該等待,請在[受管設定](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)中設定 [`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-TW/settings-reference#autocontinueatusagelimit)。

238* **「You've hit your individual spend limit」、「org's monthly spend limit」或「team's shared budget」**:開發人員的請求將被計費至用量點數,而這些點數已達到您設定的支出限制。若要讓開發人員繼續,請前往[**組織設定 > 用量**](https://claude.ai/admin-settings/usage)並提高訊息中指明的限制。當訊息也指明方案重設時間時,開發人員可以改為等待直到那時。請參閱[錯誤參考](https://code.claude.com/docs/zh-TW/errors.md#youve-hit-your-monthly-spend-limit)以了解每個變體。238* **「You've hit your individual spend limit」、「org's monthly spend limit」或「team's shared budget」**:開發人員的請求將被計費至用量點數,而這些點數已達到您設定的支出限制。若要讓開發人員繼續,請前往[**組織設定 > 用量**](https://claude.ai/admin-settings/usage)並提高訊息中指明的限制。當訊息也指明方案重設時間時,開發人員可以改為等待直到那時。請參閱[錯誤參考](https://code.claude.com/docs/zh-TW/errors.md#youve-hit-your-monthly-spend-limit)以了解每個變體。

239* **來自 [Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 的支出限制訊息**:開發人員超過了您在自託管閘道上設定的支出上限,閘道會阻止他們的請求,直到期間重設或您提高上限。請參閱[閘道支出限制](https://code.claude.com/docs/zh-TW/claude-apps-gateway-spend-limits.md)以了解上限、重設時間表和開發人員看到的訊息。239* **來自 [Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 的支出限制訊息**:開發人員超過了您在自託管閘道上設定的支出上限。閘道會阻止他們的請求,直到您提高上限,或在上限高於 \$0 時直到上限重設。請參閱[閘道支出限制](https://code.claude.com/docs/zh-TW/claude-apps-gateway-spend-limits.md)以了解上限、重設時間表和開發人員看到的訊息。

240* **上下文或自動壓縮警告**:不是使用限制。對話已接近工作階段的[自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window),Claude Code 會總結較舊的歷史記錄以釋放空間的閾值。將開發人員指向[減少 token 使用量](#reduce-token-usage)。240* **上下文或自動壓縮警告**:不是使用限制。對話已接近工作階段的[自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window),Claude Code 會總結較舊的歷史記錄以釋放空間的閾值。將開發人員指向[減少 token 使用量](#reduce-token-usage)。

241* **API 或雲端提供者方案上的意外高支出**:通常可追溯到從未清除的長工作階段或留作預設模型的 Opus。分享的最高影響習慣是在不相關的任務之間清除和將模型與工作相匹配,兩者都涵蓋在[減少 token 使用量](#reduce-token-usage)中。241* **API 或雲端提供者方案上的意外高支出**:通常可追溯到從未清除的長工作階段或留作預設模型的 Opus。分享的最高影響習慣是在不相關的任務之間清除和將模型與工作相匹配,兩者都涵蓋在[減少 token 使用量](#reduce-token-usage)中。

242 242 


292 292 

293自訂 [hook](https://code.claude.com/docs/zh-TW/hooks.md) 可以在 Claude 看到資料之前對其進行預處理。Claude 不是讀取 10,000 行日誌檔案來尋找錯誤,hook 可以 grep `ERROR` 並僅返回匹配的行,將上下文從數萬個 token 減少到數百個。293自訂 [hook](https://code.claude.com/docs/zh-TW/hooks.md) 可以在 Claude 看到資料之前對其進行預處理。Claude 不是讀取 10,000 行日誌檔案來尋找錯誤,hook 可以 grep `ERROR` 並僅返回匹配的行,將上下文從數萬個 token 減少到數百個。

294 294 

295[skill](https://code.claude.com/docs/zh-TW/skills.md) 可以為 Claude 提供領域知識,因此它不必進行探索。例如,「codebase-overview」skill 可以描述您的專案架構、關鍵目錄和命名慣例。當 Claude 呼叫該 skill 時,它會立即獲得此上下文,而不是花費 token 讀取多個檔案來理解結構。295此 PreToolUse hook 將測試輸出裁剪為最後 100 行:

296 

297例如,此 PreToolUse hook 篩選測試輸出以僅顯示失敗:

298 296 

299> [tab] settings.json297> [tab] settings.json

300>298>


320 318 

321> [tab] filter-test-output.sh319> [tab] filter-test-output.sh

322>320>

323> hook 呼叫此指令碼。使用 `mkdir -p ~/.claude/hooks` 建立資料夾,將下面的指令碼儲存為 `~/.claude/hooks/filter-test-output.sh`,並使用 `chmod +x ~/.claude/hooks/filter-test-output.sh` 使其可執行。它檢查命令是否為測試執行器並修改它以僅顯示失敗:321> hook 呼叫此指令碼。使用 `mkdir -p ~/.claude/hooks` 建立資料夾,將下面的指令碼儲存為 `~/.claude/hooks/filter-test-output.sh`,並使用 `chmod +x ~/.claude/hooks/filter-test-output.sh` 使其可執行。它檢查命令是否為測試執行器,若是,則僅保留其輸出的最後 100 行:

324>322>

325> ```bash theme={null}323> ```bash theme={null}

326> #!/bin/bash324> #!/bin/bash

327> input=$(cat)325> input=$(cat)

328> cmd=$(echo "$input" | jq -r '.tool_input.command')326> cmd=$(echo "$input" | jq -r '.tool_input.command')

329>327>

330> # If running tests, filter to show only failures328> # If running tests, keep only the last 100 lines

331> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'329> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'

332> if [[ "$cmd" =~ $pattern ]]; then330> if [[ "$cmd" =~ $pattern ]]; then

333> filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"331> filtered_cmd="$cmd 2>&1 | tail -n 100"

334> echo "$input" | jq --arg filtered "$filtered_cmd" \332> echo "$input" | jq --arg filtered "$filtered_cmd" \

335> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'333> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'

336> else334> else


340 338 

341若要驗證設定,執行 `/hooks` 並檢查 hook 是否出現在 PreToolUse 下。您也可以使用 `claude --debug-file ./claude-debug.txt` 啟動 Claude Code,並要求 Claude 執行 `npm test`。當 hook 重寫命令時,該日誌檔案包含列出 `command` 和其他 Bash 輸入欄位的 `modified tool input keys` 行。339若要驗證設定,執行 `/hooks` 並檢查 hook 是否出現在 PreToolUse 下。您也可以使用 `claude --debug-file ./claude-debug.txt` 啟動 Claude Code,並要求 Claude 執行 `npm test`。當 hook 重寫命令時,該日誌檔案包含列出 `command` 和其他 Bash 輸入欄位的 `modified tool input keys` 行。

342 340 

341[skill](https://code.claude.com/docs/zh-TW/skills.md) 可以為 Claude 提供領域知識,因此它不必進行探索。例如,「codebase-overview」skill 可以描述您的專案架構、關鍵目錄和命名慣例。當 Claude 呼叫該 skill 時,它會立即獲得此上下文,而不是花費 token 讀取多個檔案來理解結構。

342 

343### 將指示從 CLAUDE.md 移至 skill343### 將指示從 CLAUDE.md 移至 skill

344 344 

345您的 [CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md) 檔案在工作階段開始時載入到上下文中。如果它包含特定工作流程的詳細指示(例如 PR 審查或資料庫遷移),即使您在進行不相關的工作時,這些 token 也會存在。[Skills](https://code.claude.com/docs/zh-TW/skills.md) 僅在呼叫時按需載入,因此將專門指示移至 skill 可以保持您的基本上下文較小。目標是透過僅包含必要內容來將 CLAUDE.md 保持在 200 行以下。345您的 [CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md) 檔案在工作階段開始時載入到上下文中。如果它包含特定工作流程的詳細指示(例如 PR 審查或資料庫遷移),即使您在進行不相關的工作時,這些 token 也會存在。[Skills](https://code.claude.com/docs/zh-TW/skills.md) 僅在呼叫時按需載入,因此將專門指示移至 skill 可以保持您的基本上下文較小。目標是透過僅包含必要內容來將 CLAUDE.md 保持在 200 行以下。

Details

56 56 

57### 訊息傳遞57### 訊息傳遞

58 58 

59接收 Claude 在活躍回合期間的工具呼叫之間讀取訊息,因此執行中的工具永遠不會被中斷。當接收工作階段閒置時,Claude Code 使用訊息啟動新回合。59接收 Claude 在活躍回合期間的工具呼叫之間讀取訊息。當接收工作階段閒置時,Claude Code 使用訊息啟動新回合。

60 60 

61來自另一個工作階段的訊息作為純文字到達。如果它使用 `@` 提及檔案或 [MCP 資源](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-resources),Claude 會看到如寫入的提及,Claude Code 不會附加任何內容,無論訊息是啟動新回合還是在一個回合期間到達。Claude 仍然可以使用自己的工具在接收機器上開啟提及的路徑,受該工作階段的權限限制。61來自另一個工作階段的訊息作為純文字到達。如果它使用 `@` 提及檔案或 [MCP 資源](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-resources),Claude 會看到如寫入的提及,Claude Code 不會附加任何內容,無論訊息是啟動新回合還是在一個回合期間到達。Claude 仍然可以使用自己的工具在接收機器上開啟提及的路徑,受該工作階段的權限限制。

62 62 

desktop.md +5 −5

Details

141 141 

142在 [SSH](#ssh-sessions) 或 [WSL](https://code.claude.com/docs/zh-TW/desktop-wsl.md) 工作階段中,點擊聊天中 HTML 檔案的路徑,即可在「瀏覽器」窗格中預覽該檔案。如果預覽中的圖表或表格一直是空的,預覽上方的通知會告訴您原因:142在 [SSH](#ssh-sessions) 或 [WSL](https://code.claude.com/docs/zh-TW/desktop-wsl.md) 工作階段中,點擊聊天中 HTML 檔案的路徑,即可在「瀏覽器」窗格中預覽該檔案。如果預覽中的圖表或表格一直是空的,預覽上方的通知會告訴您原因:

143 143 

144* **`This preview doesn't load anything from the web`**:檔案中撰寫的指令碼會執行,但從網路載入其程式庫的圖表會保持空白。如果通知中有**匯出**按鈕,請選擇它,並在您的瀏覽器中開啟儲存的檔案,在那裡來自網路的內容會載入。144* **`This preview doesn't load anything from the web`**:檔案中撰寫的指令碼會執行,但從網路載入其程式庫的圖表會保持空白。如果通知中有 **Export** 按鈕,請選擇它,並在您的瀏覽器中開啟儲存的檔案,在那裡來自網路的內容會載入。

145* **`This preview doesn't run scripts or load anything from the web`**:在 Claude Desktop v4.23118.0 之前,這些預覽不會執行指令碼,因此請更新 Desktop 並再次開啟該檔案。如果 Desktop 已是最新版本而通知仍然存在,請重新啟動 Desktop。如果通知依然存在,指令碼可能已[為您的組織關閉](#turn-off-scripts-in-ssh-and-wsl-previews-for-your-organization),請詢問您的管理員。145* **`This preview doesn't run scripts or load anything from the web`**:在 Claude Desktop v4.23118.0 之前,這些預覽不會執行指令碼,因此請更新 Desktop 並再次開啟該檔案。如果 Desktop 已是最新版本而通知仍然存在,請重新啟動 Desktop。如果通知依然存在,指令碼可能已[為您的組織關閉](#turn-off-scripts-in-ssh-and-wsl-previews-for-your-organization),請詢問您的管理員。

146 146 

147如果您關閉了通知,請再次開啟該檔案以重新顯示它。147如果您關閉了通知,請再次開啟該檔案以重新顯示它。


256 256 

257### 最小化窗格257### 最小化窗格

258 258 

259若要以小尺寸持續顯示 Terminal、Browser 或 [iOS Simulator](https://code.claude.com/docs/zh-TW/desktop-ios-simulator.md),請點擊窗格標題中的 **Minimize**。此按鈕需要 Claude Desktop v4.0.0 或更新版本,以及 Claude 帳戶而非[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)。Browser 窗格僅在本機工作階段中提供此按鈕。259若要以小尺寸持續顯示 Terminal、Browser、[iOS Simulator](https://code.claude.com/docs/zh-TW/desktop-ios-simulator.md) 或[側邊聊天](#ask-a-side-question-without-derailing-the-session),請點擊窗格標題中的 **Minimize**。此按鈕需要 Claude Desktop v4.0.0 或更新版本,以及 Claude 帳戶而非[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)。Browser 窗格僅在本機工作階段中提供此按鈕。

260 260 

261當[工作階段詳細資訊面板](#see-session-details)顯示在畫面上時,最小化的窗格會位於該面板中,否則會浮動在聊天的某個角落:261當[工作階段詳細資訊面板](#see-session-details)顯示在畫面上時,最小化的窗格會位於該面板中,否則會浮動在聊天的某個角落:

262 262 


1380* **工作流程**:Desktop 會在每個新的[工作流程](https://code.claude.com/docs/zh-TW/workflows.md)啟動前進行檢查,因此在 Desktop 中斷連線時,新的工作流程會等待最多 10 分鐘後失敗1380* **工作流程**:Desktop 會在每個新的[工作流程](https://code.claude.com/docs/zh-TW/workflows.md)啟動前進行檢查,因此在 Desktop 中斷連線時,新的工作流程會等待最多 10 分鐘後失敗

1381* **MCP 伺服器**:Claude Code 在遠端機器上啟動的 MCP 伺服器不會透過 Desktop 執行,因此 Claude 仍可呼叫它們的工具。只有在 Desktop 未使用其[內建 SSH 用戶端](#worktree-edits-while-disconnected)時,來自 `claude_desktop_config.json` 的伺服器才屬於此類。否則,以及在[某些 Windows 遠端機器](#windows-remote-machines)上,Claude 在 Desktop 中斷連線時無法呼叫它們的工具。1381* **MCP 伺服器**:Claude Code 在遠端機器上啟動的 MCP 伺服器不會透過 Desktop 執行,因此 Claude 仍可呼叫它們的工具。只有在 Desktop 未使用其[內建 SSH 用戶端](#worktree-edits-while-disconnected)時,來自 `claude_desktop_config.json` 的伺服器才屬於此類。否則,以及在[某些 Windows 遠端機器](#windows-remote-machines)上,Claude 在 Desktop 中斷連線時無法呼叫它們的工具。

1382 1382 

1383> [accordion] worktree 中的編輯何時會繼續運作1383> [accordion] worktree 中的編輯何時可以繼續運作

1384>1384>

1385> 在 Linux 或 macOS 遠端機器上,該檢查不會經過 Desktop,因此在 Desktop 中斷連線時,worktree 內的編輯會繼續運作。在 Claude Desktop v2.37337.0 之前,這僅適用於 Linux 遠端機器。1385> 在 Linux 或 macOS 遠端機器上,Desktop 中斷連線時,worktree 內的編輯可以繼續運作,因為每個編輯的檢查可以在沒有 Desktop 的情況下執行。在 [Claude Desktop v2.37337.0](#check-your-version) 之前,這只適用於 Linux 遠端機器。

1386>1386>

1387> 在某些情況下編輯仍會失敗,包括下列情況:1387> 在某些情況下編輯仍會失敗,包括下列情況:

1388>1388>


2050 2050 

2051* **此機器上的本機工作階段**:部署到磁碟的受管設定檔案會套用。當工作階段使用[符合條件的登入](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)向 Anthropic 的 API 進行身分驗證時,透過管理員主控台遠端推送的受管設定也會套用到這些工作階段,並遵循與終端機 CLI 相同的[設定優先順序](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)。2051* **此機器上的本機工作階段**:部署到磁碟的受管設定檔案會套用。當工作階段使用[符合條件的登入](https://code.claude.com/docs/zh-TW/server-managed-settings.md#platform-availability)向 Anthropic 的 API 進行身分驗證時,透過管理員主控台遠端推送的受管設定也會套用到這些工作階段,並遵循與終端機 CLI 相同的[設定優先順序](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)。

2052* **[雲端工作階段](#cloud-sessions)**:接收[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md);裝置部署的檔案不會套用到它們,因為它們在 Anthropic 管理的 VM 上執行。路由到[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)的工作階段也會讀取執行器映像中的受管設定檔案。[Claude Code 如何結合受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)說明該檔案何時適用。2052* **[雲端工作階段](#cloud-sessions)**:接收[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md);裝置部署的檔案不會套用到它們,因為它們在 Anthropic 管理的 VM 上執行。路由到[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)的工作階段也會讀取執行器映像中的受管設定檔案。[Claude Code 如何結合受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)說明該檔案何時適用。

2053* **[SSH 工作階段](#ssh-sessions)**:工作階段從遠端主機讀取受管設定檔案。Desktop 本身會在本機上讀取 `sshConfigs`、`sshHostAllowlist`、`disableSshSavedPasswords` 和 `disableDesktopLocalSessions`。如果您傳遞多個受管來源,它[預設只從其中一個讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)。2053* **[SSH 工作階段](#ssh-sessions)**:工作階段從遠端主機讀取受管設定檔案。Desktop 本身會在本機上讀取 `sshConfigs`、`sshHostAllowlist`、`disableSshSavedPasswords` 和 `disableDesktopLocalSessions`。如果您傳遞多個受管來源,它[預設只從其中一個讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)。如果您在本機上生效的受管設定中設定 `permissions.disableBypassPermissionsMode` 或 `disableAutoMode`,無論遠端主機如何設定,SSH 工作階段的模式選擇器都不會提供該模式。

2054* **[Cowork](https://claude.com/docs/cowork/overview) 工作階段**:在此機器上的 Cowork 工作階段中,即使使用者以 Team 或 Enterprise 帳戶登入,Claude Code 也永遠不會擷取管理員主控台設定,並且會讀取部署到機器的原則,除非您的 Claude Desktop 設定設有 `requireCoworkFullVmSandbox`。遠端 Cowork 工作階段兩者皆不會接收。請參閱[原則適用的位置和時間](https://code.claude.com/docs/zh-TW/managed-settings.md#where-and-when-a-policy-applies)以了解哪些裝置檔案會套用到 Cowork,以及 [MCP 權限規則](https://code.claude.com/docs/zh-TW/permissions.md#mcp)以了解 `Bash` 和 `WebFetch` 規則如何套用於 Cowork 的工具。2054* **[Cowork](https://claude.com/docs/cowork/overview) 工作階段**:在此機器上的 Cowork 工作階段中,即使使用者以 Team 或 Enterprise 帳戶登入,Claude Code 也永遠不會擷取管理員主控台設定,並且會讀取部署到機器的原則,除非您的 Claude Desktop 設定設有 `requireCoworkFullVmSandbox`。遠端 Cowork 工作階段兩者皆不會接收。請參閱[原則適用的位置和時間](https://code.claude.com/docs/zh-TW/managed-settings.md#where-and-when-a-policy-applies)以了解哪些裝置檔案會套用到 Cowork,以及 [MCP 權限規則](https://code.claude.com/docs/zh-TW/permissions.md#mcp)以了解 `Bash` 和 `WebFetch` 規則如何套用於 Cowork 的工具。

2055 2055 

2056在本機和 SSH 工作階段中,桌面應用程式會直接將每個使用者已連線的 claude.ai 連接器傳遞給 Claude Code。無論您使用哪個設定來源或檔案位置,任何 MCP 設定或 `managed-mcp.json` 都不會影響這些連接器。若要在這些工作階段中封鎖連接器的工具,請使用您組織的[連接器工具控制](https://code.claude.com/docs/zh-TW/mcp.md#organization-controls-on-connector-tools)。[連接器如何到達 Claude Code](https://code.claude.com/docs/zh-TW/mcp.md#how-connectors-reach-claude-code) 說明在每種工作階段中由哪些設定管理連接器。2056在本機和 SSH 工作階段中,桌面應用程式會直接將每個使用者已連線的 claude.ai 連接器傳遞給 Claude Code。無論您使用哪個設定來源或檔案位置,任何 MCP 設定或 `managed-mcp.json` 都不會影響這些連接器。若要在這些工作階段中封鎖連接器的工具,請使用您組織的[連接器工具控制](https://code.claude.com/docs/zh-TW/mcp.md#organization-controls-on-connector-tools)。[連接器如何到達 Claude Code](https://code.claude.com/docs/zh-TW/mcp.md#how-connectors-reach-claude-code) 說明在每種工作階段中由哪些設定管理連接器。

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> iOS Simulator 窗格在 macOS 上的 Claude Code Desktop 中處於公開測試版。它在 Pro、Max、Ultra、Team 和 Enterprise 方案上可用,但在啟用 HIPAA 設定的 Enterprise 組織中除外。11> iOS Simulator 窗格在 macOS 上的 Claude Code Desktop 中處於公開測試版。它在 Pro、Max、Ultra、Team 和 Enterprise 方案上可用,但在啟用 HIPAA 設定的 Enterprise 組織中除外。如果您使用[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md),則無法使用此功能。

12 12 

13iOS Simulator 窗格在 Claude Code Desktop 中的對話旁邊顯示您的應用程式在 Apple 的 iOS Simulator 中執行。當 Claude 在模擬器中建置、安裝、啟動或檢查您的應用程式時,窗格會自動開啟並即時串流裝置螢幕。使用它來觀看 Claude 執行和測試您的應用程式,或在 Claude 繼續工作時自己點選應用程式。13iOS Simulator 窗格在 Claude Code Desktop 中的對話旁邊顯示您的應用程式在 Apple 的 iOS Simulator 中執行。當 Claude 在模擬器中建置、安裝、啟動或檢查您的應用程式時,窗格會自動開啟並即時串流裝置螢幕。使用它來觀看 Claude 執行和測試您的應用程式,或在 Claude 繼續工作時自己點選應用程式。

14 14 


147* 明確說明目標,例如「在 iOS Simulator 中執行應用程式並點選註冊流程」。147* 明確說明目標,例如「在 iOS Simulator 中執行應用程式並點選註冊流程」。

148* 確認 Xcode 和 iOS 模擬器已安裝,且您的 Xcode 版本符合[需求](#requirements)。148* 確認 Xcode 和 iOS 模擬器已安裝,且您的 Xcode 版本符合[需求](#requirements)。

149* 如果您的組織管理 Claude Code,[模擬器工具可能被原則停用](#turn-off-simulator-access)。149* 如果您的組織管理 Claude Code,[模擬器工具可能被原則停用](#turn-off-simulator-access)。

150* 如果您在啟用 HIPAA 設定的 Enterprise 組織中,模擬器窗格對您不可用。150* 如果您在啟用 HIPAA 設定的 Enterprise 組織中,或您使用[第三方提供者](https://code.claude.com/docs/zh-TW/third-party-integrations.md),模擬器窗格對您不可用。

151* 模擬器窗格需要 Claude Desktop v1.24012.0 或更新版本。開啟 **Claude > Check for Updates…**,然後重新啟動應用程式。151* 模擬器窗格需要 Claude Desktop v1.24012.0 或更新版本。開啟 **Claude > Check for Updates…**,然後重新啟動應用程式。

152 152 

153### 模擬器窗格顯示找不到模擬器153### 模擬器窗格顯示找不到模擬器

env-vars.md +5 −5

Details

204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 設定為 `0` 可阻止 Claude Code 在發布新的 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#create-an-artifact) 時自動開啟瀏覽器 |204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 設定為 `0` 可阻止 Claude Code 在發布新的 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#create-an-artifact) 時自動開啟瀏覽器 |

205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 設定為 `0` 可阻止 Claude 讀取及回覆 [artifact 上的留言](https://code.claude.com/docs/zh-TW/artifacts.md#collect-comments-on-an-artifact)。當 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 已[關閉 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#availability) 時沒有作用。需要 Claude Code v2.1.221 或更新版本 |205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 設定為 `0` 可阻止 Claude 讀取及回覆 [artifact 上的留言](https://code.claude.com/docs/zh-TW/artifacts.md#collect-comments-on-an-artifact)。當 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 已[關閉 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#availability) 時沒有作用。需要 Claude Code v2.1.221 或更新版本 |

206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | 設定為 `0` 可阻止 Claude [自行回覆傳送給它的留言](https://code.claude.com/docs/zh-TW/artifacts.md#let-claude-reply-to-comments-on-its-own)。需要 Claude Code v2.1.228 或更新版本 |206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | 設定為 `0` 可阻止 Claude [自行回覆傳送給它的留言](https://code.claude.com/docs/zh-TW/artifacts.md#let-claude-reply-to-comments-on-its-own)。需要 Claude Code v2.1.228 或更新版本 |

207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | 設為 `0` 可阻止 Claude 在發布 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#update-an-artifact) 時一併對其檔案套用小幅變更。Claude 會改用其檔案編輯工具編輯該檔案,並以獨立步驟發布。需要 Claude Code v2.1.300 或更新版本 |207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | 設為 `0` 可讓 Claude 不要在發布 artifact 時[套用小幅變更](https://code.claude.com/docs/zh-TW/artifacts.md#turn-off-one-step-artifact-updates)至其檔案。Claude 接著會以其檔案編輯工具編輯該檔案,並以獨立步驟發布。需要 Claude Code v2.1.300 或更新版本 |

208| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 設定為 `0` 可從系統提示詞開頭省略[歸屬區塊](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#system-prompt-attribution-block),該區塊包含用戶端版本與提示詞指紋。無論如何,直接連線至 Anthropic API 時的快取都不受影響。在某些直接連線設定中,即使您設定了 `0`,Claude Code 仍會在[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器請求中保留此區塊。請在[系統提示詞歸屬區塊](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#system-prompt-attribution-block)中查看此情況涵蓋哪些連線與憑證。在 v2.1.181 之前,此區塊在自訂基礎 URL 與 Microsoft Foundry 連線上包含每個請求專屬的 token,因此在這些版本上,當您的 LLM 閘道依請求本文進行快取或將請求轉送至第三方提供者時,或當您直接連線至 Microsoft Foundry 時,請將其設定為 `0` |208| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 設定為 `0` 可從系統提示詞開頭省略[歸屬區塊](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#system-prompt-attribution-block),該區塊包含用戶端版本與提示詞指紋。無論如何,直接連線至 Anthropic API 時的快取都不受影響。在某些直接連線設定中,即使您設定了 `0`,Claude Code 仍會在[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器請求中保留此區塊。請在[系統提示詞歸屬區塊](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#system-prompt-attribution-block)中查看此情況涵蓋哪些連線與憑證。在 v2.1.181 之前,此區塊在自訂基礎 URL 與 Microsoft Foundry 連線上包含每個請求專屬的 token,因此在這些版本上,當您的 LLM 閘道依請求本文進行快取或將請求轉送至第三方提供者時,或當您直接連線至 Microsoft Foundry 時,請將其設定為 `0` |

209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | 已於 v2.1.283 移除。請改用 `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | 已於 v2.1.283 移除。請改用 `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |

210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 設定自動壓縮視窗,即上下文在壓縮前可填滿的程度,範圍為 `100000` 至 `1000000` 個 token。`200k` 等帶後綴的值需要 v2.1.304 或更新版本。關於它相對於其他設定視窗方式的優先順序,以及對狀態列 `used_percentage` 的影響,請參閱[設定自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window) |210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 設定自動壓縮視窗,即上下文在壓縮前可填滿的程度,範圍為 `100000` 至 `1000000` 個 token。`200k` 等帶後綴的值需要 v2.1.304 或更新版本。關於它相對於其他設定視窗方式的優先順序,以及對狀態列 `used_percentage` 的影響,請參閱[設定自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window) |


502| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 可在 `tool.output` OpenTelemetry span 事件中包含工具內容。Span 屬性會依[各自的開關](https://code.claude.com/docs/zh-TW/monitoring-usage.md#new-context-gates)攜帶工具內容。需要[追蹤](https://code.claude.com/docs/zh-TW/monitoring-usage.md#traces-beta)。預設為停用以保護敏感資料。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略,但該節所述的關閉值除外。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md#tool-output-span-event) |502| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 可在 `tool.output` OpenTelemetry span 事件中包含工具內容。Span 屬性會依[各自的開關](https://code.claude.com/docs/zh-TW/monitoring-usage.md#new-context-gates)攜帶工具內容。需要[追蹤](https://code.claude.com/docs/zh-TW/monitoring-usage.md#traces-beta)。預設為停用以保護敏感資料。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略,但該節所述的關閉值除外。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md#tool-output-span-event) |

503| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 可在 OpenTelemetry 指標、追蹤與日誌中包含工具輸入引數;MCP 伺服器名稱;使用者撰寫的工作流程名稱;工具失敗時的原始錯誤字串;`api_refusal` 事件上的拒絕 `category`;[成本與 token 指標](https://code.claude.com/docs/zh-TW/monitoring-usage.md#cost-counter)上真實的 agent、skill、外掛與 MCP 伺服器名稱;以及其他工具詳細資訊。預設為停用以保護 PII。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略,但該節所述的關閉值除外。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |503| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 可在 OpenTelemetry 指標、追蹤與日誌中包含工具輸入引數;MCP 伺服器名稱;使用者撰寫的工作流程名稱;工具失敗時的原始錯誤字串;`api_refusal` 事件上的拒絕 `category`;[成本與 token 指標](https://code.claude.com/docs/zh-TW/monitoring-usage.md#cost-counter)上真實的 agent、skill、外掛與 MCP 伺服器名稱;以及其他工具詳細資訊。預設為停用以保護 PII。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略,但該節所述的關閉值除外。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |

504| `OTEL_LOG_USER_PROMPTS` | 設定為 `1` 可在 OpenTelemetry 追蹤與日誌中包含使用者提示詞文字。預設為停用(提示詞會被遮蔽)。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略,但該節所述的關閉值除外。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |504| `OTEL_LOG_USER_PROMPTS` | 設定為 `1` 可在 OpenTelemetry 追蹤與日誌中包含使用者提示詞文字。預設為停用(提示詞會被遮蔽)。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](https://code.claude.com/docs/zh-TW/settings-reference.md#variables-claude-code-ignores-in-env)中會被忽略,但該節所述的關閉值除外。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |

505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 設定為 `false` 可從指標屬性中排除帳戶 UUID(預設:包含)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 設為 `false` 可從指標和事件屬性中排除帳戶 UUID(預設值:包含)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |

506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 設定為 `true` 可在指標屬性中包含工作階段進入點(預設:排除)。於 v2.1.152 新增。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 設為 `true` 可在指標和事件屬性中包含工作階段進入點(預設值:排除)。於 v2.1.152 新增。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |

507| `OTEL_METRICS_INCLUDE_REPOSITORY` | 設定為 `true` 可為 OpenTelemetry 指標與事件加上識別工作階段儲存庫的 `vcs.*` 屬性(預設:排除)。需要 Claude Code v2.1.269 或更新版本。請參閱[儲存庫屬性](https://code.claude.com/docs/zh-TW/monitoring-usage.md#repository-attributes) |507| `OTEL_METRICS_INCLUDE_REPOSITORY` | 設定為 `true` 可為 OpenTelemetry 指標與事件加上識別工作階段儲存庫的 `vcs.*` 屬性(預設:排除)。需要 Claude Code v2.1.269 或更新版本。請參閱[儲存庫屬性](https://code.claude.com/docs/zh-TW/monitoring-usage.md#repository-attributes) |

508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 自 v2.1.161 起,Claude Code 會將 `OTEL_RESOURCE_ATTRIBUTES` 的鍵附加至指標資料點標籤。設定為 `false` 可將其排除(預設:包含)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md#multi-team-organization-support) |508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 自 v2.1.161 起,Claude Code 會將 `OTEL_RESOURCE_ATTRIBUTES` 的鍵附加至指標資料點標籤。設定為 `false` 可將其排除(預設:包含)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md#multi-team-organization-support) |

509| `OTEL_METRICS_INCLUDE_SESSION_ID` | 設定為 `false` 可從指標屬性中排除工作階段 ID(預設:包含)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |509| `OTEL_METRICS_INCLUDE_SESSION_ID` | 設為 `false` 可從指標和事件屬性中排除工作階段 ID(預設值:包含)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |

510| `OTEL_METRICS_INCLUDE_VERSION` | 設定為 `true` 可在指標屬性中包含 Claude Code 版本(預設:排除)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |510| `OTEL_METRICS_INCLUDE_VERSION` | 設為 `true` 可在指標和事件屬性中包含 Claude Code 版本(預設值:排除)。請參閱[監控](https://code.claude.com/docs/zh-TW/monitoring-usage.md) |

511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆寫顯示給 [Skill 工具](https://code.claude.com/docs/zh-TW/skills.md#control-who-invokes-a-skill)之 skill 中繼資料的字元預算。此預算會動態調整為上下文視窗的 1%,備援值為 8,000 個字元。保留舊名稱以維持向下相容 |511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆寫顯示給 [Skill 工具](https://code.claude.com/docs/zh-TW/skills.md#control-who-invokes-a-skill)之 skill 中繼資料的字元預算。此預算會動態調整為上下文視窗的 1%,備援值為 8,000 個字元。保留舊名稱以維持向下相容 |

512| `TASK_MAX_OUTPUT_LENGTH` | 已在 v2.1.277 中與其所設定大小的 `TaskOutput` 工具一併移除,現在不再有任何作用。先前用於設定 `TaskOutput` 工具保留的[背景任務](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)輸出最大字元數。Claude 現在改以 `Read` 讀取背景任務的輸出檔案 |512| `TASK_MAX_OUTPUT_LENGTH` | 已在 v2.1.277 中與其所設定大小的 `TaskOutput` 工具一併移除,現在不再有任何作用。先前用於設定 `TaskOutput` 工具保留的[背景任務](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)輸出最大字元數。Claude 現在改以 `Read` 讀取背景任務的輸出檔案 |

513| `USE_BUILTIN_RIPGREP` | 設定為 `0` 可使用系統安裝的 `rg`,而非 Claude Code 內含的 `rg` |513| `USE_BUILTIN_RIPGREP` | 設定為 `0` 可使用系統安裝的 `rg`,而非 Claude Code 內含的 `rg` |

errors.md +137 −15

Details

104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [身分驗證](#login-expired) |104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [身分驗證](#login-expired) |

105| `Could not refresh your login because another Claude Code process is refreshing it` | [身分驗證](#could-not-refresh-your-login) |105| `Could not refresh your login because another Claude Code process is refreshing it` | [身分驗證](#could-not-refresh-your-login) |

106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [身分驗證](#could-not-refresh-your-login) |106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [身分驗證](#could-not-refresh-your-login) |

107| `Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [身分驗證](#could-not-refresh-your-login-disk-full) |

108| `Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [身分驗證](#could-not-refresh-your-login-disk-full) |

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

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

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


242| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [命令列錯誤](#the-current-directory-no-longer-exists) |244| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [命令列錯誤](#the-current-directory-no-longer-exists) |

243| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [命令列錯誤](#temp-directory-refused-or-cannot-be-created) |245| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [命令列錯誤](#temp-directory-refused-or-cannot-be-created) |

244| `ENOSPC: no space left on device, mkdir '<dir>'` | [命令列錯誤](#temp-directory-refused-or-cannot-be-created) |246| `ENOSPC: no space left on device, mkdir '<dir>'` | [命令列錯誤](#temp-directory-refused-or-cannot-be-created) |

247| `Error: Claude Code could not save ... because the disk is full (ENOSPC)` / `because your disk quota is used up (EDQUOT)` | [命令列錯誤](#could-not-save-because-the-disk-is-full) |

245| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [命令列錯誤](#directory-couldnt-be-resolved-to-a-real-location) |248| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [命令列錯誤](#directory-couldnt-be-resolved-to-a-real-location) |

246| 啟動 Remote Control 時出現的 `Error: Workspace not trusted` | [命令列錯誤](#workspace-not-trusted-when-starting-remote-control) |249| 啟動 Remote Control 時出現的 `Error: Workspace not trusted` | [命令列錯誤](#workspace-not-trusted-when-starting-remote-control) |

247| 執行 `claude ultrareview` 時出現的 `Error: Workspace not trusted` | [命令列錯誤](#workspace-not-trusted-when-running-claude-ultrareview) |250| 執行 `claude ultrareview` 時出現的 `Error: Workspace not trusted` | [命令列錯誤](#workspace-not-trusted-when-running-claude-ultrareview) |

248| `Ultrareview did not start` | [命令列錯誤](#ultrareview-did-not-start) |251| `Ultrareview did not start` | [命令列錯誤](#ultrareview-did-not-start) |

252| `Remote Control did not start: "<question>" got no answer` | [命令列錯誤](#remote-control-did-not-start-got-no-answer) |

249| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [命令列錯誤](#not-carried-over-to-the-sessions-remote-control-starts) |253| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [命令列錯誤](#not-carried-over-to-the-sessions-remote-control-starts) |

250| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [命令列錯誤](#sandbox-is-not-supported-by-claude-remote-control) |254| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [命令列錯誤](#sandbox-is-not-supported-by-claude-remote-control) |

251| `` `claude import` is not yet available in this build `` | [命令列錯誤](#claude-import-is-not-yet-available-in-this-build) |255| `` `claude import` is not yet available in this build `` | [命令列錯誤](#claude-import-is-not-yet-available-in-this-build) |


320| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [外掛疑難排解](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |324| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [外掛疑難排解](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |

321| `does not load (...), so Claude Code ignores the whole file` | [外掛疑難排解](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |325| `does not load (...), so Claude Code ignores the whole file` | [外掛疑難排解](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |

322| `path escapes plugin directory` | [外掛錯誤](#path-escapes-plugin-directory) |326| `path escapes plugin directory` | [外掛錯誤](#path-escapes-plugin-directory) |

327| `path not read: <path> is absolute or has a ".." part` | [外掛錯誤](#server-file-path-not-read) |

323| `Plugin not loaded: its manifest <path> was not read` | [外掛錯誤](#plugin-not-loaded-its-manifest-was-not-read) |328| `Plugin not loaded: its manifest <path> was not read` | [外掛錯誤](#plugin-not-loaded-its-manifest-was-not-read) |

324| `path could not be checked` | [外掛錯誤](#path-could-not-be-checked) |329| `path could not be checked` | [外掛錯誤](#path-could-not-be-checked) |

325| `its marketplace entry path does not stay inside the marketplace directory` | [外掛錯誤](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |330| `its marketplace entry path does not stay inside the marketplace directory` | [外掛錯誤](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


368| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [工具錯誤](#refusing-after-a-symlink-changed) |373| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [工具錯誤](#refusing-after-a-symlink-changed) |

369| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [工具錯誤](#refusing-after-a-symlink-changed) |374| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [工具錯誤](#refusing-after-a-symlink-changed) |

370| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [工具錯誤](#refusing-after-a-symlink-changed) |375| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [工具錯誤](#refusing-after-a-symlink-changed) |

376| `The search failed, so this is not a "no matches" result: matches may exist` | [工具錯誤](#the-search-failed) |

371| `task output swap refused (tasks dir moved or linked)` | [工具錯誤](#task-output-swap-refused) |377| `task output swap refused (tasks dir moved or linked)` | [工具錯誤](#task-output-swap-refused) |

372| `Command killed: its output file was replaced or could no longer be verified` | [工具錯誤](#task-output-swap-refused) |378| `Command killed: its output file was replaced or could no longer be verified` | [工具錯誤](#task-output-swap-refused) |

373| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |379| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |


377| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |383| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |

378| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [工具錯誤](#file-is-not-valid-utf-8) |384| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [工具錯誤](#file-is-not-valid-utf-8) |

379| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [工具錯誤](#git-is-not-installed-on-this-mac) |385| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [工具錯誤](#git-is-not-installed-on-this-mac) |

386| `Refusing to apply edits to <path>: a hook is configured for file edits in this session` | [工具錯誤](#a-hook-is-configured-for-file-edits) |

380| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |387| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |

381| `the source file has the replacement character U+FFFD` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |388| `the source file has the replacement character U+FFFD` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |

382| `Not published: that file is on a network share` | [工具錯誤](#not-published-that-file-is-on-a-network-share) |389| `Not published: that file is on a network share` | [工具錯誤](#not-published-that-file-is-on-a-network-share) |


387| `The safety check for domain ... is rate-limited` | [工具錯誤](#webfetch-domain-safety-check-failed) |394| `The safety check for domain ... is rate-limited` | [工具錯誤](#webfetch-domain-safety-check-failed) |

388| `The safety check for domain ... is temporarily rate-limited` | [工具錯誤](#webfetch-domain-safety-check-failed) |395| `The safety check for domain ... is temporarily rate-limited` | [工具錯誤](#webfetch-domain-safety-check-failed) |

389| `Unable to verify if domain ... is safe to fetch` | [工具錯誤](#webfetch-domain-safety-check-failed) |396| `Unable to verify if domain ... is safe to fetch` | [工具錯誤](#webfetch-domain-safety-check-failed) |

397| `MCP tool "<tool>" on server "<server>" gave no answer that could be read` / `answered without its text` | [如何讀取 MCP 工具 hook 的結果](https://code.claude.com/docs/zh-TW/hooks.md#how-the-tools-result-is-read) |

390| `Can't open MCP settings while no terminal is attached to this background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |398| `Can't open MCP settings while no terminal is attached to this background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |

391| `Can't open MCP settings in a background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |399| `Can't open MCP settings in a background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |

392| `blocked because the path is spelled in a form that cannot be safely resolved` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |400| `blocked because the path is spelled in a form that cannot be safely resolved` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


397| `Can't open — this session is running in another terminal` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |405| `Can't open — this session is running in another terminal` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |

398| `This conversation is already open in another running Claude session` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |406| `This conversation is already open in another running Claude session` | [背景工作階段錯誤](#this-session-is-running-in-another-terminal) |

399| `This session's saved conversation is no longer on disk` | [背景工作階段錯誤](#this-sessions-saved-conversation-is-no-longer-on-disk) |407| `This session's saved conversation is no longer on disk` | [背景工作階段錯誤](#this-sessions-saved-conversation-is-no-longer-on-disk) |

408| `This forked session could not be started. Fork the conversation again to retry.` | [背景工作階段錯誤](#this-forked-session-could-not-be-started) |

400| `Bypass permissions was requested at launch and ignored` | [在背景工作階段中 Bypass permissions 遭到忽略](https://code.claude.com/docs/zh-TW/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |409| `Bypass permissions was requested at launch and ignored` | [在背景工作階段中 Bypass permissions 遭到忽略](https://code.claude.com/docs/zh-TW/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |

401| `kept <id> — its worktree is still at <path>` | 若訊息的下一行提及未推送的提交,請參閱[背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere),否則請參閱[刪除工作階段會移除哪些內容](https://code.claude.com/docs/zh-TW/agent-view.md#what-deleting-a-session-removes) |410| `kept <id> — its worktree is still at <path>` | 若訊息的下一行提及未推送的提交,請參閱[背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere),否則請參閱[刪除工作階段會移除哪些內容](https://code.claude.com/docs/zh-TW/agent-view.md#what-deleting-a-session-removes) |

402| `kept <id> — <n> unpushed commits on <branch>` | [背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere) |411| `kept <id> — <n> unpushed commits on <branch>` | [背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere) |


548| [`CLAUDE_CODE_MAX_RETRIES`](https://code.claude.com/docs/zh-TW/env-vars) | 10 | 重試嘗試次數。從 v2.1.186 開始上限為 15;從 v2.1.199 開始 `CLAUDE_CODE_RETRY_WATCHDOG` 會提高預設值並移除上限。降低它以在指令碼中更快地顯示故障。 |557| [`CLAUDE_CODE_MAX_RETRIES`](https://code.claude.com/docs/zh-TW/env-vars) | 10 | 重試嘗試次數。從 v2.1.186 開始上限為 15;從 v2.1.199 開始 `CLAUDE_CODE_RETRY_WATCHDOG` 會提高預設值並移除上限。降低它以在指令碼中更快地顯示故障。 |

549| [`CLAUDE_CODE_RETRY_WATCHDOG`](https://code.claude.com/docs/zh-TW/env-vars) | 未設定 | 在無人值守的工作階段(例如 CI 工作)中設定為 `1`,以無限期重試 `429` 和 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度的請求收到報告支出限制或用量點數耗盡的 `429` 時,Claude Code 會立即失敗,即使該 `429` 來自按排程重設的 [gateway spend cap](#spend-limit-reached)。在 v2.1.239 之前,看門狗會無限期重試這些錯誤。如需快速模式請求,請參閱 [Handle rate limits](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)。在 v2.1.199 或更新版本上,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時和連線中斷)的預設重試次數提高至 300,大約三小時的退避,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其上限 15。 |558| [`CLAUDE_CODE_RETRY_WATCHDOG`](https://code.claude.com/docs/zh-TW/env-vars) | 未設定 | 在無人值守的工作階段(例如 CI 工作)中設定為 `1`,以無限期重試 `429` 和 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度的請求收到報告支出限制或用量點數耗盡的 `429` 時,Claude Code 會立即失敗,即使該 `429` 來自按排程重設的 [gateway spend cap](#spend-limit-reached)。在 v2.1.239 之前,看門狗會無限期重試這些錯誤。如需快速模式請求,請參閱 [Handle rate limits](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)。在 v2.1.199 或更新版本上,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時和連線中斷)的預設重試次數提高至 300,大約三小時的退避,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其上限 15。 |

550| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 未設定 | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,每個 API 請求等待 `429` 和 `529` 錯誤所花費的最長時間(毫秒)。未設定時,等待時間沒有限制。需要 Claude Code v2.1.295 或更新版本。 |559| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 未設定 | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,每個 API 請求等待 `429` 和 `529` 錯誤所花費的最長時間(毫秒)。未設定時,等待時間沒有限制。需要 Claude Code v2.1.295 或更新版本。 |

560| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | 無上限 | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,單一請求等待您方案的[用量上限](#youve-hit-your-session-limit)(例如工作階段或每週上限)重設的最長時間(毫秒)。當重設時間比此等待上限更遠時,請求會立即失敗,除非用量點數仍有餘額或 API 無法檢查用量點數。在這些情況下,請求會被重試,如果在成功之前超過此等待上限則會失敗。需要 Claude Code v2.1.301 或更新版本。 |

551| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 未設定 | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,在請求等待[用量上限](#youve-hit-your-session-limit)重設期間,檢查該上限是否已解除的最短間隔(毫秒)。當檢查發現上限已解除時,請求會立即送出。請提供 `60000` 到 `10800000` 之間的純數字。未設定或超出該範圍時,不會進行任何檢查。關於 Claude Code 何時略過這些檢查,請參閱[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md)。需要 Claude Code v2.1.305 或更新版本。 |561| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 未設定 | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,在請求等待[用量上限](#youve-hit-your-session-limit)重設期間,檢查該上限是否已解除的最短間隔(毫秒)。當檢查發現上限已解除時,請求會立即送出。請提供 `60000` 到 `10800000` 之間的純數字。未設定或超出該範圍時,不會進行任何檢查。關於 Claude Code 何時略過這些檢查,請參閱[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md)。需要 Claude Code v2.1.305 或更新版本。 |

552| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 500 | API 以 `529` 過載錯誤拒絕的請求,其重試之間退避的起始延遲(毫秒)。當 API 容量已滿時,可提高此值(最高 32000),以將重試分散在較長的時間範圍內。當 `CLAUDE_CODE_RETRY_WATCHDOG` 設定為 `1`,或被拒絕的請求是以[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)發送時,此設定無效。需要 Claude Code v2.1.292 或更新版本。 |562| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 500 | API 以 `529` 過載錯誤拒絕的請求,其重試之間退避的起始延遲(毫秒)。當 API 容量已滿時,可提高此值(最高 32000),以將重試分散在較長的時間範圍內。當 `CLAUDE_CODE_RETRY_WATCHDOG` 設定為 `1`,或被拒絕的請求是以[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)發送時,此設定無效。需要 Claude Code v2.1.292 或更新版本。 |

553| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 32000 | API 以 `529` 過載錯誤拒絕的請求,其重試之間退避的上限(毫秒)。當 API 容量已滿時,可提高此值(最高 64000),讓後續的重試間隔持續拉長。當 `CLAUDE_CODE_RETRY_WATCHDOG` 設定為 `1`,或被拒絕的請求是以[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)發送時,此設定無效。需要 Claude Code v2.1.296 或更新版本。 |563| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/zh-TW/env-vars) | 32000 | API 以 `529` 過載錯誤拒絕的請求,其重試之間退避的上限(毫秒)。當 API 容量已滿時,可提高此值(最高 64000),讓後續的重試間隔持續拉長。當 `CLAUDE_CODE_RETRY_WATCHDOG` 設定為 `1`,或被拒絕的請求是以[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)發送時,此設定無效。需要 Claude Code v2.1.296 或更新版本。 |


1436 1446 

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

1438 1448 

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

1440 

1441您可以在請求失敗之前檢查此狀態:[`/status`](https://code.claude.com/docs/zh-TW/commands) 會顯示一列內容為 `Expired — log in again` 的 `Login`,以及它為過期登入所儲存的組織與電子郵件。只有當已儲存的登入是您使用中的憑證且已無法重新整理時,才會出現該列。以其他方式進行身分驗證的工作階段不會顯示該列,即使仍有已過期的登入被儲存。在 v2.1.210 之前,`/status` 在此狀態下不會顯示任何曾經存在登入的跡象,因為被清除的憑證讓它沒有可回報的內容。1449您可以在請求失敗之前檢查此狀態:[`/status`](https://code.claude.com/docs/zh-TW/commands) 會顯示一列內容為 `Expired — log in again` 的 `Login`,以及它為過期登入所儲存的組織與電子郵件。只有當已儲存的登入是您使用中的憑證且已無法重新整理時,才會出現該列。以其他方式進行身分驗證的工作階段不會顯示該列,即使仍有已過期的登入被儲存。在 v2.1.210 之前,`/status` 在此狀態下不會顯示任何曾經存在登入的跡象,因為被清除的憑證讓它沒有可回報的內容。

1442 1450 

1443**處理方式:**1451**處理方式:**


1461Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1469Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1462```1470```

1463 1471 

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

1465 

1466**處理方式:**1472**處理方式:**

1467 1473 

1468* 一分鐘後再試一次。如果另一個程序先完成了重新整理,此工作階段就會使用更新後的登入。1474* 一分鐘後再試一次。如果另一個程序先完成了重新整理,此工作階段就會使用更新後的登入。

1469* 如果訊息持續出現,請關閉其他 Claude Code 視窗與程序,然後重試。1475* 如果訊息持續出現,請關閉其他 Claude Code 視窗與程序,然後重試。

1470* 如果在沒有其他 Claude Code 程序執行的情況下仍出現此訊息,請執行 `/login`。重新登入不需要等待重新整理鎖。1476* 如果在沒有其他 Claude Code 程序執行的情況下仍出現此訊息,請執行 `/login`。重新登入不需要等待重新整理鎖。

1471 1477 

1478### Could not refresh your login: the disk that holds the Claude Code config directory is full

1479 

1480請釋放存放 Claude Code 設定目錄之磁碟上的空間,然後再次傳送您的訊息。在磁碟已滿的情況下重新登入並沒有幫助,因為新的登入無法被儲存。除非您設定了 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars),否則設定目錄為您家目錄中的 `~/.claude`。

1481 

1482```text wrap theme={null}

1483Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full · Delete files you no longer need on that disk, then try again · Signing in again won't help

1484```

1485 

1486在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)(`-p`)和 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 中,訊息如下:

1487 

1488```text wrap theme={null}

1489Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full. Delete files you no longer need on that disk and retry; signing in again won't help

1490```

1491 

1492**處理方式:**

1493 

1494* 若是指令碼,請重新執行其 `claude -p` 命令

1495* 如果磁碟已顯示有可用空間,那麼磁碟配額或 inode 用盡也會產生相同的訊息。請刪除您自己在該磁碟上的檔案。如果訊息再次出現,請刪除許多小檔案而非少數大檔案,因為每個檔案無論大小都會佔用一個 inode。

1496 

1472### 無法儲存您的登入1497### 無法儲存您的登入

1473 1498 

1474您已使用 claude.ai 登入,但 Claude Code 無法將登入儲存至其憑證儲存區,因此登入未完成。在 macOS 上,如果 Claude Code 在同一個工作階段中已經讀取或儲存過登入鑰匙圈中的憑證,之後鑰匙圈被鎖定(例如在睡眠或閒置時),就可能發生這種情況。1499您已使用 claude.ai 登入,但 Claude Code 無法將登入儲存至其憑證儲存區,因此登入未完成。在 macOS 上,如果 Claude Code 在同一個工作階段中已經讀取或儲存過登入鑰匙圈中的憑證,之後鑰匙圈被鎖定(例如在睡眠或閒置時),就可能發生這種情況。


2442 2467 

2443### 上下文超過 token 限制2468### 上下文超過 token 限制

2444 2469 

2445`/context` 顯示此警告在其輸出頂部,當對話超過模型的上下文視窗時。在您釋放空間之前,請求會因 [`Prompt is too long`](#prompt-is-too-long) 而失敗。互動式工作階段將該錯誤顯示為 `Context limit reached` 行。2470當對話已超出模型的上下文視窗時,`/context` 會在輸出頂端顯示此警告:

2446 2471 

2447```text theme={null}2472```text theme={null}

2448Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2473Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2449```2474```

2450 2475 

2476出現 `Context exceeds` 警告後,只要[自動壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#autocompactenabled)處於開啟狀態(預設值),您就不需要執行任何一個命令:

2477 

2478* **自動壓縮開啟**:送出您的下一則訊息。若仍以 [`Prompt is too long`](#prompt-is-too-long) 失敗,請參閱該項目。

2479* **自動壓縮關閉**:在工作階段中,若警告提到 `/compact` 則執行它,或執行 `/clear` 重新開始。在您執行其中之一之前,訊息會以 `Context limit reached` 失敗,在 `-p` 輸出中則為 `Prompt is too long`。

2480 

2451當您超過的限制是壓縮視窗(例如 1M 上下文模型上的 200K 邊界)時,警告的讀取方式不同。壓縮視窗可以位於模型的上下文視窗下方,因此超過它的請求仍然可以成功。2481當您超過的限制是壓縮視窗(例如 1M 上下文模型上的 200K 邊界)時,警告的讀取方式不同。壓縮視窗可以位於模型的上下文視窗下方,因此超過它的請求仍然可以成功。

2452 2482 

2453```text theme={null}2483```text theme={null}


2458 2488 

2459**該怎麼辦:**2489**該怎麼辦:**

2460 2490 

2461* 在多回合對話中,執行 `/compact` 以總結較早的回合並釋放空間。若要改為重新開始,請執行 `/clear`2491* **出現壓縮視窗警告後**:在多回合對話中,執行 `/compact` 摘要較早的回合以釋放空間。若要改為重新開始,請執行 `/clear`。

2462* 有關減少使用的更多方式,請參閱 [Prompt is too long](#prompt-is-too-long)2492* 有關減少使用的更多方式,請參閱 [Prompt is too long](#prompt-is-too-long)

2463 2493 

2464在 v2.1.216 之前,`/context` 顯示超過 100% 的使用情況,沒有警告行解釋這意味著什麼或如何恢復。2494在 v2.1.216 之前,`/context` 顯示超過 100% 的使用情況,沒有警告行解釋這意味著什麼或如何恢復。


3302 3332 

3303### Configuration error in \~/.claude.json3333### Configuration error in \~/.claude.json

3304 3334 

3305Claude Code 無法解析 `~/.claude.json`,這是存放您帳戶詳細資料、MCP 伺服器與各專案狀態的檔案。您的檔案並未變更。`claude -p` 等[非互動](https://code.claude.com/docs/zh-TW/headless.md)啟動每次都會以退出碼 1 結束,直到您修復該檔案為止。3335Claude Code 無法解析 `~/.claude.json`,也就是保存您的帳戶資訊、MCP 伺服器與各專案狀態的檔案。[非互動式](https://code.claude.com/docs/zh-TW/headless.md)啟動(例如 `claude -p`)會以退出碼 1 結束。

3306 3336 

3307當 Claude Code 找到[備份](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)時,輸出會指名該備份,並輸出一行將其複製回來的 `cp` 命令:3337當 Claude Code 找到[備份](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)時,輸出會指名該備份,並輸出一行將其複製回來的 `cp` 命令:

3308 3338 


3317 3347 

3318**處理方式:**3348**處理方式:**

3319 3349 

3320* **輸出中有 `cp` 行**:在終端機中執行該行。在 Windows 上,請在 PowerShell 中執行。它會以備份(`~/.claude.json` 的較早版本)取代損壞的檔案。3350* **輸出中有 `cp` 行**:在終端機中執行該行。在 Windows 上,請在 PowerShell 中執行。

3321* **輸出中沒有 `cp` 行,或執行後錯誤再次出現**:修正 `~/.claude.json` 中的 JSON;如果 [`~/.claude/backups/`](https://code.claude.com/docs/zh-TW/claude-directory#cleaned-up-automatically) 中有其他 `.claude.json.backup.<timestamp>` 檔案,可將其複製覆蓋該檔案;或將該檔案重新命名。當 `~/.claude.json` 不存在時,Claude Code 會以預設設定啟動,且不含該檔案原本保存的任何內容。3351* **輸出中沒有 `cp` 行,或執行後錯誤再次出現**:若 `~/.claude.json` 仍保有您的設定,請修正其 JSON。若無法修正,若 [`~/.claude/backups/`](https://code.claude.com/docs/zh-TW/claude-directory#cleaned-up-automatically) 中有其他 `.claude.json.backup.<timestamp>` 檔案,請將其複製過去覆寫該檔案,或將該檔案重新命名。若 `~/.claude.json` 不存在,Claude Code 會以預設設定啟動,且不會保有該檔案原本的任何內容。

3322 3352* **`~/.claude.json` 已不再保有您的設定**:在 [`~/.claude/backups/`](https://code.claude.com/docs/zh-TW/claude-directory#cleaned-up-automatically) 或您的家目錄中找出仍保有設定的 `.claude.json.corrupted.<timestamp>` 檔案。修正其 JSON,然後將其複製過去覆寫 `~/.claude.json`。若找不到或無法修正,請以保有您設定的 `.claude.json.backup.<timestamp>` 檔案嘗試相同步驟。若都沒有,請將 `~/.claude.json` 重新命名,並以 [`claude mcp add`](https://code.claude.com/docs/zh-TW/mcp#installing-mcp-servers) 重新加入您的 MCP 伺服器。

3323在 v2.1.318 之前,非互動啟動輸出此錯誤後,`~/.claude.json` 中只會留下預設值,因此下次啟動時不會套用您的設定。

3324 3353 

3325### Claude configuration file was empty and no backup holds anything3354### Claude configuration file was empty and no backup holds anything

3326 3355 


3381 3410 

3382在 v2.1.309 之前,當磁碟區已滿或您的配額已用完時,Claude Code 只會印出作業系統的錯誤文字。例如 `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`,處理步驟相同。3411在 v2.1.309 之前,當磁碟區已滿或您的配額已用完時,Claude Code 只會印出作業系統的錯誤文字。例如 `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`,處理步驟相同。

3383 3412 

3413### Claude Code 因磁碟已滿而無法儲存

3414 

3415在 [`claude -p`](https://code.claude.com/docs/zh-TW/headless) 執行後,stderr 上出現這一行表示磁碟已滿或您的磁碟配額已用盡,因此 Claude Code 無法儲存該次執行的所有內容:

3416 

3417```text wrap theme={null}

3418Error: Claude Code could not save all of this session's transcript under /Users/you/.claude because the disk is full (ENOSPC). If you resume this session, part of the conversation may be missing. Free up space on that disk before the next run.

3419```

3420 

3421使用文字或 `json` 輸出時,該次執行會以退出碼 1 結束,而答案已經印出。使用 `stream-json` 輸出時,該次執行會維持其一般的退出碼,答案仍會送達。

3422 

3423**處理方式:**

3424 

3425* **`the disk is full (ENOSPC)`**:在下次執行前,釋放包含訊息中路徑之磁碟上的空間

3426* **`your disk quota is used up (EDQUOT)`**:在下次執行前,釋放空間或要求更大的配額

3427 

3384### 目錄無法解析為實際位置3428### 目錄無法解析為實際位置

3385 3429 

3386您對工作目錄的子目錄執行了 `/add-dir`,而 Claude Code 無法將該目錄解析為其實際位置。3430您對工作目錄的子目錄執行了 `/add-dir`,而 Claude Code 無法將該目錄解析為其實際位置。


3448* **`Error: Workspace not trusted. <folder> is your home directory`**:由於對家目錄的信任永遠不會被儲存,先在那裡執行 `claude` 並沒有幫助。請改從專案目錄執行 `claude ultrareview`(事先在那裡執行一次 `claude` 以接受信任對話框),或附加 `--trust-workspace`。3492* **`Error: Workspace not trusted. <folder> is your home directory`**:由於對家目錄的信任永遠不會被儲存,先在那裡執行 `claude` 並沒有幫助。請改從專案目錄執行 `claude ultrareview`(事先在那裡執行一次 `claude` 以接受信任對話框),或附加 `--trust-workspace`。

3449* **`No answer in time.` 後接 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 問題在 5 分鐘內未獲回答。請再次執行 `claude ultrareview` 並回答它。3493* **`No answer in time.` 後接 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 問題在 5 分鐘內未獲回答。請再次執行 `claude ultrareview` 並回答它。

3450* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 問題中拒絕了,例如回答 `n` 或按下 Enter。若要啟動審查,請再次執行 `claude ultrareview` 並回答 `y`。3494* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 問題中拒絕了,例如回答 `n` 或按下 Enter。若要啟動審查,請再次執行 `claude ultrareview` 並回答 `y`。

3451* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 之後跟著非旗標的內容,例如 PR 編號或 `false`。如果您不信任該資料夾,請省略此旗標。若要在此次執行中信任它,請將 PR 編號或基礎分支放在旗標之前:`claude ultrareview 1234 --trust-workspace`。3495* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 後面接了旗標以外的內容,例如 PR 編號或 `false`。若您不信任該資料夾,請省略此旗標。若要在此次執行中信任它,請將 PR 編號或基礎分支放在旗標之前:`claude ultrareview 1234 --trust-workspace`。

3452 3496 

3453在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。3497在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。

3454 3498 

3499### Remote Control 因問題未獲回答而未啟動

3500 

3501此訊息表示 [`claude remote-control`](https://code.claude.com/docs/zh-TW/remote-control) 詢問了訊息中引述的首次執行問題,但沒有得到回答:

3502 

3503```text theme={null}

3504Remote Control did not start: "Enable Remote Control?" got no answer. Run `claude remote-control` at a terminal and answer y once; it won't ask again.

3505Remote Control did not start: "Choose [1/2] (default: 1):" got no answer. You can run `claude remote-control` and choose, or pass --spawn=same-dir or --spawn=worktree.

3506```

3507 

3508**處理方式:**

3509 

3510* **`Enable Remote Control?`**:在腳本或服務中,標準輸入會在任何人能回答之前結束。請以您的腳本或服務執行時所用的使用者身分,在終端機中執行一次 `claude remote-control` 並回答 `y`。

3511* **`Choose [1/2] (default: 1):`**:再次執行 `claude remote-control` 並[選擇產生模式](https://code.claude.com/docs/zh-TW/remote-control.md#set-the-default-spawn-mode-for-a-project),或傳入 [`--spawn=same-dir` 或 `--spawn=worktree`](https://code.claude.com/docs/zh-TW/remote-control#start-a-remote-control-session) 以跳過此問題

3512 

3455### 不會傳遞到 Remote Control 所啟動的工作階段3513### 不會傳遞到 Remote Control 所啟動的工作階段

3456 3514 

3457您在 `remote-control` 動詞之前加上了全域 `claude` 旗標來啟動 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md),而該旗標會限制或設定 Remote Control 所啟動的工作階段,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在動詞之前的旗標永遠不會傳到這些工作階段。Claude Code 會改為拒絕啟動,並指出該旗標:3515您在 `remote-control` 動詞之前加上了全域 `claude` 旗標來啟動 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md),而該旗標會限制或設定 Remote Control 所啟動的工作階段,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在動詞之前的旗標永遠不會傳到這些工作階段。Claude Code 會改為拒絕啟動,並指出該旗標:


3741 3799 

3742以下同類字串會在命令執行之前就觸發:3800以下同類字串會在命令執行之前就觸發:

3743 3801 

3744* `Shell command permission check failed for pattern "..."`:命令的權限檢查不允許該命令。[注入命令的權限檢查](https://code.claude.com/docs/zh-TW/skills.md#permission-checks-on-injected-commands)說明了各權限模式下哪些結果會中止,以及如何使用 `allowed-tools` 預先核准命令3802* `Shell command permission check failed for pattern "..."`:該命令的權限檢查不允許它。[注入命令的權限檢查](https://code.claude.com/docs/zh-TW/skills.md#permission-checks-on-injected-commands)說明了在各權限模式下哪些結果會中止,以及如何以 `allowed-tools` 預先核准命令

3745* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:skill 的 frontmatter 要求使用 bash,但電腦上沒有 bash。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入命令的執行方式](https://code.claude.com/docs/zh-TW/skills.md#how-injected-commands-run)3803* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:該 skill 的 frontmatter 要求在沒有 bash 的電腦上使用 bash。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入命令的執行方式](https://code.claude.com/docs/zh-TW/skills.md#how-injected-commands-run)

3746 3804 

3747**處理方式:**3805**處理方式:**

3748 3806 


3895 3953 

3896* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支進行比較,並建議您明確傳入基底分支,如上例所示3954* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支進行比較,並建議您明確傳入基底分支,如上例所示

3897* **您傳入的基底分支已存在於您的複製中**:提示內容為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3955* **您傳入的基底分支已存在於您的複製中**:提示內容為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3898* **您傳入的基礎分支不在您的 clone 中**:Claude Code 在比較前先從 origin 擷取了該分支。提示內容為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的 clone 是否為淺層 clone 時,它會改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,提示會對每個擷取的基礎分支都建議 `git fetch --unshallow origin`,而在完整的 clone 上,該命令會以 `fatal: --unshallow on a complete repository does not make sense` 失敗。3956* **您傳入的基礎分支不在您的複製中**:Claude Code 在比較前會先從 origin 擷取該分支。提示內容為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的複製是否為淺層複製時,會改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,提示會針對每個擷取的基礎分支建議 `git fetch --unshallow origin`,而在完整的複製上,該命令會以 `fatal: --unshallow on a complete repository does not make sense` 失敗。

3899 3957 

3900**處理方式:**3958**處理方式:**

3901 3959 


4457* 如果訊息以 `EACCES` 結尾,請恢復您在通往該路徑所指檔案或資料夾的每個目錄上的執行權限。檢查該路徑上方的目錄,然後追蹤您遇到的每個符號連結,並檢查通往其指向位置的目錄。對於任何其他錯誤代碼,請在 [無法檢查之路徑的原因與步驟](#path-could-not-be-checked) 中查詢。4515* 如果訊息以 `EACCES` 結尾,請恢復您在通往該路徑所指檔案或資料夾的每個目錄上的執行權限。檢查該路徑上方的目錄,然後追蹤您遇到的每個符號連結,並檢查通往其指向位置的目錄。對於任何其他錯誤代碼,請在 [無法檢查之路徑的原因與步驟](#path-could-not-be-checked) 中查詢。

4458* 若要與同一 marketplace 中的其他 plugin 共享檔案,請使用 plugin 目錄內的符號連結連結它們,遵循 [符號連結規則](https://code.claude.com/docs/zh-TW/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)4516* 若要與同一 marketplace 中的其他 plugin 共享檔案,請使用 plugin 目錄內的符號連結連結它們,遵循 [符號連結規則](https://code.claude.com/docs/zh-TW/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4459 4517 

4518### 未讀取伺服器檔案路徑

4519 

4520`path not read` 訊息表示 Claude Code 因為檔案的路徑,而未讀取 plugin 所指定的 MCP 或 LSP 伺服器檔案。plugin 的其餘部分會載入,但不包含該檔案所定義的伺服器。

4521 

4522即使路徑保持在 plugin 內,`..` 部分仍會被計入,如以下範例:

4523 

4524```text theme={null}

4525mcp-servers path not read: ./sub/../x.json is absolute or has a ".." part

4526```

4527 

4528**該怎麼做:**

4529 

4530* 如果您安裝了該 plugin 但並未維護它,請將訊息回報給其作者

4531* 如果您維護該 plugin,請將伺服器檔案保留在 plugin 目錄內。在 manifest 或 marketplace 項目中,以 `./` 開頭且不含 `..` 的路徑指定它,例如 `./servers/x.json`

4532* 若要在同一 marketplace 中的 plugin 之間共享一個伺服器檔案,請使用符號連結將該檔案連結到每個 plugin 中,遵循 [符號連結規則](https://code.claude.com/docs/zh-TW/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4533 

4460### Plugin 未載入:未讀取其 manifest4534### Plugin 未載入:未讀取其 manifest

4461 4535 

4462Claude Code 無法確認 marketplace plugin 位於 `.claude-plugin/plugin.json` 的 [manifest](https://code.claude.com/docs/zh-TW/plugins/manifest-reference.md) 在 plugin 內,因此不會從該 plugin 載入任何內容。對於 [本機 marketplace](https://code.claude.com/docs/zh-TW/plugins/loading.md#in-place-and-copied-plugins) 中的 plugin,Claude Code 也無法確認該 manifest 位於該 marketplace 內。此訊息會出現在 `/plugin` **Errors** 標籤中,而訊息結尾的原因說明了 Claude Code 發現的情況。4536Claude Code 無法確認 marketplace plugin 位於 `.claude-plugin/plugin.json` 的 [manifest](https://code.claude.com/docs/zh-TW/plugins/manifest-reference.md) 在 plugin 內,因此不會從該 plugin 載入任何內容。對於 [本機 marketplace](https://code.claude.com/docs/zh-TW/plugins/loading.md#in-place-and-copied-plugins) 中的 plugin,Claude Code 也無法確認該 manifest 位於該 marketplace 內。此訊息會出現在 `/plugin` **Errors** 標籤中,而訊息結尾的原因說明了 Claude Code 發現的情況。


5065 5139 

5066在 v2.1.280 之前,`where it leads on disk could not be determined` 拒絕不會出現。5140在 v2.1.280 之前,`where it leads on disk could not be determined` 拒絕不會出現。

5067 5141 

5142### The search failed, so this is not a "no matches" result

5143 

5144Claude 執行的 [Grep](https://code.claude.com/docs/zh-TW/tools-reference.md#grep-tool-behavior) 或 [Glob](https://code.claude.com/docs/zh-TW/tools-reference.md#glob-tool-behavior) 搜尋在傳回任何結果之前就失敗了,因此無法得知是否存在相符項目。Claude 收到用以取代結果的訊息開頭如下:

5145 

5146```text wrap theme={null}

5147The search failed, so this is not a "no matches" result: matches may exist. What happened to the search program (ripgrep) is not known, and no results were read. Run the search once more. If it fails again, tell the user that searches are failing.

5148```

5149 

5150**處理方式:**

5151 

5152* **第一次出現時**:無需任何動作。訊息會要求 Claude 先再次搜尋。

5153* **如果 Claude 表示搜尋持續失敗**:擷取 ripgrep 的錯誤以用於錯誤回報:

5154 1. 從您的 shell 啟動一個工作階段,使用與搜尋失敗之工作階段相同的旗標,並加上 [`--debug-file claude-debug.log`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags)

5155 2. 向 Claude 傳送導致搜尋失敗的請求

5156 3. 如果搜尋再次失敗,請在 `claude-debug.log` 中找出包含 `rg error (signal=` 的那一行

5157 4. 在您 [回報問題](#report-an-error) 時附上該行

5158 

5068### Task output swap refused5159### Task output swap refused

5069 5160 

5070Claude Code 會將每個 Bash 命令的輸出儲存到其暫存目錄下的檔案中。每次開啟這些檔案時,它都會檢查路徑是否仍通往它所建立的檔案,且沒有符號連結、額外的硬連結或被移動的目錄將其重新導向。此訊息表示該檢查失敗,因此 Claude Code 拒絕了該操作,而不是透過該路徑寫入或讀取輸出。訊息會出現在 Bash 工具結果中:5161Claude Code 會將每個 Bash 命令的輸出儲存到其暫存目錄下的檔案中。每次開啟這些檔案時,它都會檢查路徑是否仍通往它所建立的檔案,且沒有符號連結、額外的硬連結或被移動的目錄將其重新導向。此訊息表示該檢查失敗,因此 Claude Code 拒絕了該操作,而不是透過該路徑寫入或讀取輸出。訊息會出現在 Bash 工具結果中:


5153 5244 

5154在 v2.1.296 之前,Edit 和 NotebookEdit 會套用這類編輯,並將無法解碼的每個位元組儲存為 `U+FFFD`。若您使用的是這些版本,請更新 Claude Code。5245在 v2.1.296 之前,Edit 和 NotebookEdit 會套用這類編輯,並將無法解碼的每個位元組儲存為 `U+FFFD`。若您使用的是這些版本,請更新 Claude Code。

5155 5246 

5247### Refusing to apply edits: a hook is configured for file edits in this session

5248 

5249Claude 嘗試以 [一步更新](https://code.claude.com/docs/zh-TW/artifacts.md#turn-off-one-step-artifact-updates) 發佈 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md),也就是在發佈時一併包含對該 artifact 檔案的小幅變更,而 Claude Code 拒絕了。沒有發佈任何內容,檔案也未變更。訊息會出現在 Artifact 工具結果中:

5250 

5251```text wrap theme={null}

5252Refusing to apply edits to <path>: a hook is configured for file edits in this session, so a publish can't apply edits here. Edit the file, then publish it without edits. Nothing was published.

5253```

5254 

5255當您的工作階段有針對 `Edit` 或 `Write` 的 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/hooks#pretooluse) 或 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 時,Claude Code 不允許一步更新。

5256 

5257**處理方式:**

5258 

5259* 如果 Claude 接著編輯了檔案並將其發佈,則無需任何動作

5260* 如果 Claude 在此訊息處停止,請要求 Claude 編輯檔案並發佈

5261* 如果訊息持續出現,請結束並重新啟動 Claude Code

5262* 如果重新啟動後訊息仍再次出現,請 [關閉一步更新](https://code.claude.com/docs/zh-TW/artifacts.md#turn-off-one-step-artifact-updates)

5263 

5156### The source file is not valid UTF-8 text5264### The source file is not valid UTF-8 text

5157 5265 

5158Claude 嘗試從一個位元組無法解碼為文字、或其文字已包含替代字元 `U+FFFD` 的檔案發佈 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md),因此 Claude Code 在上傳任何內容之前就拒絕了發佈。訊息會出現在 Artifact 工具結果中,並指出第一個需要修正的位置:5266Claude 嘗試從一個位元組無法解碼為文字、或其文字已包含替代字元 `U+FFFD` 的檔案發佈 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md),因此 Claude Code 在上傳任何內容之前就拒絕了發佈。訊息會出現在 Artifact 工具結果中,並指出第一個需要修正的位置:


5623 5731 

5624* 重新建立訊息指出的目錄,或從存在的目錄分派,然後再試一次5732* 重新建立訊息指出的目錄,或從存在的目錄分派,然後再試一次

5625 5733 

5734### This forked session could not be started

5735 

5736您從 claude.ai [分叉了 Remote Control 工作階段](https://code.claude.com/docs/zh-TW/remote-control.md#fork-a-session-from-your-browser),而 Claude Code 無法完成啟動在您機器上執行該分叉的[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)。此通知會出現在分叉工作階段的逐字稿中:

5737 

5738```text theme={null}

5739This forked session could not be started. Fork the conversation again to retry.

5740```

5741 

5742您分叉的工作階段會繼續執行。

5743 

5744**該怎麼做:**

5745 

5746* 回到您分叉的工作階段,並在該工作階段閒置後再次分叉它

5747 

5626### 分派背景工作階段時工作區未信任5748### 分派背景工作階段時工作區未信任

5627 5749 

5628您在尚未[信任](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)的目錄中啟動或重新啟動[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md),而工作區信任對話框無法出現來詢問您。Claude Code 不會啟動工作階段:5750您在尚未[信任](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)的目錄中啟動或重新啟動[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md),而工作區信任對話框無法出現來詢問您。Claude Code 不會啟動工作階段:

fast-mode.md +40 −18

Details

12 12 

13快速模式是支援模型的高速設定,使模型速度提升最高 2.5 倍,但每個 token 的成本更高。當您需要速度進行互動式工作(如快速迭代或即時除錯)時,使用 `/fast` 切換開啟;當成本比延遲更重要時,則切換關閉。13快速模式是支援模型的高速設定,使模型速度提升最高 2.5 倍,但每個 token 的成本更高。當您需要速度進行互動式工作(如快速迭代或即時除錯)時,使用 `/fast` 切換開啟;當成本比延遲更重要時,則切換關閉。

14 14 

15快速模式使用相同的模型,搭配以速度優先於成本效率的不同 API 設定,因此品質和功能維持不變。快速模式在 Fable 5.2、Opus 5.5、Opus 5 和 Opus 4.8 上受支援。它在 Sonnet、Haiku 或其他模型上不可用。15快速模式使用相同的模型,搭配以速度優先於成本效率的不同 API 設定,因此品質和功能維持不變。在 Anthropic API 上,快速模式在 Fable 5.2、Opus 5.5、Opus 5 和 Opus 4.8 上受支援,但在 Sonnet、Haiku 或其他模型上不受支援。關於 Google Cloud 的 Agent Platform 上的模型,請參閱[在 Agent Platform 上使用快速模式](#use-fast-mode-on-agent-platform)。

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


25 25 

26需要了解的事項:26需要了解的事項:

27 27 

28* 使用 `/fast` 在 Claude Code CLI 中切換快速模式。[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)在選定的模型支援快速模式時提供**切換快速模式**命令。Claude Code 將該切換儲存到您的 [`fastMode` 設定](#toggle-fast-mode)。28* 使用 `/fast` 在 Claude Code CLI 中切換快速模式。[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)在選定的模型支援快速模式時提供**切換快速模式**命令。在 Anthropic API 上,Claude Code 會將該切換儲存到您的 [`fastMode` 設定](#toggle-fast-mode)。

29* 快速模式每 MTok 輸入/輸出的定價在 Fable 5.2 上為 \$16/\$80,在 Opus 5.5 上為 \$8/\$40,在 Opus 5 和 Opus 4.8 上為 \$10/\$50。29* Anthropic 的快速模式每 MTok 輸入/輸出的定價在 Fable 5.2 上為 \$16/\$80,在 Opus 5.5 上為 \$8/\$40,在 Opus 5 和 Opus 4.8 上為 \$10/\$50。

30* 適用於訂閱方案(Pro/Max/Ultra/Team/Enterprise)上的 Claude Code 使用者和 Claude Console。Team 和 Enterprise 組織需要擁有者先啟用它,Console 組織則需要先佈建存取權限,才能搭配 Opus 5 或 Opus 4.8 使用。[需求](#requirements)說明了這兩者。30* 適用於訂閱方案(Pro/Max/Ultra/Team/Enterprise)上的 Claude Code 使用者、Claude Console,以及[在特定條件下](#use-fast-mode-on-agent-platform)適用於 Google Cloud 的 Agent Platform。Team 和 Enterprise 組織需要擁有者先啟用它,Console 組織則需要先佈建存取權限,才能搭配 Opus 5 或 Opus 4.8 使用。[需求](#requirements)說明了這兩者。

31* 對於訂閱方案(Pro/Max/Ultra/Team/Enterprise)上的 Claude Code 使用者,快速模式僅透過用量點數提供,不包含在訂閱速率限制中。31* 對於訂閱方案(Pro/Max/Ultra/Team/Enterprise)上的 Claude Code 使用者,快速模式僅透過用量點數提供,不包含在訂閱速率限制中。

32 32 

33## 切換快速模式33## 切換快速模式

34 34 

35在 Agent Platform 上,`/fast` 與 `fastMode` 設定的運作方式不同,因此請改為依照[在 Agent Platform 上使用快速模式](#use-fast-mode-on-agent-platform)的說明操作。

36 

35在 CLI 中,可透過以下任一方式切換快速模式:37在 CLI 中,可透過以下任一方式切換快速模式:

36 38 

37* 執行 `/fast`,按 Space 切換開啟或關閉,然後按 Enter 確認39* 執行 `/fast`,按 Space 切換開啟或關閉,然後按 Enter 確認

38* 在支援快速模式的模型上,於您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)中設定 `"fastMode": true`。如果您在其他任何模型上設定此項,您會繼續使用該模型,且快速模式保持關閉。在 Fable 5.2 上,僅有此設定並不會產生作用,直到您在使用 Fable 5.2 時執行 `/fast`。40* 在支援快速模式的模型上,於您的[使用者設定檔](https://code.claude.com/docs/zh-TW/settings.md)中設定 `"fastMode": true`。如果您在其他任何模型上設定此項,您會繼續使用該模型,且快速模式保持關閉。在 Fable 5.2 上,僅有此設定並不會產生作用,直到您在使用 Fable 5.2 時執行 `/fast`。

39 41 

40預設情況下,在互動式工作階段中開啟的快速模式會在支援的模型上跨工作階段保留。在 Fable 5.2 上,只有在您[於使用 Fable 5.2 時開啟](#switch-models-while-fast-mode-is-on)的情況下才會保留。您可以將快速模式設定為在每個工作階段重設。詳情請參閱[要求每個工作階段選擇加入](#require-per-session-opt-in)。42在 Anthropic API 上,預設情況下,在互動式工作階段中開啟的快速模式會在支援的模型上跨工作階段保留。在 Fable 5.2 上,只有在您[於使用 Fable 5.2 時開啟](#switch-models-while-fast-mode-is-on)的情況下才會保留。您可以將快速模式設定為在每個工作階段重設。詳情請參閱[要求每個工作階段選擇加入](#require-per-session-opt-in)。

41 43 

42在[雲端工作階段](#use-fast-mode-in-cloud-sessions)之外,於使用 `-p` 旗標的[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中,`/fast` 僅在其 [`--settings`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 值中啟用快速模式所啟動的工作階段中有效,例如 `claude -p --settings '{"fastMode": true}'`;此時切換僅套用於該工作階段,不會儲存為您的預設值。`-p` 形式需要 Claude Code v2.1.205 或更新版本。在其他非互動模式情況下,該命令會回報快速模式無法使用。44在[雲端工作階段](#use-fast-mode-in-cloud-sessions)之外,於使用 `-p` 旗標的[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中,`/fast` 僅在其 [`--settings`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 值中啟用快速模式所啟動的工作階段中有效,例如 `claude -p --settings '{"fastMode": true}'`;此時切換僅套用於該工作階段,不會儲存為您的預設值。`-p` 形式需要 Claude Code v2.1.205 或更新版本。在其他非互動模式情況下,該命令會回報快速模式無法使用。

43 45 


47 49 

48當您使用 `/fast` 啟用快速模式時:50當您使用 `/fast` 啟用快速模式時:

49 51 

50* 如果您目前的模型不支援快速模式,Claude Code 會切換至 Opus52* 在 Anthropic API 上,如果您目前的模型不支援快速模式,Claude Code 會切換至 Opus

51* 在 Fable 5.2 上使用快速模式需要 Claude Code v2.1.321 或更新版本53* 在 Fable 5.2 上使用快速模式需要 Claude Code v2.1.321 或更新版本

52* 您會看到確認訊息:"Fast mode ON"54* 您會看到確認訊息:"Fast mode ON"

53* 快速模式啟用期間,提示詞旁會出現一個小型 `↯` 圖示55* 快速模式啟用期間,提示詞旁會出現一個小型 `↯` 圖示

54* 隨時再次執行 `/fast` 即可檢查快速模式是開啟還是關閉56* 隨時再次執行 `/fast` 即可檢查快速模式是開啟還是關閉

55 57 

56在 Claude Code v2.1.280 及更新版本中,Opus 5.5 是快速模式的預設模型。在 v2.1.280 之前,從 v2.1.219 起快速模式預設使用 Opus 5。58在 Anthropic API 上,於 Claude Code v2.1.280 及更新版本中,Opus 5.5 是快速模式的預設模型。在 v2.1.280 之前,從 v2.1.219 起快速模式預設使用 Opus 5。

57 59 

58當您再次使用 `/fast` 停用快速模式時,您會繼續使用目前的模型。若要切換至其他模型,請使用 `/model`。60當您再次使用 `/fast` 停用快速模式時,您會繼續使用目前的模型。若要切換至其他模型,請使用 `/model`。

59 61 


63 65 

64* **切換離開**:當您切換至不支援快速模式的模型時,Claude Code 會關閉快速模式。這包括 Opus 4.7;在 v2.1.221 之前,切換至 Opus 4.7 後快速模式仍保持開啟,且 API 會拒絕這些請求。66* **切換離開**:當您切換至不支援快速模式的模型時,Claude Code 會關閉快速模式。這包括 Opus 4.7;在 v2.1.221 之前,切換至 Opus 4.7 後快速模式仍保持開啟,且 API 會拒絕這些請求。

65* **切換回來**:當您儲存的偏好設定為開啟時,快速模式會在受支援的 Opus 模型上重新開啟。若已設定[每個工作階段選擇加入](#require-per-session-opt-in),請改為執行 `/fast`。67* **切換回來**:當您儲存的偏好設定為開啟時,快速模式會在受支援的 Opus 模型上重新開啟。若已設定[每個工作階段選擇加入](#require-per-session-opt-in),請改為執行 `/fast`。

66* **切換至 Fable 5.2**:除非您在使用 Fable 5.2 時開啟了快速模式,否則快速模式會關閉。若要開啟,請在 Fable 5.2 上執行 `/fast`。除非您已設定[每個工作階段選擇加入](#require-per-session-opt-in),否則此設定會跨工作階段保留,直到您將其關閉,或在其他模型上將其開啟為止。68* **切換至 Fable 5.2**:除非您在使用 Fable 5.2 時開啟了快速模式,否則快速模式會關閉。若要開啟,請在 Fable 5.2 上執行 `/fast`。除非您已設定[每個工作階段選擇加入](#require-per-session-opt-in),否則在 Anthropic API 上此選擇會跨工作階段保留,直到您關閉快速模式,或在其他模型上將其開啟為止。

67 69 

68每當模型切換開啟或關閉快速模式時,Claude Code 都會顯示 `Fast mode ON` 或 `Fast mode OFF` 確認訊息,且快速模式開啟期間會出現 `↯` 圖示。無論您是使用 `/model`、使用 [`/config model=<model>`](https://code.claude.com/docs/zh-TW/settings),還是從透過 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線的裝置進行切換,皆是如此。70每當模型切換開啟或關閉快速模式時,Claude Code 都會顯示 `Fast mode ON` 或 `Fast mode OFF` 確認訊息,且快速模式開啟期間會出現 `↯` 圖示。無論您是使用 `/model`、使用 [`/config model=<model>`](https://code.claude.com/docs/zh-TW/settings),還是從透過 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線的裝置進行切換,皆是如此。

69 71 

70在模型切換、重新連線或[可用性檢查](#use-fast-mode-behind-proxies-and-llm-gateways)失敗後,Claude Code 會將工作階段的快速模式狀態重新傳送至透過 Remote Control 連線的裝置。

71 

72### 在雲端工作階段中使用快速模式72### 在雲端工作階段中使用快速模式

73 73 

74當您的帳戶可使用快速模式時,快速模式可在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中運作,無論該工作階段是在 Anthropic 管理的基礎架構上執行,還是在[自行託管的執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments)上執行。工作階段的環境需要 Claude Code v2.1.271 或更新版本。74當您的帳戶可使用快速模式時,快速模式可在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中運作,無論該工作階段是在 Anthropic 管理的基礎架構上執行,還是在 Anthropic API 上的[自行託管的執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments)上執行。工作階段的環境需要 Claude Code v2.1.271 或更新版本。

75 75 

76在工作階段中輸入 `/fast on` 即可開啟快速模式。它僅在該工作階段中保持開啟,不會儲存為您的預設值。[需求](#requirements)同樣適用於雲端工作階段。76在工作階段中輸入 `/fast on` 即可開啟快速模式。它僅在該工作階段中保持開啟,不會儲存為您的預設值。[需求](#requirements)同樣適用於雲端工作階段。

77 77 


79 79 

80## 了解成本權衡80## 了解成本權衡

81 81 

82快速模式的每個 token 定價高於標準速度:82快速模式的每個 token 定價高於標準速度。以下是 Anthropic 的費率:

83 83 

84| 模型 | 輸入 (MTok) | 輸出 (MTok) |84| 模型 | 輸入 (MTok) | 輸出 (MTok) |

85| - | - | - |85| - | - | - |


129 129 

130快速模式需要以下所有條件:130快速模式需要以下所有條件:

131 131 

132* **僅限 Anthropic API 或訂閱**:快速模式可透過 Anthropic Console API 和使用用量點數的 Claude 訂閱方案取得。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上無法使用。Console 組織還必須[佈建快速模式存取](#enable-fast-mode-for-your-organization),才能在 Opus 5 或 Opus 4.8 上使用它。132* **支援的提供者**:快速模式可透過 Anthropic Console API、使用用量點數的 Claude 訂閱方案,以及[在特定條件下](#use-fast-mode-on-agent-platform)透過 Google Cloud 的 Agent Platform 取得。在 Amazon Bedrock、Microsoft Foundry 或 AWS 上的 Claude Platform 上無法使用,在這些平台上 `/fast` 會報告「此提供者無法使用快速模式」。Console 組織還必須[佈建快速模式存取](#enable-fast-mode-for-your-organization),才能在 Opus 5 或 Opus 4.8 上使用它。

133* **為訂閱方案開啟用量點數**:在 Pro、Max、Ultra、Team 或 Enterprise 方案上,您的帳戶必須開啟[用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription),這允許超出您方案包含使用量的計費。在開啟之前,`/fast` 會報告「快速模式需要用量點數」。若要開啟它們,請依照您方案對應的步驟操作:133* **為訂閱方案開啟用量點數**:在 Pro、Max、Ultra、Team 或 Enterprise 方案上,您的帳戶必須開啟[用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription),這允許超出您方案包含使用量的計費。在開啟之前,`/fast` 會報告「快速模式需要用量點數」。若要開啟它們,請依照您方案對應的步驟操作:

134 * 在 Pro、Max 和 Ultra 上,在 claude.ai 上的 [**設定 > 使用量**](https://claude.ai/settings/usage) 的 **用量點數** 部分開啟它們,或執行 `/usage-credits` 以開啟該頁面。134 * 在 Pro、Max 和 Ultra 上,在 claude.ai 上的 [**設定 > 使用量**](https://claude.ai/settings/usage) 的 **用量點數** 部分開啟它們,或執行 `/usage-credits` 以開啟該頁面。

135 * 在 Team 和 Enterprise 上,具有計費存取權限的成員在 [**組織設定 > 使用量**](https://claude.ai/admin-settings/usage) 為組織開啟它們,沒有存取權限的成員執行 `/usage-credits` 以向組織的管理員發送請求。135 * 在 Team 和 Enterprise 上,具有計費存取權限的成員在 [**組織設定 > 使用量**](https://claude.ai/admin-settings/usage) 為組織開啟它們,沒有存取權限的成員執行 `/usage-credits` 以向組織的管理員發送請求。


150> * **快速模式未啟用**:如果尚未為您的組織啟用快速模式,使用 `/fast` 開啟快速模式會顯示「快速模式已被您的組織停用。」150> * **快速模式未啟用**:如果尚未為您的組織啟用快速模式,使用 `/fast` 開啟快速模式會顯示「快速模式已被您的組織停用。」

151> * **快速模式被受管設定關閉**:如果您的組織部署[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md),設定 [`fastMode: false`](https://code.claude.com/docs/zh-TW/settings-reference#fastmode),使用 `/fast` 開啟快速模式會顯示相同的「快速模式已被您的組織停用」訊息。151> * **快速模式被受管設定關閉**:如果您的組織部署[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md),設定 [`fastMode: false`](https://code.claude.com/docs/zh-TW/settings-reference#fastmode),使用 `/fast` 開啟快速模式會顯示相同的「快速模式已被您的組織停用」訊息。

152> * **需要每個工作階段的選擇加入**:設定 [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) 的受管設定會在除了互動式終端工作階段以外的所有地方拒絕 `/fast on`,顯示相同的訊息。152> * **需要每個工作階段的選擇加入**:設定 [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) 的受管設定會在除了互動式終端工作階段以外的所有地方拒絕 `/fast on`,顯示相同的訊息。

153> * **快速模式模型不允許**:如果您組織的 [`availableModels`](https://code.claude.com/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除快速模式 Opus 模型,開啟它會被拒絕,顯示「不在您組織的允許模型中」。在已在支援快速模式的允許模型上執行的工作階段中,`/fast` 改為在您目前的模型上啟用快速模式,而不是切換模型。153> * **快速模式模型不允許**:如果您組織的 [`availableModels`](https://code.claude.com/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除了 `/fast` 要切換到的模型,開啟它會被拒絕,顯示「不在您組織的允許模型中」。在已在支援快速模式的允許模型上執行的工作階段中,`/fast` 改為在您目前的模型上啟用快速模式,而不是切換模型。

154 154 

155### 為您的組織啟用快速模式155### 為您的組織啟用快速模式

156 156 


163 163 

164另一個完全停用快速模式的選項是設定 `CLAUDE_CODE_DISABLE_FAST_MODE=1`。請參閱[環境變數](https://code.claude.com/docs/zh-TW/env-vars.md)。164另一個完全停用快速模式的選項是設定 `CLAUDE_CODE_DISABLE_FAST_MODE=1`。請參閱[環境變數](https://code.claude.com/docs/zh-TW/env-vars.md)。

165 165 

166### 在 Agent Platform 上使用快速模式

167 

168在 [Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md) 上,您可以為 Fable 5.2 開啟快速模式,方法是在互動式工作階段中使用 `/fast`,或在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中使用啟動旗標。需要 Claude Code v2.1.322 或更新版本。

169 

170快速模式需要 Fable 5.2 的[區域](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#region-configuration)為 `global`、`us` 或 `eu`。在其他區域中,`/fast` 會報告 `Fast mode needs Vertex region global, us or eu`,而 `claude -p` 會以標準速度執行。請在啟動 Claude Code 之前於您的 shell 中設定區域,例如設定為 `global`:

171 

172```bash theme={null}

173export VERTEX_REGION_CLAUDE_FABLE_5_2=global

174```

175 

176接著開啟快速模式:

177 

178* **在互動式工作階段中**:執行 `/fast`。它會將您從 Opus 模型或 Agent Platform 上其他不支援快速模式的模型切換到 Fable 5.2。快速模式不會儲存為您的預設值。

179* **在非互動模式中**:以 [`--model`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 傳入 Fable 5.2,並在 [`--settings`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 中傳入快速模式,例如 `claude -p "Summarize this project" --model claude-fable-5-2 --settings '{"fastMode": true}'`

180 

181在 Agent Platform 上,您的使用者、專案、本機或受管設定中的 `"fastMode": true` 不會產生任何作用。

182 

183如果 Agent Platform 拒絕快速模式,Claude Code 會回退到標準速度。互動式工作階段接著會顯示下列其中一則終端機訊息:

184 

185* `Using standard speed on Fable 5.2 · fast mode wasn't available`:執行 `/fast on` 以再次嘗試快速模式

186* `Fast mode was refused for this project · trying again in 30m`:Agent Platform 以 403 或 404 錯誤回應了快速模式請求。若要更早嘗試,請執行 `/fast on`。

187 

166### 在代理和 LLM 閘道後面使用快速模式188### 在代理和 LLM 閘道後面使用快速模式

167 189 

168在提供快速模式之前,Claude Code 會透過直接向 `api.anthropic.com` 的請求檢查您組織的快速模式可用性。該檢查不遵循 [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/zh-TW/llm-gateway-connect#set-the-base-url-and-credential),因此在將 Claude 流量路由透過 [LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway)並阻止直接出口到 `api.anthropic.com` 的網路上,即使推理請求有效,檢查也會失敗。該檢查確實使用已設定的 [HTTP 代理](https://code.claude.com/docs/zh-TW/network-config.md#proxy-configuration),因此網路阻止只在 `api.anthropic.com` 即使透過代理也無法到達的地方才會使檢查失敗。190在 Anthropic API 上提供快速模式之前,Claude Code 會透過直接向 `api.anthropic.com` 的請求檢查您組織的快速模式可用性。該檢查不遵循 [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/zh-TW/llm-gateway-connect#set-the-base-url-and-credential),因此在將 Claude 流量路由透過 [LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway)並阻止直接出口到 `api.anthropic.com` 的網路上,即使推理請求有效,檢查也會失敗。

169 191 

170如果您的組織已啟用快速模式,但 `/fast` 顯示並非如此,請在下列情況中找到它顯示的訊息。192該檢查確實使用已設定的 [HTTP 代理伺服器](https://code.claude.com/docs/zh-TW/network-config.md#proxy-configuration),因此網路阻止只在 `api.anthropic.com` 即使透過代理伺服器也無法到達的地方才會使檢查失敗。如果您的組織已啟用快速模式,但 `/fast` 顯示並非如此,請在下列情況中找到它顯示的訊息。

171 193 

172#### Fast mode unavailable due to network connectivity issues194#### Fast mode unavailable due to network connectivity issues

173 195 


199 221 

200### 需要每個工作階段的選擇加入222### 需要每個工作階段的選擇加入

201 223 

202預設情況下,使用者在互動式工作階段中開啟的快速模式會在支援的模型上跨工作階段持續。在 Fable 5.2 上,只有當使用者[在使用 Fable 5.2 時開啟它](#switch-models-while-fast-mode-is-on),它才會持續。224在 Anthropic API 上,預設情況下,使用者在互動式工作階段中開啟的快速模式會在支援的模型上跨工作階段持續。在 Fable 5.2 上,只有當使用者[在使用 Fable 5.2 時開啟它](#switch-models-while-fast-mode-is-on),它才會持續。

203 225 

204若要讓每個工作階段都以快速模式關閉開始,請在任何[設定檔](https://code.claude.com/docs/zh-TW/settings.md#where-settings-live)中將 `fastModePerSessionOptIn` 設定為 `true`。使用者接著需要在每個工作階段中使用 `/fast` 啟用它。[Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) 或 [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) 方案上的擁有者可以透過[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)在整個組織範圍內部署它。226若要讓每個工作階段都以快速模式關閉開始,請在任何[設定檔](https://code.claude.com/docs/zh-TW/settings.md#where-settings-live)中將 `fastModePerSessionOptIn` 設定為 `true`。使用者接著需要在每個工作階段中使用 `/fast` 啟用它。[Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) 或 [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) 方案上的擁有者可以透過[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)在整個組織範圍內部署它。

205 227 


227如果您在工作階段中途用完使用額度,Claude Code 會在標準速度和定價下重試每個被拒絕的快速模式請求,因此您可以繼續工作,且沒有冷卻期。您看到拒絕的方式取決於工作階段類型:249如果您在工作階段中途用完使用額度,Claude Code 會在標準速度和定價下重試每個被拒絕的快速模式請求,因此您可以繼續工作,且沒有冷卻期。您看到拒絕的方式取決於工作階段類型:

228 250 

229* 在互動式工作階段中,Claude Code 會顯示「快速模式已禁用 · 用量點數已耗盡」通知,並關閉快速模式。您儲存的快速模式偏好設定不會改變;執行 `/fast` 以重新開啟快速模式。251* 在互動式工作階段中,Claude Code 會顯示「快速模式已禁用 · 用量點數已耗盡」通知,並關閉快速模式。您儲存的快速模式偏好設定不會改變;執行 `/fast` 以重新開啟快速模式。

230* 在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中使用 `--output-format stream-json`,以及透過 Agent SDK,Claude Code 會在訊息串流上以 `system` 訊息的形式發出相同的文字,子類型為 `notification`,在您用完使用額度時每個回合發出一次。快速模式保持開啟。需要 Claude Code v2.1.221 或更新版本。252* 在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中使用 `--output-format stream-json`,以及透過 Agent SDK,Claude Code 會在訊息串流上以 `system` 訊息的形式發出相同的文字,子類型為 `notification`。在您用完用量點數期間,此訊息每個回合送達一次。快速模式保持開啟。

231 253 

232## 研究預覽254## 研究預覽

233 255 

Details

93 <td>✓(Opus 5 與 4.8 需要佈建)</td>93 <td>✓(Opus 5 與 4.8 需要佈建)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✓([Fable 5.2,有條件限制](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-on-agent-platform))</td>

97 <td>✗</td>97 <td>✗</td>

98 </tr>98 </tr>

99 99 


256 256 

257> [tab] Google Cloud's Agent Platform257> [tab] Google Cloud's Agent Platform

258>258>

259> \*\*無法使用:\*\*所有[需要 Claude 訂閱的功能](#features-that-require-a-claude-subscription),以及[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-TW/advisor.md)、[頻道](https://code.claude.com/docs/zh-TW/channels.md)、[分析儀表板](https://code.claude.com/docs/zh-TW/analytics.md)、[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md),以及 [`/design-sync` 與 `/import` 命令](https://code.claude.com/docs/zh-TW/commands#all-commands)。259> \*\*無法使用:\*\*所有[需要 Claude 訂閱的功能](#features-that-require-a-claude-subscription),以及 [Advisor](https://code.claude.com/docs/zh-TW/advisor.md)、[頻道](https://code.claude.com/docs/zh-TW/channels.md)、[分析儀表板](https://code.claude.com/docs/zh-TW/analytics.md)、[伺服器受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md),以及 [`/design-sync` 與 `/import` 命令](https://code.claude.com/docs/zh-TW/commands#all-commands)。

260>260>

261> **部分支援:**261> **部分支援:**

262>262>

263> * [Desktop](https://code.claude.com/docs/zh-TW/desktop.md):透過[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)263> * [Desktop](https://code.claude.com/docs/zh-TW/desktop.md):透過[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264> * [網頁搜尋](https://code.claude.com/docs/zh-TW/tools-reference.md#websearch-tool-behavior):Opus 4、Sonnet 4、Haiku 4.5 及更新的模型264> * [網頁搜尋](https://code.claude.com/docs/zh-TW/tools-reference.md#websearch-tool-behavior):Opus 4、Sonnet 4、Haiku 4.5 及更新的模型

265> * [快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-on-agent-platform):`global`、`us` 與 `eu` 區域中的 Fable 5.2;若 Agent Platform 拒絕快速模式,則改用標準速度

265> * [自動模式](https://code.claude.com/docs/zh-TW/auto-mode-config.md):僅限 Sonnet 5 或更新版本、Opus 4.7 或更新版本、Haiku 5.5 以及 Fable 模型266> * [自動模式](https://code.claude.com/docs/zh-TW/auto-mode-config.md):僅限 Sonnet 5 或更新版本、Opus 4.7 或更新版本、Haiku 5.5 以及 Fable 模型

266> * [跨工作階段訊息傳遞](https://code.claude.com/docs/zh-TW/cross-session-messaging.md):僅限此機器上您的工作階段之間 <sup>[5](#fn5)</sup>267> * [跨工作階段訊息傳遞](https://code.claude.com/docs/zh-TW/cross-session-messaging.md):僅限此機器上您的工作階段之間 <sup>[5](#fn5)</sup>

267> * [零資料保留](https://code.claude.com/docs/zh-TW/zero-data-retention.md):取決於您與 Google Cloud 的合約268> * [零資料保留](https://code.claude.com/docs/zh-TW/zero-data-retention.md):取決於您與 Google Cloud 的合約

gateways.md +1 −1

Details

50 50 

51## 訂閱和閘道51## 訂閱和閘道

52 52 

53當開發人員透過具有閘道認證的閘道連接時,使用情況按 API 費率計費到您的組織提供者帳戶,他們的 claude.ai 訂閱不被使用或收費。為您執行的閘道設定 [`ANTHROPIC_AUTH_TOKEN`](https://code.claude.com/docs/zh-TW/env-vars),或使用 `/login` 登入 Claude 應用程式閘道,會關閉該工作階段的訂閱登入。在該認證下轉發的每個請求都計費到閘道提供者認證背後的帳戶。53當開發人員透過具有閘道憑證的閘道連接時,使用情況按 API 費率計費到您的組織提供者帳戶,他們的 claude.ai 訂閱不被使用或收費。在該憑證下轉發的每個請求都計費到閘道提供者憑證背後的帳戶。

54 54 

55例外是僅設定 `ANTHROPIC_BASE_URL`,沒有閘道認證。請求仍然透過閘道路由,但已保存的 claude.ai 登入保持為活動認證,因此訂閱的使用限制和計費適用。[其他 LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway#subscriptions-and-gateways) 涵蓋該配置以及閘道必須轉發的內容才能使其正常運作。55例外是僅設定 `ANTHROPIC_BASE_URL`,沒有閘道認證。請求仍然透過閘道路由,但已保存的 claude.ai 登入保持為活動認證,因此訂閱的使用限制和計費適用。[其他 LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway#subscriptions-and-gateways) 涵蓋該配置以及閘道必須轉發的內容才能使其正常運作。

56 56 

Details

135| Merge queues | 讀取 |135| Merge queues | 讀取 |

136| Metadata | 讀取 |136| Metadata | 讀取 |

137| Pull requests | 讀取和寫入 |137| Pull requests | 讀取和寫入 |

138| Repository creation | 讀取和寫入 |

138| Repository hooks | 讀取和寫入 |139| Repository hooks | 讀取和寫入 |

139| Statuses | 讀取 |140| Statuses | 讀取 |

140| Workflows | 讀取和寫入 |141| Workflows | 讀取和寫入 |

Details

190一些功能在 GHES 上的行為與 github.com 上不同。[功能表](#what-works-with-github-enterprise-server) 總結了支持;本部分涵蓋了解決方案。190一些功能在 GHES 上的行為與 github.com 上不同。[功能表](#what-works-with-github-enterprise-server) 總結了支持;本部分涵蓋了解決方案。

191 191 

192* **`/install-github-app` 命令**:改為遵循 claude.ai 上的 [管理員設置](#admin-setup) 流程。如果您還想在 GHES 上使用 GitHub Actions 工作流,請手動調整 [示例工作流](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml)。192* **`/install-github-app` 命令**:改為遵循 claude.ai 上的 [管理員設置](#admin-setup) 流程。如果您還想在 GHES 上使用 GitHub Actions 工作流,請手動調整 [示例工作流](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml)。

193* **GitHub MCP server**:改為使用為您的 GHES 主機配置的 `gh` CLI。運行 `gh auth login --hostname github.example.com` 進行身份驗證,然後 Claude 可以在會話中使用 `gh` 命令。193* **GitHub MCP 伺服器**:在您自己機器上的工作階段中,改為使用為您的 GHES 主機設定的 `gh` CLI。執行 `gh auth login --hostname github.example.com` 進行身份驗證,然後 Claude 即可在該處使用 `gh` 命令。

194 194 

195## 故障排除195## 故障排除

196 196 

goal.md +3 −2

Details

131 131 

132#### 你必須修復的錯誤會清除目標132#### 你必須修復的錯誤會清除目標

133 133 

134如果回合因無法清除的錯誤而失敗,Claude Code 會清除目標並列印警告,說明原因。警告以 `Goal cleared after an unrecoverable error` 開始,以 `Run /goal again to continue` 結束。修復原因,然後使用 `/goal <condition>` [再次設定目標](#set-a-goal)。四種失敗會清除目標:134如果回合因在您修復之前無法清除的錯誤而失敗,Claude Code 會清除目標並列印警告,說明原因。警告以 `Goal cleared after an unrecoverable error` 開始,以 `Run /goal again to continue` 結束。修復原因,然後使用 `/goal <condition>` [再次設定目標](#set-a-goal)。會清除目標的失敗包括:

135 135 

136* 驗證失敗,當 Claude Code 管理自己的認證時。當主機為你管理認證時,例如桌面應用程式或[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),Claude Code 會保持目標活躍,因為主機會自動恢復存取權。136* 驗證失敗,當 Claude Code 管理自己的認證時。當主機為你管理認證時,例如桌面應用程式或[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),Claude Code 會保持目標活躍,因為主機會自動恢復存取權。

137* 磁碟空間已滿,導致 Claude Code 無法更新您的 claude.ai 登入,當 Claude Code 管理自己的憑證時。警告會顯示 `(disk full)`。[釋放存放 Claude Code 設定目錄之磁碟的空間](https://code.claude.com/docs/zh-TW/errors.md#could-not-refresh-your-login-disk-full)。

137* 信用額度已耗盡138* 信用額度已耗盡

138* [自動壓縮](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window)無法清除的內容溢位139* [自動壓縮](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window)無法清除的內容溢位

139* 不可用的模型140* 不可用的模型


178 179 

179## 要求180## 要求

180 181 

181Claude Code 在與 [工作區信任規則相同的 hooks 設定檔](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder) 下提供 `/goal`,因為評估器是 hooks 系統的一部分。當 [`disableAllHooks`](https://code.claude.com/docs/zh-TW/hooks#disable-or-remove-hooks) 在設定優先順序套用後為 `true` 時,或當在受管設定中設定了 [`allowManagedHooksOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedhooksonly) 時,`/goal` 也不可用。在每種情況下,命令會告訴你原因,而不是默默地什麼都不做。182Claude Code 依照[與設定檔中的 hook 相同的工作區信任規則](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)提供 `/goal`,因為評估器是 hook 系統的一部分。當 [`disableAllHooks`](https://code.claude.com/docs/zh-TW/hooks#disable-or-remove-hooks) 在設定優先順序套用後為 `true` 時,或當在受管設定中設定了 [`allowManagedHooksOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedhooksonly) 時,`/goal` 也不可用。

182 183 

183## 另請參閱184## 另請參閱

184 185 

Details

134 134 

135若要提高您的速率限制,請聯絡 Google Cloud 支援。使用 Google Cloud 的 Agent Platform 時,`/logout` 命令無法使用,因為驗證是透過 Google Cloud 認證處理。135若要提高您的速率限制,請聯絡 Google Cloud 支援。使用 Google Cloud 的 Agent Platform 時,`/logout` 命令無法使用,因為驗證是透過 Google Cloud 認證處理。

136 136 

137Claude Code 根據模型世代在 [MCP 工具搜尋](https://code.claude.com/docs/zh-TW/mcp.md#scale-with-mcp-tool-search)和預先載入之間決定:137Claude Code 根據模型世代在 [MCP Tool Search](https://code.claude.com/docs/zh-TW/mcp.md#scale-with-mcp-tool-search) 和預先載入之間決定:

138 138 

139* **Claude Opus 4.5、Sonnet 4.5、Haiku 4.5 及更新版本**:Claude Code 預設啟用工具搜尋。139* **Claude Opus 4.5、Sonnet 4.5、Haiku 4.5 及更新版本**:Claude Code 預設啟用工具搜尋。

140* **較早的模型**:Claude Code 預先載入 MCP 工具定義,因為其 Agent Platform 服務堆疊拒絕所需的 beta 標頭。設定 `ENABLE_TOOL_SEARCH=true` 不會覆寫此設定。140* **較早的模型**:Claude Code 預先載入 MCP 工具定義,因為其 Agent Platform 服務堆疊拒絕所需的 beta 標頭。設定 `ENABLE_TOOL_SEARCH=true` 不會覆寫此設定。

141 141 

142設定 `ENABLE_TOOL_SEARCH=false` 以在每個模型上停用工具搜尋。在 v2.1.221 之前,Claude Code 在 Google Cloud 的 Agent Platform 上停用所有模型的工具搜尋,除非您設定 `ENABLE_TOOL_SEARCH=true`。142設定 `ENABLE_TOOL_SEARCH=false` 以在每個模型上停用工具搜尋。

143 143 

144### 釘選模型版本144### 釘選模型版本

145 145 

hooks.md +28 −4

Details

572 572 

573Claude Code 讀取工具文字內容的方式與讀取命令 hook stdout 相同,遵循[退出碼 0 下的剖析規則](#exit-code-0)。若工具回傳 `isError: true`,hook 會產生非封鎖性錯誤,並繼續執行。573Claude Code 讀取工具文字內容的方式與讀取命令 hook stdout 相同,遵循[退出碼 0 下的剖析規則](#exit-code-0)。若工具回傳 `isError: true`,hook 會產生非封鎖性錯誤,並繼續執行。

574 574 

575若 hook 錯誤包含下列其中一則訊息,表示 Claude Code 無法讀取工具的回答,因此該 hook 未給出判定:

576 

577```text theme={null}

578MCP tool "security_scan" on server "my_server" gave no answer that could be read, because a message from the server was too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

579MCP tool "security_scan" on server "my_server" answered without its text, which happens when a result is too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

580```

581 

582在 `PreToolUse` 上,Claude Code 會拒絕該 hook 正在檢查的工具呼叫。在 `UserPromptSubmit`、`PostToolUse` 與 `Stop` 等其他事件上,該錯誤為非封鎖性錯誤。

583 

584若錯誤持續出現,請讓工具回傳較少的資料,或變更 hook 的 [`tool` 或 `input`](#mcp-tool-hook-fields),讓回答變小。

585 

575##### 當伺服器仍在連線中586##### 當伺服器仍在連線中

576 587 

577在 hook 可以封鎖或變更結果的事件上,例如 `PreToolUse` 或 `Stop`,Claude Code 會在呼叫工具前等待正在連線的伺服器,最多等待 [`MCP_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars),且不超過 hook 本身的 [`timeout`](#common-fields)。在觀察性事件上,例如 `Notification` 或 `SessionEnd`,則不會等待。588在 hook 可以封鎖或變更結果的事件上,例如 `PreToolUse` 或 `Stop`,Claude Code 會在呼叫工具前等待正在連線的伺服器,最多等待 [`MCP_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars),且不超過 hook 本身的 [`timeout`](#common-fields)。在觀察性事件上,例如 `Notification` 或 `SessionEnd`,則不會等待。


892 903 

893#### 啟動背景程序的 hook904#### 啟動背景程序的 hook

894 905 

906hook 可以啟動長時間執行的程式(例如開發伺服器),並在工作階段繼續進行時讓它保持執行。在 hook 的指令碼或 [shell 形式](#exec-form-and-shell-form) 命令中:

907 

908* 在背景執行該程式

909* 重新導向其 stdout 和 stderr。例如,Bash 命令 `npm run dev > dev-server.log 2>&1 &` 會將兩者都傳送到檔案。如果您不重新導向它們,非 [async](#run-hooks-in-the-background) 的 hook 在其本身的程序退出後,最多需要 10 秒才會完成。

910 

895如果您的命令 hook 在背景程序中做出決定後就退出,該程序在 Claude Code 停止讀取之後才列印的拒絕不會阻止工具呼叫。對於非 [async](#run-hooks-in-the-background) 的 hook,Claude Code 會在 hook 本身的程序退出後不久完成讀取 hook 的輸出。911如果您的命令 hook 在背景程序中做出決定後就退出,該程序在 Claude Code 停止讀取之後才列印的拒絕不會阻止工具呼叫。對於非 [async](#run-hooks-in-the-background) 的 hook,Claude Code 會在 hook 本身的程序退出後不久完成讀取 hook 的輸出。

896 912 

897請在啟動背景程序之前列印決定,並重新導向該程序的 stdout 和 stderr。如果您的指令碼列印允許決定,然後啟動背景程序而未重新導向該程序的 stdout 和 stderr,Claude Code 會阻止工具呼叫。hook 錯誤包含 `refusing to honor the suspect capture`。913請在啟動背景程序之前列印決定,並重新導向該程序的 stdout 和 stderr。如果您的指令碼列印允許決定,然後啟動背景程序而未重新導向該程序的 stdout 和 stderr,Claude Code 會阻止工具呼叫。hook 錯誤包含 `stdio went quiet` 和 `refusing to honor the suspect capture`。

898 914 

899此 `PreToolUse` hook 指令碼使用 `policy-check.sh` 列印決定,然後在背景上傳指標:915此 `PreToolUse` hook 指令碼使用 `policy-check.sh` 列印決定,然後在背景上傳指標:

900 916 


1193 1209 

1194* `PreToolUse`:直接位於 `hookSpecificOutput` 下的 `updatedInput` 會在工具執行前替換其引數。請參閱 [PreToolUse 決定控制](#pretooluse-decision-control)1210* `PreToolUse`:直接位於 `hookSpecificOutput` 下的 `updatedInput` 會在工具執行前替換其引數。請參閱 [PreToolUse 決定控制](#pretooluse-decision-control)

1195* `PermissionRequest`:`decision` 物件內的 `updatedInput`。請參閱 [PermissionRequest 決定控制](#permissionrequest-decision-control)1211* `PermissionRequest`:`decision` 物件內的 `updatedInput`。請參閱 [PermissionRequest 決定控制](#permissionrequest-decision-control)

1196* `PostToolUse`:`updatedToolOutput` 替換工具的結果。請參閱 [PostToolUse 決定控制](#posttooluse-decision-control)1212* `PostToolUse`:`updatedToolOutput` 替換工具的結果。在 [Cowork](https://claude.com/docs/cowork/overview) 雲端工作階段中,當工具為 `AskUserQuestion` 或 `ExitPlanMode` 時,Claude Code 會忽略 `updatedToolOutput`,Claude 會讀取原始的回答或計畫。請參閱 [PostToolUse 決定控制](#posttooluse-decision-control)

1197* `UserPromptSubmit`:無法替換提示詞;僅在其旁邊注入 `additionalContext`1213* `UserPromptSubmit`:無法替換提示詞;僅在其旁邊注入 `additionalContext`

1198 1214 

1199對於遮蔽或轉換使用案例,在 `PreToolUse` 攔截外送的工具輸入,在 `PostToolUse` 攔截傳入的工具結果。1215對於遮蔽或轉換使用案例,在 `PreToolUse` 攔截外送的工具輸入,在 `PostToolUse` 攔截傳入的工具結果。


2210| `addDirectories` | `directories`、`destination` | 新增工作目錄。`directories` 是路徑字串的陣列 |2226| `addDirectories` | `directories`、`destination` | 新增工作目錄。`directories` 是路徑字串的陣列 |

2211| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |2227| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |

2212 2228 

2229在 `rules` 中,對於寫成 `Tool(specifier)` 的[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#permission-rule-syntax),`toolName` 是工具名稱,`ruleContent` 是 specifier:

2230 

2231* `Bash(npm test)`:`{ "toolName": "Bash", "ruleContent": "npm test" }`

2232* `Bash` 或 `Bash(*)`:`{ "toolName": "Bash" }`,因為兩者都比對整個工具

2233* `mcp__github__get_issue`:`{ "toolName": "mcp__github__get_issue" }`

2234 

2235[MCP 工具](https://code.claude.com/docs/zh-TW/permissions.md#mcp)的允許規則請勿包含 `ruleContent`。如果加上它,該規則將不會比對到任何呼叫。

2236 

2213> [!NOTE]2237> [!NOTE]

2214>2238>

2215> 帶有 `bypassPermissions` 的 `setMode` 只有在您啟動工作階段時已可使用略過模式的情況下才會生效:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`,或在[使用者、`--settings` 或受管設定](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode)中設定 `permissions.defaultMode: "bypassPermissions"`。否則此更新不會產生任何作用。當 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-TW/permissions#managed-settings) 停用此模式,或工作階段以[受限模式](https://code.claude.com/docs/zh-TW/cli-reference.md#cli-flags)啟動時,此更新同樣不會產生任何作用。2239> 帶有 `bypassPermissions` 的 `setMode` 只有在您啟動工作階段時已可使用略過模式的情況下才會生效:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`,或在[使用者、`--settings` 或受管設定](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode)中設定 `permissions.defaultMode: "bypassPermissions"`。否則此更新不會產生任何作用。當 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-TW/permissions#managed-settings) 停用此模式,或工作階段以[受限模式](https://code.claude.com/docs/zh-TW/cli-reference.md#cli-flags)啟動時,此更新同樣不會產生任何作用。


2289| `reason` | 當 `decision` 為 `"block"` 時向 Claude 顯示的說明 |2313| `reason` | 當 `decision` 為 `"block"` 時向 Claude 顯示的說明 |

2290| `additionalContext` | 與工具結果一併加入 Claude 上下文的字串。請參閱[為 Claude 新增上下文](#add-context-for-claude) |2314| `additionalContext` | 與工具結果一併加入 Claude 上下文的字串。請參閱[為 Claude 新增上下文](#add-context-for-claude) |

2291| `classifierContext` | 關於此呼叫結果的簡短註記,提供給[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器而非 Claude。請參閱[為自動模式分類器註記結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |2315| `classifierContext` | 關於此呼叫結果的簡短註記,提供給[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器而非 Claude。請參閱[為自動模式分類器註記結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |

2292| `updatedToolOutput` | 在將工具輸出傳送給 Claude 之前,以提供的值取代。該值必須符合工具的輸出結構 |2316| `updatedToolOutput` | 在傳送給 Claude 之前,以提供的值取代工具的輸出。該值必須符合工具的輸出結構。在 [Cowork](https://claude.com/docs/cowork/overview) 雲端工作階段中,當工具為 `AskUserQuestion` 或 `ExitPlanMode` 時,Claude Code 會忽略此欄位,Claude 會讀取原始的回答或計畫 |

2293| `updatedMCPToolOutput` | 僅取代 [MCP 工具](#match-mcp-tools)的輸出。建議改用適用於所有工具的 `updatedToolOutput` |2317| `updatedMCPToolOutput` | 僅取代 [MCP 工具](#match-mcp-tools)的輸出。建議使用 `updatedToolOutput`,它也適用於內建工具 |

2294 2318 

2295以下範例取代了 `Bash` 呼叫的輸出。取代值符合 `Bash` 工具的輸出結構:2319以下範例取代了 `Bash` 呼叫的輸出。取代值符合 `Bash` 工具的輸出結構:

2296 2320 

hooks-guide.md +1 −1

Details

964 964 

965> [!NOTE]965> [!NOTE]

966>966>

967> 如果您的機器沒有[受管設定](https://code.claude.com/docs/zh-TW/settings.md#check-what-your-organization-enforces),且您的工作階段未使用 Team 或 Enterprise 方案的 [`/login` 憑證](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence),[mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 可以核准您的 `PreToolUse` hook 已阻止的呼叫。改以 API 金鑰或長期有效的 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 執行的工作階段並未使用該登入,即使該登入已儲存也是如此。967> 您的機器可能沒有[受管設定](https://code.claude.com/docs/zh-TW/settings.md#check-what-your-organization-enforces)和 [`managed-mcp.json` 檔案](https://code.claude.com/docs/zh-TW/managed-mcp#deploy-managed-mcp-json),且您的工作階段可能未使用 Team 或 Enterprise 方案的 [`/login` 憑證](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence)。在這種設定下,[mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 可以核准您的 `PreToolUse` hook 已阻止的呼叫。改以 API 金鑰或長期有效的 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 執行的工作階段並未使用該登入,即使該登入已儲存也是如此。

968>968>

969> 在 plan mode 中,mod 只有在此類被阻止的呼叫為唯讀時才能核准它,因此不包括檔案編輯。關於 mod 的核准無法越過您的規則和 hook 的情況,請參閱[使用 hook 擴充權限](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。969> 在 plan mode 中,mod 只有在此類被阻止的呼叫為唯讀時才能核准它,因此不包括檔案編輯。關於 mod 的核准無法越過您的規則和 hook 的情況,請參閱[使用 hook 擴充權限](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。

970 970 

Details

251| `d`/`x` | 刪除選擇 |251| `d`/`x` | 刪除選擇 |

252| `y` | 複製選擇 |252| `y` | 複製選擇 |

253| `c`/`s` | 變更選擇 |253| `c`/`s` | 變更選擇 |

254| `p` | 用暫存器內容取代選擇 |254| `p`/`P` | 用暫存器內容取代選擇 |

255| `r{char}` | 將每個選定的字元取代為 `{char}` |255| `r{char}` | 將每個選定的字元取代為 `{char}` |

256| `~`/`u`/`U` | 切換、小寫或大寫選擇 |256| `~`/`u`/`U` | 切換、小寫或大寫選擇 |

257| `>`/`<` | 縮排或取消縮排選定的行 |257| `>`/`<` | 縮排或取消縮排選定的行 |


304 304 

305接受符合項目或取消搜尋會立即生效,即使 Claude Code 仍在載入歷史。305接受符合項目或取消搜尋會立即生效,即使 Claude Code 仍在載入歷史。

306 306 

307若要找出較早的提示詞,而您只記得曾在其中貼上某段很長的內容(例如錯誤日誌),請按 `Ctrl+R` 並輸入貼上內容中的某個字詞。需要 Claude Code v2.1.314 或更新版本。

308 

307## 背景 Bash 命令309## 背景 Bash 命令

308 310 

309Claude Code 支援在背景執行 Bash 命令,讓您可以在長時間執行的程序進行時繼續工作。311Claude Code 支援在背景執行 Bash 命令,讓您可以在長時間執行的程序進行時繼續工作。

keybindings.md +7 −7

Details

8 8 

9Claude Code 支援可自訂的鍵盤快捷鍵。執行 `/keybindings` 以在 `~/.claude/keybindings.json` 建立或開啟您的配置檔案。9Claude Code 支援可自訂的鍵盤快捷鍵。執行 `/keybindings` 以在 `~/.claude/keybindings.json` 建立或開啟您的配置檔案。

10 10 

11## 配置檔案11## 設定檔

12 12 

13快捷鍵配置檔案是一個包含 `bindings` 陣列的物件。每個區塊指定一個上下文和一個按鍵組合到動作的對應。13快捷鍵設定檔是一個包含 `bindings` 陣列的物件。每個區塊指定一個情境,以及按鍵與動作之間的對應。

14 14 

15> [!NOTE]15> [!NOTE]

16>16>

17> 快捷鍵檔案的變更會自動偵測並套用,無需重新啟動 Claude Code。17> 對快捷鍵檔案所做的變更會自動偵測並套用,無需重新啟動 Claude Code。

18 18 

19| 欄位 | 說明 |19| 欄位 | 說明 |

20| :- | :- |20| :- | :- |

21| `$schema` | 選用的 JSON Schema URL,用於編輯器自動完成 |21| `$schema` | 選用的 JSON Schema URL,用於編輯器自動完成 |

22| `$docs` | 選用的文件 URL |22| `$docs` | 選用的文件 URL |

23| `bindings` | 按上下文分組的繫結區塊陣列 |23| `bindings` | 依情境分組的綁定區塊陣列 |

24 24 

25此範例在聊天上下文中將 `Ctrl+E` 繫結到開啟外部編輯器,並取消繫結 `Ctrl+S`:25此範例將 `Ctrl+E` 綁定為在聊天情境中開啟外部編輯器,並解除 `Ctrl+S` 的綁定:

26 26 

27```json theme={null}27```json theme={null}

28{28{

29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

30 "$docs": "https://code.claude.com/docs/zh-TW/keybindings",30 "$docs": "https://code.claude.com/docs/en/keybindings",

31 "bindings": [31 "bindings": [

32 {32 {

33 "context": "Chat",33 "context": "Chat",


305 305 

306### 差異動作306### 差異動作

307 307 

308這些動作僅作用於 Claude Code 較早期的差異檢視器,也就是在您於 `/plugin` 中停用 [`cc-plugin-diff` mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code) 後,`/diff` 在[全螢幕渲染](https://code.claude.com/docs/zh-TW/fullscreen.md)以外開啟的檢視器。當該 mod 啟用時,`/diff` 會改為開啟[差異對話框](https://code.claude.com/docs/zh-TW/interactive-mode.md#diff-dialog)。無論哪種情況,指定這些動作的 `keybindings.json` 都能正常載入而不會出錯。308這些動作僅作用於 Claude Code 較早期的差異檢視器,也就是在您於 `/plugin` 中停用 [`cc-plugin-diff` mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code) 後,`/diff` 在[全螢幕渲染](https://code.claude.com/docs/zh-TW/fullscreen.md)以外開啟的檢視器。當該 mod 啟用時,`/diff` 會改為開啟[差異對話框](https://code.claude.com/docs/zh-TW/interactive-mode.md#diff-dialog)。

309 309 

310在 `DiffDialog` 情境中可用的動作:310在 `DiffDialog` 情境中可用的動作:

311 311 

Details

197* `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市場,然後重試安裝。197* `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市場,然後重試安裝。

198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本機的市集目錄副本可能已過期。請使用 `/plugin marketplace update claude-plugins-official` 重新整理,然後重試安裝。如果重試後顯示相同的訊息,請參閱[在市集中找不到外掛](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本機的市集目錄副本可能已過期。請使用 `/plugin marketplace update claude-plugins-official` 重新整理,然後重試安裝。如果重試後顯示相同的訊息,請參閱[在市集中找不到外掛](https://code.claude.com/docs/zh-TW/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

199 199 

200若要為儲存庫中的每個人啟用外掛而不是自己安裝,請將其添加到 [`enabledPlugins` 專案設定](https://code.claude.com/docs/zh-TW/settings-reference#plugin-settings)。200若要為儲存庫中的每個人啟用外掛,請將其添加到 [`enabledPlugins` 專案設定](https://code.claude.com/docs/zh-TW/settings-reference#plugin-settings)。每個人仍需[自行安裝](https://code.claude.com/docs/zh-TW/plugins/loading.md#enabled-in-project-settings-but-not-installed)。

201 201 

202程式碼智能外掛需要每個開發人員機器上的語言的語言伺服器二進位檔案。請參閱[每種語言需要哪個二進位檔案](https://code.claude.com/docs/zh-TW/plugins/code-intelligence.md)。從官方市場安裝需要網路存取 GitHub,市場在那裡託管。在受限網路上,[改為從內部 Git 主機或本地路徑添加市場](https://code.claude.com/docs/zh-TW/plugins/install.md#add-a-marketplace)。202程式碼智能外掛需要每個開發人員機器上的語言的語言伺服器二進位檔案。請參閱[每種語言需要哪個二進位檔案](https://code.claude.com/docs/zh-TW/plugins/code-intelligence.md)。從官方市場安裝需要網路存取 GitHub,市場在那裡託管。在受限網路上,[改為從內部 Git 主機或本地路徑添加市場](https://code.claude.com/docs/zh-TW/plugins/install.md#add-a-marketplace)。

203 203 


235 235 

236在 `sparsePaths` 中列出目錄,而不是個別檔案。根級檔案(如 `package.json`、`tsconfig.base.json` 和鎖定檔案)始終與您列出的目錄一起簽出。根級目錄不是,因此如果您想要儲存庫根目錄的 `.claude/settings.json` 或 `.claude/rules/` 在 worktree 內可用,請在清單中包含 `.claude`。對於專案 skills、agents 和命令,請參閱[worktrees 與主簽出共享的內容](https://code.claude.com/docs/zh-TW/worktrees.md#what-worktrees-share-with-the-main-checkout)。236在 `sparsePaths` 中列出目錄,而不是個別檔案。根級檔案(如 `package.json`、`tsconfig.base.json` 和鎖定檔案)始終與您列出的目錄一起簽出。根級目錄不是,因此如果您想要儲存庫根目錄的 `.claude/settings.json` 或 `.claude/rules/` 在 worktree 內可用,請在清單中包含 `.claude`。對於專案 skills、agents 和命令,請參閱[worktrees 與主簽出共享的內容](https://code.claude.com/docs/zh-TW/worktrees.md#what-worktrees-share-with-the-main-checkout)。

237 237 

238Sparse checkout 需要 git 在儲存庫的共享 `.git/config` 中啟用 `extensions.worktreeConfig`,同時存在 sparse worktree。Claude Code 在移除最後一個 worktree 後會移除該項目,但僅當 Claude Code 添加了它時。它永遠不會移除您自己設定的值。238> [!NOTE]

239>

240> Sparse checkout 需要 git 在儲存庫的共享 `.git/config` 中啟用 `extensions.worktreeConfig`,同時存在 sparse worktree。Claude Code 在移除最後一個 worktree 後會移除該項目,但僅當 Claude Code 添加了它時。

239 241 

240若要避免在 worktrees 中複製 `node_modules` 等大型目錄,請在同一 `.claude/settings.json` 中將 `sparsePaths` 與 `symlinkDirectories` 配對:242若要避免在 worktrees 中複製 `node_modules` 等大型目錄,請在同一 `.claude/settings.json` 中將 `sparsePaths` 與 `symlinkDirectories` 配對:

241 243 

Details

156 156 

157### 與現有登入的衝突157### 與現有登入的衝突

158 158 

159閘道認證變數優先於已保存的 claude.ai 登入或 Console 金鑰。您的 claude.ai 登入在設定變數時保持已保存且未使用;取消設定變數,Claude Code 會回到它。使用 `ANTHROPIC_AUTH_TOKEN` 時,變數立即優先。使用 `ANTHROPIC_API_KEY` 時,您在互動模式下被提示一次以批准金鑰,然後它接管。159閘道憑證變數優先於已保存的 claude.ai 登入或 Console 金鑰。使用 `ANTHROPIC_AUTH_TOKEN` 時,該變數會立即優先生效。使用 `ANTHROPIC_API_KEY` 時,系統會在互動模式下提示您一次以核准該金鑰,之後才會由其接管。

160 160 

161執行 `/status` 以確認哪個認證來源處於活動狀態。如果啟動顯示命名兩個來源的身份驗證衝突警告,請參閱[故障排除表](#troubleshoot-gateway-errors)的第一行以了解要刪除哪一個。要清除已保存的登入,以便只有閘道認證保留,請執行 `/logout`。161執行 `/status` 以確認哪個認證來源處於活動狀態。如果啟動顯示命名兩個來源的身份驗證衝突警告,請參閱[故障排除表](#troubleshoot-gateway-errors)的第一行以了解要刪除哪一個。要清除已保存的登入,以便只有閘道認證保留,請執行 `/logout`。

162 162 


378設定此變數有以下效果與限制:378設定此變數有以下效果與限制:

379 379 

380* 它會停用自動更新,因此請規劃其他更新途徑,例如套件管理員或受管發佈。380* 它會停用自動更新,因此請規劃其他更新途徑,例如套件管理員或受管發佈。

381* 它會抑制[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)的可用性檢查。除非先前的檢查已在該機器上啟用快速模式,否則 `/fast` 會回報快速模式無法使用。381* 它會抑制[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)的可用性檢查。在 Anthropic API 上,若 `/fast` 因此回報快速模式無法使用,請參閱[在代理伺服器與 LLM 閘道後方使用快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)以還原快速模式。

382* 它不會影響[閘道模型探索](#add-gateway-models-to-the-model-picker),因為探索僅查詢您的閘道。在 v2.1.257 之前,此變數也會阻止探索重新整理,因此選擇器會保留先前快取的清單。382* 它不會影響[閘道模型探索](#add-gateway-models-to-the-model-picker),因為探索僅查詢您的閘道。在 v2.1.257 之前,此變數也會阻止探索重新整理,因此選擇器會保留先前快取的清單。

383* WebFetch 工具的[網域安全檢查](https://code.claude.com/docs/zh-TW/data-usage.md#webfetch-domain-safety-check)不受影響,仍會呼叫 `api.anthropic.com`。若您的網路封鎖該主機,請在[設定](https://code.claude.com/docs/zh-TW/settings.md)中另外以 `skipWebFetchPreflight: true` 將其關閉。383* WebFetch 工具的[網域安全檢查](https://code.claude.com/docs/zh-TW/data-usage.md#webfetch-domain-safety-check)不受影響,仍會呼叫 `api.anthropic.com`。若您的網路封鎖該主機,請在[設定](https://code.claude.com/docs/zh-TW/settings.md)中另外以 `skipWebFetchPreflight: true` 將其關閉。

384* 關於各個遙測串流及控制它的變數,請參閱[遙測服務](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services)。384* 關於各個遙測串流及控制它的變數,請參閱[遙測服務](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services)。

Details

251 251 

252* 登入提示表示認證間隙。執行 `/status` 並開啟 **Status** 標籤:當 `Setting sources` 行不包括受管設定時,分發未到達機器;當它包括時,開發者認證未被傳遞,因此設定 `ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper`252* 登入提示表示認證間隙。執行 `/status` 並開啟 **Status** 標籤:當 `Setting sources` 行不包括受管設定時,分發未到達機器;當它包括時,開發者認證未被傳遞,因此設定 `ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper`

253* `Failed to authenticate` 錯誤表示閘道拒絕請求;其日誌說明哪個認證失敗。閘道自己記錄的拒絕命名開發者金鑰,而來自 `api.anthropic.com` 或您的提供者端點的 `401` 表示閘道持有的提供者認證被拒絕253* `Failed to authenticate` 錯誤表示閘道拒絕請求;其日誌說明哪個認證失敗。閘道自己記錄的拒絕命名開發者金鑰,而來自 `api.anthropic.com` 或您的提供者端點的 `401` 表示閘道持有的提供者認證被拒絕

254* 當閘道期望金鑰在 `x-api-key` 標頭中時,首次使用時的一次性核准提示是預期的,設定為 `ANTHROPIC_API_KEY`。使用 `ANTHROPIC_AUTH_TOKEN`,不會出現提示,變數會無聲地接管;先前保存的 claude.ai 登入對該工作階段無效254* 當閘道期望金鑰在 `x-api-key` 標頭中(設定為 `ANTHROPIC_API_KEY`)時,首次使用時出現一次性的金鑰核准提示是預期的

255 255 

256如果您的組織使用[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md),請在此處也執行 `/fast`:可用性檢查直接呼叫 `api.anthropic.com` 而不是遵循閘道基本 URL,因此閘道路由的工作階段可以報告快速模式為不可用或已停用,即使推理有效。[在代理和 LLM 閘道後面使用快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)將每個訊息對應到恢復它的變數,與[配置的其餘部分](#distribute-the-configuration)一起分發。256如果您的組織使用[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md),請在此處也執行 `/fast`:可用性檢查直接呼叫 `api.anthropic.com` 而不是遵循閘道基本 URL,因此閘道路由的工作階段可以報告快速模式為不可用或已停用,即使推理有效。[在代理和 LLM 閘道後面使用快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)將每個訊息對應到恢復它的變數,與[配置的其餘部分](#distribute-the-configuration)一起分發。

257 257 

managed-mcp.md +1 −1

Details

187 187 

188* `type` 是 `http` 或 `sse`。如同在 `.mcp.json` 中,`streamable-http` 被接受為 `http` 的別名。188* `type` 是 `http` 或 `sse`。如同在 `.mcp.json` 中,`streamable-http` 被接受為 `http` 的別名。

189* `url` 是 `https://` URL。Claude Code 拒絕純 `http://` URL,包括指向 `localhost` 的 URL。189* `url` 是 `https://` URL。Claude Code 拒絕純 `http://` URL,包括指向 `localhost` 的 URL。

190* 該項目沒有 `command`、`args`、`env` 或 `headersHelper` 成員,因此受管設定文件永遠不會命名要在使用者機器上執行的程式。190* 該項目沒有 `command`、`args`、`env` 或 `headersHelper` 成員。

191* 沒有值包含 `${VAR}` 參考。Claude Code 不會在這些項目中展開環境變數,因此請寫入字面值。191* 沒有值包含 `${VAR}` 參考。Claude Code 不會在這些項目中展開環境變數,因此請寫入字面值。

192* 伺服器名稱只包含字母、數字、連字號和底線,且沒有金鑰或值包含控制或隱形格式字元。192* 伺服器名稱只包含字母、數字、連字號和底線,且沒有金鑰或值包含控制或隱形格式字元。

193 193 

mcp.md +215 −217

Details

64 64 

65### 選項 1:新增遠端 HTTP 伺服器65### 選項 1:新增遠端 HTTP 伺服器

66 66 

67HTTP 伺服器是連線至遠端 MCP 伺服器的建議選項。這是雲端服務支援最廣泛的傳輸方式。67HTTP 伺服器是連線到遠端 MCP 伺服器的建議選項。這是雲端服務中支援最廣泛的傳輸方式。

68 68 

69```bash theme={null}69```bash theme={null}

70# Basic syntax70# Basic syntax


78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"

79```79```

80 80 

81透過 `.mcp.json`、`~/.claude.json` 或 `claude mcp add-json` 中的 JSON 設定 MCP 伺服器時,`type` 欄位接受 `streamable-http` 作為 `http` 的別名。MCP 規格使用 `streamable-http` 這個名稱來稱呼此傳輸方式,因此從伺服器文件複製的設定無需修改即可運作。81透過 `.mcp.json`、`~/.claude.json` 或 `claude mcp add-json` 中的 JSON 設定 MCP 伺服器時,`type` 欄位接受 `streamable-http` 作為 `http` 的別名。MCP 規格將此傳輸方式命名為 `streamable-http`,因此從伺服器文件複製的設定無須修改即可使用。

82 82 

83具有 `url` 但沒有 `type` 的 JSON 項目屬於設定錯誤,因為 Claude Code 會將沒有 `type` 的項目視為 stdio 伺服器。Claude Code 會略過該伺服器並回報 `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`。83具有 `url` 但沒有 `type` 的 JSON 項目屬於設定錯誤,因為 Claude Code 會將沒有 `type` 的項目讀取為 stdio 伺服器。Claude Code 會略過該伺服器並回報 `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`。

84 84 

85只有 SDK 主機應用程式,例如 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md) 應用程式或[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md),才能註冊行程內的 `"type": "sdk"` 伺服器。Claude Code 會略過 `.mcp.json`、`~/.claude.json` 或設定中的 `"type": "sdk"` 項目,並回報 `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`。85只有 SDK 主機應用程式,例如 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md) 應用程式或[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md),才能註冊程序內的 `"type": "sdk"` 伺服器。Claude Code 會略過 `.mcp.json`、`~/.claude.json` 或設定中的 `"type": "sdk"` 項目,並回報 `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`。

86 86 

87> [!NOTE]87> [!NOTE]

88>88>


92 92 

93> [!WARNING]93> [!WARNING]

94>94>

95> SSE(Server-Sent Events)傳輸方式已棄用。若可行,請改用 HTTP 伺服器。95> SSE(Server-Sent Events)傳輸方式已棄用。可行時請改用 HTTP 伺服器。

96 96 

97有些服務仍只提供 SSE 端點。請使用與 [HTTP 伺服器](#option-1-add-a-remote-http-server)相同的 `claude mcp add --transport http <name> <url>` 命令來新增這類伺服器。Claude Code 會先嘗試 HTTP 傳輸方式,並在伺服器不接受時切換為 SSE。自動切換需要 Claude Code v2.1.265 或更新版本。97部分服務仍只提供 SSE 端點。請使用與[HTTP 伺服器](#option-1-add-a-remote-http-server)相同的 `claude mcp add --transport http <name> <url>` 命令新增這些伺服器。Claude Code 會先嘗試 HTTP 傳輸,並在伺服器不接受時切換為 SSE。自動切換需要 Claude Code v2.1.265 或更新版本。

98 98 

99若使用較早的版本,或要直接透過 SSE 連線,請改為傳入 `--transport sse`:99在較早的版本上,或要直接透過 SSE 連線時,請改為傳入 `--transport sse`:

100 100 

101```bash theme={null}101```bash theme={null}

102# Basic syntax102# Basic syntax


112 112 

113### 選項 3:新增本機 stdio 伺服器113### 選項 3:新增本機 stdio 伺服器

114 114 

115Stdio 伺服器以本機程序的形式在您的電腦上執行。它們非常適合需要直接存取系統的工具或自訂指令碼。115Stdio 伺服器會以本機程序的形式在您的電腦上執行。它們非常適合需要直接存取系統的工具或自訂指令碼。

116 116 

117Claude Code 會在所啟動伺服器的環境中將 `CLAUDE_PROJECT_DIR` 設為專案根目錄,讓您的伺服器能解析相對於專案的路徑,而不必依賴工作目錄。這與 hook 在其 `CLAUDE_PROJECT_DIR` 變數中收到的目錄相同。請在伺服器程序內讀取它,例如在 Node 中使用 `process.env.CLAUDE_PROJECT_DIR`,或在 Python 中使用 `os.environ["CLAUDE_PROJECT_DIR"]`。117Claude Code 會在所啟動伺服器的環境中將 `CLAUDE_PROJECT_DIR` 設為專案根目錄,讓您的伺服器能解析相對於專案的路徑,而不必依賴工作目錄。這與 hook 在其 `CLAUDE_PROJECT_DIR` 變數中收到的目錄相同。請從伺服器程序內部讀取它,例如在 Node 中使用 `process.env.CLAUDE_PROJECT_DIR`,或在 Python 中使用 `os.environ["CLAUDE_PROJECT_DIR"]`。

118 118 

119`CLAUDE_PROJECT_DIR` 是固定的專案根目錄,在工作階段中途新增或移除工作目錄時不會改變。若伺服器要將自身的檔案系統存取限制在一組允許的目錄內,應改為實作 MCP `roots/list` 請求。Claude Code 會以工作階段的啟動目錄,加上您透過 `--add-dir`、`/add-dir` 或 `additionalDirectories` 設定授予的每個[額外工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#working-directories)來回應 `roots/list`。當該集合變更時,Claude Code 會傳送 `notifications/roots/list_changed`。119`CLAUDE_PROJECT_DIR` 是穩定的專案根目錄,在工作階段中途新增或移除工作目錄時不會改變。將自身檔案系統存取限制在一組允許目錄內的伺服器,應改為實作 MCP `roots/list` 請求。Claude Code 會以工作階段的啟動目錄,加上您透過 `--add-dir`、`/add-dir` 或 `additionalDirectories` 設定授予的每個[額外工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#working-directories)來回應 `roots/list`。當該集合變更時,Claude Code 會傳送 `notifications/roots/list_changed`。

120 120 

121此變數設定在伺服器的環境中,而非 Claude Code 本身的環境中,因此若要在專案範圍 `.mcp.json` 項目,或 `~/.claude.json` 中本機或使用者範圍伺服器項目的 `command` 或 `args` 中透過 `${VAR}` 展開來參照它,需要提供預設值,例如 `${CLAUDE_PROJECT_DIR:-.}`。外掛提供的 MCP 設定會直接替換 `${CLAUDE_PROJECT_DIR}`,不需要預設值。121此變數是設定在伺服器的環境中,而非 Claude Code 本身的環境中,因此若要在專案範圍 `.mcp.json` 項目,或 `~/.claude.json` 中本機或使用者範圍伺服器項目的 `command` 或 `args` 中,透過 `${VAR}` 展開參照它,就需要提供預設值,例如 `${CLAUDE_PROJECT_DIR:-.}`。外掛提供的 MCP 設定會直接替換 `${CLAUDE_PROJECT_DIR}`,不需要預設值。

122 122 

123```bash theme={null}123```bash theme={null}

124# Basic syntax124# Basic syntax


131 131 

132> [!NOTE]132> [!NOTE]

133>133>

134> 對於 stdio 伺服器,`--`(雙破折號)會將 Claude 本身的選項(例如 `--transport`、`--env` 和 `--scope`)與執行伺服器的命令和引數分隔開來。`--` 之後的所有內容都會原封不動地傳遞給伺服器。134> 對於 stdio 伺服器,`--`(雙破折號)會將 Claude 本身的選項(例如 `--transport`、`--env` 和 `--scope`)與執行伺服器的命令和引數分隔開來。`--` 之後的所有內容都會原封不動地傳給伺服器。

135>135>

136> 例如:136> 例如:

137>137>

138> * `claude mcp add --transport stdio myserver -- npx server` → 執行 `npx server`138> * `claude mcp add --transport stdio myserver -- npx server` → 執行 `npx server`

139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → 在環境中帶有 `KEY=value` 的情況下執行 `python server.py --port 8080`139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → 在環境中帶有 `KEY=value` 的情況下執行 `python server.py --port 8080`

140>140>

141> 若沒有 `--`,Claude Code 會嘗試將伺服器的旗標(例如上方的 `--port`)當作自己的選項來解析。141> 若沒有 `--`,Claude Code 會嘗試將伺服器的旗標(例如上方的 `--port`)解析為自己的選項。

142>142>

143> `--env` 接受多個 `KEY=value` 配對。若伺服器名稱直接接在 `--env` 之後,CLI 會將該名稱讀取為另一個配對並予以拒絕,因此請在 `--env` 與伺服器名稱之間至少放置一個其他選項,例如 `--transport stdio`。143> `--env` 接受多組 `KEY=value`。若伺服器名稱緊接在 `--env` 之後,CLI 會將該名稱讀取為另一組鍵值並拒絕它,因此請在 `--env` 與伺服器名稱之間放置至少一個其他選項,例如 `--transport stdio`。

144 144 

145#### Claude Code 如何停止 stdio 伺服器145#### Claude Code 如何停止 stdio 伺服器

146 146 

147當 Claude Code 中斷與 stdio 伺服器的連線時(例如工作階段結束時),它會向伺服器程序發送訊號,並短暫等待其結束,然後才強制停止。若您的伺服器會在關閉時儲存狀態或移除鎖定檔案,請處理您平台的訊號,並在該時間內完成:147當 Claude Code 中斷 stdio 伺服器的連線時(例如工作階段結束時),它會向伺服器程序傳送訊號,並短暫等待其結束,之後才強制停止。如果您的伺服器會在關閉時儲存狀態或移除鎖定檔,請處理您平台上的訊號,並在該時間內完成:

148 148 

149* **在 macOS 和 Linux 上**:Claude Code 會傳送 `SIGINT`,若 100 毫秒後程序仍在執行則傳送 `SIGTERM`,再過 400 毫秒後傳送 `SIGKILL`。149* **在 macOS 和 Linux 上**:Claude Code 會傳送 `SIGINT`,若程序在 100 毫秒後仍在執行則傳送 `SIGTERM`,再過 400 毫秒後傳送 `SIGKILL`。

150* **在 Windows 上**:Claude Code 會關閉伺服器的 stdin,若 300 毫秒後程序仍在執行,則結束伺服器的程序樹。150* **在 Windows 上**:Claude Code 會關閉伺服器的 stdin,若程序在 300 毫秒後仍在執行,則結束伺服器的程序樹。

151 151 

152在 v2.1.296 之前,Windows 上的 Claude Code 會立即結束伺服器的程序樹,而不會先關閉 stdin 或等待。152在 v2.1.296 之前,Windows 上的 Claude Code 會立即結束伺服器的程序樹,不會先關閉 stdin 或等待。

153 153 

154### 選項 4:新增遠端 WebSocket 伺服器154### 選項 4:新增遠端 WebSocket 伺服器

155 155 


162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

163```163```

164 164 

165`type: "ws"` 項目接受與 `http` 相同的 `url`、`headers`、`headersHelper`、`timeout` 和 `alwaysLoad` 欄位。身分驗證僅透過標頭進行,因此請在 `headers` 中傳入靜態 token,或在連線時使用 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 產生 token。`claude mcp add --transport` 旗標不接受 `ws`。165`type: "ws"` 項目接受與 `http` 相同的 `url`、`headers`、`headersHelper`、`timeout` 和 `alwaysLoad` 欄位。身分驗證僅透過標頭進行,因此請在 `headers` 中傳入靜態 token,或在連線時透過 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 產生。`claude mcp add --transport` 旗標不接受 `ws`。

166 166 

167### 從為其他用戶端撰寫的設定說明新增伺服器167### 依據為其他用戶端撰寫的設定說明新增伺服器

168 168 

169MCP 伺服器並非 Claude Code 專屬,因此伺服器的設定說明可能是為 Claude Desktop、Cursor 或其他 MCP 用戶端撰寫,且未提供 `claude mcp add` 命令。若仍要新增該伺服器,請在這些說明中尋找 URL、啟動命令或 JSON 區塊:169MCP 伺服器並非 Claude Code 專屬,因此伺服器的設定說明可能是為 Claude Desktop、Cursor 或其他 MCP 用戶端撰寫的,且未提供 `claude mcp add` 命令。若仍要新增該伺服器,請在這些說明中尋找 URL、啟動命令或 JSON 區塊:

170 170 

171* **URL**,例如 `https://mcp.example.com/mcp`:伺服器位於遠端。171* **URL**,例如 `https://mcp.example.com/mcp`:伺服器為遠端伺服器。

172* **啟動命令**,例如 `npx -y @example/mcp-server`:伺服器在您的電腦上執行。172* **啟動命令**,例如 `npx -y @example/mcp-server`:伺服器在您的電腦上執行。

173* **`mcpServers` JSON 區塊**:為其他用戶端的設定檔撰寫的設定。173* **`mcpServers` JSON 區塊**:為其他用戶端設定檔撰寫的設定。

174 174 

175每一種都是[安裝 MCP 伺服器](#installing-mcp-servers)中四個選項所接受的輸入之一。請在下方找到您所擁有的形式,將其轉換為 Claude Code 接受的命令。除非您加上 `--scope project` 或 `--scope user`,否則每個命令都會寫入[本機範圍](#local-scope)。175每一種都是[安裝 MCP 伺服器](#installing-mcp-servers)中四個選項所接受的輸入之一。請在下方找到您手上的形式,將其轉換為 Claude Code 接受的命令。除非您加上 `--scope project` 或 `--scope user`,否則每個命令都會寫入[本機範圍](#local-scope)。

176 176 

177#### 從 URL 新增伺服器177#### 從 URL 新增伺服器

178 178 

179URL 表示伺服器位於遠端。對於 `https://` 端點,請使用 `--transport http` 新增;若說明指出端點使用 SSE,則依照[選項 2](#option-2-add-a-remote-sse-server) 操作。對於 `wss://` 端點,請改用[選項 4](#option-4-add-a-remote-websocket-server),因為 `--transport` 不接受 `ws`:179URL 表示伺服器為遠端伺服器。對於 `https://` 端點,請使用 `--transport http` 新增;若說明指出該端點使用 SSE,則請依照[選項 2](#option-2-add-a-remote-sse-server)。對於 `wss://` 端點,請改用[選項 4](#option-4-add-a-remote-websocket-server),因為 `--transport` 不接受 `ws`:

180 180 

181```bash theme={null}181```bash theme={null}

182claude mcp add --transport http example https://mcp.example.com/mcp182claude mcp add --transport http example https://mcp.example.com/mcp

183```183```

184 184 

185若說明還提供了 API 金鑰或 token 標頭,請如[選項 1](#option-1-add-a-remote-http-server) 所示,使用 `--header` 傳入。185若說明也提供了 API 金鑰或 token 標頭,請如[選項 1](#option-1-add-a-remote-http-server)所示,使用 `--header` 傳入。

186 186 

187#### 從 `npx`、`uvx` 或二進位檔命令新增伺服器187#### 從 `npx`、`uvx` 或二進位命令新增伺服器

188 188 

189啟動命令表示伺服器以本機 stdio 程序的形式執行。請將整個命令放在 `--` 之後,讓 Claude Code 將 `-y` 等旗標傳遞給啟動伺服器的命令,而不是將其讀取為自己的選項。請在伺服器名稱之後、`--` 之前,使用 `--env` 傳入說明要求的任何環境變數:189啟動命令表示伺服器以本機 stdio 程序執行。請將整個命令放在 `--` 之後,讓 Claude Code 將 `-y` 之類的旗標傳給啟動伺服器的命令,而不是將其讀取為自己的選項。請使用 `--env` 傳入說明要求的任何環境變數,放在伺服器名稱之後、`--` 之前:

190 190 

191```bash theme={null}191```bash theme={null}

192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server


196 196 

197#### 從 `mcpServers` JSON 區塊新增伺服器197#### 從 `mcpServers` JSON 區塊新增伺服器

198 198 

199為其他 MCP 用戶端(例如 Claude Desktop)撰寫的 `mcpServers` 區塊,使用的是 Claude Code 可讀取的包裝鍵與項目形式。請將 `mcpServers` 內部的物件(而非包裝層)傳給 `claude mcp add-json`。有兩種項目需要先修正:199為其他 MCP 用戶端(例如 Claude Desktop)撰寫的 `mcpServers` 區塊,使用的是 Claude Code 可讀取的外層鍵與項目結構。請將 `mcpServers` 內部的物件傳給 `claude mcp add-json`,而非外層包裝。有兩種項目需要先修正:

200 200 

201* **有 `url` 但沒有 `type`**:依端點加上 `"type": "http"`、`"type": "sse"` 或 `"type": "ws"`。Claude Code 會將沒有 `type` 的項目視為 stdio 伺服器,因此沒有 `type` 的 `url` 項目會失敗。201* **具有 `url` 但沒有 `type`**:依端點加上 `"type": "http"`、`"type": "sse"` 或 `"type": "ws"`。Claude Code 會將沒有 `type` 的項目讀取為 stdio 伺服器,因此沒有 `type` 的 `url` 項目會失敗。

202* **鍵包含字母、數字、連字號和底線以外的字元**:請選擇只使用這些字元的伺服器名稱。否則,該鍵即為伺服器名稱。202* **鍵名含有字母、數字、連字號和底線以外的字元**:請挑選只使用這些字元的伺服器名稱。否則,鍵名即為伺服器名稱。

203 203 

204例如,這個區塊:204例如,這個區塊:

205 205 


220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

221```221```

222 222 

223[從 JSON 設定新增 MCP 伺服器](#add-mcp-servers-from-json-configuration)說明了 shell 跳脫處理以及 `add-json` 的 `--scope` 旗標。若要改為與團隊共用該伺服器,請加上 `--scope project`,或將該項目新增至專案根目錄中 `.mcp.json` 的 `mcpServers` 下並提交。[專案範圍](#project-scope)說明了 Claude Code 如何載入及核准該檔案。223[從 JSON 設定新增 MCP 伺服器](#add-mcp-servers-from-json-configuration)說明了 shell 跳脫字元以及 `add-json` 的 `--scope` 旗標。若要改為與團隊共用該伺服器,請加上 `--scope project`,或將該項目加到專案根目錄中 `.mcp.json` 的 `mcpServers` 下並提交。[專案範圍](#project-scope)說明了 Claude Code 如何載入並核准該檔案。

224 224 

225每個 `claude mcp add` 和 `claude mcp add-json` 命令成功時都會印出一行 `Added ...`。若要確認 Claude Code 已連線,請執行 `claude mcp get <name>`;[伺服器狀態](#server-status)說明了它所顯示的狀態,以及 `.mcp.json` 伺服器的核准步驟。225每個 `claude mcp add` 和 `claude mcp add-json` 命令成功時都會印出一行 `Added ...`。若要確認 Claude Code 已連線,請執行 `claude mcp get <name>`;[伺服器狀態](#server-status)說明了它顯示的狀態以及 `.mcp.json` 伺服器的核准步驟。

226 226 

227### 管理您的伺服器227### 管理您的伺服器

228 228 


242/mcp242/mcp

243```243```

244 244 

245當您移除遠端伺服器時,Claude Code 也會刪除為該伺服器儲存的 OAuth token 與用戶端註冊資訊。Claude Code 不會在核發這些 token 的授權伺服器上撤銷它們。若授權伺服器支援撤銷,要在該處撤銷 token,請在 `claude mcp remove <name>` 之前,於 shell 中執行 [`claude mcp logout <name>`](#authenticate-from-the-command-line)。245當您移除遠端伺服器時,Claude Code 也會刪除它為該伺服器儲存的 OAuth token 和用戶端註冊。Claude Code 不會在核發這些 token 的授權伺服器上撤銷它們。若授權伺服器支援撤銷,要撤銷這些 token,請在 `claude mcp remove <name>` 之前,於 shell 中執行 [`claude mcp logout <name>`](#authenticate-from-the-command-line)。

246 246 

247#### 伺服器狀態247#### 伺服器狀態

248 248 

249`claude mcp add` 會印出一行 `Added ...` 以確認新增成功,這表示設定已寫入。若命令改為印出 `was not saved` 訊息,請參閱 [MCP server was not saved or removed](https://code.claude.com/docs/zh-TW/errors.md#mcp-server-was-not-saved-or-removed);若為 `may not have been saved` 訊息,請參閱 [MCP server may not have been saved or removed](https://code.claude.com/docs/zh-TW/errors.md#mcp-server-may-not-have-been-saved-or-removed)。249`claude mcp add` 會印出一行 `Added ...` 來確認新增成功,表示設定已寫入。若命令改為印出 `was not saved` 訊息,請參閱 [MCP 伺服器未被儲存或移除](https://code.claude.com/docs/zh-TW/errors.md#mcp-server-was-not-saved-or-removed);若是 `may not have been saved` 訊息,請參閱 [MCP 伺服器可能未被儲存或移除](https://code.claude.com/docs/zh-TW/errors.md#mcp-server-may-not-have-been-saved-or-removed)。

250 250 

251`claude mcp list` 會在列出的每個伺服器旁顯示健康狀態,例如 `✔ Connected`、`! Needs authentication` 或 `✘ Failed to connect`。失敗狀態表示 Claude Code 無法連線至該伺服器,而不是 list 命令失敗。251`claude mcp list` 會在列出的每個伺服器旁顯示健康狀態,例如 `✔ Connected`、`! Needs authentication` 或 `✘ Failed to connect`。失敗狀態表示 Claude Code 無法連線到該伺服器,而不是 list 命令本身失敗。

252 252 

253以下清單中的狀態回報的是設定上的決定,而非連線嘗試,因此 Claude Code 會在不連線至伺服器的情況下印出它們:253以下清單中的狀態回報的是設定上的決定,而非連線嘗試,因此 Claude Code 會在不連線到伺服器的情況下印出它們:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``:來自 `.mcp.json`、您尚未核准的專案範圍伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請以互動方式執行 `claude` 來檢閱並核准它。255* ``⏸ Pending approval (run `claude` to approve)``:來自 `.mcp.json`、您尚未核准的專案範圍伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請以互動方式執行 `claude` 來檢視並核准它。

256* `✘ Rejected (see disabledMcpjsonServers in settings)`:被 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目拒絕的 `.mcp.json` 伺服器。Claude Code 只會在 `claude mcp get <name>` 中顯示它。256* `✘ Rejected (see disabledMcpjsonServers in settings)`:被 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目拒絕的 `.mcp.json` 伺服器。Claude Code 只會在 `claude mcp get <name>` 中顯示它。

257* `⊘ Disabled for this project (re-enable via /mcp)`:專案的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 清單中列出的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請從 `/mcp` 面板重新啟用該伺服器。257* `⊘ Disabled for this project (re-enable via /mcp)`:專案的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 清單中列出的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。請從 `/mcp` 面板重新開啟該伺服器。

258* `✘ Blocked by enterprise managed policy`:被您組織的某項政策拒絕的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示此狀態。被[受管 MCP 設定](https://code.claude.com/docs/zh-TW/managed-mcp.md#how-restrictions-appear-to-users)中的允許清單、拒絕清單或其他限制封鎖的伺服器,會在兩個命令中都被隱藏,而不是以此狀態顯示。請詢問您的管理員是哪項政策封鎖了該伺服器。258* `✘ Blocked by enterprise managed policy`:被您組織的某項政策拒絕的伺服器。Claude Code 會在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。被[受管 MCP 設定](https://code.claude.com/docs/zh-TW/managed-mcp.md#how-restrictions-appear-to-users)中的允許清單、拒絕清單或其他限制封鎖的伺服器,會在這兩個命令中都被隱藏,而不是以此狀態顯示。請詢問您的管理員是哪項政策封鎖了該伺服器。

259 259 

260#### 專案伺服器核准與工作區信任260#### 專案伺服器核准與工作區信任

261 261 

262在您於工作區中執行 `claude` 並接受工作區信任對話框以信任該工作區之前,`claude mcp list` 和 `claude mcp get` 只會從未簽入儲存庫的設定檔讀取 `.mcp.json` 核准。複製下來的儲存庫無法核准自己的伺服器:在未受信任的資料夾中,提交至專案 `.claude/settings.json` 的 [`enableAllProjectMcpServers`](https://code.claude.com/docs/zh-TW/settings-reference#enableallprojectmcpservers) 或 [`enabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#enabledmcpjsonservers) 會被忽略,伺服器會停留在 `⏸ Pending approval`,而不會被連線並進行健康檢查。262在您於工作區中執行 `claude` 並接受工作區信任對話框來信任該工作區之前,`claude mcp list` 和 `claude mcp get` 只會從未簽入儲存庫的設定檔讀取 `.mcp.json` 核准。複製下來的儲存庫無法核准它自己的伺服器:提交到專案 `.claude/settings.json` 中的 [`enableAllProjectMcpServers`](https://code.claude.com/docs/zh-TW/settings-reference#enableallprojectmcpservers) 或 [`enabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#enabledmcpjsonservers) 在未受信任的資料夾中會被忽略,伺服器會停留在 `⏸ Pending approval`,而不會被連線和進行健康檢查。

263 263 

264來自以下來源的核准在未受信任的資料夾中仍然適用:264來自以下來源的核准在未受信任的資料夾中仍然適用:

265 265 


267* 受管設定267* 受管設定

268* 透過 `--settings` 傳入的設定268* 透過 `--settings` 傳入的設定

269 269 

270Claude Code 也會套用來自未追蹤的 `.claude/settings.local.json` 的核准,但它會執行 git 來檢查該檔案是否被追蹤,而且只會在[受信任的資料夾](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)中執行該檢查。在您從未信任過的資料夾中,Claude Code 會等待信任對話框後才套用該檔案的核准,除非該資料夾是您自己的設定主目錄:也就是您的家目錄,或其 `.claude` 已被您設為 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars) 的目錄。在 v2.1.207 之前,即使在您從未信任過的資料夾中,Claude Code 也會套用來自未追蹤的 `.claude/settings.local.json` 的核准。270Claude Code 也會套用來自未追蹤之 `.claude/settings.local.json` 的核准,但它會執行 git 來檢查該檔案是否受追蹤,且只會在[受信任的資料夾](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)中執行該檢查。在您從未信任過的資料夾中,Claude Code 會等待信任對話框後才套用該檔案的核准,除非該資料夾是您自己的設定主目錄:您的家目錄,或其 `.claude` 已被您設為 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars) 的目錄。在 v2.1.207 之前,即使在您從未信任過的資料夾中,Claude Code 也會套用來自未追蹤之 `.claude/settings.local.json` 的核准。

271 271 

272任何設定檔中的 `disabledMcpjsonServers` 項目仍會拒絕該伺服器。272任何設定檔中的 `disabledMcpjsonServers` 項目仍會拒絕該伺服器。

273 273 

274#### 伺服器狀態詳細資訊274#### 伺服器狀態詳細資訊

275 275 

276在 `/mcp`(包括其中的伺服器選單)以及 [`/plugin`](https://code.claude.com/docs/zh-TW/plugins/install) 管理器中,您先前使用過的遠端 HTTP 或 SSE 伺服器可能會顯示 `cached` 狀態,例如 `cached 2h ago · connects on first use · 5 tools`。Claude Code 是從先前工作階段儲存的探索快取中載入伺服器的工具清單,而非在啟動時連線,並會在 Claude 第一次呼叫該伺服器的某個工具時連線該伺服器。這些工具從您的第一則訊息開始就可使用,因此您無需執行任何操作。探索快取及其 `cached` 狀態需要 Claude Code v2.1.221 或更新版本。276在 `/mcp`(包括其中伺服器的選單)以及 [`/plugin`](https://code.claude.com/docs/zh-TW/plugins/install) 管理員中,您先前使用過的遠端 HTTP 或 SSE 伺服器可能會顯示 `cached` 狀態,例如 `cached 2h ago · connects on first use · 5 tools`。Claude Code 是從先前工作階段儲存的探索快取載入該伺服器的工具清單,而非在啟動時連線,並會在 Claude 第一次呼叫該伺服器的某個工具時連線該伺服器。這些工具從您的第一則訊息起就可使用,因此您無須做任何事。探索快取及其 `cached` 狀態需要 Claude Code v2.1.221 或更新版本。

277 277 

278除非逐步推出已為您的帳戶啟用,否則探索快取預設為關閉。設定 [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/zh-TW/env-vars) 可將其開啟,或設為 `0` 以在推出已啟用時仍保持關閉。在 v2.1.238 之前,快取預設為開啟。278除非逐步推出已為您的帳戶啟用,否則探索快取預設為關閉。將 [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/zh-TW/env-vars) 設定為開啟,或設為 `0`,即使推出已啟用也保持關閉。在 v2.1.238 之前,快取預設為開啟。

279 279 

280當您從 `/mcp` 中伺服器的選單選取 **Disable** 或 **Clear authentication** 時,Claude Code 也會捨棄該伺服器的快取項目。對已連線或失敗的伺服器,**Reconnect** 也會捨棄它;對 `cached` 伺服器,**Reconnect** 會立即連線伺服器並保留該項目。捨棄項目後,Claude Code 下次連線至該伺服器時,會從伺服器而非快取擷取工具清單。280當您從 `/mcp` 中伺服器的選單選取 **Disable** 或 **Clear authentication** 時,Claude Code 也會捨棄該伺服器的快取項目。在已連線或失敗的伺服器上,**Reconnect** 也會捨棄它;在 `cached` 伺服器上,**Reconnect** 會立即連線該伺服器並保留該項目。捨棄項目後,Claude Code 下次連線到該伺服器時,會從伺服器而非快取擷取工具清單。

281 281 

282##### 連線失敗與未設定的伺服器282##### 連線失敗與未設定的伺服器

283 283 

284當伺服器的狀態為 `✘ Failed to connect` 時,`claude mcp list` 會將失敗詳細資訊附加在該狀態行後,而 `claude mcp get <name>` 會在 `Issue:` 行中顯示它。詳細資訊為 HTTP 狀態或錯誤碼,加上伺服器傳回的任何錯誤文字。`/mcp` 中伺服器的詳細檢視會在其 `Issue:` 列中包含相同的伺服器回報文字。284當伺服器的狀態為 `✘ Failed to connect` 時,`claude mcp list` 會在該狀態行後附加失敗詳細資訊,而 `claude mcp get <name>` 會在 `Issue:` 行中顯示。詳細資訊為 HTTP 狀態碼或錯誤碼,以及伺服器傳回的任何錯誤文字。`/mcp` 中伺服器的詳細資訊檢視,會在其 `Issue:` 列中包含相同的伺服器回報文字。

285 285 

286Claude Code 會從這些詳細資訊中遮蔽類似憑證的文字,且永遠不會包含展開後的伺服器 URL,因為其中可能帶有機密資訊。Claude Code 不會在 `✘ Connection error` 狀態後附加任何詳細資訊,因為它在該處會印出的例外文字可能內嵌該 URL。286Claude Code 會從此詳細資訊中遮蔽類似憑證的文字,且絕不包含可能帶有機密的展開後伺服器 URL。Claude Code 不會在 `✘ Connection error` 狀態後附加詳細資訊,因為它在那裡會印出的例外文字可能內嵌該 URL。

287 287 

288當您從 `/mcp` 完成身分驗證,但連線仍因 HTTP 狀態或傳輸錯誤代碼而失敗時,Claude Code 會在嘗試後印出的訊息中加入該代碼以及伺服器 URL 的來源。來源是指通訊協定與主機,若 URL 有指定連接埠則加上連接埠,例如 `https://mcp.example.com`。288當您從 `/mcp` 完成身分驗證,而連線仍以 HTTP 狀態碼或傳輸錯誤碼失敗時,Claude Code 會在嘗試後印出的訊息中加入該代碼以及伺服器 URL 的來源。來源為協定與主機,若 URL 有指定連接埠則也包含連接埠,例如 `https://mcp.example.com`。

289 289 

290* 該訊息中絕不會出現路徑與查詢字串。290* 路徑與查詢字串絕不會出現在該訊息中。

291* 對於本機、專案或使用者[範圍](#mcp-installation-scopes)中或受管 MCP 設定中的伺服器,來源會顯示該設定中所寫的主機,因此主機中的 `${VAR}` 參照不會在訊息中展開。291* 對於本機、專案或使用者[範圍](#mcp-installation-scopes)中或受管 MCP 設定中的伺服器,來源會顯示該設定中所寫的主機,因此主機中的 `${VAR}` 參照在訊息中不會被展開。

292* 對於沒有狀態或錯誤代碼的失敗,Claude Code 會顯示錯誤文字,但不含來源。292* 對於沒有狀態碼或錯誤碼的失敗,Claude Code 會顯示錯誤文字,但不含來源。

293 293 

294設定中 `url` 為空的遠端伺服器,在 `/mcp`、`claude mcp list` 和 [`/plugin`](https://code.claude.com/docs/zh-TW/plugins/install) 管理器中會顯示為 `not configured`,且 Claude Code 不會嘗試連線至它。外掛可以為您稍後設定的連接器加入這類預留項目,因此 Claude Code 不會將其回報為錯誤或設定問題。`/mcp` 中該伺服器的詳細資訊檢視會顯示 `No URL configured for this server`;請設定該項目的 `url` 以進行連線。294設定中 `url` 為空的遠端伺服器,會在 `/mcp`、`claude mcp list` 和 [`/plugin`](https://code.claude.com/docs/zh-TW/plugins/install) 管理員中顯示為 `not configured`,且 Claude Code 不會嘗試連線到它。外掛可以為您稍後才設定的連接器加入這樣的預留項目,因此 Claude Code 不會將其回報為錯誤或設定問題。`/mcp` 中該伺服器的詳細資訊檢視會顯示 `No URL configured for this server`;請設定該項目的 `url` 以連線。

295 295 

296#### 設定警告296#### 設定警告

297 297 

298Claude Code 會針對以下設定問題發出警告。每個項目都說明了 Claude Code 檢查的內容以及如何清除警告:298Claude Code 會針對以下設定問題發出警告。每個項目都說明了 Claude Code 檢查的內容以及如何清除警告:

299 299 

300* **隱藏的空白字元**:當 MCP 設定值帶有隱藏的前導或尾隨空白字元時,Claude Code 會發出警告,這通常來自貼上帶有尾隨換行字元的 token。Claude Code 會檢查 `command`、`url`、每個 `args` 項目,以及 `env` 和 `headers` 下的值與鍵名稱。Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中顯示警告,列出受影響的欄位但不顯示其值,例如 `Leading or trailing whitespace in: headers.Authorization`。Claude Code 不會修剪空白字元,而是完全依照所寫的內容使用這些值,因此請編輯設定將其移除。300* **隱藏的空白字元**:當 MCP 設定值帶有隱藏的前置或尾隨空白字元時,Claude Code 會發出警告,這通常來自貼上帶有尾隨換行的 token。Claude Code 會檢查 `command`、`url`、每個 `args` 項目,以及 `env` 和 `headers` 下的值與鍵名。Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中顯示警告,列出受影響的欄位而不回顯其值,例如 `Leading or trailing whitespace in: headers.Authorization`。Claude Code 不會修剪空白字元,而是完全依照所寫的值使用,因此請編輯設定將其移除。

301* **同一名稱存在於多個範圍**:若您在多個[範圍](#mcp-installation-scopes)中以不同端點定義了相同的伺服器名稱,Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中警告此衝突。Claude Code 會依端點儲存 OAuth 登入,因此當您為在某個專案中載入的定義進行身分驗證後,在載入不同定義的專案中仍需另外登入。請保留您要的端點,並使用 `claude mcp remove <name> --scope <scope>` 移除其他端點。在警告中,Claude Code 會引用您設定中所寫的每個範圍的端點,其中的 [`${VAR}` 參照](#environment-variable-expansion-in-mcp-json)不會展開,因此絕不會顯示 API 金鑰等已解析的值。301* **多個範圍中有相同名稱**:若您在多個[範圍](#mcp-installation-scopes)中以不同端點定義相同的伺服器名稱,Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中針對衝突發出警告。Claude Code 會依端點儲存 OAuth 登入,因此當您對某個專案中載入的定義進行身分驗證後,在載入不同定義的專案中仍需另外登入。請保留您要的端點,並使用 `claude mcp remove <name> --scope <scope>` 移除其他端點。在警告中,Claude Code 會引用您設定中所寫的每個範圍的端點,其中的 [`${VAR}` 參照](#environment-variable-expansion-in-mcp-json)不會展開,因此絕不會顯示 API 金鑰之類的解析後值。

302* **保留名稱**:Claude Code 保留了其內建伺服器的名稱,包括 `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。若您的設定定義了使用保留名稱的伺服器,Claude Code 會在載入時略過它,並顯示警告要求您重新命名。`claude mcp add` 會以錯誤拒絕保留名稱。`Claude Preview` 和 `Claude Browser` 都是指 [Claude Code 桌面應用程式預覽窗格](https://code.claude.com/docs/zh-TW/desktop.md#preview-your-app)所使用的內建伺服器。302* **保留名稱**:Claude Code 會保留其內建伺服器的名稱,包括 `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。若您的設定以保留名稱定義伺服器,Claude Code 會在載入時略過它,並顯示要求您重新命名的警告。`claude mcp add` 會以錯誤拒絕保留名稱。`Claude Preview` 和 `Claude Browser` 都是指 [Claude Code 桌面應用程式的預覽窗格](https://code.claude.com/docs/zh-TW/desktop.md#preview-your-app)所使用的內建伺服器。

303* **缺少環境變數**:若伺服器設定中的 [`${VAR}` 參照](#environment-variable-expansion-in-mcp-json)指名了一個未設定且沒有 `:-default` 的變數,Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中發出警告並指出該變數,並仍以未展開的 `${VAR}` 文字載入伺服器。請設定該變數或加上 `${VAR:-default}` 備援值。在遠端伺服器的 `url` 和 `headers` 中,某些憑證變數則會[讀取為空值](#credential-variables-that-read-as-empty),且不會發出警告。303* **缺少環境變數**:若伺服器設定中的 [`${VAR}` 參照](#environment-variable-expansion-in-mcp-json)指向一個未設定且沒有 `:-default` 的變數,Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中發出警告並指出該變數,且仍會以未展開的 `${VAR}` 文字載入伺服器。請設定該變數或加入 `${VAR:-default}` 備援值。在遠端伺服器的 `url` 和 `headers` 中,部分憑證變數則會[讀取為空值](#credential-variables-that-read-as-empty),且不會發出警告。

304 304 

305#### 工具可用性305#### 工具可用性

306 306 

307`/mcp` 面板會在每個已連線伺服器旁顯示工具數量,並標示出宣告具備工具能力但未公開任何工具的伺服器。307`/mcp` 面板會在每個已連線的伺服器旁顯示工具數量,並標示出宣告具有工具能力卻未公開任何工具的伺服器。

308 308 

309##### 雲端工作階段中的工具數量309##### 雲端工作階段中的工具數量

310 310 

311在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,像 `3 of 13 tools available` 這樣的數量表示 Claude 無法使用其餘 10 個工具。請檢查以下原因(但不限於此):311在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,像 `3 of 13 tools available` 這樣的數量表示 Claude 無法使用其他 10 個工具。請檢查以下原因等:

312 312 

313* **您儲存庫 `.claude/settings.json` 中的拒絕規則指定了該工具或其整個伺服器**:若[您的工作階段會讀取該檔案](https://code.claude.com/docs/zh-TW/settings.md#settings-in-cloud-sessions),請移除該[規則](https://code.claude.com/docs/zh-TW/permissions.md#mcp)313* **您儲存庫的 `.claude/settings.json` 中有拒絕規則指向該工具或其整個伺服器**:若[您的工作階段會讀取該檔案](https://code.claude.com/docs/zh-TW/settings.md#settings-in-cloud-sessions),請移除該[規則](https://code.claude.com/docs/zh-TW/permissions.md#mcp)

314* **工具的完整名稱超過 128 個字元**:請依照[名稱過長的處理步驟](https://code.claude.com/docs/zh-TW/errors.md#mcp-tool-name-over-128-characters)操作314* **工具的完整名稱超過 128 個字元**:請依照[名稱過長的處理步驟](https://code.claude.com/docs/zh-TW/errors.md#mcp-tool-name-over-128-characters)

315* **伺服器將該工具列給自己的介面使用,而非給 Claude 使用**:若您維護該伺服器,請在工具的 `_meta.ui.visibility` 中加入 `model`,將該工具提供給 Claude。否則,沒有需要修正之處。315* **伺服器將該工具列給自己的介面使用,而非給 Claude**:若您維護該伺服器,請在工具的 `_meta.ui.visibility` 中加入 `model`,讓 Claude 可使用該工具。否則,無須修正任何東西。

316 316 

317##### 來自仍在連線中的伺服器的工具317##### 來自仍在連線中之伺服器的工具

318 318 

319若您的請求需要來自仍在背景連線中的伺服器的工具,Claude 會等待該伺服器後再繼續。等待的方式取決於您的設定:319若您的請求需要來自仍在背景連線中之伺服器的工具,Claude 會等待該伺服器後再繼續。等待的方式取決於您的設定:

320 320 

321* **使用[工具搜尋](#scale-with-mcp-tool-search)(預設)**:等待發生在 `ToolSearch` 呼叫內。321* **使用[工具搜尋](#scale-with-mcp-tool-search)(預設)時**:等待發生在 `ToolSearch` 呼叫內。

322* **不使用工具搜尋**:Claude 改為使用 `WaitForMcpServers` 工具。不使用工具搜尋的設定包括 `ENABLE_TOOL_SEARCH=false`,以及在 Google Cloud 的 Agent Platform 上使用早於 Claude Opus 4.5、Claude Sonnet 4.5 和 Claude Haiku 4.5 的模型。關於 `ANTHROPIC_BASE_URL` 閘道,請參閱[透過 LLM 閘道使用工具搜尋](#tool-search-through-a-gateway)。322* **未使用工具搜尋時**:Claude 改用 `WaitForMcpServers` 工具。未使用工具搜尋的設定包括 `ENABLE_TOOL_SEARCH=false`,以及在 Google Cloud 的 Agent Platform 上使用早於 Claude Opus 4.5、Claude Sonnet 4.5 和 Claude Haiku 4.5 的模型。對於 `ANTHROPIC_BASE_URL` 閘道,請參閱[透過 LLM 閘道使用工具搜尋](#tool-search-through-a-gateway)。

323* **在 Microsoft Foundry [託管於 Azure 的部署](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)上**:Claude 會從工具搜尋路徑開始,而非使用 `WaitForMcpServers`,因為 Claude Code 只能從 API 得知該部署在伺服器端的拒絕。在 Claude Code 將該部署切換為[預先載入](#scale-with-mcp-tool-search)後,來自完成連線之伺服器的工具會在 Claude 的下一個請求中變為可用。323* **在 Microsoft Foundry [託管於 Azure 的部署](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)上**:Claude 會從工具搜尋路徑開始,而非使用 `WaitForMcpServers`,因為 Claude Code 只能從 API 得知該部署的伺服器端拒絕。在 Claude Code 將該部署切換為[預先載入](#scale-with-mcp-tool-search)後,來自完成連線之伺服器的工具會在 Claude 的下一個請求中變為可用。

324 324 

325啟用工具搜尋時,若伺服器在 Claude 工作期間完成連線,Claude Code 會在同一回合中 Claude 的下一個請求裡,向 Claude 列出該伺服器的工具名稱。Claude 隨後即可搜尋並呼叫這些工具,而無需等待您的下一則訊息。325啟用工具搜尋時,若伺服器在 Claude 工作期間完成連線,Claude Code 會在同一回合中的下一個請求向 Claude 列出該伺服器的工具名稱。Claude 接著就能搜尋並呼叫這些工具,無須等待您的下一則訊息。

326 326 

327在您恢復工作階段後,Claude 可能會在某工具的 MCP 伺服器仍在連線時,呼叫已儲存對話中的該工具。當伺服器正在進行第一次連線嘗試時,Claude Code 會將呼叫保留最多 10 秒,並在工具可用時執行它。若伺服器未及時連線,或已在[失敗嘗試後重試中](#automatic-reconnection),該呼叫會以 `No such tool available` [工具錯誤](https://code.claude.com/docs/zh-TW/errors.md#no-such-tool-available)失敗。327在您恢復工作階段後,Claude 可以在工具的 MCP 伺服器仍在連線時,呼叫已儲存對話中的工具。當伺服器處於第一次連線嘗試時,Claude Code 會將呼叫保留最多 10 秒,並在工具可用後執行。若伺服器未及時連線,或已處於[失敗嘗試後的重試](#automatic-reconnection)中,呼叫會以 `No such tool available` [工具錯誤](https://code.claude.com/docs/zh-TW/errors.md#no-such-tool-available)失敗。

328 328 

329### 停用伺服器而不移除它329### 停用伺服器而不移除

330 330 

331在 `/mcp` 面板中關閉伺服器,可阻止 Claude Code 連線至該伺服器,而不會遺失其設定。Claude Code 仍會在 `/mcp` 中列出該伺服器,並標示為已停用。331在 `/mcp` 面板中關閉伺服器,即可讓 Claude Code 停止連線到它,同時不會遺失其設定。Claude Code 仍會在 `/mcp` 中列出該伺服器,並標示為已停用。

332 332 

333當您切換伺服器時,Claude Code 會依專案將您的選擇記錄在 `~/.claude.json` 中的兩個清單之一,這兩個清單涵蓋互不重疊的伺服器集合:333當您切換伺服器時,Claude Code 會依專案將您的選擇記錄在 `~/.claude.json` 中,存放於兩份清單之一,兩者涵蓋互不重疊的伺服器集合:

334 334 

335* `disabledMcpServers`:選擇退出清單,適用於使用者設定的伺服器、外掛伺服器、您的組織[透過受管設定提供的伺服器](https://code.claude.com/docs/zh-TW/managed-mcp.md#provide-servers-through-managed-settings)、Claude Code [自行擷取](#how-connectors-reach-claude-code)的 claude.ai 連接器,以及預設開啟的內建伺服器。Claude Code 不會連線至您列在此處的伺服器。當您使用[停用 claude.ai 連接器](#disable-claude-ai-connectors)中所述的各專案 `/mcp` 切換開關停用 claude.ai 連接器時,Claude Code 會以其顯示名稱將其寫入此清單,例如 `claude.ai Slack`。335* `disabledMcpServers`:選擇退出清單,適用於使用者設定的伺服器、外掛伺服器、您的組織[透過受管設定提供](https://code.claude.com/docs/zh-TW/managed-mcp.md#provide-servers-through-managed-settings)的伺服器、Claude Code [自行擷取](#how-connectors-reach-claude-code)的 claude.ai 連接器,以及預設為開啟的內建伺服器。Claude Code 不會連線到您在此列出的伺服器。當您使用[停用 claude.ai 連接器](#disable-claude-ai-connectors)中所述的每專案 `/mcp` 切換停用 claude.ai 連接器時,Claude Code 會以其顯示名稱將其寫入此清單,例如 `claude.ai Slack`。

336* `enabledMcpServers`:選擇加入清單,適用於預設關閉的內建伺服器,例如 `computer-use`。Claude Code 只有在您將預設關閉的伺服器列在此處時才會連線至它。336* `enabledMcpServers`:選擇加入清單,適用於預設為關閉的內建伺服器,例如 `computer-use`。Claude Code 只有在您於此列出預設關閉的伺服器時才會連線到它。

337 337 

338Claude Code 對每個伺服器只會查閱兩個清單中的其中一個,因此任一清單都不會覆寫另一個。若您將一般伺服器加入 `enabledMcpServers`,或將預設關閉的內建伺服器加入 `disabledMcpServers`,Claude Code 會忽略該項目。338Claude Code 對每個伺服器只會參考這兩份清單中的其中一份,因此兩份清單不會互相覆寫。若您將一般伺服器加入 `enabledMcpServers`,或將預設關閉的內建伺服器加入 `disabledMcpServers`,Claude Code 會忽略該項目。

339 339 

340`disabledMcpServers` 和 `enabledMcpServers` 與 [`enabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#enabledmcpjsonservers) 及 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 無關,後兩者控制的是專案 `.mcp.json` 檔案中所定義伺服器的核准。340`disabledMcpServers` 和 `enabledMcpServers` 與 [`enabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#enabledmcpjsonservers) 和 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 無關,後兩者控制的是專案 `.mcp.json` 檔案中所定義伺服器的核准。

341 341 

342### MCP 用戶端執行環境342### MCP 用戶端執行環境

343 343 

344Claude Code 透過兩種用戶端執行環境之一連線至 MCP 伺服器。v1 執行環境建置於 MCP TypeScript SDK 1.x 之上。v2 執行環境是建置於 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 之上的相同程式碼,並加入了 MCP 協定修訂版 2026-07-28。本頁其餘內容同時適用於兩種執行環境,除非某節指明為 v2 執行環境。344Claude Code 會透過兩種用戶端執行環境之一連線到 MCP 伺服器。v1 執行環境建構於 MCP TypeScript SDK 1.x 之上。v2 執行環境是相同的程式碼,但建構於 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 之上,新增了 MCP 協定修訂版 2026-07-28。除了特別指明 v2 執行環境的章節外,本頁其餘內容適用於兩種執行環境。

345 345 

346Claude Code 每次啟動時都會選擇一種執行環境,並持續使用直到您結束。在會[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中,Claude Code v2.1.232 或更新版本會使用 v2 執行環境。346Claude Code 每次啟動時都會挑選一種執行環境,並保持使用直到您結束為止。在它會[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中,它會在 Claude Code v2.1.232 或更新版本上使用 v2 執行環境。

347 347 

348在不擷取功能旗標的工作階段中,Claude Code v2.1.274 或更新版本預設使用 v2 執行環境:348在不會擷取功能旗標的工作階段中,Claude Code 在 Claude Code v2.1.274 或更新版本上預設使用 v2 執行環境:

349 349 

350* 在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上的工作階段,除非內嵌 Claude Code 的主機平台設定了 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars)350* 在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上的工作階段,除非內嵌 Claude Code 的主機平台設定了 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars)

351* 透過 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入的工作階段351* 透過 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)登入的工作階段

352* 您關閉遙測或功能旗標擷取的工作階段,例如使用 `DISABLE_TELEMETRY`352* 您關閉遙測或功能旗標擷取的工作階段,例如使用 `DISABLE_TELEMETRY`

353 353 

354在 v2 上,Claude Code 還會:354在 v2 上,Claude Code 也會:

355 355 

356* 詢問 HTTP、stdio 和 claude.ai 連接器伺服器是否支援較新的修訂版,並與支援的伺服器使用該修訂版。這包括雲端和 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 工作階段的連接器。Claude Code 會以與 v1 相同的方式連線至其他所有伺服器。356* 詢問 HTTP、stdio 和 claude.ai 連接器伺服器是否支援較新的修訂版,並對支援者使用它。這包括雲端和 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 工作階段的連接器。Claude Code 與其他所有伺服器的連線方式與 v1 相同。

357* 透過[保持開啟的串流](#notification-streams-on-the-v2-runtime),從使用較新修訂版的伺服器接收 `list_changed` 通知。357* 透過[它保持開啟的串流](#notification-streams-on-the-v2-runtime),從使用較新修訂版的伺服器接收 `list_changed` 通知。

358* 不會註冊以較新修訂版連線的[頻道](#push-messages-with-channels)伺服器,因為該修訂版無法承載頻道訊息。358* 不會註冊以較新修訂版連線的[頻道](#push-messages-with-channels)伺服器,因為該修訂版無法承載頻道訊息。

359* 當[MCP OAuth 登入](#authenticate-with-remote-mcp-servers)的授權回應指名了非預期的發行者時,使登入失敗。359* 當授權回應指出非預期的簽發者時,讓 [MCP OAuth 登入](#authenticate-with-remote-mcp-servers)失敗。

360* 只將 [MCP OAuth](#authenticate-with-remote-mcp-servers) 憑證傳送至透過 HTTPS 提供服務,或位於 `localhost`、`127.0.0.1` 或 `::1` 的 token 端點。對於 token 端點在其他任何位置使用純 `http://` 的伺服器(例如您本機網路上的裝置),登入會失敗。請參閱 [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/zh-TW/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint)。360* 只將 [MCP OAuth](#authenticate-with-remote-mcp-servers) 憑證傳送到透過 HTTPS 提供,或位於 `localhost`、`127.0.0.1` 或 `::1` 的 token 端點。若伺服器的 token 端點在其他任何位置使用純 `http://`(例如您區域網路上的裝置),登入會失敗。請參閱 [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/zh-TW/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint)。

361 361 

362Anthropic 可以透過 Claude Code 擷取的功能旗標,讓特定伺服器維持使用較早的協定,或不使用該串流。若要自行選擇執行環境,請將 [`MCP_SDK_GENERATION`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `v1` 或 `v2`。362Anthropic 可以透過 Claude Code 擷取的功能旗標,讓特定伺服器維持使用較早的協定,或不使用該串流。若要自行挑選執行環境,請將 [`MCP_SDK_GENERATION`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `v1` 或 `v2`。

363 363 

364若要決定 Claude Code 是否詢問伺服器較新的修訂版,請將 [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `auto` 或 `legacy`。在未設定該變數時,Claude Code 可能會在 7 天內略過詢問某個 stdio 伺服器,例如在該伺服器被詢問時結束之後。若要讓已升級的伺服器更快被詢問,請設為 `auto`。364若要決定 Claude Code 是否詢問伺服器關於較新修訂版的支援,請將 [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `auto` 或 `legacy`。未設定該變數時,Claude Code 可能會在 7 天內略過詢問某個 stdio 伺服器,例如在伺服器被詢問時結束之後。若要讓已升級的伺服器更早被詢問,請設為 `auto`。

365 365 

366### 動態工具更新366### 動態工具更新

367 367 

368MCP 伺服器可以在連線期間變更其提供的工具、提示詞或資源,並傳送 `list_changed` 通知。收到通知時:368MCP 伺服器可以在連線期間變更其提供的工具、提示詞或資源,並傳送 `list_changed` 通知。通知到達時:

369 369 

370* **在互動式終端機工作階段中**,Claude Code 會從該伺服器擷取更新後的清單,因此您無需重新連線。370* **在互動式終端機工作階段中**,Claude Code 會從該伺服器擷取更新後的清單,因此您無須重新連線。

371* **在使用 `-p` 旗標的[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)及 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 中**,Claude Code 收到這些通知時只會重新整理工具清單。371* **在使用 `-p` 旗標的[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)和 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 中**,Claude Code 在收到這些通知時只會重新整理工具清單。

372 372 

373若重新整理請求失敗,Claude Code 會保留該伺服器先前探索到的工具、提示詞和資源,直到之後的重新整理成功為止。373若重新整理請求失敗,Claude Code 會保留該伺服器先前探索到的工具、提示詞和資源,直到之後的重新整理成功為止。

374 374 

375#### v2 執行環境上的通知串流375#### v2 執行環境上的通知串流

376 376 

377在 [v2 執行環境](#mcp-client-runtimes)上,Claude Code 會透過保持開啟的串流,從使用較新協定修訂版的伺服器接收 `list_changed` 通知。串流關閉時,Claude Code 會重新開啟它,但有兩項限制:377在 [v2 執行環境](#mcp-client-runtimes)上,Claude Code 會透過它保持開啟的串流,從使用較新協定修訂版的伺服器接收 `list_changed` 通知。當串流關閉時,Claude Code 會重新開啟它,但有兩項限制:

378 378 

379* **串流在 10 秒內再次關閉**:Claude Code 最多重新開啟三次,之後對該連線停止重新開啟。379* **串流在 10 秒內再次關閉**:Claude Code 最多重新開啟三次,之後就對該連線停止。

380* **串流保持開啟超過 10 秒後才關閉**(連至無伺服器主機的串流通常如此):在一小時內重新開啟五次後,Claude Code 會等待約六小時才進行下一次。380* **串流保持開啟超過 10 秒後才關閉**(連到無伺服器主機的串流常見此情形):在一小時內重新開啟五次後,Claude Code 會等待約六小時才進行下一次。

381 381 

382在串流重新開啟之前,您會保留該伺服器最後擷取的工具、提示詞和資源。若要更快取得其變更,請從 `/mcp` 重新連線該伺服器。382在串流重新開啟之前,您會保留該伺服器最後擷取的工具、提示詞和資源。若要更早取得其變更,請從 `/mcp` 重新連線該伺服器。

383 383 

384### 自動重新連線384### 自動重新連線

385 385 

386Claude Code 會重新連線在工作階段中途斷線的遠端伺服器,並在發生暫時性錯誤後重試 HTTP 或 SSE 伺服器的第一次連線。關於 stdio 伺服器,請參閱[結束或無法啟動的 stdio 伺服器](#stdio-servers-that-exit-or-fail-to-start)。386Claude Code 會重新連線在工作階段中途中斷的遠端伺服器,並在暫時性錯誤後重試 HTTP 或 SSE 伺服器的首次連線。對於 stdio 伺服器,請參閱[結束或無法啟動的 stdio 伺服器](#stdio-servers-that-exit-or-fail-to-start)。

387 387 

388#### 遠端伺服器在工作階段中途斷線388#### 遠端伺服器在工作階段中途中斷

389 389 

390Claude Code 會先以指數退避嘗試重新連線斷線的遠端伺服器最多五次,從一秒延遲開始,每次加倍:390Claude Code 會先以指數退避嘗試重新連線中斷的遠端伺服器最多五次,從一秒延遲開始,每次加倍:

391 391 

392* **在互動式工作階段中**:Claude Code 重新連線時,`/mcp` 會將該伺服器顯示為擱置中。五次嘗試都失敗後,Claude Code 會將該伺服器標示為失敗,或在伺服器需要重新授權時標示為需要身分驗證。標示為失敗時,您會看到 `MCP server "<name>" disconnected · open /mcp to reconnect` 通知。您可以從 `/mcp` 手動重試。392* **在互動式工作階段中**:Claude Code 重新連線期間,`/mcp` 會將該伺服器顯示為待處理。五次嘗試失敗後,Claude Code 會將該伺服器標記為失敗,或在伺服器需要重新授權時標記為需要身分驗證。當它將伺服器標記為失敗時,您會看到 `MCP server "<name>" disconnected · open /mcp to reconnect` 通知。您可以從 `/mcp` 手動重試。

393* **在 [`claude -p`](https://code.claude.com/docs/zh-TW/headless) 執行和 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 工作階段中**:Claude Code 會進行相同的五次嘗試,但沒有 `/mcp` 面板可顯示。若五次都失敗,執行會在沒有該伺服器工具的情況下繼續:393* **在 [`claude -p`](https://code.claude.com/docs/zh-TW/headless) 執行和 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 工作階段中**:Claude Code 會進行相同的五次嘗試,但沒有 `/mcp` 面板可顯示。若五次皆失敗,執行會在沒有該伺服器工具的情況下繼續:

394 * **在暫時性錯誤之後,例如 5xx 回應或逾時**:Claude Code 會在背景持續重試 HTTP 或 SSE 伺服器。重試最多持續約半小時,當其中一次連線成功時,該伺服器的工具會再次變為可用。在此之前,Agent SDK 工作階段會回報[狀態](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling) `failed`,而您的程式碼可以[重新連線該伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling)。若要在 `claude -p` 中重新連線,請重新開始執行。394 * **在暫時性錯誤之後,例如 5xx 回應或逾時**:Claude Code 會在背景持續重試 HTTP 或 SSE 伺服器。重試最多持續約半小時,當某次連線成功時,該伺服器的工具會再次可用。在此之前,Agent SDK 工作階段會回報[狀態](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling) `failed`,而您的程式碼可以[重新連線該伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling)。若要在 `claude -p` 中重新連線,請重新開始執行。

395 * **當伺服器[需要您重新登入](#authenticate-with-remote-mcp-servers)時**:Claude Code 會停止重試,Agent SDK 工作階段會將該伺服器的狀態回報為 `needs-auth`。請在您的 shell 中使用 [`claude mcp login <name>`](#authenticate-from-the-command-line) 登入。然後重新開始執行,或在 Agent SDK 工作階段中改為[重新連線該伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling)。395 * **當伺服器[需要您重新登入](#authenticate-with-remote-mcp-servers)時**:Claude Code 會停止重試,且 Agent SDK 工作階段會將該伺服器的狀態回報為 `needs-auth`。請在您的 shell 中使用 [`claude mcp login <name>`](#authenticate-from-the-command-line) 登入。然後重新開始執行,或在 Agent SDK 工作階段中改為[重新連線該伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling)。

396 396 

397#### 第一次連線失敗397#### 首次連線失敗

398 398 

399當 HTTP 或 SSE 伺服器的第一次連線因暫時性錯誤(例如 5xx 回應、連線被拒或逾時)而失敗時,Claude Code 最多會重試三次。若連線仍然失敗,Claude Code 會將該伺服器標示為失敗。399當 HTTP 或 SSE 伺服器的首次連線因暫時性錯誤(例如 5xx 回應、連線被拒或逾時)而失敗時,Claude Code 最多重試三次。若連線仍然失敗,Claude Code 會將該伺服器標記為失敗。

400 400 

401這些重試在以下情況不適用:401這些重試不適用於下列情況:

402 402 

403* stdio 伺服器的第一次連線。若要再試一次,請參閱[結束或無法啟動的 stdio 伺服器](#stdio-servers-that-exit-or-fail-to-start)403* stdio 伺服器的首次連線。若要再次嘗試,請參閱[結束或無法啟動的 stdio 伺服器](#stdio-servers-that-exit-or-fail-to-start)

404* WebSocket 伺服器的第一次連線。若要在互動式終端機工作階段中再試一次,請從 `/mcp` 中該伺服器的選單選取 **Reconnect**404* WebSocket 伺服器的首次連線。若要在互動式終端機工作階段中再次嘗試,請從 `/mcp` 中該伺服器的選單選取 **Reconnect**

405* 身分驗證或找不到的錯誤,因為這需要變更設定才能解決。當 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 是伺服器 `Authorization` 標頭的唯一來源時,Claude Code 仍會重試身分驗證錯誤,因為它在每次嘗試時都會重新執行該 helper,並可能取得新的憑證405* 身分驗證錯誤或找不到錯誤,因為這需要變更設定才能解決。當 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 是伺服器 `Authorization` 標頭的唯一來源時,Claude Code 仍會重試身分驗證錯誤,因為它會在每次嘗試時重新執行該輔助程式,並可取得新的憑證

406 406 

407#### 結束或無法啟動的 stdio 伺服器407#### 結束或無法啟動的 stdio 伺服器

408 408 

409若要重新啟動 stdio 伺服器,請閱讀符合其發生情況的欄位。請依您執行 Claude Code 的方式找到對應的列:互動式工作階段、`claude -p` 執行或 Agent SDK 工作階段。409若要再次啟動 stdio 伺服器,請閱讀與其發生情況相符的欄位。依您執行 Claude Code 的方式找到對應的列:互動式工作階段、`claude -p` 執行,或 Agent SDK 工作階段。

410 410 

411| 您執行 Claude Code 的方式 | 伺服器程序在工作階段中途結束 | 伺服器的第一次連線失敗 |411| 您執行 Claude Code 的方式 | 伺服器程序在工作階段中途結束 | 伺服器的首次連線失敗 |

412| - | - | - |412| - | - | - |

413| 互動式工作階段 | Claude Code 將該伺服器標示為失敗。若要重新啟動,請從 `/mcp` 中該伺服器的選單選取 **Reconnect** | Claude Code 將該伺服器標示為失敗。若要重新啟動,請從 `/mcp` 中該伺服器的選單選取 **Reconnect** |413| 互動式工作階段 | Claude Code 會將該伺服器標記為失敗。若要再次啟動,請從 `/mcp` 中該伺服器的選單選取 **Reconnect** | Claude Code 會將該伺服器標記為失敗。若要再次啟動,請從 `/mcp` 中該伺服器的選單選取 **Reconnect** |

414| `claude -p` 執行 | Claude Code 會在 Claude 下次呼叫該伺服器的某個工具時重新啟動伺服器,並在伺服器連線後執行該呼叫 | 執行會在沒有該伺服器工具的情況下繼續。若要讓 Claude Code 再次嘗試連線,請重新開始執行。當伺服器由外掛提供時,新的執行會在失敗後 15 分鐘內略過連線,因此請先等待這段時間,或[更早重試](https://code.claude.com/docs/zh-TW/errors.md#skipping-connection-recent-failure-cached) |414| `claude -p` 執行 | Claude Code 會在 Claude 下次呼叫該伺服器的某個工具時再次啟動伺服器,並在伺服器連線後執行該呼叫 | 執行會在沒有該伺服器工具的情況下繼續。若要讓 Claude Code 再次嘗試連線,請重新開始執行。當伺服器由外掛提供時,新的執行會在失敗後 15 分鐘內略過連線,因此請先等待這段時間,或[更早重試](https://code.claude.com/docs/zh-TW/errors.md#skipping-connection-recent-failure-cached) |

415| Agent SDK 工作階段 | Claude Code 會在 Claude 下次呼叫該伺服器的某個工具時重新啟動伺服器,並在伺服器連線後執行該呼叫 | 工作階段會在沒有該伺服器工具的情況下繼續。您的程式碼可以[重新連線該伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling) |415| Agent SDK 工作階段 | Claude Code 會在 Claude 下次呼叫該伺服器的某個工具時再次啟動伺服器,並在伺服器連線後執行該呼叫 | 工作階段會在沒有該伺服器工具的情況下繼續。您的程式碼可以[重新連線該伺服器](https://code.claude.com/docs/zh-TW/agent-sdk/mcp.md#error-handling) |

416 416 

417#### 探索請求失敗417#### 探索請求失敗

418 418 

419伺服器連線後,Claude Code 會向其傳送能力探索請求,例如 `tools/list`、`prompts/list` 和 `resources/list`。發生暫時性網路或伺服器錯誤後,Claude Code 會以短暫退避重試這些請求最多三次。它不會重試身分驗證錯誤、4xx 回應或請求逾時。419伺服器連線後,Claude Code 會向其傳送能力探索請求,例如 `tools/list`、`prompts/list` 和 `resources/list`。在暫時性網路或伺服器錯誤後,Claude Code 會以短暫退避重試這些請求最多三次。它不會重試身分驗證錯誤、4xx 回應或請求逾時。

420 420 

421#### 自行重試失敗的伺服器421#### 自行重試失敗的伺服器

422 422 

423若要重試每個失敗或需要身分驗證的伺服器,請在互動式終端機工作階段的 Claude Code 提示字元執行 `/mcp reconnect all`。這需要 Claude Code v2.1.284 或更新版本。較早的版本會印出 `MCP server "all" not found`。423若要重試每個失敗或需要身分驗證的伺服器,請在互動式終端機工作階段中,於 Claude Code 提示字元執行 `/mcp reconnect all`。這需要 Claude Code v2.1.284 或更新版本。較早的版本會印出 `MCP server "all" not found`。

424 424 

425#### Claude 如何得知伺服器失敗425#### Claude 如何得知伺服器失敗

426 426 

427Claude Code 是否會告知 Claude 某個已設定的伺服器連線失敗,取決於[工具搜尋](#scale-with-mcp-tool-search),該功能預設為開啟:427Claude Code 是否告知 Claude 某個已設定的伺服器連線失敗,取決於預設開啟的[工具搜尋](#scale-with-mcp-tool-search):

428 428 

429* 使用工具搜尋時,Claude Code 會告知 Claude 哪個伺服器失敗及其連線錯誤,因此 Claude 會在其回應中回報連線失敗。Claude Code 也會在找不到相符工具的 `ToolSearch` 結果中包含相同的資訊。429* 使用工具搜尋時,Claude Code 會告訴 Claude 哪個伺服器失敗及其連線錯誤,因此 Claude 會在回應中回報連線失敗。Claude Code 也會在找不到相符工具的 `ToolSearch` 結果中包含相同資訊。

430* 在任何[不使用工具搜尋的設定](#configure-tool-search)中,Claude Code 不會向 Claude 回報失敗的伺服器連線。430* 在任何[未使用工具搜尋的設定](#configure-tool-search)中,Claude Code 不會向 Claude 回報伺服器連線失敗。

431 431 

432### 使用頻道推送訊息432### 透過頻道推送訊息

433 433 

434MCP 伺服器也可以直接將訊息推送到您的工作階段中,讓 Claude 能對外部事件做出反應,例如 CI 結果、監控警示或聊天訊息。若要啟用此功能,您的伺服器需宣告 `claude/channel` 能力,並由您在啟動時以 `--channels` 旗標選擇加入。請參閱[頻道](https://code.claude.com/docs/zh-TW/channels.md)以使用官方支援的頻道,或參閱[頻道參考](https://code.claude.com/docs/zh-TW/channels-reference.md)以建立您自己的頻道。434MCP 伺服器也可以將訊息直接推送到您的工作階段中,讓 Claude 對外部事件(例如 CI 結果、監控警示或聊天訊息)做出反應。若要啟用此功能,您的伺服器需宣告 `claude/channel` 能力,並由您在啟動時以 `--channels` 旗標選擇加入。請參閱[頻道](https://code.claude.com/docs/zh-TW/channels.md)以使用官方支援的頻道,或參閱[頻道參考](https://code.claude.com/docs/zh-TW/channels-reference.md)以建立您自己的頻道。

435 435 

436在 [v2 執行環境](#mcp-client-runtimes)上,協商使用 MCP 協定修訂版 2026-07-28 的頻道伺服器無法傳遞頻道訊息,因此 Claude Code 不會將其註冊為頻道。不支援該修訂版的頻道伺服器會以較早的交握方式連線,並如往常一樣註冊。436在 [v2 執行環境](#mcp-client-runtimes)上,協商 MCP 協定修訂版 2026-07-28 的頻道伺服器無法傳遞頻道訊息,因此 Claude Code 不會將其註冊為頻道。不支援該修訂版的頻道伺服器會以較早的交握方式連線,並如先前一樣註冊。

437 437 

438Claude Code 預設會向 stdio 伺服器要求該修訂版。若要讓 stdio 頻道伺服器維持使用較早的交握方式,請將 [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `legacy`,這會讓所有伺服器都維持使用較早的交握方式。438Claude Code 預設會向 stdio 伺服器詢問該修訂版。若要讓 stdio 頻道伺服器維持使用較早的交握方式,請將 [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `legacy`,這會讓所有伺服器都維持使用它。

439 439 

440> [!TIP]440> [!TIP]

441>441>


447> * `user`:在所有專案中供您使用447> * `user`:在所有專案中供您使用

448> * 使用 `-e` 或 `--env` 旗標設定環境變數(例如 `-e KEY=value`)448> * 使用 `-e` 或 `--env` 旗標設定環境變數(例如 `-e KEY=value`)

449> * `--transport` 和 `--header` 旗標也接受 `-t` 和 `-H` 簡寫形式449> * `--transport` 和 `--header` 旗標也接受 `-t` 和 `-H` 簡寫形式

450> * 使用 `MCP_TIMEOUT` 環境變數設定 MCP 伺服器啟動逾時(例如 `MCP_TIMEOUT=10000 claude` 會設定 10 秒逾時)450> * 使用 `MCP_TIMEOUT` 環境變數設定 MCP 伺服器啟動逾時(例如 `MCP_TIMEOUT=10000 claude` 會設定 10 秒的逾時)

451> * 在該伺服器的 `.mcp.json` 項目中加入以毫秒為單位的 `timeout` 欄位,即可為個別伺服器設定工具執行逾時,例如 `"timeout": 600000` 代表十分鐘。這只會針對該伺服器覆寫 `MCP_TOOL_TIMEOUT` 環境變數451> * 在該伺服器的 `.mcp.json` 項目中加入以毫秒為單位的 `timeout` 欄位,即可設定每個伺服器的工具執行逾時,例如 `"timeout": 600000` 代表十分鐘。這只會針對該伺服器覆寫 `MCP_TOOL_TIMEOUT` 環境變數

452> * 當 MCP 工具輸出超過 10,000 個 token 時,Claude Code 會顯示警告,且預設將輸出限制在 25,000 個 token。若要變更 token 限制,請設定 `MAX_MCP_OUTPUT_TOKENS` 環境變數,例如 `MAX_MCP_OUTPUT_TOKENS=50000`。警告閾值是固定的。除非伺服器提高了工具本身的限制,否則超過 50,000 個字元的成功文字結果無論此變數為何都會儲存至檔案。請參閱 [MCP 輸出限制與警告](#mcp-output-limits-and-warnings)452> * 當 MCP 工具輸出超過 10,000 個 token 時,Claude Code 會顯示警告,且預設將輸出限制為 25,000 個 token。若要變更 token 上限,請設定 `MAX_MCP_OUTPUT_TOKENS` 環境變數,例如 `MAX_MCP_OUTPUT_TOKENS=50000`。警告門檻是固定的。除非伺服器提高了工具本身的上限,否則超過 50,000 個字元的成功文字結果無論此變數為何都會儲存到檔案中。請參閱 [MCP 輸出上限與警告](#mcp-output-limits-and-warnings)

453> * 使用 `/mcp` 向需要 OAuth 2.0 身分驗證的遠端伺服器進行身分驗證453> * 使用 `/mcp` 向需要 OAuth 2.0 身分驗證的遠端伺服器進行驗證

454 454 

455### MCP 工具呼叫的時間限制455### MCP 工具呼叫的時間限制

456 456 

457若要限制 MCP 工具呼叫可執行的時間長度:457若要限制 MCP 工具呼叫可執行的時間:

458 458 

459* **個別伺服器**:在該伺服器的設定項目中加入以毫秒為單位的 `timeout` 欄位459* **依伺服器**:在該伺服器的設定項目中加入以毫秒為單位的 `timeout` 欄位

460* **所有伺服器**:設定 [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars)460* **跨所有伺服器**:設定 [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars)

461 461 

462個別伺服器的 `timeout` 是每次工具呼叫的硬性實際時間限制,伺服器的進度通知不會延長它。低於 1000 的值會被忽略,並改用 `MCP_TOOL_TIMEOUT`,若該變數未設定,則改用其約 28 小時的預設值。對於 HTTP、SSE 或 [claude.ai 連接器](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-servers-from-claude-ai)伺服器,還有第二個針對每個請求的計時器,涵蓋每個請求直到收到伺服器的第一個回應位元組為止。Claude Code 會將該計時器設為三個值中的最大值:60 秒、適用於該伺服器的工具逾時,以及 `MCP_TIMEOUT`。未設定 `MCP_TOOL_TIMEOUT` 時的 28 小時預設值不會納入該比較,且低於 60 秒的值不會縮短該計時器。Stdio 和 WebSocket 伺服器沒有針對每個請求的計時器。462每伺服器的 `timeout` 是每次工具呼叫的硬性實際時間上限,伺服器傳來的進度通知不會延長它。低於 1000 的值會被忽略,並改用 `MCP_TOOL_TIMEOUT`,若該變數未設定則使用其約 28 小時的預設值。對於 HTTP、SSE 或 [claude.ai 連接器](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-servers-from-claude-ai)伺服器,另外還有第二個每請求計時器,涵蓋每個請求直到伺服器回應的第一個位元組為止。Claude Code 會將該計時器設為三個值中的最大值:60 秒、適用於該伺服器的工具逾時,以及 `MCP_TIMEOUT`。未設定 `MCP_TOOL_TIMEOUT` 時的 28 小時預設值不參與該比較,而低於 60 秒的值也不會縮短該計時器。Stdio 和 WebSocket 伺服器沒有每請求計時器。

463 463 

464至少為 1000 的個別伺服器 `timeout` 也會作為下述閒置逾時的下限:Claude Code 絕不會比個別伺服器的 `timeout` 更早因閒置而中止該伺服器的工具呼叫。464至少為 1000 的每伺服器 `timeout` 也會作為下述閒置逾時的下限:Claude Code 絕不會早於每伺服器 `timeout` 因閒置而中止該伺服器的工具呼叫。

465 465 

466若 MCP 伺服器在閒置時間範圍內沒有傳送任何回應或進度通知,對其的工具呼叫會以錯誤中止,而不是等到實際時間限制。閒置逾時適用於 IDE 伺服器和 SDK 行程內伺服器以外的所有伺服器類型。閒置時間範圍預設為:HTTP、SSE、WebSocket 和 [claude.ai 連接器](#use-mcp-servers-from-claude-ai)伺服器為五分鐘,stdio 伺服器為 30 分鐘。466對於在閒置時間窗內沒有傳送任何回應或進度通知的 MCP 伺服器,其工具呼叫會以錯誤中止,而不會等待實際時間上限。閒置逾時適用於除 IDE 伺服器和 SDK 程序內伺服器以外的所有伺服器類型。對於 HTTP、SSE、WebSocket 和 [claude.ai 連接器](#use-mcp-servers-from-claude-ai)伺服器,閒置時間窗預設為五分鐘;對於 stdio 伺服器則為 30 分鐘。

467 467 

468請以毫秒為單位設定 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數來變更閒置時間範圍,或將其設為 `0` 以停用此檢查。468以毫秒為單位設定 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數可變更閒置時間窗,或將其設為 `0` 以停用該檢查。

469 469 

470這些逾時限制的是呼叫可以執行多久,而不一定是它會阻擋工作階段多久:執行超過兩分鐘的主要對話呼叫會先移至背景任務。請參閱[長時間工具呼叫的自動背景化](#automatic-backgrounding-of-long-tool-calls)。470這些逾時限制的是呼叫可執行多久,而不一定是它阻擋工作階段多久:在主對話中執行超過兩分鐘的呼叫會先移至背景任務。請參閱[長時間工具呼叫的自動背景化](#automatic-backgrounding-of-long-tool-calls)。

471 471 

472### 長時間工具呼叫的自動背景化472### 長時間工具呼叫的自動背景化

473 473 

474若背景呼叫在 [`/tasks`](https://code.claude.com/docs/zh-TW/commands#all-commands) 中的詳細資訊檢視顯示 `runs on the server; survives exiting this session`,請參閱[在伺服器上執行的 MCP 任務](#mcp-tasks-that-run-on-the-server)。474若背景呼叫在 [`/tasks`](https://code.claude.com/docs/zh-TW/commands#all-commands) 中的詳細資訊檢視顯示 `runs on the server; survives exiting this session`,請參閱[在伺服器上執行的 MCP 任務](#mcp-tasks-that-run-on-the-server)。

475 475 

476主要對話中的 MCP 工具呼叫若在兩分鐘後仍在執行,會移至背景任務,而不會阻擋工作階段。Claude 會立即收到任務 ID 並繼續工作,呼叫結束時,結果會以任務通知的形式送達。476主對話中執行超過兩分鐘仍未完成的 MCP 工具呼叫,會移至背景任務,而不會阻擋工作階段。Claude 會立即收到任務 ID 並繼續工作,結果會在呼叫結束時以任務通知的形式送達。

477 477 

478該任務會出現在 [`/tasks`](https://code.claude.com/docs/zh-TW/commands#all-commands) 中,您也可以在那裡停止它,且它不會在結束工作階段後延續。任務的項目會顯示伺服器回報的最新進度。若您停止任務,Claude Code 會取消呼叫並告知 Claude 不會有結果。停止並不保證伺服器會停止:它可能已完成部分工作,或仍可能完成它。478該任務會出現在 [`/tasks`](https://code.claude.com/docs/zh-TW/commands#all-commands) 中,您也可以在那裡停止它,且它不會在結束工作階段後保留。任務的項目會顯示伺服器回報的最新進度。若您停止任務,Claude Code 會取消呼叫並告訴 Claude 不會有結果。停止並不保證伺服器會停止:它可能已完成部分工作,或仍可能完成它。

479 479 

480呼叫在背景執行時,每次呼叫的限制仍然適用:由個別伺服器 `timeout` 或 [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 設定的實際時間限制,以及由 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 設定的閒置逾時。480呼叫在背景執行期間,每次呼叫的限制仍然適用:由每伺服器 `timeout` 或 [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 設定的實際時間上限,以及由 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 設定的閒置逾時。

481 481 

482若要變更或關閉自動背景化:482若要變更或關閉自動背景化:

483 483 

484* 以毫秒為單位設定 [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數來變更閾值,或將其設為 `0` 以關閉自動背景化。設為 `0` 時,Claude 在互動式工作階段中也會[等待 MCP 任務](#make-claude-wait-for-the-result-of-an-mcp-task)484* 以毫秒為單位設定 [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/zh-TW/env-vars) 環境變數以變更門檻,或將其設為 `0` 以關閉自動背景化。設為 `0` 時,Claude 在互動式工作階段中也會[等待 MCP 任務](#make-claude-wait-for-the-result-of-an-mcp-task)

485* 將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`,可關閉自動背景化和[背景命令](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)485* 將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`,以關閉自動背景化和[背景命令](https://code.claude.com/docs/zh-TW/tools-reference.md#background-commands)

486 486 

487有些呼叫永遠不會移至背景:487有些呼叫永遠不會移至背景:

488 488 

489* 來自 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 的呼叫;Claude Code 只會將主要對話的呼叫背景化489* 來自 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 的呼叫;Claude Code 只會將主對話的呼叫背景化

490* 對 IDE 伺服器的呼叫490* 對 IDE 伺服器的呼叫

491* [非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中的呼叫,除非 `CLAUDE_AUTO_BACKGROUND_TASKS` 設為 `1`,因為單次執行可能在結果送達前就結束491* [非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中的呼叫,除非 `CLAUDE_AUTO_BACKGROUND_TASKS` 設為 `1`,因為一次性執行可能在結果送達前就結束

492 492 

493等待開啟中之[引導對話框](#respond-to-mcp-elicitation-requests)的呼叫,在對話框開啟期間不會被背景化;伺服器是在等待您的輸入,而不是速度慢,因此 Claude Code 會將移動延後至對話框關閉為止。493等待已開啟之[引導對話框](#respond-to-mcp-elicitation-requests)的呼叫,在對話框開啟期間不會被背景化;伺服器是在等待您的輸入,而非速度緩慢,因此 Claude Code 會將移動延後到對話框關閉之後。

494 494 

495### 在伺服器上執行的 MCP 任務495### 在伺服器上執行的 MCP 任務

496 496 

497MCP 任務是 MCP 伺服器使用 [MCP tasks 擴充功能](https://modelcontextprotocol.io/extensions/tasks/overview)自行執行的長時間工作,例如報表匯出或建置。伺服器一接受該工作,Claude 的工具呼叫就會返回,因此除非您[讓 Claude 等待](#make-claude-wait-for-the-result-of-an-mcp-task),否則 Claude 會繼續工作。工作結束時,逐字稿會顯示此情況,而 Claude 會取得結果。請向 Claude 詢問結果。497MCP 任務是 MCP 伺服器使用 [MCP 任務擴充功能](https://modelcontextprotocol.io/extensions/tasks/overview)自行執行的長時間工作,例如報表匯出或建置。伺服器接受該工作後,Claude 的工具呼叫就會返回,因此除非您[讓 Claude 等待](#make-claude-wait-for-the-result-of-an-mcp-task),否則 Claude 會繼續工作。工作結束時,逐字稿會顯示此訊息,且 Claude 會取得結果。請向 Claude 要求結果。

498 498 

499在此期間,頁尾會顯示如 `1 MCP task` 的計數,而 Claude Code 會透過向伺服器檢查其狀態來追蹤該任務。遠端伺服器上的任務在您結束後仍會繼續執行。若要再次追蹤它,請[恢復同一個工作階段](#exit-clear-or-resume-while-an-mcp-task-runs)。499在此期間,頁尾會顯示數量,例如 `1 MCP task`,而 Claude Code 會透過向伺服器檢查任務狀態來追蹤它。遠端伺服器上的任務在您結束後仍會繼續執行。若要再次追蹤它,請[恢復相同的工作階段](#exit-clear-or-resume-while-an-mcp-task-runs)。

500 500 

501> [!NOTE]501> [!NOTE]

502>502>

503> MCP 任務在 Claude Code CLI 中處於公開測試版階段,需要 Claude Code v2.1.304 或更新版本。[呼叫成為 MCP 任務的條件](#requirements-for-mcp-tasks)列出了可使用它們的工作階段與伺服器。503> MCP 任務在 Claude Code CLI 中為公開測試版,需要 Claude Code v2.1.304 或更新版本。[呼叫成為 MCP 任務所需的條件](#requirements-for-mcp-tasks)列出了可使用此功能的工作階段與伺服器。

504 504 

505#### 停止 MCP 任務或取得其結果505#### 停止 MCP 任務或取得其結果

506 506 

507若要停止執行中的任務,請在 [`/tasks`](https://code.claude.com/docs/zh-TW/commands#all-commands) 中選取它並按下 `x`,或請 Claude 停止它。Claude Code 會停止追蹤該任務並要求伺服器取消它,但伺服器仍可能完成它。請先從 `/mcp` 重新連線已中斷連線的伺服器,否則不會送出取消請求,且 Claude Code 會遺忘該任務而無法再次追蹤它。按下 `Esc` 不會停止背景任務。507若要停止執行中的任務,請在 [`/tasks`](https://code.claude.com/docs/zh-TW/commands#all-commands) 中選取它並按 `x`,或請 Claude 代為停止。Claude Code 會停止追蹤該任務並要求伺服器取消它,但伺服器仍可能完成它。請先從 `/mcp` 重新連線已中斷的伺服器,否則不會送出取消請求,且 Claude Code 會忘記該任務而無法再次追蹤。按 `Esc` 不會停止背景任務。

508 508 

509任務結束時,逐字稿中會出現如下的一行:509任務結束時,逐字稿中會出現如下的一行:

510 510 


512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.

513```513```

514 514 

515結果會傳給 Claude,而不是寫入逐字稿,因此請向 Claude 詢問結果。若結果送達時 Claude 處於閒置狀態,Claude 會主動開始處理它。515結果會送給 Claude,而非寫入逐字稿,因此請向 Claude 要求結果。若結果送達時 Claude 處於閒置狀態,Claude 會主動開始處理它。

516 516 

517#### 回答來自 MCP 任務的問題517#### 回答來自 MCP 任務的問題

518 518 

519執行中的任務可以開啟[引導對話框](#respond-to-mcp-elicitation-requests)來要求您輸入。當 `/tasks` 開啟時,對話框會保持隱藏,因此請關閉 `/tasks` 以作答。拒絕或按下 `Esc` 也是對伺服器的一種回答,伺服器隨後會決定任務是否繼續。519執行中的任務可以開啟[引導對話框](#respond-to-mcp-elicitation-requests)來請您提供輸入。`/tasks` 開啟期間,對話框會保持隱藏,因此請關閉 `/tasks` 以回答。拒絕或按 `Esc` 也是對伺服器的一種回答,伺服器接著會決定任務是否繼續。

520 520 

521在[非互動](https://code.claude.com/docs/zh-TW/headless.md)工作階段中,Claude Code 會要求伺服器取消要求輸入的任務,而不會執行您的 [`Elicitation` hook](https://code.claude.com/docs/zh-TW/hooks#elicitation) 或呼叫 Agent SDK 的 `onElicitation` 回呼。521在[非互動](https://code.claude.com/docs/zh-TW/headless.md)工作階段中,Claude Code 會要求伺服器取消請求輸入的任務,而不會執行您的 [`Elicitation` hook](https://code.claude.com/docs/zh-TW/hooks#elicitation) 或呼叫 Agent SDK 的 `onElicitation` 回呼。

522 522 

523#### 在 MCP 任務執行期間結束、清除或恢復523#### 在 MCP 任務執行期間結束、清除或恢復

524 524 

525遠端伺服器上的任務在您結束後仍會繼續執行。stdio 伺服器的程序會在 Claude Code 結束時停止,儘管其任務在 `/tasks` 中顯示 `runs on the server; survives exiting this session`。除非該伺服器的文件表示工作會在程序結束後延續,否則請先讓這些任務完成,或在 `/tasks` 中停止它們。525遠端伺服器上的任務在您結束後仍會繼續執行。stdio 伺服器的程序會在 Claude Code 結束時停止,即使其任務在 `/tasks` 中顯示 `runs on the server; survives exiting this session`。除非該伺服器的文件說明工作會在程序結束後延續,否則請先讓這些任務完成,或在 `/tasks` 中停止它們。

526 526 

527| 情況 | 任務會發生什麼事 | 您可以做什麼 |527| 情況 | 任務會發生什麼事 | 您可以怎麼做 |

528| - | - | - |528| - | - | - |

529| 您執行 `/clear` 或 `/branch`,或 `/resume` 另一個工作階段 | 只要 Claude Code 保持開啟,結果就會送達您目前的對話 | 結束之後,使用 `claude --resume` 恢復任務開始時所在的工作階段 |529| 您執行 `/clear` 或 `/branch`,或以 `/resume` 切換到另一個工作階段 | 在 Claude Code 保持開啟期間,結果會送達您目前的對話 | 結束之後,以 `claude --resume` 恢復任務開始時所在的工作階段 |

530| 您結束 Claude Code | 沒有任何結束選項會取消遠端伺服器的任務,即使結束對話框將其列在 `The following will stop when you exit:` 之下 | 先在 `/tasks` 中停止它,或稍後恢復同一個工作階段 |530| 您結束 Claude Code | 沒有任何結束選項會取消遠端伺服器的任務,即使結束對話框將其列在 `The following will stop when you exit:` 之下 | 先在 `/tasks` 中停止它,或稍後恢復相同的工作階段 |

531| 您以互動方式回到任務的工作階段:`claude --resume`、`claude --continue` 或 `/resume` | 伺服器連線後,Claude Code 會再次追蹤該任務;若任務在此期間已完成且伺服器仍知道它,Claude 會取得結果 | 保持伺服器的名稱和連線設定不變 |531| 您以互動方式返回任務的工作階段:`claude --resume`、`claude --continue` 或 `/resume` | 伺服器連線後,Claude Code 會再次追蹤該任務,若任務在此期間已完成且伺服器仍記得它,Claude 會取得結果 | 保持伺服器的名稱和連線設定不變 |

532| 您在單次 `claude -p "<prompt>"` 執行中使用 `--resume` 或 `--continue` 恢復任務的工作階段 | 該執行不會追蹤該任務 | 以互動方式恢復,或使用 `--input-format stream-json` 恢復 |532| 您在一次性 `claude -p "<prompt>"` 執行中以 `--resume` 或 `--continue` 恢復任務的工作階段 | 該次執行不會追蹤該任務 | 以互動方式恢復,或搭配 `--input-format stream-json` 恢復 |

533| 您開始新的工作階段或使用 `--fork-session` | 新的工作階段不會追蹤該任務 | 恢復啟動該任務的工作階段 |533| 您開始新的工作階段或使用 `--fork-session` | 新的工作階段不會追蹤該任務 | 恢復開始該任務的工作階段 |

534 534 

535#### 呼叫成為 MCP 任務的條件535#### 呼叫成為 MCP 任務所需的條件

536 536 

537只有在以下所有條件都成立時,工具呼叫才會成為 MCP 任務:537只有在以下所有條件皆成立時,工具呼叫才會成為 MCP 任務:

538 538 

539* 伺服器支援任務539* 伺服器支援任務

540* 伺服器是以[協定修訂版 2026-07-28](#mcp-client-runtimes) 連線的 HTTP、stdio 或 claude.ai 連接器伺服器。設定 [`MCP_SDK_GENERATION=v1` 或 `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/zh-TW/env-vars) 會排除此情況540* 伺服器是以[協定修訂版 2026-07-28](#mcp-client-runtimes) 連線的 HTTP、stdio 或 claude.ai 連接器伺服器。設定 [`MCP_SDK_GENERATION=v1` 或 `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/zh-TW/env-vars) 會排除此條件

541* 工作階段會[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching),因此不能在 Amazon Bedrock 等第三方供應商上,也不能關閉遙測或旗標擷取541* 工作階段會[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching),因此不是在 Amazon Bedrock 之類的第三方供應商上,也未關閉遙測或旗標擷取

542* Anthropic 已為您這類工作階段開啟 MCP 任務。在 v2.1.304 或更新版本上,這涵蓋終端機 CLI 工作階段、[Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 工作階段和 [GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions.md) 執行。其他使用介面,例如 [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)和[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md),沒有 MCP 任務542* Anthropic 已為您這類工作階段開啟 MCP 任務。在 v2.1.304 或更新版本上,這涵蓋終端機 CLI 工作階段、[Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 工作階段和 [GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions.md) 執行。其他使用介面,例如 [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)和[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md),沒有 MCP 任務

543* 呼叫來自主要對話,而非來自 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md)543* 呼叫來自主對話,而非來自 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md)

544* 工作階段是互動式的,或者 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 工作階段或讀取 `--input-format stream-json` 的 `claude -p` 執行具備:544* 工作階段為互動式,或是讀取 `--input-format stream-json` 的 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 工作階段或 `claude -p` 執行具備:

545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 為 `1`545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 為 `1`

546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` 不為 `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` 不為 `1`

547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` 不為 `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` 不為 `0`

548 548 

549其他任何呼叫都是一般的工具呼叫,而[長時間工具呼叫的自動背景化](#automatic-backgrounding-of-long-tool-calls)說明了其中哪些會移至背景。549其他任何呼叫都是一般工具呼叫,而[長時間工具呼叫的自動背景化](#automatic-backgrounding-of-long-tool-calls)說明了其中哪些會移至背景。

550 550 

551請保持 Agent SDK 或 stream-json 工作階段的輸入開啟,因為輸入關閉後,執行[不會等待 MCP 任務](https://code.claude.com/docs/zh-TW/headless.md#mcp-work-when-a-non-interactive-run-ends)。單次 `claude -p "<prompt>"` 執行不會取得 MCP 任務。551請保持 Agent SDK 或 stream-json 工作階段的輸入開啟,因為輸入關閉後,執行[不會等待 MCP 任務](https://code.claude.com/docs/zh-TW/headless.md#mcp-work-when-a-non-interactive-run-ends)。一次性 `claude -p "<prompt>"` 執行不會有 MCP 任務。

552 552 

553#### MCP 任務上的狀態訊息553#### MCP 任務的狀態訊息

554 554 

555這些訊息出現在任務的 `/tasks` 項目或其結束的逐字稿行中,表示 Claude Code 無法連繫到伺服器或任務。當其中一則顯示在 `/tasks` 中時,該工作可能仍在執行:Claude Code 不會干預它,並持續檢查。`300s` 和設定相關的訊息即使在恢復聯繫後仍會保留在項目上。555這些訊息出現在任務的 `/tasks` 項目或其結束時的逐字稿行中,表示 Claude Code 無法連繫伺服器或任務。當其中一則訊息顯示在 `/tasks` 中時,工作可能仍在執行:Claude Code 不會干預它並持續檢查。`300s` 和設定相關訊息即使在恢復連繫後仍會留在項目上。

556 556 

557| 訊息 | 發生了什麼事 | 您可以做什麼 |557| 訊息 | 發生了什麼事 | 您可以怎麼做 |

558| - | - | - |558| - | - | - |

559| `reconnecting…` | 恢復後伺服器尚未回應,或狀態檢查沒有得到回應 | 若持續顯示,請從 `/mcp` 重新連線 |559| `reconnecting…` | 自恢復以來伺服器尚未回應,或狀態檢查未獲回應 | 若持續出現,請從 `/mcp` 重新連線 |

560| `needs a sign-in to <server>` | 伺服器拒絕了狀態檢查 | 從 `/mcp` 登入 |560| `needs a sign-in to <server>` | 伺服器拒絕了狀態檢查 | 從 `/mcp` 登入 |

561| `status requests come back with errors; retrying…` | 伺服器或其前方的代理伺服器以錯誤回應狀態檢查 | 在 Claude Code 重試時等待 |561| `status requests come back with errors; retrying…` | 伺服器或其前方的代理伺服器以錯誤回應狀態檢查 | 在 Claude Code 重試期間等待 |

562| `server '<name>' did not reconnect within 300s` | 五分鐘內沒有任何得到回應的檢查,例如連線中斷或伺服器已停用 | 從 `/mcp` 重新連線 |562| `server '<name>' did not reconnect within 300s` | 五分鐘內沒有任何檢查獲得回應,例如連線中斷或伺服器已停用 | 從 `/mcp` 重新連線 |

563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | 五分鐘後伺服器仍要求登入 | 從 `/mcp` 登入 |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | 五分鐘後伺服器仍要求登入 | 從 `/mcp` 登入 |

564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | 五分鐘內都是錯誤回應 | 檢查伺服器本身的健康狀態或日誌 |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | 五分鐘內都是錯誤回應 | 檢查伺服器本身的健康狀況或日誌 |

565| `server '<name>' is not configured in this session; the task may still be running on it` | 工作階段中沒有該名稱的伺服器,例如它已被移除、重新命名或未包含在 `--mcp-config` 中,或 claude.ai 連接器仍在載入 | 以相同名稱還原該伺服器,然後再次恢復工作階段。若是載入中的連接器,則無需任何操作:連接器出現後,Claude Code 就會追蹤該任務 |565| `server '<name>' is not configured in this session; the task may still be running on it` | 工作階段中沒有該名稱的伺服器,例如它已被移除、重新命名或未包含在 `--mcp-config` 中,或某個 claude.ai 連接器仍在載入 | 以相同名稱還原該伺服器,然後再次恢復工作階段。若是載入中的連接器,則無須處理:Claude Code 會在它出現後追蹤該任務 |

566| 以 `server '<name>' was reconfigured to a different transport since this task was created` 開頭的訊息 | 存在該名稱的伺服器,但其連線設定自任務開始後已變更,例如其 URL、command、args、env、headers 或 timeout | 還原先前的設定,然後再次恢復工作階段 |566| 以 `server '<name>' was reconfigured to a different transport since this task was created` 開頭的訊息 | 存在該名稱的伺服器,但其連線設定自任務開始後已變更,例如其 URL、command、args、env、headers 或 timeout | 還原先前的設定,然後再次恢復工作階段 |

567| `the server rejected this task's id; asking again…` | 伺服器表示它不認識該任務 ID。Claude Code 會持續詢問最多五分鐘 | 等待:若伺服器再次識別該 ID,訊息就會清除,否則接著會出現 `outcome unknown.` 行 |567| `the server rejected this task's id; asking again…` | 伺服器表示它不認得該任務 ID。Claude Code 會持續詢問最多五分鐘 | 等待:若伺服器再次認得該 ID,訊息會清除,否則會接著出現 `outcome unknown.` 行 |

568| 以 `outcome unknown.` 結尾的逐字稿行,其中一種形式為 `expired on the server: outcome unknown.` | 伺服器拒絕了該 ID 或以其他永久性錯誤拒絕,且 Claude Code 已停止追蹤該任務 | 第二次呼叫可能會重複該工作。再次呼叫該工具之前,請向伺服器確認已完成的內容,例如請 Claude 使用該伺服器的其他工具 |568| 以 `outcome unknown.` 結尾的逐字稿行,其中一種形式為 `expired on the server: outcome unknown.` | 伺服器拒絕了該 ID,或以其他永久性錯誤拒絕,且 Claude Code 已停止追蹤該任務 | 再次呼叫可能會重複執行工作。在再次呼叫該工具之前,請從伺服器查明已完成哪些工作,例如請 Claude 使用該伺服器的其他工具 |

569 569 

570#### MCP 任務的時間限制570#### MCP 任務的時間限制

571 571 

572預設情況下,背景中的任務沒有 Claude Code 時間限制。[工具呼叫時間限制](#time-limits-on-mcp-tool-calls)(包括實際時間限制和閒置逾時)在伺服器以任務回應該呼叫之前適用。若您[讓 Claude 等待](#make-claude-wait-for-the-result-of-an-mcp-task),這些限制會在整個任務期間適用。得到回應的狀態檢查會計為閒置逾時的活動。572預設情況下,背景中的任務沒有 Claude Code 時間限制。[工具呼叫時間限制](#time-limits-on-mcp-tool-calls)(包括實際時間上限和閒置逾時)會持續適用,直到伺服器以任務回應該呼叫為止。若您[讓 Claude 等待](#make-claude-wait-for-the-result-of-an-mcp-task),這些限制會適用於整個任務。獲得回應的狀態檢查會計為閒置逾時的活動。

573 573 

574#### 讓 Claude 等待 MCP 任務的結果574#### 讓 Claude 等待 MCP 任務的結果

575 575 

576若要讓 Claude 在互動式工作階段中等待任務的結果,請設定以下兩個環境變數之一,例如在 [`settings.json`](https://code.claude.com/docs/zh-TW/settings) 的 `env` 區塊中:576若要在互動式工作階段中讓 Claude 等待任務結果,請設定兩個環境變數之一,例如在 [`settings.json`](https://code.claude.com/docs/zh-TW/settings) 的 `env` 區塊中:

577 577 

578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `0`**:Claude 會等待每個 MCP 工具呼叫直到呼叫結束578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `0`**:Claude 會等待每個 MCP 工具呼叫直到呼叫結束

579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`**:Claude 會等待任務的結果。當[自動背景化](#automatic-backgrounding-of-long-tool-calls)開啟時,它預設會在兩分鐘後移動該呼叫,因此短任務會就地完成,長任務則不會阻擋您。被移動的呼叫是一般的背景呼叫,而非 MCP 任務。它不會在結束工作階段後延續579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`**:Claude 會等待任務的結果。在[自動背景化](#automatic-backgrounding-of-long-tool-calls)開啟期間,它預設會在兩分鐘後移動該呼叫,因此短任務會就地完成,而長任務不會阻擋您。被移動的呼叫是一般背景呼叫,而非 MCP 任務。它不會在結束工作階段後保留

580 580 

581在 Claude 等待期間,按下 `Esc` 或達到[實際時間限制或閒置逾時](#time-limits-on-mcp-tasks)都會結束該呼叫,且 Claude Code 會要求伺服器取消該任務。581在 Claude 等待期間,按 `Esc` 或達到[實際時間上限或閒置逾時](#time-limits-on-mcp-tasks)會結束該呼叫,且 Claude Code 會要求伺服器取消該任務。

582 582 

583若您將 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 設為 `1` 或以 [bare 模式](https://code.claude.com/docs/zh-TW/headless.md#start-faster-with-bare-mode)啟動,僅此並不會讓 Claude 等待 MCP 任務。此範例將 `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` 設為 `0`,因此 Claude 會等待每個 MCP 工具呼叫:583若您將 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 設為 `1` 或以 [bare 模式](https://code.claude.com/docs/zh-TW/headless.md#start-faster-with-bare-mode)啟動,光是這樣並不會讓 Claude 等待 MCP 任務。此範例將 `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` 設為 `0`,因此 Claude 會等待每個 MCP 工具呼叫:

584 584 

585```json settings.json theme={null}585```json settings.json theme={null}

586{586{


590}590}

591```591```

592 592 

593### 供伺服器作者參考的 MCP 任務593### 給伺服器作者的 MCP 任務說明

594 594 

595若您建置 MCP 伺服器,可以用任務來回應長時間執行的 `tools/call`。[MCP tasks 擴充功能](https://modelcontextprotocol.io/extensions/tasks/overview)定義了您要傳送的訊息。在[協定修訂版 2026-07-28](#mcp-client-runtimes) 連線上,每個請求都會在 `params._meta["io.modelcontextprotocol/clientCapabilities"]` 攜帶 Claude Code 的用戶端能力,並在 `extensions` 下包含 `"io.modelcontextprotocol/tasks": {}`。[無法成為任務](#requirements-for-mcp-tasks)的 `tools/call` 請求會省略該擴充功能。595若您建置 MCP 伺服器,您可以用任務回應長時間執行的 `tools/call`。[MCP 任務擴充功能](https://modelcontextprotocol.io/extensions/tasks/overview)定義了您要傳送的訊息。在[協定修訂版 2026-07-28](#mcp-client-runtimes) 連線上,每個請求都會在 `params._meta["io.modelcontextprotocol/clientCapabilities"]` 中帶有 Claude Code 的用戶端能力,並在 `extensions` 下包含 `"io.modelcontextprotocol/tasks": {}`。[無法成為任務](#requirements-for-mcp-tasks)的 `tools/call` 請求會省略該擴充功能。

596 596 

597#### 以任務回應呼叫597#### 以任務回應呼叫

598 598 

599只有在請求攜帶該擴充功能時才以任務回應,否則呼叫會以工具錯誤 `Unsupported result type 'task' for tools/call` 失敗。若您的回應沒有 `taskId` 或沒有有效的 `status`,呼叫也會以相同方式失敗。任務物件是您 `tools/call` 回應的 JSON-RPC `result`,不需要 `content` 陣列,此處也包含選用的 `statusMessage` 和 `pollIntervalMs`:599只有在請求帶有該擴充功能時才以任務回應,否則呼叫會以工具錯誤 `Unsupported result type 'task' for tools/call` 失敗。若您的回應沒有 `taskId` 或沒有有效的 `status`,呼叫也會以相同方式失敗。任務物件是您 `tools/call` 回應的 JSON-RPC `result`,不需要 `content` 陣列,此處還包含選用的 `statusMessage` 和 `pollIntervalMs`:

600 600 

601```json theme={null}601```json theme={null}

602{602{


613 613 

614| 欄位 | Claude Code 如何處理 |614| 欄位 | Claude Code 如何處理 |

615| - | - |615| - | - |

616| `resultType` | 設為 `"task"` 以將回覆標示為任務。若沒有此欄位,Claude Code 會將回覆讀取為一般結果 |616| `resultType` | 將其設為 `"task"` 以將回應標記為任務。若沒有此欄位,Claude Code 會將回應讀取為一般結果 |

617| `taskId` | 必要。最多 128 個可列印的 ASCII 字元且不含空格,否則 Claude 會收到以 `MCP server "<name>" returned a malformed task handle for tool "<tool>"` 開頭的工具錯誤。請讓該 ID 在不同連線間都能被回應,因為恢復後 Claude Code 會在新的連線上詢問它 |617| `taskId` | 必要。最多 128 個不含空格的可列印 ASCII 字元,否則 Claude 會收到以 `MCP server "<name>" returned a malformed task handle for tool "<tool>"` 開頭的工具錯誤。請讓該 ID 在不同連線間都能被回應,因為恢復後 Claude Code 會在新的連線上詢問它 |

618| `status` | 必要。為 `working`、`input_required`、`completed`、`failed` 或 `cancelled` 之一。其他值會產生 `Unsupported result type` 錯誤 |618| `status` | 必要。為 `working`、`input_required`、`completed`、`failed` 或 `cancelled` 之一。其他值會導致 `Unsupported result type` 錯誤 |

619| `createdAt`、`lastUpdatedAt`、`ttlMs` | tasks 擴充功能要求提供,且 `ttlMs` 可以是 `null`。Claude Code 不會因為任務的 `ttlMs` 已過而捨棄它 |619| `createdAt`、`lastUpdatedAt`、`ttlMs` | 任務擴充功能所要求,且 `ttlMs` 可為 `null`。Claude Code 不會因為任務的 `ttlMs` 已過期而捨棄它 |

620| `pollIntervalMs` | 選用。`tasks/get` 請求之間的毫秒數,限制在 250 到 30000 之間。當此欄位不存在或為 `null` 時,Claude Code 使用 2000,並會從每個 `tasks/get` 回應中重新讀取該值 |620| `pollIntervalMs` | 選用。兩次 `tasks/get` 請求之間的毫秒數,限制在 250 到 30000 之間。當此欄位不存在或為 `null` 時,Claude Code 使用 2000,並會從每個 `tasks/get` 回應中重新讀取該值 |

621| `statusMessage` | 選用。`/tasks` 會顯示您最新 `tasks/get` 回應中的值,而非這第一個回應中的值,且省略此欄位的回應會將其清除。[Claude Code 的狀態訊息](#status-messages-on-an-mcp-task)可能會取代它 |621| `statusMessage` | 選用。`/tasks` 會顯示您最新 `tasks/get` 回應中的值,而非這第一個回應中的值,且省略此欄位的回應會將其清除。[來自 Claude Code 的狀態訊息](#status-messages-on-an-mcp-task)可能會取代它 |

622 622 

623Claude Code 接受省略 `createdAt`、`lastUpdatedAt` 或 `ttlMs`,或將 `pollIntervalMs` 設為 `null` 的任務回應。在 v2.1.317 之前,呼叫則會以 `Unsupported result type` 錯誤失敗。若也要與這些版本相容,請傳送 tasks 擴充功能要求的三個欄位,並將 `pollIntervalMs` 以數字傳送或完全不傳送。623Claude Code 接受省略 `createdAt`、`lastUpdatedAt` 或 `ttlMs`,或將 `pollIntervalMs` 設為 `null` 的任務回應。在 v2.1.317 之前,呼叫會改為以 `Unsupported result type` 錯誤失敗。若也要與那些版本相容,請傳送任務擴充功能所要求的三個欄位,並將 `pollIntervalMs` 以數字傳送或完全不傳送。

624 624 

625在 HTTP 或 claude.ai 連接器伺服器上,任務回應必須在[每個請求的計時器](#time-limits-on-mcp-tool-calls)內開始,因此請先接受工作並回應,然後再執行工作。625在 HTTP 或 claude.ai 連接器伺服器上,任務回應必須在[每請求計時器](#time-limits-on-mcp-tool-calls)內開始,因此請先接受工作並回應,再執行工作。

626 626 

627#### 回報狀態、結果與問題627#### 回報狀態、結果和問題

628 628 

629在任務回應之後,Claude Code 會立即傳送帶有 `{ "taskId": ... }` 的 `tasks/get`,然後每個輪詢間隔重複一次。tasks 擴充功能要求您的回應攜帶 `"resultType": "complete"`,以及 `taskId`、`status`、`createdAt`、`lastUpdatedAt` 和 `ttlMs`。`ttlMs` 可以是 `null`,而 `statusMessage` 和 `pollIntervalMs` 為選用。此範例回報建置已完成:629在任務回應之後,Claude Code 會立即傳送帶有 `{ "taskId": ... }` 的 `tasks/get`,然後每個輪詢間隔重複一次。任務擴充功能要求您的回應帶有 `"resultType": "complete"`,以及 `taskId`、`status`、`createdAt`、`lastUpdatedAt` 和 `ttlMs`。`ttlMs` 可為 `null`,而 `statusMessage` 和 `pollIntervalMs` 為選用。此範例回報建置已完成:

630 630 

631```json theme={null}631```json theme={null}

632{632{


645| 狀態、方法或回應 | Claude Code 如何處理 |645| 狀態、方法或回應 | Claude Code 如何處理 |

646| - | - |646| - | - |

647| `working` | 持續輪詢 |647| `working` | 持續輪詢 |

648| `completed` | 將頂層 `result` 物件中的一般 `tools/call` 結果提供給 Claude。其中的 `isError: true` 會回報為失敗 |648| `completed` | 將頂層 `result` 物件中的一般 `tools/call` 結果提供給 Claude。其中的 `isError: true` 會被回報為失敗 |

649| `failed` | 將頂層 `error` 物件 `{ code, message, data }` 的 `message` 告知 Claude,tasks 擴充功能要求失敗的任務必須包含此物件。若沒有該 `message`,Claude 會改為收到 `statusMessage`,否則為 `Task failed` |649| `failed` | 將頂層 `error` 物件 `{ code, message, data }` 的 `message` 告知 Claude,任務擴充功能要求失敗的任務須包含此物件。若沒有該 `message`,Claude 會改為收到 `statusMessage`,否則為 `Task failed` |

650| `cancelled` | 將 `statusMessage` 告知 Claude,否則為 `Task was cancelled by the server` |650| `cancelled` | 將 `statusMessage` 告知 Claude,否則為 `Task was cancelled by the server` |

651| `input_required` | 讀取 `inputRequests`,這是一個將您選擇的鍵對應至 `{ method, params }` 的物件。Claude Code 會透過帶有 `{ taskId, inputResponses }` 的 `tasks/update` 對每個鍵回答一次,其中 `inputResponses` 會將相同的鍵對應至該請求的結果。每個任務超過 16 個的鍵會被忽略 |651| `input_required` | 讀取 `inputRequests`,這是一個將您選擇的鍵對應到 `{ method, params }` 的物件。Claude Code 會透過帶有 `{ taskId, inputResponses }` 的 `tasks/update` 對每個鍵回應一次,其中 `inputResponses` 將相同的鍵對應到該請求的結果。每個任務超過 16 個的鍵會被忽略 |

652| `inputRequests` 中的方法 | `elicitation/create` 只在互動式終端機工作階段中提供服務,`roots/list` 則在所有地方都提供。當 Claude Code 無法處理某個請求時,它會要求伺服器取消該任務 |652| `inputRequests` 中的方法 | `elicitation/create` 只在互動式終端機工作階段中提供服務,`roots/list` 則在所有地方皆提供。當 Claude Code 無法處理某個請求時,會要求伺服器取消該任務 |

653| 其他 `status` 值 | Claude Code 會要求伺服器取消該任務,並向 Claude 回報為失敗 |653| 其他 `status` 值 | Claude Code 會要求伺服器取消該任務,並向 Claude 回報為失敗 |

654| JSON-RPC 錯誤 `-32602` | 讀取為未知的任務 ID。對於背景中的任務,Claude Code 會持續詢問最多五分鐘,然後向 Claude 回報結果未知 |654| JSON-RPC 錯誤 `-32602` | 讀取為未知的任務 ID。對於背景中的任務,Claude Code 會持續詢問最多五分鐘,然後向 Claude 回報結果為未知 |

655| `tasks/cancel` | 例如當 Claude 或使用者在伺服器連線期間停止任務時傳送。結束時不會傳送 |655| `tasks/cancel` | 例如當 Claude 或使用者在伺服器連線期間停止任務時傳送。結束時不會傳送 |

656| `tasks/result`、`tasks/list`、`notifications/tasks` | 不會使用,因此請將結果放在您的 `tasks/get` 回應中 |656| `tasks/result`、`tasks/list`、`notifications/tasks` | 不使用,因此請將結果放在您的 `tasks/get` 回應中 |

657 657 

658### 外掛提供的 MCP 伺服器658### 外掛提供的 MCP 伺服器

659 659 

660[外掛](https://code.claude.com/docs/zh-TW/plugins/overview.md)可以捆綁 MCP 伺服器,在您啟用外掛時提供工具與整合功能。660[外掛](https://code.claude.com/docs/zh-TW/plugins/overview.md)可以內含 MCP 伺服器,在您啟用外掛時提供工具與整合功能。

661 661 

662**外掛 MCP 伺服器的運作方式**:662**外掛 MCP 伺服器的運作方式**:

663 663 

664* 外掛在外掛根目錄的 `.mcp.json` 中定義 MCP 伺服器,或內嵌於 `plugin.json` 中664* 外掛在外掛根目錄的 `.mcp.json` 中定義 MCP 伺服器,或直接內嵌於 `plugin.json` 中

665* 當您啟用外掛時,Claude Code 會自動啟動其 MCP 伺服器665* 當您啟用外掛時,Claude Code 會自動啟動其 MCP 伺服器

666* Claude Code 會將外掛 MCP 工具與手動設定的 MCP 工具一併提供666* Claude Code 會將外掛 MCP 工具與手動設定的 MCP 工具一併提供

667* 外掛伺服器的新增與移除是透過安裝或解除安裝外掛來完成,而非使用 `/mcp` 命令。您仍可在 `/mcp` 中[將已安裝的外掛伺服器切換為關閉](#disable-a-server-without-removing-it),這會讓 Claude Code 停止連線至該伺服器,而不會移除外掛667* 外掛伺服器是透過安裝或解除安裝外掛來新增與移除,而非使用 `/mcp` 命令。您仍可在 `/mcp` 中[將已安裝的外掛伺服器切換為關閉](#disable-a-server-without-removing-it),這會讓 Claude Code 停止連線至該伺服器,而不會移除外掛

668 668 

669**外掛 MCP 設定範例**:669**外掛 MCP 設定範例**:

670 670 


700 700 

701**外掛 MCP 功能**:701**外掛 MCP 功能**:

702 702 

703* **自動生命週期**:伺服器會在以下時間點連線與中斷連線:703* **自動生命週期**:伺服器會在以下時機連線與中斷連線:

704 * 在工作階段啟動時,Claude Code 會自動連線已啟用外掛的伺服器。在 `/mcp` 中,您先前使用過的遠端(HTTP 或 SSE)外掛伺服器可能會改為顯示 [`cached` 狀態](#server-status-detail);Claude Code 會在 Claude 首次呼叫其中一個工具時連線該伺服器。當 stdio 外掛伺服器的連線在不到 15 分鐘前失敗時,Claude Code 會[略過該連線](https://code.claude.com/docs/zh-TW/errors.md#skipping-connection-recent-failure-cached)704 * 在工作階段啟動時,Claude Code 會自動連線已啟用外掛的伺服器。在 `/mcp` 中,您先前使用過的遠端(HTTP 或 SSE)外掛伺服器可能會改為顯示 [`cached` 狀態](#server-status-detail);Claude Code 會在 Claude 首次呼叫其某個工具時連線該伺服器。當 stdio 外掛伺服器的連線在不到 15 分鐘前失敗時,Claude Code 會[略過該連線](https://code.claude.com/docs/zh-TW/errors.md#skipping-connection-recent-failure-cached)

705 * 如果您在工作階段期間啟用或停用外掛,Claude Code 會在變更套用時連線或中斷其 MCP 伺服器。[無需重新啟動即可套用外掛變更](https://code.claude.com/docs/zh-TW/plugins/cli-reference.md#reload-plugins)說明了套用的時機。在沒有互動式終端機的工作階段中,`/reload-plugins` 不會連線或中斷外掛 MCP 伺服器;這些變更會在您的下一個工作階段生效705 * 如果您在工作階段期間啟用或停用外掛,Claude Code 會在變更套用時連線或中斷其 MCP 伺服器。[不重新啟動即套用外掛變更](https://code.claude.com/docs/zh-TW/plugins/cli-reference.md#reload-plugins)說明了套用的時機。在沒有互動式終端機的工作階段中,`/reload-plugins` 不會連線或中斷外掛 MCP 伺服器;這些變更會在您的下一個工作階段中生效

706 * 當您重新載入時,Claude Code 會保留設定未變更之外掛伺服器的現有連線;當您從 Agent SDK [取代工作階段的 MCP 伺服器清單](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#mcpsetserversresult)而未指名這些伺服器時,也會如此處理706 * 重新載入時,Claude Code 會保留設定未變更之外掛伺服器的即時連線;當您從 Agent SDK [取代工作階段的 MCP 伺服器清單](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#mcpsetserversresult)而未指名這些伺服器時,也會同樣處理

707 * 當您在 v2.1.246 或更新版本中[使用 `/cd` 移動工作階段](https://code.claude.com/docs/zh-TW/permissions#move-the-session-to-another-directory)時,Claude Code 會連線新目錄設定所啟用之外掛的伺服器,並中斷不再啟用之外掛的伺服器,因此移動後您不需要執行 `/reload-plugins`707 * 當您在 v2.1.246 或更新版本上[使用 `/cd` 移動工作階段](https://code.claude.com/docs/zh-TW/permissions#move-the-session-to-another-directory)時,Claude Code 會連線新目錄設定所啟用之外掛的伺服器,並中斷不再啟用之外掛的伺服器,因此移動後您不需要執行 `/reload-plugins`

708 * 在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,對尚未連線之外掛伺服器的 MCP 呼叫(例如在閒置的工作階段剛喚醒後)會依需求啟動該伺服器,並等待其連線708 * 在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,對尚未連線的外掛伺服器發出 MCP 呼叫(例如在閒置的工作階段剛喚醒後),會視需要啟動該伺服器並等待其連線

709* **路徑預留位置**:`${CLAUDE_PLUGIN_ROOT}` 會解析為外掛的安裝目錄,`${CLAUDE_PLUGIN_DATA}` 會解析為其[持久狀態](https://code.claude.com/docs/zh-TW/plugins/components.md#path-variables-and-persistent-data)目錄,而 `${CLAUDE_PROJECT_DIR}` 會解析為穩定的專案根目錄。替換適用於:709* **路徑預留位置**:`${CLAUDE_PLUGIN_ROOT}` 會解析為外掛的安裝目錄,`${CLAUDE_PLUGIN_DATA}` 解析為其[持久狀態](https://code.claude.com/docs/zh-TW/plugins/components.md#path-variables-and-persistent-data)目錄,`${CLAUDE_PROJECT_DIR}` 則解析為穩定的專案根目錄。替換適用於:

710 * `stdio` 伺服器:`command`、`args`、`env`710 * `stdio` 伺服器:`command`、`args`、`env`

711 * `http`、`sse` 和 `ws` 伺服器:`url`、`headers` 和 `headersHelper`711 * `http`、`sse` 和 `ws` 伺服器:`url`、`headers` 和 `headersHelper`

712* **使用者環境存取**:可存取與手動設定之伺服器相同的環境變數712* **使用者環境存取**:可存取與手動設定伺服器相同的環境變數

713* **多種傳輸類型**:支援 stdio、SSE、HTTP 和 WebSocket 傳輸,但傳輸支援可能因伺服器而異713* **多種傳輸類型**:支援 stdio、SSE、HTTP 和 WebSocket 傳輸,但傳輸支援可能因伺服器而異

714 714 

715外掛伺服器會顯示在 `/mcp` 中,並附有表示其來自外掛的標示。715外掛伺服器會顯示在 `/mcp` 中,並附有標示其來自外掛的指示。

716 716 

717`claude mcp get` 會隱藏為外掛之 stdio 或 WebSocket 伺服器設定的值,因為這些值可能包含憑證:717`claude mcp get` 會隱藏為外掛的 stdio 或 WebSocket 伺服器所設定的值,因為這些值可能包含憑證:

718 718 

719* **stdio 伺服器**:會輸出 `Command: stdio`、一行空白的 `Args:`,並將每個環境變數輸出為 `NAME=[REDACTED]`719* **stdio 伺服器**:會印出 `Command: stdio`、一行空的 `Args:`,並將每個環境變數顯示為 `NAME=[REDACTED]`

720* **WebSocket 伺服器**:會輸出 `URL: ws`,並將每個標頭輸出為 `<name>: [REDACTED]`,而 `claude mcp list` 會以 `ws` 取代 URL 顯示720* **WebSocket 伺服器**:會印出 `URL: ws`,並將每個標頭顯示為 `<name>: [REDACTED]`,而 `claude mcp list` 會以 `ws` 取代 URL 顯示

721 721 

722若要查看外掛設定的內容,請[在磁碟上找到該外掛](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-plugins-on-disk),並閱讀其 `.mcp.json` 或 `plugin.json`。722若要查看外掛設定的內容,請[在磁碟上找到該外掛](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-plugins-on-disk)並閱讀其 `.mcp.json` 或 `plugin.json`。

723 723 

724**外掛 MCP 工具名稱**:724**外掛 MCP 工具名稱**:

725 725 

726來自外掛捆綁之 MCP 伺服器的工具,其可呼叫名稱同時包含外掛名稱與伺服器鍵。完整形式為 `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`,其中 `A-Z`、`a-z`、`0-9`、`_` 和 `-` 以外的任何字元都會被替換為 `_`。以名為 `my-plugin` 之外掛中捆綁的 `database-tools` 伺服器為例,`query` 工具的呼叫名稱為:726來自外掛內含 MCP 伺服器的工具,其可呼叫名稱同時包含外掛名稱與伺服器鍵。完整形式為 `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`,其中 `A-Z`、`a-z`、`0-9`、`_` 和 `-` 以外的任何字元都會被替換為 `_`。以內含於名為 `my-plugin` 之外掛中的 `database-tools` 伺服器為例,`query` 工具的可呼叫名稱為:

727 727 

728```728```

729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query

730```730```

731 731 

732在[權限規則](https://code.claude.com/docs/zh-TW/permissions.md)、skill 的 `allowed-tools` 清單、[subagent 的 `tools` 欄位](https://code.claude.com/docs/zh-TW/sub-agents#available-tools)或 [hook matcher](https://code.claude.com/docs/zh-TW/hooks.md#match-mcp-tools) 中參照該工具時,請使用此完整名稱。針對單純伺服器鍵撰寫的 hook matcher(例如 `mcp__database-tools__.*`)永遠不會對外掛捆綁的伺服器觸發。732在[權限規則](https://code.claude.com/docs/zh-TW/permissions.md)、skill 的 `allowed-tools` 清單、[subagent 的 `tools` 欄位](https://code.claude.com/docs/zh-TW/sub-agents#available-tools)或 [hook matcher](https://code.claude.com/docs/zh-TW/hooks.md#match-mcp-tools) 中參照該工具時,請使用此完整名稱。針對單純伺服器鍵撰寫的 hook matcher(例如 `mcp__database-tools__.*`)永遠不會對外掛內含的伺服器觸發。

733 733 

734伺服器本身會以範圍名稱 `plugin:<plugin-name>:<server-name>` 註冊,例如 `plugin:my-plugin:database-tools`。在需要已設定之伺服器名稱的地方請使用該名稱,例如 [`mcp_tool` hook 的 `server` 欄位](https://code.claude.com/docs/zh-TW/hooks#mcp-tool-hook-fields)。734伺服器本身會以範圍名稱 `plugin:<plugin-name>:<server-name>` 註冊,例如 `plugin:my-plugin:database-tools`。在需要已設定伺服器名稱的地方,請使用該名稱,例如 [`mcp_tool` hook 的 `server` 欄位](https://code.claude.com/docs/zh-TW/hooks#mcp-tool-hook-fields)。

735 735 

736如需在外掛中捆綁 MCP 伺服器的詳細資訊,請參閱[外掛元件參考](https://code.claude.com/docs/zh-TW/plugins/components.md#mcp-servers)。736關於在外掛中內含 MCP 伺服器的詳細資訊,請參閱[外掛元件參考](https://code.claude.com/docs/zh-TW/plugins/components.md#mcp-servers)。

737 737 

738## MCP 安裝範圍738## MCP 安裝範圍

739 739 


1800* **Claude Opus 4.5、Sonnet 4.5、Haiku 4.5 及更新版本**:工具搜尋預設為開啟,與 Anthropic API 上相同。1800* **Claude Opus 4.5、Sonnet 4.5、Haiku 4.5 及更新版本**:工具搜尋預設為開啟,與 Anthropic API 上相同。

1801* **較早的 Agent Platform 模型**:Claude Code 預先載入所有 MCP 工具,因為它們的服務堆疊拒絕所需的測試版標頭。`ENABLE_TOOL_SEARCH=true` 不會覆寫此設定。1801* **較早的 Agent Platform 模型**:Claude Code 預先載入所有 MCP 工具,因為它們的服務堆疊拒絕所需的測試版標頭。`ENABLE_TOOL_SEARCH=true` 不會覆寫此設定。

1802 1802 

1803在 v2.1.221 之前,Claude Code 在 Google Cloud 的 Agent Platform 上對所有模型停用工具搜尋,除非您設定 `ENABLE_TOOL_SEARCH=true`。

1804 

1805使用 `ENABLE_TOOL_SEARCH` 環境變數控制工具搜尋行為:1803使用 `ENABLE_TOOL_SEARCH` 環境變數控制工具搜尋行為:

1806 1804 

1807| 值 | 行為 |1805| 值 | 行為 |

model-config.md +3 −3

Details

71* **Fable 5.2**:執行 `/model fable`,或以 `claude --model fable` 啟動。在 [Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 工作階段中,請改為執行 `/model claude-fable-5-2`。71* **Fable 5.2**:執行 `/model fable`,或以 `claude --model fable` 啟動。在 [Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 工作階段中,請改為執行 `/model claude-fable-5-2`。

72* **Fable 5.1 或 Fable 5**:透過模型 ID 選擇。在 Anthropic API 上,執行 `/model claude-fable-5-1` 或 `/model claude-fable-5`,或以 `claude --model claude-fable-5-1` 啟動。在其他供應商上,請使用您供應商的模型 ID,或使用 `ANTHROPIC_DEFAULT_FABLE_MODEL` [固定它](#pin-models-for-third-party-deployments)。72* **Fable 5.1 或 Fable 5**:透過模型 ID 選擇。在 Anthropic API 上,執行 `/model claude-fable-5-1` 或 `/model claude-fable-5`,或以 `claude --model claude-fable-5-1` 啟動。在其他供應商上,請使用您供應商的模型 ID,或使用 `ANTHROPIC_DEFAULT_FABLE_MODEL` [固定它](#pin-models-for-third-party-deployments)。

73 73 

74在 Pro、Max、Team 和 Enterprise 方案中,儲存在您使用者設定中的 `claude-fable-5-1` 模型會移轉至 `fable` 別名:74在 Pro、Max、Ultra、Team 和 Enterprise 方案中,儲存在您使用者設定中的 `claude-fable-5-1` 模型會移轉至 `fable` 別名:

75 75 

76* **Pro 或 Max 方案**:此移轉會在您首次執行 v2.1.321 或更新版本時發生。在終端機中,啟動時的模型列可能會顯示一次 `(auto-updated)`。76* **Pro、Max 或 Ultra 方案**:此移轉會在您首次執行 v2.1.321 或更新版本時發生。在終端機中,啟動時的模型列可能會顯示一次 `(auto-updated)`。

77* **Team 或 Enterprise 方案**:此移轉會等待您組織的設定,因此可能在之後的某次啟動時才發生,或完全不會發生。它會從下一個工作階段起套用,且不會顯示 `(auto-updated)` 列。若要檢查您的模型,請執行 `/model`。77* **Team 或 Enterprise 方案**:此移轉會等待您組織的設定,因此可能在之後的某次啟動時才發生,或完全不會發生。它會從下一個工作階段起套用,且不會顯示 `(auto-updated)` 列。若要檢查您的模型,請執行 `/model`。

78 78 

79移轉之後,工作階段會以 Fable 5.2 的預設 effort 啟動,除非您已為其[設定等級](#adjust-effort-level)。Console 帳戶、第三方供應商,以及專案、本機或受管設定會保留 `claude-fable-5-1`。79移轉之後,工作階段會以 Fable 5.2 的預設 effort 啟動,除非您已為其[設定等級](#adjust-effort-level)。Console 帳戶、第三方供應商,以及專案、本機或受管設定會保留 `claude-fable-5-1`。


97 97 

98視您的方案和席位等級而定,Fable 的使用量可能會計入[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),而非使用您方案內含的限額。在此情況下,`/model` 選擇器會在 Fable 列上顯示「Requires usage credits」。若要管理用量點數,請參閱[為您的訂閱新增用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)。98視您的方案和席位等級而定,Fable 的使用量可能會計入[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),而非使用您方案內含的限額。在此情況下,`/model` 選擇器會在 Fable 列上顯示「Requires usage credits」。若要管理用量點數,請參閱[為您的訂閱新增用量點數](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)。

99 99 

100在互動式工作階段中,Claude Code 可能會顯示 Fable 用量點數同意提示。採用組織計費的 Enterprise 方案成員不會看到此提示。您可以選擇使用用量點數繼續使用 Fable,或切換至您的預設模型。您也可以關閉此提示:100在互動式工作階段中,Claude Code 可能會顯示 Fable 用量點數同意提示。您可以選擇使用用量點數繼續使用 Fable,或切換至您的預設模型。您也可以關閉此提示:

101 101 

102* 當您使用 `/model` 選擇 Fable 模型時,會保留目前的模型。102* 當您使用 `/model` 選擇 Fable 模型時,會保留目前的模型。

103* 在工作階段進行中,Claude Code 會以您的預設模型繼續該回合。103* 在工作階段進行中,Claude Code 會以您的預設模型繼續該回合。

Details

146 146 

147### 指標基數控制147### 指標基數控制

148 148 

149以下環境變數控制指標中包含哪些屬性以管理基數:149以下環境變數控制指標和事件中包含哪些屬性以管理基數:

150 150 

151| 環境變數 | 說明 | 預設值 | 停用範例 |151| 環境變數 | 說明 | 預設值 | 停用範例 |

152| - | - | - | - |152| - | - | - | - |

153| `OTEL_METRICS_INCLUDE_SESSION_ID` | 在指標中包含 session.id 和(在雲端工作階段上)ccr.session.id 屬性 | `true` | `false` |153| `OTEL_METRICS_INCLUDE_SESSION_ID` | 在指標和事件中包含 session.id 和雲端工作階段的 ccr.session.id 屬性 | `true` | `false` |

154| `OTEL_METRICS_INCLUDE_VERSION` | 在指標中包含 app.version 屬性 | `false` | `true` |154| `OTEL_METRICS_INCLUDE_VERSION` | 在指標和事件中包含 app.version 屬性 | `false` | `true` |

155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 在指標中包含 user.account\_uuid 和 user.account\_id 屬性 | `true` | `false` |155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 在指標和事件中包含 user.account\_uuid 和 user.account\_id 屬性 | `true` | `false` |

156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 在指標中包含 app.entrypoint 屬性 | `false` | `true` |156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 在指標和事件中包含 app.entrypoint 屬性 | `false` | `true` |

157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 將 `OTEL_RESOURCE_ATTRIBUTES` 中的金鑰作為屬性包含在指標資料點上 | `true` | `false` |157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 將 `OTEL_RESOURCE_ATTRIBUTES` 中的金鑰作為屬性包含在指標資料點和事件上 | `true` | `false` |

158| `OTEL_METRICS_INCLUDE_REPOSITORY` | 在指標和事件上包含 `vcs.*` [儲存庫身分屬性](#repository-attributes)。需要 Claude Code v2.1.269 或更新版本 | `false` | `true` |158| `OTEL_METRICS_INCLUDE_REPOSITORY` | 在指標和事件上包含 `vcs.*` [儲存庫身分屬性](#repository-attributes)。需要 Claude Code v2.1.269 或更新版本 | `false` | `true` |

159 159 

160較低的基數通常意味著更好的效能和更低的儲存成本,但分析的資料粒度較低。160較低的基數通常意味著更好的效能和更低的儲存成本,但分析的資料粒度較低。


523export OTEL_METRICS_EXPORTER=otlp523export OTEL_METRICS_EXPORTER=otlp

524export OTEL_LOGS_EXPORTER=otlp524export OTEL_LOGS_EXPORTER=otlp

525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf

526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318/v1/metrics

527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc

528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

529```529```


571 571 

572若要更詳細地歸因遙測,請使用這些選項:572若要更詳細地歸因遙測,請使用這些選項:

573 573 

574* **識別 Claude Tag 工作階段**:設定 `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`,如[指標基數控制](#metrics-cardinality-control)下所述。指標隨後會帶有 `app.entrypoint`,其值對於 Claude Tag 工作階段為 `claude-in-slack`。574* **識別 Claude Tag 工作階段**:設定 `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`,如[指標基數控制](#metrics-cardinality-control)下所述。指標和事件隨後會帶有 `app.entrypoint`,其值對於 Claude Tag 工作階段為 `claude-in-slack`。

575* **新增自訂屬性**:在設定這些工作階段的其他 `OTEL_*` 變數的相同位置設定 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support)。如果您改為在環境的[設定指令碼](https://code.claude.com/docs/zh-TW/cloud-environments.md#setup-scripts)中 `export` 它,該值不會到達 Claude Code:設定指令碼是在 Claude Code 啟動前執行的單獨 Bash 指令碼,它匯出的變數會隨著它結束。575* **新增自訂屬性**:在設定這些工作階段的其他 `OTEL_*` 變數的相同位置設定 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support)。如果您改為在環境的[設定指令碼](https://code.claude.com/docs/zh-TW/cloud-environments.md#setup-scripts)中 `export` 它,該值不會到達 Claude Code:設定指令碼是在 Claude Code 啟動前執行的單獨 Bash 指令碼,它匯出的變數會隨著它結束。

576 576 

577在 Claude Tag 頻道工作階段中,Claude 作為組織的[共用身分](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses)而不是任何成員工作,因此不要依賴 `user.*` 屬性來識別誰標記了 Claude。577在 Claude Tag 頻道工作階段中,Claude 作為組織的[共用身分](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses)而不是任何成員工作,因此不要依賴 `user.*` 屬性來識別誰標記了 Claude。


587| `session.id` | Claude Code 自身的工作階段 ID,`/clear` 會將其替換 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |587| `session.id` | Claude Code 自身的工作階段 ID,`/clear` 會將其替換 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |

588| `ccr.session.id` | 雲端工作階段識別碼,即 `CLAUDE_CODE_REMOTE_SESSION_ID` 的值,出現在於[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md)中執行的工作階段上 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |588| `ccr.session.id` | 雲端工作階段識別碼,即 `CLAUDE_CODE_REMOTE_SESSION_ID` 的值,出現在於[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md)中執行的工作階段上 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |

589| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |589| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |

590| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py`、`claude-vscode`,或 Claude Tag 工作階段的 `claude-in-slack` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |590| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py`、`claude-vscode`、`claude-desktop`(用於雲端以外的 Claude Desktop Code 分頁工作階段)、`claude-desktop-3p`(用於[第三方部署](https://claude.com/docs/third-party/claude-desktop/overview)上的相同工作階段),或 `claude-in-slack`(用於 Claude Tag 工作階段)。雲端工作階段的值包括 `remote`,以及從 Claude Desktop 或行動應用程式啟動的工作階段所使用的 `remote_desktop` 與 `remote_mobile` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |

591| `organization.id` | 組織 UUID(已通過身分驗證時) | 可用時一律包含 |591| `organization.id` | 組織 UUID(已通過身分驗證時) | 可用時一律包含 |

592| `user.account_uuid` | 帳戶 UUID(已通過身分驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |592| `user.account_uuid` | 帳戶 UUID(已通過身分驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |

593| `user.account_id` | 符合 Anthropic 管理 API 的標記格式帳戶 ID(已通過身分驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |593| `user.account_id` | 符合 Anthropic 管理 API 的標記格式帳戶 ID(已通過身分驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |


643 643 

644| 指標名稱 | 說明 | 單位 |644| 指標名稱 | 說明 | 單位 |

645| - | - | - |645| - | - | - |

646| `claude_code.session.count` | 已啟動的 CLI 工作階段數量 | 無 |646| `claude_code.session.count` | 已啟動的工作階段數 | 無 |

647| `claude_code.lines_of_code.count` | 已修改的程式碼行數 | 無 |647| `claude_code.lines_of_code.count` | 已修改的程式碼行數 | 無 |

648| `claude_code.pull_request.count` | 已建立的 pull request 數量 | 無 |648| `claude_code.pull_request.count` | 已建立的 pull request 數量 | 無 |

649| `claude_code.commit.count` | 已建立的 git 提交數量 | 無 |649| `claude_code.commit.count` | 已建立的 git 提交數量 | 無 |


660 660 

661#### 工作階段計數器661#### 工作階段計數器

662 662 

663在每個工作階段開始時遞增。663在每個工作階段開始時遞增。若要改為計算人數,請參閱[用量監控](#usage-monitoring)。

664 664 

665**屬性**:665**屬性**:

666 666 


1458 1458 

1459如同本頁上的所有 OTel 事件,此事件僅傳送至您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。1459如同本頁上的所有 OTel 事件,此事件僅傳送至您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。

1460 1460 

1461當 Claude Code 無法安全地判斷保留期間時,會暫停清理並發出 `result` 設為 `"skipped"` 且附有 `skip_reason` 的事件。當[受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)設定了 `cleanupPeriodDays` 時,受管值會固定保留期間,即使較低優先順序範圍中的設定檔損壞或無效,清理仍會執行。當 `managed-settings.json` 本身無法讀取時,除非[受管層級](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)從其他地方(例如伺服器受管設定或損壞檔案旁的 `managed-settings.d/` drop-in)提供 `cleanupPeriodDays`,否則 Claude Code 仍會暫停清理。刪除計數器屬性僅在 `result` 為 `"complete"` 時存在。1461讀取 `result` 以查看清理是否已執行:

1462 

1463* `"complete"`:清理已執行,事件帶有其計數

1464* `"skipped"`:Claude Code 無法安全地判定保留期限,因此暫停了清理,事件不帶任何計數。如果 `skip_reason` 為 `"settings_unknowable"` 或 `"settings_invalid_key_set"`,請修正該機器上 `/status` 回報的設定錯誤,讓後續的工作階段能夠執行清理

1465 

1466當[受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)設定了 `cleanupPeriodDays` 時,受管值會固定保留期限,即使較低優先順序範圍中的設定檔損毀或無效,清理仍會執行。

1462 1467 

1463**事件名稱**:`claude_code.retention_sweep`1468**事件名稱**:`claude_code.retention_sweep`

1464 1469 


1469* `event.timestamp`:ISO 8601 時間戳記1474* `event.timestamp`:ISO 8601 時間戳記

1470* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1475* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1471* `result`:清理已執行時為 `"complete"`,Claude Code 暫停清理時為 `"skipped"`1476* `result`:清理已執行時為 `"complete"`,Claude Code 暫停清理時為 `"skipped"`

1472* `period_days`:合併後設定中的 `cleanupPeriodDays` 值(以天為單位),若無任何來源設定則為 `30`。在 skipped 事件中,為清理原本會使用的值,依 Claude Code 可讀取的設定來源計算1477* `period_days`:清理開始時使用的保留期限(天數):合併設定中的 `cleanupPeriodDays`,並套用 [`settings.read` hook](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook) 所做的任何變更。若結果為該鍵未設定則為 `30`。在略過事件中,則為清理原本會使用的值,依 Claude Code 能讀取的設定來源計算

1473* `used_default`:當沒有任何可讀取的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在 complete 事件中,`"true"` 表示套用了 30 天的預設值1478* `used_default`:當 `period_days` 退回使用 `30` 時為 `"true"`,否則為 `"false"`。在完成事件中,`"true"` 表示套用了 30 天的預設值

1474* `skip_reason`:Claude Code 暫停清理的原因。僅在 `result` 為 `"skipped"` 時存在:1479* `skip_reason`:Claude Code 暫停清理的原因。僅在 `result` 為 `"skipped"` 時存在:

1475 * `"user_source_disabled"`:使用者設定被排除,例如透過 [`--setting-sources`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 旗標或 SDK 的 [`settingSources`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項,且沒有已啟用的來源提供 `cleanupPeriodDays`1480 * `"user_source_disabled"`:使用者設定被排除,例如透過 [`--setting-sources`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 旗標或 SDK 的 [`settingSources`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項,且沒有已啟用的來源提供 `cleanupPeriodDays`

1476 * `"settings_unknowable"`:某個設定檔無法讀取或剖析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能被設定為 Claude Code 看不到的值1481 * `"settings_unknowable"`:某個設定檔無法讀取或剖析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能被設定為 Claude Code 看不到的值


1549| 指標 | 分析機會 |1554| 指標 | 分析機會 |

1550| - | - |1555| - | - |

1551| `claude_code.token.usage` | 按 token [`type`](#token-counter)、使用者、團隊、模型、`skill.name`、`plugin.name` 或 `agent.name` 進行細分 |1556| `claude_code.token.usage` | 按 token [`type`](#token-counter)、使用者、團隊、模型、`skill.name`、`plugin.name` 或 `agent.name` 進行細分 |

1552| `claude_code.session.count` | 追蹤一段時間內的採用和參與度 |

1553| `claude_code.lines_of_code.count` | 透過追蹤程式碼新增和移除來衡量生產力,按模型進行細分 |1557| `claude_code.lines_of_code.count` | 透過追蹤程式碼新增和移除來衡量生產力,按模型進行細分 |

1554| `claude_code.commit.count` & `claude_code.pull_request.count` | 了解對開發工作流程的影響 |1558| `claude_code.commit.count` & `claude_code.pull_request.count` | 了解對開發工作流程的影響 |

1555 1559 

1560若要比較不同使用介面的活躍使用者,請設定 `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`,以將 [`app.entrypoint`](#standard-attributes) 新增至指標和事件。接著在 [`claude_code.user_prompt`](#user-prompt-event) 事件上按 entrypoint 計算不重複的 `user.account_uuid` 值;若您只匯出指標,則改用 `claude_code.token.usage`。例如,使用 `cli` 代表互動式 CLI 工作階段,並將 `claude-desktop`、`claude-desktop-3p` 和 `remote_desktop` 歸為一組,代表 Claude Desktop 的 Code 分頁。

1561 

1562`user.account_uuid` 無法識別 Claude Tag 頻道工作階段中的人員,且在沒有 Claude 帳戶的工作階段中不存在:請參閱[將動作歸因於使用者](#attribute-actions-to-users)。當一個人啟動多個工作階段,或某個工作階段未收到任何提示詞時,[`claude_code.session.count`](#session-counter) 會增加,但不會增加活躍使用者數。

1563 

1556### 成本監控1564### 成本監控

1557 1565 

1558`claude_code.cost.usage` 指標有助於:1566`claude_code.cost.usage` 指標有助於:


1783## 安全性和隱私1791## 安全性和隱私

1784 1792 

1785* OpenTelemetry 匯出到您的後端是選擇加入的,需要明確配置。如需了解 Anthropic 的獨立營運遙測以及如何停用它,請參閱[資料使用](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services)1793* OpenTelemetry 匯出到您的後端是選擇加入的,需要明確配置。如需了解 Anthropic 的獨立營運遙測以及如何停用它,請參閱[資料使用](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services)

1786* 原始檔案內容和程式碼片段不包含在指標或事件中。追蹤跨度是單獨的資料路徑:請參閱下面的 `OTEL_LOG_TOOL_CONTENT` 項目1794* 預設情況下,原始檔案內容和程式碼片段不包含在指標或事件中。如果您設定 `OTEL_LOG_TOOL_DETAILS` 或 `OTEL_LOG_RAW_API_BODIES` 等變數,事件可能會包含它們。追蹤跨度是單獨的資料路徑:請參閱下面的 `OTEL_LOG_TOOL_CONTENT` 項目

1787* 透過 OAuth 驗證時,`user.email` 包含在遙測屬性中,僅傳送到您配置的 OTel 端點,絕不會傳送到 Anthropic。如果這對您的組織是個問題,請與您的遙測後端合作以篩選或編輯此欄位1795* 透過 OAuth 驗證時,`user.email` 包含在遙測屬性中,僅傳送到您配置的 OTel 端點,絕不會傳送到 Anthropic。如果這對您的組織是個問題,請與您的遙測後端合作以篩選或編輯此欄位

1788* 預設不收集使用者提示詞內容。僅記錄提示詞長度。若要包含提示詞內容,請設定 `OTEL_LOG_USER_PROMPTS=1`。啟用時:1796* 預設不收集使用者提示詞內容。僅記錄提示詞長度。若要包含提示詞內容,請設定 `OTEL_LOG_USER_PROMPTS=1`。啟用時:

1789 * `user_prompt` 事件在兩個屬性中帶有提示詞文字:`prompt` 和 [`prompt_text`](#user-prompt-event)。如果您在收集器中依屬性名稱捨棄或遮蔽事件的提示詞文字,請在規則中列出這兩個屬性1797 * `user_prompt` 事件在兩個屬性中帶有提示詞文字:`prompt` 和 [`prompt_text`](#user-prompt-event)。如果您在收集器中依屬性名稱捨棄或遮蔽事件的提示詞文字,請在規則中列出這兩個屬性

Details

686* **如果您接受**:Claude Code 會在 `~/.claude/settings.json` 中將 `skipDangerousModePermissionPrompt` 設為 `true`,之後的工作階段便會略過此對話框。若要再次看到對話框,請從該檔案中移除此設定鍵或將其設為 `false`。[`skipDangerousModePermissionPrompt` 參考](https://code.claude.com/docs/zh-TW/settings-reference#skipdangerousmodepermissionprompt)列出了您或您的組織可以設定它的其他設定檔。686* **如果您接受**:Claude Code 會在 `~/.claude/settings.json` 中將 `skipDangerousModePermissionPrompt` 設為 `true`,之後的工作階段便會略過此對話框。若要再次看到對話框,請從該檔案中移除此設定鍵或將其設為 `false`。[`skipDangerousModePermissionPrompt` 參考](https://code.claude.com/docs/zh-TW/settings-reference#skipdangerousmodepermissionprompt)列出了您或您的組織可以設定它的其他設定檔。

687* **如果您拒絕**:Claude Code 會結束。687* **如果您拒絕**:Claude Code 會結束。

688 688 

689如果您傳入 [`--setting-sources`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 但未包含 `user`,即使您先前已接受,對話框仍可能再次出現。若要略過它,請加入 `user`,例如 `--setting-sources user,project`。

690 

689在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中不會顯示對話框。691在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中不會顯示對話框。

690 692 

691當您的接受記錄在使用者設定或受管設定中時,[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)會予以採用:693當您的接受記錄在使用者設定或受管設定中時,[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)會予以採用:

permissions.md +5 −3

Details

578* `mcp__puppeteer__*` 使用萬用字元語法,同樣會比對 `puppeteer` 伺服器的所有工具578* `mcp__puppeteer__*` 使用萬用字元語法,同樣會比對 `puppeteer` 伺服器的所有工具

579* `mcp__puppeteer__puppeteer_navigate` 會比對 `puppeteer` 伺服器提供的 `puppeteer_navigate` 工具579* `mcp__puppeteer__puppeteer_navigate` 會比對 `puppeteer` 伺服器提供的 `puppeteer_navigate` 工具

580 580 

581撰寫 MCP 工具的允許規則時,請勿加上[指定符](#use-specifiers-for-fine-grained-control)([權限更新](https://code.claude.com/docs/zh-TW/hooks.md#permission-update-entries)中將其稱為 `ruleContent`)。如果您加上指定符以僅允許某個工具的部分呼叫,該規則不會比對任何呼叫。若要改為封鎖部分呼叫,請參閱[依輸入參數比對](#match-by-input-parameter)。

582 

581對於 `<server>`,請依該伺服器工具名稱中出現的方式撰寫伺服器名稱。下列範例展示針對包含特殊字元的名稱、來自外掛的伺服器,以及包含 `__` 或以 `_` 結尾的名稱所應撰寫的規則:583對於 `<server>`,請依該伺服器工具名稱中出現的方式撰寫伺服器名稱。下列範例展示針對包含特殊字元的名稱、來自外掛的伺服器,以及包含 `__` 或以 `_` 結尾的名稱所應撰寫的規則:

582 584 

583* **包含 `.` 或空格等字元的名稱**:這些字元會變成 `_`,因此對於您設定為 `my.server` 的伺服器,請撰寫 `mcp__my_server__*`585* **包含 `.` 或空格等字元的名稱**:這些字元會變成 `_`,因此對於您設定為 `my.server` 的伺服器,請撰寫 `mcp__my_server__*`


632 634 

633PreToolUse hook 決定不會繞過權限規則。Claude Code 會評估 deny 和 ask 規則,無論 PreToolUse hook 返回什麼:符合的 deny 規則會阻止呼叫,符合的 ask 規則即使在 hook 返回 `"allow"` 或 `"ask"` 時仍會提示。這保留了 [Manage permissions](#manage-permissions) 中描述的 deny 優先順序,包括在受管理設定中設定的 deny 規則。635PreToolUse hook 決定不會繞過權限規則。Claude Code 會評估 deny 和 ask 規則,無論 PreToolUse hook 返回什麼:符合的 deny 規則會阻止呼叫,符合的 ask 規則即使在 hook 返回 `"allow"` 或 `"ask"` 時仍會提示。這保留了 [Manage permissions](#manage-permissions) 中描述的 deny 優先順序,包括在受管理設定中設定的 deny 規則。

634 636 

635該優先順序涵蓋設定檔中的 hook 和外掛 `hooks/hooks.json` 中的 hook。您安裝的處理 [`tool.check`](https://code.claude.com/docs/zh-TW/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) 事件的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 會在 `PreToolUse` hook 執行之後才給出答案。當機器上有[受管理設定](https://code.claude.com/docs/zh-TW/settings.md#check-what-your-organization-enforces),或工作階段的憑證為 Team 或 Enterprise 的 [`/login`](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence) 時,在 mod 核准呼叫的情況下,以下結果預設維持不變:637該優先順序涵蓋設定檔中的 hook 和外掛 `hooks/hooks.json` 中的 hook。您安裝的處理 [`tool.check`](https://code.claude.com/docs/zh-TW/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) 事件的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 會在 `PreToolUse` hook 執行之後才給出答案。當有[受管理設定](https://code.claude.com/docs/zh-TW/settings.md#check-what-your-organization-enforces)或 [`managed-mcp.json` 檔案](https://code.claude.com/docs/zh-TW/managed-mcp#deploy-managed-mcp-json),或工作階段的憑證為 Team 或 Enterprise 的 [`/login`](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence) 時,在 mod 核准呼叫的情況下,以下結果預設維持不變:

636 638 

637* deny 規則拒絕的呼叫仍會被拒絕,您的組織可以改變這一點。639* deny 規則拒絕的呼叫仍會被拒絕。

638* ask 規則會提示的呼叫仍會提示您。640* ask 規則會提示的呼叫仍會提示您。

639* `PreToolUse` hook 或 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 會提示的呼叫仍會提示您。641* `PreToolUse` hook 或 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 會提示的呼叫仍會提示您。

640* `PreToolUse` hook 阻止的呼叫仍會被阻止,無論該 hook 來自哪個設定檔。642* `PreToolUse` hook 阻止的呼叫仍會被阻止,無論該 hook 來自哪個設定檔。

641* 您的 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 或 Agent SDK [`canUseTool` 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#handle-tool-approval-requests)會被詢問的呼叫,仍會交由該工具或回呼處理。643* 您的 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 或 Agent SDK [`canUseTool` 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#handle-tool-approval-requests)會被詢問的呼叫,仍會交由該工具或回呼處理。

642 644 

643若既沒有受管理設定,工作階段的憑證也不是 Team 或 Enterprise 的 `/login`,mod 可以核准 deny 規則拒絕或 `PreToolUse` hook 阻止的呼叫。改用 API 金鑰或長期有效的 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 執行的工作階段並未使用該登入,即使該登入已被儲存。645您的設定可能既沒有受管理設定、沒有 `managed-mcp.json` 檔案,工作階段的憑證也不是 Team 或 Enterprise 的 `/login`。在這種設定下,mod 可以核准 deny 規則拒絕或 `PreToolUse` hook 阻止的呼叫。改用 API 金鑰或長期有效的 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 執行的工作階段並未使用該登入,即使該登入已被儲存。

644 646 

645在這種設定下,當 mod 核准 ask 規則、`PreToolUse` hook 或 `permissions.blockReadsOutsideWorkingDirectories` 會提示的呼叫時,您不會收到提示。您的 `--permission-prompt-tool` 或 `canUseTool` 回呼也不會被詢問 mod 核准的呼叫。在每種設定下,自動模式、plan mode 和 `dontAsk` 模式各自會增加一項專屬的結果:647在這種設定下,當 mod 核准 ask 規則、`PreToolUse` hook 或 `permissions.blockReadsOutsideWorkingDirectories` 會提示的呼叫時,您不會收到提示。您的 `--permission-prompt-tool` 或 `canUseTool` 回呼也不會被詢問 mod 核准的呼叫。在每種設定下,自動模式、plan mode 和 `dontAsk` 模式各自會增加一項專屬的結果:

646 648 

Details

94* **stdin 或 stdout 不是 TTY,且您既不傳遞 `-y` 也不傳遞 `--accept-command`**:安裝被拒絕。輸出說命令只是顯示,結束代碼為 `1`94* **stdin 或 stdout 不是 TTY,且您既不傳遞 `-y` 也不傳遞 `--accept-command`**:安裝被拒絕。輸出說命令只是顯示,結束代碼為 `1`

95* **Claude 透過其 Bash 工具執行命令**:`-y` 被忽略。改為從您自己的終端機執行命令95* **Claude 透過其 Bash 工具執行命令**:`-y` 被忽略。改為從您自己的終端機執行命令

96 96 

97為複製專案的每個人安裝 plugin:97若要與每個複製此專案的人共用 plugin,請使用 `--scope project` 執行 `claude plugin install`,並提交 `.claude/settings.json`。然後讓每個人在自己的複製中 [新增市集](https://code.claude.com/docs/zh-TW/plugins/install.md#add-a-marketplace) 並 [執行相同的命令](https://code.claude.com/docs/zh-TW/plugins/loading.md#enabled-in-project-settings-but-not-installed):

98 98 

99```bash theme={null}99```bash theme={null}

100claude plugin install formatter@my-marketplace --scope project100claude plugin install formatter@my-marketplace --scope project


333| `notes` | array of strings | 不屬於載入錯誤的警告,例如編寫問題或 [未安裝的套件](https://code.claude.com/docs/zh-TW/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |333| `notes` | array of strings | 不屬於載入錯誤的警告,例如編寫問題或 [未安裝的套件](https://code.claude.com/docs/zh-TW/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |

334| `errorDetails` | array of objects | 每個 `errors` 項目一個物件,給出其診斷 `type` 和它引用的名稱,例如 plugin、市集、伺服器或檔案。需要 Claude Code v2.1.268 或更新版本 |334| `errorDetails` | array of objects | 每個 `errors` 項目一個物件,給出其診斷 `type` 和它引用的名稱,例如 plugin、市集、伺服器或檔案。需要 Claude Code v2.1.268 或更新版本 |

335| `noteDetails` | array of objects | 每個 `notes` 項目的相同詳細物件。需要 Claude Code v2.1.268 或更新版本 |335| `noteDetails` | array of objects | 每個 `notes` 項目的相同詳細物件。需要 Claude Code v2.1.268 或更新版本 |

336| `hasUserConfig` | boolean | 當 plugin 已載入且其 manifest 宣告 [`userConfig` 選項](https://code.claude.com/docs/zh-TW/plugins/manifest-reference#user-configuration) 時存在且為 `true`。對於無法載入的 plugin 不存在,無論其 manifest 宣告什麼。保存的值永遠不包括。需要 Claude Code v2.1.285 或更新版本 |336| `hasUserConfig` | boolean | 當 plugin 已載入且其 manifest 宣告 [`userConfig` 選項](https://code.claude.com/docs/zh-TW/plugins/manifest-reference#user-configuration) 時存在且為 `true`。對於無法載入的 plugin 不存在,無論其 manifest 宣告什麼。需要 Claude Code v2.1.285 或更新版本 |

337| `projectEnabled` | boolean | 專案的共享 `.claude/settings.json` 是否開啟 plugin。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |337| `projectEnabled` | boolean | 專案的共享 `.claude/settings.json` 是否開啟 plugin。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |

338| `dataDirSize` | object | 使用 `--data-size`,plugin 的 [保存的資料目錄](#what-an-uninstall-deletes-and-keeps) 的大小為 `bytes` 和 `human`;當目錄遺漏或空白時不存在。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |338| `dataDirSize` | object | 使用 `--data-size`,plugin 的 [保存的資料目錄](#what-an-uninstall-deletes-and-keeps) 的大小為 `bytes` 和 `human`;當目錄遺漏或空白時不存在。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |

339| `dataDirUnreadable` | boolean | 使用 `--data-size`,當保存的資料目錄存在但無法測量時為 `true`。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |339| `dataDirUnreadable` | boolean | 使用 `--data-size`,當保存的資料目錄存在但無法測量時為 `true`。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |

Details

169 169 

170### 為一個工作階段載入外掛程式170### 為一個工作階段載入外掛程式

171 171 

172您可以通過三種方式為單個工作階段載入外掛程式:使用 `--plugin-dir` 從磁碟上的目錄或 `.zip` 存檔,使用 `--plugin-url` 從 URL,或從環境變數(當您無法添加旗標時)。每個外掛程式只為該工作階段載入,沒有任何內容寫入您的設定。當您在工作階段期間編輯外掛程式的檔案時,執行 `/reload-plugins` 以載入變更。172您可以透過三種方式為單個工作階段載入外掛程式:

173 

174* 使用 `--plugin-dir` 從磁碟上的目錄或 `.zip` 存檔載入

175* 使用 `--plugin-url` 從 URL 載入

176* 當您無法添加旗標時,從環境變數載入

177 

178當您在工作階段期間編輯外掛程式的檔案時,執行 `/reload-plugins` 以載入變更。

173 179 

174#### 從目錄或 `.zip` 載入外掛程式180#### 從目錄或 `.zip` 載入外掛程式

175 181 

Details

123 123 

124這些項目 sources 不需要 git 帳戶:124這些項目 sources 不需要 git 帳戶:

125 125 

126* **`archive`**:透過 HTTPS 下載的 zip。使用者既不需要 `git` 也不需要帳戶,只需要對 URL 的網路存取。需要 Claude Code v2.1.224 或更新版本。使用 `sha256` 固定每個存檔,以便 Claude Code 拒絕變更的下載。若要使用下載傳送認證,請參閱 [Authenticate archive downloads](#authenticate-archive-downloads)。126* **`archive`**:透過 HTTPS 下載的 zip。使用者既不需要 `git` 也不需要帳戶,只需要能透過網路存取該 URL。使用 `sha256` 固定每個封存檔,讓 Claude Code 拒絕已變更的下載內容。若要在下載時傳送憑證,請參閱 [Authenticate archive downloads](#authenticate-archive-downloads)。

127* **公開 git 儲存庫**:當項目提供 `https://` URL 時,Claude Code 會透過 HTTPS 複製公開的 `url` 或 `git-subdir` 來源,無需憑證。對於 `github` 來源,或寫成 `owner/repo` 的 `git-subdir` 來源,請告知沒有 GitHub SSH 金鑰的使用者設定 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`。127* **公開 git 儲存庫**:當項目提供 `https://` URL 時,Claude Code 會透過 HTTPS 複製公開的 `url` 或 `git-subdir` 來源,無需憑證。對於 `github` 來源,或寫成 `owner/repo` 的 `git-subdir` 來源,請告知沒有 GitHub SSH 金鑰的使用者設定 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`。

128 128 

129即使在沒有 SSH 金鑰的機器上,不設定 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` 也能從 shell 成功執行 `claude plugin install`,仍請在您的說明中保留這項設定。對於 `github` 來源,該命令可能會自行退回使用 HTTPS,並印出 `SSH not configured, cloning via HTTPS`。從工作階段內的 `/plugin` 進行的安裝以及外掛更新不會退回,因此若未設定此變數,沒有 GitHub SSH 金鑰的使用者將會失敗。129即使在沒有 SSH 金鑰的機器上,不設定 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` 也能從 shell 成功執行 `claude plugin install`,仍請在您的說明中保留這項設定。對於 `github` 來源,該命令可能會自行退回使用 HTTPS,並印出 `SSH not configured, cloning via HTTPS`。從工作階段內的 `/plugin` 進行的安裝以及外掛更新不會退回,因此若未設定此變數,沒有 GitHub SSH 金鑰的使用者將會失敗。

Details

132外掛程式的安裝範圍決定誰獲得外掛程式以及哪個設定檔將其記錄為啟用:132外掛程式的安裝範圍決定誰獲得外掛程式以及哪個設定檔將其記錄為啟用:

133 133 

134* **User scope**:外掛程式在此機器上的每個專案中為您啟用。該項目進入 `~/.claude/settings.json` 中的 `enabledPlugins`。134* **User scope**:外掛程式在此機器上的每個專案中為您啟用。該項目進入 `~/.claude/settings.json` 中的 `enabledPlugins`。

135* **Project scope**:外掛程式在此儲存庫中為每個人啟用。該項目進入 `.claude/settings.json`,您提交它。提交該項目會為您的協作者開啟外掛程式,但不會將其下載到他們的機器上,因此每個協作者也需執行一次 `claude plugin install <name>@<marketplace> --scope project`;請參閱 [在專案設定中啟用但未安裝](https://code.claude.com/docs/zh-TW/plugins/loading.md#enabled-in-project-settings-but-not-installed)。135* **Project scope**:外掛程式在此儲存庫中為每個人啟用。該項目進入 `.claude/settings.json`,您提交它。提交該項目會為您的協作者開啟外掛程式,但不會將其下載到他們的機器上。每個協作者也需在每個複製的儲存庫中執行一次 `claude plugin install <name>@<marketplace> --scope project`;請參閱 [在專案設定中啟用但未安裝](https://code.claude.com/docs/zh-TW/plugins/loading.md#enabled-in-project-settings-but-not-installed)。

136* **Local scope**:外掛程式在此儲存庫中僅為您啟用。該項目進入 `.claude/settings.local.json`。136* **Local scope**:外掛程式在此儲存庫中僅為您啟用。該項目進入 `.claude/settings.local.json`。

137 137 

138某些外掛程式由其作者設定為預設關閉,透過 [`defaultEnabled`](https://code.claude.com/docs/zh-TW/plugins/manifest-reference#defaultenabled) 欄位。這樣的外掛程式已安裝但保持關閉,直到您在 shell 中使用 `claude plugin enable <name>` 或從工作階段中 `/plugin` 的 **Installed** 標籤開啟它。138某些外掛程式由其作者設定為預設關閉,透過 [`defaultEnabled`](https://code.claude.com/docs/zh-TW/plugins/manifest-reference#defaultenabled) 欄位。這樣的外掛程式已安裝但保持關閉,直到您在 shell 中使用 `claude plugin enable <name>` 或從工作階段中 `/plugin` 的 **Installed** 標籤開啟它。

Details

173 173 

174若要選擇退出您機器上的專案啟用 plugin,在 `.claude/settings.local.json` 中將 id 設定為 `false`,其優先順序高於專案檔案。174若要選擇退出您機器上的專案啟用 plugin,在 `.claude/settings.local.json` 中將 id 設定為 `false`,其優先順序高於專案檔案。

175 175 

176### 在 `--add-dir` 目錄中啟用但未載入

177 

178只有在該檔案的設定來源已開啟時,Claude Code 才會讀取新增目錄中某個檔案裡值為 `true` 的 `enabledPlugins` 項目:

179 

180* **`.claude/settings.json`**:`project`

181* **`.claude/settings.local.json`**:`project` 和 `local`

182 

183請檢查工作階段載入了哪些設定來源。您可以使用 [`--setting-sources`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 設定它們。在 CLI 中,`user`、`project` 和 `local` 預設皆為開啟。

184 

185例如,如果您在 shell 中執行 `claude --setting-sources user --add-dir ./shared`,Claude Code 不會讀取 `./shared` 中的任一檔案。請針對包含 `true` 的檔案傳遞對應的旗標:

186 

187* **`settings.json`**:`--setting-sources user,project`

188* **`settings.local.json`**:`--setting-sources user,project,local`

189 

176### 在專案設定中啟用但未安裝190### 在專案設定中啟用但未安裝

177 191 

178當 plugin 的唯一 `true` 在專案的 `.claude/settings.json` 中時,Claude Code 不會在未安裝它的機器上提取它,除非其市場項目具有 [相對路徑來源](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference.md#plugin-sources) 或 [種子目錄](https://code.claude.com/docs/zh-TW/plugins/org.md#seed-containers-and-ci) 已經保存它。相反,`/plugin` **Errors** 標籤顯示 `Plugin "<name>" is enabled in project settings but isn't installed here`。192預設情況下,僅在專案的 `.claude/settings.json` 中啟用的 plugin,在您將其安裝到您的機器上之前,不會在工作階段開始時載入。當市集位於您的機器上時,`/plugin` **Errors** 標籤會顯示 [`Plugin "<name>" is enabled in project settings but isn't installed here`](https://code.claude.com/docs/zh-TW/plugins/troubleshooting#plugin-is-enabled-in-project-settings-but-isnt-installed-here) 或 [`Plugin "<name>" not cached at <path>`](https://code.claude.com/docs/zh-TW/plugins/troubleshooting#plugin-not-cached-at)。

193 

194> [!NOTE]

195>

196> 如果該標籤未顯示上述任一訊息,請在安裝之前先[新增市集](https://code.claude.com/docs/zh-TW/plugins/install.md#add-a-marketplace)。您可以在 `.claude/settings.json` 的 `extraKnownMarketplaces` 設定中找到其來源,或詢問您的維護者。

197 

198若要安裝,請在專案中的 shell 執行以下指令,並使用該 plugin 在 `enabledPlugins` 中的金鑰:

199 

200```shell theme={null}

201claude plugin install <name>@<marketplace> --scope project

202```

203 

204若要載入 plugin,請在工作階段中執行 `/reload-plugins` 或啟動新的工作階段。請在您的每個複製中重複安裝,或使用 `--scope user` 以涵蓋您所有的專案。

205 

206在以下情況中,您可以不經安裝即載入 plugin:

179 207 

180相對路徑 plugin 不需要安裝記錄,因為它從市場本身載入。208* **位於[種子目錄](https://code.claude.com/docs/zh-TW/plugins/org.md#seed-containers-and-ci)中**:您無需執行任何操作

209* **在您從本機路徑新增的市集中以[相對路徑](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference.md#plugin-sources)列出**:您無需執行任何操作,因為 plugin 會在工作階段開始時載入

210* **在您已新增的 git 市集的 `marketplace.json` 中以相對路徑(例如 `./plugins/formatter`)列出**:執行 `/reload-plugins` 以僅為目前工作階段載入它。若要為單次[非互動式 `-p` 執行](https://code.claude.com/docs/zh-TW/headless)載入它,請設定 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`](https://code.claude.com/docs/zh-TW/env-vars)。

181 211 

182Claude Code 僅當以下來源之一將其設定為 `true` 時才提取具有外部來源的 plugin:212Claude Code 僅當以下來源之一將其設定為 `true` 時才提取具有外部來源的 plugin:

183 213 

Details

189 189 

190### `metadata`190### `metadata`

191 191 

192您自己資料的自由形式物件,例如目錄或權利欄位。Claude Code 不讀取它。需要 Claude Code v2.1.222 或更新版本。192您自己資料的自由形式物件,例如目錄或權利欄位。Claude Code 不讀取它。

193 193 

194### 目錄列表欄位194### 目錄列表欄位

195 195 


394 394 

395manifest 中的每個元件路徑相對於 plugin 根目錄,必須以 `./` 開頭。路徑(例如 `commands/foo.md`)無法驗證。`skills` 和 `mcpServers` 各接受該規則外的一種形式:395manifest 中的每個元件路徑相對於 plugin 根目錄,必須以 `./` 開頭。路徑(例如 `commands/foo.md`)無法驗證。`skills` 和 `mcpServers` 各接受該規則外的一種形式:

396 396 

397* **`skills`**:也接受 `"."`。`"."` 和 `"./"` 都表示 plugin 根目錄。在 v2.1.221 之前,`"."` 無法通過 manifest 驗證,因此當 plugin 必須在較早版本上載入時使用 `"./"`397* **`skills`**:也接受 `"."`。`"."` 和 `"./"` 都表示 plugin 根目錄

398* **`mcpServers`**:也接受 `https://` 套件 URL398* **`mcpServers`**:也接受 `https://` 套件 URL

399 399 

400`experimental.evals` 不是元件路徑,因此本節的規則不涵蓋它,而是由 `claude plugin eval` 在執行時檢查該值。它指定外掛根目錄下的一個目錄,例如 `"quality/evals"`,可帶或不帶 `./` 前綴。若為陣列,則僅使用第一個項目。關於該值接受的內容以及無法使用的值會發生什麼情況,請參閱[使用不同的 eval 目錄](https://code.claude.com/docs/zh-TW/plugin-evals.md#use-a-different-eval-directory)。400`experimental.evals` 不是元件路徑,因此本節的規則不涵蓋它,而是由 `claude plugin eval` 在執行時檢查該值。它指定外掛根目錄下的一個目錄,例如 `"quality/evals"`,可帶或不帶 `./` 前綴。若為陣列,則僅使用第一個項目。關於該值接受的內容以及無法使用的值會發生什麼情況,請參閱[使用不同的 eval 目錄](https://code.claude.com/docs/zh-TW/plugin-evals.md#use-a-different-eval-directory)。


403 403 

404每個元件路徑必須解析到 plugin 根目錄內並且必須存在。`claude plugin validate` 檢查每個元件鍵下的路徑:404每個元件路徑必須解析到 plugin 根目錄內並且必須存在。`claude plugin validate` 檢查每個元件鍵下的路徑:

405 405 

406* **包含**:解析到 plugin 根目錄外的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path escapes plugin directory: <path>`。包含 `..` 的路徑是常見情況,`claude plugin validate` 將其報告為 `Path contains ".." which could be a path traversal attempt`406* **包含**:解析到 plugin 根目錄外的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path escapes plugin directory: <path>`。包含 `..` 的路徑是常見情況,`claude plugin validate` 會回報錯誤 `Path contains ".." which could be a path traversal attempt`。對於 `mcpServers` 或 `lspServers` 檔案,[`path not read`](https://code.claude.com/docs/zh-TW/errors#server-file-path-not-read) 訊息表示該路徑為絕對路徑或包含 `..`

407* **存在**:不存在的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path not found: <path>`。`claude plugin validate` 將其報告為 `Path not found`407* **存在**:不存在的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path not found: <path>`。`claude plugin validate` 將其報告為 `Path not found`

408 408 

409對於 `outputStyles`、`lspServers`、`monitors` 和 `themes` 路徑,`claude plugin validate` 檢查需要 Claude Code v2.1.283 或更新版本。409對於 `outputStyles`、`lspServers`、`monitors` 和 `themes` 路徑,`claude plugin validate` 檢查需要 Claude Code v2.1.283 或更新版本。

Details

94| `dependencies` | 陣列 | 必須為此外掛程式啟用的外掛程式。每個項目是 `"name"`、`"name@marketplace"` 或物件。請參閱 [Plugin dependencies](https://code.claude.com/docs/zh-TW/plugins/dependencies.md) |94| `dependencies` | 陣列 | 必須為此外掛程式啟用的外掛程式。每個項目是 `"name"`、`"name@marketplace"` 或物件。請參閱 [Plugin dependencies](https://code.claude.com/docs/zh-TW/plugins/dependencies.md) |

95| `defaultEnabled` | 布林值 | 預設 `true`。當使用者未在 [`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins) 中設定時,外掛程式一開始是否為啟用狀態。項目值優先於 `plugin.json` |95| `defaultEnabled` | 布林值 | 預設 `true`。當使用者未在 [`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins) 中設定時,外掛程式一開始是否為啟用狀態。項目值優先於 `plugin.json` |

96| `displayName` | 字串 | 在 UI 中顯示的人類可讀名稱。當項目和外掛程式的 `plugin.json` 都未設定時,使用者看到外掛程式的 `name` |96| `displayName` | 字串 | 在 UI 中顯示的人類可讀名稱。當項目和外掛程式的 `plugin.json` 都未設定時,使用者看到外掛程式的 `name` |

97| `metadata` | 物件 | 用於您自己欄位的自由格式物件。Claude Code 不讀取它。需要 Claude Code v2.1.222 或更新版本 |97| `metadata` | 物件 | 用於您自己欄位的自由格式物件。Claude Code 不讀取它 |

98| `headers` | 物件 | Claude Code 在下載此項目的 [archive](#archive-plugin-source) 時發送的 HTTP 標頭。此處設定的標頭替換來自 marketplace 來源的 [`headers`](#fields-by-type) 的同名標頭。需要 Claude Code v2.1.238 或更新版本 |98| `headers` | 物件 | Claude Code 在下載此項目的 [archive](#archive-plugin-source) 時發送的 HTTP 標頭。此處設定的標頭替換來自 marketplace 來源的 [`headers`](#fields-by-type) 的同名標頭。需要 Claude Code v2.1.238 或更新版本 |

99| `headersHelper` | 字串 | 列印此項目的存檔下載標頭的命令,作為一個 JSON 物件,用於會過期的憑證。項目也必須設定 [`"strict": false`](#strict-mode)。需要 Claude Code v2.1.238 或更新版本。請參閱 [Authenticate archive downloads](https://code.claude.com/docs/zh-TW/plugins/host-marketplace.md#authenticate-archive-downloads) |99| `headersHelper` | 字串 | 列印此項目的存檔下載標頭的命令,作為一個 JSON 物件,用於會過期的憑證。項目也必須設定 [`"strict": false`](#strict-mode)。需要 Claude Code v2.1.238 或更新版本。請參閱 [Authenticate archive downloads](https://code.claude.com/docs/zh-TW/plugins/host-marketplace.md#authenticate-archive-downloads) |

100 100 


142| `url` | `url`、`ref`、`sha` | 任何 git 儲存庫的 URL |142| `url` | `url`、`ref`、`sha` | 任何 git 儲存庫的 URL |

143| `git-subdir` | `url`、`path`、`ref`、`sha` | git 儲存庫的一個子目錄,使用稀疏檢出(sparse checkout)取得 |143| `git-subdir` | `url`、`path`、`ref`、`sha` | git 儲存庫的一個子目錄,使用稀疏檢出(sparse checkout)取得 |

144| `npm` | `package`、`version`、`registry` | npm 登錄套件或 tarball 連結,使用您的 npm 用戶端取得並解包,不執行安裝指令碼 |144| `npm` | `package`、`version`、`registry` | npm 登錄套件或 tarball 連結,使用您的 npm 用戶端取得並解包,不執行安裝指令碼 |

145| `archive` | `url`、`sha256` | HTTPS 上的 Zip 檔案。需要 Claude Code v2.1.224 或更新版本 |145| `archive` | `url`、`sha256` | HTTPS 上的 Zip 檔案 |

146| `command` | `command`、`timeout`、`mode` | 由 Claude Code 在使用者機器上執行的命令列印的目錄。需要 Claude Code v2.1.229 或更新版本 |146| `command` | `command`、`timeout`、`mode` | 由 Claude Code 在使用者機器上執行的命令列印的目錄。需要 Claude Code v2.1.229 或更新版本 |

147 147 

148名稱 `url` 和 `github` 也是 [marketplace 來源](#marketplace-sources) 類型,其中 `url` 表示直接連結到 `marketplace.json` 檔案,而非 git 儲存庫。`git` 僅作為 marketplace 來源存在,`npm` 同時作為兩者存在。`git-subdir`、`archive` 和 `command` 僅作為 plugin 來源存在。148名稱 `url` 和 `github` 也是 [marketplace 來源](#marketplace-sources) 類型,其中 `url` 表示直接連結到 `marketplace.json` 檔案,而非 git 儲存庫。`git` 僅作為 marketplace 來源存在,`npm` 同時作為兩者存在。`git-subdir`、`archive` 和 `command` 僅作為 plugin 來源存在。

Details

57* **Mods 已開啟。** 使用者可以安裝包含來自您的外掛程式設定允許的任何市場的 mod 的外掛程式,或使用 `--plugin-dir` 從目錄載入一個。57* **Mods 已開啟。** 使用者可以安裝包含來自您的外掛程式設定允許的任何市場的 mod 的外掛程式,或使用 `--plugin-dir` 從目錄載入一個。

58* **內建防護首先執行。** Claude Code 在使用者安裝的每個 mod 之前載入名為 `sec-default@builtin` 的內建 mod。使用者無法將其關閉。`/plugin` 和偵錯日誌將其列為 `cc-plugin-sec-default`。防護在以下任一情況為真時載入:58* **內建防護首先執行。** Claude Code 在使用者安裝的每個 mod 之前載入名為 `sec-default@builtin` 的內建 mod。使用者無法將其關閉。`/plugin` 和偵錯日誌將其列為 `cc-plugin-sec-default`。防護在以下任一情況為真時載入:

59 59 

60 * 機器有受管設定60 * 機器有受管設定或 [`managed-mcp.json`](https://code.claude.com/docs/zh-TW/managed-mcp#deploy-managed-mcp-json) 檔案

61 * 工作階段使用 Team 或 Enterprise 計畫的 [`/login` 憑證](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence)執行61 * 工作階段使用 Team 或 Enterprise 計畫的 [`/login` 憑證](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence)執行

62 62 

63 使用 API 金鑰進行身分驗證的使用者,或透過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 進行身分驗證的使用者,只有在具有受管設定的機器上才能獲得防護。使用長期 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 執行的工作階段也不算是該登入,即使機器上儲存了 Team 或 Enterprise 登入也是如此。63 使用 API 金鑰的使用者,或使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 的使用者,只有在具有受管設定或 `managed-mcp.json` 的機器上才能獲得防護。使用長期 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 執行的工作階段也不算是該登入,即使機器上儲存了 Team 或 Enterprise 登入也是如此。

64* **防護保護您管理的內容。** 使用者的 mod 無法更改您的受管 hooks 接收或決定的內容、系統提示、您的受管 `CLAUDE.md` 和其他受管指示、任何 mod 讀取的設定內容,或您的受管 MCP 伺服器的工具和描述。64* **防護保護您管理的內容。** 使用者的 mod 無法更改您的受管 hooks 接收或決定的內容、系統提示、您的受管 `CLAUDE.md` 和其他受管指示、任何 mod 讀取的設定內容,或您的受管 MCP 伺服器的工具和描述。

65* **在您管理的範圍之外,使用者的 mod 以該使用者的身分運作。** mod 保有該使用者的權限:它仍然可以讀取和寫入檔案、啟動程序,以及發出網路請求。它也可以重寫工具呼叫和提示詞、拒絕工具呼叫,以及在介面中繪製。65* **在您管理的範圍之外,使用者的 mod 以該使用者的身分運作。** mod 保有該使用者的權限:它仍然可以讀取和寫入檔案、啟動程序,以及發出網路請求。它也可以重寫工具呼叫和提示詞、拒絕工具呼叫,以及在介面中繪製。

66* **權限規則和 `PreToolUse` hook 優先於使用者的 mod。** 防護載入時,預設情況下,使用者的 mod 無法核准 `deny` 規則拒絕的呼叫或 `ask` 規則會提示確認的呼叫,無論哪個設定檔持有該規則。mod 也無法核准任何 `PreToolUse` hook 所封鎖的呼叫。66* **權限規則和 `PreToolUse` hook 優先於使用者的 mod。** 防護載入時,預設情況下,使用者的 mod 無法核准 `deny` 規則拒絕的呼叫或 `ask` 規則會提示確認的呼叫,無論哪個設定檔持有該規則。mod 也無法核准任何 `PreToolUse` hook 所封鎖的呼叫。


76 76 

77* **設定 hook 保持有效。** 設定檔和外掛程式 `hooks/hooks.json` 中的命令、HTTP、提示詞和 agent hook 像以前一樣執行,與 mod 並行。77* **設定 hook 保持有效。** 設定檔和外掛程式 `hooks/hooks.json` 中的命令、HTTP、提示詞和 agent hook 像以前一樣執行,與 mod 並行。

78* **拒絕規則在防護載入的地方優先。** 使用者的 mod 無法批准 `deny` 規則拒絕的呼叫,除非您設定 [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard)。78* **拒絕規則在防護載入的地方優先。** 使用者的 mod 無法批准 `deny` 規則拒絕的呼叫,除非您設定 [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard)。

79* **受管 hook 首先執行。** 受管設定中的 `PreToolUse` hook 在任何 mod 的 [`tool.call`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#tools) hook 之前執行,當該受管 hook 封鎖工具呼叫時,不會有任何 mod 的 `tool.call` hook 針對該呼叫執行。如果呼叫繼續進行且 mod 重寫了它,您的受管 hook 會在重寫的呼叫上再次執行,因此仍然可以封鎖它。79* **受管 hook 首先執行。** 受管設定中的 `PreToolUse` hook 在任何 mod 的 [`tool.call`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#tools) hook 之前執行,當該受管 hook 封鎖工具呼叫時,不會有任何 mod 的 `tool.call` hook 針對該呼叫執行。如果呼叫繼續進行且 mod 重寫了它,您的受管 hook 會在重寫的呼叫上再次執行,因此預設情況下仍然可以封鎖它。

80 80 

81 來自其他設定檔和外掛的 `PreToolUse` hook 在最後一個 mod 之後執行。如果 mod 自行回應工具呼叫,工具就不會執行,這些 hook 也不會執行。請參閱 [mod 執行的順序](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)。81 來自其他設定檔和外掛的 `PreToolUse` hook 在最後一個 mod 之後執行。如果 mod 自行回應工具呼叫,工具就不會執行,這些 hook 也不會執行。請參閱 [mod 執行的順序](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)。

82* **網路政策涵蓋 `$.http.fetch`。**82* **網路政策涵蓋 `$.http.fetch`。**


260| 選項 | 未設定 | `true` |260| 選項 | 未設定 | `true` |

261| :- | :- | :- |261| :- | :- | :- |

262| `allowManagedModsOnly` | 使用者自己的 mod 會執行 | 只有[您組織的 mod](#install-your-organizations-mods) 和內建於 Claude Code 的 mod 會執行其 hook。Claude Code 拒絕所有其他 mod,包括使用者安裝的或使用 `--plugin-dir` 命名的。 |262| `allowManagedModsOnly` | 使用者自己的 mod 會執行 | 只有[您組織的 mod](#install-your-organizations-mods) 和內建於 Claude Code 的 mod 會執行其 hook。Claude Code 拒絕所有其他 mod,包括使用者安裝的或使用 `--plugin-dir` 命名的。 |

263| `allowModsToOverrideDenyRules` | 拒絕規則優先於使用者的 mod | 批准工具呼叫的使用者 mod 可以批准 `deny` 規則拒絕的呼叫 |263| `allowModsToOverrideDenyRules` | 拒絕規則優先於使用者的 mod | 批准工具呼叫的使用者 mod 可以越過大多數[預設維持不變的結果](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)來批准呼叫,包括 `deny` 規則 |

264 264 

265這些規則決定選項是否生效:265這些規則決定選項是否生效:

266 266 


350 350 

351* **清單取代預設值**:當您在受管設定中設定 `prependPlugins` 時,請在其中列出 `sec-default@builtin` 以保留內建防護。防護是內建的,不需要 `enabledPlugins` 項目。351* **清單取代預設值**:當您在受管設定中設定 `prependPlugins` 時,請在其中列出 `sec-default@builtin` 以保留內建防護。防護是內建的,不需要 `enabledPlugins` 項目。

352* **您自己的 id 必須被視為您的**:在受管設定中,Claude Code 會跳過其外掛不符合組織 mod 條件的 id352* **您自己的 id 必須被視為您的**:在受管設定中,Claude Code 會跳過其外掛不符合組織 mod 條件的 id

353* **儲存庫無法設定它們**:Claude Code 從受管設定讀取這兩個設定,從不從儲存庫的設定檔讀取。使用者只有在沒有受管設定的機器上,且工作階段的憑證不是 Team 或 Enterprise 的 `/login` 時,才能在 `~/.claude/settings.json` 中設定它們以排序自己的 mod。在其他任何情況下,Claude Code 會忽略使用者設定中的這兩個設定鍵。那裡的清單既不會加入也不會移除內建防護。353* **儲存庫無法設定任一清單**:Claude Code 會忽略儲存庫設定檔中的這兩個設定,因此請在受管設定中設定它們。

354* **使用者可以設定它們以排序自己的 mod**:在 `~/.claude/settings.json` 中,僅限於沒有受管設定或 `managed-mcp.json` 檔案的機器上,且僅在工作階段的憑證不是 Team 或 Enterprise 的 `/login` 時。在其他任何情況下,Claude Code 會忽略使用者設定中的這兩個設定鍵。那裡的清單既不會加入也不會移除內建防護。

354 355 

355### 使用您自己的 mod 強制執行原則356### 使用您自己的 mod 強制執行原則

356 357 

Details

21 21 

22在互動式 Claude Code 工作階段中描述你想要的 mod,Claude 會寫出來。Claude 使用名為 `plugin-authoring` 的內建 [skill](https://code.claude.com/docs/zh-TW/skills.md),它告訴 Claude 在哪裡寫 mod、你的版本有哪些事件和方法,以及 mod 如何被載入。當你要求 mod 時,Claude 可以載入該 skill,或者你可以在 Claude Code 提示符處執行 `/plugin-authoring` 來自己載入它。22在互動式 Claude Code 工作階段中描述你想要的 mod,Claude 會寫出來。Claude 使用名為 `plugin-authoring` 的內建 [skill](https://code.claude.com/docs/zh-TW/skills.md),它告訴 Claude 在哪裡寫 mod、你的版本有哪些事件和方法,以及 mod 如何被載入。當你要求 mod 時,Claude 可以載入該 skill,或者你可以在 Claude Code 提示符處執行 `/plugin-authoring` 來自己載入它。

23 23 

24mod 在你批准後執行,除了在[mod Claude 寫的無法載入的工作階段](#sessions-that-skip-the-approval)中。24在 `auto` 和 `bypassPermissions` [權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)中,mod 可以在回合結束時執行。其他情況下,mod 會在您批准後執行,但[Claude 寫的 mod 無法載入的工作階段](#sessions-that-skip-the-approval)除外。

25 25 

26**1. 描述 mod**26**1. 描述 mod**

27 27 


33 33 

34**2. 批准 mod**34**2. 批准 mod**

35 35 

36當 Claude 儲存第一個檔案時,Claude Code 詢問是否為工作階段啟用熱重新載入。熱重新載入執行此工作階段中 Claude 寫的 mod,並在每個稍後變更它們的轉向結束時選擇每個變更。36當 Claude 儲存第一個檔案時,Claude Code 會詢問是否為此工作階段啟用熱重新載入。熱重新載入會執行 Claude 在此工作階段中寫的 mod,並套用之後的每次變更。如果沒有出現此詢問,請跳過此步驟。

37 37 

38選擇以下其中一個答案:38選擇以下其中一個答案:

39 39 

40* **為此工作階段啟用**:工作階段的 mod 資料夾中的 mod 在轉向結束時載入,並在每個變更它們的轉向結束時重新載入。你的答案在工作階段期間持續,包括在你恢復它之後。40* **開啟**:工作階段 mod 資料夾中的 mod 會在回合結束時載入,並在每個變更它們的回合結束時重新載入。您的答案在整個工作階段中持續有效,包括在您恢復工作階段之後。

41* **暫時不要**:現在什麼都不載入。檔案保留在 Claude 寫的地方,mod 在該工作階段下次啟動時載入。若要防止 mod 永遠載入,請刪除其目錄。41* **暫時不要**:目前不會載入任何內容。檔案會保留在 Claude 寫入的位置,mod 會在該工作階段下次啟動時載入。若要讓 mod 永遠不載入,請刪除其目錄。

42 42 

43**3. 檢查 mod 是否已載入**43**3. 檢查 mod 是否已載入**

44 44 


59 59 

60### Claude 寫的 mod 無法載入的工作階段60### Claude 寫的 mod 無法載入的工作階段

61 61 

62Claude 寫的 mod 只在你批准後載入,在允許 mod 執行的受信任工作區中。在這些工作階段中它不會載入:62Claude 寫的 mod 會在允許 mod 執行的受信任工作區中載入;在會詢問的模式下,須經您批准後才會載入。在以下工作階段中,mod 不會載入:

63 63 

64* **沒有人在那裡批准**:工作階段無法向你顯示提示,如在 `claude -p` 執行或 [`dontAsk` mode](https://code.claude.com/docs/zh-TW/permission-modes) 中64* **沒有人可以批准**:工作階段無法向您顯示權限提示,例如在 `auto` 和 `bypassPermissions` 模式以外執行的 `claude -p`,或 [`dontAsk` 模式](https://code.claude.com/docs/zh-TW/permission-modes)

65* **工作區不受信任**:你還沒有接受目錄的信任提示65* **工作區不受信任**:你還沒有接受目錄的信任提示

66* **Mod 已停用**:您以 `--safe-mode` 或 `--bare` 啟動、設定了 `disableAllHooks`,或您組織的[受管設定封鎖了它](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#choose-how-much-to-allow)66* **Mod 已停用**:您以 `--safe-mode` 或 `--bare` 啟動、設定了 `disableAllHooks`,或您組織的[受管設定封鎖了它](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#choose-how-much-to-allow)

67 67 

Details

328 328 

329請檢查哪些 mod 會收到此事件,以及您的 Claude Code 版本:329請檢查哪些 mod 會收到此事件,以及您的 Claude Code 版本:

330 330 

331* **內建防護**:在有受管設定,或以 Team 或 Enterprise [`/login`](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence) 作為工作階段的憑證時,[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)可能會在您安裝或以 `--plugin-dir` 載入的 mod 中略過此 hook。若要檢查,請在[偵錯日誌](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#read-the-debug-log)中搜尋 `settings.read bypassed by cc-plugin-sec-default`。如果含有該文字的某一行指名了您的 mod,請要求您組織的管理員[將該 mod 安裝為組織的 mod 之一](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods)。331* **內建防護**:在會載入[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)的環境中,它可能會在您安裝或以 `--plugin-dir` 載入的 mod 中略過此 hook。若要檢查,請在[偵錯日誌](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#read-the-debug-log)中搜尋 `settings.read bypassed by cc-plugin-sec-default`。如果含有該文字的某一行指名了您的 mod,請要求您組織的管理員[將該 mod 安裝為組織的 mod 之一](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods)。

332* **版本**:此事件在 Claude Code 本身的讀取時觸發,以及 `e.layers` 欄位,需要 Claude Code v2.1.304 或更新版本。332* **版本**:此事件在 Claude Code 本身的讀取時觸發,以及 `e.layers` 欄位,需要 Claude Code v2.1.304 或更新版本。

333 333 

334#### `settings.read` hook 收到的內容334#### `settings.read` hook 收到的內容

Details

78 78 

79Mods 不在沙箱中執行。如果您開啟[沙箱機制](https://code.claude.com/docs/zh-TW/sandboxing.md),沙箱會隔離 Claude 執行的 Bash 命令,而 mod 啟動的程序則會在沙箱之外執行。79Mods 不在沙箱中執行。如果您開啟[沙箱機制](https://code.claude.com/docs/zh-TW/sandboxing.md),沙箱會隔離 Claude 執行的 Bash 命令,而 mod 啟動的程序則會在沙箱之外執行。

80 80 

81當工作階段使用[受管設定](https://code.claude.com/docs/zh-TW/settings.md#check-what-your-organization-enforces),或以 Team 或 Enterprise [`/login`](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence) 作為工作階段的憑證時,預設情況下,mod 的核准無法讓呼叫繞過您的 `ask` 規則或 `PreToolUse` hook。若兩者皆無,mod 可以核准 `ask` 規則會提示的呼叫,或您的 `PreToolUse` hook 阻止的呼叫。若要確認 mod 何時也能核准 `deny` 規則拒絕的呼叫,請參閱[使用 hook 擴展權限](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。81Mod 可以核准您的 `deny` 或 `ask` 規則或 `PreToolUse` hook 原本會阻止的[許多工具呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods),除非[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)加以阻止。載入防護後,預設情況下,使用者的 mod 無法這樣做。在本機終端機工作階段中,若 `/plugin` 的 **Installed** 分頁上出現 `cc-plugin-sec-default`,即表示防護已載入。

82 82 

83Mod 可以重新設定 Claude Code 介面的大部分,但不能重新設定權限提示。它無法變更提示顯示給您的內容。83Mod 可以重新設定 Claude Code 介面的大部分,但不能重新設定權限提示。它無法變更提示顯示給您的內容。

84 84 

Details

39| `next.origin` | 觸發事件者的 `{ plugin, tier }`。Claude Code 本身為 `{ plugin: 'engine', tier: 'core' }`。mod 的 `tier` 是它在 [mod 執行順序](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)中的優先群組:`prepend`、`user`、`append` 或 `builtin`。 |39| `next.origin` | 觸發事件者的 `{ plugin, tier }`。Claude Code 本身為 `{ plugin: 'engine', tier: 'core' }`。mod 的 `tier` 是它在 [mod 執行順序](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)中的優先群組:`prepend`、`user`、`append` 或 `builtin`。 |

40| `next.budget` | hook 的時間限制(毫秒):`next.budget.ms` 為整體限制,`next.budget.remainingMs` 為目前剩餘時間 |40| `next.budget` | hook 的時間限制(毫秒):`next.budget.ms` 為整體限制,`next.budget.remainingMs` 為目前剩餘時間 |

41| `next.to(e, tier)` | 跳至較後面的層級,即 `append`、`builtin` 或 `core`。`next.to(e, 'append')` 會略過使用者安裝的 mod。只有 `prependPlugins` 或 `appendPlugins` 中的 mod 可以呼叫它。 |41| `next.to(e, tier)` | 跳至較後面的層級,即 `append`、`builtin` 或 `core`。`next.to(e, 'append')` 會略過使用者安裝的 mod。只有 `prependPlugins` 或 `appendPlugins` 中的 mod 可以呼叫它。 |

42| `next.error` | 僅限 `.catch` 處理常式中。當 hook 失敗時,`kind` 為 `throw` 或 `timeout`,`message` 為錯誤文字。當 hook 因事件來自該 hook 或您的 mod 在其 hook 之外的程式碼所發出的 mods API 呼叫內部而被略過時,`kind` 為 `re-entry`。`re-entry` 需要 Claude Code v2.1.292 或更新版本。 |42| `next.error` | 僅限 `.catch` 處理常式中。`kind` 為 `throw` 或 `timeout`,`message` 為錯誤文字。 |

43| `next.error.cause` | 僅在 `kind` 為 `re-entry` 時設定。若 `tool.call` 或 [`PreToolUse`](https://code.claude.com/docs/zh-TW/hooks#pretooluse) hook 變更了事件來源的 mods API 呼叫,或 `agent.spawn` hook 變更了由該呼叫啟動的 agent,則為 `rewritten`。若觸發該事件的是另一個 mod 新增至 mods API 的方法,則為 `lent`,除非同時符合 `rewritten` 的情況。`lent` 需要 Claude Code v2.1.292 或更新版本,`rewritten` 需要 v2.1.300 或更新版本。 |

44| `next.called` | 僅限 `.catch` 處理常式中。當 hook 曾呼叫 `next` 時為 `true`。 |43| `next.called` | 僅限 `.catch` 處理常式中。當 hook 曾呼叫 `next` 時為 `true`。 |

45 44 

46## 事件45## 事件


252| [`AbovePrompt`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`、`isWorking`、`maxRows`、`bodyColumns`、`scroll`、`view` | 單一實例 | 終端機、Desktop |251| [`AbovePrompt`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`、`isWorking`、`maxRows`、`bodyColumns`、`scroll`、`view` | 單一實例 | 終端機、Desktop |

253| [`Placed`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#place-a-row-in-the-transcript) | `id`、`plugin`、`onScreen` | `$.ui.place` 傳回的 `requestId` | 終端機 |252| [`Placed`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#place-a-row-in-the-transcript) | `id`、`plugin`、`onScreen` | `$.ui.place` 傳回的 `requestId` | 終端機 |

254| [`Backdrop`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`、`plugin`、`glass`、`colorScheme` | `backdrop` | `desktop` 與 `mobile` 使用介面。當 Desktop 或行動應用程式要求繪製背景時,您的 hook 就會執行。 |253| [`Backdrop`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`、`plugin`、`glass`、`colorScheme` | `backdrop` | `desktop` 與 `mobile` 使用介面。當 Desktop 或行動應用程式要求繪製背景時,您的 hook 就會執行。 |

255| `UserMessage` | `text`、`origin`、`isExpanded`,以及依來源而定的 `task` 或 `from` | 訊息 id | 終端機、Desktop、VS Code |254| `UserMessage` | `text`、`origin`、`isExpanded`,以及依來源而定的 `task` 或 `from` | 所繪製列的 id | 終端機、Desktop、VS Code |

256| `AssistantMessage` | 回覆的文字 | 訊息 id | 終端機、Desktop、VS Code |255| `AssistantMessage` | 回覆的文字 | 所繪製列的 id | 終端機、Desktop、VS Code |

257| `ToolUse`、`ToolResult`、`ToolGroup` | 工具的名稱、輸入與結果 | 工具呼叫 id | 終端機、Desktop、VS Code |256| `ToolUse`、`ToolResult`、`ToolGroup` | 工具的名稱、輸入與結果 | 工具呼叫 id | 終端機、Desktop、VS Code |

258| `CommandOutput` | `command`、`text` | 訊息 id | 終端機、Desktop |257| `CommandOutput` | `command`、`text` | 所繪製列的 id | 終端機、Desktop |

259| [`AskUserQuestion`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) | 問題與選項 | 工具呼叫 id | 終端機、Desktop、VS Code |258| [`AskUserQuestion`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) | 問題與選項 | 工具呼叫 id | 終端機、Desktop、VS Code |

260| `ToolProgress` | `kind` | 工具呼叫 id | 終端機 |259| `ToolProgress` | `kind` | 工具呼叫 id | 終端機 |

261| [`Spinner`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) | `word`、`message`、`suffix`、`mode` | agent id | 終端機、Desktop、VS Code |260| [`Spinner`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) | `word`、`message`、`suffix`、`mode` | agent id | 終端機、Desktop、VS Code |

262| `TurnDuration` | `word`、`durationMs` | 訊息 id | 終端機 |261| `TurnDuration` | `word`、`durationMs` | 所繪製列的 id | 終端機 |

263| `InfoNotice` | `text`、`command` | 訊息 id | 終端機 |262| `InfoNotice` | `text`、`command` | 加上 `notice:` 前綴的通知 `text` | 終端機 |

264| `SessionMode` | `modes` | 單一實例 | 終端機、Desktop |263| `SessionMode` | `modes` | 單一實例 | 終端機、Desktop |

265| `PromptHint` | `isDraft`、`isWorking`、`hint` | 單一實例 | 終端機、Desktop |264| `PromptHint` | `isDraft`、`isWorking`、`hint` | 單一實例 | 終端機、Desktop |

266 265 


424| :- | :- | :- |423| :- | :- | :- |

425| `CLAUDE_CODE_PLUGIN_DIRS` | 環境,或 `~/.claude/settings.json` 中的 `env` | 以 `--plugin-dir` 的方式載入的外掛目錄,供無法傳入旗標的應用程式使用。以 `:` 分隔的絕對路徑,在 Windows 上則以 `;` 分隔。 |424| `CLAUDE_CODE_PLUGIN_DIRS` | 環境,或 `~/.claude/settings.json` 中的 `env` | 以 `--plugin-dir` 的方式載入的外掛目錄,供無法傳入旗標的應用程式使用。以 `:` 分隔的絕對路徑,在 Windows 上則以 `;` 分隔。 |

426| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | 環境 | `1` 會讓長時間執行的非互動式工作階段在儲存時重新載入 `--plugin-dir` mod |425| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | 環境 | `1` 會讓長時間執行的非互動式工作階段在儲存時重新載入 `--plugin-dir` mod |

427| `prependPlugins`、`appendPlugins` | 受管設定。僅在沒有受管設定的機器上、且工作階段的憑證不是 Team 或 Enterprise `/login` 時,才可使用使用者設定。 | 外掛 id 的清單,例如 `acme-guard@acme-tools`。`prependPlugins` 中的 mod 會在使用者安裝的每個 mod 之前執行,`appendPlugins` 中的 mod 則在之後執行,並依列出的順序。請參閱 [mod 執行順序](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)。 |426| `prependPlugins`、`appendPlugins` | 受管設定。僅在沒有受管設定或 [`managed-mcp.json`](https://code.claude.com/docs/zh-TW/managed-mcp#deploy-managed-mcp-json) 檔案的機器上、且工作階段的憑證不是 Team 或 Enterprise `/login` 時,才可使用使用者設定。 | 外掛 id 的清單,例如 `acme-guard@acme-tools`。`prependPlugins` 中的 mod 會在使用者安裝的每個 mod 之前執行,`appendPlugins` 中的 mod 則在之後執行,並依列出的順序。請參閱 [mod 執行順序](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)。 |

428| `allowManagedModsOnly` | 受管設定,作為[內建防護的選項](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#set-options-on-the-built-in-guard) | 只有[屬於您組織的](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods) mod,以及內建於 Claude Code 的 mod,會執行其 hook。使用者的設定 hook 會繼續執行。 |427| `allowManagedModsOnly` | 受管設定,作為[內建防護的選項](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#set-options-on-the-built-in-guard) | 只有[屬於您組織的](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods) mod,以及內建於 Claude Code 的 mod,會執行其 hook。使用者的設定 hook 會繼續執行。 |

429| `allowModsToOverrideDenyRules` | 受管設定,作為[內建防護的選項](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#set-options-on-the-built-in-guard) | 允許使用者安裝的 mod 核准遭 `deny` 規則拒絕的工具呼叫 |428| `allowModsToOverrideDenyRules` | 受管設定,作為[內建防護的選項](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#set-options-on-the-built-in-guard) | 允許使用者安裝的 mod 核准工具呼叫,越過大部分[預設會維持生效的結果](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods),包括 `deny` 規則 |

430| `allowManagedHooksOnly` | 受管設定 | 封鎖不屬於您組織的 hook 與已安裝的 mod。請參閱[哪些會繼續執行](https://code.claude.com/docs/zh-TW/settings-reference.md#what-runs-under-allowmanagedhooksonly)。 |429| `allowManagedHooksOnly` | 受管設定 | 封鎖不屬於您組織的 hook 與已安裝的 mod。請參閱[哪些會繼續執行](https://code.claude.com/docs/zh-TW/settings-reference.md#what-runs-under-allowmanagedhooksonly)。 |

431| `disableAllHooks` | 任何設定檔 | 在受管設定中,已安裝外掛的任何 mod 或 hook 都不會執行。在您自己的設定中,您組織所管理的內容會繼續執行。請參閱 [`disableAllHooks`](https://code.claude.com/docs/zh-TW/settings-reference#disableallhooks)。 |430| `disableAllHooks` | 任何設定檔 | 在受管設定中,已安裝外掛的任何 mod 或 hook 都不會執行。在您自己的設定中,您組織所管理的內容會繼續執行。請參閱 [`disableAllHooks`](https://code.claude.com/docs/zh-TW/settings-reference#disableallhooks)。 |

432| `disableSideloadFlags` | 受管設定 | 在啟動時拒絕 `--plugin-dir` 與 `--plugin-url` |431| `disableSideloadFlags` | 受管設定 | 在啟動時拒絕 `--plugin-dir` 與 `--plugin-url` |

433| `pluginConfigs` | 使用者或受管設定 | 存放 mod 的 `userConfig` 值,以外掛 id 為鍵,例如 `acme-guard@acme-tools`;若是以 `--plugin-dir` 載入的外掛,則以其名稱加上 `@inline` 為鍵,例如 `first-mod@inline` |432| `pluginConfigs` | 使用者或受管設定 | 存放 mod 的 `userConfig` 值,以外掛 id 為鍵,例如 `acme-guard@acme-tools`;若是以 `--plugin-dir` 載入的外掛,則以其名稱加上 `@inline` 為鍵,例如 `first-mod@inline` |

434 433 

435`sec-default@builtin` 是內建於 Claude Code 的防護,在 `/plugin` 與偵錯日誌中列為 `cc-plugin-sec-default`。在具有受管設定的機器上,或在憑證為 Team 或 Enterprise [`/login`](https://code.claude.com/docs/zh-TW/authentication#authentication-precedence) 的工作階段中,它會在使用者安裝的每個 mod 之前載入。若設定了受管 `prependPlugins`,則只有在該清單列出此防護時才會載入,並位於所列的位置。434`sec-default@builtin` 是內建於 Claude Code 的防護,在 `/plugin` 與偵錯日誌中列為 `cc-plugin-sec-default`。[在它載入的情況下](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default),它會在使用者安裝的每個 mod 之前執行。若設定了受管 `prependPlugins`,則只有在該清單列出此防護時才會載入,並位於所列的位置。

436 435 

437其原始碼位於 [Claude Code 儲存庫的 `mods/sec-default` 目錄](https://github.com/anthropics/claude-code/tree/main/mods/sec-default)。436其原始碼位於 [Claude Code 儲存庫的 `mods/sec-default` 目錄](https://github.com/anthropics/claude-code/tree/main/mods/sec-default)。

438 437 

Details

14 14 

15當模組未載入、hook 被跳過或另一個 mod 拒絕您的 mod 時,Claude Code 會寫入一行,其中命名您的 mod。您讀取該行的位置取決於工作階段:15當模組未載入、hook 被跳過或另一個 mod 拒絕您的 mod 時,Claude Code 會寫入一行,其中命名您的 mod。您讀取該行的位置取決於工作階段:

16 16 

17* **熱重新載入 plugin 目錄的工作階段**:文字記錄中的暗淡行。這是您使用 `--plugin-dir` 啟動的互動式工作階段,或您[為 Claude 編寫的 mod 啟用熱重新載入](https://code.claude.com/docs/zh-TW/plugins/mods/create.md#ask-claude-for-a-mod)的工作階段。17* **熱重新載入外掛目錄的工作階段**:逐字稿中的暗淡行。這是您使用 `--plugin-dir` 啟動的互動式工作階段,或您[為 Claude 編寫的 mod 啟用熱重新載入](https://code.claude.com/docs/zh-TW/plugins/mods/create.md#ask-claude-for-a-mod)的工作階段。

18* **任何其他互動式工作階段,例如執行您從市場安裝的 mod 的工作階段**:[偵錯日誌](#read-the-debug-log)只有。若要取得一個,請使用 `claude --debug` 啟動工作階段。18* **任何其他互動式工作階段,例如執行您從市場安裝的 mod 的工作階段**:[偵錯日誌](#read-the-debug-log)只有。若要取得一個,請使用 `claude --debug` 啟動工作階段。

19* **`claude -p` 執行 `--plugin-dir`**:stderr,採用預設文字輸出格式。另一個 mod 的拒絕只會進入偵錯日誌。19* **`claude -p` 執行 `--plugin-dir`**:stderr,採用預設文字輸出格式。另一個 mod 的拒絕只會進入偵錯日誌。

20 20 


68 68 

69### 來自內建防護的訊息69### 來自內建防護的訊息

70 70 

71在具有受管設定的機器上,或在憑證為 Team 或 Enterprise `/login` 的工作階段中,[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)可以拒絕 mod 或其中一個答案。每條訊息都命名您的組織管理員設定以變更規則的選項。71在[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)載入的地方,它可以拒絕 mod 或其中一個答案。每條訊息都命名您的組織管理員設定以變更規則的選項。

72 72 

73| 訊息包含 | 這表示什麼 | 它出現在哪裡 |73| 訊息包含 | 這表示什麼 | 它出現在哪裡 |

74| :- | :- | :- |74| :- | :- | :- |

plugins/org.md +1 −1

Details

89* **互動式工作階段**:Claude Code 僅在貢獻者接受該資料夾的[工作區信任對話](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)後才註冊市場。89* **互動式工作階段**:Claude Code 僅在貢獻者接受該資料夾的[工作區信任對話](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)後才註冊市場。

90* **[非互動式 `-p` 執行](https://code.claude.com/docs/zh-TW/headless)**:項目僅適用於使用者已互動式接受信任的資料夾,或您在 `~/.claude.json` 中設定 `hasTrustDialogAccepted` 旗標的資料夾。90* **[非互動式 `-p` 執行](https://code.claude.com/docs/zh-TW/headless)**:項目僅適用於使用者已互動式接受信任的資料夾,或您在 `~/.claude.json` 中設定 `hasTrustDialogAccepted` 旗標的資料夾。

91 91 

92市場按相對路徑列出的外掛程式在儲存庫的 `extraKnownMarketplaces` 項目適用後從市場複本載入。市場項目指向外部來源(例如外掛程式自己的 GitHub 儲存庫)的外掛程式不會單獨從儲存庫的設定安裝。每個貢獻者看到 `Plugin "<name>" is enabled in project settings but isn't installed`,直到他們執行 `claude plugin install <name>@<marketplace> --scope project`,如[安裝外掛程式](https://code.claude.com/docs/zh-TW/plugins/install.md)所述。92在儲存庫中設定 `enabledPlugins` 並不會安裝外掛程式。市集註冊後,請每位貢獻者執行 `claude plugin install <name>@<marketplace> --scope project`。在他們執行之前,`/plugin` 的 **Errors** 分頁可能會顯示 `Plugin "<name>" is enabled in project settings but isn't installed here` 或 [`not cached`](https://code.claude.com/docs/zh-TW/plugins/troubleshooting#plugin-not-cached-at)。當本機 `directory` 或 `file` 市集以[相對路徑 `source`](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference#plugin-sources) 列出該外掛程式時,貢獻者不需要進行安裝。

93 93 

94如果您使用具有相對路徑的本機 `directory` 或 `file` 來源,路徑會針對您的儲存庫的主要簽出進行解析。當您從 git worktree 執行 Claude Code 時,路徑仍指向主要簽出,因此所有 worktree 共享相同的市場位置。94如果您使用具有相對路徑的本機 `directory` 或 `file` 來源,路徑會針對您的儲存庫的主要簽出進行解析。當您從 git worktree 執行 Claude Code 時,路徑仍指向主要簽出,因此所有 worktree 共享相同的市場位置。

95 95 

Details

322 322 

323### Marketplace updates keep failing offline323### Marketplace updates keep failing offline

324 324 

325您在市集的 git 主機無法到達的環境中工作,每個工作階段都在背景中重複失敗的重新整理。您現有的市集簽出保持原位,啟動不會延遲。325您在市集的 git 主機無法到達的環境中工作,每個工作階段都在背景中重複失敗的重新整理。您現有的市集簽出保持原位。

326 326 

327每個工作階段,對於 [開啟自動更新](https://code.claude.com/docs/zh-TW/plugins/loading.md#which-marketplaces-and-plugins-auto-update) 的市集,Claude Code 在背景中檢查市集的 git 主機是否有新提交。當該檢查無法到達主機時,它會嘗試再次複製市集,離線時該複製也會失敗。327每個工作階段,對於 [開啟自動更新](https://code.claude.com/docs/zh-TW/plugins/loading.md#which-marketplaces-and-plugins-auto-update) 的市集,Claude Code 在背景中檢查市集的 git 主機是否有新提交。當該檢查無法到達主機時,它會嘗試再次複製市集,離線時該複製也會失敗。

328 328 


675 675 

676### `Plugin "<name>" not cached at <path>`676### `Plugin "<name>" not cached at <path>`

677 677 

678**Errors** 標籤顯示此行及指導 `Run /plugin to refresh the plugin cache`。Claude Code 有外掛程式的安裝記錄,但記錄指向的目錄遺失,例如在您清除快取後。678**Errors** 標籤會顯示此行,並附上指引 `Run /plugin to refresh the plugin cache`。這表示 Claude Code 找不到可用的外掛程式副本。例如,您清除了快取,因此其安裝記錄所指向的目錄已遺失。或者,您開啟了一個其設定啟用了該外掛程式的儲存庫,但您尚未安裝它。

679 679 

680從您的 shell 重新安裝外掛程式。`claude plugin install <name>@<marketplace>` 重新下載外掛程式,其安裝目錄遺失,即使其記錄存在:680從您的 shell 安裝外掛程式。如果您開啟的儲存庫其 `.claude/settings.json` 啟用了該外掛程式,請依照 [在專案設定中啟用但未安裝](https://code.claude.com/docs/zh-TW/plugins/loading.md#enabled-in-project-settings-but-not-installed) 的說明,在該專案中使用 `enabledPlugins` 裡該外掛程式的鍵執行此命令:

681 

682```shell theme={null}

683claude plugin install <name>@<marketplace> --scope project

684```

685 

686否則,請執行此命令;即使外掛程式的記錄存在,它也會重新下載安裝目錄已遺失的外掛程式:

681 687 

682```shell theme={null}688```shell theme={null}

683claude plugin install <name>@<marketplace>689claude plugin install <name>@<marketplace>

684```690```

685 691 

686然後在您的工作階段中執行 `/reload-plugins`。**Errors** 標籤條目消失,外掛程式回到 **Installed** 下。692然後在您的工作階段中執行 `/reload-plugins`。**Errors** 標籤條目會消失,外掛程式會列在 **Installed** 下。

687 693 

688### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`694### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

689 695 

Details

103[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)與標準速度各自保留獨立的快取,因此在您開啟或關閉快速模式後,下一個請求無法使用另一種速度所快取的內容。在對話中第一次開啟快速模式時,下一個請求會以[快速模式費率](https://code.claude.com/docs/zh-TW/fast-mode.md#understand-the-cost-tradeoff)讀取到目前為止未經快取的整個對話。若要降低此成本,請在工作階段開始時開啟它。103[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)與標準速度各自保留獨立的快取,因此在您開啟或關閉快速模式後,下一個請求無法使用另一種速度所快取的內容。在對話中第一次開啟快速模式時,下一個請求會以[快速模式費率](https://code.claude.com/docs/zh-TW/fast-mode.md#understand-the-cost-tradeoff)讀取到目前為止未經快取的整個對話。若要降低此成本,請在工作階段開始時開啟它。

104 104 

105* 如果您在 Claude 工作時開啟它,該回合會以標準速度完成,而任何未快取讀取的費用會在您下一個回合的第一個請求中支付。105* 如果您在 Claude 工作時開啟它,該回合會以標準速度完成,而任何未快取讀取的費用會在您下一個回合的第一個請求中支付。

106* 如果您目前的模型不支援快速模式,執行 `/fast` 也會[將您切換至 Opus](https://code.claude.com/docs/zh-TW/fast-mode.md#toggle-fast-mode)。該[模型切換](#switching-models)本身會從執行中回合的下一個請求開始啟動新的快取。106* 如果您目前的模型不支援快速模式,執行 `/fast` 也會[切換您的模型](https://code.claude.com/docs/zh-TW/fast-mode.md#toggle-fast-mode)。該[模型切換](#switching-models)本身會從執行中回合的下一個請求開始啟動新的快取。

107 107 

108之後的每次切換,都會以未快取方式讀取您所切換到的速度尚未快取的內容。Claude Code 自行進行的速度變更,例如達到速率限制後[改用標準速度](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)以及稍後恢復快速模式,也算作切換。108之後的每次切換,都會以未快取方式讀取您所切換到的速度尚未快取的內容。Claude Code 自行進行的速度變更,例如達到速率限制後[改用標準速度](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)以及稍後恢復快速模式,也算作切換。

109 109 

Details

185* **Effort 等級**:當您從已連線的裝置以 `/effort` 或裝置的 effort 控制項設定 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)時,Claude Code 會將其套用至您機器上的工作階段。若您已使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定等級,工作階段會維持該等級,且 Claude Code 會拒絕從 effort 控制項選擇的不同等級。從 effort 控制項選擇等級需要您的機器上安裝 Claude Code v2.1.234 或更新版本。185* **Effort 等級**:當您從已連線的裝置以 `/effort` 或裝置的 effort 控制項設定 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)時,Claude Code 會將其套用至您機器上的工作階段。若您已使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定等級,工作階段會維持該等級,且 Claude Code 會拒絕從 effort 控制項選擇的不同等級。從 effort 控制項選擇等級需要您的機器上安裝 Claude Code v2.1.234 或更新版本。

186* **連線失敗後重新連線**:執行 `/remote-control` 即可重新連線。若在此期間壓縮改寫了對話,或您使用 `/resume` 切換了對話,Claude Code 會封存其先前使用的伺服器工作階段,而不會將其留在工作階段清單中。您仍可在 claude.ai/code 的[已封存工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#find-an-archived-session)中找到該工作階段。在裝置仍連線時切換對話不會封存工作階段。186* **連線失敗後重新連線**:執行 `/remote-control` 即可重新連線。若在此期間壓縮改寫了對話,或您使用 `/resume` 切換了對話,Claude Code 會封存其先前使用的伺服器工作階段,而不會將其留在工作階段清單中。您仍可在 claude.ai/code 的[已封存工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#find-an-archived-session)中找到該工作階段。在裝置仍連線時切換對話不會封存工作階段。

187 187 

188### 從瀏覽器分叉工作階段

189 

190若要在不中斷工作階段的情況下嘗試不同的方向,請在 [claude.ai/code](https://claude.ai/code) 開啟該工作階段,並在工作階段的選單中選擇 **Fork**,或從逐字稿中較早的訊息進行分叉。分叉會以新工作階段的形式出現在您的工作階段清單中,並從該點繼續對話,而原本的工作階段則會持續執行。分叉需要您的機器上安裝 Claude Code v2.1.277 或更新版本。

191 

192以 `--spawn session` 啟動的 `claude remote-control` 伺服器只能容納其唯一的工作階段,因此無法執行分叉。

193 

194Claude Code 會在下列情況下拒絕分叉:

195 

196* 工作階段忙碌中。請在其閒置時再分叉。

197* 工作階段由 VS Code 擴充功能或其他以 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 建置的應用程式所託管。

198 

188### 為所有工作階段啟用 Remote Control199### 為所有工作階段啟用 Remote Control

189 200 

190除非開啟自動連線,否則 Remote Control 只會在您明確執行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 時啟用。若要為每個互動式工作階段開啟自動連線,請在 Claude Code 中執行 `/config` 並設定 **Enable Remote Control for all sessions**。此切換開關有三個值:201除非開啟自動連線,否則 Remote Control 只會在您明確執行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 時啟用。若要為每個互動式工作階段開啟自動連線,請在 Claude Code 中執行 `/config` 並設定 **Enable Remote Control for all sessions**。此切換開關有三個值:


198* **VS Code 擴充功能**:[命令選單](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box) Settings 區段中的 **Enable Remote Control for all sessions**。209* **VS Code 擴充功能**:[命令選單](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box) Settings 區段中的 **Enable Remote Control for all sessions**。

199* **Desktop 應用程式**:**Settings > Code** 或 **Settings > Claude Code** 中的 **Connect new sessions to Remote Control**。請參閱[控制哪些工作階段會出現在您的其他裝置上](https://code.claude.com/docs/zh-TW/desktop.md#control-which-sessions-appear-on-your-other-devices)。210* **Desktop 應用程式**:**Settings > Code** 或 **Settings > Claude Code** 中的 **Connect new sessions to Remote Control**。請參閱[控制哪些工作階段會出現在您的其他裝置上](https://code.claude.com/docs/zh-TW/desktop.md#control-which-sessions-appear-on-your-other-devices)。

200 211 

201若要改從設定檔開啟自動連線,請在您的使用者 `~/.claude/settings.json` 或[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中將 [`remoteControlAtStartup`](https://code.claude.com/docs/zh-TW/settings-reference#remotecontrolatstartup) 設為 `true`。在專案或本機設定(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 會採用 `false` 並為該儲存庫關閉自動連線,但會忽略 `true`,因此簽入的檔案無法為每位開啟該儲存庫的人開啟 Remote Control。212若要改從設定檔開啟自動連線,請在您的使用者 `~/.claude/settings.json` 或[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中將 [`remoteControlAtStartup`](https://code.claude.com/docs/zh-TW/settings-reference#remotecontrolatstartup) 設為 `true`。在專案或本機設定(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 會採用 `false` 並為該儲存庫關閉自動連線。它會忽略 `true`,因此您無法使用簽入的檔案為每位開啟該儲存庫的人開啟 Remote Control。

202 213 

203自動連線會以您自己的 claude.ai 帳戶登入,因此它所啟動的工作階段只會出現在您自己帳戶的 Claude 應用程式中,不會授予其他任何人存取權。214自動連線會以您自己的 claude.ai 帳戶登入,因此它所啟動的工作階段只會出現在您自己帳戶的 Claude 應用程式中,不會授予其他任何人存取權。

204 215 

routines.md +1 −1

Details

528* [`/loop` 與工作階段內排程](https://code.claude.com/docs/zh-TW/scheduled-tasks):在開啟的 CLI 工作階段中排程本機任務528* [`/loop` 與工作階段內排程](https://code.claude.com/docs/zh-TW/scheduled-tasks):在開啟的 CLI 工作階段中排程本機任務

529* [Desktop 排程任務](https://code.claude.com/docs/zh-TW/desktop-scheduled-tasks.md):在您的機器上執行、可存取本機檔案的本機排程任務529* [Desktop 排程任務](https://code.claude.com/docs/zh-TW/desktop-scheduled-tasks.md):在您的機器上執行、可存取本機檔案的本機排程任務

530* [雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md):為雲端工作階段設定網路存取、環境變數和設定指令碼530* [雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md):為雲端工作階段設定網路存取、環境變數和設定指令碼

531* [Projects](https://code.claude.com/docs/zh-TW/claude-projects.md):由 Claude 在平行雲端工作階段之間協調的持續性工作;從專案建立的排程任務會出現在其 **Scheduled tasks** 標籤上531* [Projects](https://code.claude.com/docs/zh-TW/claude-projects.md):由 Claude 在平行雲端工作階段之間協調的持續性工作;從專案建立的排程任務會出現在其 **Scheduled tasks** 檢視中

532* [MCP 連接器](https://code.claude.com/docs/zh-TW/mcp.md):連接 Slack、Linear 和 Google Drive 等外部服務532* [MCP 連接器](https://code.claude.com/docs/zh-TW/mcp.md):連接 Slack、Linear 和 Google Drive 等外部服務

533* [GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions.md):在儲存庫事件發生時,於您的 CI 管線中執行 Claude533* [GitHub Actions](https://code.claude.com/docs/zh-TW/github-actions.md):在儲存庫事件發生時,於您的 CI 管線中執行 Claude

sandboxing.md +4 −0

Details

903 903 

904失敗後,Claude 可能會[提供在沙箱外重新執行命令](#the-unsandboxed-retry-escape-hatch)。核准該重試,或在另一個終端機中自己執行 git 命令。如果您已將 `allowUnsandboxedCommands` 設定為 `false`,Claude 無法提供重試,因此請自己執行命令。904失敗後,Claude 可能會[提供在沙箱外重新執行命令](#the-unsandboxed-retry-escape-hatch)。核准該重試,或在另一個終端機中自己執行 git 命令。如果您已將 `allowUnsandboxedCommands` 設定為 `false`,Claude 無法提供重試,因此請自己執行命令。

905 905 

906### git 命令因 `Unable to create '…/index.lock'` 而失敗

907 

908如果您是在儲存庫的子目錄中啟動 Claude Code,此錯誤可能表示 `.git` 位於[沙箱化命令可以寫入的範圍](#filesystem-isolation)之外。請改為從儲存庫的根目錄啟動 Claude Code,或在[連結的 worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 中,從該 worktree 的根目錄啟動。

909 

906### 名為 `objects` 或 `refs` 的資料夾在命令執行後消失910### 名為 `objects` 或 `refs` 的資料夾在命令執行後消失

907 911 

908在工作階段期間出現的頂層 `objects` 或 `refs` 資料夾,可能會[在沙箱化命令結束後被刪除](#when-the-sandbox-deletes-head-objects-or-refs)。無論該資料夾是由命令、Claude 還是您所建立的,都是如此。若要保留資料夾,請在其中留下一些內容。如果在工作階段期間頂層曾有 `HEAD` 檔案或符號連結,請將其移走,然後重新啟動在該處開啟的每個 Claude Code 工作階段。912在工作階段期間出現的頂層 `objects` 或 `refs` 資料夾,可能會[在沙箱化命令結束後被刪除](#when-the-sandbox-deletes-head-objects-or-refs)。無論該資料夾是由命令、Claude 還是您所建立的,都是如此。若要保留資料夾,請在其中留下一些內容。如果在工作階段期間頂層曾有 `HEAD` 檔案或符號連結,請將其移走,然後重新啟動在該處開啟的每個 Claude Code 工作階段。

Details

54}54}

55```55```

56 56 

57每位團隊成員也需要在每個複製的儲存庫中[執行 `claude plugin install security-guidance@claude-plugins-official --scope project`](https://code.claude.com/docs/zh-TW/plugins/loading#enabled-in-project-settings-but-not-installed) 一次。

58 

57管理員可以通過在 [受管設定](https://code.claude.com/docs/zh-TW/admin-setup.md) 中設定 [`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins) 來組織範圍內啟用外掛程式。59管理員可以通過在 [受管設定](https://code.claude.com/docs/zh-TW/admin-setup.md) 中設定 [`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins) 來組織範圍內啟用外掛程式。

58 60 

59## 外掛程式檢查的內容61## 外掛程式檢查的內容


135patterns:137patterns:

136 - rule_name: internal_api_key138 - rule_name: internal_api_key

137 substrings: ["sk_live_", "AKIA"]139 substrings: ["sk_live_", "AKIA"]

138 reminder: "硬編碼的 API 金鑰前綴。從秘密管理器載入認證。"140 reminder: "Hardcoded API key prefix. Load credentials from the secret manager."

139 - rule_name: tenant_unfiltered_query141 - rule_name: tenant_unfiltered_query

140 regex: "\\.objects\\.all\\(\\)"142 regex: "\\.objects\\.all\\(\\)"

141 paths: ["**/src/tenants/**"]143 paths: ["**/src/tenants/**"]

142 reminder: "多租戶程式碼必須按 org_id 篩選。"144 reminder: "Multi-tenant code must filter by org_id."

143```145```

144 146 

145| 欄位 | 類型 | 描述 |147| 欄位 | 類型 | 描述 |

Details

235set -u235set -u

236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

237IFS=':'237IFS=':'

238rc=0 # becomes 1 when a step fails; a non-zero exit makes the runner log it

238# -c overrides beat repo-local settings, blocking session-written fsmonitor,239# -c overrides beat repo-local settings, blocking session-written fsmonitor,

239# hook-path, and gpg-program config from executing code with the hook's240# hook-path, and gpg-program config from executing code with the hook's

240# privileges. -c commit.gpgsign=false also leaves these rescue commits241# privileges. -c commit.gpgsign=false also leaves these rescue commits


245g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \246g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

246 -c commit.gpgsign=false "$@"; }247 -c commit.gpgsign=false "$@"; }

247for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do248for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do

248 cd "$ws" 2>/dev/null || continue249 cd "$ws" || { rc=1; continue; }

249 [ -z "$(g status --porcelain 2>/dev/null)" ] && continue250 g add -A || rc=1

250 g add -A251 g diff-index --cached --quiet HEAD && continue # nothing to save

251 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || continue252 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || { rc=1; continue; }

252 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || true253 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || rc=1

253done254done

255exit "$rc"

254```256```

255 257 

256指令碼中的 `GIT_ALLOW_PROTOCOL` 這一行將 git 限制為 HTTPS、HTTP 與 SSH 遠端。如果執行器的環境已自行設定非空的 `GIT_ALLOW_PROTOCOL` 清單,指令碼會保留該清單。258指令碼中的 `GIT_ALLOW_PROTOCOL` 這一行將 git 限制為 HTTPS、HTTP 與 SSH 遠端。如果執行器的環境已自行設定非空的 `GIT_ALLOW_PROTOCOL` 清單,指令碼會保留該清單。

Details

23 * **使用 [Anthropic 管理的 git](#use-the-anthropic-git-proxy) 時**:若有此類憑證,Claude 會直接連線到 GitHub,而不是透過 Anthropic 管理的 git。23 * **使用 [Anthropic 管理的 git](#use-the-anthropic-git-proxy) 時**:若有此類憑證,Claude 會直接連線到 GitHub,而不是透過 Anthropic 管理的 git。

24 * **不使用 Anthropic 管理的 git 時**:如果您依照[在映像中提供 git 設定](#ship-git-config-in-your-image)所述嚴格限制其範圍,複製憑證可以保留在映像中。24 * **不使用 Anthropic 管理的 git 時**:如果您依照[在映像中提供 git 設定](#ship-git-config-in-your-image)所述嚴格限制其範圍,複製憑證可以保留在映像中。

25* **將環境祕密保留在執行工作階段的主機之外**:環境祕密可以註冊執行器並拾取在環境上排隊的任何工作階段。在固定群中,它存在於每個執行器主機上,任何工作階段的程式碼都可以讀取祕密檔案。優先使用[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners),其中祕密保留在協調器主機上,該主機永遠不執行使用者程式碼,每個執行器接收單次使用的工作單據,該單據恰好註冊一個執行器。在固定群中,將環境祕密檔案視為可由每個工作階段讀取,並在任何懷疑的工作階段洩露後輪換祕密。25* **將環境祕密保留在執行工作階段的主機之外**:環境祕密可以註冊執行器並拾取在環境上排隊的任何工作階段。在固定群中,它存在於每個執行器主機上,任何工作階段的程式碼都可以讀取祕密檔案。優先使用[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners),其中祕密保留在協調器主機上,該主機永遠不執行使用者程式碼,每個執行器接收單次使用的工作單據,該單據恰好註冊一個執行器。在固定群中,將環境祕密檔案視為可由每個工作階段讀取,並在任何懷疑的工作階段洩露後輪換祕密。

26 * **懷疑遭入侵後**:請由[所有者](https://code.claude.com/docs/zh-TW/cloud-environments.md#organization-shared-environments)在環境的 **Configuration** 分頁中建立新的祕密並撤銷舊的祕密,然後部署新的祕密。Anthropic 會拒絕所有使用舊祕密的協調器和執行器,包括透過其工作單據啟動的按需執行器。您的執行器會結束,其工作階段也會因此中斷。26 * **懷疑遭入侵後,請先撤銷可疑的工作階段**:在停止其執行器或撤銷祕密之前,請在 **Activity** 分頁上該工作階段的選單中選取 **Revoke token**。之後任何執行器都無法再恢復該工作階段。

27 * **接著更換祕密**:請由[所有者](https://code.claude.com/docs/zh-TW/cloud-environments.md#organization-shared-environments)在環境的 **Configuration** 分頁中建立新的祕密並撤銷舊的祕密,然後部署新的祕密。Anthropic 會拒絕所有使用舊祕密的協調器和執行器,包括透過其工作單據啟動的按需執行器。您的執行器會結束,其工作階段也會因此中斷。

27* **預設拒絕網路出站流量**:在每個環境上限制執行器和工作階段容器的出站流量在您自己的網路邊界;[預設拒絕出站流量](#default-deny-egress)涵蓋允許什麼以及為什麼。28* **預設拒絕網路出站流量**:在每個環境上限制執行器和工作階段容器的出站流量在您自己的網路邊界;[預設拒絕出站流量](#default-deny-egress)涵蓋允許什麼以及為什麼。

28* **最小權限主機 IAM**:附加到執行器主機的計算身份,例如執行個體設定檔或節點服務帳戶,應僅授予執行器本身需要的內容。工作階段應通過您的包裝器指令碼而不是繼承主機的身份來獲得自己的認證。29* **最小權限主機 IAM**:附加到執行器主機的計算身份,例如執行個體設定檔或節點服務帳戶,應僅授予執行器本身需要的內容。工作階段應通過您的包裝器指令碼而不是繼承主機的身份來獲得自己的認證。

29* **阻止工作階段的雲端中繼資料端點**:將工作階段保留在主機身份之外需要阻止它們對雲端中繼資料端點的存取,子網級出站流量原則不會攔截連結本地中繼資料流量,因此在容器本身中阻止它:30* **阻止工作階段的雲端中繼資料端點**:將工作階段保留在主機身份之外需要阻止它們對雲端中繼資料端點的存取,子網級出站流量原則不會攔截連結本地中繼資料流量,因此在容器本身中阻止它:


243 244 

244對於每個工作階段,Claude Code v2.1.267 或更新版本的執行器也會記錄以下其中一行:當 Anthropic 服務該工作階段的 Git 時,記錄一行包含 `governed git ACTIVE` 的 `[runner:session]`;若未服務,則記錄一行包含 `the server withheld Anthropic-managed git for this session` 的 `[runner:warn]`。請在以下情況中找出您看到的那一行:245對於每個工作階段,Claude Code v2.1.267 或更新版本的執行器也會記錄以下其中一行:當 Anthropic 服務該工作階段的 Git 時,記錄一行包含 `governed git ACTIVE` 的 `[runner:session]`;若未服務,則記錄一行包含 `the server withheld Anthropic-managed git for this session` 的 `[runner:warn]`。請在以下情況中找出您看到的那一行:

245 246 

246* **既沒有 `governed git ACTIVE` 也沒有 `withheld` 行**:早於 Claude Code v2.1.267 的執行器兩行都不會記錄,且 Anthropic 不會服務其工作階段。請依照[固定版本](#pin-the-version)將執行器更新至 v2.1.267 或更新版本。247* **既沒有 `governed git ACTIVE` 也沒有 `withheld` 行**:如果執行器早於 Claude Code v2.1.267,Anthropic 不會服務其工作階段。請依照[固定版本](#pin-the-version)將執行器更新至 v2.1.267 或更新版本。

247* **`withheld` 行**:Anthropic 未服務該工作階段。先前可搭配 Git 代理伺服器運作的執行器,也可能在您這邊沒有任何變更的情況下以這種方式失敗。248* **`withheld` 行**:Anthropic 未服務該工作階段。先前可搭配 Git 代理伺服器運作的執行器,也可能在您這邊沒有任何變更的情況下以這種方式失敗。

248 * **有儲存庫不在 github.com 上**:只要工作階段中有任何一個儲存庫位於其他 Git 主機(例如 GitHub Enterprise Server),該工作階段就不會被服務,包括其 github.com 儲存庫在內。請為該環境的執行器[關閉 Anthropic Git 代理伺服器](#turn-the-anthropic-git-proxy-off)。249 * **有儲存庫不在 github.com 上**:只要工作階段中有任何一個儲存庫位於其他 Git 主機(例如 GitHub Enterprise Server),該工作階段就不會被服務,包括其 github.com 儲存庫在內。請為該環境的執行器[關閉 Anthropic Git 代理伺服器](#turn-the-anthropic-git-proxy-off)。

249 * **所有儲存庫都在 github.com 上**:請將此失敗連同 `withheld` 行中的工作階段 ID 回報給[您的 Anthropic 客戶團隊](#report-an-issue)。Anthropic 會在其端記錄原因。250 * **所有儲存庫都在 github.com 上**:請將此失敗連同 `withheld` 行中的工作階段 ID 回報給[您的 Anthropic 客戶團隊](#report-an-issue)。Anthropic 會在其端記錄原因。


396如果您的節點是 ARM,將 `linux-x64` 交換為 `linux-arm64`,或在 Alpine 等 musl 基礎映像上交換為 `linux-x64-musl` 或 `linux-arm64-musl`;請參閱 [Alpine Linux 設定](https://code.claude.com/docs/zh-TW/setup.md#alpine-linux-and-musl-based-distributions)以了解 musl 映像需要的額外套件。URL 是標準 Claude Code 發佈位置,因此您可以根據[二進位檔案完整性和程式碼簽名](https://code.claude.com/docs/zh-TW/setup.md#binary-integrity-and-code-signing)中描述的發佈的已簽名清單驗證下載的二進位檔案。執行器需要 Claude Code 版本 2.1.224 或更新版本,若要服務 Claude Tag 工作階段則需要 2.1.229 或更新版本。建置映像,然後將其推送到您的登錄檔並在下面的配方中引用它:397如果您的節點是 ARM,將 `linux-x64` 交換為 `linux-arm64`,或在 Alpine 等 musl 基礎映像上交換為 `linux-x64-musl` 或 `linux-arm64-musl`;請參閱 [Alpine Linux 設定](https://code.claude.com/docs/zh-TW/setup.md#alpine-linux-and-musl-based-distributions)以了解 musl 映像需要的額外套件。URL 是標準 Claude Code 發佈位置,因此您可以根據[二進位檔案完整性和程式碼簽名](https://code.claude.com/docs/zh-TW/setup.md#binary-integrity-and-code-signing)中描述的發佈的已簽名清單驗證下載的二進位檔案。執行器需要 Claude Code 版本 2.1.224 或更新版本,若要服務 Claude Tag 工作階段則需要 2.1.229 或更新版本。建置映像,然後將其推送到您的登錄檔並在下面的配方中引用它:

397 398 

398```bash theme={null}399```bash theme={null}

400# If your model needs a newer release, change stable to latest in the URL

399docker build \401docker build \

400 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \402 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

401 -t <your-registry>/claude-runner:latest .403 -t <your-registry>/claude-runner:latest .


429執行器使用 `--capacity` 來限制它一次執行多少個工作階段。它不在它們之間分割 CPU 或記憶體,因此執行器上的工作階段共享容器的 CPU 和記憶體。為了避免一個工作階段的記憶體使用量結束其他工作階段,請每個執行器只執行一個工作階段,並為其設定[專屬的記憶體限制](#give-each-session-its-own-memory-limit)。431執行器使用 `--capacity` 來限制它一次執行多少個工作階段。它不在它們之間分割 CPU 或記憶體,因此執行器上的工作階段共享容器的 CPU 和記憶體。為了避免一個工作階段的記憶體使用量結束其他工作階段,請每個執行器只執行一個工作階段,並為其設定[專屬的記憶體限制](#give-each-session-its-own-memory-limit)。

430 432 

431* **每個執行器一個工作階段**:給每個容器一個工作階段的值。在 `--capacity 1` 使用此調整大小,[強化部分](#harden-your-deployment)推薦,以及[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners),您在工作流程的 [`spawn-runner` 鉤子](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#the-spawn-runner-hook)提交的工作負載上設定值,例如 Kubernetes Job 的 pod 範本。433* **每個執行器一個工作階段**:給每個容器一個工作階段的值。在 `--capacity 1` 使用此調整大小,[強化部分](#harden-your-deployment)推薦,以及[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners),您在工作流程的 [`spawn-runner` 鉤子](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#the-spawn-runner-hook)提交的工作負載上設定值,例如 Kubernetes Job 的 pod 範本。

432* **每個執行器多個工作階段**:在 `--capacity` 高於 1 時,將一個工作階段的值乘以容量,因為最多那麼多工作階段可以在容器中同時執行。[Kubernetes](#kubernetes) 和 [Docker Compose](#docker-compose) 配方執行 `--capacity 4`,沒有 CPU 或記憶體限制,因此添加為您執行的容量調整大小的限制。434* **每個執行器多個工作階段**:在 `--capacity` 高於 1 時,將一個工作階段的值乘以容量,因為最多那麼多工作階段可以在容器中同時執行,[包括閒置的工作階段](#release-idle-sessions-on-a-fixed-fleet)。[Kubernetes](#kubernetes) 和 [Docker Compose](#docker-compose) 配方執行 `--capacity 4`,沒有 CPU 或記憶體限制,因此添加為您執行的容量調整大小的限制。

433* **一台主機上多個執行器容器**:依執行器容量的總和調整主機大小,因為每個執行器只將自己的工作階段計入 `--capacity`:435* **一台主機上多個執行器容器**:依執行器容量的總和調整主機大小,因為每個執行器只將自己的工作階段計入 `--capacity`:

434 436 

435 * **記憶體**:將一個工作階段的記憶體乘以該總和,再加上主機本身程序使用的記憶體437 * **記憶體**:將一個工作階段的記憶體乘以該總和,再加上主機本身程序使用的記憶體

Details

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | 在工作階段結束後,在強制終止之前等待 Claude 程序乾淨退出的時間。如果子程序自己的 `SessionEnd` 掛鉤需要更多時間,請提高該值。 |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | 在工作階段結束後,在強制終止之前等待 Claude 程序乾淨退出的時間。如果子程序自己的 `SessionEnd` 掛鉤需要更多時間,請提高該值。 |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | 在釋放工作階段槽之前,等待尚未完成初始化的子程序的時間。請參閱[工作階段啟動逾時](#session-startup-timeout)以了解計時從何時開始,以及哪些工作階段會繼續執行。`0` 停用逾時。 |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | 在釋放工作階段槽之前,等待尚未完成初始化的子程序的時間。請參閱[工作階段啟動逾時](#session-startup-timeout)以了解計時從何時開始,以及哪些工作階段會繼續執行。`0` 停用逾時。 |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | 開啟 | 為每個工作階段的存放庫路徑播種持久化信任,以便尊重存放庫提交的 `permissions.allow` 和 `additionalDirectories`。設定 `false` 以放棄存放庫提交的權限授予,並改為在主機設定的 `settings.json` 中配置允許規則;存放庫提交的 `sandbox.*` 設定無論如何仍然適用,這就是為什麼[存放庫設定防護](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#harden-your-deployment)無論此旗標如何都掃描它們。 |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | 開啟 | 為每個工作階段的存放庫路徑播種持久化信任,以便尊重存放庫提交的 `permissions.allow` 和 `additionalDirectories`。設定 `false` 以放棄存放庫提交的權限授予,並改為在主機設定的 `settings.json` 中配置允許規則;存放庫提交的 `sandbox.*` 設定無論如何仍然適用,這就是為什麼[存放庫設定防護](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#harden-your-deployment)無論此旗標如何都掃描它們。 |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | 關閉 | 透過 [Anthropic git proxy](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) 複製 github.com 上的儲存庫,而不是使用客戶管理的 git 驗證。需要 `--capacity 1` 和 git 2.32 或更新版本;否則執行器拒絕啟動。取代重寫旗標。 |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | 關閉 | 透過 [Anthropic git proxy](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) 複製 github.com 上的儲存庫,而不是使用客戶管理的 git 驗證。需要 `--capacity 1` 和 git 2.32 或更新版本;否則執行器拒絕啟動。也需要 Claude Code v2.1.267 或更新版本。取代重寫旗標。 |

60 60 

61大多數持續時間旗標都有最大值,選擇以將每個逾時保持在執行時間的 32 位元計時器上限內,大約 24.85 天。`--*-min` 旗標上限為 10080 分鐘,7 天;`--drain-grace-sec` 為 604800 秒,也是 7 天;`--drain-wait-sec` 為 86400 秒,24 小時。`--session-stop-grace-sec` 和 `--post-session-hook-timeout-sec` 無上限。超過上限的行為因表面而異:61大多數持續時間旗標都有最大值,選擇以將每個逾時保持在執行時間的 32 位元計時器上限內,大約 24.85 天。`--*-min` 旗標上限為 10080 分鐘,7 天;`--drain-grace-sec` 為 604800 秒,也是 7 天;`--drain-wait-sec` 為 86400 秒,24 小時。`--session-stop-grace-sec` 和 `--post-session-hook-timeout-sec` 無上限。超過上限的行為因表面而異:

62 62 


161 161 

162## Prometheus 指標162## Prometheus 指標

163 163 

164每個執行器在與 `/healthz` 相同的連接埠上的 `GET /metrics` 上提供 Prometheus 指標。關鍵序列:164每個執行器都會在與 `/healthz` 相同的連接埠上,於 `GET /metrics` 提供 Prometheus 指標。主要序列如下:

165 165 

166| 序列 | 備註 |166| 序列 | 說明 |

167| :- | :- |167| :- | :- |

168| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | 始終 `1`;對艦隊清單和版本漂移檢測有用 |168| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | 一律為 `1`;適用於機群盤點與版本偏移偵測 |

169| `claude_code_self_hosted_runner_capacity` | 配置的 `--capacity` |169| `claude_code_self_hosted_runner_capacity` | 已設定的 `--capacity` |

170| `claude_code_self_hosted_runner_active_sessions` | 目前執行的工作階段 |170| `claude_code_self_hosted_runner_active_sessions` | 目前正在執行的工作階段 |

171| `claude_code_self_hosted_runner_locked_account{email}` | 一旦執行器鎖定到使用者並發出攜帶 `act.email` 聲稱的工作階段權杖,就會出現。該序列在鎖定到 Claude Tag 代理的執行器上不存在,其工作階段權杖不攜帶 `act.email`。標籤值是帳戶電子郵件;如果您的指標存放區可廣泛讀取,在抓取時放棄或雜湊標籤,例如使用 Prometheus `metric_relabel_configs`。 |171| `claude_code_self_hosted_runner_locked_account{email}` | 當執行器已鎖定至某位使用者,且已核發帶有 `act.email` 宣告的工作階段 token 後才會出現。若執行器鎖定至 Claude Tag agent,由於其工作階段 token 不帶有 `act.email`,因此不會有此序列。標籤值為帳戶電子郵件;如果您的指標儲存區可被廣泛讀取,請在抓取時捨棄或雜湊此標籤,例如使用 Prometheus 的 `metric_relabel_configs`。 |

172| `claude_code_self_hosted_runner_last_poll_age_seconds` | 自上次成功輪詢以來的秒數。如果超過 60,則發出警報。 |172| `claude_code_self_hosted_runner_last_poll_age_seconds` | 距上次成功輪詢的秒數。超過 60 時發出警示。 |

173| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | 按類型累積 PollWork 失敗:`transport`、`timeout`、`5xx`、`429` 或 `4xx`。所有五個序列都從程序啟動開始存在;在 `rate(...[5m]) > 0` 時發出警報。 |173| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | 依類型累計的 PollWork 失敗次數:`transport`、`timeout`、`5xx`、`429` 或 `4xx`。五個序列從程序啟動時即存在;請針對 `rate(...[5m]) > 0` 發出警示。 |

174| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | 在執行器的生命週期內產生的工作階段子程序,每個工作階段來源一個序列,例如 `web_claude_ai`、`ios`、`android`、`desktop_app` 或 `claude_code_cli`,或當伺服器未傳送時 `unknown`。Slack 工作階段根據哪個 Slack 整合建立它們而攜帶 `claude_in_slack` 或 `claude-in-slack`,因此使用正規表達式選擇器(例如 `{client_platform=~"claude[-_]in[-_]slack"}` 匹配兩者。使用 `sum()` 表示艦隊總計。 |174| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | 執行器生命週期內產生的工作階段子程序,每個工作階段來源一個序列,例如 `web_claude_ai`、`ios`、`android`、`desktop_app` 或 `claude_code_cli`,若伺服器未傳送來源則為 `unknown`。Slack 工作階段會依建立它的 Slack 整合而帶有 `claude_in_slack` 或 `claude-in-slack`,因此請使用正規表示式選擇器同時比對兩者,例如 `{client_platform=~"claude[-_]in[-_]slack"}`。使用 `sum()` 取得機群總數。 |

175| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | 乾淨結束的工作階段,標籤方式相同。比普通乾淨退出更廣泛:請參閱[工作階段生命週期計數器語義](#session-lifecycle-counter-semantics)以了解計數的內容。 |175| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | 正常結束的工作階段,標籤方式相同。範圍比單純的正常結束更廣:計入哪些情況請參閱[工作階段生命週期計數器語意](#session-lifecycle-counter-semantics)。 |

176| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | 以失敗結束的工作階段,標籤方式相同。相同的警告:請參閱[工作階段生命週期計數器語義](#session-lifecycle-counter-semantics)。 |176| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | 以失敗結束的工作階段,標籤方式相同。注意事項相同:請參閱[工作階段生命週期計數器語意](#session-lifecycle-counter-semantics)。 |

177| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | 執行器因操作原因而不是工作階段結果終止的工作階段,標籤方式相同。請參閱[工作階段生命週期計數器語義](#session-lifecycle-counter-semantics)。 |177| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | 執行器因營運原因(而非工作階段結果)而終止的工作階段,標籤方式相同。請參閱[工作階段生命週期計數器語意](#session-lifecycle-counter-semantics)。 |

178| `claude_code_self_hosted_runner_initializing_sessions` | 目前處於初始化階段的工作階段,從指派到子程序的初始化事件 |178| `claude_code_self_hosted_runner_initializing_sessions` | 目前處於初始化階段的工作階段,從指派開始直到子程序的 init 事件 |

179| `claude_code_self_hosted_runner_session_init_duration_seconds` | 工作階段初始化持續時間的直方圖 |179| `claude_code_self_hosted_runner_session_init_duration_seconds` | 工作階段初始化時間的直方圖 |

180| `claude_code_self_hosted_runner_session_init_errors_total` | 在達到初始化前失敗的工作階段:簽出掛鉤失敗、git 準備、權杖問題或初始化前子程序崩潰 |180| `claude_code_self_hosted_runner_session_init_errors_total` | 在到達 init 之前即失敗的工作階段:checkout hook 失敗、git 準備、token 問題,或 init 前的子程序當機 |

181| `claude_code_self_hosted_runner_session_start_hook_errors_total` | 報告錯誤結果的 `SessionStart` 掛鉤,每個失敗的掛鉤執行一個 |181| `claude_code_self_hosted_runner_session_start_hook_errors_total` | 回報錯誤結果的 `SessionStart` hook,每次失敗的 hook 執行計一次 |

182| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | 每個工作階段的工作階段閒置以來秒數的量表。對於終止卡在未回答權限提示上的工作階段很有用。 |182| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | 每個工作階段的量測值,表示工作階段進入閒置後的秒數。適用於終止卡在未回應權限提示的工作階段。 |

183 183 

184協調器在與其 `/healthz` 相同的連接埠上的 `GET /metrics` 上提供自己的序列:184協調器會在與其 `/healthz` 相同的連接埠上,於 `GET /metrics` 提供自己的序列:

185 185 

186| 序列 | 備註 |186| 序列 | 說明 |

187| :- | :- |187| :- | :- |

188| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | 始終 `1` |188| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | 一律為 `1` |

189| `claude_code_self_hosted_orchestrator_connected` | 當最近輪詢成功時為 `1`;在任何失敗輪詢後下降到 `0`,無論失敗類型如何 |189| `claude_code_self_hosted_orchestrator_connected` | 最近一次輪詢成功時為 `1`;任何輪詢失敗後(無論失敗類型為何)會降為 `0` |

190| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | 自上次輪詢嘗試以來的秒數,成功或失敗,與執行器的同名指標不同,後者測量自上次成功以來;與 `connected` 配對以捕獲失敗的輪詢。協調器的輪詢迴圈等待掛鉤執行,因此在 `--hook-timeout` 加邊距(預設值約 90 秒)上方發出警報,而不是平面 60。 |190| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | 距上次輪詢嘗試(無論成功或失敗)的秒數,這與執行器同名指標不同,後者是從上次成功起算;請搭配 `connected` 以偵測失敗的輪詢。協調器的輪詢迴圈會等待 hook 執行,因此請將警示設在 `--hook-timeout` 加上一段餘裕之上(預設值下約 90 秒),而非固定的 60 秒。 |

191| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | 按類型累積 PollSpawnHints 失敗:`transport`、`timeout`、`5xx`、`429` 或 `4xx`。所有五個序列都從程序啟動開始存在;在 `rate(...[5m]) > 0` 時發出警報。 |191| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | 依類型累計的 PollSpawnHints 失敗次數:`transport`、`timeout`、`5xx`、`429` 或 `4xx`。五個序列從程序啟動時即存在;請針對 `rate(...[5m]) > 0` 發出警示。 |

192| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | 現在可聲稱的產生請求 |192| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | 目前可認領的產生請求 |

193| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | 在可重試掛鉤失敗後退避重試的產生請求 |193| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | 在可重試的 hook 失敗後,處於重試退避中的產生請求 |

194| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | 被阻止產生的工作階段。每個工作階段會持續被阻止,直到使用者傳送新訊息給它,或擁有者從環境的**活動**標籤重試它。修正原因後,計數可能仍維持在零以上。如果高於零則發出警報。 |194| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | 被阻擋而無法產生的工作階段。每個工作階段會持續被阻擋,直到使用者傳送新訊息給它,或 Owner 從環境的 **Activity** 分頁重試它。修正原因後,此計數仍可能維持在零以上。大於零時發出警示。 |

195| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | 等待此環境中執行器的總工作階段。環境範圍的聚合,在每個協調器實例上相同:在實例之間使用 `MAX` 而不是 `SUM`。 |195| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | 此環境中等待執行器的工作階段總數。這是環境層級的彙總值,在每個協調器執行個體上都相同:跨執行個體請使用 `MAX` 而非 `SUM`。 |

196| `claude_code_self_hosted_orchestrator_pool_active_sessions` | 目前指派給此環境中活著執行器的工作階段。環境範圍的聚合,在每個協調器實例上相同:在實例之間使用 `MAX` 而不是 `SUM`。 |196| `claude_code_self_hosted_orchestrator_pool_active_sessions` | 此環境中目前指派給存活執行器的工作階段。這是環境層級的彙總值,在每個協調器執行個體上都相同:跨執行個體請使用 `MAX` 而非 `SUM`。 |

197| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | 累積 `spawn-runner` 掛鉤結果:`ok`、`retryable`、`non_retryable`。計數協調器掛鉤呼叫,而不是執行器產生的工作階段子程序:不可與 `sessions_started_total` 比較,因為容量高於 1、暖池和為同一工作階段再次產生的執行器都使兩者分歧。 |197| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | 累計的 `spawn-runner` hook 結果:`ok`、`retryable`、`non_retryable`。計算的是協調器的 hook 呼叫次數,而非執行器產生的工作階段子程序:無法與 `sessions_started_total` 比較,因為容量大於一、暖池,以及為同一工作階段再次產生的執行器都會使兩者產生差異。 |

198| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | 掛鉤持續時間的直方圖 |198| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | hook 執行時間的直方圖 |

199| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | 自程序啟動以來分派的待命產生請求 |199| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | 自程序啟動以來派送的待命產生請求 |

200| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | 每個工作階段在佇列中等待的秒數的直方圖,然後協調器聲稱它進行產生,從控制平面與每個工作階段的產生請求一起傳送的佇列等待時間戳記記錄。用於 p50/p99 佇列時間警報。預熱產生不被取樣。 |200| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | 每個工作階段在協調器認領其進行產生之前於佇列中等待秒數的直方圖,依據控制平面隨每個工作階段的產生請求傳送的佇列等待時間戳記記錄。可用於 p50/p99 佇列時間警示。預熱產生不會被取樣。 |

201| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | 本地減去伺服器時鐘偏差;診斷,一旦測量就存在 |201| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | 本機減去伺服器的時鐘偏差;供診斷用,量測後才會出現 |

202| `claude_code_self_hosted_orchestrator_scm_connector_connected` | 當 [SCM 連接器](#scm-connector-flags) 的 WebSocket 開啟時為 `1`;在撥號或退避時為 `0`。當未設定 `--scm-connector-host` 時不存在。 |202| `claude_code_self_hosted_orchestrator_scm_connector_connected` | [SCM 連接器](#scm-connector-flags)的 WebSocket 開啟時為 `1`;撥接或退避期間為 `0`。未設定 `--scm-connector-host` 時不會出現。 |

203| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | 自程序啟動以來代理到配置的 SCM 主機的累積 HTTP 請求。當未設定 `--scm-connector-host` 時不存在。 |203| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | 自程序啟動以來代理至已設定 SCM 主機的累計 HTTP 請求數。未設定 `--scm-connector-host` 時不會出現。 |

204 204 

205對於自動擴展,選擇與您的擴展風格相符的序列並在其進入擴展器之前閘它:205對於自動擴展,請選擇符合您擴展方式的序列,並在其送入擴展器之前加上閘控:

206 206 

207* **佇列深度擴展**:將 `claude_code_self_hosted_orchestrator_pool_pending_sessions` 饋送到您的 HPA 或 KEDA 擴展器,而不是 `queue_pending_sessions`。207* **佇列深度擴展**:將 `claude_code_self_hosted_orchestrator_pool_pending_sessions` 送入您的 HPA 或 KEDA 擴展器,而非 `queue_pending_sessions`。

208* **容量擴展**:根據執行器的 `active_sessions` 與 `capacity` 的比率進行擴展。208* **容量擴展**:依執行器的 `active_sessions` 與 `capacity` 的比率進行擴展。

209* **在 `connected` 上閘**:使用 `claude_code_self_hosted_orchestrator_connected == 1` 每個實例過濾查詢,以便斷開連線副本的陳舊值不會饋送擴展器。209* **以 `connected` 閘控**:針對每個執行個體以 `claude_code_self_hosted_orchestrator_connected == 1` 篩選查詢,讓已中斷連線的副本的過時值不會送入擴展器。

210 210 

211在完整輪詢中斷期間,每個副本都斷開連線,閘查詢返回無資料。HPA 在缺少指標時保持當前副本計數,但 KEDA 的 Prometheus 擴展器在其預設 `ignoreNullValues: "true"` 將空結果讀取為零並縮小;在 ScaledObject 上設定 `ignoreNullValues: "false"`,可選擇使用 `fallback` 副本下限。211在完全無法輪詢的中斷期間(所有副本都已中斷連線),經閘控的查詢不會傳回任何資料。HPA 在指標缺失時會維持目前的副本數,但 KEDA 的 Prometheus 擴展器在預設的 `ignoreNullValues: "true"` 下會將空結果視為零並縮減;請在 ScaledObject 上設定 `ignoreNullValues: "false"`,並可選擇搭配 `fallback` 副本下限。

212 212 

213以下 Prometheus Operator `PodMonitor` 涵蓋兩個程序。它通過 `app.kubernetes.io/part-of: claude-code-self-hosted-runner` 標籤和 [Kubernetes 配方](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#kubernetes)設定的命名 `health` 連接埠選擇 Pod;調整命名空間以符合您的部署:213以下 Prometheus Operator `PodMonitor` 涵蓋這兩個程序。它依據 [Kubernetes 範例](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#kubernetes)所設定的 `app.kubernetes.io/part-of: claude-code-self-hosted-runner` 標籤與名為 `health` 的連接埠來選取 pod;請調整命名空間以符合您的部署:

214 214 

215```yaml theme={null}215```yaml theme={null}

216# Claude Code 自託管執行器 + 協調器的範例 Prometheus Operator PodMonitor。216# Claude Code 自架執行器 + 協調器的 Prometheus Operator PodMonitor 範例。

217# 調整命名空間和標籤選擇器以符合您的部署。執行器和協調器都在其217# 請調整命名空間與標籤選擇器以符合

218# --health-port(預設 8080)上提供 /metrics。218# 您的部署。執行器與協調器都會在

219# 各自的 --health-port(預設 8080)上提供 /metrics。

219apiVersion: monitoring.coreos.com/v1220apiVersion: monitoring.coreos.com/v1

220kind: PodMonitor221kind: PodMonitor

221metadata:222metadata:


227 - claude-runners228 - claude-runners

228 selector:229 selector:

229 matchExpressions:230 matchExpressions:

230 # 符合 Kubernetes 配方中的執行器部署,加上任何231 # 比對 Kubernetes 範例中的執行器 Deployment,以及任何

231 # 按相同方式標籤的按需執行器工作和協調器 Pod232 # 您以相同方式加上標籤

232 # 並給予命名的 'health' containerPort。233 # 並提供名為 'health' 之 containerPort 的按需執行器 Job 與協調器 pod。

233 - key: app.kubernetes.io/part-of234 - key: app.kubernetes.io/part-of

234 operator: In235 operator: In

235 values: [claude-code-self-hosted-runner]236 values: [claude-code-self-hosted-runner]


239 interval: 30s240 interval: 30s

240```241```

241 242 

242### 範例警報規則243### 範例警示規則

243 244 

244這些範例警報規則是起點;為您的艦隊大小調整閾值:245這些範例警示規則僅是起點;請依您的機群規模調整閾值:

245 246 

246```yaml theme={null}247```yaml theme={null}

247# Claude Code 自託管執行器 + 協調器的範例 Prometheus 警報規則。248# Claude Code 自架執行器 + 協調器的 Prometheus 警示規則範例。

248# 為您的艦隊大小和 SLO 調整閾值。249# 請依您的機群規模與 SLO 調整閾值。

249groups:250groups:

250 - name: claude-code-self-hosted-runner251 - name: claude-code-self-hosted-runner

251 rules:252 rules:


254 for: 2m255 for: 2m

255 labels: {severity: warning}256 labels: {severity: warning}

256 annotations:257 annotations:

257 summary: "執行器 {{ $labels.pod }} 已超過 60 秒未輪詢"258 summary: "Runner {{ $labels.pod }} has not polled in >60s"

258 - alert: ClaudeRunnerVersionDrift259 - alert: ClaudeRunnerVersionDrift

259 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1260 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1

260 for: 30m261 for: 30m

261 labels: {severity: info}262 labels: {severity: info}

262 annotations:263 annotations:

263 summary: "執行器執行混合版本"264 summary: "Runners are running mixed versions"

264 - alert: ClaudeRunnerInitErrorsHigh265 - alert: ClaudeRunnerInitErrorsHigh

265 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_init_errors_total[10m])) > 3266 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_init_errors_total[10m])) > 3

266 for: 5m267 for: 5m

267 labels: {severity: warning}268 labels: {severity: warning}

268 annotations:269 annotations:

269 summary: "工作階段在初始化前失敗(簽出 hook / git / 權杖 / 初始化前崩潰)"270 summary: "Sessions are failing before init (checkout hook / git / token / pre-init crash)"

270 - alert: ClaudeRunnerPollErrors271 - alert: ClaudeRunnerPollErrors

271 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0272 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0

272 for: 2m273 for: 2m

273 labels: {severity: warning}274 labels: {severity: warning}

274 annotations:275 annotations:

275 summary: "執行器 {{ $labels.pod }}:PollWork 失敗(5 分鐘內 {{ $value | humanize }}/s)"276 summary: "Runner {{ $labels.pod }}: PollWork failing ({{ $value | humanize }}/s over 5m)"

276 - alert: ClaudeRunnerSessionStartHookErrors277 - alert: ClaudeRunnerSessionStartHookErrors

277 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m])) > 3278 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m])) > 3

278 for: 5m279 for: 5m

279 labels: {severity: warning}280 labels: {severity: warning}

280 annotations:281 annotations:

281 summary: "SessionStart hook 持續失敗"282 summary: "SessionStart hooks are failing"

282 283 

283 - name: claude-code-self-hosted-orchestrator284 - name: claude-code-self-hosted-orchestrator

284 rules:285 rules:


287 for: 2m288 for: 2m

288 labels: {severity: critical}289 labels: {severity: critical}

289 annotations:290 annotations:

290 summary: "協調器 {{ $labels.pod }} 無法到達 Anthropic 控制平面"291 summary: "Orchestrator {{ $labels.pod }} cannot reach the Anthropic control plane"

291 - alert: ClaudeOrchestratorPollStale292 - alert: ClaudeOrchestratorPollStale

292 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90293 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90

293 for: 2m294 for: 2m

294 labels: {severity: warning}295 labels: {severity: warning}

295 annotations:296 annotations:

296 summary: "協調器 {{ $labels.pod }} 已超過 90 秒未輪詢(輪詢迴圈等待 hook 執行)"297 summary: "Orchestrator {{ $labels.pod }} has not polled in >90s (poll loop waits on hook execution)"

297 - alert: ClaudeOrchestratorCircuitBroken298 - alert: ClaudeOrchestratorCircuitBroken

298 expr: max by (namespace) (claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions and on (instance) max_over_time(claude_code_self_hosted_orchestrator_connected[2m]) == 1) > 0299 expr: max by (namespace) (claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions and on (instance) max_over_time(claude_code_self_hosted_orchestrator_connected[2m]) == 1) > 0

299 for: 1m300 for: 1m

300 labels: {severity: critical}301 labels: {severity: critical}

301 annotations:302 annotations:

302 summary: "被阻止產生的工作階段:{{ $value }}。在活動標籤中閱讀每個工作階段的錯誤,修正原因,然後選取重試"303 summary: "Sessions blocked from spawning: {{ $value }}. Read each one's error in the Activity tab, fix the cause, then select Retry"

303 - alert: ClaudeOrchestratorPollErrors304 - alert: ClaudeOrchestratorPollErrors

304 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0305 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0

305 for: 2m306 for: 2m

306 labels: {severity: warning}307 labels: {severity: warning}

307 annotations:308 annotations:

308 summary: "協調器 {{ $labels.pod }}:PollSpawnHints 失敗(5 分鐘內 {{ $value | humanize }}/s)"309 summary: "Orchestrator {{ $labels.pod }}: PollSpawnHints failing ({{ $value | humanize }}/s over 5m)"

309 - alert: ClaudeOrchestratorSpawnHookFailing310 - alert: ClaudeOrchestratorSpawnHookFailing

310 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3311 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3

311 for: 5m312 for: 5m

312 labels: {severity: warning}313 labels: {severity: warning}

313 annotations:314 annotations:

314 summary: "協調器 {{ $labels.pod }}:5 分鐘內 >3 個 spawn-runner hook 失敗"315 summary: "Orchestrator {{ $labels.pod }}: >3 spawn-runner hook failures in 5m"

315```316```

316 317 

317### 針對遺失的執行器與等待中的工作階段發出警報318### 針對遺失的執行器與等待中的工作階段發出警示

318 319 

319若要在執行器遺失、工作階段等待或協調器停止運作時收到警報,請在[範例警報規則](#sample-alert-rules)之外一併載入這些 Prometheus 警報規則:320若要在執行器遺失、工作階段等待或協調器停止運作時收到警示,請在[範例警示規則](#sample-alert-rules)旁一併載入以下 Prometheus 警示規則:

320 321 

321* **[固定艦隊](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#scale-the-fleet)**:`ClaudeRunnersBelowFloor`322* **[固定機群](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#scale-the-fleet)**:`ClaudeRunnersBelowFloor`

322* **[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)**:`ClaudeOrchestratorSessionsWaiting`、`ClaudeOrchestratorQueueWaitHigh` 和 `ClaudeOrchestratorAbsent`323* **[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)**:`ClaudeOrchestratorSessionsWaiting`、`ClaudeOrchestratorQueueWaitHigh` 與 `ClaudeOrchestratorAbsent`

323 324 

324#### 固定艦隊遺失執行器時發出警報325#### 在固定機群遺失執行器時發出警示

325 326 

326`ClaudeRunnersBelowFloor` 會在剩餘的已註冊且已抓取執行器數量低於下限並持續 10 分鐘時觸發:327當已註冊且已抓取的執行器少於下限並持續 10 分鐘時,`ClaudeRunnersBelowFloor` 會觸發:

327 328 

328```yaml theme={null}329```yaml theme={null}

329groups:330groups:

330 # 僅限固定艦隊。使用按需執行器時,數量會隨需求變動,331 # 僅適用於固定機群。使用按需執行器時,數量會隨需求變化,

331 # 因此 ClaudeRunnersBelowFloor 會在需求低時觸發。332 # 因此每當需求低時 ClaudeRunnersBelowFloor 都會觸發。

332 - name: claude-code-self-hosted-fixed-fleet-capacity333 - name: claude-code-self-hosted-fixed-fleet-capacity

333 rules:334 rules:

334 - alert: ClaudeRunnersBelowFloor335 - alert: ClaudeRunnersBelowFloor


336 for: 10m337 for: 10m

337 labels: {severity: critical, namespace: claude-runners}338 labels: {severity: critical, namespace: claude-runners}

338 annotations:339 annotations:

339 summary: "已註冊且已抓取的執行器:{{ $value }},低於下限。請先檢查執行器工作負載,若全部都在執行,再檢查抓取目標。"340 summary: "Runners registered and scraped: {{ $value }}, below the floor. Check the runner workloads first, then the scrape targets if all are running."

340```341```

341 342 

342* **下限**:將 `expr` 中的 `2` 設為約為副本數的一半,並無條件進位。有三個副本時保留 `2`,當只剩一個執行器或沒有執行器時,警報就會觸發。343* **下限**:將 `expr` 中的 `2` 設為副本數的一半左右(無條件進位)。若有三個副本,請保留 `2`,當只剩一個執行器或沒有執行器時,警示就會觸發。

343* **命名空間**:取代 matcher 中和 `labels` 中的 `claude-runners`,並為每個額外的命名空間複製此警報。如果您的目標沒有 `namespace` 標籤,請移除 matcher 和該標籤,否則警報會讀取到 0 並觸發。344* **命名空間**:替換 matcher 與 `labels` 中的 `claude-runners`,並為每個額外的命名空間複製此警示。如果您的目標沒有 `namespace` 標籤,請移除 matcher 與該標籤,否則警示會讀到 0 並觸發。

344* **`ClaudeRunnerPollStale` 和 `ClaudeRunnerPollErrors`**:請保持從[範例警報規則](#sample-alert-rules)載入它們,因為 `ClaudeRunnersBelowFloor` 仍會計入無法輪詢的執行器345* **`ClaudeRunnerPollStale` 與 `ClaudeRunnerPollErrors`**:請繼續從[範例警示規則](#sample-alert-rules)載入它們,因為 `ClaudeRunnersBelowFloor` 仍會計入無法輪詢的執行器

345 346 

346#### 工作階段等待按需執行器時發出警報347#### 在工作階段等待按需執行器時發出警示

347 348 

348`ClaudeOrchestratorSessionsWaiting` 會在等待執行器的工作階段數量持續高於 0 達 10 分鐘時觸發。`ClaudeOrchestratorQueueWaitHigh` 會在過去 10 分鐘內超過 1% 的佇列等待超過 160 秒,且此情況持續 5 分鐘時觸發:349當等待執行器的工作階段數持續大於 0 達 10 分鐘時,`ClaudeOrchestratorSessionsWaiting` 會觸發。當過去 10 分鐘內超過 1% 的佇列等待超過 160 秒,且此情況持續 5 分鐘時,`ClaudeOrchestratorQueueWaitHigh` 會觸發:

349 350 

350```yaml theme={null}351```yaml theme={null}

351groups:352groups:

352 # 僅限按需執行器。不需要針對命名空間進行編輯。353 # 僅適用於按需執行器。不需要針對命名空間進行編輯。

353 - name: claude-code-self-hosted-on-demand-capacity354 - name: claude-code-self-hosted-on-demand-capacity

354 rules:355 rules:

355 - alert: ClaudeOrchestratorSessionsWaiting356 - alert: ClaudeOrchestratorSessionsWaiting


362 for: 10m363 for: 10m

363 labels: {severity: warning}364 labels: {severity: warning}

364 annotations:365 annotations:

365 summary: "等待執行器的工作階段:{{ $value }},已高於閾值達 10 分鐘。請依結果檢查 claude_code_self_hosted_orchestrator_spawn_hooks_total,然後檢查未啟動的執行器工作負載。"366 summary: "Sessions waiting for a runner: {{ $value }}, above the threshold for 10 minutes. Check claude_code_self_hosted_orchestrator_spawn_hooks_total by result, then runner workloads that don't start."

366 - alert: ClaudeOrchestratorQueueWaitHigh367 - alert: ClaudeOrchestratorQueueWaitHigh

367 expr: |368 expr: |

368 histogram_quantile(0.99, sum by (namespace, le) (369 histogram_quantile(0.99, sum by (namespace, le) (


371 for: 5m372 for: 5m

372 labels: {severity: warning}373 labels: {severity: warning}

373 annotations:374 annotations:

374 summary: "過去 10 分鐘內超過 1% 的佇列等待超過 160 秒。請檢查 ClaudeOrchestratorDisconnected 是否正在觸發,然後依結果檢查 claude_code_self_hosted_orchestrator_spawn_hooks_total 以及 claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds。"375 summary: "Over 1% of queue waits in the last 10 minutes exceeded 160 seconds. Check whether ClaudeOrchestratorDisconnected is firing, then claude_code_self_hosted_orchestrator_spawn_hooks_total by result and claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds."

375```376```

376 377 

377* **閾值**:如果總是有某個工作階段在等待,請將 `ClaudeOrchestratorSessionsWaiting` 中的 `> 0` 提高到高於您通常看到的數字378* **閾值**:如果總是有某個工作階段在等待,請將 `ClaudeOrchestratorSessionsWaiting` 中的 `> 0` 提高到您平常看到的數量以上

378* **`ClaudeOrchestratorDisconnected`**:請保持從[範例警報規則](#sample-alert-rules)載入它,因為 `ClaudeOrchestratorSessionsWaiting` 會在命名空間中最後一個協調器斷開連線約 2 分鐘後停止觸發379* **`ClaudeOrchestratorDisconnected`**:請繼續從[範例警示規則](#sample-alert-rules)載入它,因為在命名空間中最後一個協調器中斷連線約 2 分鐘後,`ClaudeOrchestratorSessionsWaiting` 就會停止觸發

379 380 

380#### 協調器停止運作時發出警報381#### 在協調器停止運作時發出警示

381 382 

382若要得知[協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)本身已停止運作,請載入 `ClaudeOrchestratorAbsent`。當命名空間中沒有任何協調器被抓取達 5 分鐘時,它就會觸發:383若要得知[協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)本身已停止運作,請載入 `ClaudeOrchestratorAbsent`。當命名空間中沒有任何協調器被抓取達 5 分鐘時,它會觸發:

383 384 

384```yaml theme={null}385```yaml theme={null}

385groups:386groups:

386 # 僅限按需執行器。請將 claude-runners 取代為協調器的命名空間。387 # 僅適用於按需執行器。請將 claude-runners 替換為協調器的命名空間。

387 - name: claude-code-self-hosted-on-demand-orchestrator388 - name: claude-code-self-hosted-on-demand-orchestrator

388 rules:389 rules:

389 - alert: ClaudeOrchestratorAbsent390 - alert: ClaudeOrchestratorAbsent


391 for: 5m392 for: 5m

392 labels: {severity: critical}393 labels: {severity: critical}

393 annotations:394 annotations:

394 summary: "已有 5 分鐘沒有抓取到任何協調器。如果它已停止運作,就不會啟動任何按需執行器,工作階段會持續等待。請先檢查協調器工作負載,若它正在執行,再檢查其抓取目標。"395 summary: "No orchestrator has been scraped for 5 minutes. If it's down, no on-demand runner starts, and sessions wait. Check the orchestrator workload first, then its scrape target if it's running."

395```396```

396 397 

397* **命名空間**:將 `claude-runners` 取代為協調器的命名空間,並為每個執行協調器的額外命名空間複製此警報。如果您的目標沒有 `namespace` 標籤,請移除 matcher,否則警報會在 5 分鐘後觸發並持續維持。398* **命名空間**:將 `claude-runners` 替換為協調器的命名空間,並為每個額外執行協調器的命名空間複製此警示。如果您的目標沒有 `namespace` 標籤,請移除 matcher,否則警示會在 5 分鐘後觸發並持續不消失。

398* **未抓取協調器的 Prometheus 伺服器**:請勿將此警報放入其規則檔,因為在這類伺服器上,它會在 5 分鐘後觸發並持續維持399* **未抓取協調器的 Prometheus 伺服器**:請勿將此警示放入其規則檔案,因為在這類伺服器上它會在 5 分鐘後觸發並持續不消失

399* **不要依賴協調器的其他警報**:它們讀取的是協調器本身提供的指標。`ClaudeOrchestratorSessionsWaiting`、`ClaudeOrchestratorQueueWaitHigh` 以及協調器的[範例警報規則](#sample-alert-rules),都會在協調器停止運作後約 10 分鐘內停止觸發。400* **請勿依賴協調器的其他警示**:它們讀取的是協調器本身提供的指標。`ClaudeOrchestratorSessionsWaiting`、`ClaudeOrchestratorQueueWaitHigh` 以及協調器的[範例警示規則](#sample-alert-rules),都會在協調器停止運作後約 10 分鐘內停止觸發。

400 401 

401### 傳遞工作階段子程序指標402### 傳遞工作階段子程序指標

402 403 

403每個工作階段在其自己的子程序中執行,具有自己的 OpenTelemetry 指標;在 `--capacity` 高於 1 時,執行器重寫這些子程序指標的公開方式。在執行器主機上設定 `OTEL_METRICS_EXPORTER=prometheus` 並在工作階段的環境中設定 `CLAUDE_CODE_ENABLE_TELEMETRY=1`(例如從您的[包裝指令碼](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#wrapper-scripts)或執行器自己的環境,工作階段繼承),重新公開每個子程序的計數器和量表工具在執行器自己的 `/metrics` 端點上,與執行器的序列一起。執行器將子程序的匯出器重寫為通過 OTLP 推送到健康連接埠上的僅環回接收器,使用 `session_id` 和 `client_platform` 標籤標記每個序列,並在該工作階段結束時驅逐工作階段的序列。直方圖不傳遞,子程序指標的名稱會與執行器自己的前綴衝突被放棄。404每個工作階段都在自己的子程序中執行,並擁有自己的 OpenTelemetry 指標;當 `--capacity` 大於一時,執行器會改寫這些子程序指標的公開方式。在執行器主機上設定 `OTEL_METRICS_EXPORTER=prometheus`,並在工作階段的環境中設定 `CLAUDE_CODE_ENABLE_TELEMETRY=1`(例如透過您的[包裝指令碼](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#wrapper-scripts),或透過工作階段會繼承的執行器自身環境),即可在執行器自己的 `/metrics` 端點上,與執行器的序列一起重新公開每個子程序的計數器與量測儀器。執行器會改寫子程序的匯出器,使其透過 OTLP 推送至健康連接埠上僅限回送位址的接收器,為每個序列加上 `session_id` 與 `client_platform` 標籤,並在工作階段結束時移除該工作階段的序列。直方圖不會被傳遞,而名稱會與執行器自身前綴衝突的子程序指標會被捨棄。

404 405 

405在預設 `--capacity 1` 時,重寫不適用:工作階段的子程序如常在連接埠 9464 上綁定自己的 Prometheus 端點。406在預設的 `--capacity 1` 下,此改寫不適用:工作階段的子程序會如常在連接埠 9464 上繫結自己的 Prometheus 端點。

406 407 

407#### 將工作階段的指標與執行器的指標聯結408#### 將工作階段的指標與執行器的指標聯結

408 409 

409若要查看閒置工作階段的成本,請依 `ccr_session_id` 將執行器的 `claude_code_self_hosted_runner_session_idle_seconds` 與 Claude Code 的成本指標聯結。執行器的指標不帶有該標籤,因此請使用 `label_replace` 為其加上該標籤,如以下查詢所示:410若要查看閒置工作階段的成本,請以 `ccr_session_id` 將執行器的 `claude_code_self_hosted_runner_session_idle_seconds` 與 Claude Code 的成本指標聯結。執行器的指標沒有該標籤,因此請使用 `label_replace` 為其加上,如以下查詢所示:

410 411 

411```text theme={null}412```text theme={null}

412sum by (ccr_session_id) (claude_code_cost_usage_total)413sum by (ccr_session_id) (claude_code_cost_usage_total)


417)418)

418```419```

419 420 

420此查詢會為每個閒置超過十分鐘的工作階段傳回一個結果:其 Claude Code 程序到目前為止計算的成本(以美元計)。若要聯結其他 Claude Code 指標,請取代查詢中的 `claude_code_cost_usage_total`。此查詢在任何 `--capacity` 下皆可運作。421此查詢會為每個閒置超過十分鐘的工作階段傳回一個結果:其 Claude Code 程序到目前為止所計算的成本(美元)。若要聯結其他 Claude Code 指標,請替換查詢中的 `claude_code_cost_usage_total`。此查詢適用於任何 `--capacity`。

421 422 

422* **`session_id`**:在連接埠 9464 上,Claude Code 指標上的該標籤包含 Claude Code 自己的 [`session.id`](https://code.claude.com/docs/zh-TW/monitoring-usage#standard-attributes),不符合任何執行器序列。依此標籤聯結不會傳回任何結果,因此請依 `ccr_session_id` 聯結。423* **`session_id`**:在連接埠 9464 上,Claude Code 指標的此標籤保存的是 Claude Code 自己的 [`session.id`](https://code.claude.com/docs/zh-TW/monitoring-usage#standard-attributes),不會與任何執行器序列相符。以它聯結不會傳回任何結果,因此請以 `ccr_session_id` 聯結。

423* **Claude Code 指標沒有 `ccr_session_id`**:請確認 [`OTEL_METRICS_INCLUDE_SESSION_ID`](https://code.claude.com/docs/zh-TW/monitoring-usage#metrics-cardinality-control) 未設定為 `false`424* **Claude Code 指標沒有 `ccr_session_id`**:請確認 [`OTEL_METRICS_INCLUDE_SESSION_ID`](https://code.claude.com/docs/zh-TW/monitoring-usage#metrics-cardinality-control) 未設定為 `false`

424 425 

425### 工作階段生命週期計數器語義426### 工作階段生命週期計數器語意

426 427 

427`sessions_started_total`、`sessions_completed_total`、`sessions_failed_total` 和 `sessions_interrupted_total` 計數器按工作階段如何結束對其進行分類。每個產生的工作階段子程序在產生時增加 `sessions_started_total`,並在退出時恰好增加其他三個中的一個,因此 `sessions_started_total` 減去其他三個的總和等於目前執行的工作階段子程序數。428`sessions_started_total`、`sessions_completed_total`、`sessions_failed_total` 與 `sessions_interrupted_total` 計數器會依每個工作階段的結束方式加以分類。每個產生的工作階段子程序都會在產生時遞增 `sessions_started_total`,並在結束時恰好遞增其他三者之一,因此 `sessions_started_total` 減去其他三者之和,即等於目前正在執行的工作階段子程序數。

428 429 

429* `completed`:工作階段乾淨結束。這涵蓋子程序以代碼 `0` 自行退出、工作階段在子程序仍連線時被存檔或刪除,以及執行器乾淨地交回槽:在閒置逾時、退休時間或 `--kill-session-after-min` 限制時釋放工作階段;啟動逾時;或輪詢迴圈在子程序退出前注意到的伺服器端取消指派。增加 `sessions_completed_total`。430* `completed`:工作階段正常結束。這涵蓋子程序自行以代碼 `0` 結束、在子程序仍連線時工作階段被封存或刪除,以及執行器正常交回槽位:在閒置逾時、退役時間或 `--kill-session-after-min` 限制時釋放工作階段;啟動逾時;或輪詢迴圈在子程序結束前注意到伺服器端取消指派。遞增 `sessions_completed_total`。

430* `failed`:子程序以非零代碼自行退出,要麼是崩潰,要麼是產生後的設定失敗。增加 `sessions_failed_total`。431* `failed`:子程序自行以非零代碼結束,可能是當機或產生後的設定失敗。遞增 `sessions_failed_total`。

431* `interrupted`:執行器因既不是工作階段成功也不是執行器故障的操作原因終止子程序,例如排空,或終止在 [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) 寬限期結束後其 `--kill-session-after-min` 限制仍在執行器上的工作階段。Kubernetes 滾動重新啟動傳送 `SIGTERM` 是排空的一個範例。增加 `sessions_interrupted_total`。432* `interrupted`:執行器因營運原因終止子程序,既非工作階段成功也非執行器故障,例如排空,或終止在 `--kill-session-after-min` 限制後的 [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) 寬限期結束時仍在執行器上的工作階段。Kubernetes 滾動重新啟動傳送 `SIGTERM` 即為排空的一個例子。遞增 `sessions_interrupted_total`。

432 433 

433在 v2.1.260 之前,執行器終止達到其 `--kill-session-after-min` 限制的每個工作階段並在 `sessions_interrupted_total` 中計數。434在 v2.1.260 之前,執行器會終止所有達到 `--kill-session-after-min` 限制的工作階段,並將其計入 `sessions_interrupted_total`。

434 435 

435[`post-session` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)的 `CLAUDE_RUNNER_EXIT_REASON` 以不同方式分類乾淨交接。hook 將這些情況報告為 `interrupted`,因為執行器停止了子程序:釋放、啟動逾時、伺服器取消指派,以及輪詢先注意到的存檔或刪除。這些計數器記錄與 `completed` 相同的事件,因為槽被乾淨地交回。436[`post-session` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session) 的 `CLAUDE_RUNNER_EXIT_REASON` 對正常交回的分類方式不同。hook 會將以下情況回報為 `interrupted`,因為是執行器停止了子程序:釋放、啟動逾時、伺服器取消指派,以及輪詢先注意到的封存或刪除。這些計數器則將相同事件記錄為 `completed`,因為槽位已正常交回。

436 437 

437如果您直接根據 `sessions_completed_total` 協調掛鉤收據,您會低估完成。使用掛鉤以獲得每個工作階段的保證,並使用計數器以獲得聚合速率。438如果您直接將 hook 收據與 `sessions_completed_total` 對帳,會低估完成數。請使用 hook 取得每個工作階段的保證,並使用計數器取得彙總比率。

438 439 

439在一次性環境上,`--capacity 1` 與預設 `--drain-grace-sec 0`,每個執行器程序在其一個工作階段結束後片刻退出。`sessions_completed_total`、`sessions_failed_total` 和 `sessions_interrupted_total` 僅在工作階段結束時增加,就在該退出之前,因此每 15 到 60 秒進行一次 Prometheus 抓取很少在執行器的序列消失前捕獲增加;這三個工作階段結束計數器是本部分其餘部分所指的終端計數器。`sessions_started_total` 在產生時增加並在工作階段的生命週期內保持可見,因此它可靠地顯示,但在一次性環境上它讀取更接近「目前執行的工作階段」而不是累積計數。440在一次性環境中(`--capacity 1` 搭配預設的 `--drain-grace-sec 0`),每個執行器程序會在其唯一的工作階段結束後隨即結束。`sessions_completed_total`、`sessions_failed_total` 與 `sessions_interrupted_total` 只在工作階段結束時、也就是在該程序結束前一刻才遞增,因此每 15 到 60 秒一次的 Prometheus 抓取很少能在執行器的序列消失前捕捉到遞增;這三個工作階段結束時的計數器,就是本節其餘部分所稱的終端計數器。`sessions_started_total` 在產生時遞增,並在工作階段的整個生命週期內保持可見,因此能可靠地出現,但在一次性環境中,它讀起來更接近「目前正在執行的工作階段」,而非累計計數。

440 441 

441改為使用此表中的序列以達到相應的目標,而不是終端計數器:442請針對對應的目標使用此表中的序列,而非終端計數器:

442 443 

443| 目標 | 使用 |444| 目標 | 使用 |

444| :- | :- |445| :- | :- |

445| 吞吐量 | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`,長期協調器上的計數器,每個成功的 `spawn-runner` 掛鉤增加一次並在 `rate()` 下保持有意義。它計數掛鉤呼叫而不是工作階段,因此預熱和為同一工作階段重複產生使其與工作階段計數分歧。 |446| 吞吐量 | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`,這是長期執行之協調器上的計數器,每次 `spawn-runner` hook 成功時遞增一次,且在 `rate()` 下仍具有意義。它計算的是 hook 呼叫次數而非工作階段,因此預熱與為同一工作階段重複產生會使其與工作階段計數產生差異。 |

446| 利用率 | `sum(claude_code_self_hosted_runner_active_sessions)` 對 `sum(claude_code_self_hosted_runner_capacity)`,兩個量表在每次抓取時有效,無論執行器生命週期如何 |447| 使用率 | `sum(claude_code_self_hosted_runner_active_sessions)` 對照 `sum(claude_code_self_hosted_runner_capacity)`,兩者都是量測值,無論執行器生命週期為何,在每次抓取時都有效 |

447| 待辦項 | `claude_code_self_hosted_orchestrator_pool_pending_sessions` 用於佇列深度,以及 `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`,如果高於零則發出警報 |448| 積壓 | 以 `claude_code_self_hosted_orchestrator_pool_pending_sessions` 取得佇列深度,以及 `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`,大於零時發出警示 |

448| 失敗 | `claude_code_self_hosted_runner_sessions_failed_total`,盡力而為:產生後的真實崩潰確實增加它,`rate()` 在執行器上有意義,這些執行器以 `--drain-grace-sec` 高於 `0` 的方式超越其工作階段。一次性環境與其他終端計數器具有相同的抓取視窗問題,因此將您看到的任何非零值視為值得調查。產生前的失敗,例如簽出掛鉤失敗、git 準備或權杖問題,僅出現在 `session_init_errors_total` 中。 |449| 失敗 | `claude_code_self_hosted_runner_sessions_failed_total`,盡力而為:產生後的實際當機確實會遞增它,而在 `--drain-grace-sec` 大於 `0` 使執行器存活時間長於其工作階段的情況下,`rate()` 具有意義。一次性環境與其他終端計數器有相同的抓取時間窗問題,因此您看到的任何非零值都值得調查。產生前的失敗,例如 checkout hook 失敗、git 準備或 token 問題,只會出現在 `session_init_errors_total` 中。 |

449 450 

450`orchestrator_*` 列僅存在於執行[按需協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)的環境上。在固定艦隊上,其執行器以 `--drain-grace-sec` 高於 `0` 的方式超越其工作階段,使用 `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` 表示吞吐量;在一次性艦隊上,該序列與終端計數器具有相同的抓取視窗問題,因此改為依賴佇列工作階段計數。在環境的**活動**標籤上檢查待辦項,在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上:執行器不匯出佇列深度序列。451`orchestrator_*` 列只存在於執行[按需協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)的環境中。在執行器存活時間長於其工作階段的固定機群上(`--drain-grace-sec` 大於 `0`),請使用 `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` 取得吞吐量;在一次性機群上,該序列與終端計數器有相同的抓取時間窗問題,因此請改為依賴排隊中工作階段的計數。請在 [**Cloud environments** 管理頁面](https://claude.ai/admin-settings/cloud-environments)上環境的 **Activity** 分頁檢查積壓:執行器不會匯出佇列深度序列。

451 452 

452對於每個工作階段結果報告,改為使用 [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session):它在每個工作階段結束時觸發,其中產生了子程序,除了突然執行器終止(例如 VM 搶佔),根據[掛鉤自己的合約](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#post-session)。453若要取得每個工作階段的結果報告,請改用 [`post-session` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session):依據 [hook 本身的約定](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#post-session),它會在每個已產生子程序的工作階段結束時觸發,但執行器被突然終止(例如 VM 被搶佔)的情況除外。

453 454 

454## 下一步455## 下一步

455 456 

Details

12 12 

13在[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中,Claude Code [雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)在您建置和維護的執行器映像上執行。在將新映像推出到生產環境之前,請從指令碼針對測試環境驅動完整工作階段:建立工作階段、讀取 Claude 的回覆、傳送後續追蹤,並讀取該回覆。這是 CI 煙霧測試的形式,可驗證您的執行器映像、git 存取和任何自訂工具,然後再推廣變更。13在[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中,Claude Code [雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)在您建置和維護的執行器映像上執行。在將新映像推出到生產環境之前,請從指令碼針對測試環境驅動完整工作階段:建立工作階段、讀取 Claude 的回覆、傳送後續追蹤,並讀取該回覆。這是 CI 煙霧測試的形式,可驗證您的執行器映像、git 存取和任何自訂工具,然後再推廣變更。

14 14 

15此配方假設您已經[設定環境和執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner),並且您的 CI 工作在與測試指令碼相同的主機上啟動執行器程序,這是測試新執行器映像的自然設定。您在執行器上安裝的 Stop hook 會將每個回合的最終回覆寫入本機檔案,指令碼從該處讀取它,因此對 Anthropic API 的唯一呼叫是兩個分派本身。如果您的測試執行器位於不同的基礎結構上,請參閱[遠端測試執行器](#remote-test-runners)。15此配方假設您已經[設定環境和執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner),並且您的 CI 工作在與測試指令碼相同的主機上啟動執行器程序。您在執行器上安裝的 Stop hook 會將每個回合的最終回覆寫入本機檔案,指令碼從該處讀取它。如果您的測試執行器位於不同的基礎結構上,請參閱[遠端測試執行器](#remote-test-runners)。

16 16 

17## 在測試執行器上安裝擷取 hook17## 在測試執行器上安裝擷取 hook

18 18 

Details

62 62 

63Hooks 使用與 `settings.json` 中相同的格式。63Hooks 使用與 `settings.json` 中相同的格式。

64 64 

65此範例在整個組織中的每次檔案編輯後執行稽核指令碼:65此範例在整個組織中的 `Edit` 和 `Write` 工具呼叫後執行稽核指令碼:

66 66 

67```json theme={null}67```json theme={null}

68{68{


95 95 

96若要確認設定正在套用,請要求使用者重新啟動 Claude Code。如果設定包含觸發[安全核准對話方塊](#security-approval-dialogs)的設定,使用者會在 Claude Code 下次擷取設定時看到描述受管設定的提示:在下次啟動時,或在執行中的互動式工作階段中的一小時內。您也可以透過讓使用者執行 `/permissions` 來檢視其有效的權限規則,以驗證受管權限規則是否處於作用中。96若要確認設定正在套用,請要求使用者重新啟動 Claude Code。如果設定包含觸發[安全核准對話方塊](#security-approval-dialogs)的設定,使用者會在 Claude Code 下次擷取設定時看到描述受管設定的提示:在下次啟動時,或在執行中的互動式工作階段中的一小時內。您也可以透過讓使用者執行 `/permissions` 來檢視其有效的權限規則,以驗證受管權限規則是否處於作用中。

97 97 

98在工作階段中,請讓使用者執行 `/status`。當伺服器管理的設定適用時,[`Setting sources` 行](https://code.claude.com/docs/zh-TW/managed-settings#read-the-source-in-/status)會列出 `Enterprise managed settings`,並在括號中標示 `remote`。

99 

98若要檢查特定機器上的擷取結果,請讓使用者執行 `claude doctor` 並讀取 `Managed settings (remote)` 行。需要 Claude Code v2.1.248 或更新版本。該行報告以下四個結果之一:100若要檢查特定機器上的擷取結果,請讓使用者執行 `claude doctor` 並讀取 `Managed settings (remote)` 行。需要 Claude Code v2.1.248 或更新版本。該行報告以下四個結果之一:

99 101 

100* 已傳遞的設定已載入102* 已傳遞的設定已載入


247* 如果閘道以 `401` 回應有人操作的互動式啟動,且此設定為關閉,表示閘道已結束該次登入。Claude Code 會顯示 [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/zh-TW/errors#cloud-gateway-session-expired),並在使用者執行 `/login` 之前以登出閘道的狀態開啟工作階段。249* 如果閘道以 `401` 回應有人操作的互動式啟動,且此設定為關閉,表示閘道已結束該次登入。Claude Code 會顯示 [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/zh-TW/errors#cloud-gateway-session-expired),並在使用者執行 `/login` 之前以登出閘道的狀態開啟工作階段。

248* 當擷取以其他任何方式失敗,或在 `claude auth` 子命令以外的任何其他類型的啟動中失敗時,用戶端會以錯誤結束。250* 當擷取以其他任何方式失敗,或在 `claude auth` 子命令以外的任何其他類型的啟動中失敗時,用戶端會以錯誤結束。

249 251 

250當此設定在擷取伺服器受管設定的工作階段中生效時,CLI 會在啟動時阻擋,直到重新擷取到遠端設定為止。如果擷取失敗,CLI 會結束,而不是在沒有政策的情況下繼續。此設定會自我延續:一旦從伺服器傳遞,它也會在本機快取,因此後續啟動在新工作階段首次成功擷取之前,也會強制執行相同的行為。[不擷取伺服器受管設定](#platform-availability)的工作階段則會直接啟動,不會等待。252當此設定在擷取伺服器受管設定的工作階段中生效時,CLI 會在啟動時阻擋,直到重新擷取到遠端設定為止。如果擷取失敗,CLI 會結束,而不是在沒有政策的情況下繼續。[不擷取伺服器受管設定](#platform-availability)的工作階段則會直接啟動,不會等待。

251 253 

252若要啟用此功能,請將該鍵加入您的受管設定組態:254若要啟用此功能,請將該鍵加入您的受管設定組態:

253 255 


259 261 

260您也可以在[端點受管](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)的 MDM 設定檔或系統 `managed-settings.json` 檔案中設定此鍵,以便在任何伺服器 payload 送達之前的首次啟動時強制執行失敗即關閉的行為。此旗標是上述[優先順序規則](#settings-precedence)的例外:只要任何由管理員控制的受管來源設定了此旗標,Claude Code 就會遵循,即使同時存在快取的伺服器受管 payload 也是如此,因此當伺服器受管設定存在時,它不會忽略由 MDM 傳遞的值。262您也可以在[端點受管](https://code.claude.com/docs/zh-TW/managed-settings.md#delivery-mechanisms)的 MDM 設定檔或系統 `managed-settings.json` 檔案中設定此鍵,以便在任何伺服器 payload 送達之前的首次啟動時強制執行失敗即關閉的行為。此旗標是上述[優先順序規則](#settings-precedence)的例外:只要任何由管理員控制的受管來源設定了此旗標,Claude Code 就會遵循,即使同時存在快取的伺服器受管 payload 也是如此,因此當伺服器受管設定存在時,它不會忽略由 MDM 傳遞的值。

261 263 

264在後續啟動時,Claude Code 會從快取的設定中讀取伺服器傳遞的值,因此此設定在新工作階段首次擷取之前就已生效。若要讓此設定保持生效而不依賴快取副本,請同時在端點受管來源中設定此鍵。

265 

262當 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 提供受管設定時,對於 Claude Code 在啟動後讀取的鍵,其輸出會取代所有其他受管來源。關於 Claude Code 從哪些來源讀取此鍵,請參閱[其設定項目](https://code.claude.com/docs/zh-TW/settings-reference.md#forceremotesettingsrefresh)。`policyHelper` 項目說明了 Claude Code 從哪些來源讀取該 helper 以及其執行時機。266當 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 提供受管設定時,對於 Claude Code 在啟動後讀取的鍵,其輸出會取代所有其他受管來源。關於 Claude Code 從哪些來源讀取此鍵,請參閱[其設定項目](https://code.claude.com/docs/zh-TW/settings-reference.md#forceremotesettingsrefresh)。`policyHelper` 項目說明了 Claude Code 從哪些來源讀取該 helper 以及其執行時機。

263 267 

264設定擷取也會傳送 `Cache-Control: no-cache` 標頭,以免中介的 HTTP 代理伺服器提供過時的回應。268設定擷取也會傳送 `Cache-Control: no-cache` 標頭,以免中介的 HTTP 代理伺服器提供過時的回應。

settings.md +2 −2

Details

66 66 

67### 與您的團隊共享設定67### 與您的團隊共享設定

68 68 

69提交 `.claude/settings.json` 以便複製儲存庫的每個人都取得相同的權限、hook 和外掛。每個隊友仍然可以在自己的 `.claude/settings.local.json` 中為自己覆寫它,因此個人例外不需要提交。如需完整的團隊檔案,請參閱[團隊的共享設定](https://code.claude.com/docs/zh-TW/settings-example.md#a-teams-shared-settings)。69提交 `.claude/settings.json` 以便複製儲存庫的每個人都取得相同的權限、hook 和外掛設定。每個隊友仍然可以在自己的 `.claude/settings.local.json` 中為自己覆寫它,因此個人例外不需要提交。如需完整的團隊檔案,請參閱[團隊的共享設定](https://code.claude.com/docs/zh-TW/settings-example.md#a-teams-shared-settings)。

70 70 

71您提交的某些內容會等到每個隊友[信任資料夾](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust),而少數設定鍵永遠不會從儲存庫檔案生效;[對不適用的設定進行疑難排解](#common-cases)涵蓋兩者。71您提交的某些內容會等到每個隊友[信任資料夾](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust),而少數設定鍵永遠不會從儲存庫檔案生效;[對不適用的設定進行疑難排解](#common-cases)涵蓋兩者。

72 72 


199* **設定錯誤**:使用者、專案或本機檔案有無效的 JSON 或架構拒絕的值。在互動式工作階段啟動時,Claude Code 顯示一個對話框,讓您用 Claude 的幫助修復檔案、退出或繼續而不使用損壞的設定。199* **設定錯誤**:使用者、專案或本機檔案有無效的 JSON 或架構拒絕的值。在互動式工作階段啟動時,Claude Code 顯示一個對話框,讓您用 Claude 的幫助修復檔案、退出或繼續而不使用損壞的設定。

200* **設定警告**:只有個別項目失敗,例如格式錯誤的權限規則或未知的 hook 事件名稱。Claude Code 跳過這些值並保持檔案的其餘部分生效。200* **設定警告**:只有個別項目失敗,例如格式錯誤的權限規則或未知的 hook 事件名稱。Claude Code 跳過這些值並保持檔案的其餘部分生效。

201* **受管設定**:Claude Code 繼續強制執行檔案的其餘部分。[受管設定中的無效項目](https://code.claude.com/docs/zh-TW/managed-settings.md#invalid-entries-in-managed-settings)說明它丟棄的內容以及哪些金鑰回退到更嚴格的值,直到您修復它們。對於不是有效 JSON 的受管設定文件,請參閱[受管設定文件無法解析](https://code.claude.com/docs/zh-TW/errors.md#managed-settings-document-could-not-be-parsed)。201* **受管設定**:Claude Code 繼續強制執行檔案的其餘部分。[受管設定中的無效項目](https://code.claude.com/docs/zh-TW/managed-settings.md#invalid-entries-in-managed-settings)說明它丟棄的內容以及哪些金鑰回退到更嚴格的值,直到您修復它們。對於不是有效 JSON 的受管設定文件,請參閱[受管設定文件無法解析](https://code.claude.com/docs/zh-TW/errors.md#managed-settings-document-could-not-be-parsed)。

202* **組態錯誤**:[`~/.claude.json`](https://code.claude.com/docs/zh-TW/claude-directory#ce-claude-json) 無法解析。`claude -p` 執行會退出,且您的檔案保持不變。請參閱 [Configuration error in \~/.claude.json](https://code.claude.com/docs/zh-TW/errors.md#configuration-error-in-claude-json) 以還原較早的副本。Claude Code 會將損壞的檔案複製到 `~/.claude/backups/.claude.json.corrupted.<timestamp>`,並在互動式工作階段中詢問是要退出並修復它,還是重設為預設組態。當檔案為空白且沒有可還原的備份時,Claude Code 會以預設設定啟動。202* **組態錯誤**:[`~/.claude.json`](https://code.claude.com/docs/zh-TW/claude-directory#ce-claude-json) 無法解析。`claude -p` 執行會退出。請參閱 [Configuration error in \~/.claude.json](https://code.claude.com/docs/zh-TW/errors.md#configuration-error-in-claude-json) 以還原較早的副本。Claude Code 會將損壞的檔案複製到 `~/.claude/backups/.claude.json.corrupted.<timestamp>`,並在互動式工作階段中詢問是要退出並修復它,還是重設為預設組態。當檔案為空白且沒有可還原的備份時,Claude Code 會以預設設定啟動。

203 203 

204繼續後,執行 `/status` 以查看受影響的檔案,執行 `claude doctor` 以查看每個錯誤的詳細資訊。204繼續後,執行 `/status` 以查看受影響的檔案,執行 `claude doctor` 以查看每個錯誤的詳細資訊。

205 205 

Details

4829 4829 

4830### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4831 4831 

4832允許 Claude 在決定值得傳送時,向您的手機傳送推播通知,例如當長時間任務完成時。在本機工作階段中,Claude 可以在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線時傳送通知。在 `/config` 中顯示為**Claude 決定時推播**。當您在那裡變更此設定時,Claude Code 也會將該值儲存到您的帳戶。4832允許 Claude 在決定值得傳送時,向您的手機傳送推播通知,例如當長時間任務完成時。在本機工作階段中,Claude 可以在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線時傳送通知。在 `/config` 中顯示為 **Push when Claude decides**。當您在那裡變更此設定時,Claude Code 也會將該值儲存到您的帳戶。

4833 4833 

4834* **範圍**:[`任何檔案`](#scopes)。Claude Code 也會讀取舊版本在 `~/.claude.json` 中留下的值。4834* **範圍**:[`任何檔案`](#scopes)。Claude Code 也會讀取舊版本在 `~/.claude.json` 中留下的值。

4835* **類型**:布林值4835* **類型**:布林值


4843}4843}

4844```4844```

4845 4845 

4846如果您在 [`claude remote-control`](https://code.claude.com/docs/zh-TW/remote-control#start-a-remote-control-session) 伺服器下執行工作階段,這些工作階段會遵循儲存在您帳戶中的值,而非此金鑰。若要變更該值,請在終端機中的 Claude Code 工作階段執行 `/config`,並將**Claude 決定時推播**開啟或關閉。如果切換開關已顯示您想要的值,請先將其變更再改回,讓 Claude Code 將該值儲存到您的帳戶。4846如果您在 [`claude remote-control`](https://code.claude.com/docs/zh-TW/remote-control#start-a-remote-control-session) 伺服器下執行工作階段,這些工作階段會遵循儲存在您帳戶中的值,而非此金鑰。若要變更該值,請在終端機中的 Claude Code 工作階段執行 `/config`,並將 **Push when Claude decides** 開啟或關閉。如果切換開關已顯示您想要的值,請先將其變更再改回,讓 Claude Code 將該值儲存到您的帳戶。

4847 4847 

4848請參閱[行動推播通知](https://code.claude.com/docs/zh-TW/remote-control.md#mobile-push-notifications)。4848請參閱[行動推播通知](https://code.claude.com/docs/zh-TW/remote-control.md#mobile-push-notifications)。

4849 4849 


4966 4966 

4967### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4968 4968 

4969當權限提示或問題等待您的輸入時,在您的手機上獲得推播通知。在本機工作階段中,Claude Code 只在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線時傳送這些通知。在 `/config` 中顯示為**需要操作時推播**。4969當權限提示或問題等待您的輸入時,在您的手機上獲得推播通知。在本機工作階段中,Claude Code 只在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 連線時傳送這些通知。在 `/config` 中顯示為 **Push when actions required**。

4970 4970 

4971* **範圍**:[`任何檔案`](#scopes)。Claude Code 也會讀取舊版本在 `~/.claude.json` 中留下的值。4971* **範圍**:[`任何檔案`](#scopes)。Claude Code 也會讀取舊版本在 `~/.claude.json` 中留下的值。

4972* **類型**:布林值4972* **類型**:布林值

skills.md +1 −1

Details

22 22 

23Claude Code 包含一組捆綁技能,例如 `/doctor`、`/code-review`、`/batch`、`/debug`、`/loop` 和 `/claude-api`。捆綁技能是基於提示的:它們為 Claude 提供詳細的指示,並讓它使用其工具來協調工作。大多數內建命令則直接執行固定邏輯。23Claude Code 包含一組捆綁技能,例如 `/doctor`、`/code-review`、`/batch`、`/debug`、`/loop` 和 `/claude-api`。捆綁技能是基於提示的:它們為 Claude 提供詳細的指示,並讓它使用其工具來協調工作。大多數內建命令則直接執行固定邏輯。

24 24 

25您可以透過輸入 `/` 後跟技能名稱的方式來調用捆綁技能,就像調用任何其他技能一樣。Claude 會在相關時自動調用某些捆綁技能;其他技能(包括 `/verify`)只有在您調用時才會執行,這讓您可以控制這些耗時較長的檢查何時花費時間和 token。25您可以透過輸入 `/` 後跟 skill 名稱的方式來調用隨附 skill。Claude 會在相關時自動調用某些隨附 skill;其他 skill(包括 [`/verify`](#run-and-verify-your-app))只有在您調用時才會執行。

26 26 

27大多數捆綁技能在每個工作階段中都可用。少數技能取決於特定功能:例如 `/workflow-authoring` 只有在[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)啟用時才可用。27大多數捆綁技能在每個工作階段中都可用。少數技能取決於特定功能:例如 `/workflow-authoring` 只有在[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)啟用時才可用。

28 28 

Details

346 346 

347Claude Code 將每個 `[Pasted text #N]` 預留位置後面的內容保留在 `~/.claude/paste-cache/` 下,因此當您從[命令歷史](https://code.claude.com/docs/zh-TW/interactive-mode.md#command-history)回想提示並重新提交時,完整的貼上內容會再次傳送,包括在稍後的工作階段中。347Claude Code 將每個 `[Pasted text #N]` 預留位置後面的內容保留在 `~/.claude/paste-cache/` 下,因此當您從[命令歷史](https://code.claude.com/docs/zh-TW/interactive-mode.md#command-history)回想提示並重新提交時,完整的貼上內容會再次傳送,包括在稍後的工作階段中。

348 348 

349早於 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays) 的快取檔案會根據[保留掃描規則](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)被刪除,因此回想的提示可能參考不再存在的貼上文字。當您提交這樣的提示時,Claude Code 永遠不會傳送字面上的 `[Pasted text #N]` 字串,並顯示通知命名遺失的貼上:349早於 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays) 的快取檔案會根據[保留掃描規則](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)被刪除,因此回想的提示詞可能參考不再存在的貼上文字。當您提交這樣的提示詞時,Claude Code 不會傳送字面上的 `[Pasted text #N]` 字串,並顯示通知指出遺失的貼上:

350 350 

351* 在有剩餘文字的純提示中,Claude Code 移除預留位置並傳送剩餘文字。351* 在有剩餘文字的純提示中,Claude Code 移除預留位置並傳送剩餘文字。

352* 在[殼層模式](https://code.claude.com/docs/zh-TW/interactive-mode.md#shell-mode-with-prefix)命令或 `/` 命令中,移除會改變執行的內容,以及在任何提示中移除留下空白時,Claude Code 取消提交並在輸入中保留原始文字,預留位置仍在其中。刪除預留位置或編輯命令,然後重新提交。352* 在[殼層模式](https://code.claude.com/docs/zh-TW/interactive-mode.md#shell-mode-with-prefix)命令或 `/` 命令中,移除會改變執行的內容,以及在任何提示中移除留下空白時,Claude Code 取消提交並在輸入中保留原始文字,預留位置仍在其中。刪除預留位置或編輯命令,然後重新提交。

Details

29| 安裝期間出現 `EACCES: permission denied` | [修復安裝目錄的權限](#permission-errors-during-installation) |29| 安裝期間出現 `EACCES: permission denied` | [修復安裝目錄的權限](#permission-errors-during-installation) |

30| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 憑證](#tls-or-ssl-connection-errors) |30| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 憑證](#tls-or-ssl-connection-errors) |

31| `CRYPT_E_NO_REVOCATION_CHECK` 或 `CRYPT_E_REVOCATION_OFFLINE` | [因應遭封鎖的撤銷檢查](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` 或 `CRYPT_E_REVOCATION_OFFLINE` | [因應遭封鎖的撤銷檢查](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` 或無法連線到下載伺服器 | [檢查網路和代理伺服器設定](#check-network-connectivity) |32| `Failed to fetch version` 或無法連線到下載伺服器 | [檢查網路和代理伺服器設定](#check-network-connectivity),若為憑證錯誤,請[設定公司 CA 憑證](#tls-or-ssl-connection-errors) |

33| `The connection dropped while downloading the update` 或 `Download timed out: exceeded the total deadline` | [再次執行更新或設定您的代理伺服器](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` 或 `Download timed out: exceeded the total deadline` | [再次執行更新或設定您的代理伺服器](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [再次執行 `claude update` 或 `claude install`](#release-verification-failed) |34| `Release verification failed for Claude Code` | [再次執行 `claude update` 或 `claude install`](#release-verification-failed) |

35| 工作階段頁尾以紅色顯示 `Auto-update failed · Run claude doctor` | [從您的 shell 執行 `claude update`](#auto-update-failed) |35| 工作階段頁尾以紅色顯示 `Auto-update failed · Run claude doctor` | [從您的 shell 執行 `claude update`](#auto-update-failed) |


94* `403`:通常是代理伺服器或網路篩選器阻止該主機,或 Claude Code [在您的地區不可用](https://www.anthropic.com/supported-countries)94* `403`:通常是代理伺服器或網路篩選器阻止該主機,或 Claude Code [在您的地區不可用](https://www.anthropic.com/supported-countries)

95* `5xx`:通常是暫時性服務問題;等待幾分鐘後重試95* `5xx`:通常是暫時性服務問題;等待幾分鐘後重試

96 96 

97如果您看不到任何輸出、`Could not resolve host` 或連線逾時,您的網路正在阻止連線。常見原因:97如果您看不到任何輸出,或安裝程式顯示 `Could not resolve host` 或連線逾時,表示連線失敗,請檢查以下原因:

98 98 

99* 公司防火牆或代理伺服器阻止 `downloads.claude.ai`99* 公司防火牆或代理伺服器阻止 `downloads.claude.ai`

100* 地區網路限制:嘗試使用 VPN 或替代網路100* 地區網路限制:嘗試使用 VPN 或替代網路

101* TLS/SSL 問題:更新您系統的 CA 憑證,或檢查是否設定了 `HTTPS_PROXY`101* TLS/SSL 問題:請參閱 [TLS 或 SSL 連線錯誤](#tls-or-ssl-connection-errors)

102 102 

103如果您在公司代理伺服器後面,在安裝前設定 `HTTPS_PROXY` 和 `HTTP_PROXY` 為您代理伺服器的位址。如果您不知道代理伺服器 URL,請詢問您的 IT 團隊,或檢查您瀏覽器的代理伺服器設定。103如果您在公司代理伺服器後面,在安裝前設定 `HTTPS_PROXY` 和 `HTTP_PROXY` 為您代理伺服器的位址。如果您不知道代理伺服器 URL,請詢問您的 IT 團隊,或檢查您瀏覽器的代理伺服器設定。

104 104 


566 irm https://claude.ai/install.ps1 | iex566 irm https://claude.ai/install.ps1 | iex

567 ```567 ```

568 568 

5693. **檢查代理伺服器或防火牆干擾**:執行 TLS 檢查的公司代理伺服器可能導致這些錯誤,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。對於安裝步驟,使 install 下載信任您的公司代理伺服器的 CA:5693. **檢查代理伺服器或防火牆干擾**:執行 TLS 檢查的公司代理伺服器可能導致這些錯誤,包括 `unable to get local issuer certificate`、`unable to verify the first certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。使安裝下載信任您公司代理伺服器的 CA:

570 570 

571 > [tab] macOS/Linux571 > [tab] macOS/Linux

572 >572 >

573 > 為安裝指令碼的 `curl` 下載設定 `CURL_CA_BUNDLE`,並為指令碼接著執行的 `claude install` 命令設定 [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/zh-TW/network-config#custom-ca-certificates)。如果您沒有包含代理伺服器根 CA 憑證的 PEM 檔案,請向您的 IT 團隊索取。此範例將兩者都設定為您代理伺服器的 CA 檔案,並在同一個終端機中執行指令碼:

574 >

573 > ```bash theme={null}575 > ```bash theme={null}

574 > curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash576 > export CURL_CA_BUNDLE=/path/to/corporate-ca.pem

577 > export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

578 > curl -fsSL https://claude.ai/install.sh | bash

575 > ```579 > ```

580 >

581 > 如果安裝仍因上述其中一個憑證錯誤而失敗,請向您的 IT 團隊索取同時包含公用根憑證與您代理伺服器完整 CA 鏈的檔案。然後將兩個變數都設定為該檔案。

576 582 

577 > [tab] Windows PowerShell583 > [tab] Windows PowerShell

578 >584 >


596 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'602 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'

597 > ```603 > ```

598 604 

599 如果您沒有憑證檔案,請詢問您的 IT 團隊。您也可以嘗試直接連線以確認代理伺服器是原因。

600 

6014. **在 Windows 上,解決被阻止的撤銷檢查**。錯誤 `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` 和 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` 表示 curl 已連線到伺服器,但您的網路阻止了憑證撤銷查詢,這在公司防火牆後面很常見。如果失敗的命令是下載 `install.cmd` 的 `curl`,從命令提示字元重新執行它,並新增 `--ssl-revoke-best-effort`:6054. **在 Windows 上,解決被阻止的撤銷檢查**。錯誤 `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` 和 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` 表示 curl 已連線到伺服器,但您的網路阻止了憑證撤銷查詢,這在公司防火牆後面很常見。如果失敗的命令是下載 `install.cmd` 的 `curl`,從命令提示字元重新執行它,並新增 `--ssl-revoke-best-effort`:

602 ```batch theme={null}606 ```batch theme={null}

603 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd607 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd


610 614 

611### `Failed to fetch version from downloads.claude.ai`615### `Failed to fetch version from downloads.claude.ai`

612 616 

613安裝程式無法連線到下載伺服器。這通常表示 `downloads.claude.ai` 在您的網路上被阻止。請參閱[檢查網路連線](#check-network-connectivity)。617訊息的結尾會說明原因。如果是憑證錯誤,例如 `unable to verify the first certificate`,請參閱[TLS 或 SSL 連線錯誤](#tls-or-ssl-connection-errors)。若為其他任何原因,請參閱[檢查網路連線](#check-network-connectivity)。

614 618 

615### The connection dropped while downloading the update619### The connection dropped while downloading the update

616 620 

workflows.md +10 −4

Details

375 375 

376 在 v2.1.305 之前,當您重新啟動未經編輯的指令碼,且其 `pipeline()` 項目或 `parallel()` 任務各自執行多個 agent 時,已完成的 agent 也可能再次執行。若要讓新的執行不再發生這些重新執行,請更新 Claude Code。376 在 v2.1.305 之前,當您重新啟動未經編輯的指令碼,且其 `pipeline()` 項目或 `parallel()` 任務各自執行多個 agent 時,已完成的 agent 也可能再次執行。若要讓新的執行不再發生這些重新執行,請更新 Claude Code。

377* **停止時仍在執行**:重新開始。停止整個執行不會將任何代理計為失敗。377* **停止時仍在執行**:重新開始。停止整個執行不會將任何代理計為失敗。

378* **在 v2.1.318 或更新版本上[因用量上限而失敗](#when-a-run-hits-your-usage-limit)**:再次執行,已完成的 agent 會返回其已保存的結果。如果您的指令碼在失敗後呼叫了另一個 agent,且該 agent 返回了結果,則指令碼在失敗的 agent 之後啟動的每個 agent 也會再次執行。

378* **失敗**:再次執行,指令碼在其之後啟動的每個 agent 也會執行,即使是已完成的 agent。透過在 [`/workflows`](#watch-the-run) 中選擇 agent 並按 `x` 來單獨停止一個 agent,會將其計為失敗。379* **失敗**:再次執行,指令碼在其之後啟動的每個 agent 也會執行,即使是已完成的 agent。透過在 [`/workflows`](#watch-the-run) 中選擇 agent 並按 `x` 來單獨停止一個 agent,會將其計為失敗。

379 380 

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

381 382 

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

383 384 


395 396 

396### 當執行達到您的使用限制時397### 當執行達到您的使用限制時

397 398 

398當代理達到您的 claude.ai [使用限制](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset)時,執行會暫停而不是該代理失敗:達到限制的代理會等待重設,並且不會啟動新代理。限制重設後不久,等待中的代理會再次執行,執行會自動繼續。需要 Claude Code v2.1.271 或更新版本;在較早版本上,受影響的代理會失敗。399當 agent 達到您的 claude.ai [用量上限](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset)時,執行會暫停,而不是讓該 agent 失敗。達到上限的 agent 會等待重設,且不會啟動新的 agent。上限重設後不久,等待中的 agent 會再次執行,執行會自動繼續。需要 Claude Code v2.1.271 或更新版本,或在桌面版 [Code 分頁](https://code.claude.com/docs/zh-TW/desktop.md)中需要 [v2.1.319 或更新版本](https://code.claude.com/docs/zh-TW/desktop.md#claude-code-version-in-the-code-tab)。在較早版本上,受影響的 agent 會失敗。

399 400 

400執行等待時,任務面板中的進度線和 [`/workflows`](#watch-the-run) 標題會顯示限制何時重設。401執行等待時,任務面板中的進度線和 [`/workflows`](#watch-the-run) 標題會顯示上限何時重設。在 Code 分頁中,執行會顯示如 `Paused at usage limit · continues after 3:45 PM if the app stays open` 之類的一行。請保持應用程式開啟。

401 402 

402執行只在以下所有情況成立時暫停;當其中一個不成立時,受影響的代理會改為失敗:403執行只在以下所有情況成立時暫停;當其中一個不成立時,受影響的代理會改為失敗:

403 404 

404* 工作階段是互動式的,並使用 claude.ai 訂閱登入。執行不會在[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)中使用 `claude -p` 或 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 暫停,在[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)中,或在[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md)或[代理團隊](https://code.claude.com/docs/zh-TW/agent-teams.md)隊友工作階段中。405* 工作階段使用未啟用[依用量計費](https://code.claude.com/docs/zh-TW/interactive-mode.md#start-a-wait-yourself)的 claude.ai 訂閱登入,且屬於以下其中一種工作階段類型:

406 * 互動式終端機工作階段。在使用 `claude -p` 的[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)或 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/overview.md) 中、在[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)中,或在 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 或 [agent team](https://code.claude.com/docs/zh-TW/agent-teams.md) 隊友工作階段中,執行不會暫停。

407 * 您在 Code 分頁中啟動的本機工作階段。在 SSH、WSL、[Dispatch](https://code.claude.com/docs/zh-TW/desktop.md#sessions-from-dispatch) 或[排程任務](https://code.claude.com/docs/zh-TW/desktop-scheduled-tasks.md)工作階段中、在從 Remote Control 或透過[企業啟動器](https://code.claude.com/docs/zh-TW/corporate-launcher.md)啟動的工作階段中,或在設定了 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/zh-TW/env-vars#variables) 時,執行不會暫停。

405* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-TW/settings-reference#autocontinueatusagelimit) 已開啟,這是允許工作階段本身[等待使用限制重設](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset)的相同設定。如果您在等待期間關閉它,等待會結束,等待中的代理會失敗。408* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-TW/settings-reference#autocontinueatusagelimit) 已開啟,這是允許工作階段本身[等待使用限制重設](https://code.claude.com/docs/zh-TW/interactive-mode.md#wait-for-a-usage-limit-to-reset)的相同設定。如果您在等待期間關閉它,等待會結束,等待中的代理會失敗。

409* 在 Code 分頁中,[工作階段上限卡片](https://code.claude.com/docs/zh-TW/errors.md#youve-hit-your-session-limit)上的 **Auto-continue when limits reset** 核取方塊已勾選(預設即為勾選)。如果您取消勾選,您 Code 分頁工作階段中的執行將不再暫停,除非受管設定將 `autoContinueAtUsageLimit` 設為 `true`。

406* 限制在 24 小時內重設。每週限制可能會更晚重設。410* 限制在 24 小時內重設。每週限制可能會更晚重設。

407* 執行尚未已等待兩次。當它第三次達到限制時,代理會失敗。411* 執行尚未已等待兩次。當它第三次達到限制時,代理會失敗。

408 412 

413若要完成其 agent 因達到上限而失敗的執行,請在上限重設後要求 Claude [重新啟動工作流程](#which-agents-run-again)。

414 

409### 當 agent 停滯並重新啟動時415### 當 agent 停滯並重新啟動時

410 416 

411若 agent 的輸出停止傳來達一定時間,該 agent 會以相同的提示詞重新開始。在 [`/workflows`](#watch-the-run) 中,其名稱會加上 `(retry 1)` 後綴,其詳細資訊會顯示 `attempt 2 (stalled)`。重新啟動是自動的,因此您不需要執行任何操作。417若 agent 的輸出停止傳來達一定時間,該 agent 會以相同的提示詞重新開始。在 [`/workflows`](#watch-the-run) 中,其名稱會加上 `(retry 1)` 後綴,其詳細資訊會顯示 `attempt 2 (stalled)`。重新啟動是自動的,因此您不需要執行任何操作。

worktrees.md +1 −1

Details

253 253 

254Worktree 獲得自己的檔案和分支,但它與主要檢出共享以下內容:254Worktree 獲得自己的檔案和分支,但它與主要檢出共享以下內容:

255 255 

256* **儲存庫的 `.git` 目錄**:worktree 中的 git 命令寫入主儲存庫的共享 `.git` 目錄,[沙箱化](https://code.claude.com/docs/zh-TW/sandboxing.md#filesystem-isolation)允許這些寫入,因此 `git commit` 等命令可以從啟用沙箱的 worktree 內部工作。256* **儲存庫的 `.git` 目錄**:worktree 中的 git 命令會寫入主儲存庫的共享 `.git` 目錄。啟用[沙箱](https://code.claude.com/docs/zh-TW/sandboxing.md#filesystem-isolation)時,`git commit` 等命令可在位於 worktree 根目錄的工作階段中運作,而 `--worktree` 正是在該處啟動工作階段。預設情況下,[若您在 worktree 的子目錄中執行 `claude`,這些命令會因 `index.lock` 錯誤而失敗](https://code.claude.com/docs/zh-TW/sandboxing#git-index-lock)。

257* **外掛程式**:從主要檢出在[專案範圍](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-where-a-plugin-is-enabled)安裝的外掛程式也會在同一儲存庫的 worktrees 中載入,因此您不需要為每個 worktree 重新安裝它們。257* **外掛程式**:從主要檢出在[專案範圍](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-where-a-plugin-is-enabled)安裝的外掛程式也會在同一儲存庫的 worktrees 中載入,因此您不需要為每個 worktree 重新安裝它們。

258* **權限核准**:在 worktree 工作階段中為 Bash 命令選擇「是,不再詢問」會將規則儲存到主要檢出的 `.claude/settings.local.json`。該規則適用於主要檢出和儲存庫的每個其他 worktree,並在 worktree 移除後仍會保留。258* **權限核准**:在 worktree 工作階段中為 Bash 命令選擇「是,不再詢問」會將規則儲存到主要檢出的 `.claude/settings.local.json`。該規則適用於主要檢出和儲存庫的每個其他 worktree,並在 worktree 移除後仍會保留。

259 259 

Details

41 41 

42### ZDR 不涵蓋的內容42### ZDR 不涵蓋的內容

43 43 

44即使對於啟用了 ZDR 的組織,ZDR 也不適用於以下內容。這些功能遵循[標準資料保留政策](https://code.claude.com/docs/zh-TW/data-usage.md#data-retention):44即使對於啟用了 ZDR 的組織,ZDR 也不適用於以下內容。除非某列另有說明,這些功能遵循[標準資料保留政策](https://code.claude.com/docs/zh-TW/data-usage.md#data-retention):

45 45 

46| 功能 | 詳情 |46| 功能 | 詳情 |

47| - | - |47| - | - |

48| claude.ai 上的聊天 | 通過 Claude for Enterprise 網頁介面的聊天對話不受 ZDR 保護。 |48| claude.ai 上的聊天 | 通過 Claude for Enterprise 網頁介面的聊天對話不受 ZDR 保護。 |

49| Cowork | Cowork 會話不受 ZDR 保護。 |49| Cowork | Cowork 會話不受 ZDR 保護。 |

50| Artifacts | 聊天對話和 Cowork 工作階段中的 artifact 不受 ZDR 保護,並會保留至被刪除為止,除非您的組織為其設定了保留期限。在啟用 ZDR 的 Claude Code 中無法使用 artifact。 |

50| Claude Code 分析 | 不存儲提示或模型回應,但收集生產力中繼資料,例如帳戶電子郵件和使用統計資訊。對於 ZDR 組織,貢獻指標不可用;[分析儀表板](https://code.claude.com/docs/zh-TW/analytics.md)僅顯示使用指標。 |51| Claude Code 分析 | 不存儲提示或模型回應,但收集生產力中繼資料,例如帳戶電子郵件和使用統計資訊。對於 ZDR 組織,貢獻指標不可用;[分析儀表板](https://code.claude.com/docs/zh-TW/analytics.md)僅顯示使用指標。 |

51| 使用者和座位管理 | 管理資料(例如帳戶電子郵件和座位分配)根據標準政策保留。 |52| 使用者和座位管理 | 管理資料(例如帳戶電子郵件和座位分配)根據標準政策保留。 |

52| 第三方整合 | 由第三方工具、MCP servers 或其他外部整合處理的資料不受 ZDR 保護。請獨立審查這些服務的資料處理實踐。 |53| 第三方整合 | 由第三方工具、MCP servers 或其他外部整合處理的資料不受 ZDR 保護。請獨立審查這些服務的資料處理實踐。 |


60| [Cloud sessions](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),包括從 [Desktop app](https://code.claude.com/docs/zh-TW/desktop.md#cloud-sessions) 啟動的工作階段 | 需要伺服器端儲存工作階段資料,包括包含提示和完成內容的對話歷史記錄。 |61| [Cloud sessions](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),包括從 [Desktop app](https://code.claude.com/docs/zh-TW/desktop.md#cloud-sessions) 啟動的工作階段 | 需要伺服器端儲存工作階段資料,包括包含提示和完成內容的對話歷史記錄。 |

61| [Chat 和 Cowork 整合](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | 需要雲端工作階段。 |62| [Chat 和 Cowork 整合](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | 需要雲端工作階段。 |

62| [Claude Tag](https://claude.com/docs/claude-tag) | 保留頻道記憶和工作階段文字記錄。 |63| [Claude Tag](https://claude.com/docs/claude-tag) | 保留頻道記憶和工作階段文字記錄。 |

63| [Artifacts](https://code.claude.com/docs/zh-TW/artifacts.md) | 需要在 Anthropic 營運的基礎設施上儲存已發佈的頁面內容。 |64| Claude Code 中的 [Artifacts](https://code.claude.com/docs/zh-TW/artifacts.md) | 需要在 Anthropic 營運的基礎設施上儲存已發佈的頁面內容。 |

65| [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) | 需要在 Anthropic 營運的基礎設施上儲存文件內容。 |

64| 意見反饋提交(`/feedback`、`/bug`、`/share`) | 提交意見反饋會將對話資料傳送至 Anthropic。 |66| 意見反饋提交(`/feedback`、`/bug`、`/share`) | 提交意見反饋會將對話資料傳送至 Anthropic。 |

65| [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) | 在 Anthropic 伺服器上儲存工作階段文字記錄,以跨裝置同步對話。 |67| [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) | 在 Anthropic 伺服器上儲存工作階段文字記錄,以跨裝置同步對話。 |

66 68